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
@@ -114,6 +114,16 @@ export const RUNNER_MEMORY_CGROUP_ROOT = '/sys/fs/cgroup';
114
114
  */
115
115
  export const RUNNER_MEMORY_CGROUP_UNLIMITED_BYTES = 2 ** 50;
116
116
 
117
+ /** How often the watchdog checks that its own timers still fire on time. */
118
+ export const RUNNER_SANDBOX_STALL_TICK_MS = 1_000;
119
+
120
+ /**
121
+ * A timer this late is worth reporting. It sits far above ordinary scheduling
122
+ * jitter on a one-core sandbox and well below the shortest observed sandbox
123
+ * silence, so a report is evidence of a stall and quiet sandboxes send nothing.
124
+ */
125
+ export const RUNNER_SANDBOX_STALL_REPORT_MS = 5_000;
126
+
117
127
  /** `reason` written into the termination diagnostic on a memory abort. */
118
128
  export const RUNTIME_SANDBOX_MEMORY_ABORT_REASON =
119
129
  RUNTIME_SANDBOX_MEMORY_ABORT_CODE;
@@ -194,12 +204,107 @@ let heartbeatCadenceMs = 0;
194
204
  let heartbeatController = null;
195
205
  let heartbeatInFlight = false;
196
206
  let heartbeatStopped = false;
207
+ let heartbeatSilenced = false;
197
208
  let heartbeatConfigRead = false;
198
209
  let heartbeatConfig = null;
199
210
  let heartbeatLastSuccessAtMs = 0;
200
211
  let heartbeatAttempt = 0;
201
212
  let stopRequested = false;
202
213
 
