deepline 0.3.408 → 0.3.410

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 (217) hide show
  1. package/dist/bundling-sources/sdk/src/agent-runtime.ts +18 -1
  2. package/dist/bundling-sources/sdk/src/client.ts +212 -334
  3. package/dist/bundling-sources/sdk/src/compat.ts +45 -2
  4. package/dist/bundling-sources/sdk/src/db/query.ts +9 -10
  5. package/dist/bundling-sources/sdk/src/http.ts +38 -20
  6. package/dist/bundling-sources/sdk/src/index.ts +4 -5
  7. package/dist/bundling-sources/sdk/src/play.ts +10 -10
  8. package/dist/bundling-sources/sdk/src/plays/bundle-play-file.ts +6 -4
  9. package/dist/bundling-sources/sdk/src/plays/check-local-play-graph.ts +114 -0
  10. package/dist/bundling-sources/sdk/src/plays/client.ts +431 -0
  11. package/dist/bundling-sources/sdk/src/plays/local-play-execution.ts +2 -2
  12. package/dist/bundling-sources/sdk/src/plays/run-request.ts +106 -16
  13. package/dist/bundling-sources/sdk/src/release.ts +13 -7
  14. package/dist/bundling-sources/sdk/src/runs/read-errors.ts +8 -0
  15. package/dist/bundling-sources/sdk/src/runs/watch-polling.ts +124 -13
  16. package/dist/bundling-sources/sdk/src/tool-calls.ts +108 -19
  17. package/dist/bundling-sources/sdk/src/types.ts +18 -0
  18. package/dist/bundling-sources/shared_libs/integration-contracts/execute-retry-contract.ts +37 -0
  19. package/dist/bundling-sources/shared_libs/integration-contracts/package.json +3 -0
  20. package/dist/bundling-sources/shared_libs/play-data-plane/r2.ts +3 -1
  21. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +277 -76
  22. package/dist/bundling-sources/shared_libs/play-runtime/ctx-types.ts +6 -0
  23. package/dist/bundling-sources/shared_libs/play-runtime/dataset-row-input.ts +124 -0
  24. package/dist/bundling-sources/shared_libs/play-runtime/durable-call-cache.ts +6 -62
  25. package/dist/bundling-sources/shared_libs/play-runtime/durable-receipt-execution.ts +1 -0
  26. package/dist/bundling-sources/shared_libs/play-runtime/durable-tool-identity.ts +67 -0
  27. package/dist/bundling-sources/shared_libs/play-runtime/execute-server-timing.ts +64 -6
  28. package/dist/bundling-sources/shared_libs/play-runtime/freshness-receipt-execution.ts +1 -5
  29. package/dist/bundling-sources/shared_libs/play-runtime/ledger-safe-payload.ts +1 -1
  30. package/dist/bundling-sources/shared_libs/play-runtime/play-artifact-runtime-contract.ts +3 -0
  31. package/dist/bundling-sources/shared_libs/play-runtime/play-http-request.ts +10 -0
  32. package/dist/bundling-sources/shared_libs/play-runtime/query-result-dataset.ts +3 -0
  33. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/egress-probe.ts +3 -0
  34. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +26 -16
  35. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-heartbeat.ts +36 -11
  36. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-terminal-push.ts +35 -0
  37. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-launch-transport.ts +21 -0
  38. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-payload-transport.ts +21 -6
  39. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-session-execution.ts +11 -2
  40. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona.ts +85 -20
  41. package/dist/bundling-sources/shared_libs/play-runtime/runtime-api.ts +71 -13
  42. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-execution-queries.ts +100 -0
  43. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-pool.ts +9 -5
  44. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-runtime-worker.ts +337 -146
  45. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-shared.ts +26 -12
  46. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-rate-state.ts +3 -1
  47. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +425 -102
  48. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-ledger-dispatch-authority.ts +4 -0
  49. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-ledger-outbox-recovery.ts +4 -0
  50. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-event-search.ts +9 -0
  51. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-sandbox-capacity.ts +181 -124
  52. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-worker-wake.ts +152 -0
  53. package/dist/bundling-sources/shared_libs/play-runtime/test-runtime-seams.ts +5 -3
  54. package/dist/bundling-sources/shared_libs/play-runtime/tool-cache-policy.ts +31 -0
  55. package/dist/bundling-sources/shared_libs/play-runtime/transient-service-error.ts +10 -0
  56. package/dist/bundling-sources/shared_libs/plays/ambiguous-write-error.ts +25 -0
  57. package/dist/bundling-sources/shared_libs/plays/artifact-types.ts +4 -0
  58. package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +63 -68
  59. package/dist/bundling-sources/shared_libs/plays/bundling/index.ts +129 -63
  60. package/dist/bundling-sources/shared_libs/plays/contracts.ts +14 -0
  61. package/dist/bundling-sources/shared_libs/plays/enrich-play-compiler.ts +58 -16
  62. package/dist/bundling-sources/shared_libs/plays/fetch-http-error.ts +50 -0
  63. package/dist/bundling-sources/shared_libs/plays/source-authoring-edition.ts +351 -0
  64. package/dist/bundling-sources/shared_libs/plays/tool-list-getter-mode.ts +9 -0
  65. package/dist/bundling-sources/shared_libs/plays/tool-result-types.ts +1 -1
  66. package/dist/cli/{auth-UVD3CUBB.mjs → auth-LLXLIILR.mjs} +6 -6
  67. package/dist/cli/auth-UG4WOYGL.js +40 -0
  68. package/dist/cli/{billing-BZVTXXLM.mjs → billing-5FVXZYAC.mjs} +8 -8
  69. package/dist/cli/{billing-BZVYAF6T.js → billing-NFPK7GYP.js} +84 -84
  70. package/dist/cli/{chunk-ZAAKSJAS.js → chunk-27GJKC5Q.js} +17 -10
  71. package/dist/cli/{chunk-UHNDVD3P.js → chunk-2H4EY7KH.js} +100 -41
  72. package/dist/cli/{chunk-WTT6CLED.mjs → chunk-2YR7BIIC.mjs} +5 -2
  73. package/dist/cli/{chunk-3ZB6IIA7.js → chunk-36AHOWVS.js} +26 -26
  74. package/dist/cli/{chunk-OSDXE27V.mjs → chunk-4PG4ARL2.mjs} +17 -10
  75. package/dist/cli/{chunk-LOYISF7S.mjs → chunk-4XQLVUC7.mjs} +738 -512
  76. package/dist/cli/{chunk-J5PTX66Y.js → chunk-5MLCBXXU.js} +8 -1
  77. package/dist/cli/chunk-5TUGWDEB.js +313 -0
  78. package/dist/cli/{chunk-D6FFBSM5.js → chunk-5UUQAGJS.js} +5 -2
  79. package/dist/cli/{chunk-4CFULMRB.mjs → chunk-5V5Y37BC.mjs} +2 -2
  80. package/dist/cli/{chunk-PMVFAYL7.mjs → chunk-63ILLN5H.mjs} +2 -2
  81. package/dist/cli/{chunk-AUMD2VXP.js → chunk-63S7X326.js} +1032 -806
  82. package/dist/cli/{chunk-4QFT5LGV.mjs → chunk-6PGATQ6L.mjs} +6 -3
  83. package/dist/cli/{chunk-6BJK4EJ3.mjs → chunk-AARWVK4C.mjs} +2132 -65
  84. package/dist/cli/{chunk-FERRDNMO.js → chunk-AD47BXN2.js} +5 -5
  85. package/dist/cli/{chunk-4RNDKFNQ.js → chunk-D37FEBES.js} +2 -2
  86. package/dist/cli/{chunk-S6R3OX7B.js → chunk-E4CABWXL.js} +25 -2
  87. package/dist/cli/{chunk-NXGCO4JB.mjs → chunk-E4IXDAZI.mjs} +5 -0
  88. package/dist/cli/chunk-EQ4Z7RJW.mjs +35 -0
  89. package/dist/cli/chunk-FR2ILQ4G.mjs +8 -0
  90. package/dist/cli/{chunk-QUAQX3FQ.js → chunk-FVLNYDI4.js} +128 -376
  91. package/dist/cli/{chunk-BRJUESQV.js → chunk-FZJAM576.js} +50 -50
  92. package/dist/cli/{chunk-BZAMOCPA.mjs → chunk-IMZ56EOH.mjs} +3 -3
  93. package/dist/cli/{chunk-IOHRWLQE.mjs → chunk-IPG42SD2.mjs} +452 -138
  94. package/dist/cli/chunk-J33TSWO5.js +8 -0
  95. package/dist/cli/{chunk-XXLXOUUU.mjs → chunk-JNXJZ577.mjs} +1 -1
  96. package/dist/cli/{chunk-JI2B4RZP.mjs → chunk-KCC3FKIW.mjs} +71 -12
  97. package/dist/cli/{chunk-6IKARAYD.mjs → chunk-L2VKAASU.mjs} +23 -0
  98. package/dist/cli/{chunk-PYZZMAJQ.mjs → chunk-LFSHGNT2.mjs} +8 -1
  99. package/dist/cli/{chunk-2XXXFPTD.js → chunk-LTFL4JRN.js} +426 -721
  100. package/dist/cli/{chunk-YHPYUZZX.mjs → chunk-MAMVGOSC.mjs} +1 -1
  101. package/dist/cli/{chunk-URACNNLO.mjs → chunk-MN2OWLFA.mjs} +2 -2
  102. package/dist/cli/{chunk-Q3PUHXOY.js → chunk-NF4V5DTY.js} +12 -12
  103. package/dist/cli/{chunk-Q2E4E4FJ.js → chunk-NPBJI7RE.js} +8 -8
  104. package/dist/cli/chunk-NTVLGHFM.js +501 -0
  105. package/dist/cli/{chunk-HQXL5526.mjs → chunk-NUX2QHNC.mjs} +1 -1
  106. package/dist/cli/{chunk-E3PJF6YP.js → chunk-OBB4QXHA.js} +19 -4
  107. package/dist/cli/{chunk-SEFMGO3Z.js → chunk-OQQOXSYA.js} +2184 -117
  108. package/dist/cli/chunk-OZ6E3IRZ.js +6084 -0
  109. package/dist/cli/{chunk-7P5AA3SN.js → chunk-PPDBRJRW.js} +6 -1
  110. package/dist/cli/{chunk-IWBXJDZA.mjs → chunk-PZSLPBDA.mjs} +2 -2
  111. package/dist/cli/{chunk-ILHRA7AD.js → chunk-QADCFSGH.js} +7 -7
  112. package/dist/cli/{chunk-ECVLPS67.js → chunk-QJI5FIOW.js} +170 -49
  113. package/dist/cli/{chunk-I3DHIXVJ.mjs → chunk-QL22Y56M.mjs} +149 -28
  114. package/dist/cli/{chunk-SD7MXAJA.mjs → chunk-RFB25DSQ.mjs} +36 -284
  115. package/dist/cli/chunk-T44IIOT6.mjs +501 -0
  116. package/dist/cli/chunk-VK2LZ5IP.js +35 -0
  117. package/dist/cli/chunk-VKKVSFRD.js +62 -0
  118. package/dist/cli/{chunk-RWCY6YI2.js → chunk-VYKV5XHL.js} +644 -330
  119. package/dist/cli/{chunk-GSK6NHVM.js → chunk-WU4U6VSB.js} +5 -5
  120. package/dist/cli/chunk-XHLKJOTN.mjs +313 -0
  121. package/dist/cli/{chunk-MJELBQBU.mjs → chunk-XIHWSXSV.mjs} +330 -625
  122. package/dist/cli/chunk-XNZJKRJA.mjs +6084 -0
  123. package/dist/cli/chunk-ZCALLYF6.mjs +62 -0
  124. package/dist/cli/{chunk-ZBABPK6Y.js → chunk-ZFZ427HN.js} +11 -8
  125. package/dist/cli/{chunk-SJVVBWRL.mjs → chunk-ZKYEW55U.mjs} +16 -1
  126. package/dist/cli/command-docs.js +2 -2
  127. package/dist/cli/command-docs.mjs +1 -1
  128. package/dist/cli/{csv-XLGLHJ6P.js → csv-7U3FJYKZ.js} +14 -14
  129. package/dist/cli/{csv-WPSXG6ZZ.mjs → csv-ZWLDMM4A.mjs} +5 -5
  130. package/dist/cli/{db-5PTNJG4X.js → db-DNCGV5PC.js} +42 -47
  131. package/dist/cli/{db-ABS57ABJ.mjs → db-IMYXVMGI.mjs} +15 -20
  132. package/dist/cli/{describe-PVWQJ2PB.mjs → describe-Q23DWJUK.mjs} +20 -15
  133. package/dist/cli/{describe-EZS6PQXA.js → describe-S34JUX5W.js} +27 -22
  134. package/dist/cli/describe-core.d.mts +2 -2
  135. package/dist/cli/describe-core.d.ts +2 -2
  136. package/dist/cli/describe-core.js +6 -6
  137. package/dist/cli/describe-core.mjs +5 -5
  138. package/dist/cli/{executions-OKJGATQZ.mjs → executions-A73EUGSI.mjs} +8 -8
  139. package/dist/cli/{executions-FNTAFQ7Y.js → executions-XOMPX2YJ.js} +10 -10
  140. package/dist/cli/{feedback-W27HDMRR.mjs → feedback-N4GJ2POI.mjs} +11 -7
  141. package/dist/cli/{feedback-6YBOMSUA.js → feedback-QTCHNJJH.js} +13 -9
  142. package/dist/cli/{git-YOOUEL6M.mjs → git-4Q3JIQYZ.mjs} +6 -6
  143. package/dist/cli/git-I6CPBEVG.js +24 -0
  144. package/dist/cli/index.js +240 -352
  145. package/dist/cli/index.mjs +163 -275
  146. package/dist/cli/{legacy-noops-V6OKW7VR.mjs → legacy-noops-3SOVGFF7.mjs} +6 -6
  147. package/dist/cli/{legacy-noops-2VZ7XT6C.js → legacy-noops-4OSHZM34.js} +9 -9
  148. package/dist/cli/{monitors-FBWGVIUS.js → monitors-LVE2KZNG.js} +94 -94
  149. package/dist/cli/{monitors-P2YYWTWT.mjs → monitors-QP2XID2B.mjs} +8 -8
  150. package/dist/cli/{org-DVMG6H3C.mjs → org-IVRETVQA.mjs} +8 -8
  151. package/dist/cli/{org-3XUSVX5T.js → org-XFLK5IAP.js} +68 -68
  152. package/dist/cli/{play-GNC5CQAS.mjs → play-DE7VH6NU.mjs} +533 -98
  153. package/dist/cli/{play-YG5L4BWQ.js → play-XXTPPP23.js} +1067 -632
  154. package/dist/cli/{providers-7PSWG2OV.js → providers-DLD3I4JF.js} +11 -11
  155. package/dist/cli/{providers-JR33SLWL.mjs → providers-GX2NIZQQ.mjs} +8 -8
  156. package/dist/cli/{quickstart-VUOBQYIQ.mjs → quickstart-72B4L4PK.mjs} +5 -5
  157. package/dist/cli/{quickstart-FDVZ5BL3.js → quickstart-XNS3HSWC.js} +7 -7
  158. package/dist/cli/search-6NCH4HB5.js +30 -0
  159. package/dist/cli/{search-JZYLO33K.mjs → search-SUTRANJI.mjs} +9 -9
  160. package/dist/cli/{secrets-VS266FVA.js → secrets-6OBLOVEV.js} +17 -17
  161. package/dist/cli/{secrets-3MCYBT4I.mjs → secrets-FPFXXNUH.mjs} +8 -8
  162. package/dist/cli/sessions-235532DR.js +16 -0
  163. package/dist/cli/{sessions-ELLLT23E.mjs → sessions-R25I4QKN.mjs} +6 -6
  164. package/dist/cli/{settings-PZCKAFII.mjs → settings-AOP6F5PZ.mjs} +12 -12
  165. package/dist/cli/{settings-7364NMMA.js → settings-VL5FOFPN.js} +79 -79
  166. package/dist/cli/{setup-PMWYLCT6.js → setup-BSC67YT3.js} +45 -44
  167. package/dist/cli/{setup-A7GQ4KIA.mjs → setup-ZMPHBHVJ.mjs} +11 -10
  168. package/dist/cli/skills-3IWLYYRL.js +29 -0
  169. package/dist/cli/{skills-WS6BIFPQ.mjs → skills-KF65TVFO.mjs} +7 -7
  170. package/dist/cli/tools-LR66SPYU.js +44 -0
  171. package/dist/cli/{tools-BR4DOZA2.mjs → tools-SX4XIPM7.mjs} +19 -14
  172. package/dist/cli/{update-D2B7UNFT.mjs → update-QRMFRAQQ.mjs} +11 -9
  173. package/dist/cli/update-SP7UEO53.js +31 -0
  174. package/dist/cli/{workflow-PQXC2R47.mjs → workflow-FOEEEB7G.mjs} +44 -20
  175. package/dist/cli/{workflow-6ODTCYXU.js → workflow-KOCK2FLW.js} +54 -30
  176. package/dist/{client-Z9Pye1Wm.d.mts → client-74k4IPh6.d.mts} +137 -54
  177. package/dist/{client-BcvhDfJJ.d.ts → client-C1IK1f8c.d.ts} +137 -54
  178. package/dist/{compiler-manifest-Ycx-hoAr.d.mts → compiler-manifest-lzWpbV3w.d.mts} +83 -66
  179. package/dist/{compiler-manifest-Ycx-hoAr.d.ts → compiler-manifest-lzWpbV3w.d.ts} +83 -66
  180. package/dist/{index-CZXgiN3E.d.mts → index-C8Cy-YTm.d.ts} +5 -1
  181. package/dist/{index-NPG5pqxQ.d.ts → index-CtNK-0nI.d.mts} +5 -1
  182. package/dist/index.d.mts +47 -9
  183. package/dist/index.d.ts +47 -9
  184. package/dist/index.js +17 -14
  185. package/dist/index.mjs +13 -10
  186. package/dist/install-integrity.json +120 -104
  187. package/dist/plays/bundle-play-file.d.mts +3 -3
  188. package/dist/plays/bundle-play-file.d.ts +3 -3
  189. package/dist/plays/bundle-play-file.mjs +5 -4
  190. package/dist/plays/csv-data-input.js +3 -3
  191. package/dist/plays/csv-data-input.mjs +2 -2
  192. package/dist/plays/play-description.d.mts +2 -2
  193. package/dist/plays/play-description.d.ts +2 -2
  194. package/dist/plays/run-request.d.mts +2 -2
  195. package/dist/plays/run-request.d.ts +2 -2
  196. package/dist/plays/run-request.js +11 -3
  197. package/dist/plays/run-request.mjs +10 -2
  198. package/dist/release.d.mts +15 -6
  199. package/dist/release.d.ts +15 -6
  200. package/dist/release.js +2 -2
  201. package/dist/release.mjs +1 -1
  202. package/package.json +2 -2
  203. package/dist/cli/auth-3GB2K636.js +0 -40
  204. package/dist/cli/chunk-67RWR34T.mjs +0 -155
  205. package/dist/cli/chunk-CLJGSOVM.mjs +0 -1716
  206. package/dist/cli/chunk-HQY2SG3K.js +0 -83
  207. package/dist/cli/chunk-OSFWFV72.js +0 -155
  208. package/dist/cli/chunk-Q3LFI3VH.js +0 -392
  209. package/dist/cli/chunk-WPAB4DCU.mjs +0 -83
  210. package/dist/cli/chunk-YMOFWHGO.mjs +0 -392
  211. package/dist/cli/chunk-Z4VNJOF7.js +0 -1716
  212. package/dist/cli/git-YKUXXJOR.js +0 -24
  213. package/dist/cli/search-PPPYC5OZ.js +0 -30
  214. package/dist/cli/sessions-TEHEWW7O.js +0 -16
  215. package/dist/cli/skills-SYS7VRRK.js +0 -29
  216. package/dist/cli/tools-KK4BKVQR.js +0 -39
  217. package/dist/cli/update-2IV5JTX2.js +0 -29
