deepline 0.3.88 → 0.3.90
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/contracts/install-commands.json +29 -0
- package/dist/bundling-sources/sdk/src/client.ts +652 -39
- package/dist/bundling-sources/sdk/src/config.ts +77 -0
- package/dist/bundling-sources/sdk/src/http.ts +76 -30
- package/dist/bundling-sources/sdk/src/index.ts +10 -0
- package/dist/bundling-sources/sdk/src/monitor-fleet-contract.ts +1 -1
- package/dist/bundling-sources/sdk/src/pagination.ts +25 -0
- package/dist/bundling-sources/sdk/src/play.ts +15 -1
- package/dist/bundling-sources/sdk/src/plays/bundle-play-file.ts +3 -3
- package/dist/bundling-sources/sdk/src/release.ts +16 -9
- package/dist/bundling-sources/sdk/src/types.ts +106 -4
- package/dist/bundling-sources/shared_libs/integration-contracts/AGENTS.md +9 -0
- package/dist/bundling-sources/shared_libs/integration-contracts/README.md +3 -0
- package/dist/bundling-sources/shared_libs/integration-contracts/index.ts +2 -0
- package/dist/bundling-sources/shared_libs/monitors/analytics-install-guides.ts +77 -0
- package/dist/bundling-sources/shared_libs/monitors/analytics-public.ts +10 -0
- package/dist/bundling-sources/shared_libs/monitors/billing/charges.ts +125 -0
- package/dist/bundling-sources/shared_libs/monitors/billing/policy-builders.ts +686 -0
- package/dist/bundling-sources/shared_libs/monitors/billing/pricing.ts +54 -0
- package/dist/bundling-sources/shared_libs/monitors/billing/public-pricing.ts +72 -0
- package/dist/bundling-sources/shared_libs/monitors/billing/session.ts +45 -0
- package/dist/bundling-sources/shared_libs/monitors/billing/state.ts +454 -0
- package/dist/bundling-sources/shared_libs/monitors/billing/tamradar.ts +260 -0
- package/dist/bundling-sources/shared_libs/monitors/billing/types.ts +215 -0
- package/dist/bundling-sources/shared_libs/monitors/callback-security.ts +333 -0
- package/dist/bundling-sources/shared_libs/monitors/cursor-page.ts +42 -0
- package/dist/bundling-sources/shared_libs/monitors/deactivation-reasons.ts +16 -0
- package/dist/bundling-sources/shared_libs/monitors/framework-managed-payload-fields.ts +71 -0
- package/dist/bundling-sources/shared_libs/monitors/generated/provider-monitor-callback-admission-targets.ts +16 -0
- package/dist/bundling-sources/shared_libs/monitors/http-error-response.ts +270 -0
- package/dist/bundling-sources/shared_libs/monitors/inbound-publish-key.ts +39 -0
- package/dist/bundling-sources/shared_libs/monitors/inbound-queue.ts +82 -0
- package/dist/bundling-sources/shared_libs/monitors/inventory-reconciliation.ts +59 -0
- package/dist/bundling-sources/shared_libs/monitors/lifecycle-notifications.ts +471 -0
- package/dist/bundling-sources/shared_libs/monitors/org-monitor-limits.ts +1 -1
- package/dist/bundling-sources/shared_libs/monitors/package.json +36 -0
- package/dist/bundling-sources/shared_libs/monitors/provider-callback-verification.ts +1125 -0
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-batch-operation.ts +305 -0
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-capability.ts +964 -0
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-consumer-health.ts +56 -0
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-errors.ts +131 -0
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-identity-claims.ts +535 -0
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-legacy-aliases.ts +16 -0
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-priority-execution.ts +56 -0
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-public-aliases.ts +28 -0
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-runtime-read-eligibility.ts +38 -0
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-state.ts +122 -0
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-status.ts +10 -0
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-upstream-identity.ts +112 -0
- package/dist/bundling-sources/shared_libs/monitors/provider-webhook-monitor-runtime.ts +300 -0
- package/dist/bundling-sources/shared_libs/monitors/quickstart-prompts.ts +22 -0
- package/dist/bundling-sources/shared_libs/monitors/signal-radars/inbound-dead-letter.ts +245 -0
- package/dist/bundling-sources/shared_libs/monitors/signal-radars/inbound-message.ts +38 -0
- package/dist/bundling-sources/shared_libs/monitors/signal-radars/inbound-queue-ack-probe.ts +94 -0
- package/dist/bundling-sources/shared_libs/monitors/signal-radars/inbound-queue-delivery.ts +60 -0
- package/dist/bundling-sources/shared_libs/monitors/signal-radars/inbound-queue.ts +60 -0
- package/dist/bundling-sources/shared_libs/monitors/snitcher-install-validation.ts +93 -0
- package/dist/bundling-sources/shared_libs/monitors/snitcher-ip2company.ts +332 -0
- package/dist/bundling-sources/shared_libs/monitors/snitcher-radar.ts +221 -0
- package/dist/bundling-sources/shared_libs/monitors/starter-templates.ts +105 -0
- package/dist/bundling-sources/shared_libs/monitors/tracking-provider-guidance.ts +73 -0
- package/dist/bundling-sources/shared_libs/monitors/tracking-provider-integrations.ts +81 -0
- package/dist/bundling-sources/shared_libs/monitors/tsconfig.json +10 -0
- package/dist/bundling-sources/shared_libs/observability/build-context.ts +13 -0
- package/dist/bundling-sources/shared_libs/observability/log-metadata.ts +160 -0
- package/dist/bundling-sources/shared_libs/observability/request-context.ts +68 -0
- package/dist/bundling-sources/shared_libs/observability/scheduled-jobs.json +654 -0
- package/dist/bundling-sources/shared_libs/observability/scheduled-work-manual.ts +35 -0
- package/dist/bundling-sources/shared_libs/observability/scheduled-work.ts +5 -0
- package/dist/bundling-sources/shared_libs/play-data-plane/neon-constants.ts +9 -0
- package/dist/bundling-sources/shared_libs/play-data-plane/r2.ts +272 -0
- package/dist/bundling-sources/shared_libs/play-runtime/activity-observation.ts +6 -11
- package/dist/bundling-sources/shared_libs/play-runtime/app-runtime-api.ts +135 -12
- package/dist/bundling-sources/shared_libs/play-runtime/async-operation.ts +66 -1
- package/dist/bundling-sources/shared_libs/play-runtime/async-play-invocation.ts +77 -0
- package/dist/bundling-sources/shared_libs/play-runtime/bounceban-batching.ts +137 -0
- package/dist/bundling-sources/shared_libs/play-runtime/checkpoint-boundaries.ts +70 -0
- package/dist/bundling-sources/shared_libs/play-runtime/context.ts +1159 -166
- package/dist/bundling-sources/shared_libs/play-runtime/coordinator-headers.ts +1 -32
- package/dist/bundling-sources/shared_libs/play-runtime/ctx-types.ts +103 -0
- package/dist/bundling-sources/shared_libs/play-runtime/daytona-payload-contract.ts +68 -0
- package/dist/bundling-sources/shared_libs/play-runtime/daytona-sandbox-janitor.ts +103 -0
- package/dist/bundling-sources/shared_libs/play-runtime/daytona-sandbox-reaper.ts +725 -0
- package/dist/bundling-sources/shared_libs/play-runtime/default-batch-strategies.ts +20 -1
- package/dist/bundling-sources/shared_libs/play-runtime/durable-call-cache.ts +29 -0
- package/dist/bundling-sources/shared_libs/play-runtime/execution-capabilities.ts +29 -0
- package/dist/bundling-sources/shared_libs/play-runtime/execution-gateway-invocation-fence.ts +442 -0
- package/dist/bundling-sources/shared_libs/play-runtime/execution-protocol.ts +7 -1
- package/dist/bundling-sources/shared_libs/play-runtime/fixture-behavior.ts +18 -0
- package/dist/bundling-sources/shared_libs/play-runtime/governor/app-runtime-rate-state-backend.ts +9 -0
- package/dist/bundling-sources/shared_libs/play-runtime/governor/policy.ts +1 -1
- package/dist/bundling-sources/shared_libs/play-runtime/governor/rate-state-backend.ts +1 -1
- package/dist/bundling-sources/shared_libs/play-runtime/integration-operation-reader-fence/contracts.ts +66 -0
- package/dist/bundling-sources/shared_libs/play-runtime/integration-operation-reader-fence/job.ts +145 -0
- package/dist/bundling-sources/shared_libs/play-runtime/integration-operation-reader-fence/ports.ts +21 -0
- package/dist/bundling-sources/shared_libs/play-runtime/integration-operation-reader-fence/postgres-store.ts +170 -0
- package/dist/bundling-sources/shared_libs/play-runtime/internal-bootstrap-token.ts +1322 -0
- package/dist/bundling-sources/shared_libs/play-runtime/internal-step-ids.ts +2 -2
- package/dist/bundling-sources/shared_libs/play-runtime/lane-retirement-gate.ts +189 -0
- package/dist/bundling-sources/shared_libs/play-runtime/launch-source-policy.ts +112 -0
- package/dist/bundling-sources/shared_libs/play-runtime/map-execution-frame.ts +8 -0
- package/dist/bundling-sources/shared_libs/play-runtime/perf-trace.ts +127 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-artifact-runtime-contract.ts +5 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-run-recovery-policy.ts +24 -1
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/admission/contracts.ts +56 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/admission/index.ts +13 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/admission/job.ts +41 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/admission/ports.ts +17 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/admission/postgres-adapter.ts +54 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/attempts/contracts.ts +114 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/attempts/engine-suspension.ts +108 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/attempts/index.ts +36 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/attempts/job.ts +97 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/attempts/ports.ts +104 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/attempts/postgres-fence-adapter.ts +263 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/attempts/worker-terminal-projection.ts +64 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/projection/contracts.ts +29 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/projection/gateway-adapter.ts +56 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/projection/index.ts +15 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/projection/job.ts +65 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/projection/ports.ts +17 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/sandbox-cleanup/contracts.ts +42 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/sandbox-cleanup/index.ts +17 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/sandbox-cleanup/job.ts +142 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/sandbox-cleanup/ports.ts +42 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/sandbox-cleanup/postgres-adapter.ts +102 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/contracts.ts +60 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/index.ts +16 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/job.ts +78 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/ports.ts +54 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/postgres-adapter.ts +71 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runtime-batching-registry.ts +4 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runtime-semantics.ts +28 -0
- package/dist/bundling-sources/shared_libs/play-runtime/protocol.ts +4 -0
- package/dist/bundling-sources/shared_libs/play-runtime/receipt-status.ts +5 -8
- package/dist/bundling-sources/shared_libs/play-runtime/run-failure.ts +23 -2
- package/dist/bundling-sources/shared_libs/play-runtime/run-identity.ts +168 -0
- package/dist/bundling-sources/shared_libs/play-runtime/run-snapshot-stream.ts +1 -1
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-lifecycle.ts +90 -13
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-payload-transport.ts +6 -12
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-start-admission.ts +68 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona.ts +21 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/bundle.ts +0 -1
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/runtime-sandbox-reconciliation.ts +14 -43
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-api.ts +67 -213
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-authority.ts +201 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-capacity-policy.ts +20 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-contract.ts +6 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-env.ts +12 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-operation-contract.ts +67 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-release-environment.ts +2 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-sandbox-contract.ts +68 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-scheduler-topology.ts +38 -2
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-telemetry.ts +108 -0
- package/dist/bundling-sources/shared_libs/play-runtime/sandbox-runs/contract.ts +4 -0
- package/dist/bundling-sources/shared_libs/play-runtime/sandbox-runs/runner-backend-adapter.ts +3 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backend.ts +37 -1
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-deadline-reconciliation.ts +88 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-play-deploy-task.ts +124 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-play-run-task.ts +68 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-pool.ts +193 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-queue-lifecycle.ts +269 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-queue-suffix.ts +73 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-runtime-worker.ts +6642 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-shared.ts +897 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-worker-metrics.ts +120 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-worker-required-env.ts +76 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd.ts +476 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/gateway-heavy-request-admission.ts +47 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/gateway-progress-registry.ts +147 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/index.ts +27 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/lazy.ts +50 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/play-run-recovery.ts +98 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-budget-state.ts +260 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-pool.ts +1416 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-progress.ts +1255 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-rate-state.ts +942 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +14636 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/receipt-gateway.ts +888 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-ledger-outbox-recovery.ts +355 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-terminal-transition.ts +46 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runner-push.ts +60 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-api-origin.ts +33 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-receipt-gateway-health.ts +64 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-sandbox-capacity.ts +835 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-sandbox-ledger-reconciliation.ts +1218 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-sandbox-operation.ts +207 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-scheduler-schema.ts +10 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/scheduler-capacity.ts +123 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/scheduler-launch-read-observability.ts +78 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/submit-admission.ts +169 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/terminal-contract.ts +20 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/worker-queue-metrics.ts +34 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/worker-resource-metrics.ts +249 -0
- package/dist/bundling-sources/shared_libs/play-runtime/sheet-attempt-sql.ts +7 -0
- package/dist/bundling-sources/shared_libs/play-runtime/step-progress.ts +296 -0
- package/dist/bundling-sources/shared_libs/play-runtime/tool-call/native-batch.ts +3 -3
- package/dist/bundling-sources/shared_libs/play-runtime/tool-call/runtime-step-receipts-adapter.ts +20 -1
- package/dist/bundling-sources/shared_libs/play-runtime/tool-execute-retry-policy.ts +60 -15
- package/dist/bundling-sources/shared_libs/play-runtime/tool-execution-outcome.ts +20 -0
- package/dist/bundling-sources/shared_libs/play-runtime/tool-http-errors.ts +1 -1
- package/dist/bundling-sources/shared_libs/play-runtime/tool-result.ts +1 -1
- package/dist/bundling-sources/shared_libs/play-runtime/transient-service-error.ts +12 -0
- package/dist/bundling-sources/shared_libs/play-runtime/vercel-protection.ts +14 -1
- package/dist/bundling-sources/shared_libs/play-runtime/work-receipt-storage-contract.ts +165 -0
- package/dist/bundling-sources/shared_libs/play-runtime/work-receipts.ts +15 -23
- package/dist/bundling-sources/shared_libs/play-runtime/workflow-executor-auth.ts +169 -0
- package/dist/bundling-sources/shared_libs/play-runtime/zerobounce-batching.ts +122 -0
- package/dist/bundling-sources/shared_libs/plays/artifact-types.ts +8 -3
- package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +454 -17
- package/dist/bundling-sources/shared_libs/plays/bundling/index.ts +19 -4
- package/dist/bundling-sources/shared_libs/plays/contracts.ts +8 -14
- package/dist/bundling-sources/shared_libs/plays/core.ts +11 -6
- package/dist/bundling-sources/shared_libs/plays/deployment-status.ts +1 -1
- package/dist/bundling-sources/shared_libs/plays/docflow-binding-owner.ts +16 -11
- package/dist/bundling-sources/shared_libs/plays/docflow.ts +1 -1
- package/dist/bundling-sources/shared_libs/plays/email-status.ts +1 -1
- package/dist/bundling-sources/shared_libs/plays/play-grep-search.ts +39 -0
- package/dist/bundling-sources/shared_libs/plays/resolve-static-pipeline.ts +1 -1
- package/dist/bundling-sources/shared_libs/plays/share/copy.ts +271 -0
- package/dist/bundling-sources/shared_libs/plays/share/metrics.ts +140 -0
- package/dist/bundling-sources/shared_libs/plays/share/public-read-model.ts +86 -0
- package/dist/bundling-sources/shared_libs/plays/share/seo-quality.ts +181 -0
- package/dist/bundling-sources/shared_libs/plays/share/static-pipeline-summary.ts +658 -0
- package/dist/bundling-sources/shared_libs/plays/share/types.ts +197 -0
- package/dist/bundling-sources/shared_libs/plays/slack-hitl-timeout-error.ts +37 -0
- package/dist/bundling-sources/shared_libs/plays/slug.ts +115 -0
- package/dist/bundling-sources/shared_libs/plays/static-pipeline.ts +50 -15
- package/dist/bundling-sources/shared_libs/plays/tool-category-descriptions.ts +2 -2
- package/dist/bundling-sources/shared_libs/plays/tool-result-types.ts +1 -1
- package/dist/bundling-sources/shared_libs/product-notifications/catalog.ts +877 -0
- package/dist/bundling-sources/shared_libs/product-notifications/configuration-draft.ts +456 -0
- package/dist/bundling-sources/shared_libs/product-notifications/configuration.ts +566 -0
- package/dist/bundling-sources/shared_libs/product-notifications/content.ts +28 -0
- package/dist/bundling-sources/shared_libs/product-notifications/default-policy.ts +60 -0
- package/dist/bundling-sources/shared_libs/product-notifications/email.ts +246 -0
- package/dist/bundling-sources/shared_libs/product-notifications/evaluation.ts +280 -0
- package/dist/bundling-sources/shared_libs/product-notifications/events.ts +433 -0
- package/dist/bundling-sources/shared_libs/product-notifications/legacy-slack.ts +80 -0
- package/dist/bundling-sources/shared_libs/product-notifications/overflow.ts +18 -0
- package/dist/bundling-sources/shared_libs/product-notifications/rolling-limit.ts +24 -0
- package/dist/bundling-sources/shared_libs/product-notifications/slack-delivery.ts +624 -0
- package/dist/bundling-sources/shared_libs/product-notifications/slack-payload.ts +140 -0
- package/dist/bundling-sources/shared_libs/product-notifications/slack-transport.ts +75 -0
- package/dist/bundling-sources/shared_libs/product-notifications/workspace.ts +38 -0
- package/dist/bundling-sources/shared_libs/runtime-env.ts +12 -0
- package/dist/bundling-sources/shared_libs/security/email-blacklist.ts +42 -0
- package/dist/bundling-sources/shared_libs/security/header-safe-env.ts +35 -0
- package/dist/bundling-sources/shared_libs/security/internal-actor.ts +50 -0
- package/dist/bundling-sources/shared_libs/security/secret-redaction.ts +267 -0
- package/dist/bundling-sources/shared_libs/security/slack-sanitize.ts +133 -0
- package/dist/cli/getting-started.d.mts +52 -0
- package/dist/cli/getting-started.d.ts +52 -0
- package/dist/cli/getting-started.js +65 -0
- package/dist/cli/getting-started.mjs +36 -0
- package/dist/cli/index.d.mts +9 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/index.js +1611 -453
- package/dist/cli/index.mjs +1596 -447
- package/dist/{compiler-manifest-Dbov16F7.d.mts → compiler-manifest-BaJfE-5H.d.mts} +136 -10
- package/dist/{compiler-manifest-Dbov16F7.d.ts → compiler-manifest-BaJfE-5H.d.ts} +136 -10
- package/dist/index.d.mts +910 -155
- package/dist/index.d.ts +910 -155
- package/dist/index.js +550 -64
- package/dist/index.mjs +550 -64
- package/dist/install-integrity.json +193 -4
- package/dist/monitor-fleet-contract.d.mts +138 -0
- package/dist/monitor-fleet-contract.d.ts +138 -0
- package/dist/monitor-fleet-contract.js +404 -0
- package/dist/monitor-fleet-contract.mjs +367 -0
- package/dist/plays/bundle-play-file.d.mts +8 -3
- package/dist/plays/bundle-play-file.d.ts +8 -3
- package/dist/plays/bundle-play-file.mjs +100 -20
- package/dist/release.d.mts +255 -0
- package/dist/release.d.ts +255 -0
- package/dist/release.js +215 -0
- package/dist/release.mjs +188 -0
- package/package.json +23 -4
- /package/dist/bundling-sources/shared_libs/{integrations/bettercontact-execution-policy.ts → integration-contracts/bettercontact/execution-policy.ts} +0 -0
- /package/dist/bundling-sources/shared_libs/{integrations/theirstack-execution-policy.ts → integration-contracts/theirstack/execution-policy.ts} +0 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package-owned types for Shareable Play Pages.
|
|
3
|
+
*
|
|
4
|
+
* These types are imported by Convex functions (`packages/convex/playSharePages.ts`),
|
|
5
|
+
* Next.js API routes, and the public landing page. They are the single,
|
|
6
|
+
* bounded contract for everything that crosses the public boundary.
|
|
7
|
+
*
|
|
8
|
+
* See docs/shareable-play-pages-plan.md.
|
|
9
|
+
*/
|
|
10
|
+
// This Module is bundled by Convex through its workspace dependency graph.
|
|
11
|
+
import type { PlayStaticSubstep } from '../static-pipeline';
|
|
12
|
+
|
|
13
|
+
/** SEO indexing posture for a share page or a specific version URL. */
|
|
14
|
+
export type PlayShareSeoIndexing = 'index' | 'noindex';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Generated landing-page copy, tied to one immutable Play Revision.
|
|
18
|
+
*
|
|
19
|
+
* Every field is plain human/agent-readable text. Nothing here may contain
|
|
20
|
+
* provider spend, secrets, raw runtime internals, or unpublished source.
|
|
21
|
+
*/
|
|
22
|
+
export type PlayShareGeneratedCopy = {
|
|
23
|
+
/** Concrete, job-focused landing title. */
|
|
24
|
+
title: string;
|
|
25
|
+
/** One paragraph, plain English. */
|
|
26
|
+
shortDescription: string;
|
|
27
|
+
/** The job the Play performs (jobs-to-be-done). */
|
|
28
|
+
jtbd: string;
|
|
29
|
+
/** 3-5 bullets describing when to reach for this Play. */
|
|
30
|
+
whenToUse: string[];
|
|
31
|
+
/** Concrete required inputs. */
|
|
32
|
+
inputs: string[];
|
|
33
|
+
/** Concrete produced outputs. */
|
|
34
|
+
outputs: string[];
|
|
35
|
+
/** Paste-ready Claude Code/Cursor/Codex instruction. */
|
|
36
|
+
agentPrompt: string;
|
|
37
|
+
/** Explicit, readable summary for LLM ingestion. */
|
|
38
|
+
llmSummary: string;
|
|
39
|
+
/** Search-result title. */
|
|
40
|
+
seoTitle: string;
|
|
41
|
+
/** Search-result description. */
|
|
42
|
+
seoDescription: string;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/** Owner overrides merge over generated copy at read time. */
|
|
46
|
+
export type PlayShareCopyOverrides = Partial<PlayShareGeneratedCopy>;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* A single node in the bounded pipeline preview. Never includes source code,
|
|
50
|
+
* params, secrets, or provider spend — only a shape and a human label.
|
|
51
|
+
*/
|
|
52
|
+
export type PlaySharePreviewStep = {
|
|
53
|
+
/** Human-readable action, e.g. "search people by domain". */
|
|
54
|
+
label: string;
|
|
55
|
+
/** Provider name backing this step, when known. */
|
|
56
|
+
provider: string | null;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export type PlaySharePreviewNode = {
|
|
60
|
+
type:
|
|
61
|
+
| 'csv'
|
|
62
|
+
| 'dataset'
|
|
63
|
+
| 'tool'
|
|
64
|
+
| 'waterfall'
|
|
65
|
+
| 'step_suite'
|
|
66
|
+
| 'control_flow'
|
|
67
|
+
| 'play_call'
|
|
68
|
+
| 'play_launch'
|
|
69
|
+
| 'run_javascript'
|
|
70
|
+
| 'code';
|
|
71
|
+
/** Human-readable label, e.g. "Apollo" or "Dataset rows". */
|
|
72
|
+
label: string;
|
|
73
|
+
/** Optional provider name when this node calls a provider. */
|
|
74
|
+
provider?: string | null;
|
|
75
|
+
/** Optional secondary line, e.g. an input field or step kind. */
|
|
76
|
+
detail?: string | null;
|
|
77
|
+
/** Ordered sub-steps for waterfall / step-suite nodes (bounded). */
|
|
78
|
+
steps?: PlaySharePreviewStep[];
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
/** Bounded static-pipeline summary safe for public display. */
|
|
82
|
+
export type PlayShareStaticPipelineSummary = {
|
|
83
|
+
stepCount: number;
|
|
84
|
+
providerCount: number;
|
|
85
|
+
hasMap: boolean;
|
|
86
|
+
previewNodes: PlaySharePreviewNode[];
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
/** Bounded, safe representation of the revision's input/output shape. */
|
|
90
|
+
export type PlayShareSchemaShape = {
|
|
91
|
+
fields: string[];
|
|
92
|
+
} | null;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* The ONLY object consumed by the public page and the public share API.
|
|
96
|
+
* Everything here is safe to expose to anyone with the unlisted link.
|
|
97
|
+
*/
|
|
98
|
+
export type PublishedPlayPagePackage = {
|
|
99
|
+
page: {
|
|
100
|
+
/** Internal stable record id. Never a public URL — pages are namespaced. */
|
|
101
|
+
shareSlug: string;
|
|
102
|
+
/** Org URL handle; the public page lives at `/p/:orgSlug/:playName`. */
|
|
103
|
+
orgSlug: string;
|
|
104
|
+
visibility: 'unlisted';
|
|
105
|
+
seoIndexing: PlayShareSeoIndexing;
|
|
106
|
+
/** Canonical path, e.g. `/p/:orgSlug/:playName/v/:publishedVersion`. */
|
|
107
|
+
canonicalPath: string;
|
|
108
|
+
/** Whether the requested URL is the currently-published version. */
|
|
109
|
+
isPublishedVersion: boolean;
|
|
110
|
+
/** When this version's public page was last published/updated. */
|
|
111
|
+
publishedAt: number;
|
|
112
|
+
};
|
|
113
|
+
definition: {
|
|
114
|
+
name: string;
|
|
115
|
+
ownerDisplayName: string | null;
|
|
116
|
+
};
|
|
117
|
+
revision: {
|
|
118
|
+
id: string;
|
|
119
|
+
version: number;
|
|
120
|
+
graphHash: string | null;
|
|
121
|
+
staticPipelineSummary: PlayShareStaticPipelineSummary;
|
|
122
|
+
/** Sanitized top-level substeps for the real v2 step-graph render. */
|
|
123
|
+
substeps: PlayStaticSubstep[];
|
|
124
|
+
inputSchema: PlayShareSchemaShape;
|
|
125
|
+
outputSchema: PlayShareSchemaShape;
|
|
126
|
+
};
|
|
127
|
+
copy: PlayShareGeneratedCopy;
|
|
128
|
+
publicMetrics: PublishedPlayPageMetrics;
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Which cost denominator is comparable across runs of different input sizes,
|
|
133
|
+
* derived from the play's map shape. See `classifyCostBasis`.
|
|
134
|
+
*/
|
|
135
|
+
export type PlayCostBasis = 'run' | 'row' | 'none';
|
|
136
|
+
|
|
137
|
+
/** Public, credit-only metrics. Provider spend is never present. */
|
|
138
|
+
export type PublishedPlayPageMetrics = {
|
|
139
|
+
averageDeeplineCostCredits: number | null;
|
|
140
|
+
averageCostPerInputRowCredits: number | null;
|
|
141
|
+
averageCostPerOutputLeadCredits: number | null;
|
|
142
|
+
averageLatencyMs: number | null;
|
|
143
|
+
sampleRunCount: number;
|
|
144
|
+
/**
|
|
145
|
+
* The only cost denominator that is comparable across runs of different input
|
|
146
|
+
* sizes, derived from the play's map shape: `'run'` (flat play), `'row'`
|
|
147
|
+
* (single dataset over input rows), or `'none'` (multiple/nested datasets — no honest
|
|
148
|
+
* denominator, so cost is suppressed). Drives which credit metric the page
|
|
149
|
+
* renders, if any.
|
|
150
|
+
*/
|
|
151
|
+
costBasis: PlayCostBasis;
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Authenticated owner view of a share page (returned by GET/POST/PATCH
|
|
156
|
+
* `/api/v2/plays/:name/share`). Includes management metadata not exposed
|
|
157
|
+
* to the public read model.
|
|
158
|
+
*/
|
|
159
|
+
export type PlaySharePageOwnerView = {
|
|
160
|
+
shareSlug: string;
|
|
161
|
+
/** Org URL handle; the public page lives at `/p/:orgSlug/:playName`. */
|
|
162
|
+
orgSlug: string;
|
|
163
|
+
publishedRevisionId: string;
|
|
164
|
+
publishedVersion: number;
|
|
165
|
+
visibility: 'unlisted';
|
|
166
|
+
seoIndexing: PlayShareSeoIndexing;
|
|
167
|
+
showAverageDeeplineCost: boolean;
|
|
168
|
+
showAverageLatency: boolean;
|
|
169
|
+
publicPath: string;
|
|
170
|
+
canonicalPath: string;
|
|
171
|
+
createdAt: number;
|
|
172
|
+
updatedAt: number;
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* One row in the byte-bounded owner-facing version picker. The status response
|
|
177
|
+
* includes recent revisions plus any older working, live, public, or explicitly
|
|
178
|
+
* selected dashboard revision.
|
|
179
|
+
*/
|
|
180
|
+
export type PlaySharePageRevisionOption = {
|
|
181
|
+
revisionId: string;
|
|
182
|
+
version: number;
|
|
183
|
+
hasMap: boolean;
|
|
184
|
+
createdAt: number;
|
|
185
|
+
isLive: boolean;
|
|
186
|
+
isWorking: boolean;
|
|
187
|
+
isPublished: boolean;
|
|
188
|
+
hasCard: boolean;
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
/** Full payload for GET `/api/v2/plays/:name/share`. */
|
|
192
|
+
export type PlaySharePageStatusResponse = {
|
|
193
|
+
playName: string;
|
|
194
|
+
share: PlaySharePageOwnerView | null;
|
|
195
|
+
publishedCopy: PlayShareGeneratedCopy | null;
|
|
196
|
+
revisions: PlaySharePageRevisionOption[];
|
|
197
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ToolExecutionError } from './tool-execution-error';
|
|
2
|
+
|
|
3
|
+
/** Stable code for an unanswered `slack_message_with_hitl` approval. */
|
|
4
|
+
export const SLACK_HITL_TIMEOUT_ERROR_CODE = 'SLACK_HITL_TIMEOUT' as const;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* A Slack human-in-the-loop approval reached its deadline without a decision.
|
|
8
|
+
*
|
|
9
|
+
* Deepline first confirms that it replaced the Slack card with “Interaction
|
|
10
|
+
* timed out.” and removed its controls. The error is non-retryable and
|
|
11
|
+
* runner-fatal: an authored `try/catch` may observe it, but cannot settle the
|
|
12
|
+
* Play successfully or start another durable operation. Retry the Play only
|
|
13
|
+
* after changing its input or timeout policy.
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
16
|
+
export class SlackHitlTimeoutError extends ToolExecutionError {
|
|
17
|
+
constructor(message?: string) {
|
|
18
|
+
const detail =
|
|
19
|
+
message?.trim() ||
|
|
20
|
+
'Slack approval timed out before a human decision was received.';
|
|
21
|
+
super(`${SLACK_HITL_TIMEOUT_ERROR_CODE}: ${detail}`, {
|
|
22
|
+
toolId: 'slack_message_with_hitl',
|
|
23
|
+
provider: 'slack',
|
|
24
|
+
operation: 'slack_message_with_hitl',
|
|
25
|
+
code: SLACK_HITL_TIMEOUT_ERROR_CODE,
|
|
26
|
+
origin: 'deepline',
|
|
27
|
+
category: 'conflict',
|
|
28
|
+
retryable: false,
|
|
29
|
+
statusCode: 408,
|
|
30
|
+
requestId: null,
|
|
31
|
+
retryAfterMs: null,
|
|
32
|
+
networkKind: null,
|
|
33
|
+
networkScope: null,
|
|
34
|
+
});
|
|
35
|
+
this.name = 'SlackHitlTimeoutError';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical slug helpers — the single home for URL-handle normalization and
|
|
3
|
+
* unguessable-suffix generation. Shared by Convex (relative `.//slug`)
|
|
4
|
+
* and the Next app (`.//slug`).
|
|
5
|
+
*
|
|
6
|
+
* Used by:
|
|
7
|
+
* - Organization slugs (the org's stable URL handle)
|
|
8
|
+
* - Share-page slugs (`/p/{shareSlug}`) and version paths
|
|
9
|
+
* - Play-name slug bases
|
|
10
|
+
*
|
|
11
|
+
* Intentionally NOT covered here (different concerns — kept separate so this
|
|
12
|
+
* stays a real seam, not DRY-for-its-own-sake):
|
|
13
|
+
* - URL → durable-scope slugs (parse host:port; playground backend / scripts)
|
|
14
|
+
* - DataForSEO codegen `kebabCase` (underscore-only transform)
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
const SHARE_SLUG_NAME_MAX_LEN = 48;
|
|
18
|
+
const SHARE_SLUG_SUFFIX_LEN = 8;
|
|
19
|
+
const SUFFIX_ALPHABET = 'abcdefghijklmnopqrstuvwxyz0123456789';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Normalize an arbitrary string into a URL-safe kebab slug: lowercase, NFKD-fold
|
|
23
|
+
* accents, collapse every run of non-`[a-z0-9]` into a single dash, trim edge
|
|
24
|
+
* dashes, and optionally cap length (re-trimming a trailing dash after the cut).
|
|
25
|
+
*
|
|
26
|
+
* Returns `''` for empty/garbage input — callers supply their own domain
|
|
27
|
+
* fallback (`'team'`, `'play'`, `'ci-bootstrap'`, …), since the right default is
|
|
28
|
+
* domain-specific.
|
|
29
|
+
*/
|
|
30
|
+
export function normalizeSlug(
|
|
31
|
+
value: string,
|
|
32
|
+
options?: { maxLength?: number },
|
|
33
|
+
): string {
|
|
34
|
+
let slug = value
|
|
35
|
+
.toLowerCase()
|
|
36
|
+
.normalize('NFKD')
|
|
37
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
38
|
+
.replace(/^-+|-+$/g, '');
|
|
39
|
+
const maxLength = options?.maxLength;
|
|
40
|
+
if (maxLength !== undefined && slug.length > maxLength) {
|
|
41
|
+
slug = slug.slice(0, maxLength).replace(/-+$/g, '');
|
|
42
|
+
}
|
|
43
|
+
return slug;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Deterministic unguessable suffix from injected bytes (pure + testable). Each
|
|
48
|
+
* byte maps into a 36-char lowercase-alphanumeric alphabet. `randomBytes` must
|
|
49
|
+
* be at least `length` long.
|
|
50
|
+
*/
|
|
51
|
+
export function buildSlugSuffix(
|
|
52
|
+
length: number,
|
|
53
|
+
randomBytes: Uint8Array,
|
|
54
|
+
): string {
|
|
55
|
+
if (randomBytes.length < length) {
|
|
56
|
+
throw new Error(
|
|
57
|
+
`buildSlugSuffix requires at least ${length} random bytes.`,
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
let suffix = '';
|
|
61
|
+
for (let i = 0; i < length; i += 1) {
|
|
62
|
+
suffix += SUFFIX_ALPHABET[randomBytes[i] % SUFFIX_ALPHABET.length];
|
|
63
|
+
}
|
|
64
|
+
return suffix;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/** Crypto-backed unguessable suffix (Node / Convex / browser global `crypto`). */
|
|
68
|
+
export function randomSlugSuffix(length: number): string {
|
|
69
|
+
const bytes = new Uint8Array(length);
|
|
70
|
+
crypto.getRandomValues(bytes);
|
|
71
|
+
return buildSlugSuffix(length, bytes);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** Kebab-case the human play name into the readable share-slug stem. */
|
|
75
|
+
export function playNameToSlugBase(name: string): string {
|
|
76
|
+
return normalizeSlug(name, { maxLength: SHARE_SLUG_NAME_MAX_LEN }) || 'play';
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Build a full share slug from a name stem and a source of randomness. Pure +
|
|
81
|
+
* deterministic for tests; callers pass crypto-backed bytes.
|
|
82
|
+
*/
|
|
83
|
+
export function buildShareSlug(name: string, randomBytes: Uint8Array): string {
|
|
84
|
+
const suffix = buildSlugSuffix(SHARE_SLUG_SUFFIX_LEN, randomBytes);
|
|
85
|
+
return `${playNameToSlugBase(name)}-${suffix}`;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/** Generate a crypto-backed share slug. */
|
|
89
|
+
export function generateShareSlug(name: string): string {
|
|
90
|
+
return `${playNameToSlugBase(name)}-${randomSlugSuffix(SHARE_SLUG_SUFFIX_LEN)}`;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Public path for a share page — namespaced by org slug + play name.
|
|
95
|
+
*
|
|
96
|
+
* This is the ONLY public URL shape. There is no top-level `/p/{slug}`: org
|
|
97
|
+
* slugs are globally unique (Better Auth) and play names are unique within an
|
|
98
|
+
* org (`by_orgId_name`), so `{org}/{play}` is globally unique on its own. The
|
|
99
|
+
* random `shareSlug` is kept only as an internal record id, never a URL.
|
|
100
|
+
*/
|
|
101
|
+
export function buildSharePublicPath(
|
|
102
|
+
orgSlug: string,
|
|
103
|
+
playName: string,
|
|
104
|
+
): string {
|
|
105
|
+
return `/p/${encodeURIComponent(orgSlug)}/${encodeURIComponent(playName)}`;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/** Canonical, version-pinned path for a share page. */
|
|
109
|
+
export function buildShareCanonicalPath(
|
|
110
|
+
orgSlug: string,
|
|
111
|
+
playName: string,
|
|
112
|
+
version: number,
|
|
113
|
+
): string {
|
|
114
|
+
return `${buildSharePublicPath(orgSlug, playName)}/v/${version}`;
|
|
115
|
+
}
|
|
@@ -212,7 +212,10 @@ export function ensureCompiledSheetContract(
|
|
|
212
212
|
substeps: PlayStaticSubstep[],
|
|
213
213
|
): PlayStaticSubstep[] =>
|
|
214
214
|
substeps.map((substep) => {
|
|
215
|
-
if (
|
|
215
|
+
if (
|
|
216
|
+
(substep.type === 'play_call' || substep.type === 'play_launch') &&
|
|
217
|
+
substep.pipeline
|
|
218
|
+
) {
|
|
216
219
|
return {
|
|
217
220
|
...substep,
|
|
218
221
|
pipeline: ensureCompiledSheetContract(substep.pipeline) ?? null,
|
|
@@ -409,7 +412,11 @@ function truncateStaticSubstepsForStorage(
|
|
|
409
412
|
return truncateStaticSubstepShallowForStorage(base);
|
|
410
413
|
}
|
|
411
414
|
|
|
412
|
-
if (
|
|
415
|
+
if (
|
|
416
|
+
base.type !== 'play_call' &&
|
|
417
|
+
base.type !== 'play_launch' &&
|
|
418
|
+
'pipeline' in substepWithoutSourceText
|
|
419
|
+
) {
|
|
413
420
|
const nestedPipeline = substepWithoutSourceText.pipeline;
|
|
414
421
|
(base as { pipeline?: PlayStaticPipeline | null }).pipeline =
|
|
415
422
|
nestedPipeline
|
|
@@ -435,7 +442,12 @@ function truncateStaticSubstepsForStorage(
|
|
|
435
442
|
columns: base.columns
|
|
436
443
|
? base.columns.map((column) => ({
|
|
437
444
|
...column,
|
|
438
|
-
|
|
445
|
+
// `producers` was added after some persisted runtime Sheet
|
|
446
|
+
// contracts already existed. It is descriptive provenance, not
|
|
447
|
+
// required to identify or persist a Sheet column, so normalize
|
|
448
|
+
// a legacy omission to its semantic empty value while retaining
|
|
449
|
+
// the original column contract.
|
|
450
|
+
producers: (column.producers ?? []).map((producer) => ({
|
|
439
451
|
...omitUndefinedProperties({ ...producer }),
|
|
440
452
|
sourceRange: cloneStorageSafeSourceRange(producer.sourceRange),
|
|
441
453
|
steps: producer.steps
|
|
@@ -489,7 +501,7 @@ function truncateStaticSubstepsForStorage(
|
|
|
489
501
|
});
|
|
490
502
|
}
|
|
491
503
|
|
|
492
|
-
if (base.type !== 'play_call') {
|
|
504
|
+
if (base.type !== 'play_call' && base.type !== 'play_launch') {
|
|
493
505
|
if (Array.isArray((base as { steps?: unknown }).steps)) {
|
|
494
506
|
return omitUndefinedProperties({
|
|
495
507
|
...base,
|
|
@@ -502,9 +514,9 @@ function truncateStaticSubstepsForStorage(
|
|
|
502
514
|
return base;
|
|
503
515
|
}
|
|
504
516
|
|
|
505
|
-
// A normalized authoring graph
|
|
506
|
-
//
|
|
507
|
-
//
|
|
517
|
+
// A normalized authoring graph may leave a named Play reference's child
|
|
518
|
+
// pipeline absent. That is a reference edge, not a failed or truncated
|
|
519
|
+
// resolution, so preserve it without inventing an error.
|
|
508
520
|
if (
|
|
509
521
|
!base.pipeline &&
|
|
510
522
|
!Object.prototype.hasOwnProperty.call(substep, 'pipeline') &&
|
|
@@ -617,11 +629,7 @@ export function createStaticPipelineReferenceProjection(
|
|
|
617
629
|
preserveEmbeddedPlayIds?: ReadonlySet<string>;
|
|
618
630
|
},
|
|
619
631
|
): PlayStaticPipeline | null | undefined {
|
|
620
|
-
|
|
621
|
-
maxEmbeddedPlayCallPipelineDepth: Number.POSITIVE_INFINITY,
|
|
622
|
-
maxStoredSubstepDepth: Number.POSITIVE_INFINITY,
|
|
623
|
-
});
|
|
624
|
-
if (!stored) return stored;
|
|
632
|
+
if (!pipeline) return pipeline;
|
|
625
633
|
|
|
626
634
|
const projectSteps = (
|
|
627
635
|
steps: PlayStaticSubstep[] | undefined,
|
|
@@ -653,6 +661,10 @@ export function createStaticPipelineReferenceProjection(
|
|
|
653
661
|
}
|
|
654
662
|
return projected;
|
|
655
663
|
}
|
|
664
|
+
if (projected.type === 'play_launch' && projected.pipeline) {
|
|
665
|
+
projected.pipeline = projectPipeline(projected.pipeline);
|
|
666
|
+
return projected;
|
|
667
|
+
}
|
|
656
668
|
if (
|
|
657
669
|
(projected.type === 'dataset' ||
|
|
658
670
|
projected.type === 'step_suite' ||
|
|
@@ -678,7 +690,13 @@ export function createStaticPipelineReferenceProjection(
|
|
|
678
690
|
substeps: projectSteps(candidate.substeps),
|
|
679
691
|
});
|
|
680
692
|
|
|
681
|
-
|
|
693
|
+
// Prune named child snapshots before the storage-safe deep copy. Resolved
|
|
694
|
+
// calls can share large child graphs; copying those once per call site only
|
|
695
|
+
// to discard them can exhaust the launch process before run admission.
|
|
696
|
+
return truncateStaticPipelineForStorage(projectPipeline(pipeline), {
|
|
697
|
+
maxEmbeddedPlayCallPipelineDepth: Number.POSITIVE_INFINITY,
|
|
698
|
+
maxStoredSubstepDepth: Number.POSITIVE_INFINITY,
|
|
699
|
+
});
|
|
682
700
|
}
|
|
683
701
|
|
|
684
702
|
function asStaticRecord(value: unknown): Record<string, unknown> | null {
|
|
@@ -1315,6 +1333,19 @@ export type PlayStaticSubstep = PlayStaticSubstepMetadata &
|
|
|
1315
1333
|
callDepth?: number;
|
|
1316
1334
|
callPath?: string[];
|
|
1317
1335
|
}
|
|
1336
|
+
| {
|
|
1337
|
+
type: 'play_launch';
|
|
1338
|
+
playId: string;
|
|
1339
|
+
field: string;
|
|
1340
|
+
inLoop?: boolean;
|
|
1341
|
+
pipeline?: PlayStaticPipeline | null;
|
|
1342
|
+
cycleDetected?: boolean;
|
|
1343
|
+
resolutionError?: string;
|
|
1344
|
+
description?: string;
|
|
1345
|
+
sourceRange?: PlayStaticSourceRange;
|
|
1346
|
+
callDepth?: number;
|
|
1347
|
+
callPath?: string[];
|
|
1348
|
+
}
|
|
1318
1349
|
| {
|
|
1319
1350
|
type: 'control_flow';
|
|
1320
1351
|
kind: 'conditional' | 'loop';
|
|
@@ -1601,7 +1632,7 @@ function columnProducerFromSubstep(
|
|
|
1601
1632
|
? 'stepProgram'
|
|
1602
1633
|
: substep.type === 'control_flow'
|
|
1603
1634
|
? 'controlFlow'
|
|
1604
|
-
: substep.type === 'play_call'
|
|
1635
|
+
: substep.type === 'play_call' || substep.type === 'play_launch'
|
|
1605
1636
|
? 'playCall'
|
|
1606
1637
|
: 'transform';
|
|
1607
1638
|
return {
|
|
@@ -1609,7 +1640,9 @@ function columnProducerFromSubstep(
|
|
|
1609
1640
|
kind,
|
|
1610
1641
|
field,
|
|
1611
1642
|
...(substep.type === 'tool' ? { toolId: substep.toolId } : {}),
|
|
1612
|
-
...(substep.type === 'play_call'
|
|
1643
|
+
...(substep.type === 'play_call' || substep.type === 'play_launch'
|
|
1644
|
+
? { playId: substep.playId }
|
|
1645
|
+
: {}),
|
|
1613
1646
|
...(substep.conditional ? { conditional: true } : {}),
|
|
1614
1647
|
...(substep.disabled ? { disabled: true } : {}),
|
|
1615
1648
|
...(substep.sourceRange ? { sourceRange: substep.sourceRange } : {}),
|
|
@@ -1624,6 +1657,8 @@ function producerId(substep: PlayStaticSubstep, field: string): string {
|
|
|
1624
1657
|
return `${field}:waterfall:${substep.id ?? substep.tool ?? 'unknown'}`;
|
|
1625
1658
|
}
|
|
1626
1659
|
if (substep.type === 'play_call') return `${field}:play:${substep.playId}`;
|
|
1660
|
+
if (substep.type === 'play_launch')
|
|
1661
|
+
return `${field}:play-launch:${substep.playId}`;
|
|
1627
1662
|
if (substep.type === 'step_suite') return `${field}:steps`;
|
|
1628
1663
|
if (substep.type === 'control_flow')
|
|
1629
1664
|
return `${field}:control:${substep.kind}:${sourceRangeKey(substep.sourceRange)}`;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// One-line definitions for the tool categories surfaced by `deepline tools list`.
|
|
2
2
|
//
|
|
3
3
|
// Tool categories are free-form strings that each provider tool declares in the
|
|
4
|
-
// generated catalog (see `
|
|
4
|
+
// generated catalog (see `packages/integrations/**`), not a single closed enum.
|
|
5
5
|
// The canonical set of well-known category slugs lives next to this file in
|
|
6
6
|
// `DEEPLINE_TOOL_CATEGORIES` (bootstrap-routes.ts) and in the richer
|
|
7
|
-
// `IntegrationCatalogTag` enum (
|
|
7
|
+
// `IntegrationCatalogTag` enum (packages/integrations/catalog-tags.ts). This map
|
|
8
8
|
// MUST track the categories that actually appear on live tools. The CLI derives
|
|
9
9
|
// the category enumeration from the live catalog, so a new category slug shows
|
|
10
10
|
// up automatically; only its human-readable definition comes from here. When a
|
|
@@ -5,7 +5,7 @@ import type { PlayDataset, SerializedPlayDataset } from './dataset';
|
|
|
5
5
|
export type ToolResultExecutionMetadata = {
|
|
6
6
|
idempotent: true;
|
|
7
7
|
cached: boolean;
|
|
8
|
-
source: 'live' | 'checkpoint' | 'cache' | 'in_flight';
|
|
8
|
+
source: 'live' | 'checkpoint' | 'cache' | 'in_flight' | 'source_run';
|
|
9
9
|
cacheKey?: string;
|
|
10
10
|
receiptRole?: 'owner' | 'follower';
|
|
11
11
|
receiptKey?: string;
|