@penclipai/server 2026.608.0 → 2026.702.0-canary.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/claude-agent-id-header.d.ts +15 -0
- package/dist/adapters/claude-agent-id-header.d.ts.map +1 -0
- package/dist/adapters/claude-agent-id-header.js +36 -0
- package/dist/adapters/claude-agent-id-header.js.map +1 -0
- package/dist/adapters/claude-agent-id-header.test.d.ts +2 -0
- package/dist/adapters/claude-agent-id-header.test.d.ts.map +1 -0
- package/dist/adapters/claude-agent-id-header.test.js +80 -0
- package/dist/adapters/claude-agent-id-header.test.js.map +1 -0
- package/dist/adapters/hermes-gateway-doc.d.ts +2 -0
- package/dist/adapters/hermes-gateway-doc.d.ts.map +1 -0
- package/dist/adapters/hermes-gateway-doc.js +61 -0
- package/dist/adapters/hermes-gateway-doc.js.map +1 -0
- package/dist/adapters/registry.d.ts.map +1 -1
- package/dist/adapters/registry.js +31 -1
- package/dist/adapters/registry.js.map +1 -1
- package/dist/agent-auth-jwt.d.ts.map +1 -1
- package/dist/agent-auth-jwt.js +53 -8
- package/dist/agent-auth-jwt.js.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +62 -2
- package/dist/app.js.map +1 -1
- package/dist/auth/better-auth.d.ts +17 -5
- package/dist/auth/better-auth.d.ts.map +1 -1
- package/dist/auth/better-auth.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +120 -18
- package/dist/index.js.map +1 -1
- package/dist/instrumentation.d.ts +18 -0
- package/dist/instrumentation.d.ts.map +1 -0
- package/dist/instrumentation.js +184 -0
- package/dist/instrumentation.js.map +1 -0
- package/dist/middleware/auth.d.ts +2 -1
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +21 -11
- package/dist/middleware/auth.js.map +1 -1
- package/dist/middleware/cloud-tenant-actor.test.d.ts +2 -0
- package/dist/middleware/cloud-tenant-actor.test.d.ts.map +1 -0
- package/dist/middleware/cloud-tenant-actor.test.js +92 -0
- package/dist/middleware/cloud-tenant-actor.test.js.map +1 -0
- package/dist/middleware/error-handler.d.ts.map +1 -1
- package/dist/middleware/error-handler.js +4 -0
- package/dist/middleware/error-handler.js.map +1 -1
- package/dist/middleware/logger.d.ts.map +1 -1
- package/dist/middleware/logger.js +7 -6
- package/dist/middleware/logger.js.map +1 -1
- package/dist/middleware/redact-sensitive.d.ts +2 -0
- package/dist/middleware/redact-sensitive.d.ts.map +1 -0
- package/dist/middleware/redact-sensitive.js +67 -0
- package/dist/middleware/redact-sensitive.js.map +1 -0
- package/dist/middleware/trust-proxy.d.ts +36 -0
- package/dist/middleware/trust-proxy.d.ts.map +1 -0
- package/dist/middleware/trust-proxy.js +113 -0
- package/dist/middleware/trust-proxy.js.map +1 -0
- package/dist/onboarding-assets/ceo/HEARTBEAT.md +1 -1
- package/dist/onboarding-assets/default/AGENTS.md +2 -2
- package/dist/realtime/live-events-ws.d.ts.map +1 -1
- package/dist/realtime/live-events-ws.js +36 -3
- package/dist/realtime/live-events-ws.js.map +1 -1
- package/dist/routes/access.d.ts +10 -0
- package/dist/routes/access.d.ts.map +1 -1
- package/dist/routes/access.js +178 -10
- package/dist/routes/access.js.map +1 -1
- package/dist/routes/agents.d.ts.map +1 -1
- package/dist/routes/agents.js +231 -73
- package/dist/routes/agents.js.map +1 -1
- package/dist/routes/approvals.d.ts +1 -1
- package/dist/routes/approvals.d.ts.map +1 -1
- package/dist/routes/approvals.js +51 -1
- package/dist/routes/approvals.js.map +1 -1
- package/dist/routes/authz.d.ts +4 -2
- package/dist/routes/authz.d.ts.map +1 -1
- package/dist/routes/authz.js +8 -0
- package/dist/routes/authz.js.map +1 -1
- package/dist/routes/board-chat.d.ts +17 -0
- package/dist/routes/board-chat.d.ts.map +1 -0
- package/dist/routes/board-chat.js +353 -0
- package/dist/routes/board-chat.js.map +1 -0
- package/dist/routes/companies.d.ts.map +1 -1
- package/dist/routes/companies.js +47 -61
- package/dist/routes/companies.js.map +1 -1
- package/dist/routes/company-skills.d.ts.map +1 -1
- package/dist/routes/company-skills.js +238 -15
- package/dist/routes/company-skills.js.map +1 -1
- package/dist/routes/environment-selection.d.ts +1 -2
- package/dist/routes/environment-selection.d.ts.map +1 -1
- package/dist/routes/environment-selection.js +2 -2
- package/dist/routes/environment-selection.js.map +1 -1
- package/dist/routes/environments.d.ts.map +1 -1
- package/dist/routes/environments.js +289 -127
- package/dist/routes/environments.js.map +1 -1
- package/dist/routes/execution-workspaces.d.ts +4 -1
- package/dist/routes/execution-workspaces.d.ts.map +1 -1
- package/dist/routes/execution-workspaces.js +27 -2
- package/dist/routes/execution-workspaces.js.map +1 -1
- package/dist/routes/file-resources.d.ts +68 -0
- package/dist/routes/file-resources.d.ts.map +1 -0
- package/dist/routes/file-resources.js +620 -0
- package/dist/routes/file-resources.js.map +1 -0
- package/dist/routes/health.d.ts +2 -0
- package/dist/routes/health.d.ts.map +1 -1
- package/dist/routes/health.js +11 -2
- package/dist/routes/health.js.map +1 -1
- package/dist/routes/index.d.ts +1 -0
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +1 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/instance-settings.d.ts.map +1 -1
- package/dist/routes/instance-settings.js +34 -2
- package/dist/routes/instance-settings.js.map +1 -1
- package/dist/routes/issues.d.ts +2 -0
- package/dist/routes/issues.d.ts.map +1 -1
- package/dist/routes/issues.js +1357 -166
- package/dist/routes/issues.js.map +1 -1
- package/dist/routes/llms.d.ts.map +1 -1
- package/dist/routes/llms.js +14 -0
- package/dist/routes/llms.js.map +1 -1
- package/dist/routes/openapi.d.ts.map +1 -1
- package/dist/routes/openapi.js +417 -5
- package/dist/routes/openapi.js.map +1 -1
- package/dist/routes/pipelines.d.ts +4 -0
- package/dist/routes/pipelines.d.ts.map +1 -0
- package/dist/routes/pipelines.js +2537 -0
- package/dist/routes/pipelines.js.map +1 -0
- package/dist/routes/plugins.d.ts.map +1 -1
- package/dist/routes/plugins.js +25 -19
- package/dist/routes/plugins.js.map +1 -1
- package/dist/routes/projects.d.ts.map +1 -1
- package/dist/routes/projects.js +17 -0
- package/dist/routes/projects.js.map +1 -1
- package/dist/routes/routines.d.ts.map +1 -1
- package/dist/routes/routines.js +170 -2
- package/dist/routes/routines.js.map +1 -1
- package/dist/runtime-api.d.ts.map +1 -1
- package/dist/runtime-api.js +4 -1
- package/dist/runtime-api.js.map +1 -1
- package/dist/secrets/local-encrypted-provider.d.ts.map +1 -1
- package/dist/secrets/local-encrypted-provider.js +10 -2
- package/dist/secrets/local-encrypted-provider.js.map +1 -1
- package/dist/server-info.d.ts +15 -0
- package/dist/server-info.d.ts.map +1 -0
- package/dist/server-info.js +106 -0
- package/dist/server-info.js.map +1 -0
- package/dist/services/access.d.ts.map +1 -1
- package/dist/services/activity.d.ts +2 -1
- package/dist/services/activity.d.ts.map +1 -1
- package/dist/services/activity.js +1 -0
- package/dist/services/activity.js.map +1 -1
- package/dist/services/adapter-models-env.d.ts +12 -0
- package/dist/services/adapter-models-env.d.ts.map +1 -0
- package/dist/services/adapter-models-env.js +36 -0
- package/dist/services/adapter-models-env.js.map +1 -0
- package/dist/services/adapter-models-env.test.d.ts +2 -0
- package/dist/services/adapter-models-env.test.d.ts.map +1 -0
- package/dist/services/adapter-models-env.test.js +29 -0
- package/dist/services/adapter-models-env.test.js.map +1 -0
- package/dist/services/adapter-registry-bootstrap.d.ts +18 -0
- package/dist/services/adapter-registry-bootstrap.d.ts.map +1 -0
- package/dist/services/adapter-registry-bootstrap.js +82 -0
- package/dist/services/adapter-registry-bootstrap.js.map +1 -0
- package/dist/services/adapter-registry-bootstrap.reconcile.test.d.ts +2 -0
- package/dist/services/adapter-registry-bootstrap.reconcile.test.d.ts.map +1 -0
- package/dist/services/adapter-registry-bootstrap.reconcile.test.js +36 -0
- package/dist/services/adapter-registry-bootstrap.reconcile.test.js.map +1 -0
- package/dist/services/adapter-registry-bootstrap.test.d.ts +2 -0
- package/dist/services/adapter-registry-bootstrap.test.d.ts.map +1 -0
- package/dist/services/adapter-registry-bootstrap.test.js +23 -0
- package/dist/services/adapter-registry-bootstrap.test.js.map +1 -0
- package/dist/services/agent-invokability.d.ts +1 -0
- package/dist/services/agent-invokability.d.ts.map +1 -1
- package/dist/services/agent-invokability.js +1 -1
- package/dist/services/agent-invokability.js.map +1 -1
- package/dist/services/agent-permissions.d.ts +1 -0
- package/dist/services/agent-permissions.d.ts.map +1 -1
- package/dist/services/agent-permissions.js +4 -0
- package/dist/services/agent-permissions.js.map +1 -1
- package/dist/services/agent-secret-bindings.d.ts +28 -0
- package/dist/services/agent-secret-bindings.d.ts.map +1 -0
- package/dist/services/agent-secret-bindings.js +51 -0
- package/dist/services/agent-secret-bindings.js.map +1 -0
- package/dist/services/agents.d.ts +81 -155
- package/dist/services/agents.d.ts.map +1 -1
- package/dist/services/agents.js +124 -42
- package/dist/services/agents.js.map +1 -1
- package/dist/services/approvals.d.ts +19 -5
- package/dist/services/approvals.d.ts.map +1 -1
- package/dist/services/approvals.js +8 -1
- package/dist/services/approvals.js.map +1 -1
- package/dist/services/authorization.d.ts +7 -3
- package/dist/services/authorization.d.ts.map +1 -1
- package/dist/services/authorization.js +270 -10
- package/dist/services/authorization.js.map +1 -1
- package/dist/services/bundled-paperclip-skills.d.ts +11 -0
- package/dist/services/bundled-paperclip-skills.d.ts.map +1 -0
- package/dist/services/bundled-paperclip-skills.js +48 -0
- package/dist/services/bundled-paperclip-skills.js.map +1 -0
- package/dist/services/codex-auth-reconciliation.d.ts +21 -0
- package/dist/services/codex-auth-reconciliation.d.ts.map +1 -0
- package/dist/services/codex-auth-reconciliation.js +118 -0
- package/dist/services/codex-auth-reconciliation.js.map +1 -0
- package/dist/services/company-member-roles.d.ts.map +1 -1
- package/dist/services/company-member-roles.js +2 -0
- package/dist/services/company-member-roles.js.map +1 -1
- package/dist/services/company-portability.d.ts.map +1 -1
- package/dist/services/company-portability.js +8 -8
- package/dist/services/company-portability.js.map +1 -1
- package/dist/services/company-skills.d.ts +33 -6
- package/dist/services/company-skills.d.ts.map +1 -1
- package/dist/services/company-skills.js +1019 -253
- package/dist/services/company-skills.js.map +1 -1
- package/dist/services/costs.d.ts +1 -1
- package/dist/services/document-annotations.d.ts +163 -5
- package/dist/services/document-annotations.d.ts.map +1 -1
- package/dist/services/document-annotations.js +269 -1
- package/dist/services/document-annotations.js.map +1 -1
- package/dist/services/effective-run-config-fingerprints.d.ts +60 -0
- package/dist/services/effective-run-config-fingerprints.d.ts.map +1 -0
- package/dist/services/effective-run-config-fingerprints.js +370 -0
- package/dist/services/effective-run-config-fingerprints.js.map +1 -0
- package/dist/services/environment-config.d.ts +10 -1
- package/dist/services/environment-config.d.ts.map +1 -1
- package/dist/services/environment-config.js +68 -7
- package/dist/services/environment-config.js.map +1 -1
- package/dist/services/environment-custom-image-runtime.d.ts +29 -0
- package/dist/services/environment-custom-image-runtime.d.ts.map +1 -0
- package/dist/services/environment-custom-image-runtime.js +123 -0
- package/dist/services/environment-custom-image-runtime.js.map +1 -0
- package/dist/services/environment-custom-images.d.ts +74 -0
- package/dist/services/environment-custom-images.d.ts.map +1 -0
- package/dist/services/environment-custom-images.js +760 -0
- package/dist/services/environment-custom-images.js.map +1 -0
- package/dist/services/environment-execution-target.d.ts.map +1 -1
- package/dist/services/environment-execution-target.js +1 -0
- package/dist/services/environment-execution-target.js.map +1 -1
- package/dist/services/environment-probe.d.ts +2 -0
- package/dist/services/environment-probe.d.ts.map +1 -1
- package/dist/services/environment-probe.js +9 -4
- package/dist/services/environment-probe.js.map +1 -1
- package/dist/services/environment-run-orchestrator.d.ts +13 -2
- package/dist/services/environment-run-orchestrator.d.ts.map +1 -1
- package/dist/services/environment-run-orchestrator.js +8 -11
- package/dist/services/environment-run-orchestrator.js.map +1 -1
- package/dist/services/environment-runtime.d.ts +31 -0
- package/dist/services/environment-runtime.d.ts.map +1 -1
- package/dist/services/environment-runtime.js +580 -65
- package/dist/services/environment-runtime.js.map +1 -1
- package/dist/services/environments.d.ts +55 -7
- package/dist/services/environments.d.ts.map +1 -1
- package/dist/services/environments.js +187 -13
- package/dist/services/environments.js.map +1 -1
- package/dist/services/execution-allowlist.d.ts +64 -0
- package/dist/services/execution-allowlist.d.ts.map +1 -0
- package/dist/services/execution-allowlist.js +59 -0
- package/dist/services/execution-allowlist.js.map +1 -0
- package/dist/services/execution-allowlist.test.d.ts +2 -0
- package/dist/services/execution-allowlist.test.d.ts.map +1 -0
- package/dist/services/execution-allowlist.test.js +76 -0
- package/dist/services/execution-allowlist.test.js.map +1 -0
- package/dist/services/execution-policy-bootstrap.d.ts +50 -0
- package/dist/services/execution-policy-bootstrap.d.ts.map +1 -0
- package/dist/services/execution-policy-bootstrap.js +155 -0
- package/dist/services/execution-policy-bootstrap.js.map +1 -0
- package/dist/services/execution-policy-bootstrap.test.d.ts +2 -0
- package/dist/services/execution-policy-bootstrap.test.d.ts.map +1 -0
- package/dist/services/execution-policy-bootstrap.test.js +119 -0
- package/dist/services/execution-policy-bootstrap.test.js.map +1 -0
- package/dist/services/execution-workspace-policy.d.ts +3 -14
- package/dist/services/execution-workspace-policy.d.ts.map +1 -1
- package/dist/services/execution-workspace-policy.js +11 -78
- package/dist/services/execution-workspace-policy.js.map +1 -1
- package/dist/services/execution-workspaces.d.ts +2 -1
- package/dist/services/execution-workspaces.d.ts.map +1 -1
- package/dist/services/execution-workspaces.js +212 -1
- package/dist/services/execution-workspaces.js.map +1 -1
- package/dist/services/external-objects.d.ts +617 -0
- package/dist/services/external-objects.d.ts.map +1 -0
- package/dist/services/external-objects.js +776 -0
- package/dist/services/external-objects.js.map +1 -0
- package/dist/services/feedback.d.ts +1 -1
- package/dist/services/finance.d.ts +2 -2
- package/dist/services/github-external-object-provider.d.ts +14 -0
- package/dist/services/github-external-object-provider.d.ts.map +1 -0
- package/dist/services/github-external-object-provider.js +398 -0
- package/dist/services/github-external-object-provider.js.map +1 -0
- package/dist/services/heartbeat-run-runtime-status.d.ts +28 -0
- package/dist/services/heartbeat-run-runtime-status.d.ts.map +1 -0
- package/dist/services/heartbeat-run-runtime-status.js +73 -0
- package/dist/services/heartbeat-run-runtime-status.js.map +1 -0
- package/dist/services/heartbeat-run-runtime-status.test.d.ts +2 -0
- package/dist/services/heartbeat-run-runtime-status.test.d.ts.map +1 -0
- package/dist/services/heartbeat-run-runtime-status.test.js +76 -0
- package/dist/services/heartbeat-run-runtime-status.test.js.map +1 -0
- package/dist/services/heartbeat.d.ts +312 -24
- package/dist/services/heartbeat.d.ts.map +1 -1
- package/dist/services/heartbeat.js +2467 -406
- package/dist/services/heartbeat.js.map +1 -1
- package/dist/services/index.d.ts +8 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +8 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/instance-settings.d.ts +2 -1
- package/dist/services/instance-settings.d.ts.map +1 -1
- package/dist/services/instance-settings.js +32 -2
- package/dist/services/instance-settings.js.map +1 -1
- package/dist/services/issue-thread-interactions.d.ts.map +1 -1
- package/dist/services/issue-thread-interactions.js +254 -42
- package/dist/services/issue-thread-interactions.js.map +1 -1
- package/dist/services/issues.d.ts +73 -39
- package/dist/services/issues.d.ts.map +1 -1
- package/dist/services/issues.js +757 -318
- package/dist/services/issues.js.map +1 -1
- package/dist/services/local-service-supervisor.d.ts +3 -0
- package/dist/services/local-service-supervisor.d.ts.map +1 -1
- package/dist/services/local-service-supervisor.js +79 -4
- package/dist/services/local-service-supervisor.js.map +1 -1
- package/dist/services/pipeline-case-outputs.d.ts +8 -0
- package/dist/services/pipeline-case-outputs.d.ts.map +1 -0
- package/dist/services/pipeline-case-outputs.js +433 -0
- package/dist/services/pipeline-case-outputs.js.map +1 -0
- package/dist/services/pipeline-conversation-context.d.ts +51 -0
- package/dist/services/pipeline-conversation-context.d.ts.map +1 -0
- package/dist/services/pipeline-conversation-context.js +195 -0
- package/dist/services/pipeline-conversation-context.js.map +1 -0
- package/dist/services/pipelines-aggregation.d.ts +288 -0
- package/dist/services/pipelines-aggregation.d.ts.map +1 -0
- package/dist/services/pipelines-aggregation.js +609 -0
- package/dist/services/pipelines-aggregation.js.map +1 -0
- package/dist/services/pipelines.d.ts +2247 -0
- package/dist/services/pipelines.d.ts.map +1 -0
- package/dist/services/pipelines.js +4155 -0
- package/dist/services/pipelines.js.map +1 -0
- package/dist/services/plan-review-context.d.ts +21 -0
- package/dist/services/plan-review-context.d.ts.map +1 -0
- package/dist/services/plan-review-context.js +255 -0
- package/dist/services/plan-review-context.js.map +1 -0
- package/dist/services/plugin-capability-validator.d.ts.map +1 -1
- package/dist/services/plugin-capability-validator.js +17 -0
- package/dist/services/plugin-capability-validator.js.map +1 -1
- package/dist/services/plugin-environment-driver.d.ts +38 -1
- package/dist/services/plugin-environment-driver.d.ts.map +1 -1
- package/dist/services/plugin-environment-driver.js +82 -0
- package/dist/services/plugin-environment-driver.js.map +1 -1
- package/dist/services/plugin-host-services.d.ts.map +1 -1
- package/dist/services/plugin-host-services.js +4 -1
- package/dist/services/plugin-host-services.js.map +1 -1
- package/dist/services/plugin-loader.d.ts +29 -0
- package/dist/services/plugin-loader.d.ts.map +1 -1
- package/dist/services/plugin-loader.js +214 -96
- package/dist/services/plugin-loader.js.map +1 -1
- package/dist/services/plugin-registry.d.ts +74 -12
- package/dist/services/plugin-registry.d.ts.map +1 -1
- package/dist/services/plugin-registry.js +45 -9
- package/dist/services/plugin-registry.js.map +1 -1
- package/dist/services/plugin-worker-manager.d.ts +1 -0
- package/dist/services/plugin-worker-manager.d.ts.map +1 -1
- package/dist/services/plugin-worker-manager.js +45 -1
- package/dist/services/plugin-worker-manager.js.map +1 -1
- package/dist/services/projects.d.ts +1 -1
- package/dist/services/recovery/service.d.ts +27 -6
- package/dist/services/recovery/service.d.ts.map +1 -1
- package/dist/services/recovery/service.js +545 -58
- package/dist/services/recovery/service.js.map +1 -1
- package/dist/services/recovery/service.pause-durability.test.d.ts +2 -0
- package/dist/services/recovery/service.pause-durability.test.d.ts.map +1 -0
- package/dist/services/recovery/service.pause-durability.test.js +32 -0
- package/dist/services/recovery/service.pause-durability.test.js.map +1 -0
- package/dist/services/recovery/successful-run-handoff.d.ts +1 -0
- package/dist/services/recovery/successful-run-handoff.d.ts.map +1 -1
- package/dist/services/recovery/successful-run-handoff.js +12 -0
- package/dist/services/recovery/successful-run-handoff.js.map +1 -1
- package/dist/services/recovery/successful-run-handoff.test.js +39 -0
- package/dist/services/recovery/successful-run-handoff.test.js.map +1 -1
- package/dist/services/routines-formatter-cache.test.d.ts +2 -0
- package/dist/services/routines-formatter-cache.test.d.ts.map +1 -0
- package/dist/services/routines-formatter-cache.test.js +36 -0
- package/dist/services/routines-formatter-cache.test.js.map +1 -0
- package/dist/services/routines.d.ts +26 -1
- package/dist/services/routines.d.ts.map +1 -1
- package/dist/services/routines.js +251 -17
- package/dist/services/routines.js.map +1 -1
- package/dist/services/runtime-skill-selections.d.ts +5 -0
- package/dist/services/runtime-skill-selections.d.ts.map +1 -0
- package/dist/services/runtime-skill-selections.js +4 -0
- package/dist/services/runtime-skill-selections.js.map +1 -0
- package/dist/services/sandbox-provider-runtime.d.ts +5 -0
- package/dist/services/sandbox-provider-runtime.d.ts.map +1 -1
- package/dist/services/sandbox-provider-runtime.js +6 -3
- package/dist/services/sandbox-provider-runtime.js.map +1 -1
- package/dist/services/secrets.d.ts +36 -5
- package/dist/services/secrets.d.ts.map +1 -1
- package/dist/services/secrets.js +437 -45
- package/dist/services/secrets.js.map +1 -1
- package/dist/services/skills-catalog.d.ts +7 -0
- package/dist/services/skills-catalog.d.ts.map +1 -1
- package/dist/services/skills-catalog.js +132 -11
- package/dist/services/skills-catalog.js.map +1 -1
- package/dist/services/task-watchdog-scope.d.ts +45 -0
- package/dist/services/task-watchdog-scope.d.ts.map +1 -0
- package/dist/services/task-watchdog-scope.js +125 -0
- package/dist/services/task-watchdog-scope.js.map +1 -0
- package/dist/services/task-watchdogs.d.ts +172 -0
- package/dist/services/task-watchdogs.d.ts.map +1 -0
- package/dist/services/task-watchdogs.js +1156 -0
- package/dist/services/task-watchdogs.js.map +1 -0
- package/dist/services/workspace-file-resources.d.ts +55 -0
- package/dist/services/workspace-file-resources.d.ts.map +1 -0
- package/dist/services/workspace-file-resources.js +1222 -0
- package/dist/services/workspace-file-resources.js.map +1 -0
- package/dist/services/workspace-operations.d.ts +1 -0
- package/dist/services/workspace-operations.d.ts.map +1 -1
- package/dist/services/workspace-operations.js +2 -0
- package/dist/services/workspace-operations.js.map +1 -1
- package/dist/services/workspace-runtime-read-model.d.ts +9 -9
- package/dist/services/workspace-runtime.d.ts +33 -3
- package/dist/services/workspace-runtime.d.ts.map +1 -1
- package/dist/services/workspace-runtime.js +550 -72
- package/dist/services/workspace-runtime.js.map +1 -1
- package/dist/skills-catalog/catalog/bundled/docs/doc-maintenance/SKILL.md +75 -0
- package/dist/skills-catalog/catalog/bundled/paperclip-operations/issue-triage/SKILL.md +74 -0
- package/dist/skills-catalog/catalog/bundled/paperclip-operations/task-planning/SKILL.md +84 -0
- package/dist/skills-catalog/catalog/bundled/product/paperclip-capsules/SKILL.md +99 -0
- package/dist/skills-catalog/catalog/bundled/product/paperclip-capsules/references/generator-workflows.md +120 -0
- package/dist/skills-catalog/catalog/bundled/product/paperclip-capsules/references/hero-capsule-bank.md +189 -0
- package/dist/skills-catalog/catalog/bundled/product/paperclip-capsules/references/identicon-prototyper.md +213 -0
- package/dist/skills-catalog/catalog/bundled/product/paperclip-capsules/references/individual-status-capsules.md +113 -0
- package/dist/skills-catalog/catalog/bundled/product/wireframe/SKILL.md +193 -0
- package/dist/skills-catalog/catalog/bundled/product/wireframe/assets/site-template.html +356 -0
- package/dist/skills-catalog/catalog/bundled/product/wireframe/assets/template-mobile.svg +21 -0
- package/dist/skills-catalog/catalog/bundled/product/wireframe/assets/template.svg +24 -0
- package/dist/skills-catalog/catalog/bundled/product/wireframe/references/components.md +482 -0
- package/dist/skills-catalog/catalog/bundled/product/wireframe/references/examples.md +362 -0
- package/dist/skills-catalog/catalog/bundled/product/wireframe/references/grid-system.md +107 -0
- package/dist/skills-catalog/catalog/bundled/quality/qa-acceptance/SKILL.md +93 -0
- package/dist/skills-catalog/catalog/bundled/software-development/github-pr-workflow/SKILL.md +93 -0
- package/dist/skills-catalog/catalog/optional/browser/agent-browser/SKILL.md +93 -0
- package/dist/skills-catalog/catalog/optional/content/release-announcement/SKILL.md +128 -0
- package/dist/skills-catalog/catalog/optional/product/design-critique/SKILL.md +121 -0
- package/dist/skills-catalog/catalog/optional/research/last30days/catalog-ref.json +44 -0
- package/dist/skills-catalog/generated/catalog.json +940 -0
- package/package.json +26 -26
- package/skills/paperclip/SKILL.md +4 -2
- package/skills/paperclip/references/api-reference.md +31 -0
- package/skills/paperclip/references/artifacts.md +56 -2
- package/skills/paperclip/references/company-skills.md +2 -1
- package/skills/paperclip-board/SKILL.md +620 -0
- package/skills/paperclip-converting-plans-to-tasks/SKILL.md +10 -1
- package/ui-dist/assets/abnfDiagram-VRR7QNED-1MYdekuG.js +1 -0
- package/ui-dist/assets/arc-BibUNDoE.js +1 -0
- package/ui-dist/assets/architectureDiagram-ZJ3FMSHR-B11X3gMr.js +36 -0
- package/ui-dist/assets/blockDiagram-677ZJIJ3-BD2wvWUm.js +132 -0
- package/ui-dist/assets/{browser-ponyfill-CqXHLOrj.js → browser-ponyfill-led7pqsL.js} +2 -2
- package/ui-dist/assets/c4Diagram-LMCZKHZV-DjoFVmrs.js +10 -0
- package/ui-dist/assets/channel-C81-Laju.js +1 -0
- package/ui-dist/assets/{chunk-QZHKN3VN-2ENnPNmV.js → chunk-2Q5K7J3B-BuQwnDoT.js} +1 -1
- package/ui-dist/assets/chunk-32BRIVSS-DJjYbis3.js +1 -0
- package/ui-dist/assets/{chunk-FMBD7UC4-D7_6dXHm.js → chunk-5VM5RSS4-Dvt1WhpT.js} +1 -1
- package/ui-dist/assets/chunk-EX3LRPZG-dund_JVU.js +231 -0
- package/ui-dist/assets/{chunk-4BX2VUAB-CrehAsAz.js → chunk-JWPE2WC7-Cd1Iiqlw.js} +1 -1
- package/ui-dist/assets/chunk-MOJQB5TN-juzW2HQX.js +88 -0
- package/ui-dist/assets/chunk-RYQCIY6F-Dn1gFM8U.js +1 -0
- package/ui-dist/assets/chunk-V7JOEXUC-DT90rT-X.js +206 -0
- package/ui-dist/assets/{chunk-QN33PNHL-DcagyJWX.js → chunk-VR4S4FIN-C7icMoEr.js} +1 -1
- package/ui-dist/assets/{chunk-55IACEB6-DribE63a.js → chunk-XXDRQBXY-yJYlq1_N.js} +1 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-CZlZa4Z4.js +1 -0
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-CZlZa4Z4.js +1 -0
- package/ui-dist/assets/{cose-bilkent-S5V4N54A-CJf0xE97.js → cose-bilkent-JH36ORCC-Y1bgBaX2.js} +1 -1
- package/ui-dist/assets/cynefin-VYW2F7L2-D9FgJJbY.js +158 -0
- package/ui-dist/assets/cynefinDiagram-TSTJHNR4-BjHw0b0V.js +62 -0
- package/ui-dist/assets/cytoscape.esm-D8joxN9f.js +321 -0
- package/ui-dist/assets/dagre-VKFMJZFB-6x3F0vZ1.js +4 -0
- package/ui-dist/assets/diagram-FQU43EPY-BWdB84eB.js +3 -0
- package/ui-dist/assets/diagram-G47NLZAW-DSoeDvpv.js +24 -0
- package/ui-dist/assets/diagram-NH7WQ7WH-BA4waX40.js +24 -0
- package/ui-dist/assets/diagram-OA4YK3LP-CnDhD7Z0.js +30 -0
- package/ui-dist/assets/diagram-WEI45ONY-BQikCuHx.js +41 -0
- package/ui-dist/assets/ebnfDiagram-CCIWWBDH-BkJUDdu6.js +1 -0
- package/ui-dist/assets/erDiagram-Q63AITRT-B5LG-O2p.js +85 -0
- package/ui-dist/assets/flowDiagram-23GEKE2U-9VS3vqm-.js +156 -0
- package/ui-dist/assets/ganttDiagram-NO4QXBWP-C7b3nJtk.js +292 -0
- package/ui-dist/assets/gitGraphDiagram-IHSO6WYX-B3My2kUT.js +106 -0
- package/ui-dist/assets/graph-C9eacEi8.js +1 -0
- package/ui-dist/assets/{index-CcLBvtNp.js → index-4Hrm5592.js} +1 -1
- package/ui-dist/assets/index-705aQRgT.css +1 -0
- package/ui-dist/assets/{index-wePlf-fX.js → index-7DTdrgt4.js} +1 -1
- package/ui-dist/assets/index-B0zVYy5s.js +1 -0
- package/ui-dist/assets/index-BEyHJKkN.js +1 -0
- package/ui-dist/assets/index-BLcq3ryI.js +6 -0
- package/ui-dist/assets/{index-C1ugBFic.js → index-BfGVfYBa.js} +1 -1
- package/ui-dist/assets/index-Bqucf771.js +13 -0
- package/ui-dist/assets/{index-CJk-LTWd.js → index-BsTV5jSt.js} +2 -2
- package/ui-dist/assets/index-BtUNZLYu.js +1 -0
- package/ui-dist/assets/index-CAbAydfK.js +1 -0
- package/ui-dist/assets/{index-CF_IIliZ.js → index-CMUs86Tz.js} +1 -1
- package/ui-dist/assets/index-CX0kn-C4.js +7 -0
- package/ui-dist/assets/index-ClhYCrB6.js +1 -0
- package/ui-dist/assets/index-DAeRpI3F.js +630 -0
- package/ui-dist/assets/{index-rNoTqsyb.js → index-DF0VaWyf.js} +1 -1
- package/ui-dist/assets/{index-BhWnrkuZ.js → index-DJm4F0Ml.js} +1 -1
- package/ui-dist/assets/index-DSlP9XWq.js +1 -0
- package/ui-dist/assets/index-DcQLbrod.js +1 -0
- package/ui-dist/assets/index-DcxERfVI.js +1 -0
- package/ui-dist/assets/{index-Bkn9nvnI.js → index-DoENsbSb.js} +1 -1
- package/ui-dist/assets/{index-DwifBGXT.js → index-_zZhhgXu.js} +1 -1
- package/ui-dist/assets/index-gGD5MI8H.js +3 -0
- package/ui-dist/assets/index-t-_2LM3_.js +1 -0
- package/ui-dist/assets/index-yjuu3h9e.js +1 -0
- package/ui-dist/assets/infoDiagram-FWYZ7A6U-9sZ4cbS9.js +2 -0
- package/ui-dist/assets/ishikawaDiagram-FXEZZL3T-mDo2Kfgo.js +70 -0
- package/ui-dist/assets/journeyDiagram-5HDEW3XC-CoigazvY.js +139 -0
- package/ui-dist/assets/{kanban-definition-3W4ZIXB7-MNzHzEvm.js → kanban-definition-HUTT4EX6-CJFlSu57.js} +9 -9
- package/ui-dist/assets/katex-yT8l5JNH.js +257 -0
- package/ui-dist/assets/layout-DEXfKzaS.js +1 -0
- package/ui-dist/assets/{linear-Dbnvz9js.js → linear-BbanAvJ_.js} +1 -1
- package/ui-dist/assets/{lua-BgMRiT3U.js → lua-VAEuO923.js} +1 -1
- package/ui-dist/assets/map-Czzmt4hB.js +1 -0
- package/ui-dist/assets/mermaid.core-D3ZAvEa0.js +308 -0
- package/ui-dist/assets/mindmap-definition-LN4V7U3C-D6Zm_sgQ.js +96 -0
- package/ui-dist/assets/pegDiagram-2B236MQR-CNxKW2xw.js +1 -0
- package/ui-dist/assets/pieDiagram-ENE6RG2P-DV6pNTUG.js +39 -0
- package/ui-dist/assets/quadrantDiagram-ABIIQ3AL-NUh3hoYm.js +7 -0
- package/ui-dist/assets/railroadDiagram-RFXS5EU6-CCSRjuwG.js +1 -0
- package/ui-dist/assets/requirementDiagram-TGXJPOKE-DvSGGcB1.js +84 -0
- package/ui-dist/assets/sankeyDiagram-HTMAVEWB-B5lEcLOj.js +40 -0
- package/ui-dist/assets/sequenceDiagram-DBY2YBRQ-DarWzyBb.js +162 -0
- package/ui-dist/assets/sizeCapture-X5ZJPWSS-DwYM9xPf.js +1 -0
- package/ui-dist/assets/stateDiagram-2N3HPSRC-BFW1zH6t.js +1 -0
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-CeZI1EkB.js +1 -0
- package/ui-dist/assets/swimlanes-5IMT3BWC-BEo4CTBl.js +2 -0
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-DmnanmOt.js +8 -0
- package/ui-dist/assets/timeline-definition-FHXFAJF6-ByBhLOs9.js +120 -0
- package/ui-dist/assets/vennDiagram-L72KCM5P-B3GO7M--.js +34 -0
- package/ui-dist/assets/wardleyDiagram-EHGQE667-d8jLxznZ.js +78 -0
- package/ui-dist/assets/xychartDiagram-FW5EYKEG-SsxE1iKp.js +7 -0
- package/ui-dist/index.html +7 -3
- package/ui-dist/locales/en/common.json +1402 -24
- package/ui-dist/locales/zh-CN/common.json +1390 -12
- package/ui-dist/paperclip-thinking.svg +17 -0
- package/skills/paperclip-dev/SKILL.md +0 -267
- package/ui-dist/assets/_basePickBy-CsJXrju_.js +0 -1
- package/ui-dist/assets/_baseUniq-Be564SC4.js +0 -1
- package/ui-dist/assets/arc-ChhLlMN4.js +0 -1
- package/ui-dist/assets/architectureDiagram-VXUJARFQ-BHTjsJeI.js +0 -36
- package/ui-dist/assets/blockDiagram-VD42YOAC-5dvvap-S.js +0 -122
- package/ui-dist/assets/c4Diagram-YG6GDRKO-hfu_VNIf.js +0 -10
- package/ui-dist/assets/channel-DVLmdq1z.js +0 -1
- package/ui-dist/assets/chunk-B4BG7PRW-C2trqg1y.js +0 -165
- package/ui-dist/assets/chunk-DI55MBZ5-B3B6zha9.js +0 -220
- package/ui-dist/assets/chunk-TZMSLE5B-BCBM7H63.js +0 -1
- package/ui-dist/assets/classDiagram-2ON5EDUG-C9NBC0l9.js +0 -1
- package/ui-dist/assets/classDiagram-v2-WZHVMYZB-C9NBC0l9.js +0 -1
- package/ui-dist/assets/clone-D73RZnuL.js +0 -1
- package/ui-dist/assets/cytoscape.esm-jbPEKk2Y.js +0 -321
- package/ui-dist/assets/dagre-6UL2VRFP-P6HTv1dl.js +0 -4
- package/ui-dist/assets/diagram-PSM6KHXK-DRzvxr8e.js +0 -24
- package/ui-dist/assets/diagram-QEK2KX5R-BXAtkQAh.js +0 -43
- package/ui-dist/assets/diagram-S2PKOQOG-lPfCuGXg.js +0 -24
- package/ui-dist/assets/erDiagram-Q2GNP2WA-KmGCwpo9.js +0 -60
- package/ui-dist/assets/flowDiagram-NV44I4VS-RI655sz7.js +0 -162
- package/ui-dist/assets/ganttDiagram-JELNMOA3-Br39317M.js +0 -267
- package/ui-dist/assets/gitGraphDiagram-V2S2FVAM-D_Qwuc9l.js +0 -65
- package/ui-dist/assets/graph-C4KZOrGq.js +0 -1
- package/ui-dist/assets/index-BDawVMo5.js +0 -1
- package/ui-dist/assets/index-BZulAyAW.js +0 -13
- package/ui-dist/assets/index-Bi3AojOk.js +0 -1
- package/ui-dist/assets/index-Bj6LQovJ.js +0 -3
- package/ui-dist/assets/index-BmMaTkqh.css +0 -1
- package/ui-dist/assets/index-Bw_RshC6.js +0 -7
- package/ui-dist/assets/index-CP4nqXS6.js +0 -6
- package/ui-dist/assets/index-CUi5mYWQ.js +0 -1
- package/ui-dist/assets/index-Cyw7rzih.js +0 -1
- package/ui-dist/assets/index-DPxT_Qpf.js +0 -1
- package/ui-dist/assets/index-DZMm_aED.js +0 -1
- package/ui-dist/assets/index-DZrSZ-Si.js +0 -1
- package/ui-dist/assets/index-DeoPjPIi.js +0 -1
- package/ui-dist/assets/index-UNBIC4gZ.js +0 -537
- package/ui-dist/assets/index-sWNlHaHF.js +0 -1
- package/ui-dist/assets/infoDiagram-HS3SLOUP-DCdBWLAp.js +0 -2
- package/ui-dist/assets/journeyDiagram-XKPGCS4Q-WHI6Fv2-.js +0 -139
- package/ui-dist/assets/katex-B95LWT_Q.js +0 -261
- package/ui-dist/assets/layout-BQhd1sQB.js +0 -1
- package/ui-dist/assets/mermaid.core-DLjEoATu.js +0 -251
- package/ui-dist/assets/mindmap-definition-VGOIOE7T-DENsMqeS.js +0 -68
- package/ui-dist/assets/pieDiagram-ADFJNKIX-Di98O53k.js +0 -30
- package/ui-dist/assets/quadrantDiagram-AYHSOK5B-DIDWrWb-.js +0 -7
- package/ui-dist/assets/requirementDiagram-UZGBJVZJ-ByzCwhbY.js +0 -64
- package/ui-dist/assets/sankeyDiagram-TZEHDZUN-DQkeR_WP.js +0 -10
- package/ui-dist/assets/sequenceDiagram-WL72ISMW-B3qB7qMS.js +0 -145
- package/ui-dist/assets/stateDiagram-FKZM4ZOC-D_dlWxNX.js +0 -1
- package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-Btpaf-KW.js +0 -1
- package/ui-dist/assets/timeline-definition-IT6M3QCI-BsrRKWrP.js +0 -61
- package/ui-dist/assets/treemap-GDKQZRPO-bjivo8Vk.js +0 -154
- package/ui-dist/assets/xychartDiagram-PRI3JC2R-D9FmW88S.js +0 -7
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ServerAdapterModule } from "./types.js";
|
|
2
|
+
type ClaudeExecute = ServerAdapterModule["execute"];
|
|
3
|
+
/**
|
|
4
|
+
* Wraps the claude_local execute so every request the spawned Claude Code makes
|
|
5
|
+
* carries `X-Anthropic-Agent-Id: <agentId>` via ANTHROPIC_CUSTOM_HEADERS. A proxy
|
|
6
|
+
* such as better-ccflare reads that header to attribute requests per agent for
|
|
7
|
+
* downstream cost/token telemetry.
|
|
8
|
+
*
|
|
9
|
+
* The header is merged into `config.env` — the env the adapter actually forwards
|
|
10
|
+
* into the spawned process — not `agent.adapterConfig.env`, which is resolved
|
|
11
|
+
* upstream before execute runs and is never read by the Claude adapter.
|
|
12
|
+
*/
|
|
13
|
+
export declare function stampClaudeAgentIdHeader(inner: ClaudeExecute): ClaudeExecute;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=claude-agent-id-header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-agent-id-header.d.ts","sourceRoot":"","sources":["../../src/adapters/claude-agent-id-header.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,KAAK,aAAa,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAIpD;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CAsB5E"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const AGENT_ID_HEADER = "X-Anthropic-Agent-Id";
|
|
2
|
+
/**
|
|
3
|
+
* Wraps the claude_local execute so every request the spawned Claude Code makes
|
|
4
|
+
* carries `X-Anthropic-Agent-Id: <agentId>` via ANTHROPIC_CUSTOM_HEADERS. A proxy
|
|
5
|
+
* such as better-ccflare reads that header to attribute requests per agent for
|
|
6
|
+
* downstream cost/token telemetry.
|
|
7
|
+
*
|
|
8
|
+
* The header is merged into `config.env` — the env the adapter actually forwards
|
|
9
|
+
* into the spawned process — not `agent.adapterConfig.env`, which is resolved
|
|
10
|
+
* upstream before execute runs and is never read by the Claude adapter.
|
|
11
|
+
*/
|
|
12
|
+
export function stampClaudeAgentIdHeader(inner) {
|
|
13
|
+
return (ctx) => {
|
|
14
|
+
const agent = ctx.agent;
|
|
15
|
+
// Strip CR/LF and bound length to prevent HTTP header injection — agentId is
|
|
16
|
+
// interpolated into ANTHROPIC_CUSTOM_HEADERS, which is forwarded as a header.
|
|
17
|
+
const agentId = agent?.id
|
|
18
|
+
? String(agent.id).replace(/[\r\n]/g, "").trim().slice(0, 256)
|
|
19
|
+
: undefined;
|
|
20
|
+
if (!agentId)
|
|
21
|
+
return inner(ctx);
|
|
22
|
+
const config = (ctx.config ?? {});
|
|
23
|
+
const env = {
|
|
24
|
+
...(config.env ?? {}),
|
|
25
|
+
};
|
|
26
|
+
const existing = typeof env.ANTHROPIC_CUSTOM_HEADERS === "string" ? env.ANTHROPIC_CUSTOM_HEADERS : "";
|
|
27
|
+
// Respect an X-Anthropic-Agent-Id already set via manual override — appending a
|
|
28
|
+
// second line would send a duplicate header to the proxy.
|
|
29
|
+
if (/(^|\n)\s*X-Anthropic-Agent-Id\s*:/i.test(existing))
|
|
30
|
+
return inner(ctx);
|
|
31
|
+
const header = `${AGENT_ID_HEADER}: ${agentId}`;
|
|
32
|
+
env.ANTHROPIC_CUSTOM_HEADERS = existing ? `${existing}\n${header}` : header;
|
|
33
|
+
return inner({ ...ctx, config: { ...config, env } });
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=claude-agent-id-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-agent-id-header.js","sourceRoot":"","sources":["../../src/adapters/claude-agent-id-header.ts"],"names":[],"mappings":"AAIA,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAE/C;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAoB;IAC3D,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,MAAM,KAAK,GAAI,GAAmC,CAAC,KAAK,CAAC;QACzD,6EAA6E;QAC7E,8EAA8E;QAC9E,MAAM,OAAO,GAAG,KAAK,EAAE,EAAE;YACvB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YAC9D,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,CAAE,GAA4B,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;QACvF,MAAM,GAAG,GAA4B;YACnC,GAAG,CAAE,MAAM,CAAC,GAA2C,IAAI,EAAE,CAAC;SAC/D,CAAC;QACF,MAAM,QAAQ,GACZ,OAAO,GAAG,CAAC,wBAAwB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,gFAAgF;QAChF,0DAA0D;QAC1D,IAAI,oCAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,GAAG,eAAe,KAAK,OAAO,EAAE,CAAC;QAChD,GAAG,CAAC,wBAAwB,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5E,OAAO,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,EAAkC,CAAC,CAAC;IACvF,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-agent-id-header.test.d.ts","sourceRoot":"","sources":["../../src/adapters/claude-agent-id-header.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { stampClaudeAgentIdHeader } from "./claude-agent-id-header.js";
|
|
3
|
+
function recordingInner() {
|
|
4
|
+
const sentinel = Symbol("inner-result");
|
|
5
|
+
const inner = vi.fn((ctx) => Promise.resolve(sentinel));
|
|
6
|
+
return { inner, sentinel };
|
|
7
|
+
}
|
|
8
|
+
function customHeaders(ctx) {
|
|
9
|
+
const value = ctx.config?.env?.ANTHROPIC_CUSTOM_HEADERS;
|
|
10
|
+
return typeof value === "string" ? value : undefined;
|
|
11
|
+
}
|
|
12
|
+
describe("stampClaudeAgentIdHeader", () => {
|
|
13
|
+
it("merges X-Anthropic-Agent-Id into config.env (the env the adapter forwards)", async () => {
|
|
14
|
+
const { inner, sentinel } = recordingInner();
|
|
15
|
+
const wrapped = stampClaudeAgentIdHeader(inner);
|
|
16
|
+
const result = await wrapped({
|
|
17
|
+
agent: { id: "agent-123" },
|
|
18
|
+
config: { cwd: "/work", env: { EXISTING: "keep" } },
|
|
19
|
+
});
|
|
20
|
+
expect(result).toBe(sentinel);
|
|
21
|
+
const forwarded = inner.mock.calls[0]?.[0];
|
|
22
|
+
expect(customHeaders(forwarded)).toBe("X-Anthropic-Agent-Id: agent-123");
|
|
23
|
+
// Unrelated config + env entries are preserved.
|
|
24
|
+
expect(forwarded.config?.cwd).toBe("/work");
|
|
25
|
+
expect(forwarded.config?.env?.EXISTING).toBe("keep");
|
|
26
|
+
});
|
|
27
|
+
it("appends to a pre-existing ANTHROPIC_CUSTOM_HEADERS value", async () => {
|
|
28
|
+
const { inner } = recordingInner();
|
|
29
|
+
const wrapped = stampClaudeAgentIdHeader(inner);
|
|
30
|
+
await wrapped({
|
|
31
|
+
agent: { id: "agent-9" },
|
|
32
|
+
config: { env: { ANTHROPIC_CUSTOM_HEADERS: "X-Trace: abc" } },
|
|
33
|
+
});
|
|
34
|
+
const forwarded = inner.mock.calls[0]?.[0];
|
|
35
|
+
expect(customHeaders(forwarded)).toBe("X-Trace: abc\nX-Anthropic-Agent-Id: agent-9");
|
|
36
|
+
});
|
|
37
|
+
it("strips CR/LF and bounds length to prevent header injection", async () => {
|
|
38
|
+
const { inner } = recordingInner();
|
|
39
|
+
const wrapped = stampClaudeAgentIdHeader(inner);
|
|
40
|
+
await wrapped({
|
|
41
|
+
agent: { id: "evil\r\nX-Injected: 1" },
|
|
42
|
+
config: { env: {} },
|
|
43
|
+
});
|
|
44
|
+
const forwarded = inner.mock.calls[0]?.[0];
|
|
45
|
+
expect(customHeaders(forwarded)).toBe("X-Anthropic-Agent-Id: evilX-Injected: 1");
|
|
46
|
+
expect(customHeaders(forwarded)).not.toContain("\n");
|
|
47
|
+
});
|
|
48
|
+
it("bounds an oversized agent id to 256 characters", async () => {
|
|
49
|
+
const { inner } = recordingInner();
|
|
50
|
+
const wrapped = stampClaudeAgentIdHeader(inner);
|
|
51
|
+
await wrapped({
|
|
52
|
+
agent: { id: "a".repeat(500) },
|
|
53
|
+
config: { env: {} },
|
|
54
|
+
});
|
|
55
|
+
const forwarded = inner.mock.calls[0]?.[0];
|
|
56
|
+
expect(customHeaders(forwarded)).toBe(`X-Anthropic-Agent-Id: ${"a".repeat(256)}`);
|
|
57
|
+
});
|
|
58
|
+
it("passes through unchanged when no agent id is available", async () => {
|
|
59
|
+
const { inner } = recordingInner();
|
|
60
|
+
const wrapped = stampClaudeAgentIdHeader(inner);
|
|
61
|
+
const ctx = { agent: {}, config: { env: { EXISTING: "keep" } } };
|
|
62
|
+
await wrapped(ctx);
|
|
63
|
+
// Same ctx object forwarded; no header added.
|
|
64
|
+
expect(inner.mock.calls[0]?.[0]).toBe(ctx);
|
|
65
|
+
expect(customHeaders(inner.mock.calls[0]?.[0])).toBeUndefined();
|
|
66
|
+
});
|
|
67
|
+
it("does not append a duplicate when X-Anthropic-Agent-Id is already present", async () => {
|
|
68
|
+
const { inner } = recordingInner();
|
|
69
|
+
const wrapped = stampClaudeAgentIdHeader(inner);
|
|
70
|
+
const ctx = {
|
|
71
|
+
agent: { id: "agent-7" },
|
|
72
|
+
config: { env: { ANTHROPIC_CUSTOM_HEADERS: "X-Anthropic-Agent-Id: manual-override" } },
|
|
73
|
+
};
|
|
74
|
+
await wrapped(ctx);
|
|
75
|
+
// Manual override is respected — ctx forwarded untouched.
|
|
76
|
+
expect(inner.mock.calls[0]?.[0]).toBe(ctx);
|
|
77
|
+
expect(customHeaders(inner.mock.calls[0]?.[0])).toBe("X-Anthropic-Agent-Id: manual-override");
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=claude-agent-id-header.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-agent-id-header.test.js","sourceRoot":"","sources":["../../src/adapters/claude-agent-id-header.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const hermesGatewayAgentConfigurationDoc = "# hermes_gateway agent configuration\n\nAdapter: hermes_gateway\n\nUse when:\n- Hermes is already running outside Paperclip and exposes its API server.\n- Paperclip should invoke Hermes through the gateway HTTP API instead of spawning Hermes locally.\n- The Hermes runtime may live on another host, a private overlay, in Docker, or behind a TLS reverse proxy.\n\nDon't use when:\n- Paperclip should start the Hermes CLI directly on the same host. Install a Hermes local adapter plugin for that flow.\n- Hermes is the process calling Paperclip APIs after claiming its key. That is Hermes-originated Paperclip API usage, not the gateway adapter transport.\n\nRuntime distinction:\n- hermes_local: an installed Hermes local adapter starts Hermes on the Paperclip host.\n- hermes_gateway: an installed Hermes gateway adapter calls an already-running Hermes API server using agentDefaultsPayload.apiBaseUrl.\n- Hermes-originated Paperclip API usage: Hermes calls Paperclip with PAPERCLIP_API_URL and the Paperclip API key claimed through the standard join approval flow. Do not use agentDefaultsPayload.apiBaseUrl for Paperclip API calls. For internet-facing Hermes chat/webhook task bridges, use a separate task_bridge key instead of exposing the normal claimed agent key.\n\nHermes gateway process setup:\n- Set API_SERVER_ENABLED=true.\n- Set API_SERVER_KEY to a generated secret value. Do not paste a real key into tickets, docs, screenshots, or tests.\n- Start Hermes with: hermes gateway run --replace --accept-hooks\n- Default Hermes API server port: 8642.\n- Default Hermes dashboard port: 9119. If Paperclip is configured with a default dashboard root or chat URL such as http://127.0.0.1:9119 or http://127.0.0.1:9119/chat, it maps the base URL to /api automatically.\n- Watch out: /chat and the dashboard root are browser UI routes. Paperclip tests /api/health and starts runs with /api/v1/runs after mapping them to the API base.\n\nJoin request minimum:\n{\n \"requestType\": \"agent\",\n \"agentName\": \"My Hermes Gateway Agent\",\n \"adapterType\": \"hermes_gateway\",\n \"capabilities\": \"Hermes gateway agent\",\n \"agentDefaultsPayload\": {\n \"apiBaseUrl\": \"http://127.0.0.1:8642\",\n \"apiKey\": \"<same-value-as-API_SERVER_KEY>\",\n \"paperclipApiUrl\": \"http://localhost:3100\"\n }\n}\n\nCore fields:\n- agentDefaultsPayload.apiBaseUrl (string, required): Base URL for the Hermes API server as reachable from the Paperclip server. A default dashboard root or chat URL such as http://127.0.0.1:9119 or http://127.0.0.1:9119/chat is accepted and maps to http://127.0.0.1:9119/api.\n- agentDefaultsPayload.apiKey (string, required unless the adapter package documents another auth field): Hermes API server key matching API_SERVER_KEY. This is the Hermes gateway key, not the claimed Paperclip API key.\n- agentDefaultsPayload.paperclipApiUrl (string, strongly recommended): Paperclip base URL as reachable from Hermes for invite, claim, skill bootstrap, and later Paperclip API calls.\n- agentDefaultsPayload.timeoutSec or timeoutMs (number, optional): Runtime request timeout when supported by the installed Hermes gateway adapter.\n\nNetwork examples:\n- Local loopback on one host: agentDefaultsPayload.apiBaseUrl = \"http://127.0.0.1:8642\"; agentDefaultsPayload.paperclipApiUrl = \"http://127.0.0.1:3100\".\n- Local dashboard root or chat URL on one host: agentDefaultsPayload.apiBaseUrl = \"http://127.0.0.1:9119\" or \"http://127.0.0.1:9119/chat\"; Paperclip maps it to \"http://127.0.0.1:9119/api\".\n- LAN/private network: agentDefaultsPayload.apiBaseUrl = \"http://192.168.1.25:8642\"; agentDefaultsPayload.paperclipApiUrl = \"http://192.168.1.10:3100\". Use private IPs or hostnames reachable from both machines.\n- Private overlay: agentDefaultsPayload.apiBaseUrl = \"http://hermes-host.tailnet-name.ts.net:8642\"; agentDefaultsPayload.paperclipApiUrl = \"http://paperclip-host.tailnet-name.ts.net:3100\". Add the Paperclip hostname with pnpm penclip allowed-hostname <host> when authenticated/private mode requires it.\n- Docker: if Hermes runs on the host and Paperclip runs in Docker, use agentDefaultsPayload.apiBaseUrl = \"http://host.docker.internal:8642\". If Hermes runs in another container, use the Compose service DNS name such as \"http://hermes:8642\".\n- Reverse proxy/TLS: publish Hermes behind HTTPS and set agentDefaultsPayload.apiBaseUrl = \"https://hermes-gateway.example\"; set agentDefaultsPayload.paperclipApiUrl = \"https://paperclip.example\". Keep API_SERVER_KEY required at the origin or proxy.\n\nSecurity notes:\n- Treat API_SERVER_KEY and PAPERCLIP_BRIDGE_API_KEY as secrets.\n- When claiming the normal Paperclip agent API key, store the parsed token field from the raw claim response before printing or summarizing it. Hermes/tool displays may redact secrets with literal ... or [redacted]; those previews are not valid keys.\n- Never use a normal claimed Paperclip agent API key for internet-facing Hermes-originated task bridge calls; task_bridge keys cannot use company-wide issue list/search/read surfaces and can only mutate bridge-created or assigned issues.\n- Prefer private network or TLS for non-loopback gateway access.\n- Use placeholders such as <same-value-as-API_SERVER_KEY> in docs and tests.\n";
|
|
2
|
+
//# sourceMappingURL=hermes-gateway-doc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hermes-gateway-doc.d.ts","sourceRoot":"","sources":["../../src/adapters/hermes-gateway-doc.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kCAAkC,6qKA2D9C,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export const hermesGatewayAgentConfigurationDoc = `# hermes_gateway agent configuration
|
|
2
|
+
|
|
3
|
+
Adapter: hermes_gateway
|
|
4
|
+
|
|
5
|
+
Use when:
|
|
6
|
+
- Hermes is already running outside Paperclip and exposes its API server.
|
|
7
|
+
- Paperclip should invoke Hermes through the gateway HTTP API instead of spawning Hermes locally.
|
|
8
|
+
- The Hermes runtime may live on another host, a private overlay, in Docker, or behind a TLS reverse proxy.
|
|
9
|
+
|
|
10
|
+
Don't use when:
|
|
11
|
+
- Paperclip should start the Hermes CLI directly on the same host. Install a Hermes local adapter plugin for that flow.
|
|
12
|
+
- Hermes is the process calling Paperclip APIs after claiming its key. That is Hermes-originated Paperclip API usage, not the gateway adapter transport.
|
|
13
|
+
|
|
14
|
+
Runtime distinction:
|
|
15
|
+
- hermes_local: an installed Hermes local adapter starts Hermes on the Paperclip host.
|
|
16
|
+
- hermes_gateway: an installed Hermes gateway adapter calls an already-running Hermes API server using agentDefaultsPayload.apiBaseUrl.
|
|
17
|
+
- Hermes-originated Paperclip API usage: Hermes calls Paperclip with PAPERCLIP_API_URL and the Paperclip API key claimed through the standard join approval flow. Do not use agentDefaultsPayload.apiBaseUrl for Paperclip API calls. For internet-facing Hermes chat/webhook task bridges, use a separate task_bridge key instead of exposing the normal claimed agent key.
|
|
18
|
+
|
|
19
|
+
Hermes gateway process setup:
|
|
20
|
+
- Set API_SERVER_ENABLED=true.
|
|
21
|
+
- Set API_SERVER_KEY to a generated secret value. Do not paste a real key into tickets, docs, screenshots, or tests.
|
|
22
|
+
- Start Hermes with: hermes gateway run --replace --accept-hooks
|
|
23
|
+
- Default Hermes API server port: 8642.
|
|
24
|
+
- Default Hermes dashboard port: 9119. If Paperclip is configured with a default dashboard root or chat URL such as http://127.0.0.1:9119 or http://127.0.0.1:9119/chat, it maps the base URL to /api automatically.
|
|
25
|
+
- Watch out: /chat and the dashboard root are browser UI routes. Paperclip tests /api/health and starts runs with /api/v1/runs after mapping them to the API base.
|
|
26
|
+
|
|
27
|
+
Join request minimum:
|
|
28
|
+
{
|
|
29
|
+
"requestType": "agent",
|
|
30
|
+
"agentName": "My Hermes Gateway Agent",
|
|
31
|
+
"adapterType": "hermes_gateway",
|
|
32
|
+
"capabilities": "Hermes gateway agent",
|
|
33
|
+
"agentDefaultsPayload": {
|
|
34
|
+
"apiBaseUrl": "http://127.0.0.1:8642",
|
|
35
|
+
"apiKey": "<same-value-as-API_SERVER_KEY>",
|
|
36
|
+
"paperclipApiUrl": "http://localhost:3100"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
Core fields:
|
|
41
|
+
- agentDefaultsPayload.apiBaseUrl (string, required): Base URL for the Hermes API server as reachable from the Paperclip server. A default dashboard root or chat URL such as http://127.0.0.1:9119 or http://127.0.0.1:9119/chat is accepted and maps to http://127.0.0.1:9119/api.
|
|
42
|
+
- agentDefaultsPayload.apiKey (string, required unless the adapter package documents another auth field): Hermes API server key matching API_SERVER_KEY. This is the Hermes gateway key, not the claimed Paperclip API key.
|
|
43
|
+
- agentDefaultsPayload.paperclipApiUrl (string, strongly recommended): Paperclip base URL as reachable from Hermes for invite, claim, skill bootstrap, and later Paperclip API calls.
|
|
44
|
+
- agentDefaultsPayload.timeoutSec or timeoutMs (number, optional): Runtime request timeout when supported by the installed Hermes gateway adapter.
|
|
45
|
+
|
|
46
|
+
Network examples:
|
|
47
|
+
- Local loopback on one host: agentDefaultsPayload.apiBaseUrl = "http://127.0.0.1:8642"; agentDefaultsPayload.paperclipApiUrl = "http://127.0.0.1:3100".
|
|
48
|
+
- Local dashboard root or chat URL on one host: agentDefaultsPayload.apiBaseUrl = "http://127.0.0.1:9119" or "http://127.0.0.1:9119/chat"; Paperclip maps it to "http://127.0.0.1:9119/api".
|
|
49
|
+
- LAN/private network: agentDefaultsPayload.apiBaseUrl = "http://192.168.1.25:8642"; agentDefaultsPayload.paperclipApiUrl = "http://192.168.1.10:3100". Use private IPs or hostnames reachable from both machines.
|
|
50
|
+
- Private overlay: agentDefaultsPayload.apiBaseUrl = "http://hermes-host.tailnet-name.ts.net:8642"; agentDefaultsPayload.paperclipApiUrl = "http://paperclip-host.tailnet-name.ts.net:3100". Add the Paperclip hostname with pnpm penclip allowed-hostname <host> when authenticated/private mode requires it.
|
|
51
|
+
- Docker: if Hermes runs on the host and Paperclip runs in Docker, use agentDefaultsPayload.apiBaseUrl = "http://host.docker.internal:8642". If Hermes runs in another container, use the Compose service DNS name such as "http://hermes:8642".
|
|
52
|
+
- Reverse proxy/TLS: publish Hermes behind HTTPS and set agentDefaultsPayload.apiBaseUrl = "https://hermes-gateway.example"; set agentDefaultsPayload.paperclipApiUrl = "https://paperclip.example". Keep API_SERVER_KEY required at the origin or proxy.
|
|
53
|
+
|
|
54
|
+
Security notes:
|
|
55
|
+
- Treat API_SERVER_KEY and PAPERCLIP_BRIDGE_API_KEY as secrets.
|
|
56
|
+
- When claiming the normal Paperclip agent API key, store the parsed token field from the raw claim response before printing or summarizing it. Hermes/tool displays may redact secrets with literal ... or [redacted]; those previews are not valid keys.
|
|
57
|
+
- Never use a normal claimed Paperclip agent API key for internet-facing Hermes-originated task bridge calls; task_bridge keys cannot use company-wide issue list/search/read surfaces and can only mutate bridge-created or assigned issues.
|
|
58
|
+
- Prefer private network or TLS for non-loopback gateway access.
|
|
59
|
+
- Use placeholders such as <same-value-as-API_SERVER_KEY> in docs and tests.
|
|
60
|
+
`;
|
|
61
|
+
//# sourceMappingURL=hermes-gateway-doc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hermes-gateway-doc.js","sourceRoot":"","sources":["../../src/adapters/hermes-gateway-doc.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kCAAkC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DjD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,6BAA6B,EAE7B,mBAAmB,EACpB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,6BAA6B,EAE7B,mBAAmB,EACpB,MAAM,YAAY,CAAC;AA0fpB;;;;;;;;;;;;GAYG;AACH,wBAAgB,kCAAkC,CAChD,eAAe,EAAE,mBAAmB,GACnC,mBAAmB,CAQrB;AAiCD;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEvD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAQxE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAc1D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAMtE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAElE;AAiCD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAY9F;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAYjG;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAQrG;AAED,wBAAgB,kBAAkB,IAAI,mBAAmB,EAAE,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,mBAAmB,EAAE,CAMjE;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAAC,CAW5F;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAcxE;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,iEAAiE;AACjE,wBAAgB,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC,CAEhD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAE1E;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAMhF"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { parseAdapterModelsEnv } from "../services/adapter-models-env.js";
|
|
2
|
+
import { stampClaudeAgentIdHeader } from "./claude-agent-id-header.js";
|
|
1
3
|
import { buildSandboxNpmInstallCommand, getAdapterSessionManagement, } from "@penclipai/adapter-utils";
|
|
2
4
|
import { execute as acpxExecute, testEnvironment as acpxTestEnvironment, sessionCodec as acpxSessionCodec, getConfigSchema as getAcpxConfigSchema, listAcpxSkills, syncAcpxSkills, } from "@penclipai/adapter-acpx-local/server";
|
|
3
5
|
import { agentConfigurationDoc as acpxAgentConfigurationDoc, models as acpxModels, } from "@penclipai/adapter-acpx-local";
|
|
@@ -99,7 +101,7 @@ async function listAcpxModels() {
|
|
|
99
101
|
}
|
|
100
102
|
const claudeLocalAdapter = {
|
|
101
103
|
type: "claude_local",
|
|
102
|
-
execute: wrapExecuteWithPaperclipPromptLayers(claudeExecute),
|
|
104
|
+
execute: stampClaudeAgentIdHeader(wrapExecuteWithPaperclipPromptLayers(claudeExecute)),
|
|
103
105
|
testEnvironment: claudeTestEnvironment,
|
|
104
106
|
listSkills: listClaudeSkills,
|
|
105
107
|
syncSkills: syncClaudeSkills,
|
|
@@ -436,7 +438,35 @@ export function requireServerAdapter(type) {
|
|
|
436
438
|
export function getServerAdapter(type) {
|
|
437
439
|
return findActiveServerAdapter(type) ?? processAdapter;
|
|
438
440
|
}
|
|
441
|
+
/**
|
|
442
|
+
* Memoized view of PAPERCLIP_ADAPTER_MODELS, keyed by the raw env string so
|
|
443
|
+
* tests (and live env mutation) that change the variable are still observed.
|
|
444
|
+
* Parsing happens at most once per distinct raw value instead of per
|
|
445
|
+
* `listAdapterModels` request, and malformed values fail SOFT here: we log the
|
|
446
|
+
* parse error once (per distinct raw value) and fall back to adapter-discovered
|
|
447
|
+
* models rather than throwing at request time.
|
|
448
|
+
*/
|
|
449
|
+
let adapterModelsEnvCache = null;
|
|
450
|
+
function getDeclaredAdapterModels() {
|
|
451
|
+
const raw = process.env.PAPERCLIP_ADAPTER_MODELS;
|
|
452
|
+
if (adapterModelsEnvCache && adapterModelsEnvCache.raw === raw) {
|
|
453
|
+
return adapterModelsEnvCache.value;
|
|
454
|
+
}
|
|
455
|
+
let value = null;
|
|
456
|
+
try {
|
|
457
|
+
value = parseAdapterModelsEnv(process.env);
|
|
458
|
+
}
|
|
459
|
+
catch (err) {
|
|
460
|
+
console.error("[paperclip] Invalid PAPERCLIP_ADAPTER_MODELS; ignoring declared model lists:", err);
|
|
461
|
+
}
|
|
462
|
+
adapterModelsEnvCache = { raw, value };
|
|
463
|
+
return value;
|
|
464
|
+
}
|
|
439
465
|
export async function listAdapterModels(type) {
|
|
466
|
+
const declaredModels = getDeclaredAdapterModels();
|
|
467
|
+
if (declaredModels && declaredModels[type]?.length) {
|
|
468
|
+
return declaredModels[type].map((m) => ({ id: m.id, label: m.label ?? m.id }));
|
|
469
|
+
}
|
|
440
470
|
const adapter = findActiveServerAdapter(type);
|
|
441
471
|
if (!adapter)
|
|
442
472
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-auth-jwt.d.ts","sourceRoot":"","sources":["../src/agent-auth-jwt.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;
|
|
1
|
+
{"version":3,"file":"agent-auth-jwt.d.ts","sourceRoot":"","sources":["../src/agent-auth-jwt.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAyED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,iBA4BzG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAkE7E"}
|
package/dist/agent-auth-jwt.js
CHANGED
|
@@ -6,17 +6,39 @@ function parseNumber(value, fallback) {
|
|
|
6
6
|
return fallback;
|
|
7
7
|
return Math.floor(parsed);
|
|
8
8
|
}
|
|
9
|
+
function parseBooleanEnv(value) {
|
|
10
|
+
if (!value)
|
|
11
|
+
return false;
|
|
12
|
+
const normalized = value.trim().toLowerCase();
|
|
13
|
+
return normalized === "1" || normalized === "true" || normalized === "yes" || normalized === "on";
|
|
14
|
+
}
|
|
9
15
|
function jwtConfig() {
|
|
10
16
|
const secret = process.env.PAPERCLIP_AGENT_JWT_SECRET?.trim() || process.env.BETTER_AUTH_SECRET?.trim();
|
|
11
17
|
if (!secret)
|
|
12
18
|
return null;
|
|
13
19
|
return {
|
|
14
20
|
secret,
|
|
15
|
-
ttlSeconds: parseNumber(process.env.PAPERCLIP_AGENT_JWT_TTL_SECONDS, 60 * 60
|
|
21
|
+
ttlSeconds: parseNumber(process.env.PAPERCLIP_AGENT_JWT_TTL_SECONDS, 60 * 60),
|
|
16
22
|
issuer: process.env.PAPERCLIP_AGENT_JWT_ISSUER ?? "paperclip",
|
|
17
23
|
audience: process.env.PAPERCLIP_AGENT_JWT_AUDIENCE ?? "paperclip-api",
|
|
24
|
+
disableLegacyFallback: parseBooleanEnv(process.env.PAPERCLIP_AGENT_JWT_DISABLE_LEGACY_FALLBACK),
|
|
18
25
|
};
|
|
19
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Derive a per-company signing key from the master JWT secret and a companyId.
|
|
29
|
+
*
|
|
30
|
+
* In a multi-tenant deployment this ensures that a JWT signed for company A
|
|
31
|
+
* cannot be reused to authenticate as an agent in company B, even if the raw
|
|
32
|
+
* token leaks. The instance-wide master secret is never used to sign new
|
|
33
|
+
* tokens — it is retained only as a verification fallback so that tokens
|
|
34
|
+
* issued before this change continue to validate.
|
|
35
|
+
*
|
|
36
|
+
* The derivation domain-separates with the `jwt:` prefix so the same master
|
|
37
|
+
* secret can safely be reused for other HMAC purposes without key reuse.
|
|
38
|
+
*/
|
|
39
|
+
function deriveCompanySigningKey(masterSecret, companyId) {
|
|
40
|
+
return createHmac("sha256", masterSecret).update(`jwt:${companyId}`).digest("hex");
|
|
41
|
+
}
|
|
20
42
|
function base64UrlEncode(value) {
|
|
21
43
|
return Buffer.from(value, "utf8").toString("base64url");
|
|
22
44
|
}
|
|
@@ -62,7 +84,10 @@ export function createLocalAgentJwt(agentId, companyId, adapterType, runId) {
|
|
|
62
84
|
typ: "JWT",
|
|
63
85
|
};
|
|
64
86
|
const signingInput = `${base64UrlEncode(JSON.stringify(header))}.${base64UrlEncode(JSON.stringify(claims))}`;
|
|
65
|
-
|
|
87
|
+
// Sign with the per-company derived key so a leaked token cannot be reused
|
|
88
|
+
// across tenants.
|
|
89
|
+
const signingKey = deriveCompanySigningKey(config.secret, companyId);
|
|
90
|
+
const signature = signPayload(signingKey, signingInput);
|
|
66
91
|
return `${signingInput}.${signature}`;
|
|
67
92
|
}
|
|
68
93
|
export function verifyLocalAgentJwt(token) {
|
|
@@ -78,21 +103,41 @@ export function verifyLocalAgentJwt(token) {
|
|
|
78
103
|
const header = parseJson(base64UrlDecode(headerB64));
|
|
79
104
|
if (!header || header.alg !== JWT_ALGORITHM)
|
|
80
105
|
return null;
|
|
81
|
-
const signingInput = `${headerB64}.${claimsB64}`;
|
|
82
|
-
const expectedSig = signPayload(config.secret, signingInput);
|
|
83
|
-
if (!safeCompare(signature, expectedSig))
|
|
84
|
-
return null;
|
|
85
106
|
const claims = parseJson(base64UrlDecode(claimsB64));
|
|
86
107
|
if (!claims)
|
|
87
108
|
return null;
|
|
109
|
+
const claimedCompanyId = typeof claims.company_id === "string" ? claims.company_id : null;
|
|
110
|
+
if (!claimedCompanyId)
|
|
111
|
+
return null;
|
|
112
|
+
const signingInput = `${headerB64}.${claimsB64}`;
|
|
113
|
+
// Try the per-company derived key first (current tokens). Fall back to the
|
|
114
|
+
// raw master secret so tokens issued before per-company derivation existed
|
|
115
|
+
// continue to verify — this preserves backward compatibility for any
|
|
116
|
+
// outstanding tokens (TTL bounds the legacy window naturally).
|
|
117
|
+
//
|
|
118
|
+
// Operators should set `PAPERCLIP_AGENT_JWT_DISABLE_LEGACY_FALLBACK=true`
|
|
119
|
+
// approximately one JWT TTL (~1h by default, see PAPERCLIP_AGENT_JWT_TTL_SECONDS)
|
|
120
|
+
// after deploying per-company signing. Once set, the master-secret fallback
|
|
121
|
+
// is disabled and only tokens validating under the per-company derived key
|
|
122
|
+
// are accepted — closing the window in which a leaked master secret could
|
|
123
|
+
// be used to forge tokens with arbitrary future `exp` values for any tenant.
|
|
124
|
+
const perCompanyKey = deriveCompanySigningKey(config.secret, claimedCompanyId);
|
|
125
|
+
const perCompanySig = signPayload(perCompanyKey, signingInput);
|
|
126
|
+
let signatureOk = safeCompare(signature, perCompanySig);
|
|
127
|
+
if (!signatureOk && !config.disableLegacyFallback) {
|
|
128
|
+
const legacySig = signPayload(config.secret, signingInput);
|
|
129
|
+
signatureOk = safeCompare(signature, legacySig);
|
|
130
|
+
}
|
|
131
|
+
if (!signatureOk)
|
|
132
|
+
return null;
|
|
88
133
|
const sub = typeof claims.sub === "string" ? claims.sub : null;
|
|
89
|
-
const companyId = typeof claims.company_id === "string" ? claims.company_id : null;
|
|
90
134
|
const adapterType = typeof claims.adapter_type === "string" ? claims.adapter_type : null;
|
|
91
135
|
const runId = typeof claims.run_id === "string" ? claims.run_id : null;
|
|
92
136
|
const iat = typeof claims.iat === "number" ? claims.iat : null;
|
|
93
137
|
const exp = typeof claims.exp === "number" ? claims.exp : null;
|
|
94
|
-
if (!sub || !
|
|
138
|
+
if (!sub || !adapterType || !runId || !iat || !exp)
|
|
95
139
|
return null;
|
|
140
|
+
const companyId = claimedCompanyId;
|
|
96
141
|
const now = Math.floor(Date.now() / 1000);
|
|
97
142
|
if (exp < now)
|
|
98
143
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-auth-jwt.js","sourceRoot":"","sources":["../src/agent-auth-jwt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAmB1D,MAAM,aAAa,GAAG,OAAO,CAAC;AAE9B,SAAS,WAAW,CAAC,KAAyB,EAAE,QAAgB;IAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,SAAS;IAChB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;IACxG,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,OAAO;QACL,MAAM;QACN,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,EAAE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"agent-auth-jwt.js","sourceRoot":"","sources":["../src/agent-auth-jwt.ts"],"names":[],"mappings":"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"}
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAU,KAAK,OAAO,IAAI,cAAc,EAAoC,MAAM,SAAS,CAAC;AAI5G,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAU,KAAK,OAAO,IAAI,cAAc,EAAoC,MAAM,SAAS,CAAC;AAI5G,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAiCzD,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,uCAAuC,CAAC;AAW/C,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAa1G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAMrE,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAqB7C,wBAAgB,oCAAoC,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAI1E;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIvE;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAKnE;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAGpE;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE;IACrD,cAAc,EAAE,cAAc,CAAC;IAC/B,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,GAAG,OAAO,CAKV;AAED,wBAAsB,SAAS,CAC7B,EAAE,EAAE,EAAE,EACN,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,qBAAqB,CAAC,EAAE;QACtB,0BAA0B,CAAC,KAAK,CAAC,EAAE;YACjC,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,GAAG,CAAC,EAAE,IAAI,CAAC;SACZ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACtB,CAAC;IACF,qBAAqB,CAAC,EAAE,6BAA6B,CAAC;IACtD,cAAc,EAAE,cAAc,CAAC;IAC/B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,sBAAsB,EAAE,OAAO,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,EAAE,CAAC;IACvB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAC3C,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;CACnF,wDA0bF"}
|