@@ -6,9 +6,9 @@ import {
6
6
  } from "./chunk-H7HIDGZ7.mjs";
7
7
  import {
8
8
  DeeplineClient
9
- } from "./chunk-LOYISF7S.mjs";
10
- import "./chunk-6IKARAYD.mjs";
11
- import "./chunk-JI2B4RZP.mjs";
9
+ } from "./chunk-4XQLVUC7.mjs";
10
+ import "./chunk-L2VKAASU.mjs";
11
+ import "./chunk-KCC3FKIW.mjs";
12
12
  import "./chunk-EIMG75BT.mjs";
13
13
  import "./chunk-UBKA33KY.mjs";
14
14
  import {
@@ -16,12 +16,12 @@ import {
16
16
  printJson,
17
17
  shouldEmitJson,
18
18
  sleep
19
- } from "./chunk-4CFULMRB.mjs";
20
- import "./chunk-SD7MXAJA.mjs";
21
- import "./chunk-YHPYUZZX.mjs";
19
+ } from "./chunk-5V5Y37BC.mjs";
20
+ import "./chunk-RFB25DSQ.mjs";
21
+ import "./chunk-MAMVGOSC.mjs";
22
22
  import "./chunk-DLIRSHV6.mjs";
23
- import "./chunk-NXGCO4JB.mjs";
24
- import "./chunk-WTT6CLED.mjs";
23
+ import "./chunk-E4IXDAZI.mjs";
24
+ import "./chunk-2YR7BIIC.mjs";
25
25
  import "./chunk-WZYKRD7T.mjs";
