deepline 0.3.461 → 0.3.462

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 (296) hide show
  1. package/dist/bundling-sources/sdk/src/client-core.ts +7593 -0
  2. package/dist/bundling-sources/sdk/src/client.ts +8 -7366
  3. package/dist/bundling-sources/sdk/src/http-core.ts +1239 -0
  4. package/dist/bundling-sources/sdk/src/http.ts +6 -1231
  5. package/dist/bundling-sources/sdk/src/index.ts +4 -1
  6. package/dist/bundling-sources/sdk/src/play.ts +5 -5
  7. package/dist/bundling-sources/sdk/src/plays/client-core.ts +437 -0
  8. package/dist/bundling-sources/sdk/src/plays/client.ts +4 -421
  9. package/dist/bundling-sources/sdk/src/plays/input-example.ts +3 -4
  10. package/dist/bundling-sources/sdk/src/plays/play-description.ts +1 -1
  11. package/dist/bundling-sources/sdk/src/plays/run-request.ts +1 -1
  12. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  13. package/dist/bundling-sources/sdk/src/server.ts +43 -0
  14. package/dist/bundling-sources/sdk/src/types.ts +15 -5
  15. package/dist/bundling-sources/shared_libs/integration-contracts/billing-entitlements.ts +15 -0
  16. package/dist/bundling-sources/shared_libs/monitors/callback-security.ts +0 -307
  17. package/dist/bundling-sources/shared_libs/monitors/http-error-response.ts +3 -0
  18. package/dist/bundling-sources/shared_libs/monitors/lifecycle-notifications.ts +3 -2
  19. package/dist/bundling-sources/shared_libs/monitors/package.json +2 -0
  20. package/dist/bundling-sources/shared_libs/monitors/provider-callback-verification.ts +34 -0
  21. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-batch-operation.ts +59 -0
  22. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-upstream-identity.ts +94 -1
  23. package/dist/bundling-sources/shared_libs/monitors/signal-radars/inbound-dead-letter.ts +11 -1
  24. package/dist/bundling-sources/shared_libs/monitors/signal-radars/inbound-failure-codes.ts +24 -0
  25. package/dist/bundling-sources/shared_libs/observability/dlq.ts +32 -0
  26. package/dist/bundling-sources/shared_libs/observability/scheduled-jobs.json +57 -3
  27. package/dist/bundling-sources/shared_libs/observability/scheduled-work.ts +1 -0
  28. package/dist/bundling-sources/shared_libs/play-data-plane/r2.ts +66 -1
  29. package/dist/bundling-sources/shared_libs/play-data-plane/sheet-column-storage.ts +36 -7
  30. package/dist/bundling-sources/shared_libs/play-runtime/app-runtime-api.ts +250 -11
  31. package/dist/bundling-sources/shared_libs/play-runtime/array-input-store.ts +319 -0
  32. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +991 -359
  33. package/dist/bundling-sources/shared_libs/play-runtime/ctx-types.ts +17 -0
  34. package/dist/bundling-sources/shared_libs/play-runtime/daytona-sandbox-janitor.ts +13 -0
  35. package/dist/bundling-sources/shared_libs/play-runtime/daytona-sandbox-reaper.ts +110 -0
  36. package/dist/bundling-sources/shared_libs/play-runtime/deployment/fly-machines.ts +155 -6
  37. package/dist/bundling-sources/shared_libs/play-runtime/deployment/fly-registry.ts +110 -6
  38. package/dist/bundling-sources/shared_libs/play-runtime/durable-receipt-execution.ts +127 -13
  39. package/dist/bundling-sources/shared_libs/play-runtime/execution-capabilities.ts +14 -1
  40. package/dist/bundling-sources/shared_libs/play-runtime/fixture-behavior.ts +57 -1
  41. package/dist/bundling-sources/shared_libs/play-runtime/free-company-lookup-batching.ts +218 -0
  42. package/dist/bundling-sources/shared_libs/play-runtime/gateway-postgres-admission.ts +42 -5
  43. package/dist/bundling-sources/shared_libs/play-runtime/governor/app-runtime-budget-state-backend.ts +6 -1
  44. package/dist/bundling-sources/shared_libs/play-runtime/governor/app-runtime-rate-state-backend.ts +92 -31
  45. package/dist/bundling-sources/shared_libs/play-runtime/governor/block-reserving-budget-state-backend.ts +69 -14
  46. package/dist/bundling-sources/shared_libs/play-runtime/governor/governor.ts +93 -23
  47. package/dist/bundling-sources/shared_libs/play-runtime/governor/in-memory-rate-state-backend.ts +15 -4
  48. package/dist/bundling-sources/shared_libs/play-runtime/governor/policy.ts +22 -18
  49. package/dist/bundling-sources/shared_libs/play-runtime/governor/rate-state-backend.ts +5 -0
  50. package/dist/bundling-sources/shared_libs/play-runtime/launch-identity.ts +2 -0
  51. package/dist/bundling-sources/shared_libs/play-runtime/map-memory-limits.ts +190 -14
  52. package/dist/bundling-sources/shared_libs/play-runtime/memory-ledger.ts +131 -0
  53. package/dist/bundling-sources/shared_libs/play-runtime/modal-runtime-config.ts +77 -2
  54. package/dist/bundling-sources/shared_libs/play-runtime/output-size-limits.ts +271 -2
  55. package/dist/bundling-sources/shared_libs/play-runtime/play-run-recovery-policy.ts +51 -0
  56. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/sandbox-cleanup/contracts.ts +2 -0
  57. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/sandbox-cleanup/job.ts +27 -1
  58. package/dist/bundling-sources/shared_libs/play-runtime/play-runtime-batching-registry.ts +2 -0
  59. package/dist/bundling-sources/shared_libs/play-runtime/protocol.ts +3 -0
  60. package/dist/bundling-sources/shared_libs/play-runtime/provider-text-for-log.ts +63 -0
  61. package/dist/bundling-sources/shared_libs/play-runtime/resource-governor.ts +19 -0
  62. package/dist/bundling-sources/shared_libs/play-runtime/run-ledger-event-transport.ts +112 -16
  63. package/dist/bundling-sources/shared_libs/play-runtime/run-ledger.ts +104 -2
  64. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +265 -151
  65. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-gateway-transport.ts +17 -0
  66. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-progress-push.ts +35 -14
  67. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-sheet-persistence-retry.ts +12 -1
  68. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-control-transport.ts +4 -0
  69. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-labels.ts +36 -0
  70. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-launch-transport.ts +136 -70
  71. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-lifecycle.ts +237 -36
  72. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-runtime-watchdog.ts +148 -4
  73. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-session-execution.ts +6 -0
  74. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona.ts +285 -32
  75. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/modal.ts +251 -56
  76. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/runtime-sandbox-reconciliation.ts +29 -4
  77. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/sandbox-create-outcome.ts +27 -0
  78. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/types.ts +22 -1
  79. package/dist/bundling-sources/shared_libs/play-runtime/runtime-api.ts +1397 -382
  80. package/dist/bundling-sources/shared_libs/play-runtime/runtime-array-input-receipts.ts +920 -0
  81. package/dist/bundling-sources/shared_libs/play-runtime/runtime-constants.ts +16 -0
  82. package/dist/bundling-sources/shared_libs/play-runtime/runtime-environment.ts +38 -0
  83. package/dist/bundling-sources/shared_libs/play-runtime/runtime-flow.ts +6 -0
  84. package/dist/bundling-sources/shared_libs/play-runtime/runtime-incident-drills.ts +26 -1
  85. package/dist/bundling-sources/shared_libs/play-runtime/runtime-operation-contract.ts +30 -0
  86. package/dist/bundling-sources/shared_libs/play-runtime/runtime-receipt-store-adapter.ts +14 -3
  87. package/dist/bundling-sources/shared_libs/play-runtime/runtime-receipt-writer.ts +31 -4
  88. package/dist/bundling-sources/shared_libs/play-runtime/runtime-sheet-row-transition.ts +47 -0
  89. package/dist/bundling-sources/shared_libs/play-runtime/sandbox-compute-usage.ts +20 -7
  90. package/dist/bundling-sources/shared_libs/play-runtime/sandbox-runs/contract.ts +12 -0
  91. package/dist/bundling-sources/shared_libs/play-runtime/sandbox-runs/index.ts +9 -0
  92. package/dist/bundling-sources/shared_libs/play-runtime/sandbox-runs/runner-backend-adapter.ts +10 -0
  93. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backend.ts +4 -0
  94. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-runtime-worker.ts +1496 -320
  95. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-worker-required-env.ts +31 -1
  96. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +1389 -129
  97. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/receipt-gateway.ts +36 -0
  98. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-ledger-dispatch-authority.ts +4 -0
  99. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-ledger-outbox-recovery.ts +162 -23
  100. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-event-search.ts +499 -115
  101. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-sandbox-capacity.ts +377 -9
  102. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-sandbox-ledger-reconciliation.ts +117 -8
  103. package/dist/bundling-sources/shared_libs/play-runtime/secret-resolution-retry-policy.ts +25 -0
  104. package/dist/bundling-sources/shared_libs/play-runtime/terminal-runtime-performance.ts +391 -0
  105. package/dist/bundling-sources/shared_libs/play-runtime/test-runtime-seams.ts +40 -0
  106. package/dist/bundling-sources/shared_libs/play-runtime/tool-call/index.ts +6 -0
  107. package/dist/bundling-sources/shared_libs/play-runtime/tool-call/mapped-calls.ts +171 -0
  108. package/dist/bundling-sources/shared_libs/play-runtime/tool-call/receipt-cohort.ts +16 -1
  109. package/dist/bundling-sources/shared_libs/play-runtime/tool-execute-retry-policy.ts +26 -3
  110. package/dist/bundling-sources/shared_libs/play-runtime/tool-result.ts +16 -2
  111. package/dist/bundling-sources/shared_libs/play-runtime/transport-error-diagnostics.ts +28 -0
  112. package/dist/bundling-sources/shared_libs/play-runtime/work-receipt-storage-contract.ts +55 -5
  113. package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +41 -1
  114. package/dist/bundling-sources/shared_libs/plays/contracts.ts +4 -0
  115. package/dist/bundling-sources/shared_libs/plays/dataset.ts +9 -3
  116. package/dist/bundling-sources/shared_libs/plays/deploy/manifest-contract.ts +2 -0
  117. package/dist/bundling-sources/shared_libs/plays/deploy/manifest.ts +3 -2
  118. package/dist/bundling-sources/shared_libs/plays/deploy/project-serializer.ts +2 -2
  119. package/dist/bundling-sources/shared_libs/plays/run-output-summary.ts +66 -0
  120. package/dist/bundling-sources/shared_libs/plays/script-entry.ts +1 -1
  121. package/dist/bundling-sources/shared_libs/product-notifications/catalog.ts +43 -1
  122. package/dist/bundling-sources/shared_libs/product-notifications/content.ts +9 -0
  123. package/dist/bundling-sources/shared_libs/product-notifications/email.ts +91 -13
  124. package/dist/bundling-sources/shared_libs/product-notifications/events.ts +3 -0
  125. package/dist/bundling-sources/shared_libs/product-notifications/slack-delivery.ts +41 -24
  126. package/dist/bundling-sources/shared_libs/security/attested-client-ip.ts +91 -0
  127. package/dist/bundling-sources/shared_libs/security/internal-actor.ts +0 -11
  128. package/dist/cli/{auth-6HJXNWUG.mjs → auth-JDLEY7VU.mjs} +5 -4
  129. package/dist/cli/auth-UXKY6TCC.js +41 -0
  130. package/dist/cli/{billing-6P5HO6QG.js → billing-HXAXB3XZ.js} +152 -78
  131. package/dist/cli/{billing-MJ42N7YF.mjs → billing-SDHLBLMV.mjs} +84 -10
  132. package/dist/cli/{chunk-5MDIZX7M.js → chunk-3ACMRZRV.js} +8 -6
  133. package/dist/cli/{chunk-FGLKOWSC.mjs → chunk-3KZCFOZ6.mjs} +1 -1
  134. package/dist/cli/chunk-4KQ6SIBC.mjs +1038 -0
  135. package/dist/cli/{chunk-Z2GUFYT6.js → chunk-5LEAXRHV.js} +11 -11
  136. package/dist/cli/{chunk-MEAIOXJL.mjs → chunk-6NNVJDVR.mjs} +7 -5
  137. package/dist/cli/{chunk-NMJ4D2WO.js → chunk-6PMCRYDA.js} +216 -91
  138. package/dist/cli/{chunk-RY4IVOU3.mjs → chunk-6RNQGWFD.mjs} +16 -806
  139. package/dist/cli/{chunk-EBU7LQ64.js → chunk-6V7KVRR5.js} +3 -3
  140. package/dist/cli/{chunk-OZBWRICM.js → chunk-7LFIMWMW.js} +2 -2
  141. package/dist/cli/chunk-7MJ6VI2T.mjs +19 -0
  142. package/dist/cli/chunk-7SWNPNML.js +1039 -0
  143. package/dist/cli/{chunk-IHHLTHE7.mjs → chunk-7U3XNPOA.mjs} +267 -38
  144. package/dist/cli/{chunk-5FDKJQZE.js → chunk-7VZHXVOQ.js} +1 -1
  145. package/dist/cli/{chunk-R64BGGRQ.mjs → chunk-AT636LLU.mjs} +2 -2
  146. package/dist/cli/{chunk-MDJPEGVN.js → chunk-BGTPIMSM.js} +392 -261
  147. package/dist/cli/{chunk-KVJ5VHW5.mjs → chunk-CKSOY47X.mjs} +2 -2
  148. package/dist/cli/{chunk-7DH2FD7Y.mjs → chunk-D464JW3N.mjs} +5 -85
  149. package/dist/cli/chunk-D6DXOUTO.mjs +827 -0
  150. package/dist/cli/{describe-2WQY7ZCY.js → chunk-EM4TXCCI.js} +27 -44
  151. package/dist/cli/chunk-F6QV42MC.mjs +91 -0
  152. package/dist/cli/chunk-FKVYR3QA.mjs +1039 -0
  153. package/dist/cli/{chunk-FGMX4HUZ.js → chunk-GEGW5HPZ.js} +29 -27
  154. package/dist/cli/{chunk-TNMBPMMC.js → chunk-HUB3CCM2.js} +13 -4
  155. package/dist/cli/{chunk-ACCR7POB.js → chunk-I6VHOU5O.js} +27 -27
  156. package/dist/cli/{chunk-Z2XUZC34.js → chunk-IAYSWZDJ.js} +188 -76
  157. package/dist/cli/chunk-JF3TLIMQ.js +19 -0
  158. package/dist/cli/{chunk-HDFRJ4IT.mjs → chunk-JVHOS3K3.mjs} +177 -65
  159. package/dist/cli/{chunk-V7REJRDZ.mjs → chunk-LFXLQEZN.mjs} +1 -1
  160. package/dist/cli/{chunk-CRYOUPEB.js → chunk-LROWFPGN.js} +16 -16
  161. package/dist/cli/{chunk-SLEUWLJE.mjs → chunk-MSY22NQW.mjs} +5 -5
  162. package/dist/cli/{chunk-BGY2PLP7.mjs → chunk-MUUQZIOF.mjs} +23 -49
  163. package/dist/cli/{chunk-FCAZQ7WV.js → chunk-NBLSCHKK.js} +52 -50
  164. package/dist/cli/{chunk-QAJAJPKK.mjs → chunk-NHRWZPWZ.mjs} +4 -2
  165. package/dist/cli/{chunk-KXMNM4AQ.js → chunk-NMU3VR5U.js} +4 -5
  166. package/dist/cli/{chunk-QIW7TVV6.mjs → chunk-O2RX5A66.mjs} +14 -12
  167. package/dist/cli/{chunk-SAZFZQRI.js → chunk-OMQ23IXL.js} +2 -2
  168. package/dist/cli/{chunk-5IYOUBFZ.js → chunk-OPJAJBD4.js} +28 -54
  169. package/dist/cli/{chunk-FJZILBL7.mjs → chunk-PHSEINNH.mjs} +5 -5
  170. package/dist/cli/{chunk-3DNKFH2G.mjs → chunk-PKHVSIJG.mjs} +19 -1
  171. package/dist/cli/{chunk-WIYWSYDS.mjs → chunk-Q2EIZKVX.mjs} +3 -3
  172. package/dist/cli/{chunk-5FY72YOV.js → chunk-QJZ6WNWD.js} +8 -8
  173. package/dist/cli/{chunk-EIMG75BT.mjs → chunk-S3A4IXBQ.mjs} +4 -5
  174. package/dist/cli/{chunk-3BMLICF7.mjs → chunk-S42YIQNE.mjs} +13 -8
  175. package/dist/cli/{chunk-RFONC4WJ.mjs → chunk-S6UAJR6V.mjs} +3 -3
  176. package/dist/cli/{chunk-G7L27KZB.mjs → chunk-TKAQR3IB.mjs} +31 -21
  177. package/dist/cli/{chunk-QWRHGGUH.js → chunk-UAJFWWZE.js} +20 -2
  178. package/dist/cli/{chunk-VZBCEA5S.mjs → chunk-UDRPEZ5F.mjs} +223 -92
  179. package/dist/cli/{chunk-KCCOQ5G5.js → chunk-ULK7JGGI.js} +511 -282
  180. package/dist/cli/chunk-V335HGX5.js +1038 -0
  181. package/dist/cli/{chunk-MGXEUZHL.mjs → chunk-V3MEA7NB.mjs} +7 -5
  182. package/dist/cli/{chunk-O6QOMHCH.js → chunk-VFGVXXZP.js} +37 -35
  183. package/dist/cli/chunk-VLEVVDWG.js +91 -0
  184. package/dist/cli/{chunk-R2GLGLDR.mjs → chunk-VPHN2HAL.mjs} +216 -91
  185. package/dist/cli/{chunk-CFUTOWE4.js → chunk-WG3KGAII.js} +8 -88
  186. package/dist/cli/{describe-FRAVCY5F.mjs → chunk-WIY6U6GD.mjs} +19 -36
  187. package/dist/cli/{chunk-PNATXKLP.js → chunk-XANRM3QA.js} +6 -6
  188. package/dist/cli/{chunk-KGQNIA37.js → chunk-XQCTG5OO.js} +44 -34
  189. package/dist/cli/{chunk-T3MVIPHG.mjs → chunk-XZAFIOUQ.mjs} +1 -1
  190. package/dist/cli/chunk-Y4DPU4OM.js +827 -0
  191. package/dist/cli/chunk-YT5EODJO.js +920 -0
  192. package/dist/cli/{chunk-SCIR5JXW.js → chunk-ZGQSFYD2.js} +56 -51
  193. package/dist/cli/{chunk-QEYHTIV4.mjs → chunk-ZUK6LIJB.mjs} +10 -1
  194. package/dist/cli/command-docs.d.mts +5 -0
  195. package/dist/cli/command-docs.d.ts +5 -0
  196. package/dist/cli/command-docs.js +2 -2
  197. package/dist/cli/command-docs.mjs +1 -1
  198. package/dist/cli/{csv-NX7NO3O6.js → csv-C56GSCEU.js} +13 -12
  199. package/dist/cli/{csv-DQ6GW5B5.mjs → csv-L54JS7TF.mjs} +4 -3
  200. package/dist/cli/{db-R72DFMP6.js → db-MOGRMZTA.js} +30 -27
  201. package/dist/cli/{db-2YP33M4K.mjs → db-YVBUW2DX.mjs} +10 -7
  202. package/dist/cli/describe-KYEULWPG.js +48 -0
  203. package/dist/cli/describe-NLZKKT7C.mjs +48 -0
  204. package/dist/cli/describe-core.d.mts +153 -5
  205. package/dist/cli/describe-core.d.ts +153 -5
  206. package/dist/cli/describe-core.js +9 -5
  207. package/dist/cli/describe-core.mjs +10 -6
  208. package/dist/cli/{executions-ZLHD4QIT.js → executions-A7L4ULPP.js} +9 -7
  209. package/dist/cli/{executions-WFBU7L2Q.mjs → executions-ZBGSTT37.mjs} +7 -5
  210. package/dist/cli/{feedback-CN3HJFVF.mjs → feedback-G6GU37FD.mjs} +6 -5
  211. package/dist/cli/{feedback-NDV6TPHG.js → feedback-OHLY7RYD.js} +10 -9
  212. package/dist/cli/getting-started.d.mts +6 -6
  213. package/dist/cli/getting-started.d.ts +6 -6
  214. package/dist/cli/getting-started.js +2 -2
  215. package/dist/cli/getting-started.mjs +1 -1
  216. package/dist/cli/git-P76N4NDQ.js +25 -0
  217. package/dist/cli/{git-QAD6E3HW.mjs → git-PKZW3QD5.mjs} +5 -4
  218. package/dist/cli/index.js +152 -142
  219. package/dist/cli/index.mjs +56 -46
  220. package/dist/cli/{legacy-noops-KVC5QJ74.js → legacy-noops-5LM3D724.js} +8 -7
  221. package/dist/cli/{legacy-noops-TPTKNBI2.mjs → legacy-noops-LJJYG6YA.mjs} +5 -4
  222. package/dist/cli/{monitors-SV57JFLO.mjs → monitors-72QV4ALO.mjs} +19 -6
  223. package/dist/cli/{monitors-KCROV6PJ.js → monitors-UX3H5DC2.js} +103 -90
  224. package/dist/cli/{org-KX6QIR7A.mjs → org-6RRRKOCP.mjs} +9 -6
  225. package/dist/cli/{org-NJYX5743.js → org-IF7ISUVB.js} +70 -67
  226. package/dist/cli/pages-3SU3HKL7.js +252 -0
  227. package/dist/cli/pages-DXDYYKEK.mjs +252 -0
  228. package/dist/cli/{play-IQQ57L7Z.mjs → play-AHASKRLA.mjs} +512 -1508
  229. package/dist/cli/{play-32L7EQN4.js → play-EUIUVLUH.js} +1090 -2086
  230. package/dist/cli/{providers-4WEC2EQN.mjs → providers-GWGE3WY3.mjs} +7 -5
  231. package/dist/cli/{providers-ZQV6QLVQ.js → providers-V5WU4VXJ.js} +10 -8
  232. package/dist/cli/{quickstart-RQ76RIUE.mjs → quickstart-OXKQ5ZST.mjs} +5 -4
  233. package/dist/cli/{quickstart-HKUSFADF.js → quickstart-QP65I5PF.js} +13 -12
  234. package/dist/cli/run-6MM72IGL.mjs +443 -0
  235. package/dist/cli/run-F3FTYS56.js +443 -0
  236. package/dist/cli/search-OYKOOI7A.js +32 -0
  237. package/dist/cli/{search-ZRAVFBZC.mjs → search-ZMEBVJZB.mjs} +8 -6
  238. package/dist/cli/{secrets-J3G5Y43U.js → secrets-ACND5N6A.js} +16 -14
  239. package/dist/cli/{secrets-CMJOVNVH.mjs → secrets-XRCJFF3L.mjs} +7 -5
  240. package/dist/cli/{sessions-MDQYY5CB.mjs → sessions-RTK3CEW6.mjs} +5 -4
  241. package/dist/cli/{sessions-WY7VN4AE.js → sessions-ZGRJPCFF.js} +6 -5
  242. package/dist/cli/{settings-HTNTFKCE.js → settings-PD5KWQQZ.js} +80 -77
  243. package/dist/cli/{settings-4RWZPCT5.mjs → settings-XDRBPRDE.mjs} +14 -11
  244. package/dist/cli/{setup-P3GYYZWG.mjs → setup-3HPYAOCC.mjs} +12 -10
  245. package/dist/cli/{setup-QGCAP62X.js → setup-E2Q6PXHC.js} +53 -51
  246. package/dist/cli/{skills-7NAE4ICL.mjs → skills-OOQFMPOV.mjs} +7 -6
  247. package/dist/cli/skills-XYWV52KB.js +31 -0
  248. package/dist/cli/tools-ASCDZJCK.js +55 -0
  249. package/dist/cli/tools-C5ZT3UIC.mjs +55 -0
  250. package/dist/cli/update-5RQSEIFM.js +33 -0
  251. package/dist/cli/{update-GODLRKNB.mjs → update-ZWJTADIW.mjs} +9 -8
  252. package/dist/cli/{workflow-4BXOUVEO.mjs → workflow-23NMPAJ7.mjs} +10 -8
  253. package/dist/cli/{workflow-AO3A6LXN.js → workflow-TCXU5YJV.js} +20 -18
  254. package/dist/client-DS2IWYZF.d.ts +10 -0
  255. package/dist/client-DTwnz_AW.d.mts +10 -0
  256. package/dist/{client-CYqG23K1.d.ts → client-core-B_6HAIBy.d.ts} +385 -12
  257. package/dist/{client-BbU5_j7n.d.mts → client-core-DzBSlY1U.d.mts} +385 -12
  258. package/dist/{compiler-manifest-CWz_sNOQ.d.ts → compiler-manifest-Dcyd3-Zd.d.mts} +43 -1
  259. package/dist/{compiler-manifest-CWz_sNOQ.d.mts → compiler-manifest-Dcyd3-Zd.d.ts} +43 -1
  260. package/dist/errors-d-sTrZhe.d.mts +142 -0
  261. package/dist/errors-yQwfgrcX.d.ts +142 -0
  262. package/dist/{index-BF2JB_Ug.d.mts → index-C6oXchjN.d.mts} +1 -1
  263. package/dist/{index-4NPXDzlD.d.ts → index-P56zy_z5.d.ts} +1 -1
  264. package/dist/index.d.mts +11 -147
  265. package/dist/index.d.ts +11 -147
  266. package/dist/index.js +15 -11
  267. package/dist/index.mjs +14 -10
  268. package/dist/install-integrity.json +141 -104
  269. package/dist/plays/bundle-play-file.d.mts +3 -3
  270. package/dist/plays/bundle-play-file.d.ts +3 -3
  271. package/dist/plays/bundle-play-file.mjs +2 -1
  272. package/dist/plays/play-description.d.mts +2 -2
  273. package/dist/plays/play-description.d.ts +2 -2
  274. package/dist/plays/play-description.js +2 -2
  275. package/dist/plays/play-description.mjs +1 -1
  276. package/dist/plays/run-request.d.mts +2 -2
  277. package/dist/plays/run-request.d.ts +2 -2
  278. package/dist/release.d.mts +1 -1
  279. package/dist/release.d.ts +1 -1
  280. package/dist/release.js +2 -2
  281. package/dist/release.mjs +1 -1
  282. package/dist/server.d.mts +17 -0
  283. package/dist/server.d.ts +17 -0
  284. package/dist/server.js +76 -0
  285. package/dist/server.mjs +76 -0
  286. package/package.json +6 -1
  287. package/dist/cli/auth-IACERYQH.js +0 -40
  288. package/dist/cli/chunk-PQUUWFXY.js +0 -95
  289. package/dist/cli/chunk-YBWAG72P.mjs +0 -95
  290. package/dist/cli/chunk-YQDUODZW.js +0 -1710
  291. package/dist/cli/git-JVI36ZFV.js +0 -24
  292. package/dist/cli/search-75X5LTDE.js +0 -30
  293. package/dist/cli/skills-BKJ53JOQ.js +0 -30
  294. package/dist/cli/tools-COWMIEJ6.mjs +0 -45
  295. package/dist/cli/tools-TASOCE7I.js +0 -45
  296. package/dist/cli/update-SJIKVME6.js +0 -32
