Commit Graph

11 Commits

Author SHA1 Message Date
Pawla Abdul c8c5e01371 Enhance README with RWX PVC requirements, RBAC examples, and full config docs
Adds detailed prerequisites section covering ReadWriteMany PVC setup,
complete RBAC Role/RoleBinding/ServiceAccount manifests, and API key
secret configuration. Includes full configuration reference tables and
a How It Works section explaining the adapter lifecycle.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-12 15:20:54 +00:00
Pawla Abdul e75a62b329 Fix CI publish failures and add missing config schema fields
- CI publish job failed because it tried to re-publish existing versions
  (npm returns 404 for scoped packages on duplicate version). Added a
  version-exists check before npm publish to skip gracefully.
- Also fixed the auth env var from NPM_TOKEN to NODE_AUTH_TOKEN which
  is what actions/setup-node's registry-url option expects.
- Added missing core and operational fields to getConfigSchema() so the
  Paperclip UI surfaces model, effort, maxTurnsPerRun, skipPermissions,
  instructionsFilePath, timeoutSec, and graceSec alongside existing K8s
  infrastructure fields.
- Bumped version to 0.1.10.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-12 15:02:54 +00:00
Chris Farhood 545950daf2 Add CLI formatter, fix env forwarding, rename job prefix to agent-claude-
- Add src/cli/ with format-event.ts (printClaudeStreamEvent) exported from
  CLIAdapterModule
- Fix env var forwarding: read from pod spec container env dynamically instead
  of static allowlist; agent config env overrides pod values
- Rename K8s Job prefix from agent- to agent-claude-
- Add fsGroupChangePolicy: "OnRootMismatch" to skip PVC chown on subsequent runs
- Add comprehensive test coverage (159 tests across 5 test files)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 10:47:27 -04:00
Chris Farhood 514fe15009 Regenerate package-lock.json to sync with package.json
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 10:44:52 -04:00
Chris Farhood f5fa41fb3a Fix getConfigSchema to use flat fields array with correct hint keys
The Paperclip AdapterConfigSchema type expects a flat fields array, not
nested sections. Also maps description -> hint per the schema type.
Defines types locally since @paperclipai/adapter-utils@0.3.1 on npm
does not yet export AdapterConfigSchema/ConfigFieldSchema (those exist
in the monorepo but aren't released to npm yet).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 10:43:31 -04:00
Chris Farhood 448889fc94 Add GitHub Actions CI workflow
Runs typecheck and tests on push/PR to master, then publishes to npm
on successful master pushes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 10:39:23 -04:00
Chris Farhood 75ba66e504 Add getConfigSchema to surface K8s fields in Paperclip UI
Adds AdapterConfigSchema with three sections (Kubernetes, Resource Limits,
Scheduling) exposing: namespace, image, imagePullPolicy, kubeconfig,
resources.{requests,limits}.{cpu,memory}, nodeSelector, tolerations,
labels, ttlSecondsAfterFinished, retainJobs.

Paperclip's server fetches GET /api/adapters/:type/config-schema and
caches the result, automatically assigning ConfigFields to external
adapters. The adapter now wires getConfigSchema into createServerAdapter().

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 10:31:55 -04:00
Chris Farhood 98af28a272 Skip PVC chown on subsequent runs with fsGroupChangePolicy
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 00:04:35 -04:00
Chris Farhood 4b0baaf05c Add .gitignore and bump version for npm publishing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 23:43:19 -04:00
Chris Farhood 4c310d020d Clarify that Paperclip must be deployed on an RWX PVC 2026-04-11 23:18:16 -04:00
Chris Farhood 9dbb5f337e Initial commit: Paperclip adapter for Claude Code on Kubernetes
Adapter plugin that runs Claude Code agents as Kubernetes Jobs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 23:16:31 -04:00