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