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.
Files changed (280) hide show
  1. package/contracts/install-commands.json +29 -0
  2. package/dist/bundling-sources/sdk/src/client.ts +652 -39
  3. package/dist/bundling-sources/sdk/src/config.ts +77 -0
  4. package/dist/bundling-sources/sdk/src/http.ts +76 -30
  5. package/dist/bundling-sources/sdk/src/index.ts +10 -0
  6. package/dist/bundling-sources/sdk/src/monitor-fleet-contract.ts +1 -1
  7. package/dist/bundling-sources/sdk/src/pagination.ts +25 -0
  8. package/dist/bundling-sources/sdk/src/play.ts +15 -1
  9. package/dist/bundling-sources/sdk/src/plays/bundle-play-file.ts +3 -3
  10. package/dist/bundling-sources/sdk/src/release.ts +16 -9
  11. package/dist/bundling-sources/sdk/src/types.ts +106 -4
  12. package/dist/bundling-sources/shared_libs/integration-contracts/AGENTS.md +9 -0
  13. package/dist/bundling-sources/shared_libs/integration-contracts/README.md +3 -0
  14. package/dist/bundling-sources/shared_libs/integration-contracts/index.ts +2 -0
  15. package/dist/bundling-sources/shared_libs/monitors/analytics-install-guides.ts +77 -0
  16. package/dist/bundling-sources/shared_libs/monitors/analytics-public.ts +10 -0
  17. package/dist/bundling-sources/shared_libs/monitors/billing/charges.ts +125 -0
  18. package/dist/bundling-sources/shared_libs/monitors/billing/policy-builders.ts +686 -0
  19. package/dist/bundling-sources/shared_libs/monitors/billing/pricing.ts +54 -0
  20. package/dist/bundling-sources/shared_libs/monitors/billing/public-pricing.ts +72 -0
  21. package/dist/bundling-sources/shared_libs/monitors/billing/session.ts +45 -0
  22. package/dist/bundling-sources/shared_libs/monitors/billing/state.ts +454 -0
  23. package/dist/bundling-sources/shared_libs/monitors/billing/tamradar.ts +260 -0
  24. package/dist/bundling-sources/shared_libs/monitors/billing/types.ts +215 -0
  25. package/dist/bundling-sources/shared_libs/monitors/callback-security.ts +333 -0
  26. package/dist/bundling-sources/shared_libs/monitors/cursor-page.ts +42 -0
  27. package/dist/bundling-sources/shared_libs/monitors/deactivation-reasons.ts +16 -0
  28. package/dist/bundling-sources/shared_libs/monitors/framework-managed-payload-fields.ts +71 -0
  29. package/dist/bundling-sources/shared_libs/monitors/generated/provider-monitor-callback-admission-targets.ts +16 -0
  30. package/dist/bundling-sources/shared_libs/monitors/http-error-response.ts +270 -0
  31. package/dist/bundling-sources/shared_libs/monitors/inbound-publish-key.ts +39 -0
  32. package/dist/bundling-sources/shared_libs/monitors/inbound-queue.ts +82 -0
  33. package/dist/bundling-sources/shared_libs/monitors/inventory-reconciliation.ts +59 -0
  34. package/dist/bundling-sources/shared_libs/monitors/lifecycle-notifications.ts +471 -0
  35. package/dist/bundling-sources/shared_libs/monitors/org-monitor-limits.ts +1 -1
  36. package/dist/bundling-sources/shared_libs/monitors/package.json +36 -0
  37. package/dist/bundling-sources/shared_libs/monitors/provider-callback-verification.ts +1125 -0
  38. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-batch-operation.ts +305 -0
  39. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-capability.ts +964 -0
  40. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-consumer-health.ts +56 -0
  41. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-errors.ts +131 -0
  42. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-identity-claims.ts +535 -0
  43. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-legacy-aliases.ts +16 -0
  44. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-priority-execution.ts +56 -0
  45. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-public-aliases.ts +28 -0
  46. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-runtime-read-eligibility.ts +38 -0
  47. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-state.ts +122 -0
  48. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-status.ts +10 -0
  49. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-upstream-identity.ts +112 -0
  50. package/dist/bundling-sources/shared_libs/monitors/provider-webhook-monitor-runtime.ts +300 -0
  51. package/dist/bundling-sources/shared_libs/monitors/quickstart-prompts.ts +22 -0
  52. package/dist/bundling-sources/shared_libs/monitors/signal-radars/inbound-dead-letter.ts +245 -0
  53. package/dist/bundling-sources/shared_libs/monitors/signal-radars/inbound-message.ts +38 -0
  54. package/dist/bundling-sources/shared_libs/monitors/signal-radars/inbound-queue-ack-probe.ts +94 -0
  55. package/dist/bundling-sources/shared_libs/monitors/signal-radars/inbound-queue-delivery.ts +60 -0
  56. package/dist/bundling-sources/shared_libs/monitors/signal-radars/inbound-queue.ts +60 -0
  57. package/dist/bundling-sources/shared_libs/monitors/snitcher-install-validation.ts +93 -0
  58. package/dist/bundling-sources/shared_libs/monitors/snitcher-ip2company.ts +332 -0
  59. package/dist/bundling-sources/shared_libs/monitors/snitcher-radar.ts +221 -0
  60. package/dist/bundling-sources/shared_libs/monitors/starter-templates.ts +105 -0
  61. package/dist/bundling-sources/shared_libs/monitors/tracking-provider-guidance.ts +73 -0
  62. package/dist/bundling-sources/shared_libs/monitors/tracking-provider-integrations.ts +81 -0
  63. package/dist/bundling-sources/shared_libs/monitors/tsconfig.json +10 -0
  64. package/dist/bundling-sources/shared_libs/observability/build-context.ts +13 -0
  65. package/dist/bundling-sources/shared_libs/observability/log-metadata.ts +160 -0
  66. package/dist/bundling-sources/shared_libs/observability/request-context.ts +68 -0
  67. package/dist/bundling-sources/shared_libs/observability/scheduled-jobs.json +654 -0
  68. package/dist/bundling-sources/shared_libs/observability/scheduled-work-manual.ts +35 -0
  69. package/dist/bundling-sources/shared_libs/observability/scheduled-work.ts +5 -0
  70. package/dist/bundling-sources/shared_libs/play-data-plane/neon-constants.ts +9 -0
  71. package/dist/bundling-sources/shared_libs/play-data-plane/r2.ts +272 -0
  72. package/dist/bundling-sources/shared_libs/play-runtime/activity-observation.ts +6 -11
  73. package/dist/bundling-sources/shared_libs/play-runtime/app-runtime-api.ts +135 -12
  74. package/dist/bundling-sources/shared_libs/play-runtime/async-operation.ts +66 -1
  75. package/dist/bundling-sources/shared_libs/play-runtime/async-play-invocation.ts +77 -0
  76. package/dist/bundling-sources/shared_libs/play-runtime/bounceban-batching.ts +137 -0
  77. package/dist/bundling-sources/shared_libs/play-runtime/checkpoint-boundaries.ts +70 -0
  78. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +1159 -166
  79. package/dist/bundling-sources/shared_libs/play-runtime/coordinator-headers.ts +1 -32
  80. package/dist/bundling-sources/shared_libs/play-runtime/ctx-types.ts +103 -0
  81. package/dist/bundling-sources/shared_libs/play-runtime/daytona-payload-contract.ts +68 -0
  82. package/dist/bundling-sources/shared_libs/play-runtime/daytona-sandbox-janitor.ts +103 -0
  83. package/dist/bundling-sources/shared_libs/play-runtime/daytona-sandbox-reaper.ts +725 -0
  84. package/dist/bundling-sources/shared_libs/play-runtime/default-batch-strategies.ts +20 -1
  85. package/dist/bundling-sources/shared_libs/play-runtime/durable-call-cache.ts +29 -0
  86. package/dist/bundling-sources/shared_libs/play-runtime/execution-capabilities.ts +29 -0
  87. package/dist/bundling-sources/shared_libs/play-runtime/execution-gateway-invocation-fence.ts +442 -0
  88. package/dist/bundling-sources/shared_libs/play-runtime/execution-protocol.ts +7 -1
  89. package/dist/bundling-sources/shared_libs/play-runtime/fixture-behavior.ts +18 -0
  90. package/dist/bundling-sources/shared_libs/play-runtime/governor/app-runtime-rate-state-backend.ts +9 -0
  91. package/dist/bundling-sources/shared_libs/play-runtime/governor/policy.ts +1 -1
  92. package/dist/bundling-sources/shared_libs/play-runtime/governor/rate-state-backend.ts +1 -1
  93. package/dist/bundling-sources/shared_libs/play-runtime/integration-operation-reader-fence/contracts.ts +66 -0
  94. package/dist/bundling-sources/shared_libs/play-runtime/integration-operation-reader-fence/job.ts +145 -0
  95. package/dist/bundling-sources/shared_libs/play-runtime/integration-operation-reader-fence/ports.ts +21 -0
  96. package/dist/bundling-sources/shared_libs/play-runtime/integration-operation-reader-fence/postgres-store.ts +170 -0
  97. package/dist/bundling-sources/shared_libs/play-runtime/internal-bootstrap-token.ts +1322 -0
  98. package/dist/bundling-sources/shared_libs/play-runtime/internal-step-ids.ts +2 -2
  99. package/dist/bundling-sources/shared_libs/play-runtime/lane-retirement-gate.ts +189 -0
  100. package/dist/bundling-sources/shared_libs/play-runtime/launch-source-policy.ts +112 -0
  101. package/dist/bundling-sources/shared_libs/play-runtime/map-execution-frame.ts +8 -0
  102. package/dist/bundling-sources/shared_libs/play-runtime/perf-trace.ts +127 -0
  103. package/dist/bundling-sources/shared_libs/play-runtime/play-artifact-runtime-contract.ts +5 -0
  104. package/dist/bundling-sources/shared_libs/play-runtime/play-run-recovery-policy.ts +24 -1
  105. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/admission/contracts.ts +56 -0
  106. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/admission/index.ts +13 -0
  107. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/admission/job.ts +41 -0
  108. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/admission/ports.ts +17 -0
  109. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/admission/postgres-adapter.ts +54 -0
  110. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/attempts/contracts.ts +114 -0
  111. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/attempts/engine-suspension.ts +108 -0
  112. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/attempts/index.ts +36 -0
  113. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/attempts/job.ts +97 -0
  114. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/attempts/ports.ts +104 -0
  115. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/attempts/postgres-fence-adapter.ts +263 -0
  116. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/attempts/worker-terminal-projection.ts +64 -0
  117. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/projection/contracts.ts +29 -0
  118. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/projection/gateway-adapter.ts +56 -0
  119. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/projection/index.ts +15 -0
  120. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/projection/job.ts +65 -0
  121. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/projection/ports.ts +17 -0
  122. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/sandbox-cleanup/contracts.ts +42 -0
  123. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/sandbox-cleanup/index.ts +17 -0
  124. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/sandbox-cleanup/job.ts +142 -0
  125. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/sandbox-cleanup/ports.ts +42 -0
  126. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/sandbox-cleanup/postgres-adapter.ts +102 -0
  127. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/contracts.ts +60 -0
  128. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/index.ts +16 -0
  129. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/job.ts +78 -0
  130. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/ports.ts +54 -0
  131. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/postgres-adapter.ts +71 -0
  132. package/dist/bundling-sources/shared_libs/play-runtime/play-runtime-batching-registry.ts +4 -0
  133. package/dist/bundling-sources/shared_libs/play-runtime/play-runtime-semantics.ts +28 -0
  134. package/dist/bundling-sources/shared_libs/play-runtime/protocol.ts +4 -0
  135. package/dist/bundling-sources/shared_libs/play-runtime/receipt-status.ts +5 -8
  136. package/dist/bundling-sources/shared_libs/play-runtime/run-failure.ts +23 -2
  137. package/dist/bundling-sources/shared_libs/play-runtime/run-identity.ts +168 -0
  138. package/dist/bundling-sources/shared_libs/play-runtime/run-snapshot-stream.ts +1 -1
  139. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-lifecycle.ts +90 -13
  140. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-payload-transport.ts +6 -12
  141. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-start-admission.ts +68 -0
  142. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona.ts +21 -0
  143. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/bundle.ts +0 -1
  144. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/runtime-sandbox-reconciliation.ts +14 -43
  145. package/dist/bundling-sources/shared_libs/play-runtime/runtime-api.ts +67 -213
  146. package/dist/bundling-sources/shared_libs/play-runtime/runtime-authority.ts +201 -0
  147. package/dist/bundling-sources/shared_libs/play-runtime/runtime-capacity-policy.ts +20 -0
  148. package/dist/bundling-sources/shared_libs/play-runtime/runtime-contract.ts +6 -0
  149. package/dist/bundling-sources/shared_libs/play-runtime/runtime-env.ts +12 -0
  150. package/dist/bundling-sources/shared_libs/play-runtime/runtime-operation-contract.ts +67 -0
  151. package/dist/bundling-sources/shared_libs/play-runtime/runtime-release-environment.ts +2 -0
  152. package/dist/bundling-sources/shared_libs/play-runtime/runtime-sandbox-contract.ts +68 -0
  153. package/dist/bundling-sources/shared_libs/play-runtime/runtime-scheduler-topology.ts +38 -2
  154. package/dist/bundling-sources/shared_libs/play-runtime/runtime-telemetry.ts +108 -0
  155. package/dist/bundling-sources/shared_libs/play-runtime/sandbox-runs/contract.ts +4 -0
  156. package/dist/bundling-sources/shared_libs/play-runtime/sandbox-runs/runner-backend-adapter.ts +3 -0
  157. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backend.ts +37 -1
  158. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-deadline-reconciliation.ts +88 -0
  159. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-play-deploy-task.ts +124 -0
  160. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-play-run-task.ts +68 -0
  161. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-pool.ts +193 -0
  162. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-queue-lifecycle.ts +269 -0
  163. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-queue-suffix.ts +73 -0
  164. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-runtime-worker.ts +6642 -0
  165. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-shared.ts +897 -0
  166. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-worker-metrics.ts +120 -0
  167. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-worker-required-env.ts +76 -0
  168. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd.ts +476 -0
  169. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/gateway-heavy-request-admission.ts +47 -0
  170. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/gateway-progress-registry.ts +147 -0
  171. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/index.ts +27 -0
  172. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/lazy.ts +50 -0
  173. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/play-run-recovery.ts +98 -0
  174. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-budget-state.ts +260 -0
  175. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-pool.ts +1416 -0
  176. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-progress.ts +1255 -0
  177. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-rate-state.ts +942 -0
  178. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +14636 -0
  179. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/receipt-gateway.ts +888 -0
  180. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-ledger-outbox-recovery.ts +355 -0
  181. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-terminal-transition.ts +46 -0
  182. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runner-push.ts +60 -0
  183. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-api-origin.ts +33 -0
  184. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-receipt-gateway-health.ts +64 -0
  185. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-sandbox-capacity.ts +835 -0
  186. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-sandbox-ledger-reconciliation.ts +1218 -0
  187. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-sandbox-operation.ts +207 -0
  188. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-scheduler-schema.ts +10 -0
  189. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/scheduler-capacity.ts +123 -0
  190. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/scheduler-launch-read-observability.ts +78 -0
  191. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/submit-admission.ts +169 -0
  192. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/terminal-contract.ts +20 -0
  193. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/worker-queue-metrics.ts +34 -0
  194. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/worker-resource-metrics.ts +249 -0
  195. package/dist/bundling-sources/shared_libs/play-runtime/sheet-attempt-sql.ts +7 -0
  196. package/dist/bundling-sources/shared_libs/play-runtime/step-progress.ts +296 -0
  197. package/dist/bundling-sources/shared_libs/play-runtime/tool-call/native-batch.ts +3 -3
  198. package/dist/bundling-sources/shared_libs/play-runtime/tool-call/runtime-step-receipts-adapter.ts +20 -1
  199. package/dist/bundling-sources/shared_libs/play-runtime/tool-execute-retry-policy.ts +60 -15
  200. package/dist/bundling-sources/shared_libs/play-runtime/tool-execution-outcome.ts +20 -0
  201. package/dist/bundling-sources/shared_libs/play-runtime/tool-http-errors.ts +1 -1
  202. package/dist/bundling-sources/shared_libs/play-runtime/tool-result.ts +1 -1
  203. package/dist/bundling-sources/shared_libs/play-runtime/transient-service-error.ts +12 -0
  204. package/dist/bundling-sources/shared_libs/play-runtime/vercel-protection.ts +14 -1
  205. package/dist/bundling-sources/shared_libs/play-runtime/work-receipt-storage-contract.ts +165 -0
  206. package/dist/bundling-sources/shared_libs/play-runtime/work-receipts.ts +15 -23
  207. package/dist/bundling-sources/shared_libs/play-runtime/workflow-executor-auth.ts +169 -0
  208. package/dist/bundling-sources/shared_libs/play-runtime/zerobounce-batching.ts +122 -0
  209. package/dist/bundling-sources/shared_libs/plays/artifact-types.ts +8 -3
  210. package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +454 -17
  211. package/dist/bundling-sources/shared_libs/plays/bundling/index.ts +19 -4
  212. package/dist/bundling-sources/shared_libs/plays/contracts.ts +8 -14
  213. package/dist/bundling-sources/shared_libs/plays/core.ts +11 -6
  214. package/dist/bundling-sources/shared_libs/plays/deployment-status.ts +1 -1
  215. package/dist/bundling-sources/shared_libs/plays/docflow-binding-owner.ts +16 -11
  216. package/dist/bundling-sources/shared_libs/plays/docflow.ts +1 -1
  217. package/dist/bundling-sources/shared_libs/plays/email-status.ts +1 -1
  218. package/dist/bundling-sources/shared_libs/plays/play-grep-search.ts +39 -0
  219. package/dist/bundling-sources/shared_libs/plays/resolve-static-pipeline.ts +1 -1
  220. package/dist/bundling-sources/shared_libs/plays/share/copy.ts +271 -0
  221. package/dist/bundling-sources/shared_libs/plays/share/metrics.ts +140 -0
  222. package/dist/bundling-sources/shared_libs/plays/share/public-read-model.ts +86 -0
  223. package/dist/bundling-sources/shared_libs/plays/share/seo-quality.ts +181 -0
  224. package/dist/bundling-sources/shared_libs/plays/share/static-pipeline-summary.ts +658 -0
  225. package/dist/bundling-sources/shared_libs/plays/share/types.ts +197 -0
  226. package/dist/bundling-sources/shared_libs/plays/slack-hitl-timeout-error.ts +37 -0
  227. package/dist/bundling-sources/shared_libs/plays/slug.ts +115 -0
  228. package/dist/bundling-sources/shared_libs/plays/static-pipeline.ts +50 -15
  229. package/dist/bundling-sources/shared_libs/plays/tool-category-descriptions.ts +2 -2
  230. package/dist/bundling-sources/shared_libs/plays/tool-result-types.ts +1 -1
  231. package/dist/bundling-sources/shared_libs/product-notifications/catalog.ts +877 -0
  232. package/dist/bundling-sources/shared_libs/product-notifications/configuration-draft.ts +456 -0
  233. package/dist/bundling-sources/shared_libs/product-notifications/configuration.ts +566 -0
  234. package/dist/bundling-sources/shared_libs/product-notifications/content.ts +28 -0
  235. package/dist/bundling-sources/shared_libs/product-notifications/default-policy.ts +60 -0
  236. package/dist/bundling-sources/shared_libs/product-notifications/email.ts +246 -0
  237. package/dist/bundling-sources/shared_libs/product-notifications/evaluation.ts +280 -0
  238. package/dist/bundling-sources/shared_libs/product-notifications/events.ts +433 -0
  239. package/dist/bundling-sources/shared_libs/product-notifications/legacy-slack.ts +80 -0
  240. package/dist/bundling-sources/shared_libs/product-notifications/overflow.ts +18 -0
  241. package/dist/bundling-sources/shared_libs/product-notifications/rolling-limit.ts +24 -0
  242. package/dist/bundling-sources/shared_libs/product-notifications/slack-delivery.ts +624 -0
  243. package/dist/bundling-sources/shared_libs/product-notifications/slack-payload.ts +140 -0
  244. package/dist/bundling-sources/shared_libs/product-notifications/slack-transport.ts +75 -0
  245. package/dist/bundling-sources/shared_libs/product-notifications/workspace.ts +38 -0
  246. package/dist/bundling-sources/shared_libs/runtime-env.ts +12 -0
  247. package/dist/bundling-sources/shared_libs/security/email-blacklist.ts +42 -0
  248. package/dist/bundling-sources/shared_libs/security/header-safe-env.ts +35 -0
  249. package/dist/bundling-sources/shared_libs/security/internal-actor.ts +50 -0
  250. package/dist/bundling-sources/shared_libs/security/secret-redaction.ts +267 -0
  251. package/dist/bundling-sources/shared_libs/security/slack-sanitize.ts +133 -0
  252. package/dist/cli/getting-started.d.mts +52 -0
  253. package/dist/cli/getting-started.d.ts +52 -0
  254. package/dist/cli/getting-started.js +65 -0
  255. package/dist/cli/getting-started.mjs +36 -0
  256. package/dist/cli/index.d.mts +9 -0
  257. package/dist/cli/index.d.ts +9 -0
  258. package/dist/cli/index.js +1611 -453
  259. package/dist/cli/index.mjs +1596 -447
  260. package/dist/{compiler-manifest-Dbov16F7.d.mts → compiler-manifest-BaJfE-5H.d.mts} +136 -10
  261. package/dist/{compiler-manifest-Dbov16F7.d.ts → compiler-manifest-BaJfE-5H.d.ts} +136 -10
  262. package/dist/index.d.mts +910 -155
  263. package/dist/index.d.ts +910 -155
  264. package/dist/index.js +550 -64
  265. package/dist/index.mjs +550 -64
  266. package/dist/install-integrity.json +193 -4
  267. package/dist/monitor-fleet-contract.d.mts +138 -0
  268. package/dist/monitor-fleet-contract.d.ts +138 -0
  269. package/dist/monitor-fleet-contract.js +404 -0
  270. package/dist/monitor-fleet-contract.mjs +367 -0
  271. package/dist/plays/bundle-play-file.d.mts +8 -3
  272. package/dist/plays/bundle-play-file.d.ts +8 -3
  273. package/dist/plays/bundle-play-file.mjs +100 -20
  274. package/dist/release.d.mts +255 -0
  275. package/dist/release.d.ts +255 -0
  276. package/dist/release.js +215 -0
  277. package/dist/release.mjs +188 -0
  278. package/package.json +23 -4
  279. /package/dist/bundling-sources/shared_libs/{integrations/bettercontact-execution-policy.ts → integration-contracts/bettercontact/execution-policy.ts} +0 -0
  280. /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 (substep.type === 'play_call' && substep.pipeline) {
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 (base.type !== 'play_call' && 'pipeline' in substepWithoutSourceText) {
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
- producers: column.producers.map((producer) => ({
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 intentionally leaves a named play-call's
506
- // child pipeline absent. That is a reference edge, not a failed or
507
- // truncated resolution, so preserve it without inventing an error.
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
- const stored = truncateStaticPipelineForStorage(pipeline, {
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
- return projectPipeline(stored);
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' ? { playId: substep.playId } : {}),
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 `src/lib/integrations/**`), not a single closed enum.
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 (src/lib/integrations/catalog-tags.ts). This map
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;