@@ -1,426 +1,9 @@
1
- /**
2
- * Remote Play operations shared by the full SDK client and imported Play handles.
3
- * Handles resolve configuration lazily; a submitted job keeps its original client.
4
- */
1
+ /** Remote Play operations with lazy local configuration discovery. */
5
2
  import { resolveConfig } from '../config';
6
- import { DeeplineError } from '../errors';
7
3
  import { HttpClient } from '../http';
8
- import { SDK_API_MAJOR } from '../version';
9
- import type {
10
- DeeplineClientOptions,
11
- ClearPlayHistoryRequest,
12
- ClearPlayHistoryResult,
13
- PlayDetail,
14
- PlayRevisionSummary,
15
- PlayRunListItem,
16
- PlayRunStart,
17
- PlayStatus,
18
- PublishPlayVersionRequest,
19
- PublishPlayVersionResult,
20
- StartPlayRunRequest,
21
- StopPlayRunResult,
22
- } from '../types';
23
- import {
24
- isPlayRunPackage,
25
- startPlayRun,
26
- type ResolvedStartPlayRunRequest,
27
- type PlayRunStartOptions,
28
- } from './run-request';
29
- import {
30
- RUNTIME_ENVIRONMENT_TOKEN_HEADER,
31
- RETAINED_PIPELINE_RECEIVERS_HEADER,
32
- } from '../../../shared_libs/play-runtime/coordinator-headers.js';
33
- import {
34
- normalizePlayRuntimeEnvironment,
35
- normalizePlayRuntimeNamespace,
36
- normalizePlayRuntimeSandboxPlacementPolicy,
37
- normalizePlayRuntimeSelection,
38
- type PlayRuntimeSelection,
39
- } from '../../../shared_libs/play-runtime/runtime-environment.js';
40
- import { decodePlayRunPublicStatus } from '../../../shared_libs/play-runtime/run-lifecycle-policy.js';
41
-
42
- export function normalizePlayRunIntegrationMode(
43
- value: unknown,
44
- ): 'live' | 'eval_stub' | 'fixture' | undefined {
45
- if (value === 'live' || value === 'eval_stub' || value === 'fixture') {
46
- return value;
47
- }
48
- return undefined;
49
- }
50
-
51
- export type ClientEnvironment = Readonly<Record<string, string | undefined>>;
52
-
53
- function resolvePlayRunIntegrationMode(
54
- request: StartPlayRunRequest,
55
- env: ClientEnvironment,
56
- ): 'live' | 'eval_stub' | 'fixture' | undefined {
57
- return normalizePlayRunIntegrationMode(
58
- request.integrationMode ?? env.DEEPLINE_EVAL_INTEGRATION_MODE,
59
- );
60
- }
61
-
62
- function resolvePlayRunRuntimeSelection(
63
- request: StartPlayRunRequest,
64
- env: ClientEnvironment,
65
- ): PlayRuntimeSelection | undefined {
66
- if (request.runtime !== undefined) {
67
- const runtime = normalizePlayRuntimeSelection(request.runtime);
68
- if (!runtime) {
69
- throw new DeeplineError(
70
- 'runtime must be { environment: "preview", namespace, backend?: "daytona" | "modal", sandboxPlacementPolicy?: "policy_name@1" } with namespace matching ^[a-z][a-z0-9-]{0,30}$.',
71
- undefined,
72
- 'INVALID_RUNTIME_SELECTION',
73
- );
74
- }
75
- return runtime;
76
- }
77
- // These variables select where the app executes a run, not which app the
78
- // SDK calls. DEEPLINE_API_BASE_URL still chooses the app host. Environment
79
- // opts into remote preview routing, namespace names the isolated lane, and
80
- // the token only authorizes that selection. Omitting all three leaves the
81
- // app free to use its native runtime (local for a local app, prod for prod).
82
- const configured = env.DEEPLINE_RUNTIME_ENVIRONMENT?.trim();
83
- const configuredNamespace = env.DEEPLINE_RUNTIME_NAMESPACE?.trim();
84
- const configuredToken = env.DEEPLINE_RUNTIME_ENVIRONMENT_TOKEN?.trim();
85
- const configuredPlacementPolicy =
86
- env.DEEPLINE_RUNTIME_SANDBOX_PLACEMENT_POLICY?.trim();
87
- if (!configured) {
88
- if (configuredNamespace || configuredToken || configuredPlacementPolicy) {
89
- // Name the variables that are actually set. This branch is almost always
90
- // hit by a stale value auto-loaded from a .env/.env.local rather than by
91
- // a deliberate export, so the message has to say where to look and how
92
- // to run the command anyway.
93
- const present: string[] = [];
94
- if (configuredNamespace) present.push('DEEPLINE_RUNTIME_NAMESPACE');
95
- if (configuredToken) present.push('DEEPLINE_RUNTIME_ENVIRONMENT_TOKEN');
96
- if (configuredPlacementPolicy) {
97
- present.push('DEEPLINE_RUNTIME_SANDBOX_PLACEMENT_POLICY');
98
- }
99
- const isPlural = present.length > 1;
100
- throw new DeeplineError(
101
- [
102
- `Incomplete play runtime selection: ${present.join(' and ')} ${isPlural ? 'are' : 'is'} set but DEEPLINE_RUNTIME_ENVIRONMENT is not.`,
103
- 'Preview routing requires DEEPLINE_RUNTIME_ENVIRONMENT=preview together with DEEPLINE_RUNTIME_NAMESPACE; the token alone authorizes nothing.',
104
- `If you did not export ${isPlural ? 'these' : 'this'} yourself, ${isPlural ? 'they were' : 'it was'} most likely auto-loaded from a .env or .env.local in the current directory (bun loads those automatically, and in a git worktree .env.local is usually a symlink to the main checkout).`,
105
- `To run against the app-native runtime, clear ${isPlural ? 'them' : 'it'} for this command: ${present.map((name) => `${name}=`).join(' ')} <your deepline command>`,
106
- ].join('\n'),
107
- undefined,
108
- 'INVALID_RUNTIME_ENVIRONMENT',
109
- );
110
- }
111
- return undefined;
112
- }
113
- const environment = normalizePlayRuntimeEnvironment(configured);
114
- if (!environment) {
115
- throw new DeeplineError(
116
- `DEEPLINE_RUNTIME_ENVIRONMENT supports only explicit preview selection. Received "${configured}". Omit it to use the app-native runtime.`,
117
- undefined,
118
- 'INVALID_RUNTIME_ENVIRONMENT',
119
- );
120
- }
121
- const namespace = normalizePlayRuntimeNamespace(configuredNamespace);
122
- if (!namespace) {
123
- throw new DeeplineError(
124
- 'DEEPLINE_RUNTIME_NAMESPACE is required for preview and must match ^[a-z][a-z0-9-]{0,30}$.',
125
- undefined,
126
- 'INVALID_RUNTIME_NAMESPACE',
127
- );
128
- }
129
- const configuredBackendValue = env.DEEPLINE_PLAY_RUNNER_BACKEND?.trim();
130
- const configuredBackend =
131
- configuredBackendValue === 'daytona' || configuredBackendValue === 'modal'
132
- ? configuredBackendValue
133
- : undefined;
134
- if (configuredBackendValue && !configuredBackend) {
135
- throw new DeeplineError(
136
- `DEEPLINE_PLAY_RUNNER_BACKEND must be daytona or modal for preview runtime selection. Received "${configuredBackendValue}".`,
137
- undefined,
138
- 'INVALID_RUNTIME_BACKEND',
139
- );
140
- }
141
- if (
142
- configuredPlacementPolicy &&
143
- !normalizePlayRuntimeSandboxPlacementPolicy(configuredPlacementPolicy)
144
- ) {
145
- throw new DeeplineError(
146
- `DEEPLINE_RUNTIME_SANDBOX_PLACEMENT_POLICY must be a versioned placement policy id such as daytona_only@1. Received "${configuredPlacementPolicy}".`,
147
- undefined,
148
- 'INVALID_RUNTIME_SANDBOX_PLACEMENT_POLICY',
149
- );
150
- }
151
- return {
152
- environment,
153
- namespace,
154
- ...(configuredBackend ? { backend: configuredBackend } : {}),
155
- ...(configuredPlacementPolicy
156
- ? { sandboxPlacementPolicy: configuredPlacementPolicy }
157
- : {}),
158
- };
159
- }
160
-
161
- /**
162
- * Resolve the environment-derived run-start fields (eval integration mode,
163
- * test policy overrides, preview runtime) into explicit request fields, in the
164
- * order the SDK has always validated them. The shared body builder in
165
- * `plays/run-request` never reads the environment.
166
- */
167
- export function resolveStartPlayRunRequest(
168
- request: StartPlayRunRequest,
169
- env: ClientEnvironment,
170
- ): {
171
- request: ResolvedStartPlayRunRequest;
172
- runtime: PlayRuntimeSelection | undefined;
173
- } {
174
- const integrationMode = resolvePlayRunIntegrationMode(request, env);
175
- const testPolicyOverrides =
176
- request.testPolicyOverrides ?? parseEnvTestPolicyOverrides(env);
177
- const runtime = resolvePlayRunRuntimeSelection(request, env);
178
- const resolved: ResolvedStartPlayRunRequest = { ...request };
179
- delete resolved.integrationMode;
180
- delete resolved.runtime;
181
- delete resolved.testPolicyOverrides;
182
- if (integrationMode) resolved.integrationMode = integrationMode;
183
- if (runtime) resolved.runtime = runtime;
184
- if (testPolicyOverrides) resolved.testPolicyOverrides = testPolicyOverrides;
185
- return { request: resolved, runtime };
186
- }
187
-
188
- export function runtimeSelectionHeaders(
189
- runtime: PlayRuntimeSelection | undefined,
190
- env: ClientEnvironment,
191
- ): Record<string, string> | undefined {
192
- if (!runtime) return undefined;
193
- // Keep the credential out of the typed runtime payload. The app consumes it
194
- // at the HTTP boundary and never forwards it to Fly, Absurd, or Daytona.
195
- const token = env.DEEPLINE_RUNTIME_ENVIRONMENT_TOKEN?.trim();
196
- if (!token) {
197
- throw new DeeplineError(
198
- 'DEEPLINE_RUNTIME_ENVIRONMENT_TOKEN is required for explicit preview runtime selection.',
199
- undefined,
200
- 'RUNTIME_ENVIRONMENT_TOKEN_REQUIRED',
201
- );
202
- }
203
- const receivers = env.DEEPLINE_RUNTIME_RETAINED_PIPELINE_RECEIVERS?.trim();
204
- return {
205
- [RUNTIME_ENVIRONMENT_TOKEN_HEADER]: token,
206
- ...(receivers ? { [RETAINED_PIPELINE_RECEIVERS_HEADER]: receivers } : {}),
207
- };
208
- }
209
-
210
- function normalizeTestPolicyOverrides(
211
- value: unknown,
212
- source: string,
213
- ): Record<string, unknown> {
214
- if (value && typeof value === 'object' && !Array.isArray(value)) {
215
- return value as Record<string, unknown>;
216
- }
217
- throw new DeeplineError(
218
- `${source} must be a JSON object.`,
219
- undefined,
220
- 'INVALID_TEST_POLICY_OVERRIDES',
221
- );
222
- }
223
-
224
- function parseEnvTestPolicyOverrides(
225
- env: ClientEnvironment,
226
- ): Record<string, unknown> | undefined {
227
- const raw = env.DEEPLINE_TEST_POLICY_OVERRIDES;
228
- const trimmed = raw?.trim();
229
- if (!trimmed) return undefined;
230
- let parsed: unknown;
231
- try {
232
- parsed = JSON.parse(trimmed);
233
- } catch (error) {
234
- const detail = error instanceof Error ? ` ${error.message}` : '';
235
- throw new DeeplineError(
236
- `DEEPLINE_TEST_POLICY_OVERRIDES must be valid JSON.${detail}`,
237
- undefined,
238
- 'INVALID_TEST_POLICY_OVERRIDES',
239
- );
240
- }
241
- return normalizeTestPolicyOverrides(parsed, 'DEEPLINE_TEST_POLICY_OVERRIDES');
242
- }
243
-
244
- function isRecord(value: unknown): value is Record<string, unknown> {
245
- return Boolean(value && typeof value === 'object' && !Array.isArray(value));
246
- }
247
-
248
- export function normalizePlayStatus(raw: Record<string, unknown>): PlayStatus {
249
- const runPackage = isPlayRunPackage(raw)
250
- ? raw
251
- : isPlayRunPackage(raw.package)
252
- ? raw.package
253
- : null;
254
- const packageRun = runPackage?.run;
255
- const rawStatus =
256
- typeof raw.status === 'string'
257
- ? raw.status
258
- : typeof packageRun?.status === 'string'
259
- ? packageRun.status
260
- : null;
261
- const status = decodePlayRunPublicStatus(rawStatus);
262
- if (!status) {
263
- throw new Error(
264
- `Invalid play run lifecycle status in API response: ${JSON.stringify(rawStatus)}.`,
265
- );
266
- }
267
- const runId =
268
- typeof raw.runId === 'string'
269
- ? raw.runId
270
- : typeof raw.workflowId === 'string'
271
- ? raw.workflowId
272
- : (packageRun?.id ?? '');
273
- const legacyOverview = runPackage?.overview ?? raw.overview;
274
- const runStatus = runPackage?.runStatus ?? raw.runStatus;
275
- return {
276
- ...(raw as unknown as Omit<PlayStatus, 'runId' | 'status'>),
277
- runId,
278
- ...(isRecord(legacyOverview)
279
- ? {
280
- overview: legacyOverview as unknown as PlayStatus['overview'],
281
- }
282
- : {}),
283
- ...(isRecord(runStatus)
284
- ? { runStatus: runStatus as unknown as PlayStatus['runStatus'] }
285
- : {}),
286
- ...(runPackage
287
- ? {
288
- package: runPackage,
289
- outputs: runPackage.outputs,
290
- }
291
- : {}),
292
- status,
293
- };
294
- }
295
-
296
- export class PlayClient {
297
- constructor(
298
- private readonly http: HttpClient,
299
- private readonly environment: ClientEnvironment = process.env,
300
- ) {}
301
-
302
- async startPlayRun(
303
- request: StartPlayRunRequest,
304
- options?: PlayRunStartOptions,
305
- ): Promise<PlayRunStart> {
306
- const resolved = resolveStartPlayRunRequest(request, this.environment);
307
- const headers = runtimeSelectionHeaders(resolved.runtime, this.environment);
308
- return startPlayRun(
309
- this.http,
310
- resolved.request,
311
- options?.cliAdmission
312
- ? { ...headers, 'X-Deepline-API-Major': String(SDK_API_MAJOR) }
313
- : headers,
314
- options,
315
- );
316
- }
317
-
318
- async getPlayStatus(
319
- workflowId: string,
320
- options?: { billing?: boolean; full?: boolean },
321
- ): Promise<PlayStatus> {
322
- const params = new URLSearchParams();
323
- if (options?.billing === false) {
324
- params.set('billing', 'false');
325
- }
326
- if (options?.full === true) {
327
- params.set('full', 'true');
328
- }
329
- const query = params.size > 0 ? `?${params.toString()}` : '';
330
- const response = await this.http.get<Record<string, unknown>>(
331
- `/api/v2/runs/${encodeURIComponent(workflowId)}${query}`,
332
- );
333
- return normalizePlayStatus(response);
334
- }
335
-
336
- async cancelPlay(workflowId: string): Promise<void> {
337
- await this.http.request(
338
- `/api/v2/runs/${encodeURIComponent(workflowId)}/stop`,
339
- { method: 'POST' },
340
- );
341
- }
342
-
343
- async stopPlay(
344
- workflowId: string,
345
- options?: { reason?: string },
346
- ): Promise<StopPlayRunResult> {
347
- return this.http.post<StopPlayRunResult>(
348
- `/api/v2/runs/${encodeURIComponent(workflowId)}/stop`,
349
- options?.reason ? { reason: options.reason } : {},
350
- );
351
- }
352
-
353
- async listPlayRuns(playName: string): Promise<PlayRunListItem[]> {
354
- const encodedName = encodeURIComponent(playName);
355
- const response = await this.http.get<{ runs: PlayRunListItem[] }>(
356
- `/api/v2/plays/${encodedName}/runs`,
357
- );
358
- return response.runs ?? [];
359
- }
360
-
361
- async getPlay(
362
- name: string,
363
- options?: {
364
- source?: 'working' | 'live' | `version:${number}`;
365
- guidance?: boolean;
366
- },
367
- ): Promise<PlayDetail> {
368
- const encodedName = encodeURIComponent(name);
369
- const query = options?.source
370
- ? `?include=source&revision=${encodeURIComponent(options.source)}`
371
- : options?.guidance
372
- ? '?include=guidance'
373
- : '';
374
- return this.http.get<PlayDetail>(`/api/v2/plays/${encodedName}${query}`);
375
- }
376
-
377
- async clearPlayHistory(
378
- name: string,
379
- request: ClearPlayHistoryRequest = {},
380
- ): Promise<ClearPlayHistoryResult> {
381
- const encodedName = encodeURIComponent(name);
382
- return this.http.post<ClearPlayHistoryResult>(
383
- `/api/v2/plays/${encodedName}/history/clear`,
384
- request,
385
- );
386
- }
387
-
388
- async listPlayVersions(
389
- name: string,
390
- options?: { full?: boolean },
391
- ): Promise<PlayRevisionSummary[]> {
392
- const encodedName = encodeURIComponent(name);
393
- const suffix = options?.full ? '?full=true' : '';
394
- const response = await this.http.get<{ versions: PlayRevisionSummary[] }>(
395
- `/api/v2/plays/${encodedName}/versions${suffix}`,
396
- );
397
- return response.versions ?? [];
398
- }
399
-
400
- async publishPlayVersion(
401
- name: string,
402
- request: PublishPlayVersionRequest = {},
403
- ): Promise<PublishPlayVersionResult> {
404
- const encodedName = encodeURIComponent(name);
405
- return this.http.post<PublishPlayVersionResult>(
406
- `/api/v2/plays/${encodedName}/live`,
407
- request,
408
- );
409
- }
410
- }
411
-
412
- export type PlayClientOperations = Pick<
413
- PlayClient,
414
- | 'getPlay'
415
- | 'listPlayRuns'
416
- | 'listPlayVersions'
417
- | 'publishPlayVersion'
418
- | 'clearPlayHistory'
419
- | 'startPlayRun'
420
- | 'getPlayStatus'
421
- | 'cancelPlay'
422
- | 'stopPlay'
423
- >;
4
+ import type { DeeplineClientOptions } from '../types';
5
+ import { PlayClient } from './client-core';
6
+ export * from './client-core';
424
7
 