26
26
  import "./chunk-KRD6H754.mjs";
27
27
 
@@ -230,7 +230,7 @@ function renderExecuteStep(command, options = {
230
230
  const runIfJs = options.nativeRunIf ? "null" : renderRunIfFunction(command) ?? "null";
231
231
  const description = command.description ? `,
232
232
  description: ${stringLiteral(command.description)}` : "";
233
- const force = options.force ? `,
233
+ const force = options.force && !options.explicitFreshness ? `,
234
234
  force: true` : "";
235
235
  const legacyEnvelope = options.legacyEnvelope ? `,
236
236
  legacyEnvelope: true` : "";
@@ -309,8 +309,9 @@ function renderIdiomaticExecuteStep(command, options) {
309
309
  ` id: ${callId},`,
310
310
  ` tool: ${tool},`,
311
311
  ` input: ${input} as any,`,
312
+ ...options.explicitFreshness ? [` staleAfterSeconds: 0,`] : [],
312
313
  ` description: ${stringLiteral((command.description ?? "").trim() || `Run ${command.alias} via ${command.tool}.`)},`,
313
- ...options.force ? [` force: true,`] : [],
314
+ ...options.force && !options.explicitFreshness ? [` force: true,`] : [],
314
315
  ` });`,
315
316
  ` __dlAssertSuccessfulToolResult(result);`,
316
317
  ` return ${extraction};`,
@@ -341,7 +342,7 @@ function renderPlayStep(command, options) {
341
342
  // Enrich validates and normalizes this payload against the certified
342
343
  // prebuilt contract before code generation. The attachment retains
343
344
  // its concrete input type, while generated payloads are records.
344
- ` await __dlRunInlinePlay(${inlineHandler}, stepCtx, payload as never, ${options.force});`
345
+ options.explicitFreshness ? ` await __dlRunInlinePlay_${inline.sourceHash.slice(0, 16)}(stepCtx, payload as never, ${options.force});` : ` await __dlRunInlinePlay(${inlineHandler}, stepCtx, payload as never, ${options.force});`
345
346
  ] : [
346
347
  ` await stepCtx.runPlay(${callId}, ${playRef}, payload, {`,
347
348
  ` description: ${stringLiteral(command.description ?? command.alias)}`,
@@ -499,7 +500,7 @@ function renderMetadataColumnStep(config) {
499
500
  ` )`
500
501
  ].join("\n");
501
502
  }
502
- function renderWaterfallColumns(command, forceAliases, inlineRunJavascript, idiomaticGetters) {
503
+ function renderWaterfallColumns(command, forceAliases, inlineRunJavascript, idiomaticGetters, explicitFreshness) {
503
504
  const activeChildren = command.commands.filter(
504
505
  (nested) => !isWaterfall(nested) && !nested.disabled
505
506
  );
@@ -522,6 +523,7 @@ function renderWaterfallColumns(command, forceAliases, inlineRunJavascript, idio
522
523
  nested.alias,
523
524
  renderExecuteStep(nested, {
524
525
  force,
526
+ explicitFreshness,
525
527
  precheck,
526
528
  legacyEnvelope: Boolean(nested.extract_js),
527
529
  inlineRunJavascript,
@@ -576,7 +578,8 @@ function compileEnrichConfigToPlaySource(config, options = {}) {
576
578
  command,
577
579
  forceAliases,
578
580
  inlineRunJavascript,
579
- idiomaticGetters
581
+ idiomaticGetters,
582
+ options.explicitFreshness === true
580
583
  )
581
584
  );
582
585
  return;
@@ -591,6 +594,7 @@ function compileEnrichConfigToPlaySource(config, options = {}) {
591
594
  command.alias,
592
595
  renderExecuteStep(command, {
593
596
  force,
597
+ explicitFreshness: options.explicitFreshness,
594
598
  inlineRunJavascript,
595
599
  idiomaticGetters,
596
600
  nativeRunIf: Boolean(runIfSource)
@@ -611,9 +615,10 @@ function compileEnrichConfigToPlaySource(config, options = {}) {
611
615
  const generatedDescription = describedColumns.length ? `Enrich CSV rows with ${describedColumns.join(", ")}.` : "Prepare CSV rows for enrichment.";
612
616
  const playOptionsSource = [
613
617
  `description: ${stringLiteral(generatedDescription)}`,
618
+ ...options.explicitFreshness === true ? [`compatibility: { authoringContract: 'explicit-freshness' }`] : [],
614
619
  ...options.maxCreditsPerRun === void 0 ? [] : [`billing: { maxCreditsPerRun: ${String(options.maxCreditsPerRun)} }`]
615
620
  ].join(", ");
616
- const body = [
621
+ const legacyInlineHelper = options.explicitFreshness ? [] : [
617
622
  `function __dlRunInlinePlay<TContext, TInput, TOutput>(handler: (ctx: TContext, input: TInput) => Promise<TOutput>, scope: TContext, payload: TInput, force: boolean): Promise<TOutput> {`,
618
623
  ` if (!force) return handler(scope, payload);`,
619
624
  ` const runtimeScope = scope as TContext & { __deeplineRunWithForcedTools?: <T>(run: () => Promise<T>) => Promise<T> };`,
@@ -622,10 +627,24 @@ function compileEnrichConfigToPlaySource(config, options = {}) {
622
627
  ` }`,
623
628
  ` return runtimeScope.__deeplineRunWithForcedTools(() => handler(scope, payload));`,
624
629
  `}`,
625
- ``,
630
+ ``
631
+ ];
632
+ const body = [
633
+ ...legacyInlineHelper,
626
634
  ...inlineHandlers.flatMap((inline) => [
627
635
  `const __dlInlinePlay_${inline.sourceHash.slice(0, 16)} = ${inline.functionExpressionSource};`,
628
- ``
636
+ ``,
637
+ ...options.explicitFreshness ? [
638
+ `async function __dlRunInlinePlay_${inline.sourceHash.slice(0, 16)}(scope: Parameters<typeof __dlInlinePlay_${inline.sourceHash.slice(0, 16)}>[0], payload: Parameters<typeof __dlInlinePlay_${inline.sourceHash.slice(0, 16)}>[1], force: boolean): Promise<unknown> {`,
639
+ ` if (!force) return __dlInlinePlay_${inline.sourceHash.slice(0, 16)}(scope, payload);`,
640
+ ` const runtimeScope = scope as typeof scope & { __deeplineRunWithForcedTools?: <T>(run: () => Promise<T>) => Promise<T> };`,
641
+ ` if (typeof runtimeScope.__deeplineRunWithForcedTools !== 'function') {`,
642
+ ` throw new Error('This runtime does not support forced certified inline play execution.');`,
643
+ ` }`,
644
+ ` return runtimeScope.__deeplineRunWithForcedTools(() => __dlInlinePlay_${inline.sourceHash.slice(0, 16)}(scope, payload));`,
645
+ `}`,
646
+ ``
647
+ ] : []
629
648
  ]),
630
649
  `export default definePlay(${stringLiteral(playName)}, async (ctx, input: EnrichInput) => {`,
631
650
  ` const sourceRows = await ctx.csv<Record<string, unknown>>(input.file);`,
@@ -648,7 +667,10 @@ function compileEnrichConfigToPlaySource(config, options = {}) {
648
667
  ` return { rows: enriched, count: await enriched.count() };`,
649
668
  `}, { ${playOptionsSource} });`
650
669
  ];
651
- const helpers = idiomaticGetters ? selectUsedHelpers(helperSource(), body.join("\n")) : helperSource();
670
+ const helpers = idiomaticGetters ? selectUsedHelpers(
671
+ helperSource(options.explicitFreshness),
672
+ body.join("\n")
673
+ ) : helperSource(options.explicitFreshness);
652
674
  const typeImports = idiomaticGetters ? inlineTypeImports : [.../* @__PURE__ */ new Set([...inlineTypeImports, "DeeplinePlayRuntimeContext"])].sort();
653
675
  return [
654
676
  ...inlineRunJavascript && configHasRunJavascript(config) ? ["// @ts-nocheck", "/* eslint-disable */", ""] : [],
@@ -687,7 +709,7 @@ function selectUsedHelpers(helperBlock, referenceSource) {
687
709
  }
688
710
  return blocks.filter((block) => used.has(block.name)).map((block) => block.source).join("\n\n");
689
711
  }
690
- function helperSource() {
712
+ function helperSource(explicitFreshness = false) {
691
713
  return [
692
714
  `function __dlWholeNumber(value: unknown, fallback: number): number {`,
693
715
  ` const numeric = Number(value);`,
@@ -1414,8 +1436,9 @@ function helperSource() {
1414
1436
  ` id: input.callId,`,
1415
1437
  ` tool: input.tool,`,
1416
1438
  ` input: payload,`,
1439
+ ...explicitFreshness ? [` staleAfterSeconds: 0,`] : [],
1417
1440
  ` ...(input.description ? { description: input.description } : {}),`,
1418
- ` ...(input.force ? { force: true } : {}),`,
1441
+ ...explicitFreshness ? [] : [` ...(input.force ? { force: true } : {}),`],
1419
1442
  ` });`,
1420
1443
  ` __dlAssertSuccessfulToolResult(result);`,
1421
1444
  ` return __dlExtract(input.alias, result, input.row, input.extract, Boolean(input.legacyEnvelope));`,
@@ -1542,6 +1565,7 @@ function compileWorkflowConfigToPlay(config, options) {
1542
1565
  validateWorkflowConfigForPlay(config);
1543
1566
  const playName = deriveWorkflowPlayName(options.workflowName);
1544
1567
  const sourceCode = compileEnrichConfigToPlaySource(config, {
1568
+ explicitFreshness: true,
1545
1569
  playName,
1546
1570
  inlineRunJavascript: true,
1547
1571
  idiomaticGetters: true
@@ -1676,7 +1700,7 @@ async function transformOne(api, workflowId, outDir, publish) {
1676
1700
  await writeFile(file, compiled.sourceCode, "utf8");
1677
1701
  let published = false;
1678
1702
  if (publish) {
1679
- const { handlePlayPublish } = await import("./play-GNC5CQAS.mjs");
1703
+ const { handlePlayPublish } = await import("./play-DE7VH6NU.mjs");
1680
1704
  const code = await handlePlayPublish([file]);
1681
1705
  if (code !== 0) {
1682
1706
  return {
@@ -6,9 +6,9 @@ var _chunk3XX5TEA4js = require('./chunk-3XX5TEA4.js');
6
6
  var _chunk3KC45UVFjs = require('./chunk-3KC45UVF.js');
7
7
 
8
8
 
9
- var _chunkAUMD2VXPjs = require('./chunk-AUMD2VXP.js');
10
- require('./chunk-S6R3OX7B.js');
11
- require('./chunk-UHNDVD3P.js');
9
+ var _chunk63S7X326js = require('./chunk-63S7X326.js');
10
+ require('./chunk-E4CABWXL.js');
11
+ require('./chunk-2H4EY7KH.js');
12
12
  require('./chunk-KXMNM4AQ.js');
13
13
  require('./chunk-XDVT3GOM.js');
14
14
 
@@ -16,12 +16,12 @@ require('./chunk-XDVT3GOM.js');
16
16
 
17
17
 
18
18
 
19
- var _chunkQ3PUHXOYjs = require('./chunk-Q3PUHXOY.js');
20
- require('./chunk-QUAQX3FQ.js');
21
- require('./chunk-Q2E4E4FJ.js');
19
+ var _chunkNF4V5DTYjs = require('./chunk-NF4V5DTY.js');
20
+ require('./chunk-FVLNYDI4.js');
21
+ require('./chunk-NPBJI7RE.js');
22
22
  require('./chunk-XNYIZMNQ.js');
23
- require('./chunk-7P5AA3SN.js');
24
- require('./chunk-D6FFBSM5.js');
23
+ require('./chunk-PPDBRJRW.js');
24
+ require('./chunk-5UUQAGJS.js');
25
25
  require('./chunk-OG64RBAC.js');
26
26
  require('./chunk-COGTRVWW.js');
27
27
 
@@ -230,7 +230,7 @@ function renderExecuteStep(command, options = {
230
230
  const runIfJs = options.nativeRunIf ? "null" : _nullishCoalesce(renderRunIfFunction(command), () => ( "null"));
231
231
  const description = command.description ? `,
