@paperclipai/server 2026.817.0 → 2026.818.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/hermes-gateway-doc.d.ts +1 -1
- package/dist/adapters/hermes-gateway-doc.d.ts.map +1 -1
- package/dist/adapters/hermes-gateway-doc.js +1 -1
- package/dist/adapters/plugin-loader.d.ts.map +1 -1
- package/dist/adapters/plugin-loader.js +3 -2
- package/dist/adapters/plugin-loader.js.map +1 -1
- package/dist/agent-auth-jwt.d.ts.map +1 -1
- package/dist/agent-auth-jwt.js +8 -2
- package/dist/agent-auth-jwt.js.map +1 -1
- package/dist/app.d.ts +5 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +202 -15
- package/dist/app.js.map +1 -1
- package/dist/built-ins/agents/summarizer/AGENTS.md +2 -2
- package/dist/built-ins/agents/summarizer/routines/refresh-stale-summaries.md +1 -0
- package/dist/db-errors.d.ts +9 -0
- package/dist/db-errors.d.ts.map +1 -1
- package/dist/db-errors.js +19 -0
- package/dist/db-errors.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -2
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +162 -38
- package/dist/index.js.map +1 -1
- package/dist/lib/request-promise-memo.d.ts +6 -0
- package/dist/lib/request-promise-memo.d.ts.map +1 -0
- package/dist/lib/request-promise-memo.js +25 -0
- package/dist/lib/request-promise-memo.js.map +1 -0
- package/dist/lib/request-promise-memo.test.d.ts +2 -0
- package/dist/lib/request-promise-memo.test.d.ts.map +1 -0
- package/dist/lib/request-promise-memo.test.js +74 -0
- package/dist/lib/request-promise-memo.test.js.map +1 -0
- package/dist/middleware/auth.d.ts +13 -1
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +92 -41
- package/dist/middleware/auth.js.map +1 -1
- package/dist/middleware/cloud-tenant-actor.test.js +26 -1
- package/dist/middleware/cloud-tenant-actor.test.js.map +1 -1
- package/dist/middleware/error-handler.d.ts.map +1 -1
- package/dist/middleware/error-handler.js +11 -2
- package/dist/middleware/error-handler.js.map +1 -1
- package/dist/middleware/logger.d.ts.map +1 -1
- package/dist/middleware/logger.js +7 -33
- package/dist/middleware/logger.js.map +1 -1
- package/dist/middleware/private-hostname-guard.d.ts.map +1 -1
- package/dist/middleware/private-hostname-guard.js +11 -6
- package/dist/middleware/private-hostname-guard.js.map +1 -1
- package/dist/middleware/private-json-etag.d.ts +3 -0
- package/dist/middleware/private-json-etag.d.ts.map +1 -0
- package/dist/middleware/private-json-etag.js +37 -0
- package/dist/middleware/private-json-etag.js.map +1 -0
- package/dist/middleware/redact-sensitive.d.ts.map +1 -1
- package/dist/middleware/redact-sensitive.js +11 -0
- package/dist/middleware/redact-sensitive.js.map +1 -1
- package/dist/realtime/live-events-ws.d.ts +12 -0
- package/dist/realtime/live-events-ws.d.ts.map +1 -1
- package/dist/realtime/live-events-ws.js +20 -0
- package/dist/realtime/live-events-ws.js.map +1 -1
- package/dist/redaction.js +1 -1
- package/dist/redaction.js.map +1 -1
- package/dist/routes/access.d.ts +2 -0
- package/dist/routes/access.d.ts.map +1 -1
- package/dist/routes/access.js +21 -10
- package/dist/routes/access.js.map +1 -1
- package/dist/routes/agents.d.ts +42 -0
- package/dist/routes/agents.d.ts.map +1 -1
- package/dist/routes/agents.js +875 -8
- package/dist/routes/agents.js.map +1 -1
- package/dist/routes/companies.d.ts +5 -1
- package/dist/routes/companies.d.ts.map +1 -1
- package/dist/routes/companies.js +467 -30
- package/dist/routes/companies.js.map +1 -1
- package/dist/routes/environments.d.ts +12 -3
- package/dist/routes/environments.d.ts.map +1 -1
- package/dist/routes/environments.js +139 -23
- package/dist/routes/environments.js.map +1 -1
- package/dist/routes/execution-workspaces.d.ts.map +1 -1
- package/dist/routes/execution-workspaces.js +240 -70
- package/dist/routes/execution-workspaces.js.map +1 -1
- package/dist/routes/file-resources.d.ts +14 -1
- package/dist/routes/file-resources.d.ts.map +1 -1
- package/dist/routes/file-resources.js +182 -3
- package/dist/routes/file-resources.js.map +1 -1
- package/dist/routes/index.d.ts +2 -1
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +2 -1
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/instance-settings.d.ts.map +1 -1
- package/dist/routes/instance-settings.js +20 -1
- package/dist/routes/instance-settings.js.map +1 -1
- package/dist/routes/issues.d.ts.map +1 -1
- package/dist/routes/issues.js +750 -235
- package/dist/routes/issues.js.map +1 -1
- package/dist/routes/onboarding-seed.d.ts +27 -0
- package/dist/routes/onboarding-seed.d.ts.map +1 -0
- package/dist/routes/onboarding-seed.js +56 -0
- package/dist/routes/onboarding-seed.js.map +1 -0
- package/dist/routes/openapi.d.ts.map +1 -1
- package/dist/routes/openapi.js +316 -2
- package/dist/routes/openapi.js.map +1 -1
- package/dist/routes/secrets.d.ts.map +1 -1
- package/dist/routes/secrets.js +11 -1
- package/dist/routes/secrets.js.map +1 -1
- package/dist/routes/setup-token-route.test.d.ts +2 -0
- package/dist/routes/setup-token-route.test.d.ts.map +1 -0
- package/dist/routes/setup-token-route.test.js +896 -0
- package/dist/routes/setup-token-route.test.js.map +1 -0
- package/dist/routes/tool-access.d.ts.map +1 -1
- package/dist/routes/tool-access.js +87 -52
- package/dist/routes/tool-access.js.map +1 -1
- package/dist/routes/workspace-runtime-service-authz.d.ts +11 -1
- package/dist/routes/workspace-runtime-service-authz.d.ts.map +1 -1
- package/dist/routes/workspace-runtime-service-authz.js +18 -16
- package/dist/routes/workspace-runtime-service-authz.js.map +1 -1
- package/dist/services/access.d.ts.map +1 -1
- package/dist/services/activity.d.ts +1 -1
- package/dist/services/agents.d.ts +21 -0
- package/dist/services/agents.d.ts.map +1 -1
- package/dist/services/agents.js +121 -1
- package/dist/services/agents.js.map +1 -1
- package/dist/services/attention-resolver-audience.test.d.ts +2 -0
- package/dist/services/attention-resolver-audience.test.d.ts.map +1 -0
- package/dist/services/attention-resolver-audience.test.js +81 -0
- package/dist/services/attention-resolver-audience.test.js.map +1 -0
- package/dist/services/attention.d.ts +20 -1
- package/dist/services/attention.d.ts.map +1 -1
- package/dist/services/attention.js +45 -1
- package/dist/services/attention.js.map +1 -1
- package/dist/services/authorization.d.ts +2 -2
- package/dist/services/authorization.d.ts.map +1 -1
- package/dist/services/authorization.js +89 -46
- package/dist/services/authorization.js.map +1 -1
- package/dist/services/board-auth.d.ts.map +1 -1
- package/dist/services/board-auth.js +40 -1
- package/dist/services/board-auth.js.map +1 -1
- package/dist/services/board-auth.test.d.ts +2 -0
- package/dist/services/board-auth.test.d.ts.map +1 -0
- package/dist/services/board-auth.test.js +34 -0
- package/dist/services/board-auth.test.js.map +1 -0
- package/dist/services/built-in-agents.d.ts.map +1 -1
- package/dist/services/built-in-agents.js +20 -4
- package/dist/services/built-in-agents.js.map +1 -1
- package/dist/services/bundled-plugins.d.ts +11 -1
- package/dist/services/bundled-plugins.d.ts.map +1 -1
- package/dist/services/bundled-plugins.js +46 -1
- package/dist/services/bundled-plugins.js.map +1 -1
- package/dist/services/codex-device-login-reaper.d.ts +61 -0
- package/dist/services/codex-device-login-reaper.d.ts.map +1 -0
- package/dist/services/codex-device-login-reaper.js +219 -0
- package/dist/services/codex-device-login-reaper.js.map +1 -0
- package/dist/services/codex-device-login-service.d.ts +355 -0
- package/dist/services/codex-device-login-service.d.ts.map +1 -0
- package/dist/services/codex-device-login-service.js +775 -0
- package/dist/services/codex-device-login-service.js.map +1 -0
- package/dist/services/companies.d.ts.map +1 -1
- package/dist/services/companies.js +7 -0
- package/dist/services/companies.js.map +1 -1
- package/dist/services/company-export-readme.js +1 -1
- package/dist/services/company-export-readme.js.map +1 -1
- package/dist/services/company-import-transfers.d.ts +55 -0
- package/dist/services/company-import-transfers.d.ts.map +1 -0
- package/dist/services/company-import-transfers.js +151 -0
- package/dist/services/company-import-transfers.js.map +1 -0
- package/dist/services/company-portability.d.ts.map +1 -1
- package/dist/services/company-portability.js +128 -3
- package/dist/services/company-portability.js.map +1 -1
- package/dist/services/company-transfer-runs.d.ts +136 -0
- package/dist/services/company-transfer-runs.d.ts.map +1 -0
- package/dist/services/company-transfer-runs.js +243 -0
- package/dist/services/company-transfer-runs.js.map +1 -0
- package/dist/services/cross-issue-influence-limit.d.ts +7 -1
- package/dist/services/cross-issue-influence-limit.d.ts.map +1 -1
- package/dist/services/cross-issue-influence-limit.js.map +1 -1
- package/dist/services/environment-config.d.ts +15 -0
- package/dist/services/environment-config.d.ts.map +1 -1
- package/dist/services/environment-config.js +56 -10
- package/dist/services/environment-config.js.map +1 -1
- package/dist/services/environment-execution-target.d.ts.map +1 -1
- package/dist/services/environment-execution-target.js +61 -11
- package/dist/services/environment-execution-target.js.map +1 -1
- package/dist/services/environment-run-orchestrator.d.ts +16 -1
- package/dist/services/environment-run-orchestrator.d.ts.map +1 -1
- package/dist/services/environment-run-orchestrator.js +1 -1
- package/dist/services/environment-run-orchestrator.js.map +1 -1
- package/dist/services/environment-runtime.d.ts +178 -2
- package/dist/services/environment-runtime.d.ts.map +1 -1
- package/dist/services/environment-runtime.js +1035 -96
- package/dist/services/environment-runtime.js.map +1 -1
- package/dist/services/environments.d.ts +75 -0
- package/dist/services/environments.d.ts.map +1 -1
- package/dist/services/environments.js +199 -8
- package/dist/services/environments.js.map +1 -1
- package/dist/services/execution-allowlist.d.ts +16 -4
- package/dist/services/execution-allowlist.d.ts.map +1 -1
- package/dist/services/execution-allowlist.js +35 -16
- package/dist/services/execution-allowlist.js.map +1 -1
- package/dist/services/execution-allowlist.test.js +33 -0
- package/dist/services/execution-allowlist.test.js.map +1 -1
- package/dist/services/execution-workspace-policy.d.ts +14 -1
- package/dist/services/execution-workspace-policy.d.ts.map +1 -1
- package/dist/services/execution-workspace-policy.js +29 -12
- package/dist/services/execution-workspace-policy.js.map +1 -1
- package/dist/services/execution-workspaces.d.ts +89 -0
- package/dist/services/execution-workspaces.d.ts.map +1 -1
- package/dist/services/execution-workspaces.js +997 -125
- package/dist/services/execution-workspaces.js.map +1 -1
- package/dist/services/heartbeat-run-summary.d.ts +1 -0
- package/dist/services/heartbeat-run-summary.d.ts.map +1 -1
- package/dist/services/heartbeat-run-summary.js +19 -3
- package/dist/services/heartbeat-run-summary.js.map +1 -1
- package/dist/services/heartbeat.d.ts +18 -2
- package/dist/services/heartbeat.d.ts.map +1 -1
- package/dist/services/heartbeat.js +369 -16
- package/dist/services/heartbeat.js.map +1 -1
- package/dist/services/import-write-types.d.ts +12 -0
- package/dist/services/import-write-types.d.ts.map +1 -1
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +2 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/instance-settings.d.ts +10 -1
- package/dist/services/instance-settings.d.ts.map +1 -1
- package/dist/services/instance-settings.js +16 -9
- package/dist/services/instance-settings.js.map +1 -1
- package/dist/services/issue-review-policy.d.ts +4 -0
- package/dist/services/issue-review-policy.d.ts.map +1 -1
- package/dist/services/issue-review-policy.js +18 -7
- package/dist/services/issue-review-policy.js.map +1 -1
- package/dist/services/issue-thread-interaction-resolution.d.ts +92 -0
- package/dist/services/issue-thread-interaction-resolution.d.ts.map +1 -0
- package/dist/services/issue-thread-interaction-resolution.js +198 -0
- package/dist/services/issue-thread-interaction-resolution.js.map +1 -0
- package/dist/services/issue-thread-interaction-resolution.test.d.ts +2 -0
- package/dist/services/issue-thread-interaction-resolution.test.d.ts.map +1 -0
- package/dist/services/issue-thread-interaction-resolution.test.js +152 -0
- package/dist/services/issue-thread-interaction-resolution.test.js.map +1 -0
- package/dist/services/issue-thread-interactions.d.ts +24 -4
- package/dist/services/issue-thread-interactions.d.ts.map +1 -1
- package/dist/services/issue-thread-interactions.js +360 -145
- package/dist/services/issue-thread-interactions.js.map +1 -1
- package/dist/services/issue-thread-interactions.test.js +18 -11
- package/dist/services/issue-thread-interactions.test.js.map +1 -1
- package/dist/services/issues.d.ts +3 -0
- package/dist/services/issues.d.ts.map +1 -1
- package/dist/services/issues.js +157 -33
- package/dist/services/issues.js.map +1 -1
- package/dist/services/local-service-supervisor.d.ts +2 -0
- package/dist/services/local-service-supervisor.d.ts.map +1 -1
- package/dist/services/local-service-supervisor.js +53 -3
- package/dist/services/local-service-supervisor.js.map +1 -1
- package/dist/services/managed-environments.d.ts +4 -1
- package/dist/services/managed-environments.d.ts.map +1 -1
- package/dist/services/managed-environments.js +86 -2
- package/dist/services/managed-environments.js.map +1 -1
- package/dist/services/managed-environments.test.js +164 -0
- package/dist/services/managed-environments.test.js.map +1 -1
- package/dist/services/onboarding-greeting.d.ts +7 -0
- package/dist/services/onboarding-greeting.d.ts.map +1 -0
- package/dist/services/onboarding-greeting.js +27 -0
- package/dist/services/onboarding-greeting.js.map +1 -0
- package/dist/services/onboarding-greeting.test.d.ts +2 -0
- package/dist/services/onboarding-greeting.test.d.ts.map +1 -0
- package/dist/services/onboarding-greeting.test.js +32 -0
- package/dist/services/onboarding-greeting.test.js.map +1 -0
- package/dist/services/onboarding-seed.d.ts +57 -0
- package/dist/services/onboarding-seed.d.ts.map +1 -0
- package/dist/services/onboarding-seed.js +344 -0
- package/dist/services/onboarding-seed.js.map +1 -0
- package/dist/services/plan-review-context.d.ts +9 -1
- package/dist/services/plan-review-context.d.ts.map +1 -1
- package/dist/services/plan-review-context.js +192 -0
- package/dist/services/plan-review-context.js.map +1 -1
- package/dist/services/plugin-environment-driver.d.ts +46 -0
- package/dist/services/plugin-environment-driver.d.ts.map +1 -1
- package/dist/services/plugin-environment-driver.js +50 -0
- package/dist/services/plugin-environment-driver.js.map +1 -1
- package/dist/services/plugin-host-services.d.ts +1 -0
- package/dist/services/plugin-host-services.d.ts.map +1 -1
- package/dist/services/plugin-host-services.js +51 -28
- package/dist/services/plugin-host-services.js.map +1 -1
- package/dist/services/plugin-loader.d.ts +10 -1
- package/dist/services/plugin-loader.d.ts.map +1 -1
- package/dist/services/plugin-loader.js +43 -2
- package/dist/services/plugin-loader.js.map +1 -1
- package/dist/services/plugin-worker-manager.d.ts +61 -0
- package/dist/services/plugin-worker-manager.d.ts.map +1 -1
- package/dist/services/plugin-worker-manager.js +248 -1
- package/dist/services/plugin-worker-manager.js.map +1 -1
- package/dist/services/productivity-review.d.ts.map +1 -1
- package/dist/services/productivity-review.js +5 -0
- package/dist/services/productivity-review.js.map +1 -1
- package/dist/services/recovery/service.d.ts.map +1 -1
- package/dist/services/recovery/service.js +5 -1
- package/dist/services/recovery/service.js.map +1 -1
- package/dist/services/recovery/successful-run-handoff.d.ts +16 -1
- package/dist/services/recovery/successful-run-handoff.d.ts.map +1 -1
- package/dist/services/recovery/successful-run-handoff.js +32 -0
- package/dist/services/recovery/successful-run-handoff.js.map +1 -1
- package/dist/services/recovery/successful-run-handoff.test.js +51 -1
- package/dist/services/recovery/successful-run-handoff.test.js.map +1 -1
- package/dist/services/routines.d.ts.map +1 -1
- package/dist/services/routines.js +48 -4
- package/dist/services/routines.js.map +1 -1
- package/dist/services/runtime-exposure/broker-client.d.ts +88 -0
- package/dist/services/runtime-exposure/broker-client.d.ts.map +1 -0
- package/dist/services/runtime-exposure/broker-client.js +217 -0
- package/dist/services/runtime-exposure/broker-client.js.map +1 -0
- package/dist/services/runtime-exposure/broker-client.test.d.ts +2 -0
- package/dist/services/runtime-exposure/broker-client.test.d.ts.map +1 -0
- package/dist/services/runtime-exposure/broker-client.test.js +185 -0
- package/dist/services/runtime-exposure/broker-client.test.js.map +1 -0
- package/dist/services/runtime-exposure/exposure-manager.d.ts +135 -0
- package/dist/services/runtime-exposure/exposure-manager.d.ts.map +1 -0
- package/dist/services/runtime-exposure/exposure-manager.js +247 -0
- package/dist/services/runtime-exposure/exposure-manager.js.map +1 -0
- package/dist/services/runtime-exposure/exposure-manager.test.d.ts +2 -0
- package/dist/services/runtime-exposure/exposure-manager.test.d.ts.map +1 -0
- package/dist/services/runtime-exposure/exposure-manager.test.js +384 -0
- package/dist/services/runtime-exposure/exposure-manager.test.js.map +1 -0
- package/dist/services/runtime-exposure/loopback-listener.d.ts +33 -0
- package/dist/services/runtime-exposure/loopback-listener.d.ts.map +1 -0
- package/dist/services/runtime-exposure/loopback-listener.js +146 -0
- package/dist/services/runtime-exposure/loopback-listener.js.map +1 -0
- package/dist/services/runtime-exposure/loopback-listener.test.d.ts +2 -0
- package/dist/services/runtime-exposure/loopback-listener.test.d.ts.map +1 -0
- package/dist/services/runtime-exposure/loopback-listener.test.js +116 -0
- package/dist/services/runtime-exposure/loopback-listener.test.js.map +1 -0
- package/dist/services/runtime-exposure/port-pair.d.ts +47 -0
- package/dist/services/runtime-exposure/port-pair.d.ts.map +1 -0
- package/dist/services/runtime-exposure/port-pair.js +57 -0
- package/dist/services/runtime-exposure/port-pair.js.map +1 -0
- package/dist/services/runtime-exposure/port-pair.test.d.ts +2 -0
- package/dist/services/runtime-exposure/port-pair.test.d.ts.map +1 -0
- package/dist/services/runtime-exposure/port-pair.test.js +92 -0
- package/dist/services/runtime-exposure/port-pair.test.js.map +1 -0
- package/dist/services/runtime-exposure/port-reservation.d.ts +211 -0
- package/dist/services/runtime-exposure/port-reservation.d.ts.map +1 -0
- package/dist/services/runtime-exposure/port-reservation.js +380 -0
- package/dist/services/runtime-exposure/port-reservation.js.map +1 -0
- package/dist/services/runtime-exposure/port-reservation.test.d.ts +2 -0
- package/dist/services/runtime-exposure/port-reservation.test.d.ts.map +1 -0
- package/dist/services/runtime-exposure/port-reservation.test.js +456 -0
- package/dist/services/runtime-exposure/port-reservation.test.js.map +1 -0
- package/dist/services/runtime-exposure/tailscale-hostname.d.ts +11 -0
- package/dist/services/runtime-exposure/tailscale-hostname.d.ts.map +1 -0
- package/dist/services/runtime-exposure/tailscale-hostname.js +36 -0
- package/dist/services/runtime-exposure/tailscale-hostname.js.map +1 -0
- package/dist/services/runtime-exposure/tailscale-hostname.test.d.ts +2 -0
- package/dist/services/runtime-exposure/tailscale-hostname.test.d.ts.map +1 -0
- package/dist/services/runtime-exposure/tailscale-hostname.test.js +14 -0
- package/dist/services/runtime-exposure/tailscale-hostname.test.js.map +1 -0
- package/dist/services/sandbox-orphan-cleanup-spool.d.ts +64 -0
- package/dist/services/sandbox-orphan-cleanup-spool.d.ts.map +1 -0
- package/dist/services/sandbox-orphan-cleanup-spool.js +134 -0
- package/dist/services/sandbox-orphan-cleanup-spool.js.map +1 -0
- package/dist/services/sandbox-provider-runtime.d.ts +15 -0
- package/dist/services/sandbox-provider-runtime.d.ts.map +1 -1
- package/dist/services/sandbox-provider-runtime.js +1 -0
- package/dist/services/sandbox-provider-runtime.js.map +1 -1
- package/dist/services/secrets.d.ts +103 -0
- package/dist/services/secrets.d.ts.map +1 -1
- package/dist/services/secrets.js +432 -10
- package/dist/services/secrets.js.map +1 -1
- package/dist/services/setup-token-session.d.ts +630 -0
- package/dist/services/setup-token-session.d.ts.map +1 -0
- package/dist/services/setup-token-session.js +1005 -0
- package/dist/services/setup-token-session.js.map +1 -0
- package/dist/services/setup-token-session.test.d.ts +2 -0
- package/dist/services/setup-token-session.test.d.ts.map +1 -0
- package/dist/services/setup-token-session.test.js +1143 -0
- package/dist/services/setup-token-session.test.js.map +1 -0
- package/dist/services/setup-token-transport-binding.d.ts +202 -0
- package/dist/services/setup-token-transport-binding.d.ts.map +1 -0
- package/dist/services/setup-token-transport-binding.js +386 -0
- package/dist/services/setup-token-transport-binding.js.map +1 -0
- package/dist/services/setup-token-transport-binding.test.d.ts +2 -0
- package/dist/services/setup-token-transport-binding.test.d.ts.map +1 -0
- package/dist/services/setup-token-transport-binding.test.js +761 -0
- package/dist/services/setup-token-transport-binding.test.js.map +1 -0
- package/dist/services/summary-slots.d.ts.map +1 -1
- package/dist/services/summary-slots.js +40 -6
- package/dist/services/summary-slots.js.map +1 -1
- package/dist/services/task-watchdogs.js +2 -2
- package/dist/services/task-watchdogs.js.map +1 -1
- package/dist/services/tool-access-policy.d.ts +1 -1
- package/dist/services/tool-access.d.ts.map +1 -1
- package/dist/services/tool-access.js +29 -11
- package/dist/services/tool-access.js.map +1 -1
- package/dist/services/tool-gateway.d.ts +1 -1
- package/dist/services/tool-gateway.d.ts.map +1 -1
- package/dist/services/tool-gateway.js +56 -5
- package/dist/services/tool-gateway.js.map +1 -1
- package/dist/services/workspace-file-resources.d.ts +10 -1
- package/dist/services/workspace-file-resources.d.ts.map +1 -1
- package/dist/services/workspace-file-resources.js +258 -6
- package/dist/services/workspace-file-resources.js.map +1 -1
- package/dist/services/workspace-git-operation-scheduler.d.ts +135 -0
- package/dist/services/workspace-git-operation-scheduler.d.ts.map +1 -0
- package/dist/services/workspace-git-operation-scheduler.js +655 -0
- package/dist/services/workspace-git-operation-scheduler.js.map +1 -0
- package/dist/services/workspace-git-operation-scheduler.test.d.ts +2 -0
- package/dist/services/workspace-git-operation-scheduler.test.d.ts.map +1 -0
- package/dist/services/workspace-git-operation-scheduler.test.js +367 -0
- package/dist/services/workspace-git-operation-scheduler.test.js.map +1 -0
- package/dist/services/workspace-operations.d.ts +60 -0
- package/dist/services/workspace-operations.d.ts.map +1 -1
- package/dist/services/workspace-operations.js +384 -19
- package/dist/services/workspace-operations.js.map +1 -1
- package/dist/services/workspace-runtime-exposure-backfill.test.d.ts +2 -0
- package/dist/services/workspace-runtime-exposure-backfill.test.d.ts.map +1 -0
- package/dist/services/workspace-runtime-exposure-backfill.test.js +149 -0
- package/dist/services/workspace-runtime-exposure-backfill.test.js.map +1 -0
- package/dist/services/workspace-runtime-exposure.test.d.ts +2 -0
- package/dist/services/workspace-runtime-exposure.test.d.ts.map +1 -0
- package/dist/services/workspace-runtime-exposure.test.js +517 -0
- package/dist/services/workspace-runtime-exposure.test.js.map +1 -0
- package/dist/services/workspace-runtime-leases.d.ts +90 -0
- package/dist/services/workspace-runtime-leases.d.ts.map +1 -0
- package/dist/services/workspace-runtime-leases.js +252 -0
- package/dist/services/workspace-runtime-leases.js.map +1 -0
- package/dist/services/workspace-runtime-read-model.d.ts +12 -0
- package/dist/services/workspace-runtime-read-model.d.ts.map +1 -1
- package/dist/services/workspace-runtime-read-model.test.js +3 -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 +160 -2
- package/dist/services/workspace-runtime.d.ts.map +1 -1
- package/dist/services/workspace-runtime.js +1693 -141
- package/dist/services/workspace-runtime.js.map +1 -1
- package/dist/shutdown.d.ts +24 -0
- package/dist/shutdown.d.ts.map +1 -1
- package/dist/shutdown.js +37 -0
- package/dist/shutdown.js.map +1 -1
- package/dist/shutdown.test.js +113 -1
- package/dist/shutdown.test.js.map +1 -1
- package/dist/startup-banner.js +1 -1
- package/dist/startup-banner.js.map +1 -1
- package/dist/url-utils.d.ts +26 -0
- package/dist/url-utils.d.ts.map +1 -0
- package/dist/url-utils.js +59 -0
- package/dist/url-utils.js.map +1 -0
- package/dist/url-utils.test.d.ts +2 -0
- package/dist/url-utils.test.d.ts.map +1 -0
- package/dist/url-utils.test.js +55 -0
- package/dist/url-utils.test.js.map +1 -0
- package/dist/worktree-config.d.ts.map +1 -1
- package/dist/worktree-config.js +3 -17
- package/dist/worktree-config.js.map +1 -1
- package/package.json +20 -20
- package/skills/paperclip/SKILL.md +16 -11
- package/skills/paperclip/references/api-reference.md +8 -5
- package/skills/paperclip-board/SKILL.md +1 -1
- package/ui-dist/assets/{abnfDiagram-VRR7QNED-wvSnvD6-.js → abnfDiagram-N423BO3Z-BvgoV-u5.js} +1 -1
- package/ui-dist/assets/{arc-Bx0V1JsN.js → arc-BInnUBUU.js} +1 -1
- package/ui-dist/assets/architectureDiagram-T3A2C74G-Dg4MziOm.js +36 -0
- package/ui-dist/assets/{blockDiagram-677ZJIJ3-BROcLaUk.js → blockDiagram-VBNYF7ZC-D9kzAkLN.js} +1 -1
- package/ui-dist/assets/{c4Diagram-LMCZKHZV-D-V3kgju.js → c4Diagram-5PPSVZJV-BwzsgV_0.js} +1 -1
- package/ui-dist/assets/channel-qoSYbCn0.js +1 -0
- package/ui-dist/assets/{chunk-32BRIVSS-qillH3H6.js → chunk-2GRJ4B5K-D2EQ9vrl.js} +1 -1
- package/ui-dist/assets/{chunk-2Q5K7J3B-D19cVnii.js → chunk-2Q5K7J3B-DOA_8fSd.js} +1 -1
- package/ui-dist/assets/{chunk-EX3LRPZG-CLUswrZg.js → chunk-5RXB4S5H-CT5ukRiT.js} +1 -1
- package/ui-dist/assets/{chunk-5VM5RSS4-Cwlp02Lx.js → chunk-5VM5RSS4-D2gOlkyB.js} +1 -1
- package/ui-dist/assets/{chunk-MOJQB5TN-yKciyq6E.js → chunk-6Q2QTUOP-DUb6aG8c.js} +1 -1
- package/ui-dist/assets/{chunk-V7JOEXUC-DjJ75g0_.js → chunk-GF5L2VYU-BPabG3Cx.js} +1 -1
- package/ui-dist/assets/{chunk-JWPE2WC7-BjepyzEb.js → chunk-JWPE2WC7-scNfhlZz.js} +1 -1
- package/ui-dist/assets/{chunk-VR4S4FIN-CiEmy8-R.js → chunk-KBJHAD2P-BcRAzRpq.js} +1 -1
- package/ui-dist/assets/{chunk-RYQCIY6F-ed7mQM9j.js → chunk-RYQCIY6F-BiZ0-EGh.js} +1 -1
- package/ui-dist/assets/{chunk-XXDRQBXY-BiI83zoO.js → chunk-XXDRQBXY-lJULxFIE.js} +1 -1
- package/ui-dist/assets/classDiagram-JCYQIIEL-B24u1REs.js +1 -0
- package/ui-dist/assets/classDiagram-v2-OCEON4UE-B24u1REs.js +1 -0
- package/ui-dist/assets/{cose-bilkent-JH36ORCC-DIdQf5ta.js → cose-bilkent-JH36ORCC-Do8pe8JB.js} +1 -1
- package/ui-dist/assets/{cynefin-VYW2F7L2-B2m9xxh8.js → cynefin-VYW2F7L2-B34jJY1x.js} +1 -1
- package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-CGVdB0kX.js → cynefinDiagram-MW4NZA55-DQ8QK8JK.js} +1 -1
- package/ui-dist/assets/cytoscape.esm-DShqj__B.js +321 -0
- package/ui-dist/assets/{dagre-VKFMJZFB-CskKiZwJ.js → dagre-VZM6K2ZE-B7lSKgxH.js} +1 -1
- package/ui-dist/assets/{diagram-OA4YK3LP-D2cn5eIN.js → diagram-7IWD3JNH-B3hLAFGE.js} +1 -1
- package/ui-dist/assets/{diagram-FQU43EPY-oa5Zu0XG.js → diagram-B4RE2ZJO-CH9Ro9e0.js} +1 -1
- package/ui-dist/assets/{diagram-NH7WQ7WH-fymti5Js.js → diagram-LBJQPF4R-DdPVMii7.js} +1 -1
- package/ui-dist/assets/{diagram-G47NLZAW-BWF2ZCsw.js → diagram-Q27KOJAE-f5VXswjc.js} +1 -1
- package/ui-dist/assets/diagram-UB23O5K3-DGqxixsR.js +41 -0
- package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-CJ1d3D5q.js → ebnfDiagram-BXEA7PRR-C-1klg_w.js} +1 -1
- package/ui-dist/assets/{erDiagram-Q63AITRT-BJCPa7kK.js → erDiagram-JOGREHBK-Dt4qK4gv.js} +1 -1
- package/ui-dist/assets/{flowDiagram-23GEKE2U-BWjWuz6r.js → flowDiagram-UKHOOZJN-9ZlrTuET.js} +5 -5
- package/ui-dist/assets/{ganttDiagram-NO4QXBWP-Dv1KKjoM.js → ganttDiagram-PKOTCBZU-CE3lyvFq.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-9X7vgL0A.js → gitGraphDiagram-DS77QQ5N-HH2fSgad.js} +1 -1
- package/ui-dist/assets/{index-CpaK48ok.js → index-B61ORkIb.js} +1 -1
- package/ui-dist/assets/index-BHiUiToL.css +1 -0
- package/ui-dist/assets/{index-D2YCrA-D.js → index-BY5ITKmG.js} +1 -1
- package/ui-dist/assets/{index-9JMDmXc5.js → index-BbAhzCq8.js} +1 -1
- package/ui-dist/assets/{index-C5qHatpp.js → index-Bc9g6q63.js} +1 -1
- package/ui-dist/assets/{index-DuI6e5mP.js → index-Bf7tyGxE.js} +1 -1
- package/ui-dist/assets/{index-BahRsj0s.js → index-BvFx-4KW.js} +1 -1
- package/ui-dist/assets/{index-DKlsEDV7.js → index-C1mpWCcn.js} +1 -1
- package/ui-dist/assets/{index-DIXaXZrW.js → index-CHXG4GPL.js} +1 -1
- package/ui-dist/assets/{index-DcfO6NoY.js → index-CLu3Tfpv.js} +1 -1
- package/ui-dist/assets/{index-Cfz6P0Qq.js → index-CQhaM6qd.js} +1 -1
- package/ui-dist/assets/{index-D9d3sl6K.js → index-CVTL3aAL.js} +1 -1
- package/ui-dist/assets/{index-BexA3NAl.js → index-CcRTJ93J.js} +1 -1
- package/ui-dist/assets/{index-CnBrDwGT.js → index-Cm6iEYPt.js} +247 -223
- package/ui-dist/assets/{index-ByGcu-MB.js → index-DQIrrn2L.js} +1 -1
- package/ui-dist/assets/{index-DKEzHO7c.js → index-DU4U1fuv.js} +1 -1
- package/ui-dist/assets/{index-pqJO8FsV.js → index-DV2FOgyD.js} +1 -1
- package/ui-dist/assets/{index-tDuieU3u.js → index-DceuCrr8.js} +1 -1
- package/ui-dist/assets/{index-CjN2lm_w.js → index-DlVBBF8o.js} +1 -1
- package/ui-dist/assets/{index-0yJtUsFh.js → index-DsdVneqe.js} +1 -1
- package/ui-dist/assets/{index-C2a4_IKU.js → index-DvFUXI-Q.js} +1 -1
- package/ui-dist/assets/{index-BTMiDMYv.js → index-FHzrJ7iQ.js} +1 -1
- package/ui-dist/assets/{index-cUQXJtLK.js → index-diFs0CNC.js} +1 -1
- package/ui-dist/assets/{index-C96LHV1A.js → index-hkanj4t6.js} +1 -1
- package/ui-dist/assets/{index-rDI1Q4r9.js → index-yRJnh4vx.js} +1 -1
- package/ui-dist/assets/{infoDiagram-FWYZ7A6U-CHIhutSb.js → infoDiagram-6WML65LV-2jai2fw-.js} +1 -1
- package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-ChaD7-5_.js → ishikawaDiagram-WSZJBQD7-CUmGhmEb.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-5HDEW3XC-M5T2sMgn.js → journeyDiagram-NVQOT4AX-CGQuPDO1.js} +1 -1
- package/ui-dist/assets/{kanban-definition-HUTT4EX6-B8H6R_Wc.js → kanban-definition-27J2QSJJ-zgEPcbHl.js} +1 -1
- package/ui-dist/assets/{linear-cpPKlVCq.js → linear-BVf5VtLS.js} +1 -1
- package/ui-dist/assets/mermaid.core-D2TFkGfI.js +308 -0
- package/ui-dist/assets/{mindmap-definition-LN4V7U3C-Bf6POzvm.js → mindmap-definition-FAOFIHXS-xoAQ0Lb_.js} +1 -1
- package/ui-dist/assets/{pegDiagram-2B236MQR-BJbGktAV.js → pegDiagram-VL7TDLO6-CBR1PWLr.js} +1 -1
- package/ui-dist/assets/{pieDiagram-ENE6RG2P-BmSN9Bio.js → pieDiagram-7S7Q4E2Y-BMPnzK_e.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-JUpqQCx_.js → quadrantDiagram-CIZ2JOQS-CPtVUPkR.js} +1 -1
- package/ui-dist/assets/{railroadDiagram-RFXS5EU6-B8k8T4-2.js → railroadDiagram-AXF67PYL-DC0lsZV1.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-TGXJPOKE-b32heq7Q.js → requirementDiagram-LRYGKXZP-BF6k05SB.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-DC3s-xgf.js → sankeyDiagram-W5VNT64P-CRN0ibiP.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-BsCFyv_E.js → sequenceDiagram-SI44F4Z6-CQtTiPWm.js} +1 -1
- package/ui-dist/assets/{sizeCapture-X5ZJPWSS-S7xeCud3.js → sizeCapture-X5ZJPWSS-BdjuGZd1.js} +1 -1
- package/ui-dist/assets/{stateDiagram-2N3HPSRC-58O3ofoS.js → stateDiagram-OKZ733FA-B99onxyh.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-UEYNNEHI-bzFlYBZ1.js +1 -0
- package/ui-dist/assets/{swimlanes-5IMT3BWC-DFCVG0iF.js → swimlanes-SLNWSIFB-BIByPbrL.js} +2 -2
- package/ui-dist/assets/swimlanesDiagram-ULZ7WXOC-DgdkBnuK.js +8 -0
- package/ui-dist/assets/{timeline-definition-FHXFAJF6-C0c0SkQu.js → timeline-definition-Z64GVDOM-I1NgOcn9.js} +1 -1
- package/ui-dist/assets/{vennDiagram-L72KCM5P-B1cEx8GQ.js → vennDiagram-T6HMQDX7-D6t2Njcl.js} +1 -1
- package/ui-dist/assets/{wardleyDiagram-EHGQE667-BQhDkOx9.js → wardleyDiagram-T6FBY63Y-BiYKm9gh.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-FW5EYKEG-YSQp1N0i.js → xychartDiagram-ELKLHX3M-BhwXKWIa.js} +4 -4
- package/ui-dist/index.html +3 -3
- package/ui-dist/sw.js +8 -3
- package/ui-dist/assets/architectureDiagram-ZJ3FMSHR-BcJt8Ia1.js +0 -36
- package/ui-dist/assets/channel-ZRpjyNiZ.js +0 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-CCzzzCgk.js +0 -1
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-CCzzzCgk.js +0 -1
- package/ui-dist/assets/cytoscape.esm-D8joxN9f.js +0 -321
- package/ui-dist/assets/diagram-WEI45ONY-M3WOC2tK.js +0 -41
- package/ui-dist/assets/index-BqfqfoQX.css +0 -1
- package/ui-dist/assets/mermaid.core-MCazc_od.js +0 -308
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-_VY5dpDG.js +0 -1
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-BJhUjfns.js +0 -8
|
@@ -1,10 +1,156 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { workspaceOperations } from "@paperclipai/db";
|
|
3
|
-
import { asc, desc, eq, inArray, isNull, or, and } from "drizzle-orm";
|
|
4
|
-
import { notFound } from "../errors.js";
|
|
3
|
+
import { asc, desc, eq, gte, inArray, isNull, lt, or, and } from "drizzle-orm";
|
|
4
|
+
import { conflict, notFound } from "../errors.js";
|
|
5
5
|
import { redactCurrentUserText, redactCurrentUserValue } from "../log-redaction.js";
|
|
6
6
|
import { instanceSettingsService } from "./instance-settings.js";
|
|
7
7
|
import { getWorkspaceOperationLogStore } from "./workspace-operation-log-store.js";
|
|
8
|
+
/**
|
|
9
|
+
* Managed runtime control actions. Every one of these mutates the runtime rows and
|
|
10
|
+
* local listeners of a single execution workspace, so only one may be live at a time.
|
|
11
|
+
*/
|
|
12
|
+
const RUNTIME_CONTROL_ACTIONS = new Set(["start", "stop", "restart", "run"]);
|
|
13
|
+
/**
|
|
14
|
+
* Identity of this server process. A `running` runtime-control operation stamped with a
|
|
15
|
+
* different owner id can only have been left behind by another (now gone) process, which
|
|
16
|
+
* is what makes bounded recovery safe: we never guess about our own live operations.
|
|
17
|
+
*/
|
|
18
|
+
const RUNTIME_CONTROL_OWNER_ID = randomUUID();
|
|
19
|
+
/** How often a live operation refreshes its ownership stamp. */
|
|
20
|
+
export const RUNTIME_CONTROL_HEARTBEAT_MS = 10_000;
|
|
21
|
+
/**
|
|
22
|
+
* How long an operation may go without a heartbeat before another owner may terminalize
|
|
23
|
+
* it. Deliberately several heartbeat intervals so a slow-but-live start is never stolen.
|
|
24
|
+
*/
|
|
25
|
+
export const RUNTIME_CONTROL_STALE_AFTER_MS = 60_000;
|
|
26
|
+
/**
|
|
27
|
+
* Last-resort ceiling for a managed runtime lifecycle control. Past this the operation is
|
|
28
|
+
* failed by its own owner so it always reaches a terminal state, even when the underlying
|
|
29
|
+
* start hangs on an unresponsive process or provider that keeps the owner alive. Generous
|
|
30
|
+
* enough to cover a cold runtime provision (a full dependency install) on a large repo.
|
|
31
|
+
*/
|
|
32
|
+
export const RUNTIME_CONTROL_MAX_DURATION_MS = 30 * 60_000;
|
|
33
|
+
/**
|
|
34
|
+
* Workspace jobs are operator-authored commands (builds, migrations, test suites) that can
|
|
35
|
+
* legitimately run far longer than a lifecycle control, so they get a much wider ceiling —
|
|
36
|
+
* still finite, so a wedged job cannot hold the workspace forever.
|
|
37
|
+
*/
|
|
38
|
+
export const WORKSPACE_JOB_MAX_DURATION_MS = 4 * 60 * 60_000;
|
|
39
|
+
function defaultRuntimeControlTimeoutMs(action) {
|
|
40
|
+
if (!action)
|
|
41
|
+
return null;
|
|
42
|
+
return action === "run" ? WORKSPACE_JOB_MAX_DURATION_MS : RUNTIME_CONTROL_MAX_DURATION_MS;
|
|
43
|
+
}
|
|
44
|
+
export class WorkspaceOperationTimeoutError extends Error {
|
|
45
|
+
timeoutMs;
|
|
46
|
+
constructor(timeoutMs, action) {
|
|
47
|
+
super(`Managed workspace ${action ?? "runtime"} operation exceeded its ${Math.round(timeoutMs / 1000)}s time budget and was failed so it can be retried or stopped.`);
|
|
48
|
+
this.timeoutMs = timeoutMs;
|
|
49
|
+
this.name = "WorkspaceOperationTimeoutError";
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function readRuntimeControlAction(metadata) {
|
|
53
|
+
if (!metadata || typeof metadata !== "object")
|
|
54
|
+
return null;
|
|
55
|
+
const action = metadata.action;
|
|
56
|
+
if (typeof action !== "string" || !RUNTIME_CONTROL_ACTIONS.has(action))
|
|
57
|
+
return null;
|
|
58
|
+
return action;
|
|
59
|
+
}
|
|
60
|
+
function readRuntimeControlOwner(metadata) {
|
|
61
|
+
if (!metadata || typeof metadata !== "object")
|
|
62
|
+
return null;
|
|
63
|
+
const owner = metadata.runtimeControlOwner;
|
|
64
|
+
if (!owner || typeof owner !== "object")
|
|
65
|
+
return null;
|
|
66
|
+
const record = owner;
|
|
67
|
+
if (typeof record.ownerId !== "string")
|
|
68
|
+
return null;
|
|
69
|
+
return {
|
|
70
|
+
ownerId: record.ownerId,
|
|
71
|
+
pid: typeof record.pid === "number" ? record.pid : 0,
|
|
72
|
+
action: typeof record.action === "string" ? record.action : "start",
|
|
73
|
+
heartbeatAt: typeof record.heartbeatAt === "string" ? record.heartbeatAt : new Date(0).toISOString(),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Operation ids this process is actively driving. An operation owned by this process but
|
|
78
|
+
* missing from this set can only be a leftover from a request that died without unwinding,
|
|
79
|
+
* so it is safe to terminalize immediately instead of waiting out the staleness window.
|
|
80
|
+
*/
|
|
81
|
+
const liveRuntimeControlOperationIds = new Set();
|
|
82
|
+
/**
|
|
83
|
+
* Whether the process that stamped an operation is still alive on this host. A dead owner can
|
|
84
|
+
* never heartbeat again, so its operation is recoverable immediately instead of after the
|
|
85
|
+
* staleness window — which is what makes recovery after a crash or restart prompt. Signal 0
|
|
86
|
+
* only probes; it never touches the process.
|
|
87
|
+
*/
|
|
88
|
+
function ownerProcessIsAlive(pid) {
|
|
89
|
+
if (!Number.isInteger(pid) || pid <= 0)
|
|
90
|
+
return false;
|
|
91
|
+
try {
|
|
92
|
+
process.kill(pid, 0);
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
// EPERM means the pid exists but belongs to another user: treat it as alive.
|
|
97
|
+
return error?.code === "EPERM";
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Compare-and-swap predicate for an operation's `updated_at`.
|
|
102
|
+
*
|
|
103
|
+
* Postgres stores `timestamptz` at microsecond precision but the driver hands JS a
|
|
104
|
+
* millisecond-precision `Date`, so an `=` against the value we just read never matches a row
|
|
105
|
+
* whose timestamp came from the column's `defaultNow()` — which is exactly the shape of every
|
|
106
|
+
* row a pre-recovery build left behind, i.e. the stranded operations this sweep exists to
|
|
107
|
+
* clear. Matching the millisecond bucket instead is still a true CAS: a concurrent heartbeat
|
|
108
|
+
* writes a `Date` in a different millisecond, so it still wins the row.
|
|
109
|
+
*/
|
|
110
|
+
function updatedAtUnchanged(updatedAt) {
|
|
111
|
+
return and(gte(workspaceOperations.updatedAt, updatedAt), lt(workspaceOperations.updatedAt, new Date(updatedAt.getTime() + 1)));
|
|
112
|
+
}
|
|
113
|
+
export function resetWorkspaceRuntimeControlStateForTests() {
|
|
114
|
+
liveRuntimeControlOperationIds.clear();
|
|
115
|
+
}
|
|
116
|
+
export function workspaceRuntimeControlOwnerIdForTests() {
|
|
117
|
+
return RUNTIME_CONTROL_OWNER_ID;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Same-process serialization of managed runtime controls. The durable sweep below is what
|
|
121
|
+
* recovers stranded operations across processes; this in-memory claim is the cheaper first
|
|
122
|
+
* line of defense that rejects an overlapping control in this process before any row is
|
|
123
|
+
* written. Kept from the runtime-lease chain (PAP-17205) and composed with the ownership
|
|
124
|
+
* machinery above: the claim is taken before the operation row exists, so a recovery sweep
|
|
125
|
+
* can never see a live control it is not yet tracking.
|
|
126
|
+
*/
|
|
127
|
+
const activeRuntimeControls = new Map();
|
|
128
|
+
export async function runExclusiveWorkspaceRuntimeControl(input) {
|
|
129
|
+
const active = activeRuntimeControls.get(input.executionWorkspaceId);
|
|
130
|
+
if (active) {
|
|
131
|
+
throw conflict("A managed runtime control operation is already in progress for this execution workspace.", {
|
|
132
|
+
code: "workspace_runtime_control_in_progress",
|
|
133
|
+
executionWorkspaceId: input.executionWorkspaceId,
|
|
134
|
+
activeAction: active.action,
|
|
135
|
+
requestedAction: input.action,
|
|
136
|
+
startedAt: active.startedAt.toISOString(),
|
|
137
|
+
remediation: "Wait for the active operation to reach a terminal state before retrying.",
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
const claim = { action: input.action, startedAt: new Date() };
|
|
141
|
+
activeRuntimeControls.set(input.executionWorkspaceId, claim);
|
|
142
|
+
try {
|
|
143
|
+
return await input.run();
|
|
144
|
+
}
|
|
145
|
+
finally {
|
|
146
|
+
if (activeRuntimeControls.get(input.executionWorkspaceId) === claim) {
|
|
147
|
+
activeRuntimeControls.delete(input.executionWorkspaceId);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
export function resetWorkspaceRuntimeControlLocksForTests() {
|
|
152
|
+
activeRuntimeControls.clear();
|
|
153
|
+
}
|
|
8
154
|
function toWorkspaceOperation(row) {
|
|
9
155
|
return {
|
|
10
156
|
id: row.id,
|
|
@@ -53,8 +199,148 @@ export function workspaceOperationService(db) {
|
|
|
53
199
|
.then((rows) => rows[0] ?? null);
|
|
54
200
|
return row ? toWorkspaceOperation(row) : null;
|
|
55
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* Terminalize `running` managed runtime-control operations that no live owner can still
|
|
204
|
+
* be driving, and return the ones that are genuinely still live.
|
|
205
|
+
*
|
|
206
|
+
* Recovery is bounded on both axes: an operation owned by another server process is only
|
|
207
|
+
* reclaimed after {@link RUNTIME_CONTROL_STALE_AFTER_MS} without a heartbeat, and the
|
|
208
|
+
* terminalizing UPDATE is a compare-and-swap on `updated_at`, so an owner that heartbeats
|
|
209
|
+
* concurrently keeps its operation. Only this process's own abandoned operations (owned
|
|
210
|
+
* by us but no longer tracked in-process) are reclaimed without waiting.
|
|
211
|
+
*/
|
|
212
|
+
async function sweepRuntimeControlOperations(executionWorkspaceId, options) {
|
|
213
|
+
const now = options?.now ?? new Date();
|
|
214
|
+
const staleAfterMs = options?.staleAfterMs ?? RUNTIME_CONTROL_STALE_AFTER_MS;
|
|
215
|
+
const candidates = await db
|
|
216
|
+
.select()
|
|
217
|
+
.from(workspaceOperations)
|
|
218
|
+
.where(executionWorkspaceId
|
|
219
|
+
? and(eq(workspaceOperations.executionWorkspaceId, executionWorkspaceId), eq(workspaceOperations.status, "running"))
|
|
220
|
+
: eq(workspaceOperations.status, "running"));
|
|
221
|
+
const reconciledIds = [];
|
|
222
|
+
const live = [];
|
|
223
|
+
for (const candidate of candidates) {
|
|
224
|
+
const action = readRuntimeControlAction(candidate.metadata);
|
|
225
|
+
if (!action)
|
|
226
|
+
continue;
|
|
227
|
+
const owner = readRuntimeControlOwner(candidate.metadata);
|
|
228
|
+
const lastSignalAt = owner
|
|
229
|
+
? new Date(owner.heartbeatAt)
|
|
230
|
+
: (candidate.updatedAt ?? candidate.startedAt ?? new Date(0));
|
|
231
|
+
const silentForMs = now.getTime() - lastSignalAt.getTime();
|
|
232
|
+
const ownedByThisProcess = owner?.ownerId === RUNTIME_CONTROL_OWNER_ID;
|
|
233
|
+
const abandonedByThisProcess = ownedByThisProcess && !liveRuntimeControlOperationIds.has(candidate.id);
|
|
234
|
+
const ownedHereAndLive = ownedByThisProcess && liveRuntimeControlOperationIds.has(candidate.id);
|
|
235
|
+
// A previous server process that no longer exists cannot heartbeat again, so its
|
|
236
|
+
// operations are recoverable at once instead of after the staleness window.
|
|
237
|
+
const ownerProcessGone = owner !== null && !ownedByThisProcess && !ownerProcessIsAlive(owner.pid);
|
|
238
|
+
if (ownedHereAndLive) {
|
|
239
|
+
// This process is driving it right now; its own time budget is what terminalizes it.
|
|
240
|
+
live.push(toWorkspaceOperation(candidate));
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
if (!abandonedByThisProcess && !ownerProcessGone && silentForMs < staleAfterMs) {
|
|
244
|
+
live.push(toWorkspaceOperation(candidate));
|
|
245
|
+
continue;
|
|
246
|
+
}
|
|
247
|
+
const finishedAt = new Date();
|
|
248
|
+
const reconciliationMessage = `Reconciled stale managed runtime ${action} operation: ${ownerProcessGone
|
|
249
|
+
? `the owning server process (pid ${owner?.pid}) is gone`
|
|
250
|
+
: abandonedByThisProcess
|
|
251
|
+
? "the owning request no longer exists"
|
|
252
|
+
: `no live owner has reported progress for ${Math.round(silentForMs / 1000)}s`}, so the operation was failed to release the execution workspace for retry or stop.\n`;
|
|
253
|
+
// Compare-and-swap on `updated_at`: a live owner that heartbeats between the read and
|
|
254
|
+
// this write moves the column and keeps its operation.
|
|
255
|
+
const claimed = await db
|
|
256
|
+
.update(workspaceOperations)
|
|
257
|
+
.set({
|
|
258
|
+
status: "failed",
|
|
259
|
+
stderrExcerpt: appendExcerpt(candidate.stderrExcerpt ?? "", reconciliationMessage),
|
|
260
|
+
metadata: combineMetadata(candidate.metadata, {
|
|
261
|
+
reconciled: true,
|
|
262
|
+
reconciliationReason: abandonedByThisProcess
|
|
263
|
+
? "abandoned_runtime_control"
|
|
264
|
+
: "orphaned_runtime_control",
|
|
265
|
+
reconciledAt: finishedAt.toISOString(),
|
|
266
|
+
}),
|
|
267
|
+
finishedAt,
|
|
268
|
+
updatedAt: finishedAt,
|
|
269
|
+
})
|
|
270
|
+
.where(and(eq(workspaceOperations.id, candidate.id), eq(workspaceOperations.status, "running"), candidate.updatedAt
|
|
271
|
+
? updatedAtUnchanged(candidate.updatedAt)
|
|
272
|
+
: isNull(workspaceOperations.updatedAt)))
|
|
273
|
+
.returning({ id: workspaceOperations.id })
|
|
274
|
+
.then((rows) => rows[0] ?? null);
|
|
275
|
+
if (!claimed) {
|
|
276
|
+
// Someone else moved the row; re-read so callers see the current truth.
|
|
277
|
+
const refreshed = await getById(candidate.id);
|
|
278
|
+
if (refreshed?.status === "running")
|
|
279
|
+
live.push(refreshed);
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
liveRuntimeControlOperationIds.delete(candidate.id);
|
|
283
|
+
reconciledIds.push(candidate.id);
|
|
284
|
+
if (candidate.logStore && candidate.logRef) {
|
|
285
|
+
const handle = {
|
|
286
|
+
store: candidate.logStore,
|
|
287
|
+
logRef: candidate.logRef,
|
|
288
|
+
};
|
|
289
|
+
try {
|
|
290
|
+
await logStore.append(handle, {
|
|
291
|
+
stream: "stderr",
|
|
292
|
+
chunk: reconciliationMessage,
|
|
293
|
+
ts: finishedAt.toISOString(),
|
|
294
|
+
});
|
|
295
|
+
const finalized = await logStore.finalize(handle);
|
|
296
|
+
await db
|
|
297
|
+
.update(workspaceOperations)
|
|
298
|
+
.set({
|
|
299
|
+
logBytes: finalized.bytes,
|
|
300
|
+
logSha256: finalized.sha256,
|
|
301
|
+
logCompressed: finalized.compressed,
|
|
302
|
+
updatedAt: new Date(),
|
|
303
|
+
})
|
|
304
|
+
.where(eq(workspaceOperations.id, candidate.id));
|
|
305
|
+
}
|
|
306
|
+
catch {
|
|
307
|
+
// The terminal row and stderr excerpt stay inspectable even when the external log
|
|
308
|
+
// file from the previous process is gone.
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return { reconciled: reconciledIds.length, operationIds: reconciledIds, live };
|
|
313
|
+
}
|
|
56
314
|
return {
|
|
57
315
|
getById,
|
|
316
|
+
/**
|
|
317
|
+
* Bounded recovery entrypoint. Safe to call on startup and before every managed control.
|
|
318
|
+
*/
|
|
319
|
+
async reconcileStaleRuntimeControlOperations(executionWorkspaceId, options) {
|
|
320
|
+
const result = await sweepRuntimeControlOperations(executionWorkspaceId, options);
|
|
321
|
+
return { reconciled: result.reconciled, operationIds: result.operationIds };
|
|
322
|
+
},
|
|
323
|
+
/**
|
|
324
|
+
* Refuse a managed runtime control while another one is genuinely live for the same
|
|
325
|
+
* execution workspace. Stale operations are recovered first, so a workspace stranded by
|
|
326
|
+
* a dead request or a previous server process becomes controllable again on its own.
|
|
327
|
+
*/
|
|
328
|
+
async assertRuntimeControlAvailable(input) {
|
|
329
|
+
const { live } = await sweepRuntimeControlOperations(input.executionWorkspaceId, input.options);
|
|
330
|
+
const blocking = live[0];
|
|
331
|
+
if (!blocking)
|
|
332
|
+
return;
|
|
333
|
+
const owner = readRuntimeControlOwner(blocking.metadata);
|
|
334
|
+
throw conflict("A managed runtime control operation is already in progress for this execution workspace.", {
|
|
335
|
+
code: "workspace_runtime_control_in_progress",
|
|
336
|
+
executionWorkspaceId: input.executionWorkspaceId,
|
|
337
|
+
activeAction: readRuntimeControlAction(blocking.metadata) ?? owner?.action ?? null,
|
|
338
|
+
requestedAction: input.action,
|
|
339
|
+
activeOperationId: blocking.id,
|
|
340
|
+
startedAt: blocking.startedAt instanceof Date ? blocking.startedAt.toISOString() : blocking.startedAt,
|
|
341
|
+
remediation: "Wait for the active operation to reach a terminal state before retrying; abandoned operations are recovered automatically.",
|
|
342
|
+
});
|
|
343
|
+
},
|
|
58
344
|
createRecorder(input) {
|
|
59
345
|
let executionWorkspaceId = input.executionWorkspaceId ?? null;
|
|
60
346
|
const createdIds = [];
|
|
@@ -97,24 +383,83 @@ export function workspaceOperationService(db) {
|
|
|
97
383
|
ts: new Date().toISOString(),
|
|
98
384
|
});
|
|
99
385
|
};
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
386
|
+
// Managed runtime controls get an ownership stamp so bounded recovery can tell a
|
|
387
|
+
// slow-but-live operation from one abandoned by a dead request or server process.
|
|
388
|
+
const runtimeControlAction = readRuntimeControlAction(recordInput.metadata);
|
|
389
|
+
const insertedMetadata = runtimeControlAction
|
|
390
|
+
? {
|
|
391
|
+
...(recordInput.metadata ?? {}),
|
|
392
|
+
runtimeControlOwner: {
|
|
393
|
+
ownerId: RUNTIME_CONTROL_OWNER_ID,
|
|
394
|
+
pid: process.pid,
|
|
395
|
+
action: runtimeControlAction,
|
|
396
|
+
heartbeatAt: startedAt.toISOString(),
|
|
397
|
+
},
|
|
398
|
+
}
|
|
399
|
+
: recordInput.metadata ?? null;
|
|
400
|
+
// Claim in-process before the row exists, so there is no ordering in which a recovery
|
|
401
|
+
// sweep can observe an operation stamped by this process but not yet tracked by it —
|
|
402
|
+
// which is the one state that would let recovery terminalize a genuinely live start.
|
|
403
|
+
if (runtimeControlAction)
|
|
404
|
+
liveRuntimeControlOperationIds.add(id);
|
|
405
|
+
try {
|
|
406
|
+
await db.insert(workspaceOperations).values({
|
|
407
|
+
id,
|
|
408
|
+
companyId: input.companyId,
|
|
409
|
+
executionWorkspaceId,
|
|
410
|
+
heartbeatRunId: input.heartbeatRunId ?? null,
|
|
411
|
+
issueId: input.issueId ?? null,
|
|
412
|
+
phase: recordInput.phase,
|
|
413
|
+
command: recordInput.command ?? null,
|
|
414
|
+
cwd: recordInput.cwd ?? null,
|
|
415
|
+
status: "running",
|
|
416
|
+
logStore: handle.store,
|
|
417
|
+
logRef: handle.logRef,
|
|
418
|
+
metadata: redactCurrentUserValue(insertedMetadata, currentUserRedactionOptions),
|
|
419
|
+
startedAt,
|
|
420
|
+
updatedAt: startedAt,
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
catch (insertError) {
|
|
424
|
+
liveRuntimeControlOperationIds.delete(id);
|
|
425
|
+
throw insertError;
|
|
426
|
+
}
|
|
115
427
|
createdIds.push(id);
|
|
428
|
+
let heartbeatTimer = null;
|
|
429
|
+
let timeoutTimer = null;
|
|
430
|
+
if (runtimeControlAction) {
|
|
431
|
+
heartbeatTimer = setInterval(() => {
|
|
432
|
+
const heartbeatAt = new Date();
|
|
433
|
+
void db
|
|
434
|
+
.update(workspaceOperations)
|
|
435
|
+
.set({
|
|
436
|
+
metadata: combineMetadata(insertedMetadata, {
|
|
437
|
+
runtimeControlOwner: {
|
|
438
|
+
ownerId: RUNTIME_CONTROL_OWNER_ID,
|
|
439
|
+
pid: process.pid,
|
|
440
|
+
action: runtimeControlAction,
|
|
441
|
+
heartbeatAt: heartbeatAt.toISOString(),
|
|
442
|
+
},
|
|
443
|
+
}),
|
|
444
|
+
updatedAt: heartbeatAt,
|
|
445
|
+
})
|
|
446
|
+
.where(and(eq(workspaceOperations.id, id), eq(workspaceOperations.status, "running")))
|
|
447
|
+
.catch(() => undefined);
|
|
448
|
+
}, RUNTIME_CONTROL_HEARTBEAT_MS);
|
|
449
|
+
heartbeatTimer.unref?.();
|
|
450
|
+
}
|
|
451
|
+
const timeoutMs = recordInput.timeoutMs ?? defaultRuntimeControlTimeoutMs(runtimeControlAction);
|
|
452
|
+
const settle = async () => {
|
|
453
|
+
if (!timeoutMs || timeoutMs <= 0)
|
|
454
|
+
return await recordInput.run();
|
|
455
|
+
const timeout = new Promise((_resolve, reject) => {
|
|
456
|
+
timeoutTimer = setTimeout(() => reject(new WorkspaceOperationTimeoutError(timeoutMs, runtimeControlAction)), timeoutMs);
|
|
457
|
+
timeoutTimer.unref?.();
|
|
458
|
+
});
|
|
459
|
+
return await Promise.race([recordInput.run(), timeout]);
|
|
460
|
+
};
|
|
116
461
|
try {
|
|
117
|
-
const result = await
|
|
462
|
+
const result = await settle();
|
|
118
463
|
await append("system", result.system ?? null);
|
|
119
464
|
await append("stdout", result.stdout ?? null);
|
|
120
465
|
await append("stderr", result.stderr ?? null);
|
|
@@ -131,7 +476,7 @@ export function workspaceOperationService(db) {
|
|
|
131
476
|
logBytes: finalized.bytes,
|
|
132
477
|
logSha256: finalized.sha256,
|
|
133
478
|
logCompressed: finalized.compressed,
|
|
134
|
-
metadata: redactCurrentUserValue(combineMetadata(
|
|
479
|
+
metadata: redactCurrentUserValue(combineMetadata(insertedMetadata, result.metadata), currentUserRedactionOptions),
|
|
135
480
|
finishedAt,
|
|
136
481
|
updatedAt: finishedAt,
|
|
137
482
|
})
|
|
@@ -156,12 +501,32 @@ export function workspaceOperationService(db) {
|
|
|
156
501
|
logBytes: finalized?.bytes ?? null,
|
|
157
502
|
logSha256: finalized?.sha256 ?? null,
|
|
158
503
|
logCompressed: finalized?.compressed ?? false,
|
|
504
|
+
// Only managed controls carry a failure reason; other phases keep the metadata
|
|
505
|
+
// they were recorded with.
|
|
506
|
+
...(runtimeControlAction
|
|
507
|
+
? {
|
|
508
|
+
metadata: redactCurrentUserValue(combineMetadata(insertedMetadata, {
|
|
509
|
+
failureReason: error instanceof WorkspaceOperationTimeoutError
|
|
510
|
+
? "runtime_control_timeout"
|
|
511
|
+
: "runtime_control_error",
|
|
512
|
+
}), currentUserRedactionOptions),
|
|
513
|
+
}
|
|
514
|
+
: {}),
|
|
159
515
|
finishedAt,
|
|
160
516
|
updatedAt: finishedAt,
|
|
161
517
|
})
|
|
162
518
|
.where(eq(workspaceOperations.id, id));
|
|
163
519
|
throw error;
|
|
164
520
|
}
|
|
521
|
+
finally {
|
|
522
|
+
// Releasing the in-process claim before the request unwinds is what lets the very
|
|
523
|
+
// next control call proceed, and lets recovery treat a leftover row as abandoned.
|
|
524
|
+
if (heartbeatTimer)
|
|
525
|
+
clearInterval(heartbeatTimer);
|
|
526
|
+
if (timeoutTimer)
|
|
527
|
+
clearTimeout(timeoutTimer);
|
|
528
|
+
liveRuntimeControlOperationIds.delete(id);
|
|
529
|
+
}
|
|
165
530
|
},
|
|
166
531
|
};
|
|
167
532
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-operations.js","sourceRoot":"","sources":["../../src/services/workspace-operations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace-operations.js","sourceRoot":"","sources":["../../src/services/workspace-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAInF;;;GAGG;AACH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AAE7E;;;;GAIG;AACH,MAAM,wBAAwB,GAAG,UAAU,EAAE,CAAC;AAE9C,gEAAgE;AAChE,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAEnD;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC;AAErD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,GAAG,MAAM,CAAC;AAE3D;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;AAE7D,SAAS,8BAA8B,CAAC,MAAqB;IAC3D,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,+BAA+B,CAAC;AAC5F,CAAC;AAED,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IAC3B;IAA5B,YAA4B,SAAiB,EAAE,MAAqB;QAClE,KAAK,CACH,qBAAqB,MAAM,IAAI,SAAS,2BAA2B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,+DAA+D,CAC/J,CAAC;QAHwB,cAAS,GAAT,SAAS,CAAQ;QAI3C,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC/C,CAAC;CACF;AASD,SAAS,wBAAwB,CAAC,QAAiB;IACjD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,MAAM,GAAI,QAAoC,CAAC,MAAM,CAAC;IAC5D,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACpF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAiB;IAChD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,KAAK,GAAI,QAAoC,CAAC,mBAAmB,CAAC;IACxE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,GAAG,EAAE,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;QACnE,WAAW,EAAE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;KACrG,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,8BAA8B,GAAG,IAAI,GAAG,EAAU,CAAC;AAEzD;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,GAAW;IACtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,6EAA6E;QAC7E,OAAQ,KAA+B,EAAE,IAAI,KAAK,OAAO,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,kBAAkB,CAAC,SAAe;IACzC,OAAO,GAAG,CACR,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,EAC7C,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CACrE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yCAAyC;IACvD,8BAA8B,CAAC,KAAK,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,sCAAsC;IACpD,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAA+C,CAAC;AAErF,MAAM,CAAC,KAAK,UAAU,mCAAmC,CAAI,KAI5D;IACC,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACrE,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,QAAQ,CAAC,0FAA0F,EAAE;YACzG,IAAI,EAAE,uCAAuC;YAC7C,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;YAChD,YAAY,EAAE,MAAM,CAAC,MAAM;YAC3B,eAAe,EAAE,KAAK,CAAC,MAAM;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;YACzC,WAAW,EAAE,0EAA0E;SACxF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;IAC9D,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;IAC3B,CAAC;YAAS,CAAC;QACT,IAAI,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,KAAK,EAAE,CAAC;YACpE,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yCAAyC;IACvD,qBAAqB,CAAC,KAAK,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,oBAAoB,CAAC,GAA0B;IACtD,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,oBAAoB,EAAE,GAAG,CAAC,oBAAoB,IAAI,IAAI;QACtD,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,IAAI;QAC1C,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI;QAC5B,KAAK,EAAE,GAAG,CAAC,KAAgC;QAC3C,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI;QAC5B,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI;QACpB,MAAM,EAAE,GAAG,CAAC,MAAkC;QAC9C,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;QAC9B,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;QAC9B,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI;QAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;QAC9B,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;QAChC,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,IAAI;QACxC,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,IAAI;QACxC,QAAQ,EAAG,GAAG,CAAC,QAA2C,IAAI,IAAI;QAClE,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI;QAClC,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAe,EAAE,KAAa;IACnD,OAAO,GAAG,OAAO,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,eAAe,CACtB,IAAgD,EAChD,KAAiD;IAEjD,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO;QACL,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;KACjB,CAAC;AACJ,CAAC;AAyBD,MAAM,UAAU,yBAAyB,CAAC,EAAM;IAC9C,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,6BAA6B,EAAE,CAAC;IAEjD,KAAK,UAAU,OAAO,CAAC,EAAU;QAC/B,MAAM,GAAG,GAAG,MAAM,EAAE;aACjB,MAAM,EAAE;aACR,IAAI,CAAC,mBAAmB,CAAC;aACzB,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;aACrC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QACnC,OAAO,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,UAAU,6BAA6B,CAC1C,oBAA+C,EAC/C,OAA+C;QAE/C,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,8BAA8B,CAAC;QAC7E,MAAM,UAAU,GAAG,MAAM,EAAE;aACxB,MAAM,EAAE;aACR,IAAI,CAAC,mBAAmB,CAAC;aACzB,KAAK,CACJ,oBAAoB;YAClB,CAAC,CAAC,GAAG,CACD,EAAE,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,EAClE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAC1C;YACH,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAC9C,CAAC;QAEJ,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,MAAM,IAAI,GAAyB,EAAE,CAAC;QAEtC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,wBAAwB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,MAAM;gBAAE,SAAS;YAEtB,MAAM,KAAK,GAAG,uBAAuB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,YAAY,GAAG,KAAK;gBACxB,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;gBAC7B,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;YAE3D,MAAM,kBAAkB,GAAG,KAAK,EAAE,OAAO,KAAK,wBAAwB,CAAC;YACvE,MAAM,sBAAsB,GAAG,kBAAkB,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACvG,MAAM,gBAAgB,GAAG,kBAAkB,IAAI,8BAA8B,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAChG,iFAAiF;YACjF,4EAA4E;YAC5E,MAAM,gBAAgB,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAElG,IAAI,gBAAgB,EAAE,CAAC;gBACrB,qFAAqF;gBACrF,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC3C,SAAS;YACX,CAAC;YACD,IAAI,CAAC,sBAAsB,IAAI,CAAC,gBAAgB,IAAI,WAAW,GAAG,YAAY,EAAE,CAAC;gBAC/E,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC3C,SAAS;YACX,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;YAC9B,MAAM,qBAAqB,GACzB,oCAAoC,MAAM,eACxC,gBAAgB;gBACd,CAAC,CAAC,kCAAkC,KAAK,EAAE,GAAG,WAAW;gBACzD,CAAC,CAAC,sBAAsB;oBACtB,CAAC,CAAC,qCAAqC;oBACvC,CAAC,CAAC,2CAA2C,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GACjF,uFAAuF,CAAC;YAC1F,sFAAsF;YACtF,uDAAuD;YACvD,MAAM,OAAO,GAAG,MAAM,EAAE;iBACrB,MAAM,CAAC,mBAAmB,CAAC;iBAC3B,GAAG,CAAC;gBACH,MAAM,EAAE,QAAQ;gBAChB,aAAa,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,IAAI,EAAE,EAAE,qBAAqB,CAAC;gBAClF,QAAQ,EAAE,eAAe,CAAC,SAAS,CAAC,QAA0C,EAAE;oBAC9E,UAAU,EAAE,IAAI;oBAChB,oBAAoB,EAAE,sBAAsB;wBAC1C,CAAC,CAAC,2BAA2B;wBAC7B,CAAC,CAAC,0BAA0B;oBAC9B,YAAY,EAAE,UAAU,CAAC,WAAW,EAAE;iBACvC,CAAC;gBACF,UAAU;gBACV,SAAS,EAAE,UAAU;aACtB,CAAC;iBACD,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EACxC,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,EACzC,SAAS,CAAC,SAAS;gBACjB,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC;gBACzC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAC1C,CACF;iBACA,SAAS,CAAC,EAAE,EAAE,EAAE,mBAAmB,CAAC,EAAE,EAAE,CAAC;iBACzC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,wEAAwE;gBACxE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC9C,IAAI,SAAS,EAAE,MAAM,KAAK,SAAS;oBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC1D,SAAS;YACX,CAAC;YAED,8BAA8B,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACpD,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAEjC,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBAC3C,MAAM,MAAM,GAAG;oBACb,KAAK,EAAE,SAAS,CAAC,QAAwB;oBACzC,MAAM,EAAE,SAAS,CAAC,MAAM;iBACzB,CAAC;gBACF,IAAI,CAAC;oBACH,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;wBAC5B,MAAM,EAAE,QAAQ;wBAChB,KAAK,EAAE,qBAAqB;wBAC5B,EAAE,EAAE,UAAU,CAAC,WAAW,EAAE;qBAC7B,CAAC,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAClD,MAAM,EAAE;yBACL,MAAM,CAAC,mBAAmB,CAAC;yBAC3B,GAAG,CAAC;wBACH,QAAQ,EAAE,SAAS,CAAC,KAAK;wBACzB,SAAS,EAAE,SAAS,CAAC,MAAM;wBAC3B,aAAa,EAAE,SAAS,CAAC,UAAU;wBACnC,SAAS,EAAE,IAAI,IAAI,EAAE;qBACtB,CAAC;yBACD,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrD,CAAC;gBAAC,MAAM,CAAC;oBACP,kFAAkF;oBAClF,0CAA0C;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IACjF,CAAC;IAED,OAAO;QACL,OAAO;QAEP;;WAEG;QACH,KAAK,CAAC,sCAAsC,CAC1C,oBAAoC,EACpC,OAA+C;YAE/C,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;YAClF,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;QAC9E,CAAC;QAED;;;;WAIG;QACH,KAAK,CAAC,6BAA6B,CAAC,KAInC;YACC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,6BAA6B,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAChG,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACtB,MAAM,KAAK,GAAG,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,QAAQ,CAAC,0FAA0F,EAAE;gBACzG,IAAI,EAAE,uCAAuC;gBAC7C,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;gBAChD,YAAY,EAAE,wBAAwB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI;gBAClF,eAAe,EAAE,KAAK,CAAC,MAAM;gBAC7B,iBAAiB,EAAE,QAAQ,CAAC,EAAE;gBAC9B,SAAS,EAAE,QAAQ,CAAC,SAAS,YAAY,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS;gBACrG,WAAW,EACT,4HAA4H;aAC/H,CAAC,CAAC;QACL,CAAC;QAED,cAAc,CAAC,KAKd;YACC,IAAI,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,IAAI,IAAI,CAAC;YAC9D,MAAM,UAAU,GAAa,EAAE,CAAC;YAEhC,OAAO;gBACL,KAAK,CAAC,0BAA0B,CAAC,wBAAwB;oBACvD,oBAAoB,GAAG,wBAAwB,IAAI,IAAI,CAAC;oBACxD,IAAI,CAAC,oBAAoB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;wBAAE,OAAO;oBAC7D,MAAM,EAAE;yBACL,MAAM,CAAC,mBAAmB,CAAC;yBAC3B,GAAG,CAAC;wBACH,oBAAoB;wBACpB,SAAS,EAAE,IAAI,IAAI,EAAE;qBACtB,CAAC;yBACD,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;gBACxD,CAAC;gBAED,KAAK,CAAC,eAAe,CAAC,WAAW;oBAC/B,MAAM,2BAA2B,GAAG;wBAClC,OAAO,EAAE,CAAC,MAAM,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,oBAAoB;qBACpE,CAAC;oBACF,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;oBAC7B,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;oBACxB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;wBAClC,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,WAAW,EAAE,EAAE;qBAChB,CAAC,CAAC;oBAEH,IAAI,aAAa,GAAG,EAAE,CAAC;oBACvB,IAAI,aAAa,GAAG,EAAE,CAAC;oBACvB,MAAM,MAAM,GAAG,KAAK,EAAE,MAAsC,EAAE,KAAgC,EAAE,EAAE;wBAChG,IAAI,CAAC,KAAK;4BAAE,OAAO;wBACnB,MAAM,cAAc,GAAG,qBAAqB,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;wBACjF,IAAI,MAAM,KAAK,QAAQ;4BAAE,aAAa,GAAG,aAAa,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;wBACtF,IAAI,MAAM,KAAK,QAAQ;4BAAE,aAAa,GAAG,aAAa,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;wBACtF,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;4BAC5B,MAAM;4BACN,KAAK,EAAE,cAAc;4BACrB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;yBAC7B,CAAC,CAAC;oBACL,CAAC,CAAC;oBAEF,iFAAiF;oBACjF,kFAAkF;oBAClF,MAAM,oBAAoB,GAAG,wBAAwB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;oBAC5E,MAAM,gBAAgB,GAAG,oBAAoB;wBAC3C,CAAC,CAAC;4BACE,GAAG,CAAC,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC;4BAC/B,mBAAmB,EAAE;gCACnB,OAAO,EAAE,wBAAwB;gCACjC,GAAG,EAAE,OAAO,CAAC,GAAG;gCAChB,MAAM,EAAE,oBAAoB;gCAC5B,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE;6BACF;yBACrC;wBACH,CAAC,CAAC,WAAW,CAAC,QAAQ,IAAI,IAAI,CAAC;oBAEjC,sFAAsF;oBACtF,qFAAqF;oBACrF,qFAAqF;oBACrF,IAAI,oBAAoB;wBAAE,8BAA8B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAEjE,IAAI,CAAC;wBACH,MAAM,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC;4BAC1C,EAAE;4BACF,SAAS,EAAE,KAAK,CAAC,SAAS;4BAC1B,oBAAoB;4BACpB,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,IAAI;4BAC5C,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;4BAC9B,KAAK,EAAE,WAAW,CAAC,KAAK;4BACxB,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,IAAI;4BACpC,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,IAAI;4BAC5B,MAAM,EAAE,SAAS;4BACjB,QAAQ,EAAE,MAAM,CAAC,KAAK;4BACtB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,QAAQ,EAAE,sBAAsB,CAC9B,gBAAgB,EAChB,2BAA2B,CACM;4BACnC,SAAS;4BACT,SAAS,EAAE,SAAS;yBACrB,CAAC,CAAC;oBACL,CAAC;oBAAC,OAAO,WAAW,EAAE,CAAC;wBACrB,8BAA8B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBAC1C,MAAM,WAAW,CAAC;oBACpB,CAAC;oBACD,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAEpB,IAAI,cAAc,GAA0B,IAAI,CAAC;oBACjD,IAAI,YAAY,GAA0B,IAAI,CAAC;oBAC/C,IAAI,oBAAoB,EAAE,CAAC;wBACzB,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;4BAChC,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;4BAC/B,KAAK,EAAE;iCACJ,MAAM,CAAC,mBAAmB,CAAC;iCAC3B,GAAG,CAAC;gCACH,QAAQ,EAAE,eAAe,CAAC,gBAAgB,EAAE;oCAC1C,mBAAmB,EAAE;wCACnB,OAAO,EAAE,wBAAwB;wCACjC,GAAG,EAAE,OAAO,CAAC,GAAG;wCAChB,MAAM,EAAE,oBAAoB;wCAC5B,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;qCACJ;iCACrC,CAAC;gCACF,SAAS,EAAE,WAAW;6BACvB,CAAC;iCACD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;iCACrF,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;wBAC5B,CAAC,EAAE,4BAA4B,CAAC,CAAC;wBACjC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC;oBAC3B,CAAC;oBAED,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,IAAI,8BAA8B,CAAC,oBAAoB,CAAC,CAAC;oBAChG,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;wBACxB,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,CAAC;4BAAE,OAAO,MAAM,WAAW,CAAC,GAAG,EAAE,CAAC;wBACjE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;4BACtD,YAAY,GAAG,UAAU,CACvB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,8BAA8B,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,EACjF,SAAS,CACV,CAAC;4BACF,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;wBACzB,CAAC,CAAC,CAAC;wBACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;oBAC1D,CAAC,CAAC;oBAEF,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC;wBAC9B,MAAM,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;wBAC9C,MAAM,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;wBAC9C,MAAM,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;wBAC9C,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAClD,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;wBAC9B,MAAM,GAAG,GAAG,MAAM,EAAE;6BACjB,MAAM,CAAC,mBAAmB,CAAC;6BAC3B,GAAG,CAAC;4BACH,oBAAoB;4BACpB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,WAAW;4BACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;4BACjC,aAAa,EAAE,aAAa,IAAI,IAAI;4BACpC,aAAa,EAAE,aAAa,IAAI,IAAI;4BACpC,QAAQ,EAAE,SAAS,CAAC,KAAK;4BACzB,SAAS,EAAE,SAAS,CAAC,MAAM;4BAC3B,aAAa,EAAE,SAAS,CAAC,UAAU;4BACnC,QAAQ,EAAE,sBAAsB,CAC9B,eAAe,CAAC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,EAClD,2BAA2B,CACM;4BACnC,UAAU;4BACV,SAAS,EAAE,UAAU;yBACtB,CAAC;6BACD,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;6BACrC,SAAS,EAAE;6BACX,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;wBACnC,IAAI,CAAC,GAAG;4BAAE,MAAM,QAAQ,CAAC,+BAA+B,CAAC,CAAC;wBAC1D,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;oBACnC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,MAAM,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC/E,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;wBACpE,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;wBAC9B,MAAM,EAAE;6BACL,MAAM,CAAC,mBAAmB,CAAC;6BAC3B,GAAG,CAAC;4BACH,oBAAoB;4BACpB,MAAM,EAAE,QAAQ;4BAChB,aAAa,EAAE,aAAa,IAAI,IAAI;4BACpC,aAAa,EAAE,aAAa,IAAI,IAAI;4BACpC,QAAQ,EAAE,SAAS,EAAE,KAAK,IAAI,IAAI;4BAClC,SAAS,EAAE,SAAS,EAAE,MAAM,IAAI,IAAI;4BACpC,aAAa,EAAE,SAAS,EAAE,UAAU,IAAI,KAAK;4BAC7C,+EAA+E;4BAC/E,2BAA2B;4BAC3B,GAAG,CAAC,oBAAoB;gCACtB,CAAC,CAAC;oCACE,QAAQ,EAAE,sBAAsB,CAC9B,eAAe,CAAC,gBAAgB,EAAE;wCAChC,aAAa,EAAE,KAAK,YAAY,8BAA8B;4CAC5D,CAAC,CAAC,yBAAyB;4CAC3B,CAAC,CAAC,uBAAuB;qCAC5B,CAAC,EACF,2BAA2B,CACM;iCACpC;gCACH,CAAC,CAAC,EAAE,CAAC;4BACP,UAAU;4BACV,SAAS,EAAE,UAAU;yBACtB,CAAC;6BACD,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;wBACzC,MAAM,KAAK,CAAC;oBACd,CAAC;4BAAS,CAAC;wBACT,kFAAkF;wBAClF,kFAAkF;wBAClF,IAAI,cAAc;4BAAE,aAAa,CAAC,cAAc,CAAC,CAAC;wBAClD,IAAI,YAAY;4BAAE,YAAY,CAAC,YAAY,CAAC,CAAC;wBAC7C,8BAA8B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC5C,CAAC;gBACH,CAAC;aACF,CAAC;QACJ,CAAC;QAED,UAAU,EAAE,KAAK,EAAE,KAAa,EAAE,oBAAoC,EAAE,EAAE;YACxE,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;YACnE,IAAI,oBAAoB,EAAE,CAAC;gBACzB,MAAM,gBAAgB,GAAG,GAAG,CAC1B,EAAE,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,oBAAoB,CAAE,EACnE,MAAM,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAC1C,CAAC;gBACH,IAAI,gBAAgB;oBAAE,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC1D,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,EAAE;iBAClB,MAAM,EAAE;iBACR,IAAI,CAAC,mBAAmB,CAAC;iBACzB,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAE,CAAC;iBACpE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;YAEhH,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QAED,yBAAyB,EAAE,KAAK,EAAE,oBAA4B,EAAE,EAAE;YAChE,MAAM,IAAI,GAAG,MAAM,EAAE;iBAClB,MAAM,EAAE;iBACR,IAAI,CAAC,mBAAmB,CAAC;iBACzB,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;iBACzE,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;YACrF,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,WAAmB,EAAE,IAA+C,EAAE,EAAE;YACtF,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS;gBAAE,MAAM,QAAQ,CAAC,+BAA+B,CAAC,CAAC;YAChE,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM;gBAAE,MAAM,QAAQ,CAAC,mCAAmC,CAAC,CAAC;YAElG,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAChC;gBACE,KAAK,EAAE,SAAS,CAAC,QAAwB;gBACzC,MAAM,EAAE,SAAS,CAAC,MAAM;aACzB,EACD,IAAI,CACL,CAAC;YAEF,OAAO;gBACL,WAAW;gBACX,KAAK,EAAE,SAAS,CAAC,QAAQ;gBACzB,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,GAAG,MAAM;gBACT,2EAA2E;gBAC3E,2EAA2E;gBAC3E,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-runtime-exposure-backfill.test.d.ts","sourceRoot":"","sources":["../../src/services/workspace-runtime-exposure-backfill.test.ts"],"names":[],"mappings":""}
|