deepline 0.3.89 → 0.3.91
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 +221 -43
- package/dist/bundling-sources/sdk/src/index.ts +4 -0
- package/dist/bundling-sources/sdk/src/monitor-fleet-contract.ts +2 -556
- package/dist/bundling-sources/sdk/src/monitor-fleets.ts +2 -2
- package/dist/bundling-sources/sdk/src/pagination.ts +25 -0
- package/dist/bundling-sources/sdk/src/plays/bundle-play-file.ts +1 -1
- package/dist/bundling-sources/sdk/src/release.ts +11 -9
- package/dist/bundling-sources/sdk/src/types.ts +29 -1
- package/dist/bundling-sources/shared_libs/integration-contracts/monitor-fleet-contract.ts +549 -0
- package/dist/bundling-sources/shared_libs/monitors/analytics-public.ts +10 -0
- package/dist/bundling-sources/shared_libs/monitors/fleets/errors.ts +96 -0
- package/dist/bundling-sources/shared_libs/monitors/fleets/limits.ts +8 -0
- package/dist/bundling-sources/shared_libs/monitors/fleets/plan.ts +320 -0
- package/dist/bundling-sources/shared_libs/monitors/fleets/verdict.ts +106 -0
- package/dist/bundling-sources/shared_libs/monitors/http-error-response.ts +8 -1
- package/dist/bundling-sources/shared_libs/monitors/inbound-queue.ts +4 -4
- package/dist/bundling-sources/shared_libs/monitors/inventory-reconciliation.ts +59 -0
- package/dist/bundling-sources/shared_libs/monitors/lifecycle-notifications.ts +7 -9
- package/dist/bundling-sources/shared_libs/monitors/monitor-fleet-limits.ts +2 -12
- package/dist/bundling-sources/shared_libs/monitors/package.json +113 -4
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-batch-operation.ts +56 -9
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-consumer-health.ts +2 -2
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-identity-claims.ts +2 -2
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-public-aliases.ts +1 -1
- 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 +1 -1
- package/dist/bundling-sources/shared_libs/monitors/snitcher-ip2company.ts +2 -2
- package/dist/bundling-sources/shared_libs/monitors/snitcher-radar.ts +1 -1
- package/dist/bundling-sources/shared_libs/monitors/tracking-provider-integrations.ts +1 -1
- 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 +690 -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/app-runtime-api.ts +46 -1
- 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 +0 -1
- package/dist/bundling-sources/shared_libs/play-runtime/bounceban-batching.ts +137 -0
- package/dist/bundling-sources/shared_libs/play-runtime/context.ts +779 -140
- package/dist/bundling-sources/shared_libs/play-runtime/ctx-types.ts +46 -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/db-session-lease-store.ts +578 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/commands/roll-execution-relay.ts +521 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/commands/roll-receipt-gateway.ts +1378 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/commands/runtime-topology.ts +1024 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/fly-gateway-route-probe.ts +193 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/fly-machine-lifecycle.ts +104 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/fly-machines.ts +1844 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/fly-registry.ts +21 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/process-tree.ts +40 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/runtime-gateway-drain.ts +262 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/runtime-surface.ts +98 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/runtime-topology.ts +303 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/runtime-tuple-publication-guardian.ts +70 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/runtime-tuple-recovery.ts +519 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/vercel-fly-rollback-alignment.ts +280 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/vercel-production-gate.ts +159 -0
- 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 +23 -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 +3 -3
- 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/memory-store.ts +114 -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 +1 -1
- 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/protocol.ts +2 -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 +3 -5
- package/dist/bundling-sources/shared_libs/play-runtime/run-identity.ts +168 -0
- package/dist/bundling-sources/shared_libs/play-runtime/run-ledger.ts +44 -5
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/child-play-resolver.ts +26 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +3662 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/progress-sidecar.ts +47 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-deadline.ts +84 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-gateway-transport.ts +91 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-heartbeat.ts +424 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-progress-push.ts +321 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-sheet-persistence-retry.ts +110 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-terminal-push.ts +625 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-lifecycle.ts +72 -9
- 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.ts +19 -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 -44
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-api.ts +103 -208
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-authority.ts +201 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-env.ts +6 -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 +14 -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 +7 -0
- 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/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/webhook-receipt-retry.ts +50 -0
- 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 +2 -0
- package/dist/bundling-sources/shared_libs/plays/bundling/repository-adapter.ts +24 -0
- package/dist/bundling-sources/shared_libs/plays/child-run-projection.ts +174 -0
- package/dist/bundling-sources/shared_libs/plays/contracts.ts +2 -0
- package/dist/bundling-sources/shared_libs/plays/deploy/api-client.ts +267 -0
- package/dist/bundling-sources/shared_libs/plays/deploy/control-plane-types.ts +73 -0
- package/dist/bundling-sources/shared_libs/plays/deploy/manifest.ts +162 -0
- package/dist/bundling-sources/shared_libs/plays/deploy/project-serializer.ts +87 -0
- package/dist/bundling-sources/shared_libs/plays/deploy/source-file-path.ts +26 -0
- package/dist/bundling-sources/shared_libs/plays/deploy/target-paths.ts +36 -0
- package/dist/bundling-sources/shared_libs/plays/deployment-status.ts +1 -1
- package/dist/bundling-sources/shared_libs/plays/docflow.ts +1 -1
- package/dist/bundling-sources/shared_libs/plays/launch/input-contract.ts +400 -0
- package/dist/bundling-sources/shared_libs/plays/launch/prepare.ts +96 -0
- package/dist/bundling-sources/shared_libs/plays/local-file-discovery.ts +385 -0
- package/dist/bundling-sources/shared_libs/plays/play-grep-search.ts +112 -0
- package/dist/bundling-sources/shared_libs/plays/play-reference.ts +117 -0
- package/dist/bundling-sources/shared_libs/plays/run-input-summary.ts +260 -0
- package/dist/bundling-sources/shared_libs/plays/run-summary-types.ts +49 -0
- package/dist/bundling-sources/shared_libs/plays/secrets/errors.ts +19 -0
- 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/sheet-filter.ts +347 -0
- package/dist/bundling-sources/shared_libs/plays/slack-hitl-timeout-error.ts +37 -0
- package/dist/bundling-sources/shared_libs/plays/standard-webhooks.ts +117 -0
- package/dist/bundling-sources/shared_libs/plays/static-pipeline.ts +6 -1
- package/dist/bundling-sources/shared_libs/plays/status-result.ts +388 -0
- package/dist/bundling-sources/shared_libs/plays/tool-result-types.ts +1 -1
- package/dist/bundling-sources/shared_libs/plays/transform-factor-structure.ts +377 -0
- package/dist/bundling-sources/shared_libs/plays/webhook-payload.ts +113 -0
- package/dist/bundling-sources/shared_libs/product-notifications/configuration.ts +7 -1
- package/dist/bundling-sources/shared_libs/product-notifications/default-policy.ts +3 -2
- 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/runtime-env.ts +6 -0
- package/dist/bundling-sources/shared_libs/security/email-blacklist.ts +42 -0
- package/dist/bundling-sources/shared_libs/security/header-safe-env.ts +10 -3
- 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 +895 -407
- package/dist/cli/index.mjs +893 -414
- package/dist/{compiler-manifest-DsLbQaew.d.mts → compiler-manifest-x14KL83E.d.mts} +4 -2
- package/dist/{compiler-manifest-DsLbQaew.d.ts → compiler-manifest-x14KL83E.d.ts} +4 -2
- package/dist/index.d.mts +124 -154
- package/dist/index.d.ts +124 -154
- package/dist/index.js +132 -28
- package/dist/index.mjs +132 -28
- package/dist/install-integrity.json +182 -2
- package/dist/monitor-fleet-contract.d.mts +131 -0
- package/dist/monitor-fleet-contract.d.ts +131 -0
- package/dist/monitor-fleet-contract.js +406 -0
- package/dist/monitor-fleet-contract.mjs +367 -0
- package/dist/plays/bundle-play-file.d.mts +2 -2
- package/dist/plays/bundle-play-file.d.ts +2 -2
- package/dist/release.d.mts +255 -0
- package/dist/release.d.ts +255 -0
- package/dist/release.js +210 -0
- package/dist/release.mjs +183 -0
- package/package.json +21 -4
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
export type SlackPayload = {
|
|
2
|
+
text: string;
|
|
3
|
+
data?: string;
|
|
4
|
+
source: string;
|
|
5
|
+
requestedAt?: string;
|
|
6
|
+
blocks?: Array<Record<string, unknown>>;
|
|
7
|
+
unfurl_links?: boolean;
|
|
8
|
+
unfurl_media?: boolean;
|
|
9
|
+
bypassInternalActorBlock?: boolean;
|
|
10
|
+
} & Record<string, unknown>;
|
|
11
|
+
|
|
12
|
+
export type SlackField = {
|
|
13
|
+
label: string;
|
|
14
|
+
value: string | number | null | undefined;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export type SlackActivityPayloadInput = {
|
|
18
|
+
source: string;
|
|
19
|
+
activityTitle: string;
|
|
20
|
+
activityPrimary: string;
|
|
21
|
+
fields: SlackField[];
|
|
22
|
+
fallbackText?: string;
|
|
23
|
+
footerText?: string;
|
|
24
|
+
requestedAt?: string;
|
|
25
|
+
extra?: Record<string, unknown>;
|
|
26
|
+
showHeader?: boolean;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export function buildSlackActivityPayload(
|
|
30
|
+
input: SlackActivityPayloadInput,
|
|
31
|
+
): SlackPayload {
|
|
32
|
+
const title =
|
|
33
|
+
normalizeText(input.activityTitle) || 'You have a new activity:';
|
|
34
|
+
const primary = normalizeText(input.activityPrimary) || 'Activity update';
|
|
35
|
+
const detailsTableBlock = buildSlackTableBlock(input.fields);
|
|
36
|
+
const text =
|
|
37
|
+
normalizeText(input.fallbackText) ||
|
|
38
|
+
[
|
|
39
|
+
title,
|
|
40
|
+
primary,
|
|
41
|
+
...input.fields.map((field) => {
|
|
42
|
+
const label = normalizeText(field.label);
|
|
43
|
+
const value = normalizeText(field.value);
|
|
44
|
+
return label && value ? `${label}: ${value}` : '';
|
|
45
|
+
}),
|
|
46
|
+
]
|
|
47
|
+
.filter(Boolean)
|
|
48
|
+
.join('\n');
|
|
49
|
+
const compactDetails = normalizeText(input.fallbackText);
|
|
50
|
+
const compactDetailsBlock =
|
|
51
|
+
!detailsTableBlock && compactDetails
|
|
52
|
+
? {
|
|
53
|
+
type: 'section',
|
|
54
|
+
text: {
|
|
55
|
+
type: 'mrkdwn',
|
|
56
|
+
text: compactDetails,
|
|
57
|
+
},
|
|
58
|
+
}
|
|
59
|
+
: null;
|
|
60
|
+
const showHeader = input.showHeader ?? true;
|
|
61
|
+
const footerText = normalizeText(input.footerText);
|
|
62
|
+
const headerBlock = {
|
|
63
|
+
type: 'section',
|
|
64
|
+
text: {
|
|
65
|
+
type: 'mrkdwn',
|
|
66
|
+
text: `${title}\n*${primary}*`,
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
return {
|
|
71
|
+
text,
|
|
72
|
+
data: text,
|
|
73
|
+
source: input.source,
|
|
74
|
+
requestedAt: input.requestedAt ?? new Date().toISOString(),
|
|
75
|
+
...(input.extra ?? {}),
|
|
76
|
+
blocks: [
|
|
77
|
+
{ type: 'divider' },
|
|
78
|
+
...(showHeader ? [headerBlock] : []),
|
|
79
|
+
...(compactDetailsBlock ? [compactDetailsBlock] : []),
|
|
80
|
+
...(detailsTableBlock ? [detailsTableBlock] : []),
|
|
81
|
+
...(footerText
|
|
82
|
+
? [
|
|
83
|
+
{
|
|
84
|
+
type: 'context',
|
|
85
|
+
elements: [
|
|
86
|
+
{
|
|
87
|
+
type: 'mrkdwn',
|
|
88
|
+
text: footerText,
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
},
|
|
92
|
+
]
|
|
93
|
+
: []),
|
|
94
|
+
],
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function buildSlackTableBlock(fields: SlackField[]) {
|
|
99
|
+
const rows = fields
|
|
100
|
+
.map((field) => ({
|
|
101
|
+
label: normalizeText(field.label),
|
|
102
|
+
value: normalizeText(field.value),
|
|
103
|
+
}))
|
|
104
|
+
.filter((field) => Boolean(field.label) && Boolean(field.value))
|
|
105
|
+
.slice(0, 20);
|
|
106
|
+
|
|
107
|
+
if (rows.length === 0) return null;
|
|
108
|
+
|
|
109
|
+
return {
|
|
110
|
+
type: 'table',
|
|
111
|
+
rows: [
|
|
112
|
+
[buildSlackTableCell('Field', true), buildSlackTableCell('Value', true)],
|
|
113
|
+
...rows.map((row) => [
|
|
114
|
+
buildSlackTableCell(row.label, false),
|
|
115
|
+
buildSlackTableCell(row.value, false),
|
|
116
|
+
]),
|
|
117
|
+
],
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function buildSlackTableCell(text: string, bold: boolean) {
|
|
122
|
+
return {
|
|
123
|
+
type: 'rich_text',
|
|
124
|
+
elements: [
|
|
125
|
+
{
|
|
126
|
+
type: 'rich_text_section',
|
|
127
|
+
elements: [
|
|
128
|
+
bold
|
|
129
|
+
? { type: 'text', text, style: { bold: true } }
|
|
130
|
+
: { type: 'text', text },
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
function normalizeText(value: unknown): string {
|
|
138
|
+
if (value === null || value === undefined) return '';
|
|
139
|
+
return String(value).trim();
|
|
140
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { removeHttpHeadersFromSlackPayload } from '../security/slack-sanitize';
|
|
2
|
+
|
|
3
|
+
type SlackChatResponse = {
|
|
4
|
+
ok: boolean;
|
|
5
|
+
error?: string;
|
|
6
|
+
channel?: string;
|
|
7
|
+
ts?: string;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export type SlackMessageOptions = {
|
|
11
|
+
threadTs?: string;
|
|
12
|
+
blocks?: Array<Record<string, unknown>>;
|
|
13
|
+
unfurlLinks?: boolean;
|
|
14
|
+
unfurlMedia?: boolean;
|
|
15
|
+
username?: string;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
async function postSlackMessage(
|
|
19
|
+
token: string,
|
|
20
|
+
channelId: string,
|
|
21
|
+
text: string,
|
|
22
|
+
options?: SlackMessageOptions,
|
|
23
|
+
): Promise<SlackChatResponse> {
|
|
24
|
+
const sanitizedText = removeHttpHeadersFromSlackPayload(text);
|
|
25
|
+
const sanitizedBlocks = options?.blocks
|
|
26
|
+
? (removeHttpHeadersFromSlackPayload(options.blocks) as Array<
|
|
27
|
+
Record<string, unknown>
|
|
28
|
+
>)
|
|
29
|
+
: undefined;
|
|
30
|
+
const res = await fetch('https://slack.com/api/chat.postMessage', {
|
|
31
|
+
method: 'POST',
|
|
32
|
+
headers: {
|
|
33
|
+
Authorization: `Bearer ${token}`,
|
|
34
|
+
'Content-Type': 'application/json',
|
|
35
|
+
},
|
|
36
|
+
body: JSON.stringify({
|
|
37
|
+
channel: channelId,
|
|
38
|
+
text: typeof sanitizedText === 'string' ? sanitizedText : text,
|
|
39
|
+
unfurl_links: options?.unfurlLinks ?? false,
|
|
40
|
+
unfurl_media: options?.unfurlMedia ?? false,
|
|
41
|
+
...(options?.threadTs ? { thread_ts: options.threadTs } : {}),
|
|
42
|
+
...(options?.username ? { username: options.username } : {}),
|
|
43
|
+
...(sanitizedBlocks ? { blocks: sanitizedBlocks } : {}),
|
|
44
|
+
}),
|
|
45
|
+
});
|
|
46
|
+
const data = (await res.json()) as SlackChatResponse;
|
|
47
|
+
if (!data.ok) {
|
|
48
|
+
throw new Error(
|
|
49
|
+
`Slack chat.postMessage failed: ${data.error ?? 'unknown'}`,
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
return data;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export async function postMessageToSlack(
|
|
56
|
+
token: string,
|
|
57
|
+
channelId: string,
|
|
58
|
+
text: string,
|
|
59
|
+
options?: SlackMessageOptions,
|
|
60
|
+
): Promise<void> {
|
|
61
|
+
await postSlackMessage(token, channelId, text, options);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export async function postMessageToSlackWithResult(
|
|
65
|
+
token: string,
|
|
66
|
+
channelId: string,
|
|
67
|
+
text: string,
|
|
68
|
+
options?: SlackMessageOptions,
|
|
69
|
+
): Promise<{ channelId: string; ts: string }> {
|
|
70
|
+
const data = await postSlackMessage(token, channelId, text, options);
|
|
71
|
+
if (!data.channel || !data.ts) {
|
|
72
|
+
throw new Error('Slack chat.postMessage returned no message timestamp.');
|
|
73
|
+
}
|
|
74
|
+
return { channelId: data.channel, ts: data.ts };
|
|
75
|
+
}
|
|
@@ -59,3 +59,9 @@ export function isTestOnlyRuntime(): boolean {
|
|
|
59
59
|
if (process.env.VERCEL_ENV === 'production') return false;
|
|
60
60
|
return process.env.VERCEL_ENV === 'preview' || getRuntimeEnv() !== 'prod';
|
|
61
61
|
}
|
|
62
|
+
|
|
63
|
+
export function shouldEnableMarketingIntegrations(): boolean {
|
|
64
|
+
return getRuntimeEnv() === 'prod';
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export { isBuildContext } from './observability/build-context';
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const HARDCODED_BLACKLISTED_EMAILS = [] as const;
|
|
2
|
+
const EMAIL_BLACKLIST_ENV_VAR = 'DEEPLINE_EMAIL_BLACKLIST';
|
|
3
|
+
|
|
4
|
+
export function normalizeEmailAddress(email?: string | null): string | null {
|
|
5
|
+
const normalized = String(email ?? '')
|
|
6
|
+
.trim()
|
|
7
|
+
.toLowerCase();
|
|
8
|
+
return normalized.length > 0 ? normalized : null;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function getBlacklistedEmails(): Set<string> {
|
|
12
|
+
const emails = new Set<string>();
|
|
13
|
+
|
|
14
|
+
for (const email of HARDCODED_BLACKLISTED_EMAILS) {
|
|
15
|
+
const normalized = normalizeEmailAddress(email);
|
|
16
|
+
if (normalized) {
|
|
17
|
+
emails.add(normalized);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const rawEnvValue = process.env[EMAIL_BLACKLIST_ENV_VAR];
|
|
22
|
+
if (!rawEnvValue) {
|
|
23
|
+
return emails;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
for (const part of rawEnvValue.split(/[,\n]/)) {
|
|
27
|
+
const normalized = normalizeEmailAddress(part);
|
|
28
|
+
if (normalized) {
|
|
29
|
+
emails.add(normalized);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return emails;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export function isBlacklistedEmail(email?: string | null): boolean {
|
|
37
|
+
const normalized = normalizeEmailAddress(email);
|
|
38
|
+
if (!normalized) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
return getBlacklistedEmails().has(normalized);
|
|
42
|
+
}
|
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Guards for env-derived secrets that are sent as HTTP header values.
|
|
3
3
|
*
|
|
4
|
-
* fetch() validates header values and
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* fetch() validates header values and throws an error that can echo the raw
|
|
5
|
+
* value when it contains a forbidden byte. Validate at the env-read site so
|
|
6
|
+
* secrets never leak into error envelopes or logs.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
// The set fetch() accepts for header values: HTAB, printable ASCII, and
|
|
10
|
+
// obs-text (0x80-0xFF). NUL/CR/LF and other C0 controls are rejected by the
|
|
11
|
+
// runtime, and characters above U+00FF fail ByteString conversion outright.
|
|
9
12
|
const HEADER_UNSAFE_CHAR_PATTERN = /[^\t\u0020-\u007e\u0080-\u00ff]/;
|
|
10
13
|
|
|
11
14
|
export function isHeaderSafeValue(value: string): boolean {
|
|
12
15
|
return !HEADER_UNSAFE_CHAR_PATTERN.test(value);
|
|
13
16
|
}
|
|
14
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Returns `value` unchanged when it is safe to send as an HTTP header value.
|
|
20
|
+
* Otherwise throws an error that names `envVar` and never echoes the value.
|
|
21
|
+
*/
|
|
15
22
|
export function assertHeaderSafeEnvValue(input: {
|
|
16
23
|
envVar: string;
|
|
17
24
|
value: string;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
const HTTP_HEADER_CONTAINER_KEYS = new Set([
|
|
2
|
+
'headers',
|
|
3
|
+
'requestheaders',
|
|
4
|
+
'request_headers',
|
|
5
|
+
'responseheaders',
|
|
6
|
+
'response_headers',
|
|
7
|
+
]);
|
|
8
|
+
|
|
9
|
+
function isRecord(value: unknown): value is Record<string, unknown> {
|
|
10
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function isHttpHeaderContainerKey(key: string): boolean {
|
|
14
|
+
return HTTP_HEADER_CONTAINER_KEYS.has(key.trim().toLowerCase());
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function findJsonValueEnd(text: string, valueStart: number): number {
|
|
18
|
+
let index = valueStart;
|
|
19
|
+
while (index < text.length && /\s/.test(text[index] ?? '')) index += 1;
|
|
20
|
+
const first = text[index];
|
|
21
|
+
if (first !== '{' && first !== '[') return valueStart;
|
|
22
|
+
|
|
23
|
+
const stack: string[] = [first === '{' ? '}' : ']'];
|
|
24
|
+
let inString = false;
|
|
25
|
+
let escaped = false;
|
|
26
|
+
for (let cursor = index + 1; cursor < text.length; cursor += 1) {
|
|
27
|
+
const char = text[cursor];
|
|
28
|
+
if (inString) {
|
|
29
|
+
if (escaped) {
|
|
30
|
+
escaped = false;
|
|
31
|
+
} else if (char === '\\') {
|
|
32
|
+
escaped = true;
|
|
33
|
+
} else if (char === '"') {
|
|
34
|
+
inString = false;
|
|
35
|
+
}
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (char === '"') {
|
|
40
|
+
inString = true;
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
if (char === '{') {
|
|
44
|
+
stack.push('}');
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
if (char === '[') {
|
|
48
|
+
stack.push(']');
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (char === stack[stack.length - 1]) {
|
|
52
|
+
stack.pop();
|
|
53
|
+
if (stack.length === 0) return cursor + 1;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return valueStart;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function removeEmbeddedJsonHeaderContainers(text: string): string {
|
|
60
|
+
let next = text;
|
|
61
|
+
let changed = true;
|
|
62
|
+
|
|
63
|
+
while (changed) {
|
|
64
|
+
changed = false;
|
|
65
|
+
const keyPattern = /"([^"]+)"\s*:\s*/g;
|
|
66
|
+
let match: RegExpExecArray | null;
|
|
67
|
+
while ((match = keyPattern.exec(next)) !== null) {
|
|
68
|
+
const key = match[1] ?? '';
|
|
69
|
+
if (!isHttpHeaderContainerKey(key)) continue;
|
|
70
|
+
|
|
71
|
+
const valueEnd = findJsonValueEnd(next, keyPattern.lastIndex);
|
|
72
|
+
if (valueEnd <= keyPattern.lastIndex) continue;
|
|
73
|
+
|
|
74
|
+
let removeStart = match.index;
|
|
75
|
+
let removeEnd = valueEnd;
|
|
76
|
+
while (removeEnd < next.length && /\s/.test(next[removeEnd] ?? '')) {
|
|
77
|
+
removeEnd += 1;
|
|
78
|
+
}
|
|
79
|
+
if (next[removeEnd] === ',') {
|
|
80
|
+
removeEnd += 1;
|
|
81
|
+
} else {
|
|
82
|
+
let cursor = removeStart - 1;
|
|
83
|
+
while (cursor >= 0 && /\s/.test(next[cursor] ?? '')) cursor -= 1;
|
|
84
|
+
if (next[cursor] === ',') {
|
|
85
|
+
removeStart = cursor;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
next = `${next.slice(0, removeStart)}${next.slice(removeEnd)}`;
|
|
90
|
+
changed = true;
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return next;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function sanitizeJsonStringForSlack(value: string): string {
|
|
99
|
+
const text = value.trim();
|
|
100
|
+
if (!text) return value;
|
|
101
|
+
const first = text[0];
|
|
102
|
+
if (first !== '{' && first !== '[') {
|
|
103
|
+
return removeEmbeddedJsonHeaderContainers(value);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
try {
|
|
107
|
+
const parsed = JSON.parse(text) as unknown;
|
|
108
|
+
return JSON.stringify(removeHttpHeadersFromSlackPayload(parsed));
|
|
109
|
+
} catch {
|
|
110
|
+
return removeEmbeddedJsonHeaderContainers(value);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export function removeHttpHeadersFromSlackPayload(value: unknown): unknown {
|
|
115
|
+
if (typeof value === 'string') {
|
|
116
|
+
return sanitizeJsonStringForSlack(value);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (Array.isArray(value)) {
|
|
120
|
+
return value.map((item) => removeHttpHeadersFromSlackPayload(item));
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (!isRecord(value)) {
|
|
124
|
+
return value;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const sanitized: Record<string, unknown> = {};
|
|
128
|
+
for (const [key, child] of Object.entries(value)) {
|
|
129
|
+
if (isHttpHeaderContainerKey(key)) continue;
|
|
130
|
+
sanitized[key] = removeHttpHeadersFromSlackPayload(child);
|
|
131
|
+
}
|
|
132
|
+
return sanitized;
|
|
133
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/// <reference path="./text-imports.d.ts" />
|
|
2
|
+
declare const DEEPLINE_GTM_SKILL = "/deepline-gtm";
|
|
3
|
+
/**
|
|
4
|
+
* The starter prompts, and the only place they are written down.
|
|
5
|
+
*
|
|
6
|
+
* Every surface that offers a first task renders from this list: `deepline
|
|
7
|
+
* setup`, `deepline quickstart`, the dashboard first-run cards, the install
|
|
8
|
+
* pages, and the shell installers. They used to disagree — the CLI and docs
|
|
9
|
+
* offered one set while the dashboard offered another, so the quickstart's
|
|
10
|
+
* promise of "the same starter workflows offered after setup" was false for
|
|
11
|
+
* anyone who landed on the dashboard first.
|
|
12
|
+
*
|
|
13
|
+
* Surfaces that cannot import this module (the Mintlify docs, the Python
|
|
14
|
+
* onboard, the shell installer heredocs) are checked against it by
|
|
15
|
+
* `scripts/check-starter-prompts.ts`.
|
|
16
|
+
*/
|
|
17
|
+
declare const DEEPLINE_GTM_STARTER_PROMPTS: readonly [{
|
|
18
|
+
readonly id: "competitor-tracking";
|
|
19
|
+
readonly title: "Competitor tracking";
|
|
20
|
+
readonly prompt: "/deepline-gtm Track competitors of my company. Use my business email domain when available; otherwise ask for my company name.";
|
|
21
|
+
}, {
|
|
22
|
+
readonly id: "contact-email-enrichment";
|
|
23
|
+
readonly title: "Contact email enrichment";
|
|
24
|
+
readonly prompt: "/deepline-gtm Find 10 CTOs at B2B SaaS companies and enrich them with email addresses.";
|
|
25
|
+
}, {
|
|
26
|
+
readonly id: "decision-maker-discovery";
|
|
27
|
+
readonly title: "Decision-maker discovery";
|
|
28
|
+
readonly prompt: "/deepline-gtm Find the best people to contact at these companies and verify their email addresses.";
|
|
29
|
+
}];
|
|
30
|
+
/** The first starter prompt, for surfaces that show exactly one example. */
|
|
31
|
+
declare const DEEPLINE_GTM_PRIMARY_STARTER_PROMPT: "/deepline-gtm Track competitors of my company. Use my business email domain when available; otherwise ask for my company name.";
|
|
32
|
+
declare const DEEPLINE_GTM_HANDOFF_QUESTION = "Would you like to try one of these examples, or tell me your own business problem?";
|
|
33
|
+
declare function deeplineGtmGettingStartedPayload(): {
|
|
34
|
+
skill: string;
|
|
35
|
+
examples: readonly [{
|
|
36
|
+
readonly id: "competitor-tracking";
|
|
37
|
+
readonly title: "Competitor tracking";
|
|
38
|
+
readonly prompt: "/deepline-gtm Track competitors of my company. Use my business email domain when available; otherwise ask for my company name.";
|
|
39
|
+
}, {
|
|
40
|
+
readonly id: "contact-email-enrichment";
|
|
41
|
+
readonly title: "Contact email enrichment";
|
|
42
|
+
readonly prompt: "/deepline-gtm Find 10 CTOs at B2B SaaS companies and enrich them with email addresses.";
|
|
43
|
+
}, {
|
|
44
|
+
readonly id: "decision-maker-discovery";
|
|
45
|
+
readonly title: "Decision-maker discovery";
|
|
46
|
+
readonly prompt: "/deepline-gtm Find the best people to contact at these companies and verify their email addresses.";
|
|
47
|
+
}];
|
|
48
|
+
question: string;
|
|
49
|
+
customProblemBehavior: string;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export { DEEPLINE_GTM_HANDOFF_QUESTION, DEEPLINE_GTM_PRIMARY_STARTER_PROMPT, DEEPLINE_GTM_SKILL, DEEPLINE_GTM_STARTER_PROMPTS, deeplineGtmGettingStartedPayload };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/// <reference path="./text-imports.d.ts" />
|
|
2
|
+
declare const DEEPLINE_GTM_SKILL = "/deepline-gtm";
|
|
3
|
+
/**
|
|
4
|
+
* The starter prompts, and the only place they are written down.
|
|
5
|
+
*
|
|
6
|
+
* Every surface that offers a first task renders from this list: `deepline
|
|
7
|
+
* setup`, `deepline quickstart`, the dashboard first-run cards, the install
|
|
8
|
+
* pages, and the shell installers. They used to disagree — the CLI and docs
|
|
9
|
+
* offered one set while the dashboard offered another, so the quickstart's
|
|
10
|
+
* promise of "the same starter workflows offered after setup" was false for
|
|
11
|
+
* anyone who landed on the dashboard first.
|
|
12
|
+
*
|
|
13
|
+
* Surfaces that cannot import this module (the Mintlify docs, the Python
|
|
14
|
+
* onboard, the shell installer heredocs) are checked against it by
|
|
15
|
+
* `scripts/check-starter-prompts.ts`.
|
|
16
|
+
*/
|
|
17
|
+
declare const DEEPLINE_GTM_STARTER_PROMPTS: readonly [{
|
|
18
|
+
readonly id: "competitor-tracking";
|
|
19
|
+
readonly title: "Competitor tracking";
|
|
20
|
+
readonly prompt: "/deepline-gtm Track competitors of my company. Use my business email domain when available; otherwise ask for my company name.";
|
|
21
|
+
}, {
|
|
22
|
+
readonly id: "contact-email-enrichment";
|
|
23
|
+
readonly title: "Contact email enrichment";
|
|
24
|
+
readonly prompt: "/deepline-gtm Find 10 CTOs at B2B SaaS companies and enrich them with email addresses.";
|
|
25
|
+
}, {
|
|
26
|
+
readonly id: "decision-maker-discovery";
|
|
27
|
+
readonly title: "Decision-maker discovery";
|
|
28
|
+
readonly prompt: "/deepline-gtm Find the best people to contact at these companies and verify their email addresses.";
|
|
29
|
+
}];
|
|
30
|
+
/** The first starter prompt, for surfaces that show exactly one example. */
|
|
31
|
+
declare const DEEPLINE_GTM_PRIMARY_STARTER_PROMPT: "/deepline-gtm Track competitors of my company. Use my business email domain when available; otherwise ask for my company name.";
|
|
32
|
+
declare const DEEPLINE_GTM_HANDOFF_QUESTION = "Would you like to try one of these examples, or tell me your own business problem?";
|
|
33
|
+
declare function deeplineGtmGettingStartedPayload(): {
|
|
34
|
+
skill: string;
|
|
35
|
+
examples: readonly [{
|
|
36
|
+
readonly id: "competitor-tracking";
|
|
37
|
+
readonly title: "Competitor tracking";
|
|
38
|
+
readonly prompt: "/deepline-gtm Track competitors of my company. Use my business email domain when available; otherwise ask for my company name.";
|
|
39
|
+
}, {
|
|
40
|
+
readonly id: "contact-email-enrichment";
|
|
41
|
+
readonly title: "Contact email enrichment";
|
|
42
|
+
readonly prompt: "/deepline-gtm Find 10 CTOs at B2B SaaS companies and enrich them with email addresses.";
|
|
43
|
+
}, {
|
|
44
|
+
readonly id: "decision-maker-discovery";
|
|
45
|
+
readonly title: "Decision-maker discovery";
|
|
46
|
+
readonly prompt: "/deepline-gtm Find the best people to contact at these companies and verify their email addresses.";
|
|
47
|
+
}];
|
|
48
|
+
question: string;
|
|
49
|
+
customProblemBehavior: string;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export { DEEPLINE_GTM_HANDOFF_QUESTION, DEEPLINE_GTM_PRIMARY_STARTER_PROMPT, DEEPLINE_GTM_SKILL, DEEPLINE_GTM_STARTER_PROMPTS, deeplineGtmGettingStartedPayload };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/cli/getting-started.ts
|
|
21
|
+
var getting_started_exports = {};
|
|
22
|
+
__export(getting_started_exports, {
|
|
23
|
+
DEEPLINE_GTM_HANDOFF_QUESTION: () => DEEPLINE_GTM_HANDOFF_QUESTION,
|
|
24
|
+
DEEPLINE_GTM_PRIMARY_STARTER_PROMPT: () => DEEPLINE_GTM_PRIMARY_STARTER_PROMPT,
|
|
25
|
+
DEEPLINE_GTM_SKILL: () => DEEPLINE_GTM_SKILL,
|
|
26
|
+
DEEPLINE_GTM_STARTER_PROMPTS: () => DEEPLINE_GTM_STARTER_PROMPTS,
|
|
27
|
+
deeplineGtmGettingStartedPayload: () => deeplineGtmGettingStartedPayload
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(getting_started_exports);
|
|
30
|
+
var DEEPLINE_GTM_SKILL = "/deepline-gtm";
|
|
31
|
+
var DEEPLINE_GTM_STARTER_PROMPTS = [
|
|
32
|
+
{
|
|
33
|
+
id: "competitor-tracking",
|
|
34
|
+
title: "Competitor tracking",
|
|
35
|
+
prompt: "/deepline-gtm Track competitors of my company. Use my business email domain when available; otherwise ask for my company name."
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
id: "contact-email-enrichment",
|
|
39
|
+
title: "Contact email enrichment",
|
|
40
|
+
prompt: "/deepline-gtm Find 10 CTOs at B2B SaaS companies and enrich them with email addresses."
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
id: "decision-maker-discovery",
|
|
44
|
+
title: "Decision-maker discovery",
|
|
45
|
+
prompt: "/deepline-gtm Find the best people to contact at these companies and verify their email addresses."
|
|
46
|
+
}
|
|
47
|
+
];
|
|
48
|
+
var DEEPLINE_GTM_PRIMARY_STARTER_PROMPT = DEEPLINE_GTM_STARTER_PROMPTS[0].prompt;
|
|
49
|
+
var DEEPLINE_GTM_HANDOFF_QUESTION = "Would you like to try one of these examples, or tell me your own business problem?";
|
|
50
|
+
function deeplineGtmGettingStartedPayload() {
|
|
51
|
+
return {
|
|
52
|
+
skill: DEEPLINE_GTM_SKILL,
|
|
53
|
+
examples: DEEPLINE_GTM_STARTER_PROMPTS,
|
|
54
|
+
question: DEEPLINE_GTM_HANDOFF_QUESTION,
|
|
55
|
+
customProblemBehavior: "Turn the business problem into one exact /deepline-gtm prompt, show that reusable prompt, then execute it without asking the user to paste it again."
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
59
|
+
0 && (module.exports = {
|
|
60
|
+
DEEPLINE_GTM_HANDOFF_QUESTION,
|
|
61
|
+
DEEPLINE_GTM_PRIMARY_STARTER_PROMPT,
|
|
62
|
+
DEEPLINE_GTM_SKILL,
|
|
63
|
+
DEEPLINE_GTM_STARTER_PROMPTS,
|
|
64
|
+
deeplineGtmGettingStartedPayload
|
|
65
|
+
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// src/cli/getting-started.ts
|
|
2
|
+
var DEEPLINE_GTM_SKILL = "/deepline-gtm";
|
|
3
|
+
var DEEPLINE_GTM_STARTER_PROMPTS = [
|
|
4
|
+
{
|
|
5
|
+
id: "competitor-tracking",
|
|
6
|
+
title: "Competitor tracking",
|
|
7
|
+
prompt: "/deepline-gtm Track competitors of my company. Use my business email domain when available; otherwise ask for my company name."
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
id: "contact-email-enrichment",
|
|
11
|
+
title: "Contact email enrichment",
|
|
12
|
+
prompt: "/deepline-gtm Find 10 CTOs at B2B SaaS companies and enrich them with email addresses."
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
id: "decision-maker-discovery",
|
|
16
|
+
title: "Decision-maker discovery",
|
|
17
|
+
prompt: "/deepline-gtm Find the best people to contact at these companies and verify their email addresses."
|
|
18
|
+
}
|
|
19
|
+
];
|
|
20
|
+
var DEEPLINE_GTM_PRIMARY_STARTER_PROMPT = DEEPLINE_GTM_STARTER_PROMPTS[0].prompt;
|
|
21
|
+
var DEEPLINE_GTM_HANDOFF_QUESTION = "Would you like to try one of these examples, or tell me your own business problem?";
|
|
22
|
+
function deeplineGtmGettingStartedPayload() {
|
|
23
|
+
return {
|
|
24
|
+
skill: DEEPLINE_GTM_SKILL,
|
|
25
|
+
examples: DEEPLINE_GTM_STARTER_PROMPTS,
|
|
26
|
+
question: DEEPLINE_GTM_HANDOFF_QUESTION,
|
|
27
|
+
customProblemBehavior: "Turn the business problem into one exact /deepline-gtm prompt, show that reusable prompt, then execute it without asking the user to paste it again."
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export {
|
|
31
|
+
DEEPLINE_GTM_HANDOFF_QUESTION,
|
|
32
|
+
DEEPLINE_GTM_PRIMARY_STARTER_PROMPT,
|
|
33
|
+
DEEPLINE_GTM_SKILL,
|
|
34
|
+
DEEPLINE_GTM_STARTER_PROMPTS,
|
|
35
|
+
deeplineGtmGettingStartedPayload
|
|
36
|
+
};
|
package/dist/cli/index.d.mts
CHANGED
|
@@ -1,2 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/// <reference path="./text-imports.d.ts" />
|
|
3
|
+
/**
|
|
4
|
+
* Run the CLI once.
|
|
5
|
+
*
|
|
6
|
+
* The development launcher imports this module directly and awaits this
|
|
7
|
+
* function. The published SDK bundle continues to invoke it below.
|
|
8
|
+
*/
|
|
9
|
+
declare function main(): Promise<void>;
|
|
10
|
+
|
|
11
|
+
export { main };
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -1,2 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/// <reference path="./text-imports.d.ts" />
|
|
3
|
+
/**
|
|
4
|
+
* Run the CLI once.
|
|
5
|
+
*
|
|
6
|
+
* The development launcher imports this module directly and awaits this
|
|
7
|
+
* function. The published SDK bundle continues to invoke it below.
|
|
8
|
+
*/
|
|
9
|
+
declare function main(): Promise<void>;
|
|
10
|
+
|
|
11
|
+
export { main };
|