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
|
@@ -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.463',
|
|
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'];
|
|
@@ -106,17 +106,25 @@ export const TAMRADAR_RADAR_TYPE_PRICING = {
|
|
|
106
106
|
providerCostUsd: 0.045,
|
|
107
107
|
unitLabel: 'finding',
|
|
108
108
|
},
|
|
109
|
-
//
|
|
110
|
-
//
|
|
111
|
-
//
|
|
112
|
-
// set. It is excluded from the deployable enum + public pricing surface.
|
|
109
|
+
// Source: TAMRadar per-update pricing (confidential/internal), confirmed
|
|
110
|
+
// per result with TAMRadar on 2026-11-03 (it was a $150/mo resell tier).
|
|
111
|
+
// https://docs.tamradar.com/webhooks/industry/funding-rounds
|
|
113
112
|
industry_funding_rounds: {
|
|
114
113
|
capability: 'industry_radar',
|
|
115
114
|
label: 'Industry funding rounds',
|
|
116
|
-
mode: '
|
|
117
|
-
providerCostUsd:
|
|
118
|
-
unitLabel: '
|
|
119
|
-
|
|
115
|
+
mode: 'monitor_usage',
|
|
116
|
+
providerCostUsd: 0.1,
|
|
117
|
+
unitLabel: 'finding',
|
|
118
|
+
},
|
|
119
|
+
// Source: TAMRadar per-update pricing (confidential/internal), confirmed
|
|
120
|
+
// per result with TAMRadar on 2026-11-03 (it was a $250/mo resell tier).
|
|
121
|
+
// https://docs.tamradar.com/webhooks/industry/new-companies
|
|
122
|
+
industry_new_companies: {
|
|
123
|
+
capability: 'industry_radar',
|
|
124
|
+
label: 'Industry new companies',
|
|
125
|
+
mode: 'monitor_usage',
|
|
126
|
+
providerCostUsd: 0.15,
|
|
127
|
+
unitLabel: 'finding',
|
|
120
128
|
},
|
|
121
129
|
} as const;
|
|
122
130
|
|
|
@@ -132,9 +140,7 @@ export function isTamradarRadarType(value: string): value is TamradarRadarType {
|
|
|
132
140
|
// `radar_type` enum (so they never appear in `monitors tools`/CLI and payload
|
|
133
141
|
// validation rejects them) and from the public pricing surface — the deploy
|
|
134
142
|
// path surfaces a clear "radar type not available for deployment" error rather
|
|
135
|
-
// than a bare enum mismatch. Flipping a type back on is a one-line delete here
|
|
136
|
-
// (the two resell-tier types below carry resell rights and may be enabled
|
|
137
|
-
// per-partner).
|
|
143
|
+
// than a bare enum mismatch. Flipping a type back on is a one-line delete here.
|
|
138
144
|
//
|
|
139
145
|
// IMPORTANT (guardrail): these reason strings are CUSTOMER-VISIBLE — they flow
|
|
140
146
|
// into the deploy-rejection `suggestion` via `tamradarDisabledRadarTypeReason`.
|
|
@@ -144,12 +150,6 @@ export function isTamradarRadarType(value: string): value is TamradarRadarType {
|
|
|
144
150
|
export const TAMRADAR_DISABLED_RADAR_TYPES: Record<string, string> = {
|
|
145
151
|
company_social_posts_cxo:
|
|
146
152
|
'This Deepline radar type is not available for self-serve deploy.',
|
|
147
|
-
// Internal note (NOT customer-visible): $250/mo resell-tier subscription.
|
|
148
|
-
industry_new_companies:
|
|
149
|
-
'This Deepline radar type is not available for self-serve deploy.',
|
|
150
|
-
// Internal note (NOT customer-visible): $150/mo resell-tier subscription.
|
|
151
|
-
industry_funding_rounds:
|
|
152
|
-
'This Deepline radar type is not available for self-serve deploy.',
|
|
153
153
|
};
|
|
154
154
|
|
|
155
155
|
export function isTamradarDisabledRadarType(value: string): boolean {
|