425
8
  export function createPlayClient(options?: DeeplineClientOptions): PlayClient {
426
9
  const config = resolveConfig(options);
@@ -2,9 +2,9 @@
2
2
  export function playInputExampleArgs(
3
3
  schema: Record<string, unknown> | null | undefined,
4
4
  ): string {
5
- if (!schema) return " --input '@<input.json>'";
5
+ if (!schema) return ' --input-file <input.json>';
6
6
  // Do not guess required inputs hidden behind a reference or intersection.
7
- if (schema.$ref || schema.allOf) return " --input '@<input.json>'";
7
+ if (schema.$ref || schema.allOf) return ' --input-file <input.json>';
8
8
  const csv = schema.csvInput as { inputField?: unknown } | undefined;
9
9
  const csvField = typeof csv?.inputField === 'string' ? csv.inputField : null;
10
10
  const required = Array.isArray(schema.required) ? schema.required : [];
@@ -24,7 +24,6 @@ export function playInputExampleArgs(
24
24
  // Only advertise the universally supported CSV shorthand. Other field names
25
25
  // may collide with execution flags (e.g. file/name); JSON is unambiguous.
26
26
  if (csvField && csvOnlyRequired && (!alternatives || hasCsvAlternative)) {
27
- if (csvField === 'csv') return " --csv '<contacts.csv>'";
28
27
  const value = JSON.stringify({ [csvField]: '<contacts.csv>' });
29
28
  return ` --input '${value.replace(/'/g, "'\\''")}'`;
30
29
  }
@@ -36,5 +35,5 @@ export function playInputExampleArgs(
36
35
  ) {
37
36
  return '';
38
37
  }
39
- return " --input '@<input.json>'";
38
+ return ' --input-file <input.json>';
40
39
  }
@@ -102,7 +102,7 @@ export function describePlayListItem(
102
102
  play.currentRevision?.description?.trim() ||
103
103
  play.liveRevision?.description?.trim() ||
104
104
  null;
105
- const runCommand = `deepline plays run ${play.reference || play.name}${playInputExampleArgs(play.inputSchema)}`;
105
+ const runCommand = `deepline run ${play.reference || play.name}${playInputExampleArgs(play.inputSchema)}`;
106
106
  const starter = cloneEditStarter(play);
107
107
  return {
108
108
  name: play.name,
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * The one client-side construction of a Play run start.
3
3
  *
4
- * `deepline plays run <name>` (CLI), `DeeplineClient.startPlayRun` (SDK), and
4
+ * `deepline run <name>` (CLI), `DeeplineClient.startPlayRun` (SDK), and
5
5
  * the dashboard's "Run in UI" form all start a run through this module: the
6
6
  * same file-input bindings, the same staged-file upload
7
7
  * (`/api/v2/plays/files/stage/mint`, direct PUT, multipart fallback), the same
@@ -205,7 +205,7 @@ export const SDK_RELEASE = {
205
205
  // getters keep their established compatibility behavior.
206
206
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
207
207
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
208
- version: '0.3.461',
208
+ version: '0.3.462',
209
209
  updateSummary: {
210
210
  introducedIn: '0.3.90',
211
211
  summary:
@@ -0,0 +1,43 @@
1
+ /** Explicit server client: credentials and caller environment never use local discovery. */
2
+ import { DeeplineClient as DeeplineClientCore } from './client-core';
3
+ import { HttpClient } from './http-core';
4
+ import { ConfigError } from './errors';
5
+ import type { DeeplineClientOptions, ResolvedConfig } from './types';
6
+ export * from './errors';
7
+ export type * from './types';
8
+ export type * from './client-core';
9
+
10
+ export type ServerClientOptions = DeeplineClientOptions &
11
+ Required<Pick<DeeplineClientOptions, 'apiKey' | 'baseUrl' | 'environment'>>;
12
+
13
+ export class DeeplineClient extends DeeplineClientCore {
14
+ constructor(options: ServerClientOptions) {
15
+ const apiKey = options.apiKey?.trim();
16
+ if (!apiKey)
17
+ throw new ConfigError('An explicit server API key is required.');
18
+ if (!options.environment) {
19
+ throw new ConfigError(
20
+ 'An explicit server caller environment is required.',
21
+ );
22
+ }
23
+ let baseUrl: string;
24
+ try {
25
+ const parsed = new URL(options.baseUrl.trim().replace(/\/+$/, ''));
26
+ if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
27
+ throw new Error('Invalid protocol');
28
+ }
29
+ baseUrl = parsed.toString().replace(/\/+$/, '');
30
+ } catch {
31
+ throw new ConfigError('An explicit http(s) server base URL is required.');
32
+ }
33
+ const config: ResolvedConfig = {
34
+ apiKey,
35
+ baseUrl,
36
+ environment: options.environment,
37
+ timeout: options.timeout ?? 60_000,
38
+ maxRetries: options.maxRetries ?? 3,
39
+ ...(options.headers ? { headers: { ...options.headers } } : {}),
40
+ };
41
+ super(config, new HttpClient(config), options.timeout);
42
+ }
43
+ }
@@ -1,3 +1,7 @@
1
+ import type {
2
+ TerminalRuntimePerformance,
3
+ TerminalRuntimePerformanceUnavailableReason,
4
+ } from '../../shared_libs/play-runtime/terminal-runtime-performance';
1
5
  import type { PlaySettings } from '../../shared_libs/plays/settings-contract';
2
6
  import type { ToolRequestWarningRule } from '../../shared_libs/integration-contracts/request-warnings';
3
7
  export type {
@@ -7,7 +11,7 @@ export type {
7
11
  import type { PlayCompilerManifest } from '../../shared_libs/plays/compiler-manifest';
8
12
  import type { RunGetStatus, RunLifecycleStatus } from './client';
9
13
  import type { PlayGrepMatch } from '../../shared_libs/plays/play-grep-search';
10
- import type { PlayRuntimeSelection } from '../../shared_libs/play-runtime/runtime-environment';
14
+ import type { PlayRunRuntimeSelection } from '../../shared_libs/play-runtime/runtime-environment';
11
15
  import type {
12
16
  PlayActivityObservation,
13
17
  PlayActivityState,
@@ -892,6 +896,9 @@ export interface PlayRunPackage {
892
896
  sourceRunId?: string;
893
897
  };
894
898
  error?: string;
899
+ /** Accepted terminal invocation only; absent on older/unsupported runtimes. */
900
+ performance?: TerminalRuntimePerformance;
901
+ performanceUnavailableReason?: TerminalRuntimePerformanceUnavailableReason;
895
902
  /** Canonical explanation of what this run is doing or waiting on. */
896
903
  activity?: PlayRunActivityProjection | null;
897
904
  };
@@ -1864,7 +1871,7 @@ export interface ClearPlayHistoryResult {
1864
1871
  * Response from starting a play run.
1865
1872
  *
1866
1873
  * Internal/advanced payload returned by low-level play submission primitives.
1867
- * Most callers should prefer `deepline plays run`, {@link DeeplineClient.runPlay},
1874
+ * Most callers should prefer `deepline run`, {@link DeeplineClient.runPlay},
1868
1875
  * or {@link PlayJob.get}.
1869
1876
  *
1870
1877
  * @example
@@ -2143,7 +2150,7 @@ export interface PlayCheckToolGetterHint {
2143
2150
  * Request body for starting a play run via {@link DeeplineClient.startPlayRun}.
2144
2151
  *
2145
2152
  * Internal/advanced request shape for low-level submission primitives.
2146
- * Most callers should prefer `deepline plays run`, {@link DeeplineClient.runPlay},
2153
+ * Most callers should prefer `deepline run`, {@link DeeplineClient.runPlay},
2147
2154
  * or {@link Deepline.connect}.
2148
2155
  *
2149
2156
  * Either `name` (for live plays) or `artifactStorageKey` (for packaged ad hoc runs) is required.
@@ -2228,8 +2235,11 @@ export interface StartPlayRunRequest {
2228
2235
  integrationMode?: 'live' | 'eval_stub' | 'fixture';
2229
2236
  /** Fixture-only provider response timing and outcome simulation. */
2230
2237
  fixtureBehavior?: import('../../shared_libs/play-runtime/fixture-behavior').FixtureBehavior;
2231
- /** Internal runtime estate selection. The app host remains unchanged. */
2232
- runtime?: PlayRuntimeSelection;
2238
+ /**
2239
+ * Internal runtime selection: a Preview estate, or the app's own runtime on
2240
+ * a named sandbox placement policy. The app host remains unchanged.
2241
+ */
2242
+ runtime?: PlayRunRuntimeSelection;
2233
2243
  /** Internal/dev-only runtime policy overrides for black-box durability tests. */
2234
2244
  testPolicyOverrides?: Record<string, unknown>;
2235
2245
  }
@@ -38,6 +38,21 @@ export type BillingEntitlements = {
38
38
  remaining: number;
39
39
  };
40
40
  };
41
+ /** Managed database storage (GB) included before overage. */
42
+ includedStorage?: {
43
+ status: 'active';
44
+ usage: {
45
+ /** GB included. */
46
+ limit: number;
47
+ /** GB stored on the latest measured UTC day. */
48
+ consumed: number;
49
+ remaining: number;
50
+ /** The UTC day `consumed` was measured, `YYYY-MM-DD`. */
51
+ measuredDay: string;
52
+ /** False when storage charges are not rolled out to the workspace. */
53
+ overageCharged: boolean;
54
+ };
55
+ };
41
56
  quickenrichUnlimited?: {
42
57
  status: 'active' | 'past_due';
43
58
  value: BillingBenefitValues['quickenrichUnlimited'];