deepline 0.3.461 → 0.3.463
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundling-sources/sdk/src/client-core.ts +7593 -0
- package/dist/bundling-sources/sdk/src/client.ts +8 -7366
- package/dist/bundling-sources/sdk/src/http-core.ts +1239 -0
- package/dist/bundling-sources/sdk/src/http.ts +6 -1231
- package/dist/bundling-sources/sdk/src/index.ts +4 -1
- package/dist/bundling-sources/sdk/src/play.ts +5 -5
- package/dist/bundling-sources/sdk/src/plays/client-core.ts +437 -0
- package/dist/bundling-sources/sdk/src/plays/client.ts +4 -421
- package/dist/bundling-sources/sdk/src/plays/input-example.ts +3 -4
- package/dist/bundling-sources/sdk/src/plays/play-description.ts +1 -1
- package/dist/bundling-sources/sdk/src/plays/run-request.ts +1 -1
- package/dist/bundling-sources/sdk/src/release.ts +1 -1
- package/dist/bundling-sources/sdk/src/server.ts +43 -0
- package/dist/bundling-sources/sdk/src/types.ts +15 -5
- package/dist/bundling-sources/shared_libs/integration-contracts/billing-entitlements.ts +15 -0
- package/dist/bundling-sources/shared_libs/monitors/billing/tamradar.ts +17 -17
- package/dist/bundling-sources/shared_libs/monitors/callback-security.ts +0 -307
- package/dist/bundling-sources/shared_libs/monitors/http-error-response.ts +3 -0
- package/dist/bundling-sources/shared_libs/monitors/lifecycle-notifications.ts +3 -2
- package/dist/bundling-sources/shared_libs/monitors/package.json +2 -0
- package/dist/bundling-sources/shared_libs/monitors/provider-callback-verification.ts +34 -0
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-batch-operation.ts +61 -0
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-upstream-identity.ts +122 -2
- package/dist/bundling-sources/shared_libs/monitors/signal-radars/inbound-dead-letter.ts +11 -1
- package/dist/bundling-sources/shared_libs/monitors/signal-radars/inbound-failure-codes.ts +24 -0
- package/dist/bundling-sources/shared_libs/observability/dlq.ts +32 -0
- package/dist/bundling-sources/shared_libs/observability/scheduled-jobs.json +57 -3
- package/dist/bundling-sources/shared_libs/observability/scheduled-work.ts +1 -0
- package/dist/bundling-sources/shared_libs/play-data-plane/r2.ts +66 -1
- package/dist/bundling-sources/shared_libs/play-data-plane/sheet-column-storage.ts +36 -7
- package/dist/bundling-sources/shared_libs/play-runtime/app-runtime-api.ts +250 -11
- package/dist/bundling-sources/shared_libs/play-runtime/array-input-store.ts +319 -0
- package/dist/bundling-sources/shared_libs/play-runtime/context.ts +991 -359
- package/dist/bundling-sources/shared_libs/play-runtime/ctx-types.ts +17 -0
- package/dist/bundling-sources/shared_libs/play-runtime/daytona-sandbox-janitor.ts +13 -0
- package/dist/bundling-sources/shared_libs/play-runtime/daytona-sandbox-reaper.ts +110 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/fly-machines.ts +155 -6
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/fly-registry.ts +110 -6
- package/dist/bundling-sources/shared_libs/play-runtime/durable-receipt-execution.ts +127 -13
- package/dist/bundling-sources/shared_libs/play-runtime/execution-capabilities.ts +14 -1
- package/dist/bundling-sources/shared_libs/play-runtime/fixture-behavior.ts +57 -1
- package/dist/bundling-sources/shared_libs/play-runtime/free-company-lookup-batching.ts +218 -0
- package/dist/bundling-sources/shared_libs/play-runtime/gateway-postgres-admission.ts +42 -5
- package/dist/bundling-sources/shared_libs/play-runtime/governor/app-runtime-budget-state-backend.ts +6 -1
- package/dist/bundling-sources/shared_libs/play-runtime/governor/app-runtime-rate-state-backend.ts +92 -31
- package/dist/bundling-sources/shared_libs/play-runtime/governor/block-reserving-budget-state-backend.ts +69 -14
- package/dist/bundling-sources/shared_libs/play-runtime/governor/governor.ts +93 -23
- package/dist/bundling-sources/shared_libs/play-runtime/governor/in-memory-rate-state-backend.ts +15 -4
- package/dist/bundling-sources/shared_libs/play-runtime/governor/policy.ts +22 -18
- package/dist/bundling-sources/shared_libs/play-runtime/governor/rate-state-backend.ts +5 -0
- package/dist/bundling-sources/shared_libs/play-runtime/launch-identity.ts +2 -0
- package/dist/bundling-sources/shared_libs/play-runtime/map-memory-limits.ts +190 -14
- package/dist/bundling-sources/shared_libs/play-runtime/memory-ledger.ts +131 -0
- package/dist/bundling-sources/shared_libs/play-runtime/modal-runtime-config.ts +77 -2
- package/dist/bundling-sources/shared_libs/play-runtime/output-size-limits.ts +271 -2
- package/dist/bundling-sources/shared_libs/play-runtime/play-run-recovery-policy.ts +51 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/sandbox-cleanup/contracts.ts +2 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/sandbox-cleanup/job.ts +27 -1
- package/dist/bundling-sources/shared_libs/play-runtime/play-runtime-batching-registry.ts +2 -0
- package/dist/bundling-sources/shared_libs/play-runtime/protocol.ts +3 -0
- package/dist/bundling-sources/shared_libs/play-runtime/provider-text-for-log.ts +63 -0
- package/dist/bundling-sources/shared_libs/play-runtime/resource-governor.ts +19 -0
- package/dist/bundling-sources/shared_libs/play-runtime/run-ledger-event-transport.ts +112 -16
- package/dist/bundling-sources/shared_libs/play-runtime/run-ledger.ts +104 -2
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +265 -151
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-gateway-transport.ts +17 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-progress-push.ts +35 -14
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-sheet-persistence-retry.ts +12 -1
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-control-transport.ts +4 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-labels.ts +36 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-launch-transport.ts +136 -70
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-lifecycle.ts +237 -36
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-runtime-watchdog.ts +148 -4
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-session-execution.ts +6 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona.ts +285 -32
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/modal.ts +251 -56
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/runtime-sandbox-reconciliation.ts +29 -4
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/sandbox-create-outcome.ts +27 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/types.ts +22 -1
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-api.ts +1397 -382
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-array-input-receipts.ts +920 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-constants.ts +16 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-environment.ts +38 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-flow.ts +6 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-incident-drills.ts +26 -1
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-operation-contract.ts +30 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-receipt-store-adapter.ts +14 -3
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-receipt-writer.ts +31 -4
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-sheet-row-transition.ts +47 -0
- package/dist/bundling-sources/shared_libs/play-runtime/sandbox-compute-usage.ts +20 -7
- package/dist/bundling-sources/shared_libs/play-runtime/sandbox-runs/contract.ts +12 -0
- package/dist/bundling-sources/shared_libs/play-runtime/sandbox-runs/index.ts +9 -0
- package/dist/bundling-sources/shared_libs/play-runtime/sandbox-runs/runner-backend-adapter.ts +10 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backend.ts +4 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-runtime-worker.ts +1496 -320
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-worker-required-env.ts +31 -1
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +1389 -129
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/receipt-gateway.ts +36 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-ledger-dispatch-authority.ts +4 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-ledger-outbox-recovery.ts +162 -23
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-event-search.ts +499 -115
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-sandbox-capacity.ts +377 -9
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-sandbox-ledger-reconciliation.ts +117 -8
- package/dist/bundling-sources/shared_libs/play-runtime/secret-resolution-retry-policy.ts +25 -0
- package/dist/bundling-sources/shared_libs/play-runtime/terminal-runtime-performance.ts +391 -0
- package/dist/bundling-sources/shared_libs/play-runtime/test-runtime-seams.ts +40 -0
- package/dist/bundling-sources/shared_libs/play-runtime/tool-call/index.ts +6 -0
- package/dist/bundling-sources/shared_libs/play-runtime/tool-call/mapped-calls.ts +171 -0
- package/dist/bundling-sources/shared_libs/play-runtime/tool-call/receipt-cohort.ts +16 -1
- package/dist/bundling-sources/shared_libs/play-runtime/tool-execute-retry-policy.ts +38 -12
- package/dist/bundling-sources/shared_libs/play-runtime/tool-result.ts +33 -9
- package/dist/bundling-sources/shared_libs/play-runtime/transport-error-diagnostics.ts +28 -0
- package/dist/bundling-sources/shared_libs/play-runtime/work-receipt-storage-contract.ts +55 -5
- package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +41 -1
- package/dist/bundling-sources/shared_libs/plays/contracts.ts +4 -0
- package/dist/bundling-sources/shared_libs/plays/dataset.ts +9 -3
- package/dist/bundling-sources/shared_libs/plays/deploy/manifest-contract.ts +2 -0
- package/dist/bundling-sources/shared_libs/plays/deploy/manifest.ts +3 -2
- package/dist/bundling-sources/shared_libs/plays/deploy/project-serializer.ts +2 -2
- package/dist/bundling-sources/shared_libs/plays/run-output-summary.ts +66 -0
- package/dist/bundling-sources/shared_libs/plays/script-entry.ts +1 -1
- package/dist/bundling-sources/shared_libs/product-notifications/catalog.ts +43 -1
- package/dist/bundling-sources/shared_libs/product-notifications/content.ts +9 -0
- package/dist/bundling-sources/shared_libs/product-notifications/email.ts +91 -13
- package/dist/bundling-sources/shared_libs/product-notifications/events.ts +3 -0
- package/dist/bundling-sources/shared_libs/product-notifications/slack-delivery.ts +41 -24
- package/dist/bundling-sources/shared_libs/security/attested-client-ip.ts +91 -0
- package/dist/bundling-sources/shared_libs/security/internal-actor.ts +0 -11
- package/dist/cli/{auth-6HJXNWUG.mjs → auth-LZLBR4C3.mjs} +5 -4
- package/dist/cli/auth-XPGKBJKB.js +41 -0
- package/dist/cli/{billing-6P5HO6QG.js → billing-6TJPNJQD.js} +152 -78
- package/dist/cli/{billing-MJ42N7YF.mjs → billing-OTOP5RE4.mjs} +84 -10
- package/dist/cli/{chunk-FCAZQ7WV.js → chunk-2NISBXMN.js} +52 -50
- package/dist/cli/{chunk-PNATXKLP.js → chunk-2ZIRCBYG.js} +6 -6
- package/dist/cli/{chunk-5FDKJQZE.js → chunk-3BOIOCNX.js} +1 -1
- package/dist/cli/chunk-3BVLLJ3H.mjs +1038 -0
- package/dist/cli/{chunk-FJZILBL7.mjs → chunk-3U5EAP6E.mjs} +5 -5
- package/dist/cli/{describe-FRAVCY5F.mjs → chunk-4YZKBBLZ.mjs} +19 -36
- package/dist/cli/{chunk-QWRHGGUH.js → chunk-5DRNNC72.js} +20 -2
- package/dist/cli/{chunk-Z2GUFYT6.js → chunk-5LEAXRHV.js} +11 -11
- package/dist/cli/{chunk-5MDIZX7M.js → chunk-5LHXOIPT.js} +8 -6
- package/dist/cli/{chunk-NMJ4D2WO.js → chunk-6PMCRYDA.js} +216 -91
- package/dist/cli/{chunk-EBU7LQ64.js → chunk-6V7KVRR5.js} +3 -3
- package/dist/cli/{chunk-MGXEUZHL.mjs → chunk-7D6X7IXW.mjs} +7 -5
- package/dist/cli/{chunk-SAZFZQRI.js → chunk-7FCYPAPP.js} +2 -2
- package/dist/cli/{chunk-ACCR7POB.js → chunk-7XYDDCQ2.js} +27 -27
- package/dist/cli/{chunk-5IYOUBFZ.js → chunk-ALZBANZI.js} +28 -54
- package/dist/cli/{chunk-3DNKFH2G.mjs → chunk-BAPTQDLF.mjs} +19 -1
- package/dist/cli/chunk-BGNWI3KH.js +827 -0
- package/dist/cli/{chunk-V7REJRDZ.mjs → chunk-C25QE4CH.mjs} +1 -1
- package/dist/cli/{chunk-FGMX4HUZ.js → chunk-CBZP6J3V.js} +29 -27
- package/dist/cli/{chunk-QEYHTIV4.mjs → chunk-CTQ56DXP.mjs} +10 -1
- package/dist/cli/{chunk-IHHLTHE7.mjs → chunk-CVQ7N5CV.mjs} +267 -38
- package/dist/cli/{chunk-7DH2FD7Y.mjs → chunk-D464JW3N.mjs} +5 -85
- package/dist/cli/{chunk-MEAIOXJL.mjs → chunk-DHXCBITQ.mjs} +7 -5
- package/dist/cli/chunk-F2RHUPVH.mjs +827 -0
- package/dist/cli/chunk-F6QV42MC.mjs +91 -0
- package/dist/cli/{chunk-OZBWRICM.js → chunk-FK2HNDCN.js} +2 -2
- package/dist/cli/{chunk-BGY2PLP7.mjs → chunk-GUT7CLOL.mjs} +23 -49
- package/dist/cli/{chunk-RY4IVOU3.mjs → chunk-I624J4H5.mjs} +16 -806
- package/dist/cli/{chunk-Z2XUZC34.js → chunk-IAYSWZDJ.js} +188 -76
- package/dist/cli/{chunk-FGLKOWSC.mjs → chunk-IKWRUNAP.mjs} +1 -1
- package/dist/cli/{chunk-KCCOQ5G5.js → chunk-JVDKZJUH.js} +511 -282
- package/dist/cli/{chunk-HDFRJ4IT.mjs → chunk-JVHOS3K3.mjs} +177 -65
- package/dist/cli/chunk-LYFKBLJI.mjs +1039 -0
- package/dist/cli/{chunk-SLEUWLJE.mjs → chunk-MSY22NQW.mjs} +5 -5
- package/dist/cli/{chunk-5FY72YOV.js → chunk-NAPTMYTY.js} +8 -8
- package/dist/cli/{chunk-O6QOMHCH.js → chunk-NDHJR2WZ.js} +37 -35
- package/dist/cli/{chunk-KXMNM4AQ.js → chunk-NMU3VR5U.js} +4 -5
- package/dist/cli/chunk-NTLI6P6Y.mjs +19 -0
- package/dist/cli/{chunk-RFONC4WJ.mjs → chunk-O3BJYD6D.mjs} +3 -3
- package/dist/cli/{describe-2WQY7ZCY.js → chunk-PVY4DPPF.js} +27 -44
- package/dist/cli/{chunk-WIYWSYDS.mjs → chunk-Q2EIZKVX.mjs} +3 -3
- package/dist/cli/{chunk-VZBCEA5S.mjs → chunk-RD6IQ2JY.mjs} +223 -92
- package/dist/cli/chunk-RGOUCIIZ.js +1039 -0
- package/dist/cli/{chunk-EIMG75BT.mjs → chunk-S3A4IXBQ.mjs} +4 -5
- package/dist/cli/{chunk-QIW7TVV6.mjs → chunk-S4XQCFES.mjs} +14 -12
- package/dist/cli/chunk-SKU6ECIY.js +19 -0
- package/dist/cli/{chunk-CRYOUPEB.js → chunk-TIRBDQ3W.js} +16 -16
- package/dist/cli/{chunk-G7L27KZB.mjs → chunk-TKAQR3IB.mjs} +31 -21
- package/dist/cli/{chunk-MDJPEGVN.js → chunk-UC4SFYNU.js} +392 -261
- package/dist/cli/{chunk-3BMLICF7.mjs → chunk-UIURR26V.mjs} +13 -8
- package/dist/cli/{chunk-TNMBPMMC.js → chunk-UROQDCVW.js} +13 -4
- package/dist/cli/{chunk-R64BGGRQ.mjs → chunk-VDGTTH7K.mjs} +2 -2
- package/dist/cli/chunk-VLEVVDWG.js +91 -0
- package/dist/cli/{chunk-R2GLGLDR.mjs → chunk-VPHN2HAL.mjs} +216 -91
- package/dist/cli/chunk-VY2GBNTX.js +1038 -0
- package/dist/cli/{chunk-CFUTOWE4.js → chunk-WG3KGAII.js} +8 -88
- package/dist/cli/{chunk-QAJAJPKK.mjs → chunk-WUMIYOXQ.mjs} +4 -2
- package/dist/cli/{chunk-SCIR5JXW.js → chunk-WUZS2HK6.js} +56 -51
- package/dist/cli/{chunk-T3MVIPHG.mjs → chunk-XDWS2JJT.mjs} +1 -1
- package/dist/cli/{chunk-KGQNIA37.js → chunk-XQCTG5OO.js} +44 -34
- package/dist/cli/{chunk-KVJ5VHW5.mjs → chunk-XW2JIYG7.mjs} +2 -2
- package/dist/cli/chunk-YGGIZ3VT.js +920 -0
- package/dist/cli/command-docs.d.mts +5 -0
- package/dist/cli/command-docs.d.ts +5 -0
- package/dist/cli/command-docs.js +2 -2
- package/dist/cli/command-docs.mjs +1 -1
- package/dist/cli/{csv-NX7NO3O6.js → csv-EH5QWR4O.js} +13 -12
- package/dist/cli/{csv-DQ6GW5B5.mjs → csv-OK45Z5XQ.mjs} +4 -3
- package/dist/cli/{db-R72DFMP6.js → db-3ESJKETS.js} +30 -27
- package/dist/cli/{db-2YP33M4K.mjs → db-6Z5E4HKN.mjs} +10 -7
- package/dist/cli/describe-PNDQB7YS.mjs +48 -0
- package/dist/cli/describe-QUF7VTTR.js +48 -0
- package/dist/cli/describe-core.d.mts +153 -5
- package/dist/cli/describe-core.d.ts +153 -5
- package/dist/cli/describe-core.js +9 -5
- package/dist/cli/describe-core.mjs +10 -6
- package/dist/cli/{executions-WFBU7L2Q.mjs → executions-2NTWQFEG.mjs} +7 -5
- package/dist/cli/{executions-ZLHD4QIT.js → executions-KUOBRX5V.js} +9 -7
- package/dist/cli/{feedback-CN3HJFVF.mjs → feedback-7RPRMSGY.mjs} +6 -5
- package/dist/cli/{feedback-NDV6TPHG.js → feedback-UPHAZJ4C.js} +10 -9
- package/dist/cli/getting-started.d.mts +6 -6
- package/dist/cli/getting-started.d.ts +6 -6
- package/dist/cli/getting-started.js +2 -2
- package/dist/cli/getting-started.mjs +1 -1
- package/dist/cli/{git-QAD6E3HW.mjs → git-SCYP6WSZ.mjs} +5 -4
- package/dist/cli/git-UH653WHV.js +25 -0
- package/dist/cli/index.js +152 -142
- package/dist/cli/index.mjs +56 -46
- package/dist/cli/{legacy-noops-KVC5QJ74.js → legacy-noops-7XMFCVRG.js} +8 -7
- package/dist/cli/{legacy-noops-TPTKNBI2.mjs → legacy-noops-A4KYAGI6.mjs} +5 -4
- package/dist/cli/{monitors-SV57JFLO.mjs → monitors-FLC5J7RI.mjs} +19 -6
- package/dist/cli/{monitors-KCROV6PJ.js → monitors-NZV6IX5H.js} +103 -90
- package/dist/cli/{org-NJYX5743.js → org-IZ7UP3XF.js} +70 -67
- package/dist/cli/{org-KX6QIR7A.mjs → org-LUETJ7Z5.mjs} +9 -6
- package/dist/cli/pages-22ML3O7O.js +252 -0
- package/dist/cli/pages-EUX5EAGF.mjs +252 -0
- package/dist/cli/{play-IQQ57L7Z.mjs → play-CDHPAKKM.mjs} +512 -1508
- package/dist/cli/{play-32L7EQN4.js → play-USJBQADG.js} +1090 -2086
- package/dist/cli/{providers-4WEC2EQN.mjs → providers-CCXZ3SQF.mjs} +7 -5
- package/dist/cli/{providers-ZQV6QLVQ.js → providers-WFEUNPGC.js} +10 -8
- package/dist/cli/{quickstart-HKUSFADF.js → quickstart-O4JSUORZ.js} +13 -12
- package/dist/cli/{quickstart-RQ76RIUE.mjs → quickstart-ZUULI635.mjs} +5 -4
- package/dist/cli/run-ISDJYJMU.js +443 -0
- package/dist/cli/run-QJ4NX5F5.mjs +443 -0
- package/dist/cli/{search-ZRAVFBZC.mjs → search-IX3XKZJ3.mjs} +8 -6
- package/dist/cli/search-TIFNLRPM.js +32 -0
- package/dist/cli/{secrets-CMJOVNVH.mjs → secrets-7VUDXTUZ.mjs} +7 -5
- package/dist/cli/{secrets-J3G5Y43U.js → secrets-ELQSNCTR.js} +16 -14
- package/dist/cli/{sessions-WY7VN4AE.js → sessions-A3FG3AZX.js} +6 -5
- package/dist/cli/{sessions-MDQYY5CB.mjs → sessions-VOIQ62GB.mjs} +5 -4
- package/dist/cli/{settings-4RWZPCT5.mjs → settings-S6N6EFBG.mjs} +14 -11
- package/dist/cli/{settings-HTNTFKCE.js → settings-ZTXQEMZI.js} +80 -77
- package/dist/cli/{setup-P3GYYZWG.mjs → setup-AYPIK4JE.mjs} +12 -10
- package/dist/cli/{setup-QGCAP62X.js → setup-Y3WOIFLS.js} +53 -51
- package/dist/cli/{skills-7NAE4ICL.mjs → skills-5SF5QWNI.mjs} +7 -6
- package/dist/cli/skills-MWFRMG3H.js +31 -0
- package/dist/cli/tools-3XNZ4J64.mjs +55 -0
- package/dist/cli/tools-XEC4OD3R.js +55 -0
- package/dist/cli/{update-GODLRKNB.mjs → update-3U4OVX5R.mjs} +9 -8
- package/dist/cli/update-DWYEYTZE.js +33 -0
- package/dist/cli/{workflow-4BXOUVEO.mjs → workflow-2M5JP7SA.mjs} +10 -8
- package/dist/cli/{workflow-AO3A6LXN.js → workflow-RM7H7555.js} +20 -18
- package/dist/client-DS2IWYZF.d.ts +10 -0
- package/dist/client-DTwnz_AW.d.mts +10 -0
- package/dist/{client-CYqG23K1.d.ts → client-core-B_6HAIBy.d.ts} +385 -12
- package/dist/{client-BbU5_j7n.d.mts → client-core-DzBSlY1U.d.mts} +385 -12
- package/dist/{compiler-manifest-CWz_sNOQ.d.ts → compiler-manifest-Dcyd3-Zd.d.mts} +43 -1
- package/dist/{compiler-manifest-CWz_sNOQ.d.mts → compiler-manifest-Dcyd3-Zd.d.ts} +43 -1
- package/dist/errors-d-sTrZhe.d.mts +142 -0
- package/dist/errors-yQwfgrcX.d.ts +142 -0
- package/dist/{index-BF2JB_Ug.d.mts → index-C6oXchjN.d.mts} +1 -1
- package/dist/{index-4NPXDzlD.d.ts → index-P56zy_z5.d.ts} +1 -1
- package/dist/index.d.mts +11 -147
- package/dist/index.d.ts +11 -147
- package/dist/index.js +16 -12
- package/dist/index.mjs +15 -11
- package/dist/install-integrity.json +141 -104
- package/dist/plays/bundle-play-file.d.mts +3 -3
- package/dist/plays/bundle-play-file.d.ts +3 -3
- package/dist/plays/bundle-play-file.mjs +2 -1
- package/dist/plays/play-description.d.mts +2 -2
- package/dist/plays/play-description.d.ts +2 -2
- package/dist/plays/play-description.js +2 -2
- package/dist/plays/play-description.mjs +1 -1
- package/dist/plays/run-request.d.mts +2 -2
- package/dist/plays/run-request.d.ts +2 -2
- package/dist/release.d.mts +1 -1
- package/dist/release.d.ts +1 -1
- package/dist/release.js +2 -2
- package/dist/release.mjs +1 -1
- package/dist/server.d.mts +17 -0
- package/dist/server.d.ts +17 -0
- package/dist/server.js +76 -0
- package/dist/server.mjs +76 -0
- package/package.json +6 -1
- package/dist/cli/auth-IACERYQH.js +0 -40
- package/dist/cli/chunk-PQUUWFXY.js +0 -95
- package/dist/cli/chunk-YBWAG72P.mjs +0 -95
- package/dist/cli/chunk-YQDUODZW.js +0 -1710
- package/dist/cli/git-JVI36ZFV.js +0 -24
- package/dist/cli/search-75X5LTDE.js +0 -30
- package/dist/cli/skills-BKJ53JOQ.js +0 -30
- package/dist/cli/tools-COWMIEJ6.mjs +0 -45
- package/dist/cli/tools-TASOCE7I.js +0 -45
- package/dist/cli/update-SJIKVME6.js +0 -32
|
@@ -52,7 +52,7 @@ export type {
|
|
|
52
52
|
* });
|
|
53
53
|
* ```
|
|
54
54
|
*
|
|
55
|
-
* Then run with the CLI: `deepline
|
|
55
|
+
* Then run with the CLI: `deepline run my-play.play.ts`
|
|
56
56
|
* Installed npm CLIs can also run saved or prebuilt plays by name.
|
|
57
57
|
*
|
|
58
58
|
* ## Architecture
|
|
@@ -125,6 +125,9 @@ export type {
|
|
|
125
125
|
BillingTopUpResult,
|
|
126
126
|
BillingTopUpReceipt,
|
|
127
127
|
BillingUsageEvent,
|
|
128
|
+
BillingUsageEventListEntry,
|
|
129
|
+
BillingUsageEventsOptions,
|
|
130
|
+
BillingUsageEventsResult,
|
|
128
131
|
BillingUsageOptions,
|
|
129
132
|
BillingUsageResult,
|
|
130
133
|
WorkspaceCreateResult,
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
* }
|
|
38
38
|
* ```
|
|
39
39
|
*
|
|
40
|
-
* Run it with `deepline
|
|
40
|
+
* Run it with `deepline run lookup.play.ts --input '{"domain":"stripe.com"}'`.
|
|
41
41
|
*
|
|
42
42
|
* ### Programmatic usage
|
|
43
43
|
*
|
|
@@ -468,8 +468,8 @@ export type DeeplinePlayRuntimeContext = PlayAuthoringRuntimeContext<'array'>;
|
|
|
468
468
|
* ```
|
|
469
469
|
*
|
|
470
470
|
* ```bash
|
|
471
|
-
* deepline
|
|
472
|
-
* deepline
|
|
471
|
+
* deepline run lookup.play.ts --input '{"domain":"stripe.com"}'
|
|
472
|
+
* deepline run -e 'deepline.log("hello"); return { ok: true };'
|
|
473
473
|
* ```
|
|
474
474
|
*
|
|
475
475
|
* Compose with `import child from './child.play'` and
|
|
@@ -575,7 +575,7 @@ export const deepline: ScriptPlayContext = new Proxy({} as ScriptPlayContext, {
|
|
|
575
575
|
if (!run) {
|
|
576
576
|
if (!latestScriptRun) {
|
|
577
577
|
throw new Error(
|
|
578
|
-
`deepline.${property} is only available while a play runs. Run the file with: deepline
|
|
578
|
+
`deepline.${property} is only available while a play runs. Run the file with: deepline run <file>.play.ts`,
|
|
579
579
|
);
|
|
580
580
|
}
|
|
581
581
|
if (Object.hasOwn(scriptCalls, property)) {
|
|
@@ -609,7 +609,7 @@ function contextMember(
|
|
|
609
609
|
|
|
610
610
|
/**
|
|
611
611
|
* Handle to a Play execution: inspect status, stream logs, await output, or cancel.
|
|
612
|
-
* Like `deepline
|
|
612
|
+
* Like `deepline run` and `POST /api/v2/plays/run`, it returns a run id first.
|
|
613
613
|
* Read completed output through `PlayJob.get()` or the status endpoint's `result` field;
|
|
614
614
|
* runtime logs in `status().progress.logs` are separate from that output.
|
|
615
615
|
*
|
|
@@ -0,0 +1,437 @@
|
|
|
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
|
+
*/
|
|
5
|
+
import { DeeplineError } from '../errors';
|
|
6
|
+
import type { HttpClient } from '../http-core';
|
|
7
|
+
import { SDK_API_MAJOR } from '../version';
|
|
8
|
+
import type {
|
|
9
|
+
ClearPlayHistoryRequest,
|
|
10
|
+
ClearPlayHistoryResult,
|
|
11
|
+
PlayDetail,
|
|
12
|
+
PlayRevisionSummary,
|
|
13
|
+
PlayRunListItem,
|
|
14
|
+
PlayRunStart,
|
|
15
|
+
PlayStatus,
|
|
16
|
+
PublishPlayVersionRequest,
|
|
17
|
+
PublishPlayVersionResult,
|
|
18
|
+
StartPlayRunRequest,
|
|
19
|
+
StopPlayRunResult,
|
|
20
|
+
} from '../types';
|
|
21
|
+
import {
|
|
22
|
+
isPlayRunPackage,
|
|
23
|
+
startPlayRun,
|
|
24
|
+
type ResolvedStartPlayRunRequest,
|
|
25
|
+
type PlayRunStartOptions,
|
|
26
|
+
} from './run-request';
|
|
27
|
+
import {
|
|
28
|
+
RUNTIME_ENVIRONMENT_TOKEN_HEADER,
|
|
29
|
+
RETAINED_PIPELINE_RECEIVERS_HEADER,
|
|
30
|
+
} from '../../../shared_libs/play-runtime/coordinator-headers.js';
|
|
31
|
+
import {
|
|
32
|
+
normalizePlayRuntimeEnvironment,
|
|
33
|
+
normalizePlayRuntimeNamespace,
|
|
34
|
+
normalizePlayRuntimeSandboxPlacementPolicy,
|
|
35
|
+
normalizePlayRunRuntimeSelection,
|
|
36
|
+
type PlayRunRuntimeSelection,
|
|
37
|
+
} from '../../../shared_libs/play-runtime/runtime-environment.js';
|
|
38
|
+
import { decodePlayRunPublicStatus } from '../../../shared_libs/play-runtime/run-lifecycle-policy.js';
|
|
39
|
+
|
|
40
|
+
export function normalizePlayRunIntegrationMode(
|
|
41
|
+
value: unknown,
|
|
42
|
+
): 'live' | 'eval_stub' | 'fixture' | undefined {
|
|
43
|
+
if (value === 'live' || value === 'eval_stub' || value === 'fixture') {
|
|
44
|
+
return value;
|
|
45
|
+
}
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export type ClientEnvironment = Readonly<Record<string, string | undefined>>;
|
|
50
|
+
|
|
51
|
+
function resolvePlayRunIntegrationMode(
|
|
52
|
+
request: StartPlayRunRequest,
|
|
53
|
+
env: ClientEnvironment,
|
|
54
|
+
): 'live' | 'eval_stub' | 'fixture' | undefined {
|
|
55
|
+
return normalizePlayRunIntegrationMode(
|
|
56
|
+
request.integrationMode ?? env.DEEPLINE_EVAL_INTEGRATION_MODE,
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function resolvePlayRunRuntimeSelection(
|
|
61
|
+
request: StartPlayRunRequest,
|
|
62
|
+
env: ClientEnvironment,
|
|
63
|
+
): PlayRunRuntimeSelection | undefined {
|
|
64
|
+
if (request.runtime !== undefined) {
|
|
65
|
+
const runtime = normalizePlayRunRuntimeSelection(request.runtime);
|
|
66
|
+
if (!runtime) {
|
|
67
|
+
throw new DeeplineError(
|
|
68
|
+
'runtime must be { environment: "preview", namespace, backend?: "daytona" | "modal", sandboxPlacementPolicy?: "policy_name@1" } with namespace matching ^[a-z][a-z0-9-]{0,30}$, or { environment: "native", sandboxPlacementPolicy: "policy_name@1" }.',
|
|
69
|
+
undefined,
|
|
70
|
+
'INVALID_RUNTIME_SELECTION',
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
return runtime;
|
|
74
|
+
}
|
|
75
|
+
// These variables select where the app executes a run, not which app the
|
|
76
|
+
// SDK calls. DEEPLINE_API_BASE_URL still chooses the app host. Environment
|
|
77
|
+
// opts into remote preview routing, namespace names the isolated lane, and
|
|
78
|
+
// the token only authorizes that selection. Omitting all three leaves the
|
|
79
|
+
// app free to use its native runtime (local for a local app, prod for prod).
|
|
80
|
+
const configured = env.DEEPLINE_RUNTIME_ENVIRONMENT?.trim();
|
|
81
|
+
const configuredNamespace = env.DEEPLINE_RUNTIME_NAMESPACE?.trim();
|
|
82
|
+
const configuredToken = env.DEEPLINE_RUNTIME_ENVIRONMENT_TOKEN?.trim();
|
|
83
|
+
const configuredPlacementPolicy =
|
|
84
|
+
env.DEEPLINE_RUNTIME_SANDBOX_PLACEMENT_POLICY?.trim();
|
|
85
|
+
if (!configured) {
|
|
86
|
+
if (configuredNamespace || configuredToken || configuredPlacementPolicy) {
|
|
87
|
+
// Name the variables that are actually set. This branch is almost always
|
|
88
|
+
// hit by a stale value auto-loaded from a .env/.env.local rather than by
|
|
89
|
+
// a deliberate export, so the message has to say where to look and how
|
|
90
|
+
// to run the command anyway.
|
|
91
|
+
const present: string[] = [];
|
|
92
|
+
if (configuredNamespace) present.push('DEEPLINE_RUNTIME_NAMESPACE');
|
|
93
|
+
if (configuredToken) present.push('DEEPLINE_RUNTIME_ENVIRONMENT_TOKEN');
|
|
94
|
+
if (configuredPlacementPolicy) {
|
|
95
|
+
present.push('DEEPLINE_RUNTIME_SANDBOX_PLACEMENT_POLICY');
|
|
96
|
+
}
|
|
97
|
+
const isPlural = present.length > 1;
|
|
98
|
+
throw new DeeplineError(
|
|
99
|
+
[
|
|
100
|
+
`Incomplete play runtime selection: ${present.join(' and ')} ${isPlural ? 'are' : 'is'} set but DEEPLINE_RUNTIME_ENVIRONMENT is not.`,
|
|
101
|
+
'Preview routing requires DEEPLINE_RUNTIME_ENVIRONMENT=preview together with DEEPLINE_RUNTIME_NAMESPACE; the token alone authorizes nothing.',
|
|
102
|
+
`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).`,
|
|
103
|
+
`To run against the app-native runtime, clear ${isPlural ? 'them' : 'it'} for this command: ${present.map((name) => `${name}=`).join(' ')} <your deepline command>`,
|
|
104
|
+
].join('\n'),
|
|
105
|
+
undefined,
|
|
106
|
+
'INVALID_RUNTIME_ENVIRONMENT',
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
if (configured === 'native') {
|
|
112
|
+
// The app's own runtime on a named placement policy. The server decides
|
|
113
|
+
// from the API key's account whether this caller may ask for it.
|
|
114
|
+
const sandboxPlacementPolicy = normalizePlayRuntimeSandboxPlacementPolicy(
|
|
115
|
+
configuredPlacementPolicy,
|
|
116
|
+
);
|
|
117
|
+
if (configuredNamespace || !sandboxPlacementPolicy) {
|
|
118
|
+
throw new DeeplineError(
|
|
119
|
+
'DEEPLINE_RUNTIME_ENVIRONMENT=native requires DEEPLINE_RUNTIME_SANDBOX_PLACEMENT_POLICY (such as modal_only@1) and no DEEPLINE_RUNTIME_NAMESPACE.',
|
|
120
|
+
undefined,
|
|
121
|
+
'INVALID_RUNTIME_ENVIRONMENT',
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
return { environment: 'native', sandboxPlacementPolicy };
|
|
125
|
+
}
|
|
126
|
+
const environment = normalizePlayRuntimeEnvironment(configured);
|
|
127
|
+
if (!environment) {
|
|
128
|
+
throw new DeeplineError(
|
|
129
|
+
`DEEPLINE_RUNTIME_ENVIRONMENT must be preview or native. Received "${configured}". Omit it to use the app-native runtime.`,
|
|
130
|
+
undefined,
|
|
131
|
+
'INVALID_RUNTIME_ENVIRONMENT',
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
const namespace = normalizePlayRuntimeNamespace(configuredNamespace);
|
|
135
|
+
if (!namespace) {
|
|
136
|
+
throw new DeeplineError(
|
|
137
|
+
'DEEPLINE_RUNTIME_NAMESPACE is required for preview and must match ^[a-z][a-z0-9-]{0,30}$.',
|
|
138
|
+
undefined,
|
|
139
|
+
'INVALID_RUNTIME_NAMESPACE',
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
const configuredBackendValue = env.DEEPLINE_PLAY_RUNNER_BACKEND?.trim();
|
|
143
|
+
const configuredBackend =
|
|
144
|
+
configuredBackendValue === 'daytona' || configuredBackendValue === 'modal'
|
|
145
|
+
? configuredBackendValue
|
|
146
|
+
: undefined;
|
|
147
|
+
if (configuredBackendValue && !configuredBackend) {
|
|
148
|
+
throw new DeeplineError(
|
|
149
|
+
`DEEPLINE_PLAY_RUNNER_BACKEND must be daytona or modal for preview runtime selection. Received "${configuredBackendValue}".`,
|
|
150
|
+
undefined,
|
|
151
|
+
'INVALID_RUNTIME_BACKEND',
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
if (
|
|
155
|
+
configuredPlacementPolicy &&
|
|
156
|
+
!normalizePlayRuntimeSandboxPlacementPolicy(configuredPlacementPolicy)
|
|
157
|
+
) {
|
|
158
|
+
throw new DeeplineError(
|
|
159
|
+
`DEEPLINE_RUNTIME_SANDBOX_PLACEMENT_POLICY must be a versioned placement policy id such as daytona_only@1. Received "${configuredPlacementPolicy}".`,
|
|
160
|
+
undefined,
|
|
161
|
+
'INVALID_RUNTIME_SANDBOX_PLACEMENT_POLICY',
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
return {
|
|
165
|
+
environment,
|
|
166
|
+
namespace,
|
|
167
|
+
...(configuredBackend ? { backend: configuredBackend } : {}),
|
|
168
|
+
...(configuredPlacementPolicy
|
|
169
|
+
? { sandboxPlacementPolicy: configuredPlacementPolicy }
|
|
170
|
+
: {}),
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Resolve the environment-derived run-start fields (eval integration mode,
|
|
176
|
+
* test policy overrides, preview runtime) into explicit request fields, in the
|
|
177
|
+
* order the SDK has always validated them. The shared body builder in
|
|
178
|
+
* `plays/run-request` never reads the environment.
|
|
179
|
+
*/
|
|
180
|
+
export function resolveStartPlayRunRequest(
|
|
181
|
+
request: StartPlayRunRequest,
|
|
182
|
+
env: ClientEnvironment,
|
|
183
|
+
): {
|
|
184
|
+
request: ResolvedStartPlayRunRequest;
|
|
185
|
+
runtime: PlayRunRuntimeSelection | undefined;
|
|
186
|
+
} {
|
|
187
|
+
const integrationMode = resolvePlayRunIntegrationMode(request, env);
|
|
188
|
+
const testPolicyOverrides =
|
|
189
|
+
request.testPolicyOverrides ?? parseEnvTestPolicyOverrides(env);
|
|
190
|
+
const runtime = resolvePlayRunRuntimeSelection(request, env);
|
|
191
|
+
const resolved: ResolvedStartPlayRunRequest = { ...request };
|
|
192
|
+
delete resolved.integrationMode;
|
|
193
|
+
delete resolved.runtime;
|
|
194
|
+
delete resolved.testPolicyOverrides;
|
|
195
|
+
if (integrationMode) resolved.integrationMode = integrationMode;
|
|
196
|
+
if (runtime) resolved.runtime = runtime;
|
|
197
|
+
if (testPolicyOverrides) resolved.testPolicyOverrides = testPolicyOverrides;
|
|
198
|
+
return { request: resolved, runtime };
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
export function runtimeSelectionHeaders(
|
|
202
|
+
runtime: PlayRunRuntimeSelection | undefined,
|
|
203
|
+
env: ClientEnvironment,
|
|
204
|
+
): Record<string, string> | undefined {
|
|
205
|
+
// A native selection carries no credential: the server checks the account.
|
|
206
|
+
if (!runtime || runtime.environment === 'native') return undefined;
|
|
207
|
+
// Keep the credential out of the typed runtime payload. The app consumes it
|
|
208
|
+
// at the HTTP boundary and never forwards it to Fly, Absurd, or Daytona.
|
|
209
|
+
const token = env.DEEPLINE_RUNTIME_ENVIRONMENT_TOKEN?.trim();
|
|
210
|
+
if (!token) {
|
|
211
|
+
throw new DeeplineError(
|
|
212
|
+
'DEEPLINE_RUNTIME_ENVIRONMENT_TOKEN is required for explicit preview runtime selection.',
|
|
213
|
+
undefined,
|
|
214
|
+
'RUNTIME_ENVIRONMENT_TOKEN_REQUIRED',
|
|
215
|
+
);
|
|
216
|
+
}
|
|
217
|
+
const receivers = env.DEEPLINE_RUNTIME_RETAINED_PIPELINE_RECEIVERS?.trim();
|
|
218
|
+
return {
|
|
219
|
+
[RUNTIME_ENVIRONMENT_TOKEN_HEADER]: token,
|
|
220
|
+
...(receivers ? { [RETAINED_PIPELINE_RECEIVERS_HEADER]: receivers } : {}),
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
function normalizeTestPolicyOverrides(
|
|
225
|
+
value: unknown,
|
|
226
|
+
source: string,
|
|
227
|
+
): Record<string, unknown> {
|
|
228
|
+
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
229
|
+
return value as Record<string, unknown>;
|
|
230
|
+
}
|
|
231
|
+
throw new DeeplineError(
|
|
232
|
+
`${source} must be a JSON object.`,
|
|
233
|
+
undefined,
|
|
234
|
+
'INVALID_TEST_POLICY_OVERRIDES',
|
|
235
|
+
);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
function parseEnvTestPolicyOverrides(
|
|
239
|
+
env: ClientEnvironment,
|
|
240
|
+
): Record<string, unknown> | undefined {
|
|
241
|
+
const raw = env.DEEPLINE_TEST_POLICY_OVERRIDES;
|
|
242
|
+
const trimmed = raw?.trim();
|
|
243
|
+
if (!trimmed) return undefined;
|
|
244
|
+
let parsed: unknown;
|
|
245
|
+
try {
|
|
246
|
+
parsed = JSON.parse(trimmed);
|
|
247
|
+
} catch (error) {
|
|
248
|
+
const detail = error instanceof Error ? ` ${error.message}` : '';
|
|
249
|
+
throw new DeeplineError(
|
|
250
|
+
`DEEPLINE_TEST_POLICY_OVERRIDES must be valid JSON.${detail}`,
|
|
251
|
+
undefined,
|
|
252
|
+
'INVALID_TEST_POLICY_OVERRIDES',
|
|
253
|
+
);
|
|
254
|
+
}
|
|
255
|
+
return normalizeTestPolicyOverrides(parsed, 'DEEPLINE_TEST_POLICY_OVERRIDES');
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
function isRecord(value: unknown): value is Record<string, unknown> {
|
|
259
|
+
return Boolean(value && typeof value === 'object' && !Array.isArray(value));
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
export function normalizePlayStatus(raw: Record<string, unknown>): PlayStatus {
|
|
263
|
+
const runPackage = isPlayRunPackage(raw)
|
|
264
|
+
? raw
|
|
265
|
+
: isPlayRunPackage(raw.package)
|
|
266
|
+
? raw.package
|
|
267
|
+
: null;
|
|
268
|
+
const packageRun = runPackage?.run;
|
|
269
|
+
const rawStatus =
|
|
270
|
+
typeof raw.status === 'string'
|
|
271
|
+
? raw.status
|
|
272
|
+
: typeof packageRun?.status === 'string'
|
|
273
|
+
? packageRun.status
|
|
274
|
+
: null;
|
|
275
|
+
const status = decodePlayRunPublicStatus(rawStatus);
|
|
276
|
+
if (!status) {
|
|
277
|
+
throw new Error(
|
|
278
|
+
`Invalid play run lifecycle status in API response: ${JSON.stringify(rawStatus)}.`,
|
|
279
|
+
);
|
|
280
|
+
}
|
|
281
|
+
const runId =
|
|
282
|
+
typeof raw.runId === 'string'
|
|
283
|
+
? raw.runId
|
|
284
|
+
: typeof raw.workflowId === 'string'
|
|
285
|
+
? raw.workflowId
|
|
286
|
+
: (packageRun?.id ?? '');
|
|
287
|
+
const legacyOverview = runPackage?.overview ?? raw.overview;
|
|
288
|
+
const runStatus = runPackage?.runStatus ?? raw.runStatus;
|
|
289
|
+
return {
|
|
290
|
+
...(raw as unknown as Omit<PlayStatus, 'runId' | 'status'>),
|
|
291
|
+
runId,
|
|
292
|
+
...(isRecord(legacyOverview)
|
|
293
|
+
? {
|
|
294
|
+
overview: legacyOverview as unknown as PlayStatus['overview'],
|
|
295
|
+
}
|
|
296
|
+
: {}),
|
|
297
|
+
...(isRecord(runStatus)
|
|
298
|
+
? { runStatus: runStatus as unknown as PlayStatus['runStatus'] }
|
|
299
|
+
: {}),
|
|
300
|
+
...(runPackage
|
|
301
|
+
? {
|
|
302
|
+
package: runPackage,
|
|
303
|
+
outputs: runPackage.outputs,
|
|
304
|
+
}
|
|
305
|
+
: {}),
|
|
306
|
+
status,
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
export class PlayClient {
|
|
311
|
+
constructor(
|
|
312
|
+
private readonly http: HttpClient,
|
|
313
|
+
private readonly environment: ClientEnvironment = process.env,
|
|
314
|
+
) {}
|
|
315
|
+
|
|
316
|
+
async startPlayRun(
|
|
317
|
+
request: StartPlayRunRequest,
|
|
318
|
+
options?: PlayRunStartOptions,
|
|
319
|
+
): Promise<PlayRunStart> {
|
|
320
|
+
const resolved = resolveStartPlayRunRequest(request, this.environment);
|
|
321
|
+
const headers = runtimeSelectionHeaders(resolved.runtime, this.environment);
|
|
322
|
+
return startPlayRun(
|
|
323
|
+
this.http,
|
|
324
|
+
resolved.request,
|
|
325
|
+
options?.cliAdmission
|
|
326
|
+
? { ...headers, 'X-Deepline-API-Major': String(SDK_API_MAJOR) }
|
|
327
|
+
: headers,
|
|
328
|
+
options,
|
|
329
|
+
);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
async getPlayStatus(
|
|
333
|
+
workflowId: string,
|
|
334
|
+
options?: { billing?: boolean; full?: boolean },
|
|
335
|
+
): Promise<PlayStatus> {
|
|
336
|
+
const params = new URLSearchParams();
|
|
337
|
+
if (options?.billing === false) {
|
|
338
|
+
params.set('billing', 'false');
|
|
339
|
+
}
|
|
340
|
+
if (options?.full === true) {
|
|
341
|
+
params.set('full', 'true');
|
|
342
|
+
}
|
|
343
|
+
const query = params.size > 0 ? `?${params.toString()}` : '';
|
|
344
|
+
const response = await this.http.get<Record<string, unknown>>(
|
|
345
|
+
`/api/v2/runs/${encodeURIComponent(workflowId)}${query}`,
|
|
346
|
+
);
|
|
347
|
+
return normalizePlayStatus(response);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
async cancelPlay(workflowId: string): Promise<void> {
|
|
351
|
+
await this.http.request(
|
|
352
|
+
`/api/v2/runs/${encodeURIComponent(workflowId)}/stop`,
|
|
353
|
+
{ method: 'POST' },
|
|
354
|
+
);
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
async stopPlay(
|
|
358
|
+
workflowId: string,
|
|
359
|
+
options?: { reason?: string },
|
|
360
|
+
): Promise<StopPlayRunResult> {
|
|
361
|
+
return this.http.post<StopPlayRunResult>(
|
|
362
|
+
`/api/v2/runs/${encodeURIComponent(workflowId)}/stop`,
|
|
363
|
+
options?.reason ? { reason: options.reason } : {},
|
|
364
|
+
);
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
async listPlayRuns(playName: string): Promise<PlayRunListItem[]> {
|
|
368
|
+
const encodedName = encodeURIComponent(playName);
|
|
369
|
+
const response = await this.http.get<{ runs: PlayRunListItem[] }>(
|
|
370
|
+
`/api/v2/plays/${encodedName}/runs`,
|
|
371
|
+
);
|
|
372
|
+
return response.runs ?? [];
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
async getPlay(
|
|
376
|
+
name: string,
|
|
377
|
+
options?: {
|
|
378
|
+
source?: 'working' | 'live' | `version:${number}`;
|
|
379
|
+
guidance?: boolean;
|
|
380
|
+
},
|
|
381
|
+
): Promise<PlayDetail> {
|
|
382
|
+
const encodedName = encodeURIComponent(name);
|
|
383
|
+
const query = options?.source
|
|
384
|
+
? `?include=source&revision=${encodeURIComponent(options.source)}`
|
|
385
|
+
: options?.guidance
|
|
386
|
+
? '?include=guidance'
|
|
387
|
+
: '';
|
|
388
|
+
return this.http.get<PlayDetail>(`/api/v2/plays/${encodedName}${query}`);
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
async clearPlayHistory(
|
|
392
|
+
name: string,
|
|
393
|
+
request: ClearPlayHistoryRequest = {},
|
|
394
|
+
): Promise<ClearPlayHistoryResult> {
|
|
395
|
+
const encodedName = encodeURIComponent(name);
|
|
396
|
+
return this.http.post<ClearPlayHistoryResult>(
|
|
397
|
+
`/api/v2/plays/${encodedName}/history/clear`,
|
|
398
|
+
request,
|
|
399
|
+
);
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
async listPlayVersions(
|
|
403
|
+
name: string,
|
|
404
|
+
options?: { full?: boolean },
|
|
405
|
+
): Promise<PlayRevisionSummary[]> {
|
|
406
|
+
const encodedName = encodeURIComponent(name);
|
|
407
|
+
const suffix = options?.full ? '?full=true' : '';
|
|
408
|
+
const response = await this.http.get<{ versions: PlayRevisionSummary[] }>(
|
|
409
|
+
`/api/v2/plays/${encodedName}/versions${suffix}`,
|
|
410
|
+
);
|
|
411
|
+
return response.versions ?? [];
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
async publishPlayVersion(
|
|
415
|
+
name: string,
|
|
416
|
+
request: PublishPlayVersionRequest = {},
|
|
417
|
+
): Promise<PublishPlayVersionResult> {
|
|
418
|
+
const encodedName = encodeURIComponent(name);
|
|
419
|
+
return this.http.post<PublishPlayVersionResult>(
|
|
420
|
+
`/api/v2/plays/${encodedName}/live`,
|
|
421
|
+
request,
|
|
422
|
+
);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
export type PlayClientOperations = Pick<
|
|
427
|
+
PlayClient,
|
|
428
|
+
| 'getPlay'
|
|
429
|
+
| 'listPlayRuns'
|
|
430
|
+
| 'listPlayVersions'
|
|
431
|
+
| 'publishPlayVersion'
|
|
432
|
+
| 'clearPlayHistory'
|
|
433
|
+
| 'startPlayRun'
|
|
434
|
+
| 'getPlayStatus'
|
|
435
|
+
| 'cancelPlay'
|
|
436
|
+
| 'stopPlay'
|
|
437
|
+
>;
|