deepline 0.3.460 → 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/billing/state.ts +28 -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 +35 -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-HKA6ZVHQ.mjs → auth-JDLEY7VU.mjs} +5 -4
- package/dist/cli/auth-UXKY6TCC.js +41 -0
- package/dist/cli/{billing-MTO2ZZ3G.js → billing-HXAXB3XZ.js} +152 -78
- package/dist/cli/{billing-26G44S5N.mjs → billing-SDHLBLMV.mjs} +84 -10
- package/dist/cli/{chunk-BHGII2D6.js → chunk-3ACMRZRV.js} +8 -6
- package/dist/cli/{chunk-S4Q2XCGM.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-XAYO3Q2X.mjs → chunk-6NNVJDVR.mjs} +7 -5
- package/dist/cli/{chunk-NMJ4D2WO.js → chunk-6PMCRYDA.js} +216 -91
- package/dist/cli/{chunk-OMM54B3X.mjs → chunk-6RNQGWFD.mjs} +16 -806
- package/dist/cli/{chunk-EBU7LQ64.js → chunk-6V7KVRR5.js} +3 -3
- package/dist/cli/{chunk-RDPTDDKX.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-CTRPCARW.mjs → chunk-7U3XNPOA.mjs} +267 -38
- package/dist/cli/{chunk-RBTTUYZZ.js → chunk-7VZHXVOQ.js} +1 -1
- package/dist/cli/{chunk-YVBWO647.mjs → chunk-AT636LLU.mjs} +2 -2
- package/dist/cli/{chunk-VTODQWQA.js → chunk-BGTPIMSM.js} +392 -261
- package/dist/cli/{chunk-KADIT5NV.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-QW54QQNB.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-LMAULZLF.js → chunk-GEGW5HPZ.js} +29 -27
- package/dist/cli/{chunk-M52JQSLK.js → chunk-HUB3CCM2.js} +13 -4
- package/dist/cli/{chunk-YHTQM5XI.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-LAWEURCT.mjs → chunk-LFXLQEZN.mjs} +1 -1
- package/dist/cli/{chunk-2PBN4SZE.js → chunk-LROWFPGN.js} +16 -16
- package/dist/cli/{chunk-SLEUWLJE.mjs → chunk-MSY22NQW.mjs} +5 -5
- package/dist/cli/{chunk-LVJOFUU7.mjs → chunk-MUUQZIOF.mjs} +23 -49
- package/dist/cli/{chunk-2XHWOQF4.js → chunk-NBLSCHKK.js} +52 -50
- package/dist/cli/{chunk-526R2HON.mjs → chunk-NHRWZPWZ.mjs} +4 -2
- package/dist/cli/{chunk-KXMNM4AQ.js → chunk-NMU3VR5U.js} +4 -5
- package/dist/cli/{chunk-W3BE3CHK.mjs → chunk-O2RX5A66.mjs} +14 -12
- package/dist/cli/{chunk-UKFZT7RF.js → chunk-OMQ23IXL.js} +2 -2
- package/dist/cli/{chunk-LJTFZOHU.js → chunk-OPJAJBD4.js} +28 -54
- package/dist/cli/{chunk-MLFR6DVF.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-VJAEA4CS.js → chunk-QJZ6WNWD.js} +8 -8
- package/dist/cli/{chunk-EIMG75BT.mjs → chunk-S3A4IXBQ.mjs} +4 -5
- package/dist/cli/{chunk-RZSTT45F.mjs → chunk-S42YIQNE.mjs} +13 -8
- package/dist/cli/{chunk-YULBYKAK.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-ZR2RLI4O.mjs → chunk-UDRPEZ5F.mjs} +223 -92
- package/dist/cli/{chunk-QGAWTBIR.js → chunk-ULK7JGGI.js} +511 -282
- package/dist/cli/chunk-V335HGX5.js +1038 -0
- package/dist/cli/{chunk-NH6JSJW6.mjs → chunk-V3MEA7NB.mjs} +7 -5
- package/dist/cli/{chunk-NRGGFVVB.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-TOMIAT37.mjs → chunk-WIY6U6GD.mjs} +19 -36
- package/dist/cli/{chunk-YS2YBSJB.js → chunk-XANRM3QA.js} +6 -6
- package/dist/cli/{chunk-KGQNIA37.js → chunk-XQCTG5OO.js} +44 -34
- package/dist/cli/{chunk-EJGBLXDZ.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-2WRO2UJ5.js → chunk-ZGQSFYD2.js} +56 -51
- package/dist/cli/{chunk-OJ6RUKVT.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-6FNFYJUC.js → csv-C56GSCEU.js} +13 -12
- package/dist/cli/{csv-MDHT4BKK.mjs → csv-L54JS7TF.mjs} +4 -3
- package/dist/cli/{db-D6AMVOEW.js → db-MOGRMZTA.js} +30 -27
- package/dist/cli/{db-74O3RFWY.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-N4FMGVSC.js → executions-A7L4ULPP.js} +9 -7
- package/dist/cli/{executions-PVSF4HUF.mjs → executions-ZBGSTT37.mjs} +7 -5
- package/dist/cli/{feedback-OB7NANZW.mjs → feedback-G6GU37FD.mjs} +6 -5
- package/dist/cli/{feedback-WFSPCAI2.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-FHUSPAEU.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-ECHNA5HN.js → legacy-noops-5LM3D724.js} +8 -7
- package/dist/cli/{legacy-noops-HMK4BSCI.mjs → legacy-noops-LJJYG6YA.mjs} +5 -4
- package/dist/cli/{monitors-U7VQ3EZM.mjs → monitors-72QV4ALO.mjs} +19 -6
- package/dist/cli/{monitors-XLLFNENH.js → monitors-UX3H5DC2.js} +103 -90
- package/dist/cli/{org-6H3USO5M.mjs → org-6RRRKOCP.mjs} +9 -6
- package/dist/cli/{org-QX6ER2HN.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-MOB2WYOR.mjs → play-AHASKRLA.mjs} +512 -1508
- package/dist/cli/{play-WNB7HBZK.js → play-EUIUVLUH.js} +1090 -2086
- package/dist/cli/{providers-CXEZ23E2.mjs → providers-GWGE3WY3.mjs} +7 -5
- package/dist/cli/{providers-7M3DISKX.js → providers-V5WU4VXJ.js} +10 -8
- package/dist/cli/{quickstart-ZFCHKHF6.mjs → quickstart-OXKQ5ZST.mjs} +5 -4
- package/dist/cli/{quickstart-CLJT4AZL.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-FVYWYIC3.mjs → search-ZMEBVJZB.mjs} +8 -6
- package/dist/cli/{secrets-YRLKZQS5.js → secrets-ACND5N6A.js} +16 -14
- package/dist/cli/{secrets-WAMPTQFC.mjs → secrets-XRCJFF3L.mjs} +7 -5
- package/dist/cli/{sessions-IQ332BJH.mjs → sessions-RTK3CEW6.mjs} +5 -4
- package/dist/cli/{sessions-44J6WIVU.js → sessions-ZGRJPCFF.js} +6 -5
- package/dist/cli/{settings-4IJR2I2T.js → settings-PD5KWQQZ.js} +80 -77
- package/dist/cli/{settings-22S6NIFQ.mjs → settings-XDRBPRDE.mjs} +14 -11
- package/dist/cli/{setup-OZUPKKPW.mjs → setup-3HPYAOCC.mjs} +12 -10
- package/dist/cli/{setup-3FWSRNOX.js → setup-E2Q6PXHC.js} +53 -51
- package/dist/cli/{skills-5CW3NFP3.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-IBULOV7P.mjs → update-ZWJTADIW.mjs} +9 -8
- package/dist/cli/{workflow-MVZT7MWT.mjs → workflow-23NMPAJ7.mjs} +10 -8
- package/dist/cli/{workflow-Z7FW6GT2.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.mts → compiler-manifest-Dcyd3-Zd.d.mts} +43 -1
- package/dist/{compiler-manifest-CWz_sNOQ.d.ts → 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-VDOCNR7H.js +0 -40
- package/dist/cli/chunk-PQUUWFXY.js +0 -95
- package/dist/cli/chunk-QJLKYYPX.js +0 -1710
- package/dist/cli/chunk-YBWAG72P.mjs +0 -95
- package/dist/cli/git-4PMBJSH5.js +0 -24
- package/dist/cli/search-4CCQCTVD.js +0 -30
- package/dist/cli/skills-LMNM6B5F.js +0 -30
- package/dist/cli/tools-AGBBDJ7P.js +0 -45
- package/dist/cli/tools-NOPBDRGW.mjs +0 -45
- package/dist/cli/update-U3W6USVD.js +0 -32
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { setPlayDatasetSourceRowIdentity } from '../plays/dataset';
|
|
3
|
+
import { stableStringify } from '../plays/row-identity';
|
|
4
|
+
import { getCsvProjectedFields } from './csv-rename';
|
|
5
|
+
|
|
6
|
+
/** Durable, bounded source snapshots for arrays that exceed map materialization memory. */
|
|
7
|
+
export type RuntimeArrayInputScope = {
|
|
8
|
+
playName: string;
|
|
9
|
+
runId: string;
|
|
10
|
+
tableNamespace: string;
|
|
11
|
+
mapInvocationId: string;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export type RuntimeArrayInputOccurrence = {
|
|
15
|
+
data: Record<string, unknown>;
|
|
16
|
+
sourceIdentity?: { datasetId: string; rowIndex: number };
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export type RuntimeArrayInputManifest =
|
|
20
|
+
| { state: 'absent' }
|
|
21
|
+
| {
|
|
22
|
+
state: 'staging';
|
|
23
|
+
sourceFingerprint: string;
|
|
24
|
+
sourceRows: number;
|
|
25
|
+
hasSourceIdentities: boolean;
|
|
26
|
+
}
|
|
27
|
+
| {
|
|
28
|
+
state: 'sealed';
|
|
29
|
+
sourceFingerprint: string;
|
|
30
|
+
sourceRows: number;
|
|
31
|
+
pageCount: number;
|
|
32
|
+
hasSourceIdentities: boolean;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export type RuntimeArrayInputStore = {
|
|
36
|
+
getManifest(
|
|
37
|
+
scope: RuntimeArrayInputScope,
|
|
38
|
+
): Promise<RuntimeArrayInputManifest>;
|
|
39
|
+
begin(
|
|
40
|
+
input: RuntimeArrayInputScope & {
|
|
41
|
+
sourceFingerprint: string;
|
|
42
|
+
sourceRows: number;
|
|
43
|
+
hasSourceIdentities: boolean;
|
|
44
|
+
},
|
|
45
|
+
): Promise<void>;
|
|
46
|
+
putPage(
|
|
47
|
+
input: RuntimeArrayInputScope & {
|
|
48
|
+
sourceFingerprint: string;
|
|
49
|
+
ordinal: number;
|
|
50
|
+
offset: number;
|
|
51
|
+
rows: RuntimeArrayInputOccurrence[];
|
|
52
|
+
},
|
|
53
|
+
): Promise<void>;
|
|
54
|
+
seal(
|
|
55
|
+
input: RuntimeArrayInputScope & {
|
|
56
|
+
sourceFingerprint: string;
|
|
57
|
+
sourceRows: number;
|
|
58
|
+
pageCount: number;
|
|
59
|
+
},
|
|
60
|
+
): Promise<void>;
|
|
61
|
+
readPage(
|
|
62
|
+
input: RuntimeArrayInputScope & { ordinal: number },
|
|
63
|
+
): Promise<{ offset: number; rows: RuntimeArrayInputOccurrence[] }>;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
// Durable array pages use JSONB. Decline a fresh snapshot when its authored
|
|
67
|
+
// values would change under that encoding; the existing materialization path
|
|
68
|
+
// then preserves the original value or raises its existing memory limit.
|
|
69
|
+
export function isLosslessArrayInputValue(value: unknown): boolean {
|
|
70
|
+
const seen = new WeakSet<object>();
|
|
71
|
+
const validString = (text: string) => {
|
|
72
|
+
for (let index = 0; index < text.length; index += 1) {
|
|
73
|
+
const unit = text.charCodeAt(index);
|
|
74
|
+
if (unit === 0) return false;
|
|
75
|
+
if (unit >= 0xd800 && unit <= 0xdbff) {
|
|
76
|
+
const next = text.charCodeAt(++index);
|
|
77
|
+
if (!(next >= 0xdc00 && next <= 0xdfff)) return false;
|
|
78
|
+
} else if (unit >= 0xdc00 && unit <= 0xdfff) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return true;
|
|
83
|
+
};
|
|
84
|
+
const visit = (current: unknown): boolean => {
|
|
85
|
+
if (current === null || typeof current === 'boolean') return true;
|
|
86
|
+
if (typeof current === 'string') return validString(current);
|
|
87
|
+
if (typeof current === 'number')
|
|
88
|
+
return Number.isFinite(current) && !Object.is(current, -0);
|
|
89
|
+
if (typeof current !== 'object' || seen.has(current)) return false;
|
|
90
|
+
seen.add(current);
|
|
91
|
+
if (Array.isArray(current)) {
|
|
92
|
+
if (Object.getPrototypeOf(current) !== Array.prototype) return false;
|
|
93
|
+
if (Object.getOwnPropertySymbols(current).length > 0) return false;
|
|
94
|
+
if (Object.getOwnPropertyNames(current).length !== current.length + 1)
|
|
95
|
+
return false;
|
|
96
|
+
for (let index = 0; index < current.length; index += 1) {
|
|
97
|
+
const descriptor = Object.getOwnPropertyDescriptor(current, index);
|
|
98
|
+
if (
|
|
99
|
+
!descriptor ||
|
|
100
|
+
!('value' in descriptor) ||
|
|
101
|
+
!descriptor.enumerable ||
|
|
102
|
+
!descriptor.writable ||
|
|
103
|
+
!descriptor.configurable ||
|
|
104
|
+
!visit(descriptor.value)
|
|
105
|
+
)
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
if (Object.getPrototypeOf(current) !== Object.prototype) return false;
|
|
111
|
+
const row = current as Record<string, unknown>;
|
|
112
|
+
const projected = getCsvProjectedFields(row);
|
|
113
|
+
const symbols = Object.getOwnPropertySymbols(current);
|
|
114
|
+
if (
|
|
115
|
+
symbols.some(
|
|
116
|
+
(symbol) =>
|
|
117
|
+
symbol !== Symbol.for('deepline.play.csv.projected_fields') ||
|
|
118
|
+
!projected,
|
|
119
|
+
)
|
|
120
|
+
)
|
|
121
|
+
return false;
|
|
122
|
+
for (const key of Object.getOwnPropertyNames(current)) {
|
|
123
|
+
if (!validString(key)) return false;
|
|
124
|
+
const descriptor = Object.getOwnPropertyDescriptor(current, key);
|
|
125
|
+
if (!descriptor || !('value' in descriptor)) return false;
|
|
126
|
+
if (!descriptor.writable || !descriptor.configurable) return false;
|
|
127
|
+
if (!descriptor.enumerable && !projected?.has(key)) return false;
|
|
128
|
+
if (!visit(descriptor.value)) return false;
|
|
129
|
+
}
|
|
130
|
+
return true;
|
|
131
|
+
};
|
|
132
|
+
return visit(value);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/** Only the exact old-receiver unsupported-action response may retain legacy admission. */
|
|
136
|
+
export class RuntimeArrayInputStoreUnavailableError extends Error {
|
|
137
|
+
constructor() {
|
|
138
|
+
super('Runtime array input store is unavailable on this receiver.');
|
|
139
|
+
this.name = 'RuntimeArrayInputStoreUnavailableError';
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const MAX_PAGE_ROWS = 1_000;
|
|
144
|
+
// The backend checks the complete JSON envelope against 1 MiB. Keep room for
|
|
145
|
+
// scope, field names and transport framing without reducing the row memory cap.
|
|
146
|
+
const MAX_PAGE_ROW_BYTES = 1024 * 1024 - 64 * 1024;
|
|
147
|
+
|
|
148
|
+
function sourceFingerprint<T>(input: {
|
|
149
|
+
rows: readonly T[];
|
|
150
|
+
normalize: (row: T, index: number) => RuntimeArrayInputOccurrence;
|
|
151
|
+
}): {
|
|
152
|
+
digest: string;
|
|
153
|
+
hasSourceIdentities: boolean;
|
|
154
|
+
largestRowMemoryBytes: number;
|
|
155
|
+
} {
|
|
156
|
+
const hash = createHash('sha256');
|
|
157
|
+
let hasSourceIdentities = false;
|
|
158
|
+
let largestRowMemoryBytes = 0;
|
|
159
|
+
hash.update(`runtime-array-input-v1:${input.rows.length}:`);
|
|
160
|
+
for (let index = 0; index < input.rows.length; index += 1) {
|
|
161
|
+
const occurrence = input.normalize(input.rows[index]!, index);
|
|
162
|
+
hasSourceIdentities ||= occurrence.sourceIdentity !== undefined;
|
|
163
|
+
const serialized = stableStringify(occurrence);
|
|
164
|
+
const bytes = Buffer.byteLength(serialized, 'utf8');
|
|
165
|
+
largestRowMemoryBytes = Math.max(largestRowMemoryBytes, bytes * 4 + 512);
|
|
166
|
+
hash.update(`${bytes}:`);
|
|
167
|
+
hash.update(serialized);
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
digest: hash.digest('hex'),
|
|
171
|
+
hasSourceIdentities,
|
|
172
|
+
largestRowMemoryBytes,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/** Stage every occurrence before the first sheet admission or resolver call. */
|
|
177
|
+
export async function sealRuntimeArrayInput<T>(input: {
|
|
178
|
+
scope: RuntimeArrayInputScope;
|
|
179
|
+
rows: readonly T[];
|
|
180
|
+
store: RuntimeArrayInputStore;
|
|
181
|
+
normalize: (row: T, index: number) => RuntimeArrayInputOccurrence;
|
|
182
|
+
manifest: RuntimeArrayInputManifest;
|
|
183
|
+
maxPageMemoryBytes?: number;
|
|
184
|
+
}): Promise<Extract<RuntimeArrayInputManifest, { state: 'sealed' }>> {
|
|
185
|
+
if (input.manifest.state === 'sealed') return input.manifest;
|
|
186
|
+
|
|
187
|
+
const source = sourceFingerprint(input);
|
|
188
|
+
if (
|
|
189
|
+
input.maxPageMemoryBytes !== undefined &&
|
|
190
|
+
source.largestRowMemoryBytes > input.maxPageMemoryBytes
|
|
191
|
+
) {
|
|
192
|
+
throw new Error(
|
|
193
|
+
`Dataset ${input.scope.tableNamespace} has a row that exceeds the remaining map memory budget for a durable input page.`,
|
|
194
|
+
);
|
|
195
|
+
}
|
|
196
|
+
if (
|
|
197
|
+
input.manifest.state === 'staging' &&
|
|
198
|
+
(input.manifest.sourceFingerprint !== source.digest ||
|
|
199
|
+
input.manifest.sourceRows !== input.rows.length ||
|
|
200
|
+
input.manifest.hasSourceIdentities !== source.hasSourceIdentities)
|
|
201
|
+
) {
|
|
202
|
+
throw new Error(
|
|
203
|
+
`Dataset ${input.scope.tableNamespace} source changed before its array input was sealed. Retry with the original source.`,
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
await input.store.begin({
|
|
207
|
+
...input.scope,
|
|
208
|
+
sourceFingerprint: source.digest,
|
|
209
|
+
sourceRows: input.rows.length,
|
|
210
|
+
hasSourceIdentities: source.hasSourceIdentities,
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
const secondPass = createHash('sha256');
|
|
214
|
+
secondPass.update(`runtime-array-input-v1:${input.rows.length}:`);
|
|
215
|
+
let pageRows: RuntimeArrayInputOccurrence[] = [];
|
|
216
|
+
let pageBytes = 0;
|
|
217
|
+
let pageMemoryBytes = 0;
|
|
218
|
+
let pageOffset = 0;
|
|
219
|
+
let pageCount = 0;
|
|
220
|
+
const flushPage = async () => {
|
|
221
|
+
if (pageRows.length === 0) return;
|
|
222
|
+
await input.store.putPage({
|
|
223
|
+
...input.scope,
|
|
224
|
+
sourceFingerprint: source.digest,
|
|
225
|
+
ordinal: pageCount,
|
|
226
|
+
offset: pageOffset,
|
|
227
|
+
rows: pageRows,
|
|
228
|
+
});
|
|
229
|
+
pageOffset += pageRows.length;
|
|
230
|
+
pageCount += 1;
|
|
231
|
+
pageRows = [];
|
|
232
|
+
pageBytes = 0;
|
|
233
|
+
pageMemoryBytes = 0;
|
|
234
|
+
};
|
|
235
|
+
for (let index = 0; index < input.rows.length; index += 1) {
|
|
236
|
+
const occurrence = input.normalize(input.rows[index]!, index);
|
|
237
|
+
const serialized = stableStringify(occurrence);
|
|
238
|
+
const bytes = Buffer.byteLength(serialized, 'utf8');
|
|
239
|
+
const rowMemoryBytes = bytes * 4 + 512;
|
|
240
|
+
secondPass.update(`${bytes}:`);
|
|
241
|
+
secondPass.update(serialized);
|
|
242
|
+
if (bytes > MAX_PAGE_ROW_BYTES) {
|
|
243
|
+
throw new Error(
|
|
244
|
+
`Dataset ${input.scope.tableNamespace} row ${index} exceeds the 1 MiB durable input page limit.`,
|
|
245
|
+
);
|
|
246
|
+
}
|
|
247
|
+
if (
|
|
248
|
+
input.maxPageMemoryBytes !== undefined &&
|
|
249
|
+
rowMemoryBytes > input.maxPageMemoryBytes
|
|
250
|
+
) {
|
|
251
|
+
throw new Error(
|
|
252
|
+
`Dataset ${input.scope.tableNamespace} row ${index} exceeds the remaining map memory budget for a durable input page.`,
|
|
253
|
+
);
|
|
254
|
+
}
|
|
255
|
+
if (
|
|
256
|
+
pageRows.length > 0 &&
|
|
257
|
+
(pageRows.length >= MAX_PAGE_ROWS ||
|
|
258
|
+
pageBytes + bytes > MAX_PAGE_ROW_BYTES ||
|
|
259
|
+
(input.maxPageMemoryBytes !== undefined &&
|
|
260
|
+
pageMemoryBytes + rowMemoryBytes > input.maxPageMemoryBytes))
|
|
261
|
+
) {
|
|
262
|
+
await flushPage();
|
|
263
|
+
}
|
|
264
|
+
pageRows.push(occurrence);
|
|
265
|
+
pageBytes += bytes;
|
|
266
|
+
pageMemoryBytes += rowMemoryBytes;
|
|
267
|
+
}
|
|
268
|
+
await flushPage();
|
|
269
|
+
if (secondPass.digest('hex') !== source.digest) {
|
|
270
|
+
throw new Error(
|
|
271
|
+
`Dataset ${input.scope.tableNamespace} source changed while staging its array input. Retry with the original source.`,
|
|
272
|
+
);
|
|
273
|
+
}
|
|
274
|
+
await input.store.seal({
|
|
275
|
+
...input.scope,
|
|
276
|
+
sourceFingerprint: source.digest,
|
|
277
|
+
sourceRows: input.rows.length,
|
|
278
|
+
pageCount,
|
|
279
|
+
});
|
|
280
|
+
return {
|
|
281
|
+
state: 'sealed',
|
|
282
|
+
sourceFingerprint: source.digest,
|
|
283
|
+
sourceRows: input.rows.length,
|
|
284
|
+
pageCount,
|
|
285
|
+
hasSourceIdentities: source.hasSourceIdentities,
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/** Read the sealed sequence by ordinal, retaining only one backend page. */
|
|
290
|
+
export async function* iterateSealedRuntimeArrayInput(
|
|
291
|
+
store: RuntimeArrayInputStore,
|
|
292
|
+
scope: RuntimeArrayInputScope,
|
|
293
|
+
manifest: Extract<RuntimeArrayInputManifest, { state: 'sealed' }>,
|
|
294
|
+
): AsyncIterable<Record<string, unknown>> {
|
|
295
|
+
let offset = 0;
|
|
296
|
+
for (let ordinal = 0; ordinal < manifest.pageCount; ordinal += 1) {
|
|
297
|
+
const page = await store.readPage({ ...scope, ordinal });
|
|
298
|
+
if (page.offset !== offset || page.rows.length === 0) {
|
|
299
|
+
throw new Error(
|
|
300
|
+
`Dataset ${scope.tableNamespace} durable input page ${ordinal} is missing or out of order.`,
|
|
301
|
+
);
|
|
302
|
+
}
|
|
303
|
+
for (const occurrence of page.rows) {
|
|
304
|
+
const row = occurrence.sourceIdentity
|
|
305
|
+
? setPlayDatasetSourceRowIdentity(
|
|
306
|
+
occurrence.data,
|
|
307
|
+
occurrence.sourceIdentity,
|
|
308
|
+
)
|
|
309
|
+
: occurrence.data;
|
|
310
|
+
yield row;
|
|
311
|
+
}
|
|
312
|
+
offset += page.rows.length;
|
|
313
|
+
}
|
|
314
|
+
if (offset !== manifest.sourceRows) {
|
|
315
|
+
throw new Error(
|
|
316
|
+
`Dataset ${scope.tableNamespace} durable input ended at ${offset}/${manifest.sourceRows} rows.`,
|
|
317
|
+
);
|
|
318
|
+
}
|
|
319
|
+
}
|