@paperclipai/server 2026.824.0 → 2026.825.0-beta.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/builtin-adapter-types.d.ts.map +1 -1
- package/dist/adapters/builtin-adapter-types.js +1 -0
- package/dist/adapters/builtin-adapter-types.js.map +1 -1
- package/dist/adapters/plugin-loader.d.ts +1 -0
- package/dist/adapters/plugin-loader.d.ts.map +1 -1
- package/dist/adapters/plugin-loader.js +12 -1
- package/dist/adapters/plugin-loader.js.map +1 -1
- package/dist/adapters/plugin-loader.test.d.ts +2 -0
- package/dist/adapters/plugin-loader.test.d.ts.map +1 -0
- package/dist/adapters/plugin-loader.test.js +37 -0
- package/dist/adapters/plugin-loader.test.js.map +1 -0
- package/dist/adapters/registry.d.ts.map +1 -1
- package/dist/adapters/registry.js +68 -5
- package/dist/adapters/registry.js.map +1 -1
- package/dist/adapters/registry.test.d.ts +2 -0
- package/dist/adapters/registry.test.d.ts.map +1 -0
- package/dist/adapters/registry.test.js +35 -0
- package/dist/adapters/registry.test.js.map +1 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +5 -7
- package/dist/app.js.map +1 -1
- package/dist/auth/better-auth.d.ts +10 -0
- package/dist/auth/better-auth.d.ts.map +1 -1
- package/dist/auth/better-auth.js +47 -0
- package/dist/auth/better-auth.js.map +1 -1
- package/dist/auth/workspace-login-handoff-exchange.d.ts +75 -0
- package/dist/auth/workspace-login-handoff-exchange.d.ts.map +1 -0
- package/dist/auth/workspace-login-handoff-exchange.js +73 -0
- package/dist/auth/workspace-login-handoff-exchange.js.map +1 -0
- package/dist/auth/workspace-login-handoff-plugin.d.ts +40 -0
- package/dist/auth/workspace-login-handoff-plugin.d.ts.map +1 -0
- package/dist/auth/workspace-login-handoff-plugin.js +140 -0
- package/dist/auth/workspace-login-handoff-plugin.js.map +1 -0
- package/dist/auth/workspace-login-handoff.d.ts +189 -0
- package/dist/auth/workspace-login-handoff.d.ts.map +1 -0
- package/dist/auth/workspace-login-handoff.js +319 -0
- package/dist/auth/workspace-login-handoff.js.map +1 -0
- package/dist/build-info.json +3 -0
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +14 -0
- package/dist/config.js.map +1 -1
- package/dist/dev-runner-worktree.d.ts.map +1 -1
- package/dist/dev-runner-worktree.js +5 -0
- package/dist/dev-runner-worktree.js.map +1 -1
- package/dist/duplex-aggregate-ceiling-env.d.ts +21 -0
- package/dist/duplex-aggregate-ceiling-env.d.ts.map +1 -0
- package/dist/duplex-aggregate-ceiling-env.js +23 -0
- package/dist/duplex-aggregate-ceiling-env.js.map +1 -0
- package/dist/embedded-postgres-supervisor.d.ts +27 -0
- package/dist/embedded-postgres-supervisor.d.ts.map +1 -0
- package/dist/embedded-postgres-supervisor.js +72 -0
- package/dist/embedded-postgres-supervisor.js.map +1 -0
- package/dist/errors.d.ts +2 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +6 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +115 -7
- package/dist/index.js.map +1 -1
- package/dist/instrumentation.d.ts +33 -0
- package/dist/instrumentation.d.ts.map +1 -1
- package/dist/instrumentation.js +68 -1
- package/dist/instrumentation.js.map +1 -1
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +35 -10
- package/dist/middleware/auth.js.map +1 -1
- package/dist/middleware/error-handler.d.ts.map +1 -1
- package/dist/middleware/error-handler.js +8 -1
- package/dist/middleware/error-handler.js.map +1 -1
- package/dist/middleware/logger.d.ts.map +1 -1
- package/dist/middleware/logger.js +5 -2
- package/dist/middleware/logger.js.map +1 -1
- package/dist/middleware/redact-sensitive.d.ts.map +1 -1
- package/dist/middleware/redact-sensitive.js +4 -0
- package/dist/middleware/redact-sensitive.js.map +1 -1
- package/dist/middleware/validate.d.ts +3 -1
- package/dist/middleware/validate.d.ts.map +1 -1
- package/dist/middleware/validate.js +37 -0
- package/dist/middleware/validate.js.map +1 -1
- package/dist/routes/access.d.ts.map +1 -1
- package/dist/routes/access.js +20 -0
- package/dist/routes/access.js.map +1 -1
- package/dist/routes/activity.js +4 -4
- package/dist/routes/activity.js.map +1 -1
- package/dist/routes/adapter-login-route-spine.d.ts +81 -0
- package/dist/routes/adapter-login-route-spine.d.ts.map +1 -0
- package/dist/routes/adapter-login-route-spine.js +40 -0
- package/dist/routes/adapter-login-route-spine.js.map +1 -0
- package/dist/routes/adapters.d.ts +33 -0
- package/dist/routes/adapters.d.ts.map +1 -1
- package/dist/routes/adapters.js +35 -1
- package/dist/routes/adapters.js.map +1 -1
- package/dist/routes/adapters.test.d.ts +2 -0
- package/dist/routes/adapters.test.d.ts.map +1 -0
- package/dist/routes/adapters.test.js +58 -0
- package/dist/routes/adapters.test.js.map +1 -0
- package/dist/routes/agents.d.ts.map +1 -1
- package/dist/routes/agents.js +281 -91
- package/dist/routes/agents.js.map +1 -1
- package/dist/routes/cases.d.ts +11 -22
- package/dist/routes/cases.d.ts.map +1 -1
- package/dist/routes/cases.js +13 -13
- package/dist/routes/companies.js +3 -3
- package/dist/routes/decision-training.js +6 -6
- package/dist/routes/decisions.js +4 -4
- package/dist/routes/decisions.js.map +1 -1
- package/dist/routes/environments.d.ts.map +1 -1
- package/dist/routes/environments.js +79 -6
- package/dist/routes/environments.js.map +1 -1
- package/dist/routes/execution-workspaces.d.ts.map +1 -1
- package/dist/routes/execution-workspaces.js +384 -16
- package/dist/routes/execution-workspaces.js.map +1 -1
- package/dist/routes/file-resources.js +2 -2
- package/dist/routes/health.d.ts.map +1 -1
- package/dist/routes/health.js +58 -4
- package/dist/routes/health.js.map +1 -1
- package/dist/routes/instance-settings.d.ts.map +1 -1
- package/dist/routes/instance-settings.js +40 -0
- package/dist/routes/instance-settings.js.map +1 -1
- package/dist/routes/issues.d.ts +10 -0
- package/dist/routes/issues.d.ts.map +1 -1
- package/dist/routes/issues.js +495 -65
- package/dist/routes/issues.js.map +1 -1
- package/dist/routes/openapi.d.ts.map +1 -1
- package/dist/routes/openapi.js +241 -122
- package/dist/routes/openapi.js.map +1 -1
- package/dist/routes/pipelines.js +19 -19
- package/dist/routes/plugins.d.ts.map +1 -1
- package/dist/routes/plugins.js +22 -0
- package/dist/routes/plugins.js.map +1 -1
- package/dist/routes/projects.d.ts.map +1 -1
- package/dist/routes/projects.js +2 -0
- package/dist/routes/projects.js.map +1 -1
- package/dist/routes/routines.js +2 -2
- package/dist/routes/routines.js.map +1 -1
- package/dist/routes/secrets.d.ts +1 -1
- package/dist/routes/secrets.d.ts.map +1 -1
- package/dist/routes/secrets.js +39 -50
- package/dist/routes/secrets.js.map +1 -1
- package/dist/routes/setup-token-route.test.js +50 -3
- package/dist/routes/setup-token-route.test.js.map +1 -1
- package/dist/services/adapter-login-lease.d.ts +50 -0
- package/dist/services/adapter-login-lease.d.ts.map +1 -0
- package/dist/services/adapter-login-lease.js +26 -0
- package/dist/services/adapter-login-lease.js.map +1 -0
- package/dist/services/adapter-login-lease.test.d.ts +2 -0
- package/dist/services/adapter-login-lease.test.d.ts.map +1 -0
- package/dist/services/adapter-login-lease.test.js +68 -0
- package/dist/services/adapter-login-lease.test.js.map +1 -0
- package/dist/services/agent-action-audit.js +1 -1
- package/dist/services/agent-secret-bindings.d.ts +15 -0
- package/dist/services/agent-secret-bindings.d.ts.map +1 -1
- package/dist/services/agent-secret-bindings.js +2 -2
- package/dist/services/agent-secret-bindings.js.map +1 -1
- package/dist/services/agents.d.ts +13 -13
- package/dist/services/agents.d.ts.map +1 -1
- package/dist/services/agents.js +46 -5
- package/dist/services/agents.js.map +1 -1
- package/dist/services/artifact-review-documents.d.ts +34 -0
- package/dist/services/artifact-review-documents.d.ts.map +1 -0
- package/dist/services/artifact-review-documents.js +196 -0
- package/dist/services/artifact-review-documents.js.map +1 -0
- package/dist/services/assets.d.ts +1 -1
- package/dist/services/codex-device-login-credential-read.d.ts +58 -0
- package/dist/services/codex-device-login-credential-read.d.ts.map +1 -0
- package/dist/services/codex-device-login-credential-read.js +118 -0
- package/dist/services/codex-device-login-credential-read.js.map +1 -0
- package/dist/services/codex-device-login-reaper.d.ts.map +1 -1
- package/dist/services/codex-device-login-reaper.js +8 -5
- package/dist/services/codex-device-login-reaper.js.map +1 -1
- package/dist/services/codex-device-login-service.d.ts +127 -36
- package/dist/services/codex-device-login-service.d.ts.map +1 -1
- package/dist/services/codex-device-login-service.js +204 -84
- package/dist/services/codex-device-login-service.js.map +1 -1
- package/dist/services/company-portability.d.ts +3 -1
- package/dist/services/company-portability.d.ts.map +1 -1
- package/dist/services/company-portability.js +76 -20
- package/dist/services/company-portability.js.map +1 -1
- package/dist/services/company-skill-policy.d.ts +1 -1
- package/dist/services/costs.d.ts +1 -1
- package/dist/services/decisions.d.ts +6 -6
- package/dist/services/duplex-observability-recorder.d.ts +62 -0
- package/dist/services/duplex-observability-recorder.d.ts.map +1 -0
- package/dist/services/duplex-observability-recorder.js +54 -0
- package/dist/services/duplex-observability-recorder.js.map +1 -0
- package/dist/services/environment-config.js +5 -5
- package/dist/services/environment-config.js.map +1 -1
- package/dist/services/environment-custom-image-runtime.d.ts +116 -0
- package/dist/services/environment-custom-image-runtime.d.ts.map +1 -1
- package/dist/services/environment-custom-image-runtime.js +255 -1
- package/dist/services/environment-custom-image-runtime.js.map +1 -1
- package/dist/services/environment-custom-images.d.ts +39 -0
- package/dist/services/environment-custom-images.d.ts.map +1 -1
- package/dist/services/environment-custom-images.js +219 -17
- package/dist/services/environment-custom-images.js.map +1 -1
- package/dist/services/environment-driver-traits.d.ts +109 -0
- package/dist/services/environment-driver-traits.d.ts.map +1 -0
- package/dist/services/environment-driver-traits.js +102 -0
- package/dist/services/environment-driver-traits.js.map +1 -0
- package/dist/services/environment-execution-target.d.ts +4 -0
- package/dist/services/environment-execution-target.d.ts.map +1 -1
- package/dist/services/environment-execution-target.js +63 -7
- package/dist/services/environment-execution-target.js.map +1 -1
- package/dist/services/environment-run-orchestrator.d.ts +27 -1
- package/dist/services/environment-run-orchestrator.d.ts.map +1 -1
- package/dist/services/environment-run-orchestrator.js +24 -4
- package/dist/services/environment-run-orchestrator.js.map +1 -1
- package/dist/services/environment-runtime.d.ts +118 -20
- package/dist/services/environment-runtime.d.ts.map +1 -1
- package/dist/services/environment-runtime.js +436 -91
- package/dist/services/environment-runtime.js.map +1 -1
- package/dist/services/environments.d.ts.map +1 -1
- package/dist/services/environments.js +20 -2
- package/dist/services/environments.js.map +1 -1
- package/dist/services/execution-workspace-branch-ownership.d.ts +4 -0
- package/dist/services/execution-workspace-branch-ownership.d.ts.map +1 -0
- package/dist/services/execution-workspace-branch-ownership.js +9 -0
- package/dist/services/execution-workspace-branch-ownership.js.map +1 -0
- package/dist/services/execution-workspace-policy.d.ts.map +1 -1
- package/dist/services/execution-workspace-policy.js +3 -0
- package/dist/services/execution-workspace-policy.js.map +1 -1
- package/dist/services/execution-workspaces.d.ts +2 -0
- package/dist/services/execution-workspaces.d.ts.map +1 -1
- package/dist/services/execution-workspaces.js +90 -2
- package/dist/services/execution-workspaces.js.map +1 -1
- package/dist/services/external-objects.d.ts +19 -19
- package/dist/services/finance.d.ts +1 -1
- package/dist/services/goals.d.ts +2 -2
- package/dist/services/heartbeat-policy.d.ts +3 -0
- package/dist/services/heartbeat-policy.d.ts.map +1 -0
- package/dist/services/heartbeat-policy.js +10 -0
- package/dist/services/heartbeat-policy.js.map +1 -0
- package/dist/services/heartbeat-run-runtime-status.test.js +1 -1
- package/dist/services/heartbeat-run-runtime-status.test.js.map +1 -1
- package/dist/services/heartbeat.d.ts +23 -1
- package/dist/services/heartbeat.d.ts.map +1 -1
- package/dist/services/heartbeat.js +192 -11
- package/dist/services/heartbeat.js.map +1 -1
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +1 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/instance-settings.d.ts.map +1 -1
- package/dist/services/instance-settings.js +2 -0
- package/dist/services/instance-settings.js.map +1 -1
- package/dist/services/issue-dependency-wakeups.d.ts +57 -9
- package/dist/services/issue-dependency-wakeups.d.ts.map +1 -1
- package/dist/services/issue-dependency-wakeups.js +146 -14
- package/dist/services/issue-dependency-wakeups.js.map +1 -1
- package/dist/services/issue-dependency-wakeups.test.d.ts +2 -0
- package/dist/services/issue-dependency-wakeups.test.d.ts.map +1 -0
- package/dist/services/issue-dependency-wakeups.test.js +183 -0
- package/dist/services/issue-dependency-wakeups.test.js.map +1 -0
- package/dist/services/issue-recovery-actions.d.ts +6 -1
- package/dist/services/issue-recovery-actions.d.ts.map +1 -1
- package/dist/services/issue-recovery-actions.js +123 -44
- package/dist/services/issue-recovery-actions.js.map +1 -1
- package/dist/services/issue-thread-interactions.d.ts +8 -0
- package/dist/services/issue-thread-interactions.d.ts.map +1 -1
- package/dist/services/issue-thread-interactions.js +220 -10
- package/dist/services/issue-thread-interactions.js.map +1 -1
- package/dist/services/issues.d.ts +8 -7
- package/dist/services/issues.d.ts.map +1 -1
- package/dist/services/issues.js +84 -12
- package/dist/services/issues.js.map +1 -1
- package/dist/services/local-service-supervisor.d.ts +61 -1
- package/dist/services/local-service-supervisor.d.ts.map +1 -1
- package/dist/services/local-service-supervisor.js +221 -25
- package/dist/services/local-service-supervisor.js.map +1 -1
- package/dist/services/login-command.d.ts +46 -0
- package/dist/services/login-command.d.ts.map +1 -0
- package/dist/services/login-command.js +87 -0
- package/dist/services/login-command.js.map +1 -0
- package/dist/services/login-command.test.d.ts +2 -0
- package/dist/services/login-command.test.d.ts.map +1 -0
- package/dist/services/login-command.test.js +71 -0
- package/dist/services/login-command.test.js.map +1 -0
- package/dist/services/managed-workspace-identity.d.ts +140 -0
- package/dist/services/managed-workspace-identity.d.ts.map +1 -0
- package/dist/services/managed-workspace-identity.js +277 -0
- package/dist/services/managed-workspace-identity.js.map +1 -0
- package/dist/services/plugin-environment-driver.d.ts +15 -1
- package/dist/services/plugin-environment-driver.d.ts.map +1 -1
- package/dist/services/plugin-environment-driver.js +23 -1
- package/dist/services/plugin-environment-driver.js.map +1 -1
- package/dist/services/plugin-host-services.d.ts +3 -2
- package/dist/services/plugin-host-services.d.ts.map +1 -1
- package/dist/services/plugin-host-services.js +11 -2
- package/dist/services/plugin-host-services.js.map +1 -1
- package/dist/services/plugin-loader.d.ts.map +1 -1
- package/dist/services/plugin-loader.js +39 -8
- package/dist/services/plugin-loader.js.map +1 -1
- package/dist/services/plugin-managed-agents.d.ts.map +1 -1
- package/dist/services/plugin-managed-agents.js +50 -5
- package/dist/services/plugin-managed-agents.js.map +1 -1
- package/dist/services/plugin-manifest-validator.d.ts.map +1 -1
- package/dist/services/plugin-manifest-validator.js +5 -2
- package/dist/services/plugin-manifest-validator.js.map +1 -1
- package/dist/services/plugin-registry.d.ts +5 -5
- package/dist/services/plugin-worker-manager.d.ts +158 -11
- package/dist/services/plugin-worker-manager.d.ts.map +1 -1
- package/dist/services/plugin-worker-manager.js +1139 -79
- package/dist/services/plugin-worker-manager.js.map +1 -1
- package/dist/services/projects.d.ts +1 -1
- package/dist/services/recovery/disposition-repair.d.ts +24 -0
- package/dist/services/recovery/disposition-repair.d.ts.map +1 -0
- package/dist/services/recovery/disposition-repair.js +125 -0
- package/dist/services/recovery/disposition-repair.js.map +1 -0
- package/dist/services/recovery/service.d.ts +6 -6
- package/dist/services/recovery/service.d.ts.map +1 -1
- package/dist/services/recovery/service.js +856 -384
- package/dist/services/recovery/service.js.map +1 -1
- package/dist/services/recovery/stranded-notice.js +4 -4
- package/dist/services/recovery/stranded-notice.js.map +1 -1
- package/dist/services/recovery/stranded-notice.test.js +1 -1
- package/dist/services/recovery/stranded-notice.test.js.map +1 -1
- package/dist/services/recovery/successful-run-handoff.d.ts +1 -1
- package/dist/services/recovery/successful-run-handoff.d.ts.map +1 -1
- package/dist/services/recovery/successful-run-handoff.js +6 -4
- package/dist/services/recovery/successful-run-handoff.js.map +1 -1
- package/dist/services/recovery/successful-run-handoff.test.js +1 -1
- package/dist/services/recovery/successful-run-handoff.test.js.map +1 -1
- package/dist/services/recovery-observability.d.ts +1 -1
- package/dist/services/recovery-observability.d.ts.map +1 -1
- package/dist/services/recovery-observability.js +4 -1
- package/dist/services/recovery-observability.js.map +1 -1
- package/dist/services/routines.d.ts.map +1 -1
- package/dist/services/routines.js +86 -1
- package/dist/services/routines.js.map +1 -1
- package/dist/services/runtime-exposure/loopback-listener.js +1 -1
- package/dist/services/runtime-exposure/loopback-listener.js.map +1 -1
- package/dist/services/runtime-exposure/loopback-listener.test.js +1 -1
- package/dist/services/runtime-exposure/loopback-listener.test.js.map +1 -1
- package/dist/services/scripts/codex-auth-read.cjs +93 -0
- package/dist/services/secret-proposal-authorization.d.ts +15 -0
- package/dist/services/secret-proposal-authorization.d.ts.map +1 -0
- package/dist/services/secret-proposal-authorization.js +29 -0
- package/dist/services/secret-proposal-authorization.js.map +1 -0
- package/dist/services/secret-proposal-notifications.d.ts +18 -0
- package/dist/services/secret-proposal-notifications.d.ts.map +1 -0
- package/dist/services/secret-proposal-notifications.js +37 -0
- package/dist/services/secret-proposal-notifications.js.map +1 -0
- package/dist/services/secret-proposals.d.ts +20 -10
- package/dist/services/secret-proposals.d.ts.map +1 -1
- package/dist/services/secret-proposals.js +205 -14
- package/dist/services/secret-proposals.js.map +1 -1
- package/dist/services/secrets.d.ts +3 -3
- package/dist/services/settings-visibility.d.ts +17 -0
- package/dist/services/settings-visibility.d.ts.map +1 -0
- package/dist/services/settings-visibility.js +29 -0
- package/dist/services/settings-visibility.js.map +1 -0
- package/dist/services/setup-token-reaper.d.ts +36 -0
- package/dist/services/setup-token-reaper.d.ts.map +1 -0
- package/dist/services/setup-token-reaper.js +38 -0
- package/dist/services/setup-token-reaper.js.map +1 -0
- package/dist/services/setup-token-reaper.test.d.ts +2 -0
- package/dist/services/setup-token-reaper.test.d.ts.map +1 -0
- package/dist/services/setup-token-reaper.test.js +123 -0
- package/dist/services/setup-token-reaper.test.js.map +1 -0
- package/dist/services/setup-token-session.d.ts +57 -45
- package/dist/services/setup-token-session.d.ts.map +1 -1
- package/dist/services/setup-token-session.js +118 -110
- package/dist/services/setup-token-session.js.map +1 -1
- package/dist/services/setup-token-session.test.js +88 -47
- package/dist/services/setup-token-session.test.js.map +1 -1
- package/dist/services/setup-token-transport-binding.d.ts +20 -12
- package/dist/services/setup-token-transport-binding.d.ts.map +1 -1
- package/dist/services/setup-token-transport-binding.js +59 -32
- package/dist/services/setup-token-transport-binding.js.map +1 -1
- package/dist/services/setup-token-transport-binding.test.js +50 -17
- package/dist/services/setup-token-transport-binding.test.js.map +1 -1
- package/dist/services/smoke-lab.d.ts +1 -1
- package/dist/services/stalled-review-decisions.d.ts +1 -1
- package/dist/services/status-cards.d.ts +168 -168
- package/dist/services/tool-access-policy.d.ts +2 -2
- package/dist/services/tool-gateway.d.ts +1 -1
- package/dist/services/work-products.d.ts +19 -0
- package/dist/services/work-products.d.ts.map +1 -1
- package/dist/services/work-products.js +50 -3
- package/dist/services/work-products.js.map +1 -1
- package/dist/services/workspace-git-operation-scheduler.test.js +10 -3
- package/dist/services/workspace-git-operation-scheduler.test.js.map +1 -1
- package/dist/services/workspace-instance-cleanup.d.ts +9 -0
- package/dist/services/workspace-instance-cleanup.d.ts.map +1 -1
- package/dist/services/workspace-instance-cleanup.js +29 -3
- package/dist/services/workspace-instance-cleanup.js.map +1 -1
- package/dist/services/workspace-login-handoff-issuer.d.ts +95 -0
- package/dist/services/workspace-login-handoff-issuer.d.ts.map +1 -0
- package/dist/services/workspace-login-handoff-issuer.js +147 -0
- package/dist/services/workspace-login-handoff-issuer.js.map +1 -0
- package/dist/services/workspace-operations.d.ts +4 -1
- package/dist/services/workspace-operations.d.ts.map +1 -1
- package/dist/services/workspace-operations.js +29 -15
- package/dist/services/workspace-operations.js.map +1 -1
- package/dist/services/workspace-readiness.d.ts +56 -0
- package/dist/services/workspace-readiness.d.ts.map +1 -0
- package/dist/services/workspace-readiness.js +250 -0
- package/dist/services/workspace-readiness.js.map +1 -0
- package/dist/services/workspace-realization.d.ts.map +1 -1
- package/dist/services/workspace-realization.js +5 -33
- package/dist/services/workspace-realization.js.map +1 -1
- package/dist/services/workspace-runtime-exposure.test.js +321 -12
- package/dist/services/workspace-runtime-exposure.test.js.map +1 -1
- package/dist/services/workspace-runtime-leases.d.ts.map +1 -1
- package/dist/services/workspace-runtime-leases.js +1 -1
- package/dist/services/workspace-runtime-leases.js.map +1 -1
- package/dist/services/workspace-runtime-read-model.d.ts +8 -8
- package/dist/services/workspace-runtime-read-model.test.js +20 -0
- package/dist/services/workspace-runtime-read-model.test.js.map +1 -1
- package/dist/services/workspace-runtime-ready-comment.test.js +1 -0
- package/dist/services/workspace-runtime-ready-comment.test.js.map +1 -1
- package/dist/services/workspace-runtime.d.ts +77 -4
- package/dist/services/workspace-runtime.d.ts.map +1 -1
- package/dist/services/workspace-runtime.js +1020 -126
- package/dist/services/workspace-runtime.js.map +1 -1
- package/dist/worktree-config.d.ts.map +1 -1
- package/dist/worktree-config.js +3 -76
- package/dist/worktree-config.js.map +1 -1
- package/dist/worktree-seed-manifest.d.ts +8 -0
- package/dist/worktree-seed-manifest.d.ts.map +1 -0
- package/dist/worktree-seed-manifest.js +47 -0
- package/dist/worktree-seed-manifest.js.map +1 -0
- package/package.json +34 -30
- package/skills/paperclip/SKILL.md +2 -0
- package/skills/paperclip/references/api-reference.md +44 -2
- package/ui-dist/assets/CompanyExport-DnEsO-St.js +4 -0
- package/ui-dist/assets/{abnfDiagram-N423BO3Z-BvgoV-u5.js → abnfDiagram-N423BO3Z-2ff8TsQ0.js} +1 -1
- package/ui-dist/assets/{arc-BInnUBUU.js → arc-B2AXsH34.js} +1 -1
- package/ui-dist/assets/architectureDiagram-T3A2C74G-BDxtKMxk.js +36 -0
- package/ui-dist/assets/{blockDiagram-VBNYF7ZC-D9kzAkLN.js → blockDiagram-VBNYF7ZC-BB8T5Mj5.js} +1 -1
- package/ui-dist/assets/{c4Diagram-5PPSVZJV-BwzsgV_0.js → c4Diagram-5PPSVZJV-lMo8qk-x.js} +1 -1
- package/ui-dist/assets/channel-DCTVZpyq.js +1 -0
- package/ui-dist/assets/{chunk-2GRJ4B5K-D2EQ9vrl.js → chunk-2GRJ4B5K-CsS7EB3G.js} +1 -1
- package/ui-dist/assets/{chunk-2Q5K7J3B-DOA_8fSd.js → chunk-2Q5K7J3B-DFyQPjoR.js} +1 -1
- package/ui-dist/assets/{chunk-5RXB4S5H-CT5ukRiT.js → chunk-5RXB4S5H-No2SHOQR.js} +1 -1
- package/ui-dist/assets/{chunk-5VM5RSS4-D2gOlkyB.js → chunk-5VM5RSS4-DdxQO7V9.js} +1 -1
- package/ui-dist/assets/{chunk-6Q2QTUOP-DUb6aG8c.js → chunk-6Q2QTUOP-gbHjh-aK.js} +1 -1
- package/ui-dist/assets/{chunk-GF5L2VYU-BPabG3Cx.js → chunk-GF5L2VYU-h-BBl6NY.js} +1 -1
- package/ui-dist/assets/{chunk-JWPE2WC7-scNfhlZz.js → chunk-JWPE2WC7-Q3pJdTz5.js} +1 -1
- package/ui-dist/assets/{chunk-KBJHAD2P-BcRAzRpq.js → chunk-KBJHAD2P-Ba8LGLSx.js} +1 -1
- package/ui-dist/assets/{chunk-RYQCIY6F-BiZ0-EGh.js → chunk-RYQCIY6F-9VcvykBo.js} +1 -1
- package/ui-dist/assets/{chunk-XXDRQBXY-lJULxFIE.js → chunk-XXDRQBXY-NVbjDH4W.js} +1 -1
- package/ui-dist/assets/classDiagram-JCYQIIEL-CzJ88u6h.js +1 -0
- package/ui-dist/assets/classDiagram-v2-OCEON4UE-CzJ88u6h.js +1 -0
- package/ui-dist/assets/cose-bilkent-JH36ORCC-Cdz4wtUh.js +1 -0
- package/ui-dist/assets/{cynefin-VYW2F7L2-B34jJY1x.js → cynefin-VYW2F7L2-MpzJkW5s.js} +1 -1
- package/ui-dist/assets/{cynefinDiagram-MW4NZA55-DQ8QK8JK.js → cynefinDiagram-MW4NZA55-_Nx8av7i.js} +1 -1
- package/ui-dist/assets/{dagre-VZM6K2ZE-B7lSKgxH.js → dagre-VZM6K2ZE-DcZTQ4Oh.js} +1 -1
- package/ui-dist/assets/{diagram-7IWD3JNH-B3hLAFGE.js → diagram-7IWD3JNH-UyLi2mee.js} +1 -1
- package/ui-dist/assets/{diagram-B4RE2ZJO-CH9Ro9e0.js → diagram-B4RE2ZJO-B6p0Ivqg.js} +1 -1
- package/ui-dist/assets/{diagram-LBJQPF4R-DdPVMii7.js → diagram-LBJQPF4R-C8u6pa97.js} +1 -1
- package/ui-dist/assets/{diagram-Q27KOJAE-f5VXswjc.js → diagram-Q27KOJAE-DbwyagW0.js} +1 -1
- package/ui-dist/assets/{diagram-UB23O5K3-DGqxixsR.js → diagram-UB23O5K3-Cn5BMEH7.js} +1 -1
- package/ui-dist/assets/{ebnfDiagram-BXEA7PRR-C-1klg_w.js → ebnfDiagram-BXEA7PRR-vE0IZma9.js} +1 -1
- package/ui-dist/assets/{erDiagram-JOGREHBK-Dt4qK4gv.js → erDiagram-JOGREHBK-3OZVIlVG.js} +1 -1
- package/ui-dist/assets/{flowDiagram-UKHOOZJN-9ZlrTuET.js → flowDiagram-UKHOOZJN-C94FiPyr.js} +1 -1
- package/ui-dist/assets/ganttDiagram-PKOTCBZU-DMVaPmF-.js +292 -0
- package/ui-dist/assets/{gitGraphDiagram-DS77QQ5N-HH2fSgad.js → gitGraphDiagram-DS77QQ5N-yeFtJ689.js} +1 -1
- package/ui-dist/assets/{index-Cm6iEYPt.js → index-B4ZF3vY8.js} +288 -224
- package/ui-dist/assets/{index-CHXG4GPL.js → index-Bi_vqkcQ.js} +1 -1
- package/ui-dist/assets/{index-Bc9g6q63.js → index-BjDGQg9-.js} +1 -1
- package/ui-dist/assets/{index-FHzrJ7iQ.js → index-BnpyUMTb.js} +1 -1
- package/ui-dist/assets/{index-C1mpWCcn.js → index-BoqQTVMA.js} +1 -1
- package/ui-dist/assets/index-Bq-Mr-4x.js +1 -0
- package/ui-dist/assets/{index-DceuCrr8.js → index-Brb2U7N4.js} +1 -1
- package/ui-dist/assets/{index-DQIrrn2L.js → index-BsBybVwH.js} +1 -1
- package/ui-dist/assets/{index-CQhaM6qd.js → index-C2iv4Wgu.js} +1 -1
- package/ui-dist/assets/{index-DV2FOgyD.js → index-CKxIu7uO.js} +1 -1
- package/ui-dist/assets/{index-DU4U1fuv.js → index-Cb4VGIwp.js} +1 -1
- package/ui-dist/assets/{index-B61ORkIb.js → index-ChpszwcO.js} +1 -1
- package/ui-dist/assets/{index-DlVBBF8o.js → index-CoQFdT8N.js} +1 -1
- package/ui-dist/assets/index-D6P8_f0W.css +1 -0
- package/ui-dist/assets/index-DKdmghUG.js +1 -0
- package/ui-dist/assets/{index-CVTL3aAL.js → index-DaBci7Bx.js} +1 -1
- package/ui-dist/assets/{index-diFs0CNC.js → index-DjYaNiXZ.js} +1 -1
- package/ui-dist/assets/{index-Bf7tyGxE.js → index-DxTBJl4h.js} +1 -1
- package/ui-dist/assets/{index-DsdVneqe.js → index-Dz3E8nn0.js} +1 -1
- package/ui-dist/assets/{index-DvFUXI-Q.js → index-J7dz_hap.js} +1 -1
- package/ui-dist/assets/{index-CLu3Tfpv.js → index-JMp2Gpnz.js} +1 -1
- package/ui-dist/assets/{index-CcRTJ93J.js → index-Kp6wavQt.js} +1 -1
- package/ui-dist/assets/{index-BvFx-4KW.js → index-LBhYZ0L4.js} +1 -1
- package/ui-dist/assets/{index-BbAhzCq8.js → index-c3C0P6l8.js} +4 -4
- package/ui-dist/assets/{index-BY5ITKmG.js → index-pBEPheTW.js} +1 -1
- package/ui-dist/assets/{infoDiagram-6WML65LV-2jai2fw-.js → infoDiagram-6WML65LV-BiL7jKLA.js} +1 -1
- package/ui-dist/assets/{ishikawaDiagram-WSZJBQD7-CUmGhmEb.js → ishikawaDiagram-WSZJBQD7-DYcQy41D.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-NVQOT4AX-CGQuPDO1.js → journeyDiagram-NVQOT4AX-Bxva6JgA.js} +1 -1
- package/ui-dist/assets/{kanban-definition-27J2QSJJ-zgEPcbHl.js → kanban-definition-27J2QSJJ-B2HpN34Q.js} +1 -1
- package/ui-dist/assets/{linear-BVf5VtLS.js → linear-Dq8qSESw.js} +1 -1
- package/ui-dist/assets/{mermaid.core-D2TFkGfI.js → mermaid.core-Ikay8Cpl.js} +35 -35
- package/ui-dist/assets/{mindmap-definition-FAOFIHXS-xoAQ0Lb_.js → mindmap-definition-FAOFIHXS-C-SIdYSY.js} +1 -1
- package/ui-dist/assets/{pegDiagram-VL7TDLO6-CBR1PWLr.js → pegDiagram-VL7TDLO6-C7rIJ_13.js} +1 -1
- package/ui-dist/assets/{pieDiagram-7S7Q4E2Y-BMPnzK_e.js → pieDiagram-7S7Q4E2Y-3gx0a0ve.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-CIZ2JOQS-CPtVUPkR.js → quadrantDiagram-CIZ2JOQS-BiwM9QGv.js} +1 -1
- package/ui-dist/assets/{railroadDiagram-AXF67PYL-DC0lsZV1.js → railroadDiagram-AXF67PYL-rFS8XcFA.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-LRYGKXZP-BF6k05SB.js → requirementDiagram-LRYGKXZP-CEAUDUTQ.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-W5VNT64P-CRN0ibiP.js → sankeyDiagram-W5VNT64P-B7anpjlM.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-SI44F4Z6-CQtTiPWm.js → sequenceDiagram-SI44F4Z6-CJEdJvm_.js} +1 -1
- package/ui-dist/assets/{sizeCapture-X5ZJPWSS-BdjuGZd1.js → sizeCapture-X5ZJPWSS-CU1Vm6c1.js} +1 -1
- package/ui-dist/assets/{stateDiagram-OKZ733FA-B99onxyh.js → stateDiagram-OKZ733FA-wxVV9WIi.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-UEYNNEHI-BIFLqlqR.js +1 -0
- package/ui-dist/assets/{swimlanes-SLNWSIFB-BIByPbrL.js → swimlanes-SLNWSIFB-Cd-C1Z_k.js} +2 -2
- package/ui-dist/assets/swimlanesDiagram-ULZ7WXOC-CoBROkkd.js +8 -0
- package/ui-dist/assets/{timeline-definition-Z64GVDOM-I1NgOcn9.js → timeline-definition-Z64GVDOM-SWngk4aR.js} +1 -1
- package/ui-dist/assets/{vennDiagram-T6HMQDX7-D6t2Njcl.js → vennDiagram-T6HMQDX7-DFdPUr36.js} +1 -1
- package/ui-dist/assets/{wardleyDiagram-T6FBY63Y-BiYKm9gh.js → wardleyDiagram-T6FBY63Y-C6IlrZ7t.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-ELKLHX3M-BhwXKWIa.js → xychartDiagram-ELKLHX3M-BNm6hHGl.js} +1 -1
- package/ui-dist/index.html +2 -2
- package/ui-dist/assets/architectureDiagram-T3A2C74G-Dg4MziOm.js +0 -36
- package/ui-dist/assets/channel-qoSYbCn0.js +0 -1
- package/ui-dist/assets/classDiagram-JCYQIIEL-B24u1REs.js +0 -1
- package/ui-dist/assets/classDiagram-v2-OCEON4UE-B24u1REs.js +0 -1
- package/ui-dist/assets/cose-bilkent-JH36ORCC-Do8pe8JB.js +0 -1
- package/ui-dist/assets/ganttDiagram-PKOTCBZU-CE3lyvFq.js +0 -292
- package/ui-dist/assets/index-BHiUiToL.css +0 -1
- package/ui-dist/assets/index-hkanj4t6.js +0 -1
- package/ui-dist/assets/index-yRJnh4vx.js +0 -1
- package/ui-dist/assets/stateDiagram-v2-UEYNNEHI-bzFlYBZ1.js +0 -1
- package/ui-dist/assets/swimlanesDiagram-ULZ7WXOC-DgdkBnuK.js +0 -8
|
@@ -168,6 +168,258 @@ export function classifyEnvironmentCustomImageConfigChange(input) {
|
|
|
168
168
|
}
|
|
169
169
|
return "relinkable";
|
|
170
170
|
}
|
|
171
|
+
// --- Operator relink action (server-owned boot-source classification) --------
|
|
172
|
+
//
|
|
173
|
+
// A saved config change moves the fingerprint and detaches an otherwise-valid
|
|
174
|
+
// template. The relink action re-stamps the fingerprint, but only after the
|
|
175
|
+
// server decides the boot source did not change. To decide that without the
|
|
176
|
+
// capture-time config, the capture persists a small, server-owned snapshot of
|
|
177
|
+
// the boot-relevant fields. The relink then compares that snapshot to the
|
|
178
|
+
// current config. The comparison runs on the server; the client never
|
|
179
|
+
// classifies.
|
|
180
|
+
export const ENVIRONMENT_CUSTOM_IMAGE_BOOT_RELEVANT_CONFIG_METADATA_KEY = "bootRelevantConfig";
|
|
181
|
+
export const ENVIRONMENT_CUSTOM_IMAGE_BOOT_RELEVANT_CONFIG_VERSION = 1;
|
|
182
|
+
// A driver-declared identity path that fails canonicalization is never trusted
|
|
183
|
+
// and never persisted verbatim. It records this fixed marker instead, which
|
|
184
|
+
// forces the fail-closed `unclassified` result at relink time.
|
|
185
|
+
export const ENVIRONMENT_CUSTOM_IMAGE_BOOT_RELEVANT_UNRESOLVED_PATH = "[unresolved-identity-path]";
|
|
186
|
+
const BOOT_RELEVANT_CONFIG_MAX_PATH_DEPTH = 8;
|
|
187
|
+
const BOOT_RELEVANT_CONFIG_PATH_SEGMENT_RE = /^[A-Za-z_][A-Za-z0-9_-]*$/;
|
|
188
|
+
// Prototype keys have an identifier shape but never name an own config field.
|
|
189
|
+
// A driver that declares one is hostile or broken. Reject it so the path fails
|
|
190
|
+
// closed as an unresolved identity path.
|
|
191
|
+
const BOOT_RELEVANT_CONFIG_RESERVED_SEGMENTS = new Set(["__proto__", "prototype", "constructor"]);
|
|
192
|
+
/**
|
|
193
|
+
* Canonicalizes a config path as a bounded dot-path. Each segment must be a
|
|
194
|
+
* plain identifier and the depth is bounded. An invalid, ambiguous, or
|
|
195
|
+
* unresolvable path returns `null`; the caller must never persist the raw
|
|
196
|
+
* driver-supplied string.
|
|
197
|
+
*/
|
|
198
|
+
export function canonicalizeEnvironmentCustomImageConfigPath(raw) {
|
|
199
|
+
if (typeof raw !== "string")
|
|
200
|
+
return null;
|
|
201
|
+
const trimmed = raw.trim();
|
|
202
|
+
if (!trimmed)
|
|
203
|
+
return null;
|
|
204
|
+
const segments = trimmed.split(".");
|
|
205
|
+
if (segments.length === 0 || segments.length > BOOT_RELEVANT_CONFIG_MAX_PATH_DEPTH)
|
|
206
|
+
return null;
|
|
207
|
+
for (const segment of segments) {
|
|
208
|
+
if (!BOOT_RELEVANT_CONFIG_PATH_SEGMENT_RE.test(segment))
|
|
209
|
+
return null;
|
|
210
|
+
if (BOOT_RELEVANT_CONFIG_RESERVED_SEGMENTS.has(segment))
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
return segments.join(".");
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Reports whether a candidate path overlaps any secret-ref path by exact,
|
|
217
|
+
* ancestor, or descendant containment.
|
|
218
|
+
*/
|
|
219
|
+
function environmentCustomImageConfigPathOverlapsSecret(candidate, secretPaths) {
|
|
220
|
+
for (const raw of secretPaths) {
|
|
221
|
+
const secret = canonicalizeEnvironmentCustomImageConfigPath(raw);
|
|
222
|
+
if (!secret)
|
|
223
|
+
continue;
|
|
224
|
+
if (candidate === secret)
|
|
225
|
+
return true;
|
|
226
|
+
if (candidate.startsWith(`${secret}.`))
|
|
227
|
+
return true;
|
|
228
|
+
if (secret.startsWith(`${candidate}.`))
|
|
229
|
+
return true;
|
|
230
|
+
}
|
|
231
|
+
return false;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Computes the canonical candidate boot-relevant paths for a binding and its
|
|
235
|
+
* driver identity paths. Both the capture snapshot and the relink staleness
|
|
236
|
+
* check use this function, so they share one path set. `hasUnresolved` is true
|
|
237
|
+
* when any raw path fails canonicalization.
|
|
238
|
+
*/
|
|
239
|
+
export function environmentCustomImageBootRelevantCandidatePaths(contract) {
|
|
240
|
+
const canonicalPaths = [];
|
|
241
|
+
const seen = new Set();
|
|
242
|
+
let hasUnresolved = false;
|
|
243
|
+
const rawCandidatePaths = [
|
|
244
|
+
contract.binding.field,
|
|
245
|
+
...contract.binding.unsetFields,
|
|
246
|
+
...ENVIRONMENT_CUSTOM_IMAGE_TEMPLATE_SOURCE_FIELDS,
|
|
247
|
+
...(contract.templateIdentityPaths ?? []),
|
|
248
|
+
];
|
|
249
|
+
for (const rawPath of rawCandidatePaths) {
|
|
250
|
+
const canonical = canonicalizeEnvironmentCustomImageConfigPath(rawPath);
|
|
251
|
+
if (!canonical) {
|
|
252
|
+
hasUnresolved = true;
|
|
253
|
+
continue;
|
|
254
|
+
}
|
|
255
|
+
if (seen.has(canonical))
|
|
256
|
+
continue;
|
|
257
|
+
seen.add(canonical);
|
|
258
|
+
canonicalPaths.push(canonical);
|
|
259
|
+
}
|
|
260
|
+
return { canonicalPaths, hasUnresolved };
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Builds the capture-time boot-relevant snapshot from the parsed config only.
|
|
264
|
+
* Candidate paths are the runtime binding field, the binding unset fields, the
|
|
265
|
+
* standard boot-source fields, and every driver identity path. A secret-ref
|
|
266
|
+
* overlap or an unresolvable path is recorded in `excludedPaths` with no value.
|
|
267
|
+
*/
|
|
268
|
+
export function buildEnvironmentCustomImageBootRelevantConfig(input) {
|
|
269
|
+
const config = input.config;
|
|
270
|
+
const secretPaths = [...(input.secretRefExcludePaths ?? [])];
|
|
271
|
+
// A null-prototype map is a second guard: a reserved segment assignment can
|
|
272
|
+
// never mutate the prototype, so a hostile path cannot vanish from `values`.
|
|
273
|
+
const values = Object.create(null);
|
|
274
|
+
const excludedPaths = new Set();
|
|
275
|
+
const { canonicalPaths, hasUnresolved } = environmentCustomImageBootRelevantCandidatePaths({
|
|
276
|
+
binding: input.binding,
|
|
277
|
+
templateIdentityPaths: input.templateIdentityPaths,
|
|
278
|
+
});
|
|
279
|
+
if (hasUnresolved) {
|
|
280
|
+
excludedPaths.add(ENVIRONMENT_CUSTOM_IMAGE_BOOT_RELEVANT_UNRESOLVED_PATH);
|
|
281
|
+
}
|
|
282
|
+
for (const canonical of canonicalPaths) {
|
|
283
|
+
if (environmentCustomImageConfigPathOverlapsSecret(canonical, secretPaths)) {
|
|
284
|
+
excludedPaths.add(canonical);
|
|
285
|
+
continue;
|
|
286
|
+
}
|
|
287
|
+
const value = readConfigValueAtPath(config, canonical);
|
|
288
|
+
// An absent field is stored as `null` so that "absent then, absent now"
|
|
289
|
+
// compares equal at relink time.
|
|
290
|
+
values[canonical] = value === undefined ? null : value;
|
|
291
|
+
}
|
|
292
|
+
return {
|
|
293
|
+
version: ENVIRONMENT_CUSTOM_IMAGE_BOOT_RELEVANT_CONFIG_VERSION,
|
|
294
|
+
provider: input.config.provider,
|
|
295
|
+
bindingField: input.binding.field,
|
|
296
|
+
values,
|
|
297
|
+
excludedPaths: [...excludedPaths],
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Reports whether a persisted snapshot no longer matches the current provider
|
|
302
|
+
* boot-relevant contract. A provider plugin can change its config binding or
|
|
303
|
+
* its identity paths after capture. When it does, a field that is boot-relevant
|
|
304
|
+
* now but absent from the snapshot would compare equal by absence and hide real
|
|
305
|
+
* drift. The check fails closed on:
|
|
306
|
+
*
|
|
307
|
+
* - a binding field that differs from the captured `bindingField`;
|
|
308
|
+
* - a current identity path the snapshot never covered (neither a value nor an
|
|
309
|
+
* excluded path);
|
|
310
|
+
* - a current contract that itself carries an unresolvable identity path.
|
|
311
|
+
*/
|
|
312
|
+
export function environmentCustomImageBootRelevantSnapshotIsStale(input) {
|
|
313
|
+
const boot = input.bootRelevantConfig;
|
|
314
|
+
if (input.currentContract.binding.field !== boot.bindingField)
|
|
315
|
+
return true;
|
|
316
|
+
const { canonicalPaths, hasUnresolved } = environmentCustomImageBootRelevantCandidatePaths(input.currentContract);
|
|
317
|
+
if (hasUnresolved)
|
|
318
|
+
return true;
|
|
319
|
+
const covered = new Set([
|
|
320
|
+
...Object.keys(boot.values),
|
|
321
|
+
...boot.excludedPaths,
|
|
322
|
+
]);
|
|
323
|
+
return canonicalPaths.some((path) => !covered.has(path));
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Reads and validates the persisted boot-relevant snapshot. Returns `null` for
|
|
327
|
+
* a legacy template with no snapshot or for a malformed shape; both classify as
|
|
328
|
+
* `unclassified` (fail closed).
|
|
329
|
+
*/
|
|
330
|
+
export function readEnvironmentCustomImageBootRelevantConfig(metadata) {
|
|
331
|
+
const raw = metadata?.[ENVIRONMENT_CUSTOM_IMAGE_BOOT_RELEVANT_CONFIG_METADATA_KEY];
|
|
332
|
+
if (!isRecord(raw))
|
|
333
|
+
return null;
|
|
334
|
+
if (raw.version !== ENVIRONMENT_CUSTOM_IMAGE_BOOT_RELEVANT_CONFIG_VERSION)
|
|
335
|
+
return null;
|
|
336
|
+
if (typeof raw.provider !== "string" || typeof raw.bindingField !== "string")
|
|
337
|
+
return null;
|
|
338
|
+
if (!isRecord(raw.values))
|
|
339
|
+
return null;
|
|
340
|
+
if (!Array.isArray(raw.excludedPaths))
|
|
341
|
+
return null;
|
|
342
|
+
const excludedPaths = raw.excludedPaths.filter((entry) => typeof entry === "string");
|
|
343
|
+
return {
|
|
344
|
+
version: ENVIRONMENT_CUSTOM_IMAGE_BOOT_RELEVANT_CONFIG_VERSION,
|
|
345
|
+
provider: raw.provider,
|
|
346
|
+
bindingField: raw.bindingField,
|
|
347
|
+
values: raw.values,
|
|
348
|
+
excludedPaths,
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Classifies the drift between the capture-time boot-relevant snapshot and the
|
|
353
|
+
* current parsed config.
|
|
354
|
+
*
|
|
355
|
+
* - `knob_only`: the snapshot is present, no path was excluded, and every value
|
|
356
|
+
* still matches. The fingerprint can be re-stamped without confirmation.
|
|
357
|
+
* - `boot_source_drift`: a value-bearing path differs. The operator must
|
|
358
|
+
* confirm before the re-stamp.
|
|
359
|
+
* - `unclassified`: no snapshot, an excluded path, a provider mismatch, or a
|
|
360
|
+
* snapshot that no longer matches the current provider contract. The server
|
|
361
|
+
* cannot verify the boot source; the operator must confirm (fail closed).
|
|
362
|
+
*
|
|
363
|
+
* `driftedPaths` carries raw `from`/`to` values only for value-bearing paths
|
|
364
|
+
* that passed containment at capture. Excluded paths carry the path name only.
|
|
365
|
+
*
|
|
366
|
+
* `currentContract` is the current provider boot-relevant contract. When the
|
|
367
|
+
* caller cannot resolve the driver, it passes `null`; the server then cannot
|
|
368
|
+
* verify the boot source and the result is `unclassified` (fail closed).
|
|
369
|
+
*/
|
|
370
|
+
export function classifyEnvironmentCustomImageBootRelevantDrift(input) {
|
|
371
|
+
const boot = input.bootRelevantConfig;
|
|
372
|
+
if (!boot)
|
|
373
|
+
return { classification: "unclassified", driftedPaths: [] };
|
|
374
|
+
// Without the current provider contract the boot source cannot be verified
|
|
375
|
+
// against a possible identity-path change; fail closed.
|
|
376
|
+
if (!input.currentContract)
|
|
377
|
+
return { classification: "unclassified", driftedPaths: [] };
|
|
378
|
+
// A provider change since capture (new binding or new identity path) makes
|
|
379
|
+
// the persisted snapshot untrustworthy; fail closed.
|
|
380
|
+
if (environmentCustomImageBootRelevantSnapshotIsStale({
|
|
381
|
+
bootRelevantConfig: boot,
|
|
382
|
+
currentContract: input.currentContract,
|
|
383
|
+
})) {
|
|
384
|
+
return { classification: "unclassified", driftedPaths: [] };
|
|
385
|
+
}
|
|
386
|
+
const current = input.currentConfig;
|
|
387
|
+
const driftedPaths = [];
|
|
388
|
+
let hasValueDrift = false;
|
|
389
|
+
for (const [path, capturedValue] of Object.entries(boot.values)) {
|
|
390
|
+
const currentValue = readConfigValueAtPath(current, path);
|
|
391
|
+
if (stableStringify(capturedValue ?? null) !== stableStringify(currentValue ?? null)) {
|
|
392
|
+
hasValueDrift = true;
|
|
393
|
+
driftedPaths.push({ path, from: capturedValue ?? null, to: currentValue ?? null });
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
for (const path of boot.excludedPaths) {
|
|
397
|
+
driftedPaths.push({ path });
|
|
398
|
+
}
|
|
399
|
+
const providerMismatch = boot.provider !== input.currentConfig.provider;
|
|
400
|
+
if (boot.excludedPaths.length > 0 || providerMismatch) {
|
|
401
|
+
return { classification: "unclassified", driftedPaths };
|
|
402
|
+
}
|
|
403
|
+
if (hasValueDrift) {
|
|
404
|
+
return { classification: "boot_source_drift", driftedPaths };
|
|
405
|
+
}
|
|
406
|
+
return { classification: "knob_only", driftedPaths: [] };
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Removes the server-only boot-relevant snapshot from a template's metadata.
|
|
410
|
+
* The snapshot exists to classify a later relink and holds raw boot-source
|
|
411
|
+
* config values. It must never reach an API response. The runtime keeps it in
|
|
412
|
+
* the persisted row and reads it straight from the row at relink time.
|
|
413
|
+
*/
|
|
414
|
+
export function stripInternalEnvironmentCustomImageTemplateMetadata(metadata) {
|
|
415
|
+
if (!metadata)
|
|
416
|
+
return null;
|
|
417
|
+
if (!(ENVIRONMENT_CUSTOM_IMAGE_BOOT_RELEVANT_CONFIG_METADATA_KEY in metadata))
|
|
418
|
+
return metadata;
|
|
419
|
+
const rest = { ...metadata };
|
|
420
|
+
delete rest[ENVIRONMENT_CUSTOM_IMAGE_BOOT_RELEVANT_CONFIG_METADATA_KEY];
|
|
421
|
+
return rest;
|
|
422
|
+
}
|
|
171
423
|
export function environmentCustomImageTemplateFromRow(row) {
|
|
172
424
|
return {
|
|
173
425
|
id: row.id,
|
|
@@ -183,7 +435,9 @@ export function environmentCustomImageTemplateFromRow(row) {
|
|
|
183
435
|
capturedAt: row.capturedAt ?? null,
|
|
184
436
|
lastUsedAt: row.lastUsedAt ?? null,
|
|
185
437
|
supersededByTemplateId: row.supersededByTemplateId ?? null,
|
|
186
|
-
|
|
438
|
+
// The boot-relevant snapshot is server-internal; keep it out of every
|
|
439
|
+
// template response. The relink path reads it from the persisted row.
|
|
440
|
+
metadata: stripInternalEnvironmentCustomImageTemplateMetadata(row.metadata),
|
|
187
441
|
createdAt: row.createdAt,
|
|
188
442
|
updatedAt: row.updatedAt,
|
|
189
443
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-custom-image-runtime.js","sourceRoot":"","sources":["../../src/services/environment-custom-image-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"environment-custom-image-runtime.js","sourceRoot":"","sources":["../../src/services/environment-custom-image-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EACL,uCAAuC,GAIxC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAI7F,MAAM,CAAC,MAAM,4DAA4D,GAAG,sBAAsB,CAAC;AACnG,MAAM,CAAC,MAAM,0DAA0D,GAAG;IACxE,WAAW;IACX,YAAY;IACZ,eAAe;IACf,kBAAkB;IAClB,KAAK;IACL,QAAQ;IACR,MAAM;IACN,KAAK;IACL,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;CACrB,CAAC;AAOF,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACvE,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC1H,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,sCAAsC,CACpD,KAAoB;IAEpB,OAAQ,uCAA6D,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;QACzF,CAAC,CAAC,KAA2C;QAC7C,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iDAAiD,CAC/D,YAAuC;IAEvC,MAAM,IAAI,GAAG,sCAAsC,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC;IAC1E,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9E,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;IAC3E,IAAI,IAAI,KAAK,mBAAmB;QAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAChF,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AACnD,CAAC;AAED,SAAS,gCAAgC,CAAC,KAAc;IACtD,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC;WACvC,KAAK,KAAK,UAAU,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,mDAAmD,CACjE,KAAc;IAEd,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpF,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;QAClD,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAClD,gCAAgC,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,KAAK,CAAC,KAAK,CACjE;QACH,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iDAAiD,CAAC,KAGjE;IACC,OAAO,mDAAmD,CACxD,KAAK,CAAC,QAAQ,EAAE,CAAC,4DAA4D,CAAC,CAC/E,IAAI,iDAAiD,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,2CAA2C,CACzD,MAAgC,EAChC,OAA6C;IAE7C,IAAI,UAAU,GAAG,MAAiC,CAAC;IACnD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,YAAY,IAAI,EAAE,EAAE,CAAC;QAC/C,UAAU,GAAG,sBAAsB,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;SACnC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,MAAgC,EAChC,QAA2F;IAE3F,IAAI,CAAC,QAAQ,CAAC,WAAW;QAAE,OAAO,MAAM,CAAC;IACzC,MAAM,IAAI,GAAG,EAAE,GAAI,MAAkC,EAAE,CAAC;IACxD,MAAM,OAAO,GAAG,iDAAiD,CAAC;QAChE,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC5B,CAAC,CAAC;IACH,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC;IAC3C,OAAO,IAAgC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,+CAA+C,CAAC,KAI/D;IACC,MAAM,mBAAmB,GAAG,KAAK,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC9E,IAAI,CAAC,mBAAmB;QAAE,OAAO,IAAI,CAAC;IACtC,qEAAqE;IACrE,0EAA0E;IAC1E,yEAAyE;IACzE,uDAAuD;IACvD,MAAM,qBAAqB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,qBAAqB,GAAG,2CAA2C,CAAC,KAAK,CAAC,UAAU,EAAE;QAC1F,YAAY,EAAE;YACZ,GAAG,0DAA0D;YAC7D,GAAG,qBAAqB;SACzB;KACF,CAAC,CAAC;IACH,IAAI,qBAAqB,KAAK,mBAAmB;QAAE,OAAO,IAAI,CAAC;IAC/D,2EAA2E;IAC3E,0EAA0E;IAC1E,kCAAkC;IAClC,OAAO,2CAA2C,CAAC,KAAK,CAAC,UAAU,EAAE;QACnE,YAAY,EAAE,qBAAqB;KACpC,CAAC,KAAK,mBAAmB,CAAC;AAC7B,CAAC;AAED,+EAA+E;AAC/E,6EAA6E;AAC7E,sEAAsE;AACtE,MAAM,CAAC,MAAM,+CAA+C,GAAG;IAC7D,UAAU;IACV,OAAO;IACP,UAAU;CACF,CAAC;AAIX;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,0CAA0C,CAAC,KAM1D;IACC,MAAM,qBAAqB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;IACvE,IAAI,CAAC,+CAA+C,CAAC;QACnD,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,cAAc;QAChC,qBAAqB;KACtB,CAAC,EAAE,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,+CAA+C,CAAC;QAClD,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,qBAAqB;KACtB,CAAC,EAAE,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,OAAO,GAAG,iDAAiD,CAAC;QAChE,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY;QACzC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;KAClC,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS;QACpC,UAAU;QACV,OAAO,CAAC,KAAK;QACb,GAAG,OAAO,CAAC,WAAW;QACtB,GAAG,+CAA+C;QAClD,GAAG,CAAC,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC;KACvC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAyC,CAAC;IACjE,MAAM,IAAI,GAAG,KAAK,CAAC,UAAqC,CAAC;IACzD,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,eAAe,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;YACvE,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,gFAAgF;AAChF,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,4EAA4E;AAC5E,8EAA8E;AAC9E,0EAA0E;AAC1E,sEAAsE;AACtE,cAAc;AAEd,MAAM,CAAC,MAAM,0DAA0D,GAAG,oBAAoB,CAAC;AAC/F,MAAM,CAAC,MAAM,qDAAqD,GAAG,CAAC,CAAC;AACvE,+EAA+E;AAC/E,4EAA4E;AAC5E,+DAA+D;AAC/D,MAAM,CAAC,MAAM,sDAAsD,GAAG,4BAA4B,CAAC;AAEnG,MAAM,mCAAmC,GAAG,CAAC,CAAC;AAC9C,MAAM,oCAAoC,GAAG,2BAA2B,CAAC;AACzE,8EAA8E;AAC9E,+EAA+E;AAC/E,yCAAyC;AACzC,MAAM,sCAAsC,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;AA0BlG;;;;;GAKG;AACH,MAAM,UAAU,4CAA4C,CAAC,GAAY;IACvE,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,mCAAmC;QAAE,OAAO,IAAI,CAAC;IAChG,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QACrE,IAAI,sCAAsC,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;IACvE,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,SAAS,8CAA8C,CACrD,SAAiB,EACjB,WAA6B;IAE7B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,4CAA4C,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,IAAI,SAAS,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACpD,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAaD;;;;;GAKG;AACH,MAAM,UAAU,gDAAgD,CAC9D,QAAoD;IAEpD,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,MAAM,iBAAiB,GAAG;QACxB,QAAQ,CAAC,OAAO,CAAC,KAAK;QACtB,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW;QAC/B,GAAG,+CAA+C;QAClD,GAAG,CAAC,QAAQ,CAAC,qBAAqB,IAAI,EAAE,CAAC;KAC1C,CAAC;IACF,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,4CAA4C,CAAC,OAAO,CAAC,CAAC;QACxE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,aAAa,GAAG,IAAI,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,SAAS;QAClC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpB,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6CAA6C,CAAC,KAK7D;IACC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAiC,CAAC;IACvD,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7D,4EAA4E;IAC5E,6EAA6E;IAC7E,MAAM,MAAM,GAA4B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,gDAAgD,CAAC;QACzF,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;KACnD,CAAC,CAAC;IACH,IAAI,aAAa,EAAE,CAAC;QAClB,aAAa,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IAC5E,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;QACvC,IAAI,8CAA8C,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;YAC3E,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACvD,wEAAwE;QACxE,iCAAiC;QACjC,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACzD,CAAC;IACD,OAAO;QACL,OAAO,EAAE,qDAAqD;QAC9D,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ;QAC/B,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;QACjC,MAAM;QACN,aAAa,EAAE,CAAC,GAAG,aAAa,CAAC;KAClC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iDAAiD,CAAC,KAGjE;IACC,MAAM,IAAI,GAAG,KAAK,CAAC,kBAAkB,CAAC;IACtC,IAAI,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC3E,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,gDAAgD,CACxF,KAAK,CAAC,eAAe,CACtB,CAAC;IACF,IAAI,aAAa;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS;QAC9B,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3B,GAAG,IAAI,CAAC,aAAa;KACtB,CAAC,CAAC;IACH,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4CAA4C,CAC1D,QAAoD;IAEpD,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC,0DAA0D,CAAC,CAAC;IACnF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,GAAG,CAAC,OAAO,KAAK,qDAAqD;QAAE,OAAO,IAAI,CAAC;IACvF,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1F,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAC5C,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CACtD,CAAC;IACF,OAAO;QACL,OAAO,EAAE,qDAAqD;QAC9D,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,aAAa;KACd,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,+CAA+C,CAAC,KAI/D;IAIC,MAAM,IAAI,GAAG,KAAK,CAAC,kBAAkB,CAAC;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IACvE,2EAA2E;IAC3E,wDAAwD;IACxD,IAAI,CAAC,KAAK,CAAC,eAAe;QAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IACxF,2EAA2E;IAC3E,qDAAqD;IACrD,IAAI,iDAAiD,CAAC;QACpD,kBAAkB,EAAE,IAAI;QACxB,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAC,EAAE,CAAC;QACH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IAC9D,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,aAAwC,CAAC;IAE/D,MAAM,YAAY,GAAwC,EAAE,CAAC;IAC7D,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,eAAe,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,eAAe,CAAC,YAAY,IAAI,IAAI,CAAC,EAAE,CAAC;YACrF,aAAa,GAAG,IAAI,CAAC;YACrB,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,IAAI,IAAI,EAAE,EAAE,EAAE,YAAY,IAAI,IAAI,EAAE,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC;IACxE,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACtD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;IAC1D,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mDAAmD,CACjE,QAAoD;IAEpD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,CAAC,CAAC,0DAA0D,IAAI,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/F,MAAM,IAAI,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,OAAO,IAAI,CAAC,0DAA0D,CAAC,CAAC;IACxE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qCAAqC,CAAC,GAAgB;IACpE,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,YAAY,EAAE,sCAAsC,CAAC,GAAG,CAAC,YAAY,CAAC;QACtE,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,IAAI,IAAI;QAChD,kCAAkC,EAAE,GAAG,CAAC,kCAAkC,IAAI,IAAI;QAClF,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,eAAe,EAAE,GAAG,CAAC,eAAe,IAAI,IAAI;QAC5C,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,IAAI;QAC9C,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI;QAClC,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI;QAClC,sBAAsB,EAAE,GAAG,CAAC,sBAAsB,IAAI,IAAI;QAC1D,sEAAsE;QACtE,sEAAsE;QACtE,QAAQ,EAAE,mDAAmD,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC3E,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qDAAqD,CACzE,EAAM,EACN,KAMC;IAED,MAAM,GAAG,GAAG,MAAM,EAAE;SACjB,MAAM,EAAE;SACR,IAAI,CAAC,+BAA+B,CAAC;SACrC,KAAK,CAAC,GAAG,CACR,EAAE,CAAC,+BAA+B,CAAC,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,EACtE,EAAE,CAAC,+BAA+B,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EACvE,EAAE,CAAC,+BAA+B,CAAC,MAAM,EAAE,QAAQ,CAAC,CACrD,CAAC;SACD,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;SAC1G,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC,aAAa,CAAC;IAErC,MAAM,MAAM,GAAG,qCAAqC,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC,aAAa,CAAC;IACpD,IAAI,CAAC,+CAA+C,CAAC;QACnD,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;KACnD,CAAC,EAAE,CAAC;QACH,OAAO,KAAK,CAAC,aAAa,CAAC;IAC7B,CAAC;IAED,+EAA+E;IAC/E,iFAAiF;IACjF,8EAA8E;IAC9E,8EAA8E;IAC9E,+EAA+E;IAC/E,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;IACpC,MAAM,EAAE;SACL,MAAM,CAAC,+BAA+B,CAAC;SACvC,GAAG,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;SACxC,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5D,OAAO,uCAAuC,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Db } from "@paperclipai/db";
|
|
2
2
|
import { type Environment, type EnvironmentCustomImageSetupSession, type EnvironmentCustomImageTemplate } from "@paperclipai/shared";
|
|
3
3
|
import type { PluginEnvironmentInteractiveSetupConnectionPayload } from "@paperclipai/plugin-sdk";
|
|
4
|
+
import { type EnvironmentCustomImageRelinkClassification, type EnvironmentCustomImageDriftedPath } from "./environment-custom-image-runtime.js";
|
|
4
5
|
import type { PluginWorkerManager } from "./plugin-worker-manager.js";
|
|
5
6
|
export interface EnvironmentCustomImageOverview {
|
|
6
7
|
activeTemplate: EnvironmentCustomImageTemplate | null;
|
|
@@ -11,9 +12,21 @@ export interface EnvironmentCustomImageOverview {
|
|
|
11
12
|
* active template, or the config could not be evaluated).
|
|
12
13
|
*/
|
|
13
14
|
activeTemplateMatchesConfig: boolean | null;
|
|
15
|
+
/**
|
|
16
|
+
* Boot-relevant drift attribution for the active template. It classifies the
|
|
17
|
+
* drift between the capture-time boot-relevant snapshot and the current
|
|
18
|
+
* config, and lists the drifted paths with their `from`/`to` values. The UI
|
|
19
|
+
* uses it to name the changed field instead of only "configuration changed".
|
|
20
|
+
* `null` when there is no active template or the driver is not `sandbox`.
|
|
21
|
+
*/
|
|
22
|
+
activeTemplateDrift: EnvironmentCustomImageActiveTemplateDrift | null;
|
|
14
23
|
activeSession: EnvironmentCustomImageSetupSession | null;
|
|
15
24
|
latestSession: EnvironmentCustomImageSetupSession | null;
|
|
16
25
|
}
|
|
26
|
+
export interface EnvironmentCustomImageActiveTemplateDrift {
|
|
27
|
+
classification: EnvironmentCustomImageRelinkClassification;
|
|
28
|
+
driftedPaths: EnvironmentCustomImageDriftedPath[];
|
|
29
|
+
}
|
|
17
30
|
export type EnvironmentCustomImageReconciliation = {
|
|
18
31
|
action: "none";
|
|
19
32
|
} | {
|
|
@@ -84,6 +97,32 @@ export declare function environmentCustomImageService(db: Db, options?: {
|
|
|
84
97
|
next: Pick<Environment, "driver" | "config">;
|
|
85
98
|
now?: Date;
|
|
86
99
|
}) => Promise<EnvironmentCustomImageReconciliation>;
|
|
100
|
+
/**
|
|
101
|
+
* Re-stamps the active template's source fingerprint so a detached-but-valid
|
|
102
|
+
* template applies again, without a sandbox boot or a new provider snapshot.
|
|
103
|
+
* The server classifies the drift between the capture-time boot-relevant
|
|
104
|
+
* snapshot and the current config. A `boot_source_drift` or `unclassified`
|
|
105
|
+
* result needs the `confirmBootSourceDrift` flag; the client never
|
|
106
|
+
* classifies. The re-stamp UPDATE and the activity row run in one
|
|
107
|
+
* transaction. Zero updated rows abort with a conflict and write no activity
|
|
108
|
+
* row.
|
|
109
|
+
*/
|
|
110
|
+
relinkActiveTemplate: (input: {
|
|
111
|
+
environmentId: string;
|
|
112
|
+
confirmBootSourceDrift?: boolean;
|
|
113
|
+
actor: {
|
|
114
|
+
actorType: "agent" | "user" | "system" | "plugin";
|
|
115
|
+
actorId: string;
|
|
116
|
+
agentId?: string | null;
|
|
117
|
+
runId?: string | null;
|
|
118
|
+
agentApiKeyId?: string | null;
|
|
119
|
+
};
|
|
120
|
+
companyId: string;
|
|
121
|
+
now?: Date;
|
|
122
|
+
}) => Promise<{
|
|
123
|
+
template: EnvironmentCustomImageTemplate;
|
|
124
|
+
classification: EnvironmentCustomImageRelinkClassification;
|
|
125
|
+
}>;
|
|
87
126
|
rollbackTemplate: (input: {
|
|
88
127
|
environmentId: string;
|
|
89
128
|
now?: Date;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-custom-images.d.ts","sourceRoot":"","sources":["../../src/services/environment-custom-images.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAK1C,OAAO,EAGL,KAAK,WAAW,EAEhB,KAAK,kCAAkC,EAEvC,KAAK,8BAA8B,EAIpC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAGV,kDAAkD,EAGnD,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"environment-custom-images.d.ts","sourceRoot":"","sources":["../../src/services/environment-custom-images.ts"],"names":[],"mappings":"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"}
|