stitchkit 0.92.0 → 0.94.0
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 +191 -0
- package/README.md +5 -2
- package/dist/agent-runtime/children-control.d.ts +6 -0
- package/dist/agent-runtime/children-control.d.ts.map +1 -0
- package/dist/agent-runtime/children-spawn.d.ts +6 -0
- package/dist/agent-runtime/children-spawn.d.ts.map +1 -0
- package/dist/agent-runtime/children-state.d.ts +46 -0
- package/dist/agent-runtime/children-state.d.ts.map +1 -0
- package/dist/agent-runtime/children-usage.d.ts +8 -0
- package/dist/agent-runtime/children-usage.d.ts.map +1 -0
- package/dist/agent-runtime/children.d.ts +11 -14
- package/dist/agent-runtime/children.d.ts.map +1 -1
- package/dist/agent-runtime/coding-tool-contract.d.ts +2 -1
- package/dist/agent-runtime/coding-tool-contract.d.ts.map +1 -1
- package/dist/agent-runtime/deferred-tool-types.d.ts +2 -2
- package/dist/agent-runtime/deferred-tool-types.d.ts.map +1 -1
- package/dist/agent-runtime/events.d.ts +1 -1
- package/dist/agent-runtime/events.d.ts.map +1 -1
- package/dist/agent-runtime/managed-tools.d.ts +1 -1
- package/dist/agent-runtime/managed-tools.d.ts.map +1 -1
- package/dist/agent-runtime/observability.d.ts +1 -1
- package/dist/agent-runtime/observability.d.ts.map +1 -1
- package/dist/{agent-runtime-openrouter.d.ts → agent-runtime/openrouter.d.ts} +3 -3
- package/dist/agent-runtime/openrouter.d.ts.map +1 -0
- package/dist/agent-runtime/projections.d.ts +1 -1
- package/dist/agent-runtime/projections.d.ts.map +1 -1
- package/dist/agent-runtime/run-acquisition.d.ts +17 -0
- package/dist/agent-runtime/run-acquisition.d.ts.map +1 -0
- package/dist/agent-runtime/run-execution-state.d.ts +133 -0
- package/dist/agent-runtime/run-execution-state.d.ts.map +1 -0
- package/dist/agent-runtime/run-execution.d.ts +17 -33
- package/dist/agent-runtime/run-execution.d.ts.map +1 -1
- package/dist/agent-runtime/run-failure.d.ts +18 -0
- package/dist/agent-runtime/run-failure.d.ts.map +1 -0
- package/dist/agent-runtime/run-model-attempts.d.ts +6 -0
- package/dist/agent-runtime/run-model-attempts.d.ts.map +1 -0
- package/dist/agent-runtime/run-prompt-history.d.ts +58 -0
- package/dist/agent-runtime/run-prompt-history.d.ts.map +1 -0
- package/dist/agent-runtime/run-provider-ledger.d.ts +26 -0
- package/dist/agent-runtime/run-provider-ledger.d.ts.map +1 -0
- package/dist/agent-runtime/run-stream-parts.d.ts +17 -0
- package/dist/agent-runtime/run-stream-parts.d.ts.map +1 -0
- package/dist/agent-runtime/run-terminal.d.ts +11 -0
- package/dist/agent-runtime/run-terminal.d.ts.map +1 -0
- package/dist/agent-runtime/run-turn-preparation.d.ts +22 -0
- package/dist/agent-runtime/run-turn-preparation.d.ts.map +1 -0
- package/dist/agent-runtime/runtime-admission-gate.d.ts +29 -0
- package/dist/agent-runtime/runtime-admission-gate.d.ts.map +1 -0
- package/dist/agent-runtime/runtime-control.d.ts +9 -0
- package/dist/agent-runtime/runtime-control.d.ts.map +1 -0
- package/dist/agent-runtime/runtime-recovery.d.ts +10 -0
- package/dist/agent-runtime/runtime-recovery.d.ts.map +1 -0
- package/dist/agent-runtime/runtime-state.d.ts +36 -0
- package/dist/agent-runtime/runtime-state.d.ts.map +1 -0
- package/dist/agent-runtime/runtime-submit.d.ts +5 -0
- package/dist/agent-runtime/runtime-submit.d.ts.map +1 -0
- package/dist/agent-runtime/runtime.d.ts +9 -4
- package/dist/agent-runtime/runtime.d.ts.map +1 -1
- package/dist/{agent-runtime-sqlite-bun.d.ts → agent-runtime/sqlite-bun.d.ts} +5 -4
- package/dist/agent-runtime/sqlite-bun.d.ts.map +1 -0
- package/dist/agent-runtime/sqlite-events.d.ts +5 -0
- package/dist/agent-runtime/sqlite-events.d.ts.map +1 -0
- package/dist/agent-runtime/sqlite-history.d.ts +7 -0
- package/dist/agent-runtime/sqlite-history.d.ts.map +1 -0
- package/dist/agent-runtime/sqlite-ledger.d.ts +7 -0
- package/dist/agent-runtime/sqlite-ledger.d.ts.map +1 -0
- package/dist/{agent-runtime-sqlite-node.d.ts → agent-runtime/sqlite-node.d.ts} +5 -4
- package/dist/agent-runtime/sqlite-node.d.ts.map +1 -0
- package/dist/agent-runtime/sqlite-reads.d.ts +14 -0
- package/dist/agent-runtime/sqlite-reads.d.ts.map +1 -0
- package/dist/agent-runtime/sqlite-rows.d.ts +178 -0
- package/dist/agent-runtime/sqlite-rows.d.ts.map +1 -0
- package/dist/agent-runtime/sqlite-schema.d.ts +7 -0
- package/dist/agent-runtime/sqlite-schema.d.ts.map +1 -0
- package/dist/agent-runtime/sqlite-transactions.d.ts +25 -0
- package/dist/agent-runtime/sqlite-transactions.d.ts.map +1 -0
- package/dist/agent-runtime/sqlite.d.ts +10 -6
- package/dist/agent-runtime/sqlite.d.ts.map +1 -1
- package/dist/agent-runtime/store-archive.d.ts +16 -0
- package/dist/agent-runtime/store-archive.d.ts.map +1 -0
- package/dist/{testing/agent-store-conformance.d.ts → agent-runtime/store-conformance.d.ts} +2 -2
- package/dist/agent-runtime/store-conformance.d.ts.map +1 -0
- package/dist/agent-runtime/store-create.d.ts +11 -0
- package/dist/agent-runtime/store-create.d.ts.map +1 -0
- package/dist/agent-runtime/{store-driver.d.ts → store-driver-contract.d.ts} +7 -7
- package/dist/agent-runtime/store-driver-contract.d.ts.map +1 -0
- package/dist/agent-runtime/store-events.d.ts +7 -89
- package/dist/agent-runtime/store-events.d.ts.map +1 -1
- package/dist/agent-runtime/store-memory.d.ts +4 -0
- package/dist/agent-runtime/store-memory.d.ts.map +1 -0
- package/dist/agent-runtime/store-mutate.d.ts +13 -0
- package/dist/agent-runtime/store-mutate.d.ts.map +1 -0
- package/dist/agent-runtime/store-purge.d.ts +1 -1
- package/dist/agent-runtime/store-purge.d.ts.map +1 -1
- package/dist/agent-runtime/store-reads.d.ts +29 -0
- package/dist/agent-runtime/store-reads.d.ts.map +1 -0
- package/dist/agent-runtime/store-reduce-history.d.ts +10 -0
- package/dist/agent-runtime/store-reduce-history.d.ts.map +1 -0
- package/dist/agent-runtime/store-reduce-run.d.ts +14 -0
- package/dist/agent-runtime/store-reduce-run.d.ts.map +1 -0
- package/dist/agent-runtime/store-reduce-shared.d.ts +76 -0
- package/dist/agent-runtime/store-reduce-shared.d.ts.map +1 -0
- package/dist/agent-runtime/store-reduce-terminal.d.ts +6 -0
- package/dist/agent-runtime/store-reduce-terminal.d.ts.map +1 -0
- package/dist/agent-runtime/store-reducer.d.ts +24 -0
- package/dist/agent-runtime/store-reducer.d.ts.map +1 -0
- package/dist/agent-runtime/store-snapshot.d.ts +19 -0
- package/dist/agent-runtime/store-snapshot.d.ts.map +1 -0
- package/dist/agent-runtime/store.d.ts +1 -1
- package/dist/agent-runtime/store.d.ts.map +1 -1
- package/dist/application/admission.d.ts +1 -1
- package/dist/application/admission.d.ts.map +1 -1
- package/dist/application/events.d.ts +1 -1
- package/dist/application/events.d.ts.map +1 -1
- package/dist/{server → application}/file-state-store.d.ts +1 -1
- package/dist/application/file-state-store.d.ts.map +1 -0
- package/dist/application/health.d.ts +1 -1
- package/dist/application/health.d.ts.map +1 -1
- package/dist/application/kernel-admission.d.ts +8 -0
- package/dist/application/kernel-admission.d.ts.map +1 -0
- package/dist/application/kernel-contract.d.ts +142 -0
- package/dist/application/kernel-contract.d.ts.map +1 -0
- package/dist/application/kernel-resource-context.d.ts +24 -0
- package/dist/application/kernel-resource-context.d.ts.map +1 -0
- package/dist/application/kernel-restart.d.ts +5 -0
- package/dist/application/kernel-restart.d.ts.map +1 -0
- package/dist/application/kernel-rollback.d.ts +4 -0
- package/dist/application/kernel-rollback.d.ts.map +1 -0
- package/dist/application/kernel-shutdown.d.ts +6 -0
- package/dist/application/kernel-shutdown.d.ts.map +1 -0
- package/dist/application/kernel-start.d.ts +20 -0
- package/dist/application/kernel-start.d.ts.map +1 -0
- package/dist/application/kernel-state.d.ts +116 -0
- package/dist/application/kernel-state.d.ts.map +1 -0
- package/dist/application/kernel.d.ts +9 -140
- package/dist/application/kernel.d.ts.map +1 -1
- package/dist/application/latest-sink.d.ts +1 -1
- package/dist/application/latest-sink.d.ts.map +1 -1
- package/dist/application/opentelemetry.d.ts +1 -1
- package/dist/application/opentelemetry.d.ts.map +1 -1
- package/dist/application/watch-hub.d.ts +2 -2
- package/dist/application/watch-hub.d.ts.map +1 -1
- package/dist/browser/client-multipart.d.ts +1 -1
- package/dist/browser/client-multipart.d.ts.map +1 -1
- package/dist/browser/client-url.d.ts +1 -1
- package/dist/browser/client-url.d.ts.map +1 -1
- package/dist/browser/client.d.ts +1 -1
- package/dist/browser/client.d.ts.map +1 -1
- package/dist/browser/contract-stream.d.ts +1 -1
- package/dist/browser/contract-stream.d.ts.map +1 -1
- package/dist/browser/http.d.ts +1 -1
- package/dist/browser/http.d.ts.map +1 -1
- package/dist/browser/resumable.d.ts +1 -28
- package/dist/browser/resumable.d.ts.map +1 -1
- package/dist/browser/retained.d.ts.map +1 -0
- package/dist/browser/socket-io.d.ts +23 -1
- package/dist/browser/socket-io.d.ts.map +1 -1
- package/dist/browser/stream.d.ts +14 -2
- package/dist/browser/stream.d.ts.map +1 -1
- package/dist/contract/define.d.ts +72 -65
- package/dist/contract/define.d.ts.map +1 -1
- package/dist/{internal/errors.d.ts → contract/normalize.d.ts} +3 -39
- package/dist/contract/normalize.d.ts.map +1 -0
- package/dist/contract/tool-view.d.ts +135 -0
- package/dist/contract/tool-view.d.ts.map +1 -0
- package/dist/declaration/declaration.d.ts.map +1 -0
- package/dist/{agent-runtime/durability-contract.d.ts → durability/contract.d.ts} +2 -2
- package/dist/durability/contract.d.ts.map +1 -0
- package/dist/{agent-runtime/durability.d.ts → durability/engine.d.ts} +4 -4
- package/dist/durability/engine.d.ts.map +1 -0
- package/dist/durability/events.d.ts +101 -0
- package/dist/durability/events.d.ts.map +1 -0
- package/dist/{agent-runtime/durability-json.d.ts → durability/json.d.ts} +1 -1
- package/dist/durability/json.d.ts.map +1 -0
- package/dist/{agent-runtime/durability-ledger.d.ts → durability/ledger.d.ts} +2 -2
- package/dist/durability/ledger.d.ts.map +1 -0
- package/dist/{agent-runtime/durability-scheduler.d.ts → durability/scheduler.d.ts} +2 -2
- package/dist/durability/scheduler.d.ts.map +1 -0
- package/dist/entrypoints/agent-runtime/browser.d.ts +5 -0
- package/dist/entrypoints/agent-runtime/browser.d.ts.map +1 -0
- package/dist/{agent-runtime-browser.js → entrypoints/agent-runtime/browser.js} +3 -3
- package/dist/{agent-runtime-coding-tools.d.ts → entrypoints/agent-runtime/coding-tools.d.ts} +2 -2
- package/dist/entrypoints/agent-runtime/coding-tools.d.ts.map +1 -0
- package/dist/entrypoints/agent-runtime/coding-tools.js +22 -0
- package/dist/{agent-runtime-harness.d.ts → entrypoints/agent-runtime/harness.d.ts} +2 -2
- package/dist/entrypoints/agent-runtime/harness.d.ts.map +1 -0
- package/dist/{agent-runtime-harness.js → entrypoints/agent-runtime/harness.js} +24 -25
- package/dist/entrypoints/agent-runtime/openrouter.d.ts +2 -0
- package/dist/entrypoints/agent-runtime/openrouter.d.ts.map +1 -0
- package/dist/{agent-runtime-openrouter.js → entrypoints/agent-runtime/openrouter.js} +3 -3
- package/dist/{agent-runtime-sandbox.d.ts → entrypoints/agent-runtime/sandbox.d.ts} +5 -5
- package/dist/entrypoints/agent-runtime/sandbox.d.ts.map +1 -0
- package/dist/{agent-runtime-sandbox.js → entrypoints/agent-runtime/sandbox.js} +11 -12
- package/dist/entrypoints/agent-runtime/sqlite/bun.d.ts +2 -0
- package/dist/entrypoints/agent-runtime/sqlite/bun.d.ts.map +1 -0
- package/dist/{agent-runtime-sqlite-bun.js → entrypoints/agent-runtime/sqlite/bun.js} +8 -6
- package/dist/entrypoints/agent-runtime/sqlite/node.d.ts +2 -0
- package/dist/entrypoints/agent-runtime/sqlite/node.d.ts.map +1 -0
- package/dist/{agent-runtime-sqlite-node.js → entrypoints/agent-runtime/sqlite/node.js} +8 -6
- package/dist/entrypoints/agent-runtime/testing.d.ts +4 -0
- package/dist/entrypoints/agent-runtime/testing.d.ts.map +1 -0
- package/dist/entrypoints/agent-runtime/testing.js +1084 -0
- package/dist/{agent-runtime.d.ts → entrypoints/agent-runtime.d.ts} +41 -37
- package/dist/entrypoints/agent-runtime.d.ts.map +1 -0
- package/dist/{agent-runtime.js → entrypoints/agent-runtime.js} +408 -366
- package/dist/{application-diagnostic-journal.d.ts → entrypoints/application/diagnostic-journal.d.ts} +2 -2
- package/dist/entrypoints/application/diagnostic-journal.d.ts.map +1 -0
- package/dist/{application-diagnostic-journal.js → entrypoints/application/diagnostic-journal.js} +3 -3
- package/dist/{application-grammy.d.ts → entrypoints/application/grammy.d.ts} +2 -2
- package/dist/entrypoints/application/grammy.d.ts.map +1 -0
- package/dist/{application-grammy.js → entrypoints/application/grammy.js} +2 -2
- package/dist/{application-opentelemetry.d.ts → entrypoints/application/opentelemetry.d.ts} +2 -2
- package/dist/entrypoints/application/opentelemetry.d.ts.map +1 -0
- package/dist/{application-opentelemetry.js → entrypoints/application/opentelemetry.js} +4 -4
- package/dist/{application-schemas.d.ts → entrypoints/application/schemas.d.ts} +2 -2
- package/dist/entrypoints/application/schemas.d.ts.map +1 -0
- package/dist/{application-schemas.js → entrypoints/application/schemas.js} +2 -2
- package/dist/{application.d.ts → entrypoints/application.d.ts} +22 -21
- package/dist/entrypoints/application.d.ts.map +1 -0
- package/dist/{application.js → entrypoints/application.js} +24 -22
- package/dist/entrypoints/bin/upgrade-cli.d.ts.map +1 -0
- package/dist/{upgrade-cli.js → entrypoints/bin/upgrade-cli.js} +3 -3
- package/dist/{cli.d.ts → entrypoints/cli.d.ts} +15 -15
- package/dist/entrypoints/cli.d.ts.map +1 -0
- package/dist/{cli.js → entrypoints/cli.js} +37 -32
- package/dist/entrypoints/contract.d.ts +9 -0
- package/dist/entrypoints/contract.d.ts.map +1 -0
- package/dist/{contract/index.js → entrypoints/contract.js} +14 -6
- package/dist/entrypoints/declaration.d.ts +2 -0
- package/dist/entrypoints/declaration.d.ts.map +1 -0
- package/dist/{declaration.js → entrypoints/declaration.js} +1 -1
- package/dist/{files.d.ts → entrypoints/files.d.ts} +2 -2
- package/dist/entrypoints/files.d.ts.map +1 -0
- package/dist/{files.js → entrypoints/files.js} +3 -3
- package/dist/{geo.d.ts → entrypoints/geo.d.ts} +1 -1
- package/dist/entrypoints/geo.d.ts.map +1 -0
- package/dist/{geo.js → entrypoints/geo.js} +4 -4
- package/dist/entrypoints/google.d.ts +2 -0
- package/dist/entrypoints/google.d.ts.map +1 -0
- package/dist/{google.js → entrypoints/google.js} +1 -1
- package/dist/{index.d.ts → entrypoints/index.d.ts} +14 -13
- package/dist/entrypoints/index.d.ts.map +1 -0
- package/dist/{index.js → entrypoints/index.js} +99 -33
- package/dist/{live.d.ts → entrypoints/live.d.ts} +4 -4
- package/dist/entrypoints/live.d.ts.map +1 -0
- package/dist/{live.js → entrypoints/live.js} +6 -4
- package/dist/{node.d.ts → entrypoints/node.d.ts} +11 -11
- package/dist/entrypoints/node.d.ts.map +1 -0
- package/dist/{node.js → entrypoints/node.js} +20 -16
- package/dist/entrypoints/oauth.d.ts +2 -0
- package/dist/entrypoints/oauth.d.ts.map +1 -0
- package/dist/{oauth.js → entrypoints/oauth.js} +3 -3
- package/dist/{observability/index.d.ts → entrypoints/observability.d.ts} +11 -11
- package/dist/entrypoints/observability.d.ts.map +1 -0
- package/dist/{observability/index.js → entrypoints/observability.js} +9 -11
- package/dist/entrypoints/primitives.d.ts +3 -0
- package/dist/entrypoints/primitives.d.ts.map +1 -0
- package/dist/{primitives.js → entrypoints/primitives.js} +1 -6
- package/dist/{react.d.ts → entrypoints/react.d.ts} +4 -4
- package/dist/entrypoints/react.d.ts.map +1 -0
- package/dist/{react.js → entrypoints/react.js} +3 -3
- package/dist/{release.d.ts → entrypoints/release.d.ts} +4 -4
- package/dist/entrypoints/release.d.ts.map +1 -0
- package/dist/{release.js → entrypoints/release.js} +1 -1
- package/dist/{remote.d.ts → entrypoints/remote.d.ts} +1 -1
- package/dist/entrypoints/remote.d.ts.map +1 -0
- package/dist/entrypoints/remote.js +66 -0
- package/dist/{server/index.d.ts → entrypoints/server.d.ts} +35 -34
- package/dist/entrypoints/server.d.ts.map +1 -0
- package/dist/{server/index.js → entrypoints/server.js} +294 -244
- package/dist/{telegram.d.ts → entrypoints/telegram.d.ts} +2 -2
- package/dist/entrypoints/telegram.d.ts.map +1 -0
- package/dist/{telegram.js → entrypoints/telegram.js} +1 -1
- package/dist/entrypoints/testing.d.ts +9 -0
- package/dist/entrypoints/testing.d.ts.map +1 -0
- package/dist/{testing.js → entrypoints/testing.js} +107 -926
- package/dist/{tools/connections/index.d.ts → entrypoints/tools/connections.d.ts} +6 -7
- package/dist/entrypoints/tools/connections.d.ts.map +1 -0
- package/dist/{tools/connections/index.js → entrypoints/tools/connections.js} +7 -4
- package/dist/{tools-contract.d.ts → entrypoints/tools/contract.d.ts} +5 -5
- package/dist/entrypoints/tools/contract.d.ts.map +1 -0
- package/dist/{tools-contract.js → entrypoints/tools/contract.js} +4 -4
- package/dist/{tool-invoker.d.ts → entrypoints/tools/invoker.d.ts} +2 -2
- package/dist/entrypoints/tools/invoker.d.ts.map +1 -0
- package/dist/entrypoints/tools/invoker.js +20 -0
- package/dist/entrypoints/tools.d.ts +51 -0
- package/dist/entrypoints/tools.d.ts.map +1 -0
- package/dist/{tools.js → entrypoints/tools.js} +1787 -1751
- package/dist/{tracking-server.d.ts → entrypoints/tracking/server.d.ts} +8 -8
- package/dist/entrypoints/tracking/server.d.ts.map +1 -0
- package/dist/{tracking.d.ts → entrypoints/tracking.d.ts} +15 -15
- package/dist/entrypoints/tracking.d.ts.map +1 -0
- package/dist/{tracking.js → entrypoints/tracking.js} +5 -8
- package/dist/google/google.d.ts.map +1 -0
- package/dist/{index-a916km3r.js → index-0b1ess5e.js} +6 -13
- package/dist/{index-zwkgfq1s.js → index-1nd48tm9.js} +113 -118
- package/dist/{index-7zbps32p.js → index-1zbbzgfh.js} +2 -2
- package/dist/{index-mzvgxp0n.js → index-2cr1cqhn.js} +16 -4
- package/dist/{index-f9mb610r.js → index-35mh5bhj.js} +2 -2
- package/dist/index-48ffdxgk.js +6 -0
- package/dist/index-58k4fp34.js +1023 -0
- package/dist/{index-p13mwz16.js → index-83bdg97s.js} +1 -1
- package/dist/index-97ac4gph.js +3618 -0
- package/dist/{index-kw9t5ayn.js → index-cq4qfycf.js} +5 -5
- package/dist/{index-7gnkny4z.js → index-d9pk3td4.js} +1 -1
- package/dist/{index-e42wzzz5.js → index-dcpdvjsc.js} +7 -7
- package/dist/{index-h9etkkyk.js → index-dydjcp8z.js} +102 -25
- package/dist/{index-sr93cwf9.js → index-e2z3ahw9.js} +2 -2
- package/dist/{index-yewwh1w4.js → index-e87kakm4.js} +96 -11
- package/dist/{index-cby4ar3v.js → index-eqqvgdb3.js} +1 -1
- package/dist/index-fdp6hdxn.js +942 -0
- package/dist/{index-0a349c33.js → index-gyr48nzg.js} +125 -198
- package/dist/{index-wnfk50r0.js → index-h6eeys1v.js} +1 -1
- package/dist/{index-77fekveh.js → index-hffjpmq9.js} +1 -15
- package/dist/{index-yn8remb1.js → index-j05z5gn4.js} +50 -14
- package/dist/index-k5hsfc3j.js +31 -0
- package/dist/{index-fq77yfzc.js → index-kj2wbeta.js} +1 -1
- package/dist/index-kvj7f4hq.js +39 -0
- package/dist/{index-4fpa9dy2.js → index-m9zn6cpq.js} +2 -2
- package/dist/{index-2na0qrfn.js → index-mdzh02yc.js} +7 -7
- package/dist/{index-ywd0y6m1.js → index-mkm15s49.js} +1 -1
- package/dist/index-mp5sn43f.js +1084 -0
- package/dist/{index-7n145nbe.js → index-n6hxg8as.js} +530 -387
- package/dist/index-ngfhvfpd.js +30 -0
- package/dist/{index-e0znv5gn.js → index-p5r7qpdd.js} +2 -93
- package/dist/{index-n0f51dfn.js → index-p81267c2.js} +608 -549
- package/dist/{index-wc4x00bn.js → index-qwhynv6x.js} +1 -1
- package/dist/index-r7nmqpsg.js +154 -0
- package/dist/{index-bx75zwt7.js → index-rewkc2hj.js} +5 -4
- package/dist/{index-9f8ztey6.js → index-sees8yf8.js} +2 -2
- package/dist/{index-vjpvjqpn.js → index-v38qyerb.js} +16 -2
- package/dist/{index-2c2bjw3s.js → index-vcvkq30w.js} +3 -3
- package/dist/index-wqgjfstn.js +18 -0
- package/dist/{index-f477k430.js → index-x4799c19.js} +1 -1
- package/dist/{index-cxqhvq21.js → index-xnj9bgxe.js} +142 -129
- package/dist/index-xsqjkha9.js +281 -0
- package/dist/{index-6kyksz9y.js → index-yw4fzmdz.js} +1 -1
- package/dist/{index-3xwxfj4z.js → index-zeemqhqx.js} +1 -1
- package/dist/{index-tmwcrptx.js → index-zfrhfn82.js} +1 -1
- package/dist/index-znfs20ss.js +98 -0
- package/dist/internal/backoff.d.ts +29 -0
- package/dist/internal/backoff.d.ts.map +1 -0
- package/dist/internal/canonical-json.d.ts +21 -11
- package/dist/internal/canonical-json.d.ts.map +1 -1
- package/dist/internal/channel.d.ts.map +1 -0
- package/dist/internal/logger.d.ts.map +1 -0
- package/dist/internal/request.d.ts.map +1 -0
- package/dist/internal/secure-fetch.d.ts +12 -0
- package/dist/internal/secure-fetch.d.ts.map +1 -1
- package/dist/internal/stable-digest.d.ts +0 -43
- package/dist/internal/stable-digest.d.ts.map +1 -1
- package/dist/internal/typed.d.ts +0 -8
- package/dist/internal/typed.d.ts.map +1 -1
- package/dist/internal/zod-issues.d.ts +38 -0
- package/dist/internal/zod-issues.d.ts.map +1 -0
- package/dist/{tools/json-schema-dialect.d.ts → json-schema/dialect.d.ts} +1 -1
- package/dist/json-schema/dialect.d.ts.map +1 -0
- package/dist/json-schema/json-schema.d.ts.map +1 -0
- package/dist/live/watch-delta.d.ts.map +1 -1
- package/dist/{oauth.d.ts → oauth/authorization-code.d.ts} +1 -1
- package/dist/oauth/authorization-code.d.ts.map +1 -0
- package/dist/observability/audit.d.ts +2 -2
- package/dist/observability/audit.d.ts.map +1 -1
- package/dist/observability/bounded-logger.d.ts +1 -1
- package/dist/observability/bounded-logger.d.ts.map +1 -1
- package/dist/{internal/observability-sink.d.ts → observability/bounded-sink.d.ts} +2 -2
- package/dist/observability/bounded-sink.d.ts.map +1 -0
- package/dist/observability/context.d.ts +1 -1
- package/dist/observability/context.d.ts.map +1 -1
- package/dist/observability/event.d.ts +1 -1
- package/dist/observability/event.d.ts.map +1 -1
- package/dist/observability/work.d.ts +1 -1
- package/dist/observability/work.d.ts.map +1 -1
- package/dist/primitives/audit.d.ts +1 -1
- package/dist/primitives/audit.d.ts.map +1 -1
- package/dist/primitives/export-operation.d.ts +4 -2
- package/dist/primitives/export-operation.d.ts.map +1 -1
- package/dist/realtime/socket.d.ts +1 -1
- package/dist/realtime/socket.d.ts.map +1 -1
- package/dist/server/context-contribution.d.ts +1 -1
- package/dist/server/context-contribution.d.ts.map +1 -1
- package/dist/server/context.d.ts +2 -2
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/contract-method.d.ts +15 -0
- package/dist/server/contract-method.d.ts.map +1 -0
- package/dist/server/contract-stream.d.ts +1 -1
- package/dist/server/contract-stream.d.ts.map +1 -1
- package/dist/server/create.d.ts +8 -0
- package/dist/server/create.d.ts.map +1 -1
- package/dist/server/endpoint-dispatch.d.ts +10 -0
- package/dist/server/endpoint-dispatch.d.ts.map +1 -0
- package/dist/server/endpoint-response.d.ts +18 -0
- package/dist/server/endpoint-response.d.ts.map +1 -0
- package/dist/server/error-dispatch.d.ts +17 -1
- package/dist/server/error-dispatch.d.ts.map +1 -1
- package/dist/server/error-hook.d.ts +2 -2
- package/dist/server/error-hook.d.ts.map +1 -1
- package/dist/server/handler-state.d.ts +44 -0
- package/dist/server/handler-state.d.ts.map +1 -0
- package/dist/server/implement.d.ts +1 -1
- package/dist/server/implement.d.ts.map +1 -1
- package/dist/server/middleware/auth.d.ts +1 -1
- package/dist/server/middleware/auth.d.ts.map +1 -1
- package/dist/server/middleware/cors.d.ts +17 -0
- package/dist/server/middleware/cors.d.ts.map +1 -1
- package/dist/server/middleware/trust-fence.d.ts +1 -1
- package/dist/server/middleware/trust-fence.d.ts.map +1 -1
- package/dist/server/multipart.d.ts +1 -1
- package/dist/server/multipart.d.ts.map +1 -1
- package/dist/{tools/oauth-metadata.d.ts → server/oauth/metadata.d.ts} +2 -2
- package/dist/server/oauth/metadata.d.ts.map +1 -0
- package/dist/{tools/oauth-provider.d.ts → server/oauth/provider.d.ts} +2 -2
- package/dist/server/oauth/provider.d.ts.map +1 -0
- package/dist/server/realtime.d.ts +1 -1
- package/dist/server/realtime.d.ts.map +1 -1
- package/dist/server/request-completion.d.ts +16 -0
- package/dist/server/request-completion.d.ts.map +1 -0
- package/dist/server/response-metadata.d.ts +1 -1
- package/dist/server/response-metadata.d.ts.map +1 -1
- package/dist/server/route-table.d.ts +9 -0
- package/dist/server/route-table.d.ts.map +1 -0
- package/dist/server/stream.d.ts +0 -13
- package/dist/server/stream.d.ts.map +1 -1
- package/dist/server/types.d.ts +7 -4
- package/dist/server/types.d.ts.map +1 -1
- package/dist/testing/handler-clients.d.ts +31 -0
- package/dist/testing/handler-clients.d.ts.map +1 -0
- package/dist/testing/managed-resource-conformance-scenarios.d.ts.map +1 -1
- package/dist/testing/surface-conformance.d.ts +2 -1
- package/dist/testing/surface-conformance.d.ts.map +1 -1
- package/dist/testing/surface-manifest.d.ts +64 -5
- package/dist/testing/surface-manifest.d.ts.map +1 -1
- package/dist/tools/{cli-args.d.ts → cli/args.d.ts} +1 -1
- package/dist/tools/cli/args.d.ts.map +1 -0
- package/dist/tools/{cli-checkpoint.d.ts → cli/checkpoint.d.ts} +1 -1
- package/dist/tools/cli/checkpoint.d.ts.map +1 -0
- package/dist/tools/{cli-command.d.ts → cli/command.d.ts} +22 -4
- package/dist/tools/cli/command.d.ts.map +1 -0
- package/dist/tools/{cli.d.ts → cli/config.d.ts} +5 -12
- package/dist/tools/cli/config.d.ts.map +1 -0
- package/dist/tools/cli/create-cli.d.ts +36 -0
- package/dist/tools/cli/create-cli.d.ts.map +1 -0
- package/dist/tools/cli/download.d.ts +8 -0
- package/dist/tools/cli/download.d.ts.map +1 -0
- package/dist/tools/{cli-format.d.ts → cli/format.d.ts} +2 -2
- package/dist/tools/cli/format.d.ts.map +1 -0
- package/dist/tools/cli/help.d.ts +24 -0
- package/dist/tools/cli/help.d.ts.map +1 -0
- package/dist/tools/{cli-installer.d.ts → cli/installer.d.ts} +2 -2
- package/dist/tools/cli/installer.d.ts.map +1 -0
- package/dist/tools/{cli-invoke.d.ts → cli/invoke.d.ts} +35 -10
- package/dist/tools/cli/invoke.d.ts.map +1 -0
- package/dist/tools/cli/io.d.ts +10 -0
- package/dist/tools/cli/io.d.ts.map +1 -0
- package/dist/tools/cli/managed-surface.d.ts +30 -0
- package/dist/tools/cli/managed-surface.d.ts.map +1 -0
- package/dist/tools/{cli-manifest.d.ts → cli/manifest.d.ts} +1 -1
- package/dist/tools/cli/manifest.d.ts.map +1 -0
- package/dist/tools/{cli-policy.d.ts → cli/policy.d.ts} +2 -2
- package/dist/tools/cli/policy.d.ts.map +1 -0
- package/dist/tools/cli/prepare.d.ts +14 -0
- package/dist/tools/cli/prepare.d.ts.map +1 -0
- package/dist/tools/{cli-profile.d.ts → cli/profile.d.ts} +2 -2
- package/dist/tools/cli/profile.d.ts.map +1 -0
- package/dist/tools/cli/run-managed.d.ts +5 -0
- package/dist/tools/cli/run-managed.d.ts.map +1 -0
- package/dist/tools/cli/run-native.d.ts +9 -0
- package/dist/tools/cli/run-native.d.ts.map +1 -0
- package/dist/tools/cli/session.d.ts +40 -0
- package/dist/tools/cli/session.d.ts.map +1 -0
- package/dist/tools/{cli-signature.d.ts → cli/signature.d.ts} +2 -2
- package/dist/tools/cli/signature.d.ts.map +1 -0
- package/dist/tools/{cli-stream.d.ts → cli/stream.d.ts} +4 -4
- package/dist/tools/cli/stream.d.ts.map +1 -0
- package/dist/tools/{cli-update.d.ts → cli/update.d.ts} +3 -3
- package/dist/tools/cli/update.d.ts.map +1 -0
- package/dist/tools/{cli-view.d.ts → cli/view.d.ts} +2 -2
- package/dist/tools/cli/view.d.ts.map +1 -0
- package/dist/tools/{cli-wait.d.ts → cli/wait.d.ts} +2 -2
- package/dist/tools/cli/wait.d.ts.map +1 -0
- package/dist/tools/connections/runtime.d.ts +1 -1
- package/dist/tools/connections/runtime.d.ts.map +1 -1
- package/dist/tools/connections/types.d.ts +3 -3
- package/dist/tools/connections/types.d.ts.map +1 -1
- package/dist/tools/durability-context.d.ts +1 -1
- package/dist/tools/durability-context.d.ts.map +1 -1
- package/dist/tools/execute.d.ts +30 -3
- package/dist/tools/execute.d.ts.map +1 -1
- package/dist/tools/internal/surface-projector.d.ts +8 -6
- package/dist/tools/internal/surface-projector.d.ts.map +1 -1
- package/dist/tools/internal/tool-view.d.ts +41 -0
- package/dist/tools/internal/tool-view.d.ts.map +1 -0
- package/dist/tools/invoker.d.ts +11 -3
- package/dist/tools/invoker.d.ts.map +1 -1
- package/dist/tools/list-names.d.ts +3 -3
- package/dist/tools/list-names.d.ts.map +1 -1
- package/dist/tools/manifest.d.ts +2 -2
- package/dist/tools/manifest.d.ts.map +1 -1
- package/dist/tools/{mcp-app.d.ts → mcp/app.d.ts} +1 -1
- package/dist/tools/mcp/app.d.ts.map +1 -0
- package/dist/tools/{mcp-catalog.d.ts → mcp/catalog.d.ts} +2 -2
- package/dist/tools/mcp/catalog.d.ts.map +1 -0
- package/dist/tools/{mcp-handler.d.ts → mcp/handler.d.ts} +5 -5
- package/dist/tools/mcp/handler.d.ts.map +1 -0
- package/dist/tools/{mcp.d.ts → mcp/mount.d.ts} +9 -9
- package/dist/tools/mcp/mount.d.ts.map +1 -0
- package/dist/tools/{mcp-prepare.d.ts → mcp/prepare.d.ts} +9 -9
- package/dist/tools/mcp/prepare.d.ts.map +1 -0
- package/dist/tools/{mcp-progress.d.ts → mcp/progress.d.ts} +2 -2
- package/dist/tools/mcp/progress.d.ts.map +1 -0
- package/dist/tools/mcp/register.d.ts +35 -0
- package/dist/tools/mcp/register.d.ts.map +1 -0
- package/dist/tools/{mcp-round-policy.d.ts → mcp/round-policy.d.ts} +2 -2
- package/dist/tools/mcp/round-policy.d.ts.map +1 -0
- package/dist/tools/{mcp-round.d.ts → mcp/round.d.ts} +4 -4
- package/dist/tools/mcp/round.d.ts.map +1 -0
- package/dist/tools/mcp/runtime-tools.d.ts +24 -0
- package/dist/tools/mcp/runtime-tools.d.ts.map +1 -0
- package/dist/tools/{mcp-stdio-signals.d.ts → mcp/stdio-signals.d.ts} +3 -3
- package/dist/tools/mcp/stdio-signals.d.ts.map +1 -0
- package/dist/tools/{mcp-stdio.d.ts → mcp/stdio.d.ts} +4 -4
- package/dist/tools/mcp/stdio.d.ts.map +1 -0
- package/dist/tools/{mcp-trace.d.ts → mcp/trace.d.ts} +1 -1
- package/dist/tools/mcp/trace.d.ts.map +1 -0
- package/dist/tools/mount.d.ts +12 -7
- package/dist/tools/mount.d.ts.map +1 -1
- package/dist/tools/native-definition.d.ts +3 -3
- package/dist/tools/native-definition.d.ts.map +1 -1
- package/dist/tools/operations/async-operation-binding-types.d.ts +127 -0
- package/dist/tools/operations/async-operation-binding-types.d.ts.map +1 -0
- package/dist/tools/operations/async-operation-binding.d.ts +28 -0
- package/dist/tools/operations/async-operation-binding.d.ts.map +1 -0
- package/dist/tools/operations/async-operation-canonical-types.d.ts +110 -0
- package/dist/tools/operations/async-operation-canonical-types.d.ts.map +1 -0
- package/dist/tools/operations/async-operation-canonical.d.ts +7 -0
- package/dist/tools/operations/async-operation-canonical.d.ts.map +1 -0
- package/dist/tools/operations/async-operation-contract.d.ts.map +1 -0
- package/dist/tools/operations/async-operation-id.d.ts +23 -0
- package/dist/tools/operations/async-operation-id.d.ts.map +1 -0
- package/dist/tools/operations/async-operation-runtime-tools.d.ts +40 -0
- package/dist/tools/operations/async-operation-runtime-tools.d.ts.map +1 -0
- package/dist/tools/operations/async-operation-runtime-types.d.ts +68 -0
- package/dist/tools/operations/async-operation-runtime-types.d.ts.map +1 -0
- package/dist/tools/operations/async-operation-runtime.d.ts +5 -0
- package/dist/tools/operations/async-operation-runtime.d.ts.map +1 -0
- package/dist/tools/{define-wait-tool.d.ts → operations/define-wait-tool.d.ts} +2 -2
- package/dist/tools/operations/define-wait-tool.d.ts.map +1 -0
- package/dist/tools/operations/mount-wait.d.ts.map +1 -0
- package/dist/tools/operations/wait-core.d.ts.map +1 -0
- package/dist/tools/remote.d.ts +1 -1
- package/dist/tools/remote.d.ts.map +1 -1
- package/dist/tools/runtime-tool.d.ts +11 -4
- package/dist/tools/runtime-tool.d.ts.map +1 -1
- package/dist/tools/schema/coerce.d.ts.map +1 -0
- package/dist/tools/schema/flatten-join.d.ts.map +1 -0
- package/dist/tools/schema/flatten.d.ts.map +1 -0
- package/dist/tools/schema/portable-formats.d.ts.map +1 -0
- package/dist/tools/{presentation.d.ts → schema/presentation.d.ts} +2 -0
- package/dist/tools/schema/presentation.d.ts.map +1 -0
- package/dist/tools/schema/schema.d.ts.map +1 -0
- package/dist/tools/schema/untyped-properties.d.ts.map +1 -0
- package/dist/tools/surface.d.ts +2 -3
- package/dist/tools/surface.d.ts.map +1 -1
- package/dist/tools/toolkit.d.ts +4 -4
- package/dist/tools/toolkit.d.ts.map +1 -1
- package/dist/tools/{define-download-tool.d.ts → transfer/define-download-tool.d.ts} +4 -4
- package/dist/tools/transfer/define-download-tool.d.ts.map +1 -0
- package/dist/tools/{define-upload-tool.d.ts → transfer/define-upload-tool.d.ts} +3 -3
- package/dist/tools/transfer/define-upload-tool.d.ts.map +1 -0
- package/dist/tools/{define-view-file-tool.d.ts → transfer/define-view-file-tool.d.ts} +2 -2
- package/dist/tools/transfer/define-view-file-tool.d.ts.map +1 -0
- package/dist/tools/{download-core.d.ts → transfer/download-core.d.ts} +2 -2
- package/dist/tools/transfer/download-core.d.ts.map +1 -0
- package/dist/tools/{managed-file-error.d.ts → transfer/managed-file-error.d.ts} +1 -1
- package/dist/tools/transfer/managed-file-error.d.ts.map +1 -0
- package/dist/tools/{mount-download.d.ts → transfer/mount-download.d.ts} +1 -1
- package/dist/tools/transfer/mount-download.d.ts.map +1 -0
- package/dist/tools/{mount-upload.d.ts → transfer/mount-upload.d.ts} +1 -1
- package/dist/tools/transfer/mount-upload.d.ts.map +1 -0
- package/dist/tools/transfer/native-result.d.ts.map +1 -0
- package/dist/tools/{upload-core.d.ts → transfer/upload-core.d.ts} +1 -1
- package/dist/tools/transfer/upload-core.d.ts.map +1 -0
- package/dist/tools/transfer/view-file-contract.d.ts.map +1 -0
- package/dist/tools/{view-file.d.ts → transfer/view-file.d.ts} +1 -1
- package/dist/tools/transfer/view-file.d.ts.map +1 -0
- package/dist/tools/transports.d.ts +1 -1
- package/dist/tools/transports.d.ts.map +1 -1
- package/dist/tracking/contract.d.ts +1 -1
- package/dist/tracking/contract.d.ts.map +1 -1
- package/llms/agent-runtime-browser.txt +33 -0
- package/llms/agent-runtime-coding-tools.txt +58 -0
- package/llms/agent-runtime-harness.txt +45 -0
- package/llms/agent-runtime-openrouter.txt +22 -0
- package/llms/agent-runtime-sandbox.txt +159 -0
- package/llms/agent-runtime-sqlite-bun.txt +29 -0
- package/llms/agent-runtime-sqlite-node.txt +26 -0
- package/llms/agent-runtime-testing.txt +30 -0
- package/llms/agent-runtime.2.txt +550 -0
- package/llms/agent-runtime.3.txt +311 -0
- package/llms/agent-runtime.txt +893 -0
- package/llms/application-diagnostic-journal.txt +30 -0
- package/llms/application-grammy.txt +27 -0
- package/llms/application-opentelemetry.txt +27 -0
- package/llms/application-schemas.txt +42 -0
- package/llms/application.2.txt +223 -0
- package/llms/application.txt +1144 -0
- package/llms/cli.txt +977 -0
- package/llms/contract.txt +606 -0
- package/llms/declaration.txt +286 -0
- package/llms/files.txt +30 -0
- package/llms/geo.txt +114 -0
- package/llms/google.txt +27 -0
- package/llms/live.txt +471 -0
- package/llms/node.txt +43 -0
- package/llms/oauth.txt +136 -0
- package/llms/observability.txt +893 -0
- package/llms/primitives.txt +158 -0
- package/llms/react.txt +184 -0
- package/llms/release.txt +176 -0
- package/llms/remote.txt +25 -0
- package/llms/server.2.txt +361 -0
- package/llms/server.3.txt +1031 -0
- package/llms/server.4.txt +905 -0
- package/llms/server.5.txt +250 -0
- package/llms/server.txt +996 -0
- package/llms/stitchkit.2.txt +836 -0
- package/llms/stitchkit.3.txt +147 -0
- package/llms/stitchkit.txt +260 -0
- package/llms/telegram.txt +30 -0
- package/llms/testing.txt +676 -0
- package/llms/tools-connections.txt +45 -0
- package/llms/tools-contract.txt +9 -0
- package/llms/tools-invoker.txt +9 -0
- package/llms/tools.2.txt +838 -0
- package/llms/tools.txt +1004 -0
- package/llms/tracking-server.txt +32 -0
- package/llms/tracking.txt +263 -0
- package/llms/upgrading-0.37.0-0.50.0.txt +947 -0
- package/llms/upgrading-0.53.0-0.67.0.txt +1174 -0
- package/llms/upgrading-0.68.0-0.94.0.txt +1159 -0
- package/llms/upgrading.txt +215 -0
- package/llms-full.txt +305 -75
- package/llms.txt +54 -5
- package/package.json +84 -83
- package/dist/agent-runtime/durability-contract.d.ts.map +0 -1
- package/dist/agent-runtime/durability-json.d.ts.map +0 -1
- package/dist/agent-runtime/durability-ledger.d.ts.map +0 -1
- package/dist/agent-runtime/durability-scheduler.d.ts.map +0 -1
- package/dist/agent-runtime/durability.d.ts.map +0 -1
- package/dist/agent-runtime/store-driver.d.ts.map +0 -1
- package/dist/agent-runtime-browser.d.ts +0 -5
- package/dist/agent-runtime-browser.d.ts.map +0 -1
- package/dist/agent-runtime-coding-tools.d.ts.map +0 -1
- package/dist/agent-runtime-coding-tools.js +0 -23
- package/dist/agent-runtime-harness.d.ts.map +0 -1
- package/dist/agent-runtime-openrouter.d.ts.map +0 -1
- package/dist/agent-runtime-sandbox.d.ts.map +0 -1
- package/dist/agent-runtime-sqlite-bun.d.ts.map +0 -1
- package/dist/agent-runtime-sqlite-node.d.ts.map +0 -1
- package/dist/agent-runtime-testing.d.ts +0 -3
- package/dist/agent-runtime-testing.d.ts.map +0 -1
- package/dist/agent-runtime-testing.js +0 -156
- package/dist/agent-runtime.d.ts.map +0 -1
- package/dist/application/channel.d.ts.map +0 -1
- package/dist/application-diagnostic-journal.d.ts.map +0 -1
- package/dist/application-grammy.d.ts.map +0 -1
- package/dist/application-opentelemetry.d.ts.map +0 -1
- package/dist/application-schemas.d.ts.map +0 -1
- package/dist/application.d.ts.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/contract/index.d.ts +0 -8
- package/dist/contract/index.d.ts.map +0 -1
- package/dist/declaration.d.ts.map +0 -1
- package/dist/files.d.ts.map +0 -1
- package/dist/geo.d.ts.map +0 -1
- package/dist/google.d.ts.map +0 -1
- package/dist/index-0j3vcp5m.js +0 -28
- package/dist/index-a11g2kry.js +0 -866
- package/dist/index-cnyk6te3.js +0 -77
- package/dist/index-fadnxwna.js +0 -1046
- package/dist/index-hrbajay7.js +0 -1196
- package/dist/index-s8cnx02s.js +0 -90
- package/dist/index-v5573g1k.js +0 -142
- package/dist/index-vk3kq9sb.js +0 -3344
- package/dist/index.d.ts.map +0 -1
- package/dist/internal/errors.d.ts.map +0 -1
- package/dist/internal/observability-sink.d.ts.map +0 -1
- package/dist/live.d.ts.map +0 -1
- package/dist/logger.d.ts.map +0 -1
- package/dist/node.d.ts.map +0 -1
- package/dist/oauth.d.ts.map +0 -1
- package/dist/observability/index.d.ts.map +0 -1
- package/dist/primitives.d.ts +0 -3
- package/dist/primitives.d.ts.map +0 -1
- package/dist/react.d.ts.map +0 -1
- package/dist/release.d.ts.map +0 -1
- package/dist/remote.d.ts.map +0 -1
- package/dist/remote.js +0 -88
- package/dist/retained.d.ts.map +0 -1
- package/dist/server/file-state-store.d.ts.map +0 -1
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/request.d.ts.map +0 -1
- package/dist/telegram.d.ts.map +0 -1
- package/dist/testing/agent-store-conformance.d.ts.map +0 -1
- package/dist/testing.d.ts +0 -39
- package/dist/testing.d.ts.map +0 -1
- package/dist/tool-invoker.d.ts.map +0 -1
- package/dist/tool-invoker.js +0 -21
- package/dist/tools/async-operation-contract.d.ts.map +0 -1
- package/dist/tools/async-operation.d.ts +0 -332
- package/dist/tools/async-operation.d.ts.map +0 -1
- package/dist/tools/cli-args.d.ts.map +0 -1
- package/dist/tools/cli-checkpoint.d.ts.map +0 -1
- package/dist/tools/cli-command.d.ts.map +0 -1
- package/dist/tools/cli-format.d.ts.map +0 -1
- package/dist/tools/cli-installer.d.ts.map +0 -1
- package/dist/tools/cli-invoke.d.ts.map +0 -1
- package/dist/tools/cli-manifest.d.ts.map +0 -1
- package/dist/tools/cli-policy.d.ts.map +0 -1
- package/dist/tools/cli-profile.d.ts.map +0 -1
- package/dist/tools/cli-signature.d.ts.map +0 -1
- package/dist/tools/cli-stream.d.ts.map +0 -1
- package/dist/tools/cli-update.d.ts.map +0 -1
- package/dist/tools/cli-view.d.ts.map +0 -1
- package/dist/tools/cli-wait.d.ts.map +0 -1
- package/dist/tools/cli.d.ts.map +0 -1
- package/dist/tools/coerce.d.ts.map +0 -1
- package/dist/tools/connections/index.d.ts.map +0 -1
- package/dist/tools/define-download-tool.d.ts.map +0 -1
- package/dist/tools/define-upload-tool.d.ts.map +0 -1
- package/dist/tools/define-view-file-tool.d.ts.map +0 -1
- package/dist/tools/define-wait-tool.d.ts.map +0 -1
- package/dist/tools/download-core.d.ts.map +0 -1
- package/dist/tools/flatten-join.d.ts.map +0 -1
- package/dist/tools/flatten.d.ts.map +0 -1
- package/dist/tools/json-schema-dialect.d.ts.map +0 -1
- package/dist/tools/json-schema.d.ts.map +0 -1
- package/dist/tools/managed-file-error.d.ts.map +0 -1
- package/dist/tools/mcp-app.d.ts.map +0 -1
- package/dist/tools/mcp-catalog.d.ts.map +0 -1
- package/dist/tools/mcp-handler.d.ts.map +0 -1
- package/dist/tools/mcp-prepare.d.ts.map +0 -1
- package/dist/tools/mcp-progress.d.ts.map +0 -1
- package/dist/tools/mcp-round-policy.d.ts.map +0 -1
- package/dist/tools/mcp-round.d.ts.map +0 -1
- package/dist/tools/mcp-stdio-signals.d.ts.map +0 -1
- package/dist/tools/mcp-stdio.d.ts.map +0 -1
- package/dist/tools/mcp-trace.d.ts.map +0 -1
- package/dist/tools/mcp.d.ts.map +0 -1
- package/dist/tools/mount-download.d.ts.map +0 -1
- package/dist/tools/mount-upload.d.ts.map +0 -1
- package/dist/tools/mount-wait.d.ts.map +0 -1
- package/dist/tools/native-mcp.d.ts +0 -20
- package/dist/tools/native-mcp.d.ts.map +0 -1
- package/dist/tools/native-result.d.ts.map +0 -1
- package/dist/tools/oauth-metadata.d.ts.map +0 -1
- package/dist/tools/oauth-provider.d.ts.map +0 -1
- package/dist/tools/portable-formats.d.ts.map +0 -1
- package/dist/tools/presentation.d.ts.map +0 -1
- package/dist/tools/schema.d.ts.map +0 -1
- package/dist/tools/untyped-properties.d.ts.map +0 -1
- package/dist/tools/upload-core.d.ts.map +0 -1
- package/dist/tools/view-file-contract.d.ts.map +0 -1
- package/dist/tools/view-file.d.ts.map +0 -1
- package/dist/tools/wait-core.d.ts.map +0 -1
- package/dist/tools-contract.d.ts.map +0 -1
- package/dist/tools.d.ts +0 -50
- package/dist/tools.d.ts.map +0 -1
- package/dist/tracking-server.d.ts.map +0 -1
- package/dist/tracking.d.ts.map +0 -1
- package/dist/upgrade-cli.d.ts.map +0 -1
- package/dist/{retained.d.ts → browser/retained.d.ts} +0 -0
- package/dist/{declaration.d.ts → declaration/declaration.d.ts} +0 -0
- package/dist/{upgrade-cli.d.ts → entrypoints/bin/upgrade-cli.d.ts} +0 -0
- package/dist/{tracking-server.js → entrypoints/tracking/server.js} +0 -0
- package/dist/{google.d.ts → google/google.d.ts} +0 -0
- package/dist/{index-pq95qkbf.js → index-5jm36zv1.js} +0 -0
- package/dist/{index-actkayzn.js → index-70yj2ebz.js} +3 -3
- /package/dist/{application → internal}/channel.d.ts +0 -0
- /package/dist/{logger.d.ts → internal/logger.d.ts} +0 -0
- /package/dist/{server → internal}/request.d.ts +0 -0
- /package/dist/{tools → json-schema}/json-schema.d.ts +0 -0
- /package/dist/tools/{async-operation-contract.d.ts → operations/async-operation-contract.d.ts} +0 -0
- /package/dist/tools/{mount-wait.d.ts → operations/mount-wait.d.ts} +0 -0
- /package/dist/tools/{wait-core.d.ts → operations/wait-core.d.ts} +0 -0
- /package/dist/tools/{coerce.d.ts → schema/coerce.d.ts} +0 -0
- /package/dist/tools/{flatten-join.d.ts → schema/flatten-join.d.ts} +0 -0
- /package/dist/tools/{flatten.d.ts → schema/flatten.d.ts} +0 -0
- /package/dist/tools/{portable-formats.d.ts → schema/portable-formats.d.ts} +0 -0
- /package/dist/tools/{schema.d.ts → schema/schema.d.ts} +0 -0
- /package/dist/tools/{untyped-properties.d.ts → schema/untyped-properties.d.ts} +0 -0
- /package/dist/tools/{native-result.d.ts → transfer/native-result.d.ts} +0 -0
- /package/dist/tools/{view-file-contract.d.ts → transfer/view-file-contract.d.ts} +0 -0
package/llms/testing.txt
ADDED
|
@@ -0,0 +1,676 @@
|
|
|
1
|
+
# stitchkit/testing — stitchkit docs slice
|
|
2
|
+
|
|
3
|
+
> Generated from the `docs/` tree by `bun run gen:llms`. The index of all slices is
|
|
4
|
+
> `llms.txt` in this package.
|
|
5
|
+
|
|
6
|
+
Contains: Guide: Testing & deployment (docs/guide/testing-and-deployment.md) · API reference: `stitchkit/testing` (docs/api/reference.md)
|
|
7
|
+
|
|
8
|
+
==============================================================================
|
|
9
|
+
# Guide: Testing & deployment (docs/guide/testing-and-deployment.md)
|
|
10
|
+
==============================================================================
|
|
11
|
+
|
|
12
|
+
# Testing & deployment
|
|
13
|
+
|
|
14
|
+
## Testing
|
|
15
|
+
|
|
16
|
+
stitchkit's own test suite runs on `bun:test`. The contract makes most of an
|
|
17
|
+
API testable without a live socket.
|
|
18
|
+
|
|
19
|
+
### Agent runtime faults and replay
|
|
20
|
+
|
|
21
|
+
`stitchkit/agent-runtime/testing` is a credential-free test entrypoint for Bun
|
|
22
|
+
and Node. It provides a local OpenAI-compatible SSE server with a deterministic
|
|
23
|
+
fault plan, a replay provider for model fixtures, and named race barriers for
|
|
24
|
+
event-order assertions:
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
import {
|
|
28
|
+
createFaultProviderServer,
|
|
29
|
+
createReplayAgentProvider,
|
|
30
|
+
} from 'stitchkit/agent-runtime/testing'
|
|
31
|
+
|
|
32
|
+
const server = await createFaultProviderServer({
|
|
33
|
+
scenario: [
|
|
34
|
+
{ kind: 'stream-cut', afterBytes: 50 },
|
|
35
|
+
{ kind: 'pass', text: 'recovered' },
|
|
36
|
+
],
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
const provider = createReplayAgentProvider({
|
|
40
|
+
attempts: { primary: [firstModel, recoveredModel] },
|
|
41
|
+
})
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
The fault vocabulary also covers connection refusal, timeout before the first
|
|
45
|
+
byte, HTTP errors, malformed JSON, slow streams and missing usage. Configure
|
|
46
|
+
runtime retry explicitly through `loop.retry`. A retry is recorded at the
|
|
47
|
+
durable provider-step boundary; once a tool has executed, the runtime will not
|
|
48
|
+
replay that attempt automatically. Always close the local server in test
|
|
49
|
+
teardown with `await server.close()`.
|
|
50
|
+
|
|
51
|
+
### Test generated clients in process
|
|
52
|
+
|
|
53
|
+
`createHandlerTestClient` runs the real generated client against the real Fetch
|
|
54
|
+
handler without opening a TCP port. It keeps URL construction, headers/cookies,
|
|
55
|
+
multipart encoding, cancellation, output validation, `ApiError` and
|
|
56
|
+
`x-request-id` correlation in the test path:
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
import { createHandlerTestClient } from 'stitchkit/testing'
|
|
60
|
+
|
|
61
|
+
const api = createHandlerTestClient({
|
|
62
|
+
contract: notes,
|
|
63
|
+
handler,
|
|
64
|
+
pathPrefix: 'api',
|
|
65
|
+
client: { headers: { cookie: 'session=test' } },
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
expect(await api.create({ text: 'hi' })).toEqual({ id: '1', text: 'hi' })
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
`contractConfig` accepts the same scoped `pathPrefix` / `stripPrefixKeys` as
|
|
72
|
+
`createClient`. `createHandlerTestClients` is the batch form for a literal
|
|
73
|
+
contract registry. Both helpers are Fetch-only: they construct ordinary
|
|
74
|
+
absolute `Request` objects and call `createHandler` directly, so Bun and Node
|
|
75
|
+
exercise the same framework pipeline.
|
|
76
|
+
|
|
77
|
+
### Transport conformance
|
|
78
|
+
|
|
79
|
+
`buildSurfaceManifest` v2 snapshots canonical operations separately from actual
|
|
80
|
+
HTTP topology and mounted MCP/Agent/CLI projections. Named MCP surfaces keep
|
|
81
|
+
their own advertised input digests (including `extend`, flattening and schema
|
|
82
|
+
policy), and named realtime contracts keep directional argument/ack input and
|
|
83
|
+
output digests. Compare only discovery you actually observed, then run explicit
|
|
84
|
+
drivers for the transports you provide:
|
|
85
|
+
|
|
86
|
+
```ts
|
|
87
|
+
import { bindRealtimeClient } from 'stitchkit'
|
|
88
|
+
import {
|
|
89
|
+
assertSurfaceDiscovery,
|
|
90
|
+
buildSurfaceManifest,
|
|
91
|
+
createRealtimeProbeDriver,
|
|
92
|
+
defineRealtimeProbe,
|
|
93
|
+
runSurfaceProbes,
|
|
94
|
+
} from 'stitchkit/testing'
|
|
95
|
+
|
|
96
|
+
const manifest = buildSurfaceManifest({
|
|
97
|
+
groups: [{ pathPrefix: '/api', services: httpServices }],
|
|
98
|
+
mcpPreparation: { extend, schemaValidation, multiRound },
|
|
99
|
+
mcpSurfaces: {
|
|
100
|
+
member: { services: memberServices, runtimeTools },
|
|
101
|
+
admin: { services: adminServices, runtimeTools },
|
|
102
|
+
},
|
|
103
|
+
toolSurfaces: {
|
|
104
|
+
AGENT: { services: agentServices, runtimeTools },
|
|
105
|
+
CLI: { services: cliServices, runtimeTools: cliRuntimeTools },
|
|
106
|
+
},
|
|
107
|
+
realtime: { primary: realtimeContract },
|
|
108
|
+
cliCommands,
|
|
109
|
+
})
|
|
110
|
+
assertSurfaceDiscovery(manifest, {
|
|
111
|
+
openApi,
|
|
112
|
+
toolSurfaces: [{
|
|
113
|
+
transport: 'MCP',
|
|
114
|
+
surface: 'member',
|
|
115
|
+
names: (await mcpClient.listTools()).tools.map((tool) => tool.name),
|
|
116
|
+
}],
|
|
117
|
+
AGENT: Object.keys(agentTools),
|
|
118
|
+
CLI: cliHelpNames,
|
|
119
|
+
realtime: {
|
|
120
|
+
primary: { serverToClient: observedServerEvents, clientToServer: observedClientEvents },
|
|
121
|
+
},
|
|
122
|
+
})
|
|
123
|
+
|
|
124
|
+
const invalidInbound = defineRealtimeProbe({
|
|
125
|
+
name: 'invalid inbound payload',
|
|
126
|
+
scenario: 'invalid_arguments',
|
|
127
|
+
fixture: invalidPayloadFixture,
|
|
128
|
+
expected: {
|
|
129
|
+
outcome: 'realtime_rejected',
|
|
130
|
+
code: 'REALTIME_CONTRACT_VIOLATION',
|
|
131
|
+
rejection: {
|
|
132
|
+
direction: 'server-inbound', phase: 'arguments',
|
|
133
|
+
reason: 'invalid-arguments', fault: 'peer',
|
|
134
|
+
},
|
|
135
|
+
handlerCalls: 0,
|
|
136
|
+
},
|
|
137
|
+
})
|
|
138
|
+
|
|
139
|
+
const realtimeDriver = createRealtimeProbeDriver({
|
|
140
|
+
bind: (onRejected, fixture) => {
|
|
141
|
+
const client = bindRealtimeClient(realtimeContract, existingTransport, { onRejected })
|
|
142
|
+
const scenario = bindApplicationRealtimeScenario(client, fixture)
|
|
143
|
+
return {
|
|
144
|
+
connected: () => client.connected,
|
|
145
|
+
invoke: scenario.invoke,
|
|
146
|
+
dispose: scenario.dispose, // subscriptions only; never disconnect the transport
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
handlerCalls: () => applicationRealtimeHandlerCalls,
|
|
150
|
+
})
|
|
151
|
+
|
|
152
|
+
await runSurfaceProbes({
|
|
153
|
+
probes: [invalidInbound],
|
|
154
|
+
drivers: { REALTIME: realtimeDriver },
|
|
155
|
+
})
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
MCP preparation is global because the real MCP mount has one preparation
|
|
159
|
+
policy; named surfaces select tools, while `extend.filter` decides which
|
|
160
|
+
selected operations receive extra fields. CLI selection is deliberately plain,
|
|
161
|
+
and Agent owns its own reachable presentation shaping.
|
|
162
|
+
|
|
163
|
+
The kit never starts a server, discovers Socket.IO topology remotely, invents
|
|
164
|
+
credentials or synthesises invalid Zod values. Fixtures and observations come
|
|
165
|
+
from the application. The realtime driver creates a rejection channel per
|
|
166
|
+
scenario, observes connection state before invocation, and disposes only
|
|
167
|
+
probe-owned subscriptions. Each scenario has one absolute deadline shared by
|
|
168
|
+
signalled setup, invocation and teardown. An outer timeout stops waiting; it
|
|
169
|
+
does not disconnect a foreign transport or retract an already emitted packet.
|
|
170
|
+
A missing driver is unsupported, not silently marked conformant.
|
|
171
|
+
|
|
172
|
+
### Test handlers with raw Requests
|
|
173
|
+
|
|
174
|
+
`createHandler` is the router as a plain `(req) => Promise<Response>` function —
|
|
175
|
+
no `Bun.serve`, no port. Drive it with a `Request`:
|
|
176
|
+
|
|
177
|
+
```ts
|
|
178
|
+
import { test, expect } from 'bun:test'
|
|
179
|
+
import { createHandler } from 'stitchkit/server'
|
|
180
|
+
import { implement } from 'stitchkit/server'
|
|
181
|
+
import { notes } from '../shared/contracts'
|
|
182
|
+
|
|
183
|
+
const handler = createHandler({
|
|
184
|
+
services: [implement(notes, {
|
|
185
|
+
list: () => [],
|
|
186
|
+
create: (ctx) => ({ id: '1', text: ctx.input.text }),
|
|
187
|
+
get: (ctx) => ({ id: ctx.params.id, text: 'x' }),
|
|
188
|
+
})],
|
|
189
|
+
})
|
|
190
|
+
|
|
191
|
+
test('create returns the note', async () => {
|
|
192
|
+
const res = await handler(new Request('http://test/notes', {
|
|
193
|
+
method: 'POST',
|
|
194
|
+
headers: { 'content-type': 'application/json' },
|
|
195
|
+
body: JSON.stringify({ text: 'hi' }),
|
|
196
|
+
}))
|
|
197
|
+
expect(res.status).toBe(200)
|
|
198
|
+
expect(await res.json()).toEqual({ id: '1', text: 'hi' })
|
|
199
|
+
})
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
This lower-level form exercises the same pipeline while letting a test inspect
|
|
203
|
+
the raw `Response` itself.
|
|
204
|
+
|
|
205
|
+
### Test handlers directly
|
|
206
|
+
|
|
207
|
+
A handler is a plain function of `ctx`. For pure handler logic, call it with a
|
|
208
|
+
context object directly — no HTTP at all. The contract's types keep the test
|
|
209
|
+
`ctx` honest.
|
|
210
|
+
|
|
211
|
+
### Validation and errors
|
|
212
|
+
|
|
213
|
+
A bad request body comes back as `400 VALIDATION_ERROR`; a thrown `AppError`
|
|
214
|
+
comes back with its `code` and `status`. Assert on the envelope:
|
|
215
|
+
|
|
216
|
+
```ts
|
|
217
|
+
const res = await handler(new Request('http://test/notes/missing'))
|
|
218
|
+
expect(res.status).toBe(404)
|
|
219
|
+
expect(await res.json()).toEqual({ error: { code: 'NOT_FOUND', message: 'Note not found' } })
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
The suite in `packages/core/tests` is the working reference for testing each
|
|
223
|
+
piece. Its size changes with the public surface, so the guide does not pin a
|
|
224
|
+
count that can drift independently from the test runner.
|
|
225
|
+
|
|
226
|
+
### Managed-resource conformance
|
|
227
|
+
|
|
228
|
+
Consumer-owned resource adapters can run the framework's deterministic
|
|
229
|
+
lifecycle matrix without importing `bun:test`:
|
|
230
|
+
|
|
231
|
+
```ts
|
|
232
|
+
import { defineManagedResource } from 'stitchkit/application'
|
|
233
|
+
import { runManagedResourceConformance } from 'stitchkit/testing'
|
|
234
|
+
|
|
235
|
+
await runManagedResourceConformance({
|
|
236
|
+
createFixture: ({ controls }) => {
|
|
237
|
+
const resource = defineManagedResource({
|
|
238
|
+
id: 'provider-adapter',
|
|
239
|
+
async start() {
|
|
240
|
+
await controls.startup
|
|
241
|
+
return {
|
|
242
|
+
ready: controls.readiness,
|
|
243
|
+
completion: controls.completion,
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
activate: () => controls.activation,
|
|
247
|
+
stopAdmission: () => provider.stopAdmission(),
|
|
248
|
+
drain: () => provider.drain(),
|
|
249
|
+
close: () => controls.close,
|
|
250
|
+
force: () => controls.force,
|
|
251
|
+
})
|
|
252
|
+
return {
|
|
253
|
+
resource,
|
|
254
|
+
dispose: () => provider.releaseFixtureHandles(),
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
})
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
The runner creates a fresh fixture for every scenario and controls startup,
|
|
261
|
+
readiness, long-lived completion, activation, close and force settlement. The
|
|
262
|
+
adapter must wire those promises to the corresponding public resource phases;
|
|
263
|
+
`dispose` releases fixture-owned handles even after a failed scenario. Semantic
|
|
264
|
+
ordering uses controlled barriers and shutdown abort, while
|
|
265
|
+
`watchdogTimeoutMs` is only an emergency bound for a broken fixture. An
|
|
266
|
+
explicit `scenarios` subset must contain at least one stable scenario ID.
|
|
267
|
+
|
|
268
|
+
### Published-package optional-peer matrix
|
|
269
|
+
|
|
270
|
+
The repository's `consumer-lane` is a release invariant over the package users
|
|
271
|
+
actually install, not the source tree. One declarative matrix classifies every
|
|
272
|
+
public export and relevant mixed-barrel feature by browser/Bun/Node target,
|
|
273
|
+
installed optional peers, runtime bundle inputs, emitted-declaration inputs and
|
|
274
|
+
whether the built artifact can execute. Exact export-map coverage means a new
|
|
275
|
+
subpath fails the gate until its dependency boundary is explicit.
|
|
276
|
+
|
|
277
|
+
Peer-neutral cases run from a packed minimal install. Provider adapters run only
|
|
278
|
+
with their declared peer family and retain a negative missing-peer proof. A new
|
|
279
|
+
runtime or type-only package outside a case's budget fails with both the case id
|
|
280
|
+
and package name, so an accidental eager import cannot hide behind another
|
|
281
|
+
fixture's transitive dependency.
|
|
282
|
+
|
|
283
|
+
That includes `stitchkit/tools/invoker`: a minimal packed consumer imports it
|
|
284
|
+
without MCP/AI peers and executes validation, output projection and normalized
|
|
285
|
+
errors on Bun and Node. The broader `stitchkit/tools` barrel deliberately keeps
|
|
286
|
+
the adapter peer budget.
|
|
287
|
+
|
|
288
|
+
Beside the matrix, one case is about the ARTIFACT rather than the inventory: a
|
|
289
|
+
program that injects the Socket.IO peer loaders is bundled and started in a
|
|
290
|
+
directory with no `node_modules`, under Node and under Bun with auto-install
|
|
291
|
+
off. It is checked as a pair — the same program without the loaders must fail
|
|
292
|
+
there — because a positive result alone would only show that the machine
|
|
293
|
+
running the check happens to have the package, which is precisely how this class
|
|
294
|
+
of defect stays invisible in development.
|
|
295
|
+
|
|
296
|
+
### Shipping one self-contained artifact
|
|
297
|
+
|
|
298
|
+
Stitchkit resolves the optional Socket.IO peers through a variable, so a
|
|
299
|
+
consumer bundling an unrelated `stitchkit/server` export never has to resolve
|
|
300
|
+
them. A bundler cannot follow that, which matters if you ship **one file** to a
|
|
301
|
+
machine with no `node_modules`: the package never enters the artifact and the
|
|
302
|
+
failure arrives at start-up, not at build time.
|
|
303
|
+
|
|
304
|
+
Pass the loaders, and the literal lives in your source where your bundler sees
|
|
305
|
+
it:
|
|
306
|
+
|
|
307
|
+
```ts
|
|
308
|
+
const socket = await createSocketIOServer({
|
|
309
|
+
cors: { origin: env.CORS_ORIGIN },
|
|
310
|
+
peers: {
|
|
311
|
+
server: () => import('socket.io'),
|
|
312
|
+
// Bun only — on Node the engine is never asked for, and bundling a
|
|
313
|
+
// Bun-only package for Node asks the bundler to carry `bun:` imports.
|
|
314
|
+
bunEngine: () => import('@socket.io/bun-engine'),
|
|
315
|
+
},
|
|
316
|
+
})
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
The packed Next/Webpack gate compiles the browser
|
|
320
|
+
`peers.client: () => import('socket.io-client')` loader and rejects Webpack's
|
|
321
|
+
"request is an expression" warning. Stitchkit's runtime fallback remains lazy;
|
|
322
|
+
its emitted import carries a count-checked ignore directive.
|
|
323
|
+
|
|
324
|
+
Omit `peers` and nothing changes: the peers stay lazy and are resolved from the
|
|
325
|
+
machine. Both peers must be listed as dependencies of the package you bundle,
|
|
326
|
+
because they now genuinely are.
|
|
327
|
+
|
|
328
|
+
## Deployment
|
|
329
|
+
|
|
330
|
+
### Build
|
|
331
|
+
|
|
332
|
+
A stitchkit app is a Bun program — there is no framework build step. Bundle it
|
|
333
|
+
however the project already does (`bun build`, or run the entry file directly).
|
|
334
|
+
The `stitchkit` package itself ships pre-built; you consume `dist/`, not `src/`.
|
|
335
|
+
|
|
336
|
+
### Runtime
|
|
337
|
+
|
|
338
|
+
The recommended target is **Bun ≥ 1.2** — `createServer` is `Bun.serve`. **Node
|
|
339
|
+
≥ 22** is also supported via `stitchkit/node` (see below).
|
|
340
|
+
|
|
341
|
+
```ts
|
|
342
|
+
createServer({
|
|
343
|
+
services,
|
|
344
|
+
port: Number(process.env.PORT ?? 3000),
|
|
345
|
+
hostname: '0.0.0.0',
|
|
346
|
+
})
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
### Process signals — `bindProcessSignals`
|
|
350
|
+
|
|
351
|
+
Keep the managed handle and wire process policy explicitly. The framework
|
|
352
|
+
registers no signal listener on its own; `bindProcessSignals` is that explicit
|
|
353
|
+
step, and it owns the state machine:
|
|
354
|
+
|
|
355
|
+
```ts
|
|
356
|
+
import { bindProcessSignals } from 'stitchkit/server'
|
|
357
|
+
|
|
358
|
+
const server = createServer({ services, socket })
|
|
359
|
+
|
|
360
|
+
bindProcessSignals(server, {
|
|
361
|
+
shutdown: { gracePeriodMs: 30_000, forceTimeoutMs: 5_000 },
|
|
362
|
+
onShutdown: () => stopSchedulers(), // before the drain starts
|
|
363
|
+
onComplete: async (result) => { // after it finishes
|
|
364
|
+
await mcp.close()
|
|
365
|
+
await prisma.$disconnect()
|
|
366
|
+
process.exitCode = result.outcome === 'clean' ? 0 : 1
|
|
367
|
+
},
|
|
368
|
+
onError: (error) => {
|
|
369
|
+
console.error(error)
|
|
370
|
+
process.exitCode = 1
|
|
371
|
+
},
|
|
372
|
+
})
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
- The first signal runs `onShutdown`, then one `shutdown()`.
|
|
376
|
+
- A later signal **forces that same chain** — never a second shutdown. Signals
|
|
377
|
+
delivered in the same turn as the first (a supervisor sending `SIGINT` and
|
|
378
|
+
`SIGTERM` together) are not counted, so the grace period is not collapsed to
|
|
379
|
+
zero.
|
|
380
|
+
- The signal after the force — or one arriving while `onComplete` still runs —
|
|
381
|
+
re-delivers the signal so its default disposition applies, letting an operator
|
|
382
|
+
kill a process stuck on some other resource. This works only while nothing else
|
|
383
|
+
in the process listens for that signal; if something does, the signal is
|
|
384
|
+
swallowed and `onEscalationBlocked` fires instead. The framework will not call
|
|
385
|
+
`process.exit` on your behalf.
|
|
386
|
+
- `shutdown` budgets are validated when you bind, not when the signal arrives.
|
|
387
|
+
`signal` is not accepted there — the binding owns it, and that is what makes a
|
|
388
|
+
later signal force the first chain.
|
|
389
|
+
- `onError(phase, error)` separates the phases. A failing `onShutdown`
|
|
390
|
+
(`'prepare'`) is reported and the shutdown **still runs** — a failed
|
|
391
|
+
preparation must not leave the server listening. A failing `onComplete`
|
|
392
|
+
(`'complete'`) leaves `promise` resolved, because the transport did shut down.
|
|
393
|
+
Only a failing `shutdown()` (`'shutdown'`) rejects it.
|
|
394
|
+
|
|
395
|
+
`close()` removes the listeners. Closing a binding that never received a signal
|
|
396
|
+
resolves `promise` with `undefined`, so an awaiting application does not hang;
|
|
397
|
+
closing one whose chain is already running leaves that chain to finish and keeps
|
|
398
|
+
the handle claimed, since a second binding could not force it. `promise` is
|
|
399
|
+
already observed internally, so ignoring it never raises an `unhandledRejection`.
|
|
400
|
+
|
|
401
|
+
#### Composite shutdown target — parallel domain drains
|
|
402
|
+
|
|
403
|
+
`bindProcessSignals` takes `Pick<ManagedServerHandle, 'shutdown'>` — an
|
|
404
|
+
**interface**, not the server. An application whose shutdown spans several
|
|
405
|
+
domains (transport, bots, agent runs, broadcasts) composes them into one target;
|
|
406
|
+
the signal machine stays the framework's, the composition stays yours:
|
|
407
|
+
|
|
408
|
+
```ts
|
|
409
|
+
const composite: ShutdownTarget = {
|
|
410
|
+
async shutdown(options?: ShutdownOptions): Promise<ShutdownResult> {
|
|
411
|
+
const { signal } = ShutdownOptionsSchema.parse(options ?? {})
|
|
412
|
+
// Domain drains run in parallel with the transport drain, all watching the
|
|
413
|
+
// same force signal the second OS signal aborts.
|
|
414
|
+
const [transport, bots, agents, broadcasts] = await Promise.all([
|
|
415
|
+
server.shutdown(options),
|
|
416
|
+
drainBots(signal),
|
|
417
|
+
drainAgents(signal),
|
|
418
|
+
drainBroadcasts(signal),
|
|
419
|
+
])
|
|
420
|
+
return {
|
|
421
|
+
...transport,
|
|
422
|
+
// Fold domain leftovers into the transport result so `onComplete` sees
|
|
423
|
+
// one honest outcome.
|
|
424
|
+
outcome: transport.outcome === 'clean' && bots + agents + broadcasts === 0
|
|
425
|
+
? 'clean'
|
|
426
|
+
: 'forced',
|
|
427
|
+
}
|
|
428
|
+
},
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
bindProcessSignals(composite, { shutdown: { gracePeriodMs: 30_000 } })
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
The transport half inside stays the real managed handle — its admission gate and
|
|
435
|
+
HTTP drain are not reimplemented, only composed. Domain drains must watch the
|
|
436
|
+
`signal` themselves: it is the only channel a second OS signal has into a
|
|
437
|
+
running chain.
|
|
438
|
+
|
|
439
|
+
#### The last line of defence is yours
|
|
440
|
+
|
|
441
|
+
The framework never calls `process.exit`, and `process.exitCode` only takes
|
|
442
|
+
effect once the event loop empties — which is exactly what a stuck resource
|
|
443
|
+
prevents. If the deployment must exit before the supervisor's `SIGKILL`, arm an
|
|
444
|
+
application-side timer:
|
|
445
|
+
|
|
446
|
+
```ts
|
|
447
|
+
onShutdown: () => {
|
|
448
|
+
setTimeout(() => process.exit(1), 60_000).unref()
|
|
449
|
+
},
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
`unref()` keeps the timer from holding a healthy process open; it only fires if
|
|
453
|
+
something else already is.
|
|
454
|
+
|
|
455
|
+
#### When NOT to use `bindProcessSignals`
|
|
456
|
+
|
|
457
|
+
- The application already runs a signal machine with states this one does not
|
|
458
|
+
have (staged escalation policies, per-signal semantics beyond
|
|
459
|
+
first/force/escalate). Two machines on the same signals is worse than either.
|
|
460
|
+
- Signal policy must differ per signal (e.g. `SIGHUP` = reload, not shutdown) —
|
|
461
|
+
bind only the terminating signals here and keep the rest yours.
|
|
462
|
+
- Something else in the process must keep listening for the same signal: the
|
|
463
|
+
escalation path restores the default disposition only when nothing else
|
|
464
|
+
listens, and reports `onEscalationBlocked` otherwise.
|
|
465
|
+
|
|
466
|
+
The server owns HTTP/Socket.IO transport resources. MCP, databases, queues and
|
|
467
|
+
domain run-state remain application resources and close explicitly after server
|
|
468
|
+
drain. Do not call `runtime.stop()` or `socket.io.close()` in parallel with
|
|
469
|
+
`shutdown()`.
|
|
470
|
+
|
|
471
|
+
### Let the supervisor start the role, not a launcher
|
|
472
|
+
|
|
473
|
+
A shutdown chain treats a **second** signal as "stop waiting, force it now".
|
|
474
|
+
That is deliberate — it is how an operator escalates. It also means an extra
|
|
475
|
+
process between the supervisor and your role can escalate for you, by
|
|
476
|
+
accident.
|
|
477
|
+
|
|
478
|
+
Point the supervisor at the process that serves, not at a script runner that
|
|
479
|
+
starts it:
|
|
480
|
+
|
|
481
|
+
```js
|
|
482
|
+
// supervisor entry — the role's own process
|
|
483
|
+
script: 'bun', args: ['dist/index.js']
|
|
484
|
+
|
|
485
|
+
// NOT this: a launcher in between
|
|
486
|
+
script: 'bun', args: ['run', 'start']
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
Measured under PM2 with the launcher form: the stop signal reaches both
|
|
490
|
+
processes, the launcher forwards its copy, and the server sees two presses in
|
|
491
|
+
two turns. A declared 15 s grace period ended in 1.3 ms with
|
|
492
|
+
`outcome: "forced"`, `reason: "signal"` — no requests drained, and the only
|
|
493
|
+
visible trace was a non-zero exit code. With the direct form, the same stop is
|
|
494
|
+
`outcome: "clean"`.
|
|
495
|
+
|
|
496
|
+
A workspace-filtering launcher (`bun run --filter <pkg> start`) fails harder:
|
|
497
|
+
the signal never reaches the role at all, so no shutdown runs and the process
|
|
498
|
+
is torn down when the launcher dies.
|
|
499
|
+
|
|
500
|
+
Two habits make this visible instead of silent:
|
|
501
|
+
|
|
502
|
+
- log the outcome in `onComplete`, not just the exit code —
|
|
503
|
+
`result.outcome`, `result.reason` and `result.durationMs` are the difference
|
|
504
|
+
between "drained" and "was cut off";
|
|
505
|
+
- keep the supervisor's kill timeout **at or above** the grace period you
|
|
506
|
+
declared, so a slow drain is not racing its own supervisor.
|
|
507
|
+
|
|
508
|
+
### Stdio process signals
|
|
509
|
+
|
|
510
|
+
An MCP stdio handle has `close()`, not managed HTTP `shutdown()` with a force
|
|
511
|
+
signal and deadline. Bind its process lifecycle with the truthful close-only
|
|
512
|
+
sibling from `stitchkit/tools`:
|
|
513
|
+
|
|
514
|
+
```ts
|
|
515
|
+
import {
|
|
516
|
+
bindStdioProcessSignals,
|
|
517
|
+
createStdioMcpServer,
|
|
518
|
+
} from 'stitchkit/tools'
|
|
519
|
+
|
|
520
|
+
const stdio = await createStdioMcpServer(config)
|
|
521
|
+
const binding = bindStdioProcessSignals(stdio, {
|
|
522
|
+
onClose: () => stopWorkers(),
|
|
523
|
+
onComplete: () => { process.exitCode = 0 },
|
|
524
|
+
onError: (phase, error) => {
|
|
525
|
+
console.error(phase, error) // stderr; stdout stays JSON-RPC-only
|
|
526
|
+
process.exitCode = 1
|
|
527
|
+
},
|
|
528
|
+
})
|
|
529
|
+
|
|
530
|
+
await binding.promise
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
The first signal starts exactly one close chain. A same-turn duplicate is
|
|
534
|
+
ignored; a later signal restores the default OS disposition because the
|
|
535
|
+
official stdio close is not abortable and Stitchkit will not pretend otherwise.
|
|
536
|
+
`binding.close()` removes idle listeners and resolves the promise with
|
|
537
|
+
`undefined`. No listener is installed until the binder is called, and the
|
|
538
|
+
framework never calls `process.exit()`.
|
|
539
|
+
|
|
540
|
+
### Deploy on Node
|
|
541
|
+
|
|
542
|
+
The contract, `implement`, hooks, auth and the client are runtime-agnostic. Only
|
|
543
|
+
the listener differs: replace `createServer` with **`serveNode`** (from
|
|
544
|
+
`stitchkit/node`, built on `srvx`) — same `HandlerConfig`:
|
|
545
|
+
|
|
546
|
+
```ts
|
|
547
|
+
import { serveNode } from 'stitchkit/node'
|
|
548
|
+
|
|
549
|
+
const server = await serveNode({
|
|
550
|
+
services,
|
|
551
|
+
socket,
|
|
552
|
+
port: Number(process.env.PORT ?? 3000),
|
|
553
|
+
})
|
|
554
|
+
|
|
555
|
+
await server.shutdown({ gracePeriodMs: 30_000 })
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
Notes for a Node host:
|
|
559
|
+
|
|
560
|
+
- `stitchkit/node` declarations do not require `@types/bun`. Runtime-neutral
|
|
561
|
+
raw routes use `RawRoute<TServer = unknown>`; supply a host server generic
|
|
562
|
+
only when an embedding adapter passes one to `createHandler`.
|
|
563
|
+
|
|
564
|
+
- **Socket.IO** attaches to the Node HTTP server via `serveNode({ socket })`, and
|
|
565
|
+
on Node the default transport is `['websocket']` — set the client to match
|
|
566
|
+
(`transports: ['websocket']`). See [realtime](./realtime.md).
|
|
567
|
+
- **Bun-only helpers** do not run on Node: `serveFile` (uses `Bun.file`) and the
|
|
568
|
+
raw WebSocket lane. `staticRoute` is runtime-neutral (`node:fs`) and works on
|
|
569
|
+
both, but in production prefer a CDN / the static front-end below.
|
|
570
|
+
|
|
571
|
+
### Production checklist
|
|
572
|
+
|
|
573
|
+
- **CORS** — set `cors.origin` to your real front-end origin(s). Do not ship
|
|
574
|
+
`origin: '*'` with credentials.
|
|
575
|
+
- **Logging** — `logging: true` for built-in request logs, or
|
|
576
|
+
`logging: { logger, skip, enrich }` to route them into your logging stack,
|
|
577
|
+
drop probe noise and add your own fields.
|
|
578
|
+
- **Trace ids** — override `traceId` to reuse an id your platform already
|
|
579
|
+
assigns, so request logs and application logs share one id. Every response
|
|
580
|
+
carries it as `x-request-id`; log `$upstream_http_x_request_id` at the proxy
|
|
581
|
+
to join the two logs.
|
|
582
|
+
- **Rate limiting** — `createRateLimiter` in `onRequest` for a global limit;
|
|
583
|
+
per-route limits belong in `beforeHandle`.
|
|
584
|
+
- **Auth** — wire one `createAuthHook` as HTTP `hooks.authorize` and tool
|
|
585
|
+
`lifecycle.beforeHandle`; do not re-check auth per handler. HTTP authorization
|
|
586
|
+
runs before JSON or multipart body reads.
|
|
587
|
+
- **Errors** — handlers throw `AppError`; let the standard envelope render them.
|
|
588
|
+
Add an `onError` hook only to integrate an error tracker.
|
|
589
|
+
- **Secrets** — read them from the environment; never commit them.
|
|
590
|
+
|
|
591
|
+
### The static front-end
|
|
592
|
+
|
|
593
|
+
stitchkit serves the API. A SPA front-end is built and hosted separately — a
|
|
594
|
+
static host or CDN in production, its own dev server in development. The backend
|
|
595
|
+
does not serve static files (`staticRoute` exists for the occasional asset, not
|
|
596
|
+
a whole app). `bun create stitchkit my-app` demonstrates the supported split:
|
|
597
|
+
an independently built Next.js frontend and Bun/Stitchkit API.
|
|
598
|
+
|
|
599
|
+
### MCP
|
|
600
|
+
|
|
601
|
+
If the app exposes MCP tools, mount `createMcpHandler` with
|
|
602
|
+
`createMcpHttpRoute({ path: '/mcp', handler })` and close the handler during
|
|
603
|
+
graceful shutdown. Production needs the `@modelcontextprotocol/server` v2 peer;
|
|
604
|
+
apps without MCP do not. Only an MCP host or integration-test package needs
|
|
605
|
+
`@modelcontextprotocol/client`.
|
|
606
|
+
|
|
607
|
+
==============================================================================
|
|
608
|
+
# API reference: `stitchkit/testing` (docs/api/reference.md)
|
|
609
|
+
==============================================================================
|
|
610
|
+
|
|
611
|
+
## `stitchkit/testing`
|
|
612
|
+
|
|
613
|
+
Fetch-only integration helpers that preserve the real generated-client and
|
|
614
|
+
handler pipeline without opening a TCP port.
|
|
615
|
+
|
|
616
|
+
| Export | Kind | Summary |
|
|
617
|
+
|--------|------|---------|
|
|
618
|
+
| `createHandlerTestClient` | function | one contract client backed by an in-process `FetchHandler` |
|
|
619
|
+
| `createHandlerTestClients` | function | exact contract-registry batch form |
|
|
620
|
+
| `runManagedResourceConformance` | function | run the canonical deterministic lifecycle matrix against a fresh consumer-owned `ManagedResource` fixture; resolves `void` or throws `ManagedResourceConformanceError` with a stable scenario ID and normalized trace |
|
|
621
|
+
| `ManagedResourceConformanceScenarioIdSchema` / `ManagedResourceConformanceScenarioId` | schema / _type_ | stable clean, rollback, readiness/completion, activation, shutdown-race and forced-cleanup scenario vocabulary |
|
|
622
|
+
| `ManagedResourceConformanceScenarioSchema` / `ManagedResourceConformanceScenario` | schema / _type_ | discriminated scenario record including whether the controlled resource is required |
|
|
623
|
+
| `ManagedResourceConformanceTraceEntrySchema` / `ManagedResourceConformanceTraceEntry` | schema / _type_ | sequence-numbered phase/outcome diagnostic without timestamps or generated IDs |
|
|
624
|
+
| `ManagedResourceConformancePhaseSchema` / `ManagedResourceConformancePhase` | schema / _type_ | lifecycle and disposal trace phases |
|
|
625
|
+
| `ManagedResourceConformanceTraceOutcomeSchema` / `ManagedResourceConformanceTraceOutcome` | schema / _type_ | normalized `enter`, `resolve` or `reject` outcome |
|
|
626
|
+
| `ManagedResourceConformanceConfig` | _type_ | fresh-fixture factory, optional scenario subset and emergency watchdog bound |
|
|
627
|
+
| `ManagedResourceConformanceFactoryInput` / `ManagedResourceConformanceControls` | _type_ | current discriminated scenario and caller-controlled startup, readiness, completion, activation, close and force promises |
|
|
628
|
+
| `ManagedResourceConformanceFixture` | _type_ | tested resource plus required bounded disposal callback |
|
|
629
|
+
| `ManagedResourceConformanceError` | class | `MANAGED_RESOURCE_CONFORMANCE_FAILED` diagnostic carrying scenario, expected phase subsequence and observed trace |
|
|
630
|
+
| `HandlerTestClientDefaults` | _type_ | ordinary bare-client defaults with handler-owned `baseUrl` and `fetch` removed |
|
|
631
|
+
| `HandlerTestClientConfig` | _type_ | handler, contract, path prefix, scoped config and client request defaults |
|
|
632
|
+
| `HandlerTestClientsConfig` | _type_ | batch helper configuration |
|
|
633
|
+
| `HandlerTestTransportConfig` | _type_ | shared in-process handler, origin, prefix, client defaults and optional server handle |
|
|
634
|
+
| `buildSurfaceManifest` | function | deterministic manifest v2 with HTTP topology, transport-specific tool projections, named MCP surfaces and realtime schema digests |
|
|
635
|
+
| `assertSurfaceManifestSnapshot` | function | bounded deterministic manifest drift assertion |
|
|
636
|
+
| `assertSurfaceDiscovery` | function | compare real OpenAPI/tool/realtime caller-observed discovery to the exact manifest projection |
|
|
637
|
+
| `runSurfaceProbes` | function | execute explicit transport drivers under one per-scenario setup/invoke/teardown deadline |
|
|
638
|
+
| `defineRealtimeProbe` | function | declare one canonical realtime scenario for a caller-supplied real transport driver |
|
|
639
|
+
| `createRealtimeProbeDriver` | function | bind each scenario to a caller-owned transport and normalize actual event/ack/rejection/disconnect outcomes without lifecycle ownership |
|
|
640
|
+
| `TransportObservationSchema` | constant | normalized HTTP/tool/realtime outcome including rejection fields and handler-call evidence |
|
|
641
|
+
| `RealtimeRejectionObservationSchema` | constant | direction/phase/reason/fault observation for a rejected realtime event |
|
|
642
|
+
| `RealtimeDisconnectObservationSchema` | constant | observed before-invoke versus in-flight disconnect phase |
|
|
643
|
+
| `ConformanceTransport` | _type_ | explicit probe transport union |
|
|
644
|
+
| `RunSurfaceProbesConfig` | _type_ | probes, drivers and diagnostic byte cap |
|
|
645
|
+
| `SurfaceDiscoveryObservation` | _type_ | real OpenAPI/tool/CLI/extension discovery values |
|
|
646
|
+
| `SurfaceToolDiscoveryObservation` | _type_ | transport, optional named surface and caller-observed tool names |
|
|
647
|
+
| `SurfaceRealtimeDiscoveryObservation` | _type_ | caller-observed server→client and client→server event names |
|
|
648
|
+
| `SurfaceProbe` / `SurfaceProbeDriver` | _type_ | one bounded scenario and its consumer-supplied runner |
|
|
649
|
+
| `DefineRealtimeProbeConfig` | _type_ | name, canonical scenario, explicit fixture and expected realtime outcome |
|
|
650
|
+
| `CreateRealtimeProbeDriverConfig` | _type_ | per-scenario foreign-transport binder and optional handler-call counter |
|
|
651
|
+
| `RealtimeProbeAdapter` | _type_ | connected-state observation, scenario invocation and subscription-only cleanup |
|
|
652
|
+
| `RealtimeProbeFixture` / `RealtimeProbeScenario` | _type_ | driver input and supported event/ack/local-invalid/peer-refusal/disconnect/timeout scenario vocabulary |
|
|
653
|
+
| `RealtimeRejectionObservation` | _type_ | parsed structured realtime rejection observation |
|
|
654
|
+
| `RealtimeDisconnectObservation` | _type_ | normalized physical timing of a realtime disconnect |
|
|
655
|
+
| `TransportObservation` | _type_ | validated normalized driver result |
|
|
656
|
+
| `SurfaceManifest` / `SurfaceManifestConfig` | _type_ | deterministic surface snapshot and its inputs |
|
|
657
|
+
| `SurfaceManifestOperation` / `SurfaceManifestOperationSchema` | _type_ / schema | one contract or runtime operation row |
|
|
658
|
+
| `SurfaceManifestOperationMcp` / `SurfaceManifestOperationMcpSchema` | _type_ / schema | the rounds an operation declares before it runs: a fixed list, `'resolved-per-call'`, or `null` for no MCP policy |
|
|
659
|
+
| `SurfaceManifestOperationToolView` / `SurfaceManifestOperationToolViewSchema` | _type_ / schema | an operation's declared tool view — digests of its defaults and output, and whether it projects; present only where a view is declared |
|
|
660
|
+
| `SURFACE_MANIFEST_VERSION` | const | the format version this build writes; a committed snapshot on an older one is refused by name |
|
|
661
|
+
| `SurfaceManifestTool` / `SurfaceManifestToolSchema` | _type_ / schema | one mounted tool row with advertised input digest |
|
|
662
|
+
| `SurfaceManifestToolSurface` / `SurfaceManifestToolSurfaceSchema` | _type_ / schema | one static transport projection, optionally keyed for a finite MCP surface |
|
|
663
|
+
| `SurfaceManifestRealtimeEvent` / `SurfaceManifestRealtimeEventSchema` | _type_ / schema | one named directional realtime event with input/output args and ack digests |
|
|
664
|
+
| `SurfaceManifestExtension` / `SurfaceManifestExtensionSchema` | _type_ / schema | declared transport extension row |
|
|
665
|
+
| `SurfaceManifestSchema` | schema | complete deterministic manifest schema |
|
|
666
|
+
| `SurfaceToolDefinition` | _type_ | plain service/runtime selection used by CLI and finite named MCP surfaces |
|
|
667
|
+
| `SurfaceAgentProjection` | _type_ | Agent selection plus its reachable extend/flatten presentation policy |
|
|
668
|
+
| `SurfaceMcpPreparation` | _type_ | one global MCP extend/flatten/schema-validation/multi-round preparation policy |
|
|
669
|
+
| `SurfaceRuntimeToolDefinition` | _type_ | peer-free non-executable runtime-operation descriptor for manifest projection |
|
|
670
|
+
| `SurfaceToolExtension` | _type_ | canonical structural tool extension including schema, resolver and optional filter |
|
|
671
|
+
| `McpSchemaValidationConfig` / `IncompatibleSchemaPolicy` | _type_ | canonical MCP schema-preparation policy used by real mounts and manifests |
|
|
672
|
+
| `SurfaceRealtimeSchemaPairSchema` | schema | input/output digest pair for args or acknowledgements |
|
|
673
|
+
| `SurfaceSchemaDigestsSchema` | schema | params/input/output/multipart digest object |
|
|
674
|
+
| `serializeSurfaceValue` | function | canonical versioned serialization used for deterministic digests |
|
|
675
|
+
|
|
676
|
+
---
|