stitchkit 0.104.2 → 0.105.1
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/CHANGELOG.md +401 -13
- package/darwin-native.cjs +4 -2
- package/dist/agent-runtime/browser-control-contract.d.ts +32 -2
- package/dist/agent-runtime/browser-control-contract.d.ts.map +1 -1
- package/dist/agent-runtime/browser-controller.d.ts +21 -3
- package/dist/agent-runtime/browser-controller.d.ts.map +1 -1
- package/dist/agent-runtime/coding-shell-process.d.ts.map +1 -1
- package/dist/agent-runtime/coding-tool-refusals.d.ts +1 -0
- package/dist/agent-runtime/coding-tool-refusals.d.ts.map +1 -1
- package/dist/agent-runtime/coding-tool-shell.d.ts.map +1 -1
- package/dist/agent-runtime/compaction.d.ts.map +1 -1
- package/dist/agent-runtime/contained-write.d.ts.map +1 -1
- package/dist/agent-runtime/control-schema.d.ts +48 -1
- package/dist/agent-runtime/control-schema.d.ts.map +1 -1
- package/dist/agent-runtime/deferred-tool-search.d.ts +3 -2
- package/dist/agent-runtime/deferred-tool-search.d.ts.map +1 -1
- package/dist/agent-runtime/harness-control.d.ts.map +1 -1
- package/dist/agent-runtime/harness-realtime.d.ts +34 -4
- package/dist/agent-runtime/harness-realtime.d.ts.map +1 -1
- package/dist/agent-runtime/runtime-recovery.d.ts.map +1 -1
- package/dist/agent-runtime/runtime-state.d.ts.map +1 -1
- package/dist/agent-runtime/sandbox-contract.d.ts.map +1 -1
- package/dist/agent-runtime/sandbox-process-owner.d.ts +9 -1
- package/dist/agent-runtime/sandbox-process-owner.d.ts.map +1 -1
- package/dist/agent-runtime/sandbox.d.ts +32 -1
- package/dist/agent-runtime/sandbox.d.ts.map +1 -1
- package/dist/agent-runtime/schedule-records.d.ts.map +1 -1
- package/dist/agent-runtime/schedules.d.ts.map +1 -1
- package/dist/agent-runtime/store-events.d.ts +9 -4
- package/dist/agent-runtime/store-events.d.ts.map +1 -1
- package/dist/agent-runtime/testing.d.ts.map +1 -1
- package/dist/application/diagnostic-journal-contract.d.ts +50 -0
- package/dist/application/diagnostic-journal-contract.d.ts.map +1 -1
- package/dist/application/diagnostic-journal-generations.d.ts +24 -0
- package/dist/application/diagnostic-journal-generations.d.ts.map +1 -0
- package/dist/application/diagnostic-journal-manager.d.ts.map +1 -1
- package/dist/application/diagnostic-journal-open.d.ts +10 -0
- package/dist/application/diagnostic-journal-open.d.ts.map +1 -0
- package/dist/application/diagnostic-journal-quarantine.d.ts +28 -0
- package/dist/application/diagnostic-journal-quarantine.d.ts.map +1 -0
- package/dist/application/diagnostic-journal-read-contract.d.ts +73 -3
- package/dist/application/diagnostic-journal-read-contract.d.ts.map +1 -1
- package/dist/application/diagnostic-journal-reader.d.ts +17 -2
- package/dist/application/diagnostic-journal-reader.d.ts.map +1 -1
- package/dist/application/diagnostic-journal-recovery.d.ts +18 -2
- package/dist/application/diagnostic-journal-recovery.d.ts.map +1 -1
- package/dist/application/diagnostic-journal-storage.d.ts +6 -2
- package/dist/application/diagnostic-journal-storage.d.ts.map +1 -1
- package/dist/application/diagnostic-journal-tail.d.ts +12 -0
- package/dist/application/diagnostic-journal-tail.d.ts.map +1 -0
- package/dist/application/diagnostic-journal.d.ts +3 -0
- package/dist/application/diagnostic-journal.d.ts.map +1 -1
- package/dist/application/directory-inbox-accept.d.ts +3 -3
- package/dist/application/directory-inbox-accept.d.ts.map +1 -1
- package/dist/application/directory-inbox-contract.d.ts +38 -10
- package/dist/application/directory-inbox-contract.d.ts.map +1 -1
- package/dist/application/directory-inbox-delivery.d.ts +3 -3
- package/dist/application/directory-inbox-delivery.d.ts.map +1 -1
- package/dist/application/directory-inbox-files.d.ts +17 -2
- package/dist/application/directory-inbox-files.d.ts.map +1 -1
- package/dist/application/directory-inbox-state.d.ts +1 -1
- package/dist/application/directory-inbox-state.d.ts.map +1 -1
- package/dist/application/directory-inbox.d.ts +1 -1
- package/dist/application/directory-inbox.d.ts.map +1 -1
- package/dist/application/file-state-store.d.ts +21 -1
- package/dist/application/file-state-store.d.ts.map +1 -1
- package/dist/application/grammy.d.ts.map +1 -1
- package/dist/application/kernel-contract.d.ts.map +1 -1
- package/dist/application/revision-signal.d.ts.map +1 -1
- package/dist/application/state-store.d.ts +3 -0
- package/dist/application/state-store.d.ts.map +1 -1
- package/dist/browser/api-error.d.ts +38 -0
- package/dist/browser/api-error.d.ts.map +1 -0
- package/dist/browser/chunked-upload.d.ts.map +1 -1
- package/dist/browser/client-executors.d.ts.map +1 -1
- package/dist/browser/client-url.d.ts.map +1 -1
- package/dist/browser/contract-stream.d.ts.map +1 -1
- package/dist/browser/http.d.ts +0 -25
- package/dist/browser/http.d.ts.map +1 -1
- package/dist/browser/resumable.d.ts.map +1 -1
- package/dist/contract/define-validation.d.ts +0 -1
- package/dist/contract/define-validation.d.ts.map +1 -1
- package/dist/contract/define.d.ts.map +1 -1
- package/dist/contract/errors-factory.d.ts.map +1 -1
- package/dist/contract/errors.d.ts +15 -18
- package/dist/contract/errors.d.ts.map +1 -1
- package/dist/contract/normalize.d.ts.map +1 -1
- package/dist/durability/effect.d.ts.map +1 -1
- package/dist/durability/scheduler.d.ts.map +1 -1
- package/dist/entrypoints/agent-runtime/browser.js +29 -18
- package/dist/entrypoints/agent-runtime/coding-tools.js +8 -7
- package/dist/entrypoints/agent-runtime/harness.js +15 -14
- package/dist/entrypoints/agent-runtime/realtime.d.ts +1 -1
- package/dist/entrypoints/agent-runtime/realtime.d.ts.map +1 -1
- package/dist/entrypoints/agent-runtime/realtime.js +119 -54
- package/dist/entrypoints/agent-runtime/sandbox.js +23 -17
- package/dist/entrypoints/agent-runtime/sqlite/bun.js +4 -3
- package/dist/entrypoints/agent-runtime/sqlite/node.js +4 -3
- package/dist/entrypoints/agent-runtime/testing.js +8 -6
- package/dist/entrypoints/agent-runtime.js +37 -38
- package/dist/entrypoints/application/diagnostic-journal.js +305 -111
- package/dist/entrypoints/application/directory-inbox.js +174 -77
- package/dist/entrypoints/application/grammy.js +5 -2
- package/dist/entrypoints/application/opentelemetry.js +2 -2
- package/dist/entrypoints/application.d.ts +2 -2
- package/dist/entrypoints/application.d.ts.map +1 -1
- package/dist/entrypoints/application.js +17 -8
- package/dist/entrypoints/cli/publish.d.ts +16 -0
- package/dist/entrypoints/cli/publish.d.ts.map +1 -0
- package/dist/entrypoints/cli/publish.js +527 -0
- package/dist/entrypoints/cli.d.ts +1 -2
- package/dist/entrypoints/cli.d.ts.map +1 -1
- package/dist/entrypoints/cli.js +59 -966
- package/dist/entrypoints/contract.js +3 -3
- package/dist/entrypoints/files/packaging.js +161 -66
- package/dist/entrypoints/files.d.ts +1 -0
- package/dist/entrypoints/files.d.ts.map +1 -1
- package/dist/entrypoints/files.js +17 -10
- package/dist/entrypoints/index.d.ts +2 -1
- package/dist/entrypoints/index.d.ts.map +1 -1
- package/dist/entrypoints/index.js +31 -60
- package/dist/entrypoints/node.js +8 -8
- package/dist/entrypoints/observability.js +3 -3
- package/dist/entrypoints/primitives.js +67 -83
- package/dist/entrypoints/process.d.ts +1 -1
- package/dist/entrypoints/process.d.ts.map +1 -1
- package/dist/entrypoints/process.js +2 -2
- package/dist/entrypoints/react.js +4 -2
- package/dist/entrypoints/remote.js +37 -13
- package/dist/entrypoints/server.js +18 -16
- package/dist/entrypoints/telegram/screens.js +5 -3
- package/dist/entrypoints/telegram.js +31 -46
- package/dist/entrypoints/testing.d.ts +1 -1
- package/dist/entrypoints/testing.d.ts.map +1 -1
- package/dist/entrypoints/testing.js +444 -448
- package/dist/entrypoints/tools/connections.js +268 -105
- package/dist/entrypoints/tools/contract.js +2 -2
- package/dist/entrypoints/tools/invoker.js +8 -7
- package/dist/entrypoints/tools/mcp.d.ts +2 -2
- package/dist/entrypoints/tools/mcp.d.ts.map +1 -1
- package/dist/entrypoints/tools/mcp.js +10 -9
- package/dist/entrypoints/tools.d.ts +0 -1
- package/dist/entrypoints/tools.d.ts.map +1 -1
- package/dist/entrypoints/tools.js +118 -53
- package/dist/entrypoints/tracking.js +2 -3
- package/dist/files/boundary.d.ts +2 -2
- package/dist/files/boundary.d.ts.map +1 -1
- package/dist/files/chunk-spool.d.ts.map +1 -1
- package/dist/files/file-io.d.ts +2 -2
- package/dist/files/file-io.d.ts.map +1 -1
- package/dist/files/native-packaging-layout.d.ts +50 -4
- package/dist/files/native-packaging-layout.d.ts.map +1 -1
- package/dist/files/native-packaging.d.ts +78 -17
- package/dist/files/native-packaging.d.ts.map +1 -1
- package/dist/{index-r5hsgkz5.js → index-0gs4ymfj.js} +6 -3
- package/dist/{index-zax7resm.js → index-0gxvns6s.js} +1 -13
- package/dist/index-0s4xebbg.js +8 -0
- package/dist/{index-r4r70zmh.js → index-12zsej7b.js} +5 -2
- package/dist/{index-269zqj8m.js → index-1ptj98e0.js} +28 -12
- package/dist/{index-kemm0ej5.js → index-1pwwan01.js} +65 -22
- package/dist/{index-vgkbcnkc.js → index-299sm5tr.js} +1 -1
- package/dist/{index-2vnh05w4.js → index-2k91mewf.js} +31 -74
- package/dist/{index-wh0ecvyk.js → index-37asdw3a.js} +1 -1
- package/dist/index-3h0ztg0z.js +285 -0
- package/dist/{index-g95fk660.js → index-4vsby8n8.js} +8 -15
- package/dist/index-556g5hsh.js +17 -0
- package/dist/{index-f330qqyg.js → index-5c26631f.js} +244 -67
- package/dist/{index-adhgd4pe.js → index-5p55xreg.js} +2 -2
- package/dist/index-5w6t91ze.js +47 -0
- package/dist/{index-9pw0a51a.js → index-6yxhe58g.js} +40 -7
- package/dist/{index-6d9xaxw1.js → index-8ks9b85e.js} +33 -5
- package/dist/{index-bhb950qs.js → index-916yh4e2.js} +25 -12
- package/dist/index-9tqbxv5p.js +44 -0
- package/dist/{index-5csmzesf.js → index-azx12jgv.js} +4 -3
- package/dist/{index-mbnnw3f2.js → index-b0kddvzw.js} +15 -5
- package/dist/{index-n5yqxd3d.js → index-b0w7rbpt.js} +23 -2
- package/dist/index-b56nnscm.js +132 -0
- package/dist/{index-0ndk4555.js → index-c0hffcmj.js} +2 -2
- package/dist/{index-pptyv13k.js → index-c17xcx4k.js} +42 -6
- package/dist/index-cazts87s.js +105 -0
- package/dist/{index-g2j7pnak.js → index-cmzvhhtd.js} +5 -2
- package/dist/{index-ssmd41kh.js → index-d2h99n7d.js} +1 -1
- package/dist/{index-z94wht4y.js → index-dky0dcmf.js} +34 -5
- package/dist/index-drs41arz.js +455 -0
- package/dist/{index-za6j7nwy.js → index-dsnjzb62.js} +104 -51
- package/dist/index-eemvahkc.js +21 -0
- package/dist/{index-fa4wg312.js → index-f199nfq5.js} +10 -6
- package/dist/{index-ck71tbcf.js → index-fsw1ybf3.js} +11 -15
- package/dist/{index-fk18k56k.js → index-gr5g3xfw.js} +11 -18
- package/dist/{index-jn9g8xdt.js → index-hjvje0pf.js} +6 -4
- package/dist/index-j4zh647a.js +59 -0
- package/dist/{index-x928baz2.js → index-j9gxbztg.js} +18 -14
- package/dist/index-kfjkb396.js +37 -0
- package/dist/{index-6drst9sg.js → index-ksfagmyz.js} +45 -345
- package/dist/index-m616f0yz.js +120 -0
- package/dist/{index-fm1c1a08.js → index-m6w6jtda.js} +40 -21
- package/dist/{index-bakgedh8.js → index-msfpyy2f.js} +2 -4
- package/dist/{index-ywppsaby.js → index-n1nszyk0.js} +23 -34
- package/dist/{index-v14qqmys.js → index-n4689krb.js} +1 -1
- package/dist/{index-a0zzh8ak.js → index-pz3y6b6g.js} +3 -3
- package/dist/{index-43p08g7t.js → index-pzb63z66.js} +12 -8
- package/dist/{index-h97tqqp1.js → index-qaet40b2.js} +5 -3
- package/dist/{index-t1sr4aks.js → index-qaqbdm7s.js} +52 -6
- package/dist/{index-77nxk6ay.js → index-r393tnfp.js} +16 -10
- package/dist/{index-kb8styz3.js → index-rpzewktb.js} +15 -5
- package/dist/{index-27a2pj09.js → index-sj28htvf.js} +1 -1
- package/dist/{index-hbd32c6a.js → index-w8etpm8j.js} +38 -89
- package/dist/{index-2hyavjjj.js → index-wbhdzxar.js} +3 -3
- package/dist/{index-4e0ah203.js → index-wdy68sh6.js} +47 -24
- package/dist/{index-hp9d77wk.js → index-x7w1z6pf.js} +15 -4
- package/dist/{index-ptn0g0gj.js → index-y7k2cdgv.js} +21 -20
- package/dist/{index-20yvtn9a.js → index-yt7gyg5x.js} +1 -1
- package/dist/{index-cvda079a.js → index-yvfk3y36.js} +12 -2
- package/dist/{index-5z6jn897.js → index-z23rfxhj.js} +1 -1
- package/dist/internal/abort-race.d.ts +8 -2
- package/dist/internal/abort-race.d.ts.map +1 -1
- package/dist/internal/atomic-file.d.ts +55 -9
- package/dist/internal/atomic-file.d.ts.map +1 -1
- package/dist/internal/atomic-publication.d.ts +39 -4
- package/dist/internal/atomic-publication.d.ts.map +1 -1
- package/dist/internal/atomic-staging.d.ts +47 -0
- package/dist/internal/atomic-staging.d.ts.map +1 -0
- package/dist/internal/bounded-file-read.d.ts +19 -11
- package/dist/internal/bounded-file-read.d.ts.map +1 -1
- package/dist/internal/bounded-lines.d.ts.map +1 -1
- package/dist/internal/close-after.d.ts +11 -0
- package/dist/internal/close-after.d.ts.map +1 -0
- package/dist/internal/deadline.d.ts +10 -0
- package/dist/internal/deadline.d.ts.map +1 -1
- package/dist/internal/exclusive-lock-read.d.ts +10 -12
- package/dist/internal/exclusive-lock-read.d.ts.map +1 -1
- package/dist/internal/exclusive-lock.d.ts +2 -2
- package/dist/internal/exclusive-lock.d.ts.map +1 -1
- package/dist/internal/file-observation.d.ts +14 -0
- package/dist/internal/file-observation.d.ts.map +1 -0
- package/dist/internal/json-data.d.ts +22 -5
- package/dist/internal/json-data.d.ts.map +1 -1
- package/dist/internal/positive-integer.d.ts +9 -0
- package/dist/internal/positive-integer.d.ts.map +1 -0
- package/dist/internal/process-instance.d.ts +35 -5
- package/dist/internal/process-instance.d.ts.map +1 -1
- package/dist/internal/secure-fetch.d.ts.map +1 -1
- package/dist/internal/timers.d.ts +11 -0
- package/dist/internal/timers.d.ts.map +1 -0
- package/dist/internal/with-exclusive-lock.d.ts +5 -4
- package/dist/internal/with-exclusive-lock.d.ts.map +1 -1
- package/dist/observability/bounded-sink.d.ts.map +1 -1
- package/dist/primitives/canonical-json.d.ts +23 -2
- package/dist/primitives/canonical-json.d.ts.map +1 -1
- package/dist/primitives/delivery.d.ts.map +1 -1
- package/dist/primitives/index.d.ts +1 -1
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/money.d.ts.map +1 -1
- package/dist/process/cleanup.d.ts +7 -2
- package/dist/process/cleanup.d.ts.map +1 -1
- package/dist/process/command-lifetime.d.ts +6 -1
- package/dist/process/command-lifetime.d.ts.map +1 -1
- package/dist/process/command-owner.d.ts +1 -0
- package/dist/process/command-owner.d.ts.map +1 -1
- package/dist/process/command.d.ts +4 -0
- package/dist/process/command.d.ts.map +1 -1
- package/dist/process/contract.d.ts +68 -2
- package/dist/process/contract.d.ts.map +1 -1
- package/dist/process/group.d.ts +42 -3
- package/dist/process/group.d.ts.map +1 -1
- package/dist/process/launch.d.ts +12 -1
- package/dist/process/launch.d.ts.map +1 -1
- package/dist/process/terminate.d.ts +40 -0
- package/dist/process/terminate.d.ts.map +1 -0
- package/dist/react/query-client.d.ts.map +1 -1
- package/dist/realtime/rejection.d.ts.map +1 -1
- package/dist/server/contract-stream.d.ts.map +1 -1
- package/dist/server/handler-state.d.ts.map +1 -1
- package/dist/server/implement.d.ts.map +1 -1
- package/dist/server/request-body.d.ts +0 -1
- package/dist/server/request-body.d.ts.map +1 -1
- package/dist/server/unix-client.d.ts.map +1 -1
- package/dist/telegram/broadcast-delivery.d.ts.map +1 -1
- package/dist/telegram/broadcast-failure.d.ts +10 -2
- package/dist/telegram/broadcast-failure.d.ts.map +1 -1
- package/dist/telegram/operator-channel.d.ts.map +1 -1
- package/dist/telegram/screens/outcome.d.ts.map +1 -1
- package/dist/testing/surface-conformance.d.ts +1 -1
- package/dist/testing/surface-conformance.d.ts.map +1 -1
- package/dist/testing/surface-manifest.d.ts +0 -6
- package/dist/testing/surface-manifest.d.ts.map +1 -1
- package/dist/tools/agent.d.ts +1 -1
- package/dist/tools/agent.d.ts.map +1 -1
- package/dist/tools/cli/args.d.ts +1 -1
- package/dist/tools/cli/args.d.ts.map +1 -1
- package/dist/tools/cli/help.d.ts.map +1 -1
- package/dist/tools/cli/invoke.d.ts +2 -2
- package/dist/tools/cli/invoke.d.ts.map +1 -1
- package/dist/tools/cli/profile.d.ts.map +1 -1
- package/dist/tools/cli/publication-assets.d.ts.map +1 -1
- package/dist/tools/cli/publication-contract.d.ts +8 -0
- package/dist/tools/cli/publication-contract.d.ts.map +1 -1
- package/dist/tools/cli/publication-control.d.ts.map +1 -1
- package/dist/tools/cli/publication-storage.d.ts +23 -2
- package/dist/tools/cli/publication-storage.d.ts.map +1 -1
- package/dist/tools/cli/publication.d.ts +8 -1
- package/dist/tools/cli/publication.d.ts.map +1 -1
- package/dist/tools/connections/errors.d.ts +18 -6
- package/dist/tools/connections/errors.d.ts.map +1 -1
- package/dist/tools/connections/limits.d.ts +8 -2
- package/dist/tools/connections/limits.d.ts.map +1 -1
- package/dist/tools/connections/mcp-client.d.ts.map +1 -1
- package/dist/tools/connections/mcp-envelope.d.ts.map +1 -1
- package/dist/tools/connections/openapi.d.ts.map +1 -1
- package/dist/tools/connections/schema-budget.d.ts +1 -1
- package/dist/tools/connections/schema-budget.d.ts.map +1 -1
- package/dist/tools/connections/sse-session.d.ts.map +1 -1
- package/dist/tools/execute-args.d.ts.map +1 -1
- package/dist/tools/execute-result.d.ts.map +1 -1
- package/dist/tools/internal/surface-projector.d.ts +17 -3
- package/dist/tools/internal/surface-projector.d.ts.map +1 -1
- package/dist/tools/internal/tool-error-projection.d.ts +16 -0
- package/dist/tools/internal/tool-error-projection.d.ts.map +1 -0
- package/dist/tools/internal/tool-view.d.ts.map +1 -1
- package/dist/tools/invoker.d.ts.map +1 -1
- package/dist/tools/list-names.d.ts +3 -2
- package/dist/tools/list-names.d.ts.map +1 -1
- package/dist/tools/manifest.d.ts +3 -2
- package/dist/tools/manifest.d.ts.map +1 -1
- package/dist/tools/mcp/handler.d.ts +7 -0
- package/dist/tools/mcp/handler.d.ts.map +1 -1
- package/dist/tools/mcp/mount.d.ts +18 -2
- package/dist/tools/mcp/mount.d.ts.map +1 -1
- package/dist/tools/mcp/prepare.d.ts +3 -3
- package/dist/tools/mcp/prepare.d.ts.map +1 -1
- package/dist/tools/mcp/register.d.ts.map +1 -1
- package/dist/tools/mcp/runtime-tools.d.ts.map +1 -1
- package/dist/tools/mcp/stdio-signals.d.ts +14 -0
- package/dist/tools/mcp/stdio-signals.d.ts.map +1 -1
- package/dist/tools/mcp/stdio.d.ts +7 -0
- package/dist/tools/mcp/stdio.d.ts.map +1 -1
- package/dist/tools/operations/async-operation-runtime-tools.d.ts.map +1 -1
- package/dist/tools/operations/async-operation-runtime-types.d.ts +3 -3
- package/dist/tools/operations/async-operation-runtime-types.d.ts.map +1 -1
- package/dist/tools/operations/define-wait-tool.d.ts +1 -1
- package/dist/tools/operations/define-wait-tool.d.ts.map +1 -1
- package/dist/tools/operations/wait-core.d.ts +0 -6
- package/dist/tools/operations/wait-core.d.ts.map +1 -1
- package/dist/tools/registry.d.ts +1 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/remote.d.ts +1 -1
- package/dist/tools/remote.d.ts.map +1 -1
- package/dist/tools/{runtime-tool-execution.d.ts → runtime-tool-declaration.d.ts} +32 -9
- package/dist/tools/runtime-tool-declaration.d.ts.map +1 -0
- package/dist/tools/runtime-tool-mcp.d.ts +6 -15
- package/dist/tools/runtime-tool-mcp.d.ts.map +1 -1
- package/dist/tools/runtime-tool.d.ts +14 -12
- package/dist/tools/runtime-tool.d.ts.map +1 -1
- package/dist/tools/schema/coerce.d.ts +4 -0
- package/dist/tools/schema/coerce.d.ts.map +1 -1
- package/dist/tools/schema/flatten-join.d.ts.map +1 -1
- package/dist/tools/surface.d.ts +7 -11
- package/dist/tools/surface.d.ts.map +1 -1
- package/dist/tools/transfer/define-download-tool.d.ts +1 -1
- package/dist/tools/transfer/define-download-tool.d.ts.map +1 -1
- package/dist/tools/transfer/define-upload-tool.d.ts +1 -1
- package/dist/tools/transfer/define-upload-tool.d.ts.map +1 -1
- package/dist/tools/transfer/define-view-file-tool.d.ts +1 -1
- package/dist/tools/transfer/define-view-file-tool.d.ts.map +1 -1
- package/dist/tools/transfer/managed-file-error.d.ts.map +1 -1
- package/dist/tools/transfer/view-file-contract.d.ts.map +1 -1
- package/dist/tools/transfer/view-file.d.ts +1 -1
- package/dist/tools/transfer/view-file.d.ts.map +1 -1
- package/dist/tools/transports.d.ts +3 -2
- package/dist/tools/transports.d.ts.map +1 -1
- package/llms/agent-runtime-browser.txt +10 -4
- package/llms/agent-runtime-harness.txt +32 -31
- package/llms/agent-runtime-react.txt +1 -1
- package/llms/agent-runtime-realtime.txt +14 -5
- package/llms/agent-runtime-sandbox.txt +3 -11
- package/llms/agent-runtime.3.txt +2 -2
- package/llms/agent-runtime.txt +0 -9
- package/llms/application.2.txt +3 -12
- package/llms/application.3.txt +7 -4
- package/llms/application.txt +44 -15
- package/llms/cli-publish.txt +29 -0
- package/llms/cli.2.txt +9 -11
- package/llms/cli.txt +26 -14
- package/llms/declaration.txt +0 -9
- package/llms/files-packaging.txt +18 -8
- package/llms/files.txt +4 -2
- package/llms/geo.txt +0 -9
- package/llms/live.txt +4 -13
- package/llms/observability.txt +31 -5
- package/llms/primitives.txt +38 -20
- package/llms/process.txt +324 -160
- package/llms/react-keyboard.txt +0 -9
- package/llms/react.txt +0 -18
- package/llms/server.4.txt +1 -1
- package/llms/server.5.txt +1 -1
- package/llms/server.txt +1 -1
- package/llms/stitchkit.txt +6 -7
- package/llms/telegram-screens.txt +2 -2
- package/llms/testing.txt +0 -1
- package/llms/tools-mcp.txt +2 -3
- package/llms/tools.2.txt +12 -0
- package/llms/tools.3.txt +5 -6
- package/llms/tools.txt +6 -4
- package/llms/upgrading-0.37.0-0.50.0.txt +947 -0
- package/llms/{upgrading-0.44.0-0.61.0.txt → upgrading-0.53.0-0.67.0.txt} +576 -506
- package/llms/{upgrading-0.62.0-0.80.0.txt → upgrading-0.68.0-0.94.0.txt} +562 -576
- package/llms/{upgrading-0.81.0-0.104.0.txt → upgrading-0.95.0-0.105.0.txt} +452 -567
- package/llms/upgrading.txt +4 -4
- package/llms-full.txt +1068 -412
- package/llms.txt +24 -24
- package/native-assets.json +11 -3
- package/package.json +6 -6
- package/dist/agent-runtime/harness-tools.d.ts +0 -11
- package/dist/agent-runtime/harness-tools.d.ts.map +0 -1
- package/dist/entrypoints/agent-runtime/harness-tools.d.ts +0 -2
- package/dist/entrypoints/agent-runtime/harness-tools.d.ts.map +0 -1
- package/dist/entrypoints/agent-runtime/harness-tools.js +0 -32
- package/dist/index-1a6jtnd9.js +0 -88
- package/dist/index-8a9ksm91.js +0 -95
- package/dist/index-a3wma1hk.js +0 -48
- package/dist/index-jd470k6q.js +0 -109
- package/dist/index-n1dqr7gf.js +0 -20
- package/dist/index-nggfa2yn.js +0 -34
- package/dist/index-s4evrmp5.js +0 -98
- package/dist/index-ze1eph1k.js +0 -20
- package/dist/tools/connections/error-projection.d.ts +0 -4
- package/dist/tools/connections/error-projection.d.ts.map +0 -1
- package/dist/tools/runtime-tool-execution.d.ts.map +0 -1
- package/llms/agent-runtime-harness-tools.txt +0 -25
- package/llms/upgrading-0.37.0-0.44.0.txt +0 -444
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
raceAbort
|
|
3
|
-
} from "./index-
|
|
3
|
+
} from "./index-b0kddvzw.js";
|
|
4
|
+
import {
|
|
5
|
+
MAX_TIMER_MS,
|
|
6
|
+
sleep
|
|
7
|
+
} from "./index-eemvahkc.js";
|
|
8
|
+
import {
|
|
9
|
+
assertPositiveSafeInteger
|
|
10
|
+
} from "./index-0s4xebbg.js";
|
|
4
11
|
|
|
5
12
|
// src/process/contract.ts
|
|
6
13
|
import { z } from "zod";
|
|
@@ -12,6 +19,24 @@ var NativeCommandSettlementSchema = z.discriminatedUnion("kind", [
|
|
|
12
19
|
}),
|
|
13
20
|
z.object({ kind: z.literal("error"), cause: z.unknown() })
|
|
14
21
|
]);
|
|
22
|
+
var COMMAND_CLEANUP_TIMEOUT_MS = 2000;
|
|
23
|
+
var MAX_COMMAND_STOP_GRACE_MS = 3600000;
|
|
24
|
+
var NativeCommandStopPolicySchema = z.strictObject({
|
|
25
|
+
target: z.enum(["group", "leader"]),
|
|
26
|
+
signal: z.enum(["SIGTERM", "SIGINT", "SIGHUP", "SIGQUIT", "SIGUSR1", "SIGUSR2"]).default("SIGTERM"),
|
|
27
|
+
graceMs: z.number().int().nonnegative().max(MAX_COMMAND_STOP_GRACE_MS),
|
|
28
|
+
killOn: z.custom((v) => v instanceof AbortSignal).optional()
|
|
29
|
+
});
|
|
30
|
+
var REMOVED_NATIVE_COMMAND_OPTIONS = {
|
|
31
|
+
killGraceMs: "stop: { target: 'group', graceMs } (removed in 0.105.0)"
|
|
32
|
+
};
|
|
33
|
+
function unknownOptionMessage(keys) {
|
|
34
|
+
return keys.map((key) => {
|
|
35
|
+
const name = String(key);
|
|
36
|
+
const replacement = Object.hasOwn(REMOVED_NATIVE_COMMAND_OPTIONS, name) ? REMOVED_NATIVE_COMMAND_OPTIONS[name] : undefined;
|
|
37
|
+
return replacement === undefined ? `Unknown runNativeCommand option ${name}` : `Unknown runNativeCommand option ${name}; use ${replacement}`;
|
|
38
|
+
}).join("; ");
|
|
39
|
+
}
|
|
15
40
|
var NativeCommandOptionsSchema = z.strictObject({
|
|
16
41
|
executable: z.string().min(1),
|
|
17
42
|
args: z.array(z.string()).default([]),
|
|
@@ -19,29 +44,47 @@ var NativeCommandOptionsSchema = z.strictObject({
|
|
|
19
44
|
env: z.record(z.string(), z.string()).optional(),
|
|
20
45
|
envPolicy: z.enum(["declared-only", "ambient"]).default("declared-only"),
|
|
21
46
|
signal: z.custom((v) => v instanceof AbortSignal).optional(),
|
|
22
|
-
timeoutMs: z.number().int().positive().max(
|
|
47
|
+
timeoutMs: z.number().int().positive().max(MAX_TIMER_MS).optional(),
|
|
23
48
|
maxOutputBytes: z.number().int().positive().optional(),
|
|
24
49
|
capture: z.boolean().default(false),
|
|
25
50
|
stdin: z.custom((v) => v instanceof Uint8Array).optional(),
|
|
26
51
|
maxStdinBytes: z.number().int().positive().default(1024 * 1024),
|
|
27
52
|
onOutput: z.custom((v) => typeof v === "function").optional(),
|
|
28
53
|
onLeaderSettled: z.custom((v) => typeof v === "function").optional(),
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
54
|
+
stop: NativeCommandStopPolicySchema.default({
|
|
55
|
+
target: "group",
|
|
56
|
+
signal: "SIGTERM",
|
|
57
|
+
graceMs: 100
|
|
58
|
+
}),
|
|
59
|
+
descendants: z.enum(["terminate-after-leader", "leave"]).default("terminate-after-leader"),
|
|
60
|
+
cleanupTimeoutMs: z.number().int().positive().max(30000).default(COMMAND_CLEANUP_TIMEOUT_MS)
|
|
61
|
+
}, {
|
|
62
|
+
error: (issue) => issue.code === "unrecognized_keys" ? unknownOptionMessage(issue.keys) : undefined
|
|
63
|
+
}).check((ctx) => {
|
|
64
|
+
const input = ctx.value;
|
|
32
65
|
if (!input.signal && input.timeoutMs === undefined)
|
|
33
|
-
ctx.
|
|
66
|
+
ctx.issues.push({
|
|
67
|
+
code: "custom",
|
|
68
|
+
input: ctx.value,
|
|
69
|
+
message: "Declare a caller signal or a finite timeout"
|
|
70
|
+
});
|
|
34
71
|
if (input.capture && input.maxOutputBytes === undefined)
|
|
35
|
-
ctx.
|
|
72
|
+
ctx.issues.push({
|
|
36
73
|
code: "custom",
|
|
74
|
+
input: ctx.value,
|
|
37
75
|
message: "Capture requires a finite combined output budget"
|
|
38
76
|
});
|
|
39
77
|
if (input.stdin && input.stdin.byteLength > input.maxStdinBytes)
|
|
40
|
-
ctx.
|
|
78
|
+
ctx.issues.push({
|
|
79
|
+
code: "custom",
|
|
80
|
+
input: ctx.value,
|
|
81
|
+
message: "stdin exceeds maxStdinBytes"
|
|
82
|
+
});
|
|
41
83
|
});
|
|
42
84
|
var NativeCommandResultSchema = z.object({
|
|
43
85
|
exitCode: z.number().int().nullable(),
|
|
44
86
|
signal: z.string().nullable(),
|
|
87
|
+
descendantsStopped: z.boolean(),
|
|
45
88
|
stdout: z.instanceof(Uint8Array),
|
|
46
89
|
stderr: z.instanceof(Uint8Array)
|
|
47
90
|
});
|
|
@@ -62,8 +105,7 @@ class NativeCommandError2 extends Error {
|
|
|
62
105
|
|
|
63
106
|
// src/process/group.ts
|
|
64
107
|
function createCommandDeadline(timeoutMs, reason) {
|
|
65
|
-
|
|
66
|
-
throw new RangeError("Command deadline must be a positive safe integer");
|
|
108
|
+
assertPositiveSafeInteger("Command deadline", timeoutMs, RangeError);
|
|
67
109
|
const controller = new AbortController;
|
|
68
110
|
const deadline = performance.now() + timeoutMs;
|
|
69
111
|
let timer;
|
|
@@ -72,7 +114,7 @@ function createCommandDeadline(timeoutMs, reason) {
|
|
|
72
114
|
if (remaining <= 0)
|
|
73
115
|
controller.abort(reason);
|
|
74
116
|
else
|
|
75
|
-
timer = setTimeout(schedule, Math.min(remaining,
|
|
117
|
+
timer = setTimeout(schedule, Math.min(remaining, MAX_TIMER_MS));
|
|
76
118
|
};
|
|
77
119
|
schedule();
|
|
78
120
|
return {
|
|
@@ -86,14 +128,19 @@ function createCommandDeadline(timeoutMs, reason) {
|
|
|
86
128
|
function deniedOnDarwin(error) {
|
|
87
129
|
return process.platform === "darwin" && error instanceof Error && "code" in error && error.code === "EPERM";
|
|
88
130
|
}
|
|
131
|
+
function isErrno(error, code) {
|
|
132
|
+
return error instanceof Error && "code" in error && error.code === code;
|
|
133
|
+
}
|
|
89
134
|
function signalGroup(pid, signal) {
|
|
90
135
|
if (pid === undefined)
|
|
91
|
-
return;
|
|
136
|
+
return false;
|
|
92
137
|
try {
|
|
93
138
|
process.kill(-pid, signal);
|
|
139
|
+
return true;
|
|
94
140
|
} catch (error) {
|
|
95
|
-
if (
|
|
96
|
-
|
|
141
|
+
if (isErrno(error, "ESRCH"))
|
|
142
|
+
return false;
|
|
143
|
+
throw error;
|
|
97
144
|
}
|
|
98
145
|
}
|
|
99
146
|
function exists(pid) {
|
|
@@ -103,7 +150,7 @@ function exists(pid) {
|
|
|
103
150
|
process.kill(-pid, 0);
|
|
104
151
|
return true;
|
|
105
152
|
} catch (error) {
|
|
106
|
-
if (error
|
|
153
|
+
if (isErrno(error, "ESRCH"))
|
|
107
154
|
return false;
|
|
108
155
|
if (deniedOnDarwin(error))
|
|
109
156
|
return true;
|
|
@@ -113,8 +160,7 @@ function exists(pid) {
|
|
|
113
160
|
async function signalUntilSettled(pid, signal, deadline) {
|
|
114
161
|
for (;; ) {
|
|
115
162
|
try {
|
|
116
|
-
signalGroup(pid, signal);
|
|
117
|
-
return;
|
|
163
|
+
return signalGroup(pid, signal);
|
|
118
164
|
} catch (error) {
|
|
119
165
|
if (!deniedOnDarwin(error) || performance.now() >= deadline)
|
|
120
166
|
throw error;
|
|
@@ -122,17 +168,51 @@ async function signalUntilSettled(pid, signal, deadline) {
|
|
|
122
168
|
}
|
|
123
169
|
}
|
|
124
170
|
}
|
|
125
|
-
async function stopCommandGroup(
|
|
126
|
-
const
|
|
127
|
-
|
|
171
|
+
async function stopCommandGroup(stop) {
|
|
172
|
+
const { pid, policy } = stop;
|
|
173
|
+
const deadline = performance.now() + policy.graceMs + stop.cleanupTimeoutMs;
|
|
174
|
+
if (stop.force || policy.killOn?.aborted)
|
|
175
|
+
return signalUntilSettled(pid, "SIGKILL", deadline);
|
|
176
|
+
if (!await signalUntilSettled(pid, policy.signal, deadline))
|
|
177
|
+
return false;
|
|
178
|
+
const until = performance.now() + policy.graceMs;
|
|
179
|
+
let interval = 10;
|
|
180
|
+
let present = exists(pid);
|
|
181
|
+
while (present && !policy.killOn?.aborted && performance.now() < until) {
|
|
182
|
+
await sleep(Math.min(interval, until - performance.now()), policy.killOn).catch(() => {
|
|
183
|
+
return;
|
|
184
|
+
});
|
|
185
|
+
interval = Math.min(interval * 2, 250);
|
|
186
|
+
present = exists(pid);
|
|
187
|
+
}
|
|
188
|
+
if (present)
|
|
128
189
|
await signalUntilSettled(pid, "SIGKILL", deadline);
|
|
129
|
-
|
|
190
|
+
return true;
|
|
191
|
+
}
|
|
192
|
+
async function stopCommandLeader(stop) {
|
|
193
|
+
const { pid, policy, leader } = stop;
|
|
194
|
+
const deadline = performance.now() + policy.graceMs + stop.cleanupTimeoutMs;
|
|
195
|
+
const running = () => leader.exitCode === null && leader.signalCode === null;
|
|
196
|
+
let signalled = false;
|
|
197
|
+
if (!stop.force && !policy.killOn?.aborted && pid !== undefined && running()) {
|
|
198
|
+
try {
|
|
199
|
+
process.kill(pid, policy.signal);
|
|
200
|
+
signalled = true;
|
|
201
|
+
} catch (error) {
|
|
202
|
+
if (!isErrno(error, "ESRCH"))
|
|
203
|
+
throw error;
|
|
204
|
+
}
|
|
205
|
+
const grace = new AbortController;
|
|
206
|
+
const end = () => grace.abort();
|
|
207
|
+
policy.killOn?.addEventListener("abort", end, { once: true });
|
|
208
|
+
stop.leaderExit.then(end, end);
|
|
209
|
+
await sleep(policy.graceMs, grace.signal).catch(() => {
|
|
210
|
+
return;
|
|
211
|
+
});
|
|
212
|
+
policy.killOn?.removeEventListener("abort", end);
|
|
213
|
+
grace.abort();
|
|
130
214
|
}
|
|
131
|
-
await signalUntilSettled(pid, "
|
|
132
|
-
const until = performance.now() + graceMs;
|
|
133
|
-
while (performance.now() < until && exists(pid))
|
|
134
|
-
await new Promise((resolve) => setTimeout(resolve, Math.min(10, until - performance.now())));
|
|
135
|
-
await signalUntilSettled(pid, "SIGKILL", deadline);
|
|
215
|
+
return await signalUntilSettled(pid, "SIGKILL", deadline) || signalled;
|
|
136
216
|
}
|
|
137
217
|
function commandCleanupError(cause) {
|
|
138
218
|
return new NativeCommandError2("COMMAND_CLEANUP", "Command cleanup did not complete", {
|
|
@@ -146,18 +226,26 @@ function waitForCommandClose(closed, timeoutMs) {
|
|
|
146
226
|
|
|
147
227
|
// src/process/cleanup.ts
|
|
148
228
|
async function cleanupNativeCommand(input) {
|
|
229
|
+
const signalled = Promise.resolve().then(input.signal);
|
|
230
|
+
const teardown = () => input.transport?.destroy();
|
|
231
|
+
const destroyed = signalled.then(teardown, teardown);
|
|
232
|
+
const awaitRelease = async () => {
|
|
233
|
+
if (!input.transport)
|
|
234
|
+
return;
|
|
235
|
+
try {
|
|
236
|
+
await waitForCommandClose(input.transport.released, input.timeoutMs);
|
|
237
|
+
} catch (cause) {
|
|
238
|
+
throw new Error(`Command handles remained open: ${[...input.transport.pendingHandles].join(", ")}`, { cause });
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
const released = signalled.then(awaitRelease, () => {
|
|
242
|
+
return;
|
|
243
|
+
});
|
|
149
244
|
const cleanup = await Promise.allSettled([
|
|
150
245
|
input.settle(input.event ?? { kind: "error", cause: input.error }),
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
return;
|
|
155
|
-
try {
|
|
156
|
-
await waitForCommandClose(input.transport.released, input.timeoutMs);
|
|
157
|
-
} catch (cause) {
|
|
158
|
-
throw new Error(`Command handles remained open: ${[...input.transport.pendingHandles].join(", ")}`, { cause });
|
|
159
|
-
}
|
|
160
|
-
})
|
|
246
|
+
destroyed,
|
|
247
|
+
signalled,
|
|
248
|
+
released
|
|
161
249
|
]);
|
|
162
250
|
const failures = cleanup.flatMap((item) => item.status === "rejected" && item.reason !== input.error ? [item.reason] : []);
|
|
163
251
|
if (failures.length)
|
|
@@ -165,6 +253,11 @@ async function cleanupNativeCommand(input) {
|
|
|
165
253
|
}
|
|
166
254
|
|
|
167
255
|
// src/process/command-lifetime.ts
|
|
256
|
+
class CommandStopped extends DOMException {
|
|
257
|
+
constructor() {
|
|
258
|
+
super("Command stopped", "AbortError");
|
|
259
|
+
}
|
|
260
|
+
}
|
|
168
261
|
function createCommandLifetime(input) {
|
|
169
262
|
const acceptSettlement = (error) => {
|
|
170
263
|
if (error instanceof NativeCommandError2 && error.code === "COMMAND_CLEANUP")
|
|
@@ -198,7 +291,7 @@ function createCommandLifetime(input) {
|
|
|
198
291
|
},
|
|
199
292
|
async stop() {
|
|
200
293
|
if (!input.finished())
|
|
201
|
-
input.controller.abort(new
|
|
294
|
+
input.controller.abort(new CommandStopped);
|
|
202
295
|
await input.result.then(() => {
|
|
203
296
|
return;
|
|
204
297
|
}, acceptSettlement);
|
|
@@ -329,13 +422,13 @@ function createCommandTransport(child) {
|
|
|
329
422
|
function nativeCommandBudgets(options, driver) {
|
|
330
423
|
const cleanupTimeoutMs = driver?.cleanupTimeoutMs ?? options.cleanupTimeoutMs;
|
|
331
424
|
const timeoutMs = driver?.timeoutMs ?? options.timeoutMs;
|
|
332
|
-
|
|
425
|
+
const budgets = [
|
|
333
426
|
["cleanup", cleanupTimeoutMs],
|
|
334
427
|
["execution", timeoutMs],
|
|
335
428
|
["close", driver?.closeTimeoutMs]
|
|
336
|
-
]
|
|
337
|
-
|
|
338
|
-
|
|
429
|
+
];
|
|
430
|
+
for (const [name, value] of budgets)
|
|
431
|
+
assertPositiveSafeInteger(`Command ${name} deadline`, value, RangeError);
|
|
339
432
|
return { cleanupTimeoutMs, timeoutMs };
|
|
340
433
|
}
|
|
341
434
|
var owners = new WeakMap;
|
|
@@ -414,7 +507,14 @@ function outputStream(source, closed, maxBufferedBytes) {
|
|
|
414
507
|
}
|
|
415
508
|
};
|
|
416
509
|
}
|
|
417
|
-
function launchNativeCommand(
|
|
510
|
+
function launchNativeCommand({
|
|
511
|
+
options,
|
|
512
|
+
driver,
|
|
513
|
+
onSpawn,
|
|
514
|
+
onFailure,
|
|
515
|
+
onInputFailure,
|
|
516
|
+
onAcquired
|
|
517
|
+
}) {
|
|
418
518
|
let native;
|
|
419
519
|
const launch = driver?.launch;
|
|
420
520
|
if (!launch)
|
|
@@ -518,10 +618,48 @@ async function failedCommandStart(cause, cleanup) {
|
|
|
518
618
|
throw error;
|
|
519
619
|
}
|
|
520
620
|
|
|
621
|
+
// src/process/terminate.ts
|
|
622
|
+
function signalCommandChild(child, input) {
|
|
623
|
+
if (input.group && ownsCommandGroup(child)) {
|
|
624
|
+
const stop = {
|
|
625
|
+
pid: child.pid,
|
|
626
|
+
policy: input.policy,
|
|
627
|
+
cleanupTimeoutMs: input.cleanupTimeoutMs,
|
|
628
|
+
force: input.force
|
|
629
|
+
};
|
|
630
|
+
return input.policy.target === "leader" ? stopCommandLeader({ ...stop, leader: child, leaderExit: input.leaderExit }) : stopCommandGroup(stop);
|
|
631
|
+
}
|
|
632
|
+
return Promise.resolve().then(() => {
|
|
633
|
+
if (child.exitCode !== null || child.signalCode !== null)
|
|
634
|
+
return false;
|
|
635
|
+
if (!child.kill("SIGKILL"))
|
|
636
|
+
throw new Error("Command leader termination was refused");
|
|
637
|
+
return true;
|
|
638
|
+
});
|
|
639
|
+
}
|
|
640
|
+
async function terminateOwnedGroup(child, closed, cleanupTimeoutMs) {
|
|
641
|
+
try {
|
|
642
|
+
await signalCommandChild(child, {
|
|
643
|
+
group: true,
|
|
644
|
+
policy: { target: "group", signal: "SIGTERM", graceMs: 0 },
|
|
645
|
+
leaderExit: closed,
|
|
646
|
+
cleanupTimeoutMs,
|
|
647
|
+
force: true
|
|
648
|
+
});
|
|
649
|
+
await waitForCommandClose(closed, cleanupTimeoutMs);
|
|
650
|
+
} catch (cause) {
|
|
651
|
+
for (const pipe of [child.stdin, child.stdout, child.stderr])
|
|
652
|
+
pipe.destroy();
|
|
653
|
+
throw commandCleanupError(cause);
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
|
|
521
657
|
// src/process/command-owner.ts
|
|
522
658
|
function startNativeCommand(input, onSpawn, driver) {
|
|
523
659
|
const options = NativeCommandOptionsSchema.parse(input);
|
|
524
660
|
options.signal?.throwIfAborted();
|
|
661
|
+
const { killOn } = options.stop;
|
|
662
|
+
killOn?.throwIfAborted();
|
|
525
663
|
if (process.platform === "win32" && driver?.group !== false)
|
|
526
664
|
throw new NativeCommandError2("COMMAND_UNAVAILABLE", "POSIX process groups are required");
|
|
527
665
|
const { cleanupTimeoutMs, timeoutMs } = nativeCommandBudgets(options, driver);
|
|
@@ -530,6 +668,12 @@ function startNativeCommand(input, onSpawn, driver) {
|
|
|
530
668
|
options.signal?.addEventListener("abort", abort, { once: true });
|
|
531
669
|
if (options.signal?.aborted)
|
|
532
670
|
abort();
|
|
671
|
+
const kill = () => controller.abort(killOn?.reason);
|
|
672
|
+
killOn?.addEventListener("abort", kill, { once: true });
|
|
673
|
+
const release = () => {
|
|
674
|
+
options.signal?.removeEventListener("abort", abort);
|
|
675
|
+
killOn?.removeEventListener("abort", kill);
|
|
676
|
+
};
|
|
533
677
|
const deadline = timeoutMs === undefined ? undefined : createCommandDeadline(timeoutMs, new NativeCommandError2("COMMAND_LIMIT", "Command deadline exceeded", {
|
|
534
678
|
reason: "deadline"
|
|
535
679
|
}));
|
|
@@ -549,13 +693,15 @@ function startNativeCommand(input, onSpawn, driver) {
|
|
|
549
693
|
return;
|
|
550
694
|
});
|
|
551
695
|
const signalOwned = (force = driver?.force) => {
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
696
|
+
if (!acquired)
|
|
697
|
+
return Promise.resolve(false);
|
|
698
|
+
return signalCommandChild(acquired.child, {
|
|
699
|
+
group: driver?.group !== false,
|
|
700
|
+
policy: options.stop,
|
|
701
|
+
leaderExit: acquired.leader,
|
|
702
|
+
cleanupTimeoutMs,
|
|
703
|
+
force: force === true
|
|
704
|
+
});
|
|
559
705
|
};
|
|
560
706
|
const owner = createCommandLifetime({
|
|
561
707
|
result,
|
|
@@ -567,19 +713,26 @@ function startNativeCommand(input, onSpawn, driver) {
|
|
|
567
713
|
let spawnFailure;
|
|
568
714
|
let launched;
|
|
569
715
|
try {
|
|
570
|
-
launched = launchNativeCommand(
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
716
|
+
launched = launchNativeCommand({
|
|
717
|
+
options,
|
|
718
|
+
driver,
|
|
719
|
+
onSpawn,
|
|
720
|
+
onFailure: (error) => {
|
|
721
|
+
spawnFailure = new NativeCommandError2("COMMAND_UNAVAILABLE", "Command could not start", {
|
|
722
|
+
cause: error
|
|
723
|
+
});
|
|
724
|
+
controller.abort(spawnFailure);
|
|
725
|
+
},
|
|
726
|
+
onInputFailure: (error) => controller.abort(error),
|
|
727
|
+
onAcquired: (transport) => {
|
|
728
|
+
acquired = transport;
|
|
729
|
+
registerNativeCommandOwner(transport.child, owner);
|
|
730
|
+
}
|
|
578
731
|
});
|
|
579
732
|
} catch (cause) {
|
|
580
733
|
deadline?.cancel();
|
|
581
734
|
deadline?.signal.removeEventListener("abort", expired);
|
|
582
|
-
|
|
735
|
+
release();
|
|
583
736
|
controller.abort(cause);
|
|
584
737
|
failedCommandStart(cause, (error) => cleanupNativeCommand({
|
|
585
738
|
error,
|
|
@@ -598,7 +751,8 @@ function startNativeCommand(input, onSpawn, driver) {
|
|
|
598
751
|
const cancelCloseDeadline = createLeaderCloseDeadline(leader, driver?.closeTimeoutMs, controller);
|
|
599
752
|
const drain = async (stream, channel, captured) => {
|
|
600
753
|
for await (const chunk of stream) {
|
|
601
|
-
controller.signal.
|
|
754
|
+
if (controller.signal.aborted)
|
|
755
|
+
continue;
|
|
602
756
|
if (!(chunk instanceof Uint8Array))
|
|
603
757
|
throw new TypeError("Expected binary command output");
|
|
604
758
|
total += chunk.byteLength;
|
|
@@ -609,10 +763,28 @@ function startNativeCommand(input, onSpawn, driver) {
|
|
|
609
763
|
if (options.capture)
|
|
610
764
|
captured.push(Uint8Array.from(chunk));
|
|
611
765
|
if (options.onOutput)
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
766
|
+
try {
|
|
767
|
+
await raceAbort(Promise.resolve().then(() => {
|
|
768
|
+
controller.signal.throwIfAborted();
|
|
769
|
+
return options.onOutput?.(chunk, channel, controller.signal);
|
|
770
|
+
}), controller.signal);
|
|
771
|
+
} catch (error) {
|
|
772
|
+
if (!controller.signal.aborted || error !== controller.signal.reason)
|
|
773
|
+
throw error;
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
};
|
|
777
|
+
let descendantsStopped = false;
|
|
778
|
+
const settleLeader = async (event) => {
|
|
779
|
+
await settle(event);
|
|
780
|
+
if (controller.signal.aborted)
|
|
781
|
+
return;
|
|
782
|
+
if (options.descendants !== "terminate-after-leader" || event.kind !== "exit")
|
|
783
|
+
return;
|
|
784
|
+
try {
|
|
785
|
+
descendantsStopped = await signalOwned();
|
|
786
|
+
} catch (cause) {
|
|
787
|
+
throw commandCleanupError(cause);
|
|
616
788
|
}
|
|
617
789
|
};
|
|
618
790
|
const run = (async () => {
|
|
@@ -622,11 +794,16 @@ function startNativeCommand(input, onSpawn, driver) {
|
|
|
622
794
|
drain(output, "stdout", stdout),
|
|
623
795
|
drain(errorOutput, "stderr", stderr)
|
|
624
796
|
]);
|
|
625
|
-
await raceAbort(Promise.all([drains, leader.then(
|
|
797
|
+
await raceAbort(Promise.all([drains, leader.then(settleLeader)]), controller.signal);
|
|
626
798
|
const status = await raceAbort(closed, controller.signal);
|
|
627
799
|
if (spawnFailure !== undefined)
|
|
628
800
|
throw spawnFailure;
|
|
629
|
-
return {
|
|
801
|
+
return {
|
|
802
|
+
...status,
|
|
803
|
+
descendantsStopped,
|
|
804
|
+
stdout: Buffer.concat(stdout),
|
|
805
|
+
stderr: Buffer.concat(stderr)
|
|
806
|
+
};
|
|
630
807
|
} catch (error) {
|
|
631
808
|
controller.abort(error);
|
|
632
809
|
await cleanupNativeCommand({
|
|
@@ -642,7 +819,7 @@ function startNativeCommand(input, onSpawn, driver) {
|
|
|
642
819
|
cancelCloseDeadline();
|
|
643
820
|
deadline?.cancel();
|
|
644
821
|
deadline?.signal.removeEventListener("abort", expired);
|
|
645
|
-
|
|
822
|
+
release();
|
|
646
823
|
controller.abort(new Error("Command completed"));
|
|
647
824
|
}
|
|
648
825
|
})();
|
|
@@ -650,4 +827,4 @@ function startNativeCommand(input, onSpawn, driver) {
|
|
|
650
827
|
return owner;
|
|
651
828
|
}
|
|
652
829
|
|
|
653
|
-
export { NativeCommandError2,
|
|
830
|
+
export { COMMAND_CLEANUP_TIMEOUT_MS, NativeCommandError2, CommandStopped, spawnOwnedCommand, nativeCommandOwner, terminateOwnedGroup, startNativeCommand };
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
AgentStoreEventEnvelopeSchema2,
|
|
3
3
|
AgentStoreEventPageSchema2,
|
|
4
4
|
AgentRecoverablePageSchema2
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-0gs4ymfj.js";
|
|
6
6
|
import {
|
|
7
7
|
AgentRecordIdSchema2,
|
|
8
8
|
AgentMessageSchema2
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
isActiveRunState,
|
|
17
17
|
replaceMessage,
|
|
18
18
|
createAgentRuntimeStore2
|
|
19
|
-
} from "./index-
|
|
19
|
+
} from "./index-d2h99n7d.js";
|
|
20
20
|
|
|
21
21
|
// src/agent-runtime/store-memory.ts
|
|
22
22
|
import { z } from "zod";
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import {
|
|
2
|
+
jsonDataRefusal
|
|
3
|
+
} from "./index-m6w6jtda.js";
|
|
4
|
+
import {
|
|
5
|
+
serializeCanonicalJson
|
|
6
|
+
} from "./index-zsvzhjtk.js";
|
|
7
|
+
|
|
8
|
+
// src/primitives/canonical-json.ts
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
var CanonicalJsonOptionsSchema = z.strictObject({
|
|
11
|
+
maxDepth: z.number().int().min(0).max(100).default(100),
|
|
12
|
+
maxNodes: z.number().int().positive().default(1e5),
|
|
13
|
+
maxBytes: z.number().int().positive().default(1024 * 1024)
|
|
14
|
+
});
|
|
15
|
+
var MESSAGES = {
|
|
16
|
+
cycle: "Value contains a cycle",
|
|
17
|
+
"negative-zero": "Value contains -0, which JSON cannot carry",
|
|
18
|
+
depth: "Value is nested deeper than maxDepth",
|
|
19
|
+
nodes: "Value has more nodes than maxNodes",
|
|
20
|
+
bytes: "Value is longer than maxBytes in UTF-8",
|
|
21
|
+
"not-json": "Expected bounded plain JSON: dense arrays, finite numbers, plain objects, no accessors"
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
class CanonicalJsonError2 extends TypeError {
|
|
25
|
+
reason;
|
|
26
|
+
constructor(reason) {
|
|
27
|
+
super(MESSAGES[reason]);
|
|
28
|
+
this.reason = reason;
|
|
29
|
+
this.name = "CanonicalJsonError";
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function canonicalJson2(value, options = {}) {
|
|
33
|
+
return serialize(value, options, false);
|
|
34
|
+
}
|
|
35
|
+
function canonicalZodJson(value, options = {}) {
|
|
36
|
+
return serialize(value, options, true);
|
|
37
|
+
}
|
|
38
|
+
function serialize(value, options, zodJson) {
|
|
39
|
+
const limits = CanonicalJsonOptionsSchema.parse(options);
|
|
40
|
+
const snapshot = {};
|
|
41
|
+
const refusal = jsonDataRefusal(value, { ...limits, omitObjectUndefined: true, zodJson }, snapshot);
|
|
42
|
+
if (refusal !== undefined)
|
|
43
|
+
throw new CanonicalJsonError2(refusal);
|
|
44
|
+
return serializeCanonicalJson(snapshot.value);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { CanonicalJsonError2, canonicalJson2, canonicalZodJson };
|
|
@@ -34,6 +34,28 @@ function acceptsRawString(schema) {
|
|
|
34
34
|
}
|
|
35
35
|
return false;
|
|
36
36
|
}
|
|
37
|
+
function arrayMembers(schema) {
|
|
38
|
+
if (schema instanceof z.ZodArray)
|
|
39
|
+
return [schema];
|
|
40
|
+
if (schema instanceof z.ZodOptional || schema instanceof z.ZodNullable || schema instanceof z.ZodDefault) {
|
|
41
|
+
return arrayMembers(schema.unwrap());
|
|
42
|
+
}
|
|
43
|
+
if (schema instanceof z.ZodUnion) {
|
|
44
|
+
return schema.def.options.flatMap((option) => arrayMembers(option));
|
|
45
|
+
}
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
function writtenAsList(text, schema) {
|
|
49
|
+
if (!text.trimStart().startsWith("["))
|
|
50
|
+
return false;
|
|
51
|
+
let parsed;
|
|
52
|
+
try {
|
|
53
|
+
parsed = safeJsonParse(text);
|
|
54
|
+
} catch {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
return Array.isArray(parsed) && arrayMembers(schema).some((m) => m.safeParse(parsed).success);
|
|
58
|
+
}
|
|
37
59
|
function matchingVariant(union, value) {
|
|
38
60
|
const disc = union.def.discriminator;
|
|
39
61
|
const tag = value[disc];
|
|
@@ -48,16 +70,27 @@ function matchingVariant(union, value) {
|
|
|
48
70
|
}
|
|
49
71
|
return;
|
|
50
72
|
}
|
|
51
|
-
function coerceValue(value, schema) {
|
|
73
|
+
function coerceValue(value, schema, path) {
|
|
52
74
|
if (!schema)
|
|
53
75
|
return value;
|
|
54
76
|
if (schema instanceof z.ZodOptional || schema instanceof z.ZodNullable || schema instanceof z.ZodDefault) {
|
|
55
|
-
return coerceValue(value, schema.unwrap());
|
|
77
|
+
return coerceValue(value, schema.unwrap(), path);
|
|
56
78
|
}
|
|
57
79
|
let current = value;
|
|
58
80
|
if (typeof current === "string" && needsJsonCoercion(schema)) {
|
|
59
|
-
if (acceptsRawString(schema))
|
|
81
|
+
if (acceptsRawString(schema)) {
|
|
82
|
+
if (writtenAsList(current, schema)) {
|
|
83
|
+
throw new z.ZodError([
|
|
84
|
+
{
|
|
85
|
+
code: "custom",
|
|
86
|
+
path: [...path],
|
|
87
|
+
message: `${path.join(".")} is a list written as text — pass the array itself, not JSON written as text`,
|
|
88
|
+
input: current
|
|
89
|
+
}
|
|
90
|
+
]);
|
|
91
|
+
}
|
|
60
92
|
return current;
|
|
93
|
+
}
|
|
61
94
|
try {
|
|
62
95
|
current = safeJsonParse(current);
|
|
63
96
|
} catch {
|
|
@@ -68,21 +101,21 @@ function coerceValue(value, schema) {
|
|
|
68
101
|
const shape = schema.shape;
|
|
69
102
|
const out = {};
|
|
70
103
|
for (const [key, item] of Object.entries(current)) {
|
|
71
|
-
out[key] = coerceValue(item, shape[key]);
|
|
104
|
+
out[key] = coerceValue(item, shape[key], [...path, key]);
|
|
72
105
|
}
|
|
73
106
|
return out;
|
|
74
107
|
}
|
|
75
108
|
if (schema instanceof z.ZodArray && Array.isArray(current)) {
|
|
76
|
-
return current.map((item) => coerceValue(item, schema.element));
|
|
109
|
+
return current.map((item, index) => coerceValue(item, schema.element, [...path, index]));
|
|
77
110
|
}
|
|
78
111
|
if (schema instanceof z.ZodDiscriminatedUnion && isRecord(current)) {
|
|
79
112
|
const variant = matchingVariant(schema, current);
|
|
80
|
-
return variant ? coerceValue(current, variant) : current;
|
|
113
|
+
return variant ? coerceValue(current, variant, path) : current;
|
|
81
114
|
}
|
|
82
115
|
return current;
|
|
83
116
|
}
|
|
84
117
|
function coerceJsonArgs2(args, schema) {
|
|
85
|
-
const coerced = coerceValue(args, schema);
|
|
118
|
+
const coerced = coerceValue(args, schema, []);
|
|
86
119
|
return isRecord(coerced) ? coerced : args;
|
|
87
120
|
}
|
|
88
121
|
|