232
232
  description: ${stringLiteral(command.description)}` : "";
233
- const force = options.force ? `,
233
+ const force = options.force && !options.explicitFreshness ? `,
234
234
  force: true` : "";
235
235
  const legacyEnvelope = options.legacyEnvelope ? `,
236
236
  legacyEnvelope: true` : "";
@@ -309,8 +309,9 @@ function renderIdiomaticExecuteStep(command, options) {
309
309
  ` id: ${callId},`,
310
310
  ` tool: ${tool},`,
311
311
  ` input: ${input} as any,`,
312
+ ...options.explicitFreshness ? [` staleAfterSeconds: 0,`] : [],
312
313
  ` description: ${stringLiteral((_nullishCoalesce(command.description, () => ( ""))).trim() || `Run ${command.alias} via ${command.tool}.`)},`,
313
- ...options.force ? [` force: true,`] : [],
314
+ ...options.force && !options.explicitFreshness ? [` force: true,`] : [],
314
315
  ` });`,
315
316
  ` __dlAssertSuccessfulToolResult(result);`,
316
317
  ` return ${extraction};`,
@@ -341,7 +342,7 @@ function renderPlayStep(command, options) {
341
342
  // Enrich validates and normalizes this payload against the certified
342
343
  // prebuilt contract before code generation. The attachment retains
343
344
  // its concrete input type, while generated payloads are records.
344
- ` await __dlRunInlinePlay(${inlineHandler}, stepCtx, payload as never, ${options.force});`
345
+ options.explicitFreshness ? ` await __dlRunInlinePlay_${inline.sourceHash.slice(0, 16)}(stepCtx, payload as never, ${options.force});` : ` await __dlRunInlinePlay(${inlineHandler}, stepCtx, payload as never, ${options.force});`
345
346
  ] : [
346
347
  ` await stepCtx.runPlay(${callId}, ${playRef}, payload, {`,
347
348
  ` description: ${stringLiteral(_nullishCoalesce(command.description, () => ( command.alias)))}`,
@@ -499,7 +500,7 @@ function renderMetadataColumnStep(config) {
499
500
  ` )`
500
501
  ].join("\n");
501
502
  }
502
- function renderWaterfallColumns(command, forceAliases, inlineRunJavascript, idiomaticGetters) {
503
+ function renderWaterfallColumns(command, forceAliases, inlineRunJavascript, idiomaticGetters, explicitFreshness) {
503
504
  const activeChildren = command.commands.filter(
504
505
  (nested) => !isWaterfall(nested) && !nested.disabled
505
506
  );
@@ -522,6 +523,7 @@ function renderWaterfallColumns(command, forceAliases, inlineRunJavascript, idio
522
523
  nested.alias,
523
524
  renderExecuteStep(nested, {
524
525
  force,
526
+ explicitFreshness,
525
527
  precheck,
526
528
  legacyEnvelope: Boolean(nested.extract_js),
527
529
  inlineRunJavascript,
@@ -576,7 +578,8 @@ function compileEnrichConfigToPlaySource(config, options = {}) {
576
578
  command,
577
579
  forceAliases,
578
580
  inlineRunJavascript,
579
- idiomaticGetters
581
+ idiomaticGetters,
582
+ options.explicitFreshness === true
580
583
  )
581
584
  );
582
585
  return;
@@ -591,6 +594,7 @@ function compileEnrichConfigToPlaySource(config, options = {}) {
591
594
  command.alias,
592
595
  renderExecuteStep(command, {
593
596
  force,
597
+ explicitFreshness: options.explicitFreshness,
594
598
  inlineRunJavascript,
595
599
  idiomaticGetters,
596
600
  nativeRunIf: Boolean(runIfSource)
@@ -611,9 +615,10 @@ function compileEnrichConfigToPlaySource(config, options = {}) {
611
615
  const generatedDescription = describedColumns.length ? `Enrich CSV rows with ${describedColumns.join(", ")}.` : "Prepare CSV rows for enrichment.";
612
616
  const playOptionsSource = [
613
617
  `description: ${stringLiteral(generatedDescription)}`,
618
+ ...options.explicitFreshness === true ? [`compatibility: { authoringContract: 'explicit-freshness' }`] : [],
614
619
  ...options.maxCreditsPerRun === void 0 ? [] : [`billing: { maxCreditsPerRun: ${String(options.maxCreditsPerRun)} }`]
615
620
  ].join(", ");
616
- const body = [
621
+ const legacyInlineHelper = options.explicitFreshness ? [] : [
617
622
  `function __dlRunInlinePlay<TContext, TInput, TOutput>(handler: (ctx: TContext, input: TInput) => Promise<TOutput>, scope: TContext, payload: TInput, force: boolean): Promise<TOutput> {`,
618
623
  ` if (!force) return handler(scope, payload);`,
619
624
  ` const runtimeScope = scope as TContext & { __deeplineRunWithForcedTools?: <T>(run: () => Promise<T>) => Promise<T> };`,
@@ -622,10 +627,24 @@ function compileEnrichConfigToPlaySource(config, options = {}) {
622
627
  ` }`,
623
628
  ` return runtimeScope.__deeplineRunWithForcedTools(() => handler(scope, payload));`,
624
629
  `}`,
625
- ``,
630
+ ``
631
+ ];
632
+ const body = [
633
+ ...legacyInlineHelper,
626
634
  ...inlineHandlers.flatMap((inline) => [
627
635
  `const __dlInlinePlay_${inline.sourceHash.slice(0, 16)} = ${inline.functionExpressionSource};`,
628
- ``
636
+ ``,
637
+ ...options.explicitFreshness ? [
638
+ `async function __dlRunInlinePlay_${inline.sourceHash.slice(0, 16)}(scope: Parameters<typeof __dlInlinePlay_${inline.sourceHash.slice(0, 16)}>[0], payload: Parameters<typeof __dlInlinePlay_${inline.sourceHash.slice(0, 16)}>[1], force: boolean): Promise<unknown> {`,
639
+ ` if (!force) return __dlInlinePlay_${inline.sourceHash.slice(0, 16)}(scope, payload);`,
640
+ ` const runtimeScope = scope as typeof scope & { __deeplineRunWithForcedTools?: <T>(run: () => Promise<T>) => Promise<T> };`,
641
+ ` if (typeof runtimeScope.__deeplineRunWithForcedTools !== 'function') {`,
642
+ ` throw new Error('This runtime does not support forced certified inline play execution.');`,
643
+ ` }`,
644
+ ` return runtimeScope.__deeplineRunWithForcedTools(() => __dlInlinePlay_${inline.sourceHash.slice(0, 16)}(scope, payload));`,
645
+ `}`,
646
+ ``
647
+ ] : []
629
648
  ]),
630
649
  `export default definePlay(${stringLiteral(playName)}, async (ctx, input: EnrichInput) => {`,
631
650
  ` const sourceRows = await ctx.csv<Record<string, unknown>>(input.file);`,
@@ -648,7 +667,10 @@ function compileEnrichConfigToPlaySource(config, options = {}) {
648
667
  ` return { rows: enriched, count: await enriched.count() };`,
649
668
  `}, { ${playOptionsSource} });`
650
669
  ];
651
- const helpers = idiomaticGetters ? selectUsedHelpers(helperSource(), body.join("\n")) : helperSource();
670
+ const helpers = idiomaticGetters ? selectUsedHelpers(
671
+ helperSource(options.explicitFreshness),
672
+ body.join("\n")
673
+ ) : helperSource(options.explicitFreshness);
652
674
  const typeImports = idiomaticGetters ? inlineTypeImports : [.../* @__PURE__ */ new Set([...inlineTypeImports, "DeeplinePlayRuntimeContext"])].sort();
653
675
  return [
654
676
  ...inlineRunJavascript && configHasRunJavascript(config) ? ["// @ts-nocheck", "/* eslint-disable */", ""] : [],
@@ -687,7 +709,7 @@ function selectUsedHelpers(helperBlock, referenceSource) {
687
709
  }
688
710
  return blocks.filter((block) => used.has(block.name)).map((block) => block.source).join("\n\n");
689
711
  }
690
- function helperSource() {
712
+ function helperSource(explicitFreshness = false) {
691
713
  return [
692
714
  `function __dlWholeNumber(value: unknown, fallback: number): number {`,
693
715
  ` const numeric = Number(value);`,
@@ -1414,8 +1436,9 @@ function helperSource() {
1414
1436
  ` id: input.callId,`,
1415
1437
  ` tool: input.tool,`,
1416
1438
  ` input: payload,`,
1439
+ ...explicitFreshness ? [` staleAfterSeconds: 0,`] : [],
1417
1440
  ` ...(input.description ? { description: input.description } : {}),`,
1418
- ` ...(input.force ? { force: true } : {}),`,
1441
+ ...explicitFreshness ? [] : [` ...(input.force ? { force: true } : {}),`],
1419
1442
  ` });`,
1420
1443
  ` __dlAssertSuccessfulToolResult(result);`,
1421
1444
  ` return __dlExtract(input.alias, result, input.row, input.extract, Boolean(input.legacyEnvelope));`,
@@ -1542,6 +1565,7 @@ function compileWorkflowConfigToPlay(config, options) {
1542
1565
  validateWorkflowConfigForPlay(config);
1543
1566
  const playName = deriveWorkflowPlayName(options.workflowName);
1544
1567
  const sourceCode = compileEnrichConfigToPlaySource(config, {
1568
+ explicitFreshness: true,
1545
1569
  playName,
1546
1570
  inlineRunJavascript: true,
1547
1571
  idiomaticGetters: true
@@ -1603,18 +1627,18 @@ function noticeToStderr(command) {
1603
1627
  );
1604
1628
  }
1605
1629
  function emitPassThrough(command, payload, options) {
1606
- const json = _chunkQ3PUHXOYjs.shouldEmitJson.call(void 0, options.json);
1630
+ const json = _chunkNF4V5DTYjs.shouldEmitJson.call(void 0, options.json);
1607
1631
  const deprecation = migrationDeprecation(command);
1608
1632
  if (json) {
1609
1633
  const enriched = payload && typeof payload === "object" && !Array.isArray(payload) ? { ...payload, deprecation } : { result: payload, deprecation };
1610
- _chunkQ3PUHXOYjs.printJson.call(void 0, enriched);
1634
+ _chunkNF4V5DTYjs.printJson.call(void 0, enriched);
1611
1635
  return;
1612
1636
  }
1613
- _chunkQ3PUHXOYjs.printJson.call(void 0, payload);
1637
+ _chunkNF4V5DTYjs.printJson.call(void 0, payload);
1614
1638
  noticeToStderr(command);
1615
1639
  }
1616
1640
  function client() {
1617
- return new (0, _chunkAUMD2VXPjs.DeeplineClient)();
1641
+ return new (0, _chunk63S7X326js.DeeplineClient)();
1618
1642
  }
1619
1643
  function clientWithTimeout(timeoutSeconds) {
1620
1644
  if (!timeoutSeconds) return client();
@@ -1622,7 +1646,7 @@ function clientWithTimeout(timeoutSeconds) {
1622
1646
  if (!Number.isFinite(seconds) || seconds <= 0) {
1623
1647
  throw new Error("--timeout must be a positive number of seconds.");
1624
1648
  }
1625
- return new (0, _chunkAUMD2VXPjs.DeeplineClient)({ timeout: seconds * 1e3 });
1649
+ return new (0, _chunk63S7X326js.DeeplineClient)({ timeout: seconds * 1e3 });
1626
1650
  }
1627
1651
  function readStatus(payload) {
1628
1652
  if (!payload || typeof payload !== "object") return null;
@@ -1676,7 +1700,7 @@ async function transformOne(api, workflowId, outDir, publish) {
1676
1700
  await _promises.writeFile.call(void 0, file, compiled.sourceCode, "utf8");
1677
1701
  let published = false;
1678
1702
  if (publish) {
1679
- const { handlePlayPublish } = await Promise.resolve().then(() => _interopRequireWildcard(require("./play-YG5L4BWQ.js")));
1703
+ const { handlePlayPublish } = await Promise.resolve().then(() => _interopRequireWildcard(require("./play-XXTPPP23.js")));
1680
1704
  const code = await handlePlayPublish([file]);
1681
1705
  if (code !== 0) {
1682
1706
  return {
@@ -1751,10 +1775,10 @@ async function handleTransform(id, options) {
1751
1775
  for (const workflowId of ids) {
1752
1776
  outcomes.push(await transformOne(api, workflowId, outDir, publish));
1753
1777
  }
1754
- _chunkQ3PUHXOYjs.printCommandEnvelope.call(void 0,
1778
+ _chunkNF4V5DTYjs.printCommandEnvelope.call(void 0,
1755
1779
  { outcomes, deprecation: null },
1756
1780
  {
1757
- json: _chunkQ3PUHXOYjs.shouldEmitJson.call(void 0, options.json),
1781
+ json: _chunkNF4V5DTYjs.shouldEmitJson.call(void 0, options.json),
1758
1782
  text: renderTransformReport(outcomes)
1759
1783
  }
1760
1784
  );
@@ -1775,11 +1799,11 @@ async function handleDelete(id, options) {
1775
1799
  }
1776
1800
  async function handleDisable(id, options) {
1777
1801
  const result = await client().disableWorkflow(id);
1778
- _chunkQ3PUHXOYjs.printJson.call(void 0, result);
1802
+ _chunkNF4V5DTYjs.printJson.call(void 0, result);
1779
1803
  }
1780
1804
  async function handleEnable(id, options) {
1781
1805
  const result = await client().enableWorkflow(id);
1782
- _chunkQ3PUHXOYjs.printJson.call(void 0, result);
1806
+ _chunkNF4V5DTYjs.printJson.call(void 0, result);
1783
1807
  }
1784
1808
  async function handleApply(options) {
1785
1809
  const body = await readJsonOption(options.payload, options.file);
@@ -1844,7 +1868,7 @@ async function handleTail(id, runId, options) {
1844
1868
  if (status && TERMINAL_RUN_STATUSES.has(status) || Date.now() > deadline) {
1845
1869
  return;
1846
1870
  }
1847
- await _chunkQ3PUHXOYjs.sleep.call(void 0, intervalMs);
1871
+ await _chunkNF4V5DTYjs.sleep.call(void 0, intervalMs);
1848
1872
  }
1849
1873
  }
1850
1874
  function registerWorkflowCommands(program) {