214
+ // --- sandbox stall evidence -------------------------------------------------
215
+ // When a sandbox goes silent, only something inside it can say why, and it can
216
+ // only say so afterwards. Comparing two clocks separates the causes: a paused
217
+ // VM stops the monotonic clock while wall time jumps, a frozen container jumps
218
+ // both, and a network cut jumps neither while heartbeats fail. Pressure deltas
219
+ // show a stall in disk, memory or CPU.
220
+ let stallWallAtMs = Date.now();
221
+ let stallMonotonicAtMs = performance.now();
222
+ let stallMaxWallGapMs = 0;
223
+ let stallMaxMonotonicGapMs = 0;
224
+ let heartbeatFailureCount = 0;
225
+ let heartbeatLastErrorCode = null;
226
+ let pressureBaseline = readSandboxPressure();
227
+
228
+ // Only this sandbox's own counters. /proc/pressure covers the whole host on a
229
+ // shared kernel, so another workload's contention would read as a stall here.
230
+ function readPressureTotalUs(resource) {
231
+ try {
232
+ const match = /^some .*total=(\\d+)$/m.exec(fs.readFileSync(cgroupRoot + '/' + resource + '.pressure', 'utf8'));
233
+ if (match) return Number(match[1]);
234
+ } catch {}
235
+ return null;
236
+ }
237
+
238
+ function readCpuThrottledUs() {
239
+ try {
240
+ const match = /^throttled_usec (\\d+)$/m.exec(fs.readFileSync(cgroupRoot + '/cpu.stat', 'utf8'));
241
+ if (match) return Number(match[1]);
242
+ } catch {}
243
+ return null;
244
+ }
245
+
246
+ function readSandboxPressure() {
247
+ return {
248
+ cpuPressureUs: readPressureTotalUs('cpu'),
249
+ ioPressureUs: readPressureTotalUs('io'),
250
+ memoryPressureUs: readPressureTotalUs('memory'),
251
+ cpuThrottledUs: readCpuThrottledUs(),
252
+ };
253
+ }
254
+
255
+ function pressureDelta(current, baseline) {
256
+ return current === null || baseline === null ? null : Math.max(0, current - baseline);
257
+ }
258
+
259
+ function observeStallTick() {
260
+ const wallMs = Date.now();
261
+ const monotonicMs = performance.now();
262
+ stallMaxWallGapMs = Math.max(stallMaxWallGapMs, wallMs - stallWallAtMs - ${RUNNER_SANDBOX_STALL_TICK_MS});
263
+ stallMaxMonotonicGapMs = Math.max(stallMaxMonotonicGapMs, monotonicMs - stallMonotonicAtMs - ${RUNNER_SANDBOX_STALL_TICK_MS});
264
+ stallWallAtMs = wallMs;
265
+ stallMonotonicAtMs = monotonicMs;
266
+ }
267
+
268
+ // Gaps clear when taken, so a stall that begins while this heartbeat is in
269
+ // flight waits for the next one instead of being cleared by its response.
270
+ function takeSandboxHealth() {
271
+ observeStallTick();
272
+ const pressure = readSandboxPressure();
273
+ if (
274
+ stallMaxWallGapMs < ${RUNNER_SANDBOX_STALL_REPORT_MS} &&
275
+ stallMaxMonotonicGapMs < ${RUNNER_SANDBOX_STALL_REPORT_MS} &&
276
+ heartbeatFailureCount === 0
277
+ ) {
278
+ pressureBaseline = pressure;
279
+ return null;
280
+ }
281
+ const report = {
282
+ maxTimerGapWallMs: Math.round(stallMaxWallGapMs),
283
+ maxTimerGapMonotonicMs: Math.round(stallMaxMonotonicGapMs),
284
+ heartbeatFailures: heartbeatFailureCount,
285
+ lastHeartbeatErrorCode: heartbeatLastErrorCode,
286
+ heartbeatAgeMs: Math.max(0, Date.now() - heartbeatLastSuccessAtMs),
287
+ cpuPressureUs: pressureDelta(pressure.cpuPressureUs, pressureBaseline.cpuPressureUs),
288
+ ioPressureUs: pressureDelta(pressure.ioPressureUs, pressureBaseline.ioPressureUs),
289
+ memoryPressureUs: pressureDelta(pressure.memoryPressureUs, pressureBaseline.memoryPressureUs),
290
+ cpuThrottledUs: pressureDelta(pressure.cpuThrottledUs, pressureBaseline.cpuThrottledUs),
291
+ };
292
+ stallMaxWallGapMs = 0;
293
+ stallMaxMonotonicGapMs = 0;
294
+ pressureBaseline = pressure;
295
+ return report;
296
+ }
297
+
298
+ function restoreSandboxHealth(report, baseline) {
299
+ if (!report) return;
300
+ stallMaxWallGapMs = Math.max(stallMaxWallGapMs, report.maxTimerGapWallMs);
301
+ stallMaxMonotonicGapMs = Math.max(stallMaxMonotonicGapMs, report.maxTimerGapMonotonicMs);
302
+ pressureBaseline = baseline;
303
+ }
304
+
305
+ const stallWatch = setInterval(observeStallTick, ${RUNNER_SANDBOX_STALL_TICK_MS});
306
+ stallWatch.unref?.();
307
+
203
308
  function readRunnerHeartbeatConfig() {
204
309
  if (heartbeatConfigRead) return heartbeatConfig;
205
310
  heartbeatConfigRead = true;
@@ -211,6 +316,7 @@ function readRunnerHeartbeatConfig() {
211
316
  const executorToken = context && context.executorToken;
212
317
  const runId = push && push.runId;
213
318
  const leaseSeconds = Number(push && push.leaseSeconds);
319
+ const silenceMs = Number(push && push.heartbeatSilenceMs);
214
320
  if (
215
321
  !gatewayBaseUrl ||
216
322
  typeof executorToken !== 'string' ||
@@ -227,6 +333,7 @@ function readRunnerHeartbeatConfig() {
227
333
  executorToken,
228
334
  runId,
229
335
  leaseMs: Math.max(1_000, Math.floor(leaseSeconds * 1_000)),
336
+ silenceMs: Number.isSafeInteger(silenceMs) && silenceMs > 0 ? silenceMs : 0,
230
337
  };
231
338
  } catch {}
232
339
  return heartbeatConfig;
@@ -249,8 +356,12 @@ function stopRunnerHeartbeat() {
249
356
  }
250
357
 
251
358
  function runnerHeartbeatErrorCode(error) {
252
- const code = error && typeof error.code === 'string' ? error.code : '';
253
- if (/^(?:E[A-Z0-9_]+|ERR_[A-Z0-9_]+|UND_ERR_[A-Z0-9_]+|http_[0-9]{3}|redirect_[0-9]{3}|protocol_error)$/.test(code)) return code;
359
+ // fetch wraps every transport failure in a TypeError and keeps the network
360
+ // error on its cause. That code is what separates DNS from connect from reset.
361
+ const code = [error, error && error.cause]
362
+ .map((candidate) => (candidate && typeof candidate.code === 'string' ? candidate.code : ''))
363
+ .find((candidate) => /^(?:E[A-Z0-9_]+|ERR_[A-Z0-9_]+|UND_ERR_[A-Z0-9_]+|http_[0-9]{3}|redirect_[0-9]{3}|protocol_error)$/.test(candidate));
364
+ if (code) return code;
254
365
  const name = error && typeof error.name === 'string' ? error.name : '';
255
366
  if (name === 'AbortError' || name === 'TimeoutError') return name;
256
367
  return 'unknown';
@@ -273,13 +384,34 @@ function startRunnerHeartbeatSupervisor() {
273
384
  '\\n',
274
385
  );
275
386
  heartbeatCadenceMs = cadenceMs;
387
+ if (config.silenceMs > 0) {
388
+ // Test drill: the runner keeps working while the scheduler hears nothing.
389
+ // Only the worker sets this, and never on a Production launch.
390
+ heartbeatSilenced = true;
391
+ process.stderr.write(
392
+ '[play-runner.heartbeat] watchdog_owner_silence_started ' +
393
+ JSON.stringify({ runId: config.runId, silenceMs: config.silenceMs }) +
394
+ '\\n',
395
+ );
396
+ heartbeatRetryTimer = setTimeout(() => {
397
+ heartbeatRetryTimer = null;
398
+ heartbeatSilenced = false;
399
+ process.stderr.write(
400
+ '[play-runner.heartbeat] watchdog_owner_silence_finished ' +
401
+ JSON.stringify({ runId: config.runId }) +
402
+ '\\n',
403
+ );
404
+ void runnerHeartbeatTick();
405
+ }, config.silenceMs);
406
+ heartbeatRetryTimer.unref?.();
407
+ }
276
408
  void runnerHeartbeatTick();
277
409
  heartbeatTimer = setInterval(runnerHeartbeatTick, cadenceMs);
278
410
  heartbeatTimer.unref?.();
279
411
  }
280
412
 
281
413
  async function runnerHeartbeatTick() {
282
- if (heartbeatStopped || heartbeatInFlight || settled || !child || child.exitCode !== null) return;
414
+ if (heartbeatStopped || heartbeatSilenced || heartbeatInFlight || settled || !child || child.exitCode !== null) return;
283
415
  const config = readRunnerHeartbeatConfig();
284
416
  if (!config) return;
285
417
  heartbeatInFlight = true;
@@ -288,6 +420,8 @@ async function runnerHeartbeatTick() {
288
420
  const controller = new AbortController();
289
421
  heartbeatController = controller;
290
422
  const timeout = setTimeout(() => controller.abort(), ${RUNNER_HEARTBEAT_REQUEST_TIMEOUT_MS});
423
+ const reportPressureBaseline = pressureBaseline;
424
+ const sandboxHealth = takeSandboxHealth();
291
425
  try {
292
426
  const response = await fetch(
293
427
  config.gatewayBaseUrl + '/api/v2/plays/runtime',
@@ -298,7 +432,11 @@ async function runnerHeartbeatTick() {
298
432
  authorization: 'Bearer ' + config.executorToken,
299
433
  ${JSON.stringify(PLAY_RUNTIME_TRANSPORT_ATTEMPT_HEADER)}: require('node:crypto').randomUUID(),
300
434
  },
301
- body: JSON.stringify({ action: 'runner_heartbeat', runId: config.runId }),
435
+ body: JSON.stringify({
436
+ action: 'runner_heartbeat',
437
+ runId: config.runId,
438
+ ...(sandboxHealth ? { sandboxHealth } : {}),
439
+ }),
302
440
  redirect: 'manual',
303
441
  signal: controller.signal,
304
442
  },
@@ -326,12 +464,17 @@ async function runnerHeartbeatTick() {
326
464
  throw Object.assign(new Error('gateway_protocol_error'), { code: 'protocol_error' });
327
465
  }
328
466
  heartbeatLastSuccessAtMs = Date.now();
467
+ heartbeatFailureCount = 0;
468
+ heartbeatLastErrorCode = null;
329
469
  } catch (error) {
330
470
  if (heartbeatStopped || settled) return;
331
471
  const errorCode = controller.signal.aborted
332
472
  ? 'TimeoutError'
333
473
  : runnerHeartbeatErrorCode(error);
334
474
  const heartbeatAgeMs = Math.max(0, Date.now() - heartbeatLastSuccessAtMs);
475
+ heartbeatFailureCount += 1;
476
+ heartbeatLastErrorCode = errorCode;
477
+ restoreSandboxHealth(sandboxHealth, reportPressureBaseline);
335
478
  process.stderr.write(
336
479
  '[play-runner.heartbeat] watchdog_owner_retrying ' +
337
480
  JSON.stringify({ runId: config.runId, attempt: heartbeatAttempt, durationMs: Math.max(0, Date.now() - startedAt), heartbeatAgeMs, errorCode }) +
@@ -605,6 +748,7 @@ function finish(code) {
605
748
  settled = true;
606
749
  clearInterval(runtimeBoundaryPoll);
607
750
  clearInterval(memoryWatch);
751
+ clearInterval(stallWatch);
608
752
  stopRunnerHeartbeat();
609
753
  clearTimeout(startupTimer);
610
754
  if (runtimeTimer) clearTimeout(runtimeTimer);
@@ -360,6 +360,11 @@ export function prepareDetachedDaytonaRunner(input: {
360
360
  readiness: DetachedRunnerReadinessPort;
361
361
  cancellation?: Promise<never>;
362
362
  runControl<T>(operation: (sandbox: DaytonaSandbox) => Promise<T>): Promise<T>;
363
+ /**
364
+ * Invoked just before the command is sent. From then on a runner may exist
365
+ * in the sandbox, even if the request fails without an answer.
366
+ */
367
+ onCommandSending?: () => void;
363
368
  /** Invoked immediately after Daytona accepts the detached command. */
364
369
  onCommandAccepted?: (
365
370
  state: Extract<DetachedDaytonaRunnerState, { phase: 'command_accepted' }>,
@@ -400,6 +405,7 @@ export function prepareDetachedDaytonaRunner(input: {
400
405
  if (session.ok === false) throw session.error;
401
406
  const baseline = await Promise.race([readinessBaseline, cancellation]);
402
407
  if (baseline.ok === false) throw baseline.error;
408
+ input.onCommandSending?.();
403
409
  const response = await Promise.race([
404
410
  input.runControl((sandbox) =>
405
411
  sandbox.process.executeSessionCommand(input.sessionId, {