@animalabs/agent-framework 0.22.2 → 0.23.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/README.md +108 -4
- package/dist/src/agent.d.ts +108 -17
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +207 -67
- package/dist/src/agent.js.map +1 -1
- package/dist/src/api/mcp-server-core.js +1 -1
- package/dist/src/api/mcp-server-core.js.map +1 -1
- package/dist/src/api/server.d.ts.map +1 -1
- package/dist/src/api/server.js +5 -1
- package/dist/src/api/server.js.map +1 -1
- package/dist/src/api/types.d.ts +1 -1
- package/dist/src/api/types.d.ts.map +1 -1
- package/dist/src/branch-names.d.ts +14 -0
- package/dist/src/branch-names.d.ts.map +1 -0
- package/dist/src/branch-names.js +22 -0
- package/dist/src/branch-names.js.map +1 -0
- package/dist/src/closest-names.d.ts +28 -0
- package/dist/src/closest-names.d.ts.map +1 -0
- package/dist/src/closest-names.js +98 -0
- package/dist/src/closest-names.js.map +1 -0
- package/dist/src/code-execution/index.d.ts +1 -1
- package/dist/src/code-execution/index.d.ts.map +1 -1
- package/dist/src/code-execution/index.js.map +1 -1
- package/dist/src/code-execution/py-runner.d.ts +50 -7
- package/dist/src/code-execution/py-runner.d.ts.map +1 -1
- package/dist/src/code-execution/py-runner.js +258 -90
- package/dist/src/code-execution/py-runner.js.map +1 -1
- package/dist/src/code-execution/runtime-py.d.ts +3 -2
- package/dist/src/code-execution/runtime-py.d.ts.map +1 -1
- package/dist/src/code-execution/runtime-py.js +94 -8
- package/dist/src/code-execution/runtime-py.js.map +1 -1
- package/dist/src/code-execution/tool-definition.d.ts +17 -1
- package/dist/src/code-execution/tool-definition.d.ts.map +1 -1
- package/dist/src/code-execution/tool-definition.js +72 -6
- package/dist/src/code-execution/tool-definition.js.map +1 -1
- package/dist/src/config-checks.d.ts +28 -0
- package/dist/src/config-checks.d.ts.map +1 -0
- package/dist/src/config-checks.js +56 -0
- package/dist/src/config-checks.js.map +1 -0
- package/dist/src/deadline-timer.d.ts +21 -0
- package/dist/src/deadline-timer.d.ts.map +1 -0
- package/dist/src/deadline-timer.js +43 -0
- package/dist/src/deadline-timer.js.map +1 -0
- package/dist/src/error-message.d.ts +30 -0
- package/dist/src/error-message.d.ts.map +1 -0
- package/dist/src/error-message.js +50 -0
- package/dist/src/error-message.js.map +1 -0
- package/dist/src/framework.d.ts +1529 -165
- package/dist/src/framework.d.ts.map +1 -1
- package/dist/src/framework.js +8264 -1939
- package/dist/src/framework.js.map +1 -1
- package/dist/src/gate/event-gate.d.ts +8 -0
- package/dist/src/gate/event-gate.d.ts.map +1 -1
- package/dist/src/gate/event-gate.js +36 -5
- package/dist/src/gate/event-gate.js.map +1 -1
- package/dist/src/held-writes.d.ts +16 -0
- package/dist/src/held-writes.d.ts.map +1 -0
- package/dist/src/held-writes.js +56 -0
- package/dist/src/held-writes.js.map +1 -0
- package/dist/src/index.d.ts +10 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +11 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcpl/capability-grant.d.ts +4 -0
- package/dist/src/mcpl/capability-grant.d.ts.map +1 -1
- package/dist/src/mcpl/capability-grant.js +1 -1
- package/dist/src/mcpl/capability-grant.js.map +1 -1
- package/dist/src/mcpl/channel-registry.d.ts +233 -18
- package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
- package/dist/src/mcpl/channel-registry.js +975 -386
- package/dist/src/mcpl/channel-registry.js.map +1 -1
- package/dist/src/mcpl/checkpoint-manager.d.ts +21 -1
- package/dist/src/mcpl/checkpoint-manager.d.ts.map +1 -1
- package/dist/src/mcpl/checkpoint-manager.js +91 -30
- package/dist/src/mcpl/checkpoint-manager.js.map +1 -1
- package/dist/src/mcpl/conversation-router.d.ts +19 -3
- package/dist/src/mcpl/conversation-router.d.ts.map +1 -1
- package/dist/src/mcpl/conversation-router.js +23 -8
- package/dist/src/mcpl/conversation-router.js.map +1 -1
- package/dist/src/mcpl/convert-block.d.ts +20 -0
- package/dist/src/mcpl/convert-block.d.ts.map +1 -0
- package/dist/src/mcpl/convert-block.js +88 -0
- package/dist/src/mcpl/convert-block.js.map +1 -0
- package/dist/src/mcpl/errors.d.ts +13 -0
- package/dist/src/mcpl/errors.d.ts.map +1 -1
- package/dist/src/mcpl/errors.js +28 -0
- package/dist/src/mcpl/errors.js.map +1 -1
- package/dist/src/mcpl/hook-orchestrator.d.ts +23 -0
- package/dist/src/mcpl/hook-orchestrator.d.ts.map +1 -1
- package/dist/src/mcpl/hook-orchestrator.js +83 -72
- package/dist/src/mcpl/hook-orchestrator.js.map +1 -1
- package/dist/src/mcpl/inbound-source.d.ts +114 -0
- package/dist/src/mcpl/inbound-source.d.ts.map +1 -0
- package/dist/src/mcpl/inbound-source.js +83 -0
- package/dist/src/mcpl/inbound-source.js.map +1 -0
- package/dist/src/mcpl/index.d.ts +7 -1
- package/dist/src/mcpl/index.d.ts.map +1 -1
- package/dist/src/mcpl/index.js +5 -1
- package/dist/src/mcpl/index.js.map +1 -1
- package/dist/src/mcpl/inference-router.d.ts +19 -13
- package/dist/src/mcpl/inference-router.d.ts.map +1 -1
- package/dist/src/mcpl/inference-router.js +155 -87
- package/dist/src/mcpl/inference-router.js.map +1 -1
- package/dist/src/mcpl/log-value.d.ts +7 -0
- package/dist/src/mcpl/log-value.d.ts.map +1 -1
- package/dist/src/mcpl/log-value.js +9 -0
- package/dist/src/mcpl/log-value.js.map +1 -1
- package/dist/src/mcpl/modern-connection.d.ts +227 -0
- package/dist/src/mcpl/modern-connection.d.ts.map +1 -0
- package/dist/src/mcpl/modern-connection.js +1088 -0
- package/dist/src/mcpl/modern-connection.js.map +1 -0
- package/dist/src/mcpl/prefix-rule.d.ts +18 -0
- package/dist/src/mcpl/prefix-rule.d.ts.map +1 -0
- package/dist/src/mcpl/prefix-rule.js +25 -0
- package/dist/src/mcpl/prefix-rule.js.map +1 -0
- package/dist/src/mcpl/protocol-family.d.ts +179 -0
- package/dist/src/mcpl/protocol-family.d.ts.map +1 -0
- package/dist/src/mcpl/protocol-family.js +697 -0
- package/dist/src/mcpl/protocol-family.js.map +1 -0
- package/dist/src/mcpl/push-coalescer.d.ts +58 -17
- package/dist/src/mcpl/push-coalescer.d.ts.map +1 -1
- package/dist/src/mcpl/push-coalescer.js +93 -32
- package/dist/src/mcpl/push-coalescer.js.map +1 -1
- package/dist/src/mcpl/push-handler.d.ts +16 -9
- package/dist/src/mcpl/push-handler.d.ts.map +1 -1
- package/dist/src/mcpl/push-handler.js +18 -83
- package/dist/src/mcpl/push-handler.js.map +1 -1
- package/dist/src/mcpl/reference-fetcher.d.ts +76 -13
- package/dist/src/mcpl/reference-fetcher.d.ts.map +1 -1
- package/dist/src/mcpl/reference-fetcher.js +275 -66
- package/dist/src/mcpl/reference-fetcher.js.map +1 -1
- package/dist/src/mcpl/references.d.ts +98 -18
- package/dist/src/mcpl/references.d.ts.map +1 -1
- package/dist/src/mcpl/references.js +170 -32
- package/dist/src/mcpl/references.js.map +1 -1
- package/dist/src/mcpl/server-connection.d.ts +406 -31
- package/dist/src/mcpl/server-connection.d.ts.map +1 -1
- package/dist/src/mcpl/server-connection.js +1331 -272
- package/dist/src/mcpl/server-connection.js.map +1 -1
- package/dist/src/mcpl/server-registry.d.ts +35 -6
- package/dist/src/mcpl/server-registry.d.ts.map +1 -1
- package/dist/src/mcpl/server-registry.js +63 -13
- package/dist/src/mcpl/server-registry.js.map +1 -1
- package/dist/src/mcpl/skip-reply-wake.d.ts +36 -0
- package/dist/src/mcpl/skip-reply-wake.d.ts.map +1 -0
- package/dist/src/mcpl/skip-reply-wake.js +55 -0
- package/dist/src/mcpl/skip-reply-wake.js.map +1 -0
- package/dist/src/mcpl/tool-result-normalize.d.ts +54 -0
- package/dist/src/mcpl/tool-result-normalize.d.ts.map +1 -0
- package/dist/src/mcpl/tool-result-normalize.js +232 -0
- package/dist/src/mcpl/tool-result-normalize.js.map +1 -0
- package/dist/src/mcpl/transport.d.ts +104 -12
- package/dist/src/mcpl/transport.d.ts.map +1 -1
- package/dist/src/mcpl/transport.js +315 -85
- package/dist/src/mcpl/transport.js.map +1 -1
- package/dist/src/mcpl/types.d.ts +76 -19
- package/dist/src/mcpl/types.d.ts.map +1 -1
- package/dist/src/mcpl/types.js.map +1 -1
- package/dist/src/mcpl/visible-content.d.ts +16 -0
- package/dist/src/mcpl/visible-content.d.ts.map +1 -1
- package/dist/src/mcpl/visible-content.js +26 -0
- package/dist/src/mcpl/visible-content.js.map +1 -1
- package/dist/src/module-registry.d.ts +34 -6
- package/dist/src/module-registry.d.ts.map +1 -1
- package/dist/src/module-registry.js +119 -31
- package/dist/src/module-registry.js.map +1 -1
- package/dist/src/modules/api/index.d.ts +1 -1
- package/dist/src/modules/api/index.d.ts.map +1 -1
- package/dist/src/modules/api/index.js +3 -2
- package/dist/src/modules/api/index.js.map +1 -1
- package/dist/src/modules/discord/discord-js-client.d.ts +43 -2
- package/dist/src/modules/discord/discord-js-client.d.ts.map +1 -1
- package/dist/src/modules/discord/discord-js-client.js +286 -67
- package/dist/src/modules/discord/discord-js-client.js.map +1 -1
- package/dist/src/modules/discord/index.d.ts +53 -5
- package/dist/src/modules/discord/index.d.ts.map +1 -1
- package/dist/src/modules/discord/index.js +712 -186
- package/dist/src/modules/discord/index.js.map +1 -1
- package/dist/src/modules/discord/refusal.d.ts +14 -0
- package/dist/src/modules/discord/refusal.d.ts.map +1 -0
- package/dist/src/modules/discord/refusal.js +14 -0
- package/dist/src/modules/discord/refusal.js.map +1 -0
- package/dist/src/modules/discord/types.d.ts +27 -4
- package/dist/src/modules/discord/types.d.ts.map +1 -1
- package/dist/src/modules/health/index.d.ts.map +1 -1
- package/dist/src/modules/health/index.js +8 -3
- package/dist/src/modules/health/index.js.map +1 -1
- package/dist/src/modules/history/index.d.ts +3 -1
- package/dist/src/modules/history/index.d.ts.map +1 -1
- package/dist/src/modules/history/index.js +359 -127
- package/dist/src/modules/history/index.js.map +1 -1
- package/dist/src/modules/history/semantic.d.ts +28 -1
- package/dist/src/modules/history/semantic.d.ts.map +1 -1
- package/dist/src/modules/history/semantic.js +177 -32
- package/dist/src/modules/history/semantic.js.map +1 -1
- package/dist/src/modules/index.d.ts +1 -1
- package/dist/src/modules/index.d.ts.map +1 -1
- package/dist/src/modules/index.js +1 -1
- package/dist/src/modules/index.js.map +1 -1
- package/dist/src/modules/unknown-tool.d.ts +10 -0
- package/dist/src/modules/unknown-tool.d.ts.map +1 -0
- package/dist/src/modules/unknown-tool.js +17 -0
- package/dist/src/modules/unknown-tool.js.map +1 -0
- package/dist/src/modules/workspace/disk-agreement.d.ts +57 -4
- package/dist/src/modules/workspace/disk-agreement.d.ts.map +1 -1
- package/dist/src/modules/workspace/disk-agreement.js +75 -7
- package/dist/src/modules/workspace/disk-agreement.js.map +1 -1
- package/dist/src/modules/workspace/effects.d.ts +66 -7
- package/dist/src/modules/workspace/effects.d.ts.map +1 -1
- package/dist/src/modules/workspace/effects.js +303 -46
- package/dist/src/modules/workspace/effects.js.map +1 -1
- package/dist/src/modules/workspace/index.d.ts +313 -45
- package/dist/src/modules/workspace/index.d.ts.map +1 -1
- package/dist/src/modules/workspace/index.js +1404 -304
- package/dist/src/modules/workspace/index.js.map +1 -1
- package/dist/src/modules/workspace/observe.d.ts +315 -16
- package/dist/src/modules/workspace/observe.d.ts.map +1 -1
- package/dist/src/modules/workspace/observe.js +727 -37
- package/dist/src/modules/workspace/observe.js.map +1 -1
- package/dist/src/modules/workspace/reconcile.d.ts +58 -7
- package/dist/src/modules/workspace/reconcile.d.ts.map +1 -1
- package/dist/src/modules/workspace/reconcile.js +521 -56
- package/dist/src/modules/workspace/reconcile.js.map +1 -1
- package/dist/src/modules/workspace/types.d.ts +28 -5
- package/dist/src/modules/workspace/types.d.ts.map +1 -1
- package/dist/src/modules/workspace/types.js.map +1 -1
- package/dist/src/modules/workspace/watcher.d.ts +49 -2
- package/dist/src/modules/workspace/watcher.d.ts.map +1 -1
- package/dist/src/modules/workspace/watcher.js +158 -29
- package/dist/src/modules/workspace/watcher.js.map +1 -1
- package/dist/src/prose-drafts.d.ts +240 -0
- package/dist/src/prose-drafts.d.ts.map +1 -0
- package/dist/src/prose-drafts.js +362 -0
- package/dist/src/prose-drafts.js.map +1 -0
- package/dist/src/prose-segments.d.ts +21 -2
- package/dist/src/prose-segments.d.ts.map +1 -1
- package/dist/src/prose-segments.js +46 -9
- package/dist/src/prose-segments.js.map +1 -1
- package/dist/src/recovery/offline-branch.d.ts +1 -0
- package/dist/src/recovery/offline-branch.d.ts.map +1 -1
- package/dist/src/recovery/offline-branch.js +3 -1
- package/dist/src/recovery/offline-branch.js.map +1 -1
- package/dist/src/safe-slice.d.ts +5 -1
- package/dist/src/safe-slice.d.ts.map +1 -1
- package/dist/src/safe-slice.js +9 -1
- package/dist/src/safe-slice.js.map +1 -1
- package/dist/src/silent-heartbeat.d.ts +112 -39
- package/dist/src/silent-heartbeat.d.ts.map +1 -1
- package/dist/src/silent-heartbeat.js +100 -29
- package/dist/src/silent-heartbeat.js.map +1 -1
- package/dist/src/tool-args.d.ts +40 -0
- package/dist/src/tool-args.d.ts.map +1 -0
- package/dist/src/tool-args.js +207 -0
- package/dist/src/tool-args.js.map +1 -0
- package/dist/src/tool-image-ledger.d.ts +87 -19
- package/dist/src/tool-image-ledger.d.ts.map +1 -1
- package/dist/src/tool-image-ledger.js +135 -32
- package/dist/src/tool-image-ledger.js.map +1 -1
- package/dist/src/tool-presentation.d.ts +9 -0
- package/dist/src/tool-presentation.d.ts.map +1 -1
- package/dist/src/tool-presentation.js +266 -62
- package/dist/src/tool-presentation.js.map +1 -1
- package/dist/src/tool-result-guard.d.ts.map +1 -1
- package/dist/src/tool-result-guard.js +7 -10
- package/dist/src/tool-result-guard.js.map +1 -1
- package/dist/src/tool-result-history.d.ts +32 -3
- package/dist/src/tool-result-history.d.ts.map +1 -1
- package/dist/src/tool-result-history.js +106 -19
- package/dist/src/tool-result-history.js.map +1 -1
- package/dist/src/tune-out/coordinator.d.ts +25 -1
- package/dist/src/tune-out/coordinator.d.ts.map +1 -1
- package/dist/src/tune-out/coordinator.js +260 -65
- package/dist/src/tune-out/coordinator.js.map +1 -1
- package/dist/src/types/agent.d.ts +44 -22
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/events.d.ts +25 -0
- package/dist/src/types/events.d.ts.map +1 -1
- package/dist/src/types/framework.d.ts +38 -7
- package/dist/src/types/framework.d.ts.map +1 -1
- package/dist/src/types/inference-log.d.ts +1 -1
- package/dist/src/types/inference-log.d.ts.map +1 -1
- package/dist/src/types/module.d.ts +77 -14
- package/dist/src/types/module.d.ts.map +1 -1
- package/dist/src/types/trace.d.ts +97 -8
- package/dist/src/types/trace.d.ts.map +1 -1
- package/dist/src/usage/usage-tracker.d.ts +5 -0
- package/dist/src/usage/usage-tracker.d.ts.map +1 -1
- package/dist/src/usage/usage-tracker.js +35 -8
- package/dist/src/usage/usage-tracker.js.map +1 -1
- package/package.json +5 -4
- package/src/agent.ts +257 -72
- package/src/api/mcp-server-core.ts +1 -1
- package/src/api/server.ts +4 -1
- package/src/api/types.ts +1 -1
- package/src/branch-names.ts +19 -0
- package/src/closest-names.ts +94 -0
- package/src/code-execution/index.ts +1 -0
- package/src/code-execution/py-runner.ts +304 -93
- package/src/code-execution/runtime-py.ts +94 -8
- package/src/code-execution/tool-definition.ts +85 -7
- package/src/config-checks.ts +50 -0
- package/src/deadline-timer.ts +44 -0
- package/src/error-message.ts +48 -0
- package/src/framework.ts +8625 -1984
- package/src/gate/event-gate.ts +38 -5
- package/src/held-writes.ts +59 -0
- package/src/index.ts +29 -5
- package/src/mcpl/capability-grant.ts +1 -1
- package/src/mcpl/channel-registry.ts +1095 -411
- package/src/mcpl/checkpoint-manager.ts +104 -29
- package/src/mcpl/conversation-router.ts +28 -8
- package/src/mcpl/convert-block.ts +105 -0
- package/src/mcpl/errors.ts +28 -0
- package/src/mcpl/hook-orchestrator.ts +84 -77
- package/src/mcpl/inbound-source.ts +156 -0
- package/src/mcpl/index.ts +23 -1
- package/src/mcpl/inference-router.ts +179 -103
- package/src/mcpl/log-value.ts +10 -0
- package/src/mcpl/modern-connection.ts +1182 -0
- package/src/mcpl/prefix-rule.ts +32 -0
- package/src/mcpl/protocol-family.ts +691 -0
- package/src/mcpl/push-coalescer.ts +110 -36
- package/src/mcpl/push-handler.ts +20 -90
- package/src/mcpl/reference-fetcher.ts +318 -67
- package/src/mcpl/references.ts +183 -34
- package/src/mcpl/server-connection.ts +1404 -280
- package/src/mcpl/server-registry.ts +63 -14
- package/src/mcpl/skip-reply-wake.ts +73 -0
- package/src/mcpl/tool-result-normalize.ts +294 -0
- package/src/mcpl/transport.ts +320 -76
- package/src/mcpl/types.ts +77 -19
- package/src/mcpl/visible-content.ts +28 -0
- package/src/module-registry.ts +126 -36
- package/src/modules/api/index.ts +3 -2
- package/src/modules/discord/discord-js-client.ts +306 -74
- package/src/modules/discord/index.ts +737 -201
- package/src/modules/discord/refusal.ts +13 -0
- package/src/modules/discord/types.ts +27 -6
- package/src/modules/health/index.ts +8 -3
- package/src/modules/history/index.ts +410 -120
- package/src/modules/history/semantic.ts +189 -32
- package/src/modules/index.ts +1 -1
- package/src/modules/unknown-tool.ts +16 -0
- package/src/modules/workspace/disk-agreement.ts +97 -8
- package/src/modules/workspace/effects.ts +291 -36
- package/src/modules/workspace/index.ts +1469 -321
- package/src/modules/workspace/observe.ts +784 -41
- package/src/modules/workspace/reconcile.ts +619 -64
- package/src/modules/workspace/types.ts +28 -5
- package/src/modules/workspace/watcher.ts +154 -30
- package/src/prose-drafts.ts +481 -0
- package/src/prose-segments.ts +51 -8
- package/src/recovery/offline-branch.ts +4 -1
- package/src/safe-slice.ts +9 -1
- package/src/silent-heartbeat.ts +184 -59
- package/src/tool-args.ts +213 -0
- package/src/tool-image-ledger.ts +153 -34
- package/src/tool-presentation.ts +233 -42
- package/src/tool-result-guard.ts +7 -8
- package/src/tool-result-history.ts +124 -20
- package/src/tune-out/coordinator.ts +259 -65
- package/src/types/agent.ts +44 -24
- package/src/types/events.ts +25 -0
- package/src/types/framework.ts +38 -7
- package/src/types/inference-log.ts +1 -1
- package/src/types/module.ts +79 -14
- package/src/types/trace.ts +103 -8
- package/src/usage/usage-tracker.ts +32 -8
- package/dist/test/activation-request-sanitize.test.d.ts +0 -2
- package/dist/test/activation-request-sanitize.test.d.ts.map +0 -1
- package/dist/test/activation-request-sanitize.test.js +0 -89
- package/dist/test/activation-request-sanitize.test.js.map +0 -1
- package/dist/test/agent-cache-ttl.test.d.ts +0 -2
- package/dist/test/agent-cache-ttl.test.d.ts.map +0 -1
- package/dist/test/agent-cache-ttl.test.js +0 -41
- package/dist/test/agent-cache-ttl.test.js.map +0 -1
- package/dist/test/agent-runtime-settings.test.d.ts +0 -2
- package/dist/test/agent-runtime-settings.test.d.ts.map +0 -1
- package/dist/test/agent-runtime-settings.test.js +0 -1598
- package/dist/test/agent-runtime-settings.test.js.map +0 -1
- package/dist/test/api-admin-gate.test.d.ts +0 -2
- package/dist/test/api-admin-gate.test.d.ts.map +0 -1
- package/dist/test/api-admin-gate.test.js +0 -116
- package/dist/test/api-admin-gate.test.js.map +0 -1
- package/dist/test/assistant-persist-refusal.test.d.ts +0 -2
- package/dist/test/assistant-persist-refusal.test.d.ts.map +0 -1
- package/dist/test/assistant-persist-refusal.test.js +0 -63
- package/dist/test/assistant-persist-refusal.test.js.map +0 -1
- package/dist/test/batched-wake-locus.test.d.ts +0 -2
- package/dist/test/batched-wake-locus.test.d.ts.map +0 -1
- package/dist/test/batched-wake-locus.test.js +0 -166
- package/dist/test/batched-wake-locus.test.js.map +0 -1
- package/dist/test/busy-agent-scheduler.test.d.ts +0 -2
- package/dist/test/busy-agent-scheduler.test.d.ts.map +0 -1
- package/dist/test/busy-agent-scheduler.test.js +0 -92
- package/dist/test/busy-agent-scheduler.test.js.map +0 -1
- package/dist/test/channel-incoming-targeting.test.d.ts +0 -2
- package/dist/test/channel-incoming-targeting.test.d.ts.map +0 -1
- package/dist/test/channel-incoming-targeting.test.js +0 -81
- package/dist/test/channel-incoming-targeting.test.js.map +0 -1
- package/dist/test/channel-label-history.test.d.ts +0 -2
- package/dist/test/channel-label-history.test.d.ts.map +0 -1
- package/dist/test/channel-label-history.test.js +0 -424
- package/dist/test/channel-label-history.test.js.map +0 -1
- package/dist/test/channel-lifecycle-provenance.test.d.ts +0 -2
- package/dist/test/channel-lifecycle-provenance.test.d.ts.map +0 -1
- package/dist/test/channel-lifecycle-provenance.test.js +0 -47
- package/dist/test/channel-lifecycle-provenance.test.js.map +0 -1
- package/dist/test/channel-registry-routing.test.d.ts +0 -2
- package/dist/test/channel-registry-routing.test.d.ts.map +0 -1
- package/dist/test/channel-registry-routing.test.js +0 -446
- package/dist/test/channel-registry-routing.test.js.map +0 -1
- package/dist/test/channel-registry-typing.test.d.ts +0 -2
- package/dist/test/channel-registry-typing.test.d.ts.map +0 -1
- package/dist/test/channel-registry-typing.test.js +0 -91
- package/dist/test/channel-registry-typing.test.js.map +0 -1
- package/dist/test/channels-changed-respond-first.test.d.ts +0 -2
- package/dist/test/channels-changed-respond-first.test.d.ts.map +0 -1
- package/dist/test/channels-changed-respond-first.test.js +0 -74
- package/dist/test/channels-changed-respond-first.test.js.map +0 -1
- package/dist/test/checkpoint-attribution.test.d.ts +0 -2
- package/dist/test/checkpoint-attribution.test.d.ts.map +0 -1
- package/dist/test/checkpoint-attribution.test.js +0 -200
- package/dist/test/checkpoint-attribution.test.js.map +0 -1
- package/dist/test/code-execution.test.d.ts +0 -11
- package/dist/test/code-execution.test.d.ts.map +0 -1
- package/dist/test/code-execution.test.js +0 -1272
- package/dist/test/code-execution.test.js.map +0 -1
- package/dist/test/component-defaults.test.d.ts +0 -2
- package/dist/test/component-defaults.test.d.ts.map +0 -1
- package/dist/test/component-defaults.test.js +0 -54
- package/dist/test/component-defaults.test.js.map +0 -1
- package/dist/test/conversation-fork-injection-scoping.test.d.ts +0 -2
- package/dist/test/conversation-fork-injection-scoping.test.d.ts.map +0 -1
- package/dist/test/conversation-fork-injection-scoping.test.js +0 -200
- package/dist/test/conversation-fork-injection-scoping.test.js.map +0 -1
- package/dist/test/conversation-router.test.d.ts +0 -2
- package/dist/test/conversation-router.test.d.ts.map +0 -1
- package/dist/test/conversation-router.test.js +0 -174
- package/dist/test/conversation-router.test.js.map +0 -1
- package/dist/test/conversation-routing.test.d.ts +0 -7
- package/dist/test/conversation-routing.test.d.ts.map +0 -1
- package/dist/test/conversation-routing.test.js +0 -621
- package/dist/test/conversation-routing.test.js.map +0 -1
- package/dist/test/deferred-wake-integrity.test.d.ts +0 -29
- package/dist/test/deferred-wake-integrity.test.d.ts.map +0 -1
- package/dist/test/deferred-wake-integrity.test.js +0 -320
- package/dist/test/deferred-wake-integrity.test.js.map +0 -1
- package/dist/test/discord-awareness-outbox.test.d.ts +0 -2
- package/dist/test/discord-awareness-outbox.test.d.ts.map +0 -1
- package/dist/test/discord-awareness-outbox.test.js +0 -371
- package/dist/test/discord-awareness-outbox.test.js.map +0 -1
- package/dist/test/discord-history-delete-window.test.d.ts +0 -2
- package/dist/test/discord-history-delete-window.test.d.ts.map +0 -1
- package/dist/test/discord-history-delete-window.test.js +0 -81
- package/dist/test/discord-history-delete-window.test.js.map +0 -1
- package/dist/test/discord-history-sync.test.d.ts +0 -2
- package/dist/test/discord-history-sync.test.d.ts.map +0 -1
- package/dist/test/discord-history-sync.test.js +0 -56
- package/dist/test/discord-history-sync.test.js.map +0 -1
- package/dist/test/discord-typing-keepalive.test.d.ts +0 -2
- package/dist/test/discord-typing-keepalive.test.d.ts.map +0 -1
- package/dist/test/discord-typing-keepalive.test.js +0 -77
- package/dist/test/discord-typing-keepalive.test.js.map +0 -1
- package/dist/test/ephemeral-settle.test.d.ts +0 -2
- package/dist/test/ephemeral-settle.test.d.ts.map +0 -1
- package/dist/test/ephemeral-settle.test.js +0 -354
- package/dist/test/ephemeral-settle.test.js.map +0 -1
- package/dist/test/event-gate-passthrough.test.d.ts +0 -15
- package/dist/test/event-gate-passthrough.test.d.ts.map +0 -1
- package/dist/test/event-gate-passthrough.test.js +0 -289
- package/dist/test/event-gate-passthrough.test.js.map +0 -1
- package/dist/test/event-gate-policy-mutation.test.d.ts +0 -2
- package/dist/test/event-gate-policy-mutation.test.d.ts.map +0 -1
- package/dist/test/event-gate-policy-mutation.test.js +0 -137
- package/dist/test/event-gate-policy-mutation.test.js.map +0 -1
- package/dist/test/event-gate-rate-limit.test.d.ts +0 -2
- package/dist/test/event-gate-rate-limit.test.d.ts.map +0 -1
- package/dist/test/event-gate-rate-limit.test.js +0 -627
- package/dist/test/event-gate-rate-limit.test.js.map +0 -1
- package/dist/test/event-gate-script.test.d.ts +0 -2
- package/dist/test/event-gate-script.test.d.ts.map +0 -1
- package/dist/test/event-gate-script.test.js +0 -95
- package/dist/test/event-gate-script.test.js.map +0 -1
- package/dist/test/event-gate-selfwake.test.d.ts +0 -15
- package/dist/test/event-gate-selfwake.test.d.ts.map +0 -1
- package/dist/test/event-gate-selfwake.test.js +0 -125
- package/dist/test/event-gate-selfwake.test.js.map +0 -1
- package/dist/test/event-gate-tags.test.d.ts +0 -2
- package/dist/test/event-gate-tags.test.d.ts.map +0 -1
- package/dist/test/event-gate-tags.test.js +0 -76
- package/dist/test/event-gate-tags.test.js.map +0 -1
- package/dist/test/event-gate.test.d.ts +0 -2
- package/dist/test/event-gate.test.d.ts.map +0 -1
- package/dist/test/event-gate.test.js +0 -919
- package/dist/test/event-gate.test.js.map +0 -1
- package/dist/test/explicit-prose-routing.test.d.ts +0 -11
- package/dist/test/explicit-prose-routing.test.d.ts.map +0 -1
- package/dist/test/explicit-prose-routing.test.js +0 -1715
- package/dist/test/explicit-prose-routing.test.js.map +0 -1
- package/dist/test/framework.test.d.ts +0 -5
- package/dist/test/framework.test.d.ts.map +0 -1
- package/dist/test/framework.test.js +0 -1048
- package/dist/test/framework.test.js.map +0 -1
- package/dist/test/gather-context-timeout.test.d.ts +0 -2
- package/dist/test/gather-context-timeout.test.d.ts.map +0 -1
- package/dist/test/gather-context-timeout.test.js +0 -120
- package/dist/test/gather-context-timeout.test.js.map +0 -1
- package/dist/test/health-snapshot.test.d.ts +0 -2
- package/dist/test/health-snapshot.test.d.ts.map +0 -1
- package/dist/test/health-snapshot.test.js +0 -74
- package/dist/test/health-snapshot.test.js.map +0 -1
- package/dist/test/helpers/coalescing-fixture.d.ts +0 -74
- package/dist/test/helpers/coalescing-fixture.d.ts.map +0 -1
- package/dist/test/helpers/coalescing-fixture.js +0 -152
- package/dist/test/helpers/coalescing-fixture.js.map +0 -1
- package/dist/test/helpers/coalescing-kill-child.d.ts +0 -2
- package/dist/test/helpers/coalescing-kill-child.d.ts.map +0 -1
- package/dist/test/helpers/coalescing-kill-child.js +0 -24
- package/dist/test/helpers/coalescing-kill-child.js.map +0 -1
- package/dist/test/helpers/mock-membrane.d.ts +0 -53
- package/dist/test/helpers/mock-membrane.d.ts.map +0 -1
- package/dist/test/helpers/mock-membrane.js +0 -168
- package/dist/test/helpers/mock-membrane.js.map +0 -1
- package/dist/test/helpers/pytc-stop-rows.d.ts +0 -11
- package/dist/test/helpers/pytc-stop-rows.d.ts.map +0 -1
- package/dist/test/helpers/pytc-stop-rows.js +0 -143
- package/dist/test/helpers/pytc-stop-rows.js.map +0 -1
- package/dist/test/helpers/quiesce-crash-child.d.ts +0 -2
- package/dist/test/helpers/quiesce-crash-child.d.ts.map +0 -1
- package/dist/test/helpers/quiesce-crash-child.js +0 -156
- package/dist/test/helpers/quiesce-crash-child.js.map +0 -1
- package/dist/test/hide-then-turn.test.d.ts +0 -2
- package/dist/test/hide-then-turn.test.d.ts.map +0 -1
- package/dist/test/hide-then-turn.test.js +0 -101
- package/dist/test/hide-then-turn.test.js.map +0 -1
- package/dist/test/history-module-overview.test.d.ts +0 -2
- package/dist/test/history-module-overview.test.d.ts.map +0 -1
- package/dist/test/history-module-overview.test.js +0 -711
- package/dist/test/history-module-overview.test.js.map +0 -1
- package/dist/test/history-module-realstore.test.d.ts +0 -2
- package/dist/test/history-module-realstore.test.d.ts.map +0 -1
- package/dist/test/history-module-realstore.test.js +0 -363
- package/dist/test/history-module-realstore.test.js.map +0 -1
- package/dist/test/history-module-semantic.test.d.ts +0 -2
- package/dist/test/history-module-semantic.test.d.ts.map +0 -1
- package/dist/test/history-module-semantic.test.js +0 -213
- package/dist/test/history-module-semantic.test.js.map +0 -1
- package/dist/test/history-module-ux.test.d.ts +0 -2
- package/dist/test/history-module-ux.test.d.ts.map +0 -1
- package/dist/test/history-module-ux.test.js +0 -304
- package/dist/test/history-module-ux.test.js.map +0 -1
- package/dist/test/history-module.test.d.ts +0 -2
- package/dist/test/history-module.test.d.ts.map +0 -1
- package/dist/test/history-module.test.js +0 -619
- package/dist/test/history-module.test.js.map +0 -1
- package/dist/test/history-semantic-review-findings.test.d.ts +0 -2
- package/dist/test/history-semantic-review-findings.test.d.ts.map +0 -1
- package/dist/test/history-semantic-review-findings.test.js +0 -338
- package/dist/test/history-semantic-review-findings.test.js.map +0 -1
- package/dist/test/history-semantic-sync-converges.test.d.ts +0 -2
- package/dist/test/history-semantic-sync-converges.test.d.ts.map +0 -1
- package/dist/test/history-semantic-sync-converges.test.js +0 -109
- package/dist/test/history-semantic-sync-converges.test.js.map +0 -1
- package/dist/test/host-quiesce.test.d.ts +0 -2
- package/dist/test/host-quiesce.test.d.ts.map +0 -1
- package/dist/test/host-quiesce.test.js +0 -988
- package/dist/test/host-quiesce.test.js.map +0 -1
- package/dist/test/inference-exhaustion-rewind.test.d.ts +0 -2
- package/dist/test/inference-exhaustion-rewind.test.d.ts.map +0 -1
- package/dist/test/inference-exhaustion-rewind.test.js +0 -387
- package/dist/test/inference-exhaustion-rewind.test.js.map +0 -1
- package/dist/test/inference-failure-bounds.test.d.ts +0 -2
- package/dist/test/inference-failure-bounds.test.d.ts.map +0 -1
- package/dist/test/inference-failure-bounds.test.js +0 -1202
- package/dist/test/inference-failure-bounds.test.js.map +0 -1
- package/dist/test/inference-failure-observability.test.d.ts +0 -2
- package/dist/test/inference-failure-observability.test.d.ts.map +0 -1
- package/dist/test/inference-failure-observability.test.js +0 -84
- package/dist/test/inference-failure-observability.test.js.map +0 -1
- package/dist/test/journal-tool.test.d.ts +0 -2
- package/dist/test/journal-tool.test.d.ts.map +0 -1
- package/dist/test/journal-tool.test.js +0 -33
- package/dist/test/journal-tool.test.js.map +0 -1
- package/dist/test/kv-unified-open-flight-retry.test.d.ts +0 -2
- package/dist/test/kv-unified-open-flight-retry.test.d.ts.map +0 -1
- package/dist/test/kv-unified-open-flight-retry.test.js +0 -189
- package/dist/test/kv-unified-open-flight-retry.test.js.map +0 -1
- package/dist/test/kv-unified-wiring.test.d.ts +0 -2
- package/dist/test/kv-unified-wiring.test.d.ts.map +0 -1
- package/dist/test/kv-unified-wiring.test.js +0 -95
- package/dist/test/kv-unified-wiring.test.js.map +0 -1
- package/dist/test/late-events-after-stop.test.d.ts +0 -2
- package/dist/test/late-events-after-stop.test.d.ts.map +0 -1
- package/dist/test/late-events-after-stop.test.js +0 -122
- package/dist/test/late-events-after-stop.test.js.map +0 -1
- package/dist/test/liveness-watchdog.test.d.ts +0 -2
- package/dist/test/liveness-watchdog.test.d.ts.map +0 -1
- package/dist/test/liveness-watchdog.test.js +0 -94
- package/dist/test/liveness-watchdog.test.js.map +0 -1
- package/dist/test/machine-close-provenance.test.d.ts +0 -2
- package/dist/test/machine-close-provenance.test.d.ts.map +0 -1
- package/dist/test/machine-close-provenance.test.js +0 -116
- package/dist/test/machine-close-provenance.test.js.map +0 -1
- package/dist/test/maintenance-timer.test.d.ts +0 -2
- package/dist/test/maintenance-timer.test.d.ts.map +0 -1
- package/dist/test/maintenance-timer.test.js +0 -1827
- package/dist/test/maintenance-timer.test.js.map +0 -1
- package/dist/test/mcp-server-bin.test.d.ts +0 -2
- package/dist/test/mcp-server-bin.test.d.ts.map +0 -1
- package/dist/test/mcp-server-bin.test.js +0 -142
- package/dist/test/mcp-server-bin.test.js.map +0 -1
- package/dist/test/mcpl-access-provider.test.d.ts +0 -2
- package/dist/test/mcpl-access-provider.test.d.ts.map +0 -1
- package/dist/test/mcpl-access-provider.test.js +0 -20
- package/dist/test/mcpl-access-provider.test.js.map +0 -1
- package/dist/test/mcpl-awareness-barrier.test.d.ts +0 -2
- package/dist/test/mcpl-awareness-barrier.test.d.ts.map +0 -1
- package/dist/test/mcpl-awareness-barrier.test.js +0 -769
- package/dist/test/mcpl-awareness-barrier.test.js.map +0 -1
- package/dist/test/mcpl-capability-grant.test.d.ts +0 -10
- package/dist/test/mcpl-capability-grant.test.d.ts.map +0 -1
- package/dist/test/mcpl-capability-grant.test.js +0 -111
- package/dist/test/mcpl-capability-grant.test.js.map +0 -1
- package/dist/test/mcpl-capability-scoping.test.d.ts +0 -2
- package/dist/test/mcpl-capability-scoping.test.d.ts.map +0 -1
- package/dist/test/mcpl-capability-scoping.test.js +0 -266
- package/dist/test/mcpl-capability-scoping.test.js.map +0 -1
- package/dist/test/mcpl-child-env.test.d.ts +0 -2
- package/dist/test/mcpl-child-env.test.d.ts.map +0 -1
- package/dist/test/mcpl-child-env.test.js +0 -158
- package/dist/test/mcpl-child-env.test.js.map +0 -1
- package/dist/test/mcpl-coalesced-content-parity.test.d.ts +0 -2
- package/dist/test/mcpl-coalesced-content-parity.test.d.ts.map +0 -1
- package/dist/test/mcpl-coalesced-content-parity.test.js +0 -532
- package/dist/test/mcpl-coalesced-content-parity.test.js.map +0 -1
- package/dist/test/mcpl-coalescing.test.d.ts +0 -2
- package/dist/test/mcpl-coalescing.test.d.ts.map +0 -1
- package/dist/test/mcpl-coalescing.test.js +0 -1125
- package/dist/test/mcpl-coalescing.test.js.map +0 -1
- package/dist/test/mcpl-config-diagnostics.test.d.ts +0 -2
- package/dist/test/mcpl-config-diagnostics.test.d.ts.map +0 -1
- package/dist/test/mcpl-config-diagnostics.test.js +0 -452
- package/dist/test/mcpl-config-diagnostics.test.js.map +0 -1
- package/dist/test/mcpl-empty-content.test.d.ts +0 -2
- package/dist/test/mcpl-empty-content.test.d.ts.map +0 -1
- package/dist/test/mcpl-empty-content.test.js +0 -368
- package/dist/test/mcpl-empty-content.test.js.map +0 -1
- package/dist/test/mcpl-gate-roundtrip.test.d.ts +0 -2
- package/dist/test/mcpl-gate-roundtrip.test.d.ts.map +0 -1
- package/dist/test/mcpl-gate-roundtrip.test.js +0 -285
- package/dist/test/mcpl-gate-roundtrip.test.js.map +0 -1
- package/dist/test/mcpl-list-status.test.d.ts +0 -2
- package/dist/test/mcpl-list-status.test.d.ts.map +0 -1
- package/dist/test/mcpl-list-status.test.js +0 -82
- package/dist/test/mcpl-list-status.test.js.map +0 -1
- package/dist/test/mcpl-manifest-changed.test.d.ts +0 -2
- package/dist/test/mcpl-manifest-changed.test.d.ts.map +0 -1
- package/dist/test/mcpl-manifest-changed.test.js +0 -178
- package/dist/test/mcpl-manifest-changed.test.js.map +0 -1
- package/dist/test/mcpl-push-convert.test.d.ts +0 -2
- package/dist/test/mcpl-push-convert.test.d.ts.map +0 -1
- package/dist/test/mcpl-push-convert.test.js +0 -42
- package/dist/test/mcpl-push-convert.test.js.map +0 -1
- package/dist/test/mcpl-reconnect-events.test.d.ts +0 -2
- package/dist/test/mcpl-reconnect-events.test.d.ts.map +0 -1
- package/dist/test/mcpl-reconnect-events.test.js +0 -144
- package/dist/test/mcpl-reconnect-events.test.js.map +0 -1
- package/dist/test/mcpl-reconnect-reregistration.test.d.ts +0 -2
- package/dist/test/mcpl-reconnect-reregistration.test.d.ts.map +0 -1
- package/dist/test/mcpl-reconnect-reregistration.test.js +0 -238
- package/dist/test/mcpl-reconnect-reregistration.test.js.map +0 -1
- package/dist/test/mcpl-reference-fetcher.test.d.ts +0 -2
- package/dist/test/mcpl-reference-fetcher.test.d.ts.map +0 -1
- package/dist/test/mcpl-reference-fetcher.test.js +0 -427
- package/dist/test/mcpl-reference-fetcher.test.js.map +0 -1
- package/dist/test/mcpl-reference-fields.test.d.ts +0 -2
- package/dist/test/mcpl-reference-fields.test.d.ts.map +0 -1
- package/dist/test/mcpl-reference-fields.test.js +0 -149
- package/dist/test/mcpl-reference-fields.test.js.map +0 -1
- package/dist/test/mcpl-rejection-log-lines.test.d.ts +0 -2
- package/dist/test/mcpl-rejection-log-lines.test.d.ts.map +0 -1
- package/dist/test/mcpl-rejection-log-lines.test.js +0 -349
- package/dist/test/mcpl-rejection-log-lines.test.js.map +0 -1
- package/dist/test/mcpl-request-timeout.test.d.ts +0 -2
- package/dist/test/mcpl-request-timeout.test.d.ts.map +0 -1
- package/dist/test/mcpl-request-timeout.test.js +0 -138
- package/dist/test/mcpl-request-timeout.test.js.map +0 -1
- package/dist/test/mcpl-runtime-lifecycle.test.d.ts +0 -7
- package/dist/test/mcpl-runtime-lifecycle.test.d.ts.map +0 -1
- package/dist/test/mcpl-runtime-lifecycle.test.js +0 -142
- package/dist/test/mcpl-runtime-lifecycle.test.js.map +0 -1
- package/dist/test/mcpl-stderr-tail.test.d.ts +0 -2
- package/dist/test/mcpl-stderr-tail.test.d.ts.map +0 -1
- package/dist/test/mcpl-stderr-tail.test.js +0 -210
- package/dist/test/mcpl-stderr-tail.test.js.map +0 -1
- package/dist/test/mcpl-tool-class-listing.test.d.ts +0 -2
- package/dist/test/mcpl-tool-class-listing.test.d.ts.map +0 -1
- package/dist/test/mcpl-tool-class-listing.test.js +0 -147
- package/dist/test/mcpl-tool-class-listing.test.js.map +0 -1
- package/dist/test/mcpl-tool-classes.test.d.ts +0 -7
- package/dist/test/mcpl-tool-classes.test.d.ts.map +0 -1
- package/dist/test/mcpl-tool-classes.test.js +0 -80
- package/dist/test/mcpl-tool-classes.test.js.map +0 -1
- package/dist/test/mcpl-tool-lifecycle-e2e.test.d.ts +0 -2
- package/dist/test/mcpl-tool-lifecycle-e2e.test.d.ts.map +0 -1
- package/dist/test/mcpl-tool-lifecycle-e2e.test.js +0 -237
- package/dist/test/mcpl-tool-lifecycle-e2e.test.js.map +0 -1
- package/dist/test/mcpl-tool-lifecycle-emitter.test.d.ts +0 -11
- package/dist/test/mcpl-tool-lifecycle-emitter.test.d.ts.map +0 -1
- package/dist/test/mcpl-tool-lifecycle-emitter.test.js +0 -412
- package/dist/test/mcpl-tool-lifecycle-emitter.test.js.map +0 -1
- package/dist/test/mcpl-tool-lifecycle-script.test.d.ts +0 -2
- package/dist/test/mcpl-tool-lifecycle-script.test.d.ts.map +0 -1
- package/dist/test/mcpl-tool-lifecycle-script.test.js +0 -288
- package/dist/test/mcpl-tool-lifecycle-script.test.js.map +0 -1
- package/dist/test/mcpl-tool-lifecycle.test.d.ts +0 -11
- package/dist/test/mcpl-tool-lifecycle.test.d.ts.map +0 -1
- package/dist/test/mcpl-tool-lifecycle.test.js +0 -270
- package/dist/test/mcpl-tool-lifecycle.test.js.map +0 -1
- package/dist/test/mcpl-transport-close.test.d.ts +0 -2
- package/dist/test/mcpl-transport-close.test.d.ts.map +0 -1
- package/dist/test/mcpl-transport-close.test.js +0 -373
- package/dist/test/mcpl-transport-close.test.js.map +0 -1
- package/dist/test/mcpl-transport-spawn.test.d.ts +0 -2
- package/dist/test/mcpl-transport-spawn.test.d.ts.map +0 -1
- package/dist/test/mcpl-transport-spawn.test.js +0 -58
- package/dist/test/mcpl-transport-spawn.test.js.map +0 -1
- package/dist/test/mcpl-ws-transport.test.d.ts +0 -2
- package/dist/test/mcpl-ws-transport.test.d.ts.map +0 -1
- package/dist/test/mcpl-ws-transport.test.js +0 -259
- package/dist/test/mcpl-ws-transport.test.js.map +0 -1
- package/dist/test/module-context-integration.test.d.ts +0 -18
- package/dist/test/module-context-integration.test.d.ts.map +0 -1
- package/dist/test/module-context-integration.test.js +0 -181
- package/dist/test/module-context-integration.test.js.map +0 -1
- package/dist/test/offline-recovery-branch.test.d.ts +0 -2
- package/dist/test/offline-recovery-branch.test.d.ts.map +0 -1
- package/dist/test/offline-recovery-branch.test.js +0 -570
- package/dist/test/offline-recovery-branch.test.js.map +0 -1
- package/dist/test/operator-surgery.test.d.ts +0 -2
- package/dist/test/operator-surgery.test.d.ts.map +0 -1
- package/dist/test/operator-surgery.test.js +0 -595
- package/dist/test/operator-surgery.test.js.map +0 -1
- package/dist/test/ops-alert.test.d.ts +0 -2
- package/dist/test/ops-alert.test.d.ts.map +0 -1
- package/dist/test/ops-alert.test.js +0 -153
- package/dist/test/ops-alert.test.js.map +0 -1
- package/dist/test/overbudget-drain-breaker.test.d.ts +0 -2
- package/dist/test/overbudget-drain-breaker.test.d.ts.map +0 -1
- package/dist/test/overbudget-drain-breaker.test.js +0 -198
- package/dist/test/overbudget-drain-breaker.test.js.map +0 -1
- package/dist/test/pack-installs-alone.test.d.ts +0 -2
- package/dist/test/pack-installs-alone.test.d.ts.map +0 -1
- package/dist/test/pack-installs-alone.test.js +0 -284
- package/dist/test/pack-installs-alone.test.js.map +0 -1
- package/dist/test/per-agent-delivery.test.d.ts +0 -2
- package/dist/test/per-agent-delivery.test.d.ts.map +0 -1
- package/dist/test/per-agent-delivery.test.js +0 -108
- package/dist/test/per-agent-delivery.test.js.map +0 -1
- package/dist/test/physical-window-restart.test.d.ts +0 -16
- package/dist/test/physical-window-restart.test.d.ts.map +0 -1
- package/dist/test/physical-window-restart.test.js +0 -487
- package/dist/test/physical-window-restart.test.js.map +0 -1
- package/dist/test/placed-reaction-baseline.test.d.ts +0 -2
- package/dist/test/placed-reaction-baseline.test.d.ts.map +0 -1
- package/dist/test/placed-reaction-baseline.test.js +0 -312
- package/dist/test/placed-reaction-baseline.test.js.map +0 -1
- package/dist/test/present-while-acting.test.d.ts +0 -19
- package/dist/test/present-while-acting.test.d.ts.map +0 -1
- package/dist/test/present-while-acting.test.js +0 -1649
- package/dist/test/present-while-acting.test.js.map +0 -1
- package/dist/test/prose-segments.test.d.ts +0 -2
- package/dist/test/prose-segments.test.d.ts.map +0 -1
- package/dist/test/prose-segments.test.js +0 -52
- package/dist/test/prose-segments.test.js.map +0 -1
- package/dist/test/prose-stream-router.test.d.ts +0 -2
- package/dist/test/prose-stream-router.test.d.ts.map +0 -1
- package/dist/test/prose-stream-router.test.js +0 -171
- package/dist/test/prose-stream-router.test.js.map +0 -1
- package/dist/test/provider-acceleration-cooldown.test.d.ts +0 -2
- package/dist/test/provider-acceleration-cooldown.test.d.ts.map +0 -1
- package/dist/test/provider-acceleration-cooldown.test.js +0 -435
- package/dist/test/provider-acceleration-cooldown.test.js.map +0 -1
- package/dist/test/provider-waits.test.d.ts +0 -2
- package/dist/test/provider-waits.test.d.ts.map +0 -1
- package/dist/test/provider-waits.test.js +0 -2259
- package/dist/test/provider-waits.test.js.map +0 -1
- package/dist/test/puppet-tool-call.test.d.ts +0 -2
- package/dist/test/puppet-tool-call.test.d.ts.map +0 -1
- package/dist/test/puppet-tool-call.test.js +0 -226
- package/dist/test/puppet-tool-call.test.js.map +0 -1
- package/dist/test/puppet-turn-reservation.test.d.ts +0 -2
- package/dist/test/puppet-turn-reservation.test.d.ts.map +0 -1
- package/dist/test/puppet-turn-reservation.test.js +0 -139
- package/dist/test/puppet-turn-reservation.test.js.map +0 -1
- package/dist/test/reaction-baseline-platform.test.d.ts +0 -2
- package/dist/test/reaction-baseline-platform.test.d.ts.map +0 -1
- package/dist/test/reaction-baseline-platform.test.js +0 -124
- package/dist/test/reaction-baseline-platform.test.js.map +0 -1
- package/dist/test/record-journal.test.d.ts +0 -6
- package/dist/test/record-journal.test.d.ts.map +0 -1
- package/dist/test/record-journal.test.js +0 -269
- package/dist/test/record-journal.test.js.map +0 -1
- package/dist/test/refusal-reaction-baseline.test.d.ts +0 -2
- package/dist/test/refusal-reaction-baseline.test.d.ts.map +0 -1
- package/dist/test/refusal-reaction-baseline.test.js +0 -81
- package/dist/test/refusal-reaction-baseline.test.js.map +0 -1
- package/dist/test/refusal-rewind.test.d.ts +0 -2
- package/dist/test/refusal-rewind.test.d.ts.map +0 -1
- package/dist/test/refusal-rewind.test.js +0 -117
- package/dist/test/refusal-rewind.test.js.map +0 -1
- package/dist/test/refusal-single-call.test.d.ts +0 -2
- package/dist/test/refusal-single-call.test.d.ts.map +0 -1
- package/dist/test/refusal-single-call.test.js +0 -177
- package/dist/test/refusal-single-call.test.js.map +0 -1
- package/dist/test/release-bump.test.d.ts +0 -2
- package/dist/test/release-bump.test.d.ts.map +0 -1
- package/dist/test/release-bump.test.js +0 -248
- package/dist/test/release-bump.test.js.map +0 -1
- package/dist/test/release-changelog.test.d.ts +0 -2
- package/dist/test/release-changelog.test.d.ts.map +0 -1
- package/dist/test/release-changelog.test.js +0 -159
- package/dist/test/release-changelog.test.js.map +0 -1
- package/dist/test/release-holds.test.d.ts +0 -2
- package/dist/test/release-holds.test.d.ts.map +0 -1
- package/dist/test/release-holds.test.js +0 -456
- package/dist/test/release-holds.test.js.map +0 -1
- package/dist/test/same-round-think-policy.test.d.ts +0 -2
- package/dist/test/same-round-think-policy.test.d.ts.map +0 -1
- package/dist/test/same-round-think-policy.test.js +0 -853
- package/dist/test/same-round-think-policy.test.js.map +0 -1
- package/dist/test/save-recent-image.test.d.ts +0 -26
- package/dist/test/save-recent-image.test.d.ts.map +0 -1
- package/dist/test/save-recent-image.test.js +0 -974
- package/dist/test/save-recent-image.test.js.map +0 -1
- package/dist/test/shutdown-errors.test.d.ts +0 -2
- package/dist/test/shutdown-errors.test.d.ts.map +0 -1
- package/dist/test/shutdown-errors.test.js +0 -662
- package/dist/test/shutdown-errors.test.js.map +0 -1
- package/dist/test/silent-heartbeat-rows.test.d.ts +0 -2
- package/dist/test/silent-heartbeat-rows.test.d.ts.map +0 -1
- package/dist/test/silent-heartbeat-rows.test.js +0 -451
- package/dist/test/silent-heartbeat-rows.test.js.map +0 -1
- package/dist/test/silent-heartbeat.test.d.ts +0 -2
- package/dist/test/silent-heartbeat.test.d.ts.map +0 -1
- package/dist/test/silent-heartbeat.test.js +0 -165
- package/dist/test/silent-heartbeat.test.js.map +0 -1
- package/dist/test/state-scaling-e2e.test.d.ts +0 -22
- package/dist/test/state-scaling-e2e.test.d.ts.map +0 -1
- package/dist/test/state-scaling-e2e.test.js +0 -206
- package/dist/test/state-scaling-e2e.test.js.map +0 -1
- package/dist/test/state-scaling.test.d.ts +0 -12
- package/dist/test/state-scaling.test.d.ts.map +0 -1
- package/dist/test/state-scaling.test.js +0 -251
- package/dist/test/state-scaling.test.js.map +0 -1
- package/dist/test/stop-with-host-operations.test.d.ts +0 -20
- package/dist/test/stop-with-host-operations.test.d.ts.map +0 -1
- package/dist/test/stop-with-host-operations.test.js +0 -1174
- package/dist/test/stop-with-host-operations.test.js.map +0 -1
- package/dist/test/stop-with-work-in-flight.test.d.ts +0 -23
- package/dist/test/stop-with-work-in-flight.test.d.ts.map +0 -1
- package/dist/test/stop-with-work-in-flight.test.js +0 -784
- package/dist/test/stop-with-work-in-flight.test.js.map +0 -1
- package/dist/test/surgery-marks-receipt.test.d.ts +0 -2
- package/dist/test/surgery-marks-receipt.test.d.ts.map +0 -1
- package/dist/test/surgery-marks-receipt.test.js +0 -540
- package/dist/test/surgery-marks-receipt.test.js.map +0 -1
- package/dist/test/thinking-token-stamp.test.d.ts +0 -12
- package/dist/test/thinking-token-stamp.test.d.ts.map +0 -1
- package/dist/test/thinking-token-stamp.test.js +0 -129
- package/dist/test/thinking-token-stamp.test.js.map +0 -1
- package/dist/test/timezone.test.d.ts +0 -2
- package/dist/test/timezone.test.d.ts.map +0 -1
- package/dist/test/timezone.test.js +0 -18
- package/dist/test/timezone.test.js.map +0 -1
- package/dist/test/tool-batch-hook.test.d.ts +0 -8
- package/dist/test/tool-batch-hook.test.d.ts.map +0 -1
- package/dist/test/tool-batch-hook.test.js +0 -275
- package/dist/test/tool-batch-hook.test.js.map +0 -1
- package/dist/test/tool-policy.test.d.ts +0 -2
- package/dist/test/tool-policy.test.d.ts.map +0 -1
- package/dist/test/tool-policy.test.js +0 -51
- package/dist/test/tool-policy.test.js.map +0 -1
- package/dist/test/tool-presentation.test.d.ts +0 -2
- package/dist/test/tool-presentation.test.d.ts.map +0 -1
- package/dist/test/tool-presentation.test.js +0 -268
- package/dist/test/tool-presentation.test.js.map +0 -1
- package/dist/test/tool-result-content.test.d.ts +0 -2
- package/dist/test/tool-result-content.test.d.ts.map +0 -1
- package/dist/test/tool-result-content.test.js +0 -37
- package/dist/test/tool-result-content.test.js.map +0 -1
- package/dist/test/tool-result-guard.test.d.ts +0 -2
- package/dist/test/tool-result-guard.test.d.ts.map +0 -1
- package/dist/test/tool-result-guard.test.js +0 -3729
- package/dist/test/tool-result-guard.test.js.map +0 -1
- package/dist/test/tool-result-history.test.d.ts +0 -7
- package/dist/test/tool-result-history.test.d.ts.map +0 -1
- package/dist/test/tool-result-history.test.js +0 -156
- package/dist/test/tool-result-history.test.js.map +0 -1
- package/dist/test/tool-result-spill.test.d.ts +0 -13
- package/dist/test/tool-result-spill.test.d.ts.map +0 -1
- package/dist/test/tool-result-spill.test.js +0 -586
- package/dist/test/tool-result-spill.test.js.map +0 -1
- package/dist/test/tool-wrapper-prose-guard-integration.test.d.ts +0 -2
- package/dist/test/tool-wrapper-prose-guard-integration.test.d.ts.map +0 -1
- package/dist/test/tool-wrapper-prose-guard-integration.test.js +0 -485
- package/dist/test/tool-wrapper-prose-guard-integration.test.js.map +0 -1
- package/dist/test/tool-wrapper-prose-guard.test.d.ts +0 -2
- package/dist/test/tool-wrapper-prose-guard.test.d.ts.map +0 -1
- package/dist/test/tool-wrapper-prose-guard.test.js +0 -34
- package/dist/test/tool-wrapper-prose-guard.test.js.map +0 -1
- package/dist/test/tools-observe-parser-conformance.test.d.ts +0 -2
- package/dist/test/tools-observe-parser-conformance.test.d.ts.map +0 -1
- package/dist/test/tools-observe-parser-conformance.test.js +0 -129
- package/dist/test/tools-observe-parser-conformance.test.js.map +0 -1
- package/dist/test/trunk-channel-routing.test.d.ts +0 -19
- package/dist/test/trunk-channel-routing.test.d.ts.map +0 -1
- package/dist/test/trunk-channel-routing.test.js +0 -652
- package/dist/test/trunk-channel-routing.test.js.map +0 -1
- package/dist/test/tune-out-e2e.test.d.ts +0 -2
- package/dist/test/tune-out-e2e.test.d.ts.map +0 -1
- package/dist/test/tune-out-e2e.test.js +0 -142
- package/dist/test/tune-out-e2e.test.js.map +0 -1
- package/dist/test/tune-out-gate-composition.test.d.ts +0 -2
- package/dist/test/tune-out-gate-composition.test.d.ts.map +0 -1
- package/dist/test/tune-out-gate-composition.test.js +0 -221
- package/dist/test/tune-out-gate-composition.test.js.map +0 -1
- package/dist/test/tune-out-lifecycle.test.d.ts +0 -2
- package/dist/test/tune-out-lifecycle.test.d.ts.map +0 -1
- package/dist/test/tune-out-lifecycle.test.js +0 -121
- package/dist/test/tune-out-lifecycle.test.js.map +0 -1
- package/dist/test/turn-trigger-provenance.test.d.ts +0 -2
- package/dist/test/turn-trigger-provenance.test.d.ts.map +0 -1
- package/dist/test/turn-trigger-provenance.test.js +0 -137
- package/dist/test/turn-trigger-provenance.test.js.map +0 -1
- package/dist/test/unconvertible-tool-result.test.d.ts +0 -2
- package/dist/test/unconvertible-tool-result.test.d.ts.map +0 -1
- package/dist/test/unconvertible-tool-result.test.js +0 -358
- package/dist/test/unconvertible-tool-result.test.js.map +0 -1
- package/dist/test/unsent-compiles.test.d.ts +0 -2
- package/dist/test/unsent-compiles.test.d.ts.map +0 -1
- package/dist/test/unsent-compiles.test.js +0 -139
- package/dist/test/unsent-compiles.test.js.map +0 -1
- package/dist/test/usage-accounting.test.d.ts +0 -2
- package/dist/test/usage-accounting.test.d.ts.map +0 -1
- package/dist/test/usage-accounting.test.js +0 -13
- package/dist/test/usage-accounting.test.js.map +0 -1
- package/dist/test/usage-tracker.test.d.ts +0 -2
- package/dist/test/usage-tracker.test.d.ts.map +0 -1
- package/dist/test/usage-tracker.test.js +0 -129
- package/dist/test/usage-tracker.test.js.map +0 -1
- package/dist/test/utils-surface.test.d.ts +0 -2
- package/dist/test/utils-surface.test.d.ts.map +0 -1
- package/dist/test/utils-surface.test.js +0 -145
- package/dist/test/utils-surface.test.js.map +0 -1
- package/dist/test/workspace-branch-continuation.test.d.ts +0 -15
- package/dist/test/workspace-branch-continuation.test.d.ts.map +0 -1
- package/dist/test/workspace-branch-continuation.test.js +0 -183
- package/dist/test/workspace-branch-continuation.test.js.map +0 -1
- package/dist/test/workspace-materialize-freshness.test.d.ts +0 -16
- package/dist/test/workspace-materialize-freshness.test.d.ts.map +0 -1
- package/dist/test/workspace-materialize-freshness.test.js +0 -252
- package/dist/test/workspace-materialize-freshness.test.js.map +0 -1
- package/dist/test/workspace-path-containment.test.d.ts +0 -19
- package/dist/test/workspace-path-containment.test.d.ts.map +0 -1
- package/dist/test/workspace-path-containment.test.js +0 -91
- package/dist/test/workspace-path-containment.test.js.map +0 -1
- package/dist/test/workspace-read-file-from-disk.test.d.ts +0 -17
- package/dist/test/workspace-read-file-from-disk.test.d.ts.map +0 -1
- package/dist/test/workspace-read-file-from-disk.test.js +0 -174
- package/dist/test/workspace-read-file-from-disk.test.js.map +0 -1
- package/dist/test/workspace-read-image.test.d.ts +0 -2
- package/dist/test/workspace-read-image.test.d.ts.map +0 -1
- package/dist/test/workspace-read-image.test.js +0 -597
- package/dist/test/workspace-read-image.test.js.map +0 -1
- package/dist/test/workspace-read-text.test.d.ts +0 -2
- package/dist/test/workspace-read-text.test.d.ts.map +0 -1
- package/dist/test/workspace-read-text.test.js +0 -101
- package/dist/test/workspace-read-text.test.js.map +0 -1
- package/dist/test/workspace-restore-order.test.d.ts +0 -16
- package/dist/test/workspace-restore-order.test.d.ts.map +0 -1
- package/dist/test/workspace-restore-order.test.js +0 -140
- package/dist/test/workspace-restore-order.test.js.map +0 -1
- package/dist/test/workspace-three-way.test.d.ts +0 -12
- package/dist/test/workspace-three-way.test.d.ts.map +0 -1
- package/dist/test/workspace-three-way.test.js +0 -4094
- package/dist/test/workspace-three-way.test.js.map +0 -1
- package/dist/test/workspace-watcher.test.d.ts +0 -2
- package/dist/test/workspace-watcher.test.d.ts.map +0 -1
- package/dist/test/workspace-watcher.test.js +0 -281
- package/dist/test/workspace-watcher.test.js.map +0 -1
- package/dist/test/xml-round-persist.test.d.ts +0 -19
- package/dist/test/xml-round-persist.test.d.ts.map +0 -1
- package/dist/test/xml-round-persist.test.js +0 -235
- package/dist/test/xml-round-persist.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
package/src/mcpl/types.ts
CHANGED
|
@@ -211,15 +211,22 @@ export interface McplChannelCapabilities {
|
|
|
211
211
|
/**
|
|
212
212
|
* Configuration for connecting to a single MCPL server.
|
|
213
213
|
* Provided in FrameworkConfig.mcplServers[].
|
|
214
|
+
*
|
|
215
|
+
* Treat a submitted configuration and its nested values as immutable for as
|
|
216
|
+
* long as the server uses them. Apply changed settings with
|
|
217
|
+
* `restartMcplServer(id, newConfig)`; use `accessProvider` for a network
|
|
218
|
+
* server's rotating credentials (a stdio server's changed `env` goes through
|
|
219
|
+
* a restart with the new configuration).
|
|
214
220
|
*/
|
|
215
221
|
export interface McplServerConfig {
|
|
216
222
|
/** Unique server identifier */
|
|
217
223
|
id: string;
|
|
218
224
|
|
|
219
225
|
/**
|
|
220
|
-
* Command to spawn the server process (stdio transport).
|
|
221
|
-
*
|
|
222
|
-
*
|
|
226
|
+
* Command to spawn the server process (stdio transport). Required for the
|
|
227
|
+
* stdio transport; omit it (and set `url`) for a network server, over
|
|
228
|
+
* WebSocket or HTTP. A configuration with both needs `transport` to say
|
|
229
|
+
* which one is used, and is refused without it.
|
|
223
230
|
*/
|
|
224
231
|
command?: string;
|
|
225
232
|
|
|
@@ -238,27 +245,49 @@ export interface McplServerConfig {
|
|
|
238
245
|
/**
|
|
239
246
|
* Escape hatch: pass the host's entire environment (including secrets) to
|
|
240
247
|
* the stdio child, as older versions did. Only for servers that genuinely
|
|
241
|
-
* need it. Default false.
|
|
248
|
+
* need it. Default false. Only `true` turns it on, and null counts as not
|
|
249
|
+
* set. For a stdio server, `create()`, `connectMcplServer` and
|
|
250
|
+
* `restartMcplServer` refuse any other value, such as a quoted "false". A
|
|
251
|
+
* WebSocket server never reads it.
|
|
242
252
|
*/
|
|
243
253
|
inheritEnv?: boolean;
|
|
244
254
|
|
|
245
255
|
/**
|
|
246
|
-
*
|
|
247
|
-
*
|
|
248
|
-
*
|
|
249
|
-
*
|
|
256
|
+
* URL for a network server, used instead of `command`. A configuration
|
|
257
|
+
* with both needs `transport` to say which one is used, and is refused
|
|
258
|
+
* without it. Its scheme decides the protocol family:
|
|
259
|
+
* - `ws://` or `wss://` is a legacy MCPL server over MCPL's WebSocket
|
|
260
|
+
* binding. The host dials it and runs the same newline-delimited JSON-RPC
|
|
261
|
+
* as over stdio.
|
|
262
|
+
* - `http://` or `https://` is a modern MCP (2026-07-28) server over
|
|
263
|
+
* Streamable HTTP.
|
|
250
264
|
*/
|
|
251
265
|
url?: string;
|
|
252
266
|
|
|
253
267
|
/**
|
|
254
|
-
* Transport selector.
|
|
255
|
-
*
|
|
268
|
+
* Transport selector. When it is absent, a `command` means stdio and a
|
|
269
|
+
* `url` means the transport its scheme names; with both, it is required.
|
|
270
|
+
* When it is set, it decides which of the two is used and must agree with
|
|
271
|
+
* it: `'stdio'` needs a `command`, `'websocket'` a ws(s):// url and
|
|
272
|
+
* `'http'` an http(s):// url.
|
|
273
|
+
*/
|
|
274
|
+
transport?: 'stdio' | 'websocket' | 'http';
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Protocol family for a stdio (`command`) server. Defaults to `'legacy'`,
|
|
278
|
+
* which is MCP 2024-11-05 + MCPL and today's behavior. `'modern'` speaks
|
|
279
|
+
* MCP 2026-07-28 through the SDK-backed modern engine. A network server's
|
|
280
|
+
* family comes from its url's scheme, so setting this on one is a
|
|
281
|
+
* configuration error. There is no probing between families.
|
|
256
282
|
*/
|
|
257
|
-
|
|
283
|
+
protocol?: 'legacy' | 'modern';
|
|
258
284
|
|
|
259
285
|
/**
|
|
260
|
-
* Bearer token for
|
|
261
|
-
*
|
|
286
|
+
* Bearer token for a network server. Where it travels depends on the
|
|
287
|
+
* transport: on a ws(s):// url it is appended as a `token` query parameter
|
|
288
|
+
* (`?token=…`) on connect; to an http(s):// server it is sent as an
|
|
289
|
+
* `Authorization: Bearer` header and never put in the url. A legacy stdio
|
|
290
|
+
* server ignores it, and a modern stdio server refuses it.
|
|
262
291
|
*/
|
|
263
292
|
token?: string;
|
|
264
293
|
|
|
@@ -278,7 +307,9 @@ export interface McplServerConfig {
|
|
|
278
307
|
* unstick). DEFAULT FALSE: no §6.2 capability path exists for it, and the
|
|
279
308
|
* grant cannot confer it — only this config, decided by the operator, can
|
|
280
309
|
* (PR #79 review blocker 9). The one legitimate fleet user is
|
|
281
|
-
* discord-mcpl's slash-command relay.
|
|
310
|
+
* discord-mcpl's slash-command relay. Only `true` turns it on, and null
|
|
311
|
+
* counts as not set. `create()`, `connectMcplServer` and
|
|
312
|
+
* `restartMcplServer` refuse any other value, such as a quoted "true".
|
|
282
313
|
*/
|
|
283
314
|
allowHostCommands?: boolean;
|
|
284
315
|
|
|
@@ -351,6 +382,9 @@ export interface McplServerConfig {
|
|
|
351
382
|
* When true, connect() resolves immediately (with null capabilities) if the
|
|
352
383
|
* server is unavailable, and retries in the background.
|
|
353
384
|
* Adapted from Anarchid/agent-framework@mcpl-module-proto.
|
|
385
|
+
* Only `true` turns it on, and null counts as not set. `create()`,
|
|
386
|
+
* `connectMcplServer` and `restartMcplServer` refuse any other value, such
|
|
387
|
+
* as a quoted "false".
|
|
354
388
|
*/
|
|
355
389
|
reconnect?: boolean;
|
|
356
390
|
|
|
@@ -376,9 +410,20 @@ export interface McplServerConfig {
|
|
|
376
410
|
* descriptive error, which the framework surfaces as a normal isError
|
|
377
411
|
* tool_result. Request timeouts are the only bound for a stdio server that
|
|
378
412
|
* stops reading its stdin without closing it: the host's writes are
|
|
379
|
-
* buffered, no error is raised, and the connection stays up.
|
|
380
|
-
*
|
|
381
|
-
*
|
|
413
|
+
* buffered, no error is raised, and the connection stays up. Under Bun they
|
|
414
|
+
* are also the only bound for one that closes its stdin, since Bun emits no
|
|
415
|
+
* 'error' event for the writes to it. requestTimeoutMs is the timeout of
|
|
416
|
+
* every request that names none; the handshake's initialize has its own.
|
|
417
|
+
* Set 0 to disable, except for channels/publish and the channels/open a
|
|
418
|
+
* delivery may send first, which keep the 60 s default: a publish's outcome
|
|
419
|
+
* is reported to the resident and recorded for its draft, so it must end.
|
|
420
|
+
* Default: 60000 (60 seconds). A value above 2^31−1 is refused: Node runs a
|
|
421
|
+
* longer timer after about 1 ms, so every request would time out at once.
|
|
422
|
+
*
|
|
423
|
+
* For a modern server it is one deadline per tool call, across every leg
|
|
424
|
+
* of the call, and must be an integer from 1 to 2^31−1. It can't be
|
|
425
|
+
* disabled: the SDK reads 0 as "time out now". At the deadline
|
|
426
|
+
* cancellation is requested and the outcome is unknown.
|
|
382
427
|
*/
|
|
383
428
|
requestTimeoutMs?: number;
|
|
384
429
|
|
|
@@ -408,7 +453,10 @@ export interface McplServerConfig {
|
|
|
408
453
|
* `toolLifecycle.*.tools`) match these full names; `enabledTools` /
|
|
409
454
|
* `disabledTools` use the bare server-side names.
|
|
410
455
|
*
|
|
411
|
-
* Must not
|
|
456
|
+
* Must not equal any module name or another server's prefix, nor meet
|
|
457
|
+
* another server's prefix: two prefixes meet when one is the other
|
|
458
|
+
* followed by `-`, or begins with the other followed by `--`, as `foo-`
|
|
459
|
+
* and `foo--bar` each meet `foo` (prefixesMeet, #265).
|
|
412
460
|
*/
|
|
413
461
|
toolPrefix?: string;
|
|
414
462
|
|
|
@@ -1064,7 +1112,15 @@ export interface ChannelsListResult {
|
|
|
1064
1112
|
* Spec Section 14.3.
|
|
1065
1113
|
*/
|
|
1066
1114
|
export interface ChannelsOpenParams {
|
|
1067
|
-
/**
|
|
1115
|
+
/**
|
|
1116
|
+
* The exact registered id to open. Without it, a server matches by `type`
|
|
1117
|
+
* and `address`, as before. A server that doesn't know the id should
|
|
1118
|
+
* refuse rather than open another channel: the host fails an open whose
|
|
1119
|
+
* answer names a different channel id, by its `channel.id` or a history
|
|
1120
|
+
* item's `channelId`, compared exactly, as the server's traffic is. When
|
|
1121
|
+
* that other channel is registered and decided closed, the host closes it
|
|
1122
|
+
* again.
|
|
1123
|
+
*/
|
|
1068
1124
|
channelId?: string;
|
|
1069
1125
|
type: string;
|
|
1070
1126
|
address?: Record<string, unknown>;
|
|
@@ -1319,6 +1375,8 @@ export interface McpToolDefinition {
|
|
|
1319
1375
|
name: string;
|
|
1320
1376
|
description?: string;
|
|
1321
1377
|
inputSchema: Record<string, unknown>;
|
|
1378
|
+
/** Server metadata for the tool (e.g. RFC-008 `mcpl/class` hints). */
|
|
1379
|
+
_meta?: Record<string, unknown>;
|
|
1322
1380
|
}
|
|
1323
1381
|
|
|
1324
1382
|
/**
|
|
@@ -31,6 +31,34 @@ export function isVisiblyEmptyContent(content: readonly unknown[] | null | undef
|
|
|
31
31
|
return true;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
/**
|
|
35
|
+
* What the converter (convertBlock, on every lane) shows for a text
|
|
36
|
+
* block whose text isn't a string, which only a nonconformant sender writes,
|
|
37
|
+
* so the agent learns that a block was there. It is the host's word, not the
|
|
38
|
+
* sender's, so it never makes content visible (isVisiblyEmptyConversion).
|
|
39
|
+
* The other blocks the converters can't show have theirs in references.ts.
|
|
40
|
+
*/
|
|
41
|
+
export const NON_STRING_TEXT_PLACEHOLDER = '[Text not shown: a text part arrived without readable text.]';
|
|
42
|
+
|
|
43
|
+
/** A wire text block whose text isn't a string, which the converter shows as
|
|
44
|
+
* NON_STRING_TEXT_PLACEHOLDER. */
|
|
45
|
+
function isNonStringTextBlock(block: unknown): boolean {
|
|
46
|
+
if (!block || typeof block !== 'object') return false;
|
|
47
|
+
const b = block as { type?: unknown; text?: unknown };
|
|
48
|
+
return b.type === 'text' && typeof b.text !== 'string';
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* isVisiblyEmptyContent for content as a converter showed it, `wire` being
|
|
53
|
+
* the content as it arrived, block for block: a block shown as
|
|
54
|
+
* NON_STRING_TEXT_PLACEHOLDER counts as the nothing it held. So content that
|
|
55
|
+
* is only such blocks (or blank text) is still empty, and anything else is
|
|
56
|
+
* judged as the converted blocks show it, placeholders included.
|
|
57
|
+
*/
|
|
58
|
+
export function isVisiblyEmptyConversion(wire: readonly unknown[], converted: readonly unknown[]): boolean {
|
|
59
|
+
return isVisiblyEmptyContent(converted.filter((_, i) => !isNonStringTextBlock(wire[i])));
|
|
60
|
+
}
|
|
61
|
+
|
|
34
62
|
/** The server id and feature set the marker must carry. */
|
|
35
63
|
export const SILENT_HEARTBEAT_SERVER_ID = 'heartbeat';
|
|
36
64
|
export const SILENT_HEARTBEAT_FEATURE_SET = 'heartbeat';
|
package/src/module-registry.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import type { JsStore } from '@animalabs/chronicle';
|
|
1
|
+
import type { JsStateRegistration, JsStore } from '@animalabs/chronicle';
|
|
2
2
|
import type { ContentBlock } from '@animalabs/membrane';
|
|
3
3
|
import type {
|
|
4
4
|
MessageId,
|
|
5
5
|
MessageMetadata,
|
|
6
6
|
MessageQuery,
|
|
7
|
-
MessageQueryResult,
|
|
8
|
-
StoredMessage,
|
|
9
7
|
ContextInjection,
|
|
10
8
|
} from '@animalabs/context-manager';
|
|
11
9
|
import type {
|
|
@@ -22,9 +20,14 @@ import type {
|
|
|
22
20
|
SpeechHandlerOptions,
|
|
23
21
|
ProcessEvent,
|
|
24
22
|
TraceEventListener,
|
|
23
|
+
ModuleMessage,
|
|
24
|
+
MessageQueryResult,
|
|
25
25
|
} from './types/index.js';
|
|
26
|
+
import { heldWriteId } from './held-writes.js';
|
|
26
27
|
import type { Agent } from './agent.js';
|
|
27
28
|
import { DEFAULT_SHUTDOWN_TIMEOUT_MS, validateShutdownTimeout, waitForShutdown } from './shutdown.js';
|
|
29
|
+
import { logValue } from './mcpl/log-value.js';
|
|
30
|
+
import { toolArgsProblems } from './tool-args.js';
|
|
28
31
|
|
|
29
32
|
/** How the registry queues a module's event: its push names the module. A
|
|
30
33
|
* `ProcessQueue` serves too, ignoring the name. */
|
|
@@ -44,6 +47,25 @@ export function isStateExistsError(err: unknown): boolean {
|
|
|
44
47
|
return err instanceof Error && err.message.includes('State already exists');
|
|
45
48
|
}
|
|
46
49
|
|
|
50
|
+
/**
|
|
51
|
+
* Register a state, treating "already exists" as done: a store reopened after
|
|
52
|
+
* a restart already holds it. Every other failure is thrown here, where it
|
|
53
|
+
* happened, naming the state, with the store's own error as its cause. Each
|
|
54
|
+
* state the framework registers goes through this.
|
|
55
|
+
*/
|
|
56
|
+
export function ensureStateRegistered(
|
|
57
|
+
store: Pick<JsStore, 'registerState'>,
|
|
58
|
+
registration: JsStateRegistration,
|
|
59
|
+
): void {
|
|
60
|
+
try {
|
|
61
|
+
store.registerState(registration);
|
|
62
|
+
} catch (error) {
|
|
63
|
+
if (isStateExistsError(error)) return;
|
|
64
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
65
|
+
throw new Error(`Registering state '${registration.id}' failed: ${reason}`, { cause: error });
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
47
69
|
/**
|
|
48
70
|
* Hard ceiling for a single module's gatherContext budget, regardless of the
|
|
49
71
|
* `contextTimeoutMs` it declares. gatherContext runs on the critical path of
|
|
@@ -81,6 +103,8 @@ export class ModuleRegistry {
|
|
|
81
103
|
|
|
82
104
|
private modules: Map<string, Module> = new Map();
|
|
83
105
|
private stopping = new Map<Module, Promise<void>>();
|
|
106
|
+
/** Module and namespace pairs already told that a system injection held a block that isn't text. */
|
|
107
|
+
private notShownWarned = new Set<string>();
|
|
84
108
|
private moduleContexts: Map<string, ModuleContextImpl> = new Map();
|
|
85
109
|
private speechHandlers: SpeechHandler[] = [];
|
|
86
110
|
private store: JsStore;
|
|
@@ -89,7 +113,7 @@ export class ModuleRegistry {
|
|
|
89
113
|
private addMessageFn: (participant: string, content: ContentBlock[], metadata?: MessageMetadata) => MessageId;
|
|
90
114
|
private editMessageFn: (id: MessageId, content: ContentBlock[]) => void;
|
|
91
115
|
private removeMessageFn: (id: MessageId) => void;
|
|
92
|
-
private getMessageFn: (id: MessageId) =>
|
|
116
|
+
private getMessageFn: (id: MessageId) => ModuleMessage | null;
|
|
93
117
|
private queryMessagesFn: (filter: MessageQuery) => MessageQueryResult;
|
|
94
118
|
|
|
95
119
|
private pushEventFn: (event: ProcessEvent, moduleName?: string) => void;
|
|
@@ -113,7 +137,7 @@ export class ModuleRegistry {
|
|
|
113
137
|
addMessage: (participant: string, content: ContentBlock[], metadata?: MessageMetadata) => MessageId;
|
|
114
138
|
editMessage: (id: MessageId, content: ContentBlock[]) => void;
|
|
115
139
|
removeMessage: (id: MessageId) => void;
|
|
116
|
-
getMessage: (id: MessageId) =>
|
|
140
|
+
getMessage: (id: MessageId) => ModuleMessage | null;
|
|
117
141
|
queryMessages: (filter: MessageQuery) => MessageQueryResult;
|
|
118
142
|
/** Called with the pushing module's name. */
|
|
119
143
|
pushEvent: (event: ProcessEvent, moduleName?: string) => void;
|
|
@@ -146,14 +170,7 @@ export class ModuleRegistry {
|
|
|
146
170
|
|
|
147
171
|
// Register module state in store
|
|
148
172
|
const stateId = this.getStateId(module.name);
|
|
149
|
-
|
|
150
|
-
this.store.registerState({
|
|
151
|
-
id: stateId,
|
|
152
|
-
strategy: 'snapshot',
|
|
153
|
-
});
|
|
154
|
-
} catch {
|
|
155
|
-
// State already registered (from previous run)
|
|
156
|
-
}
|
|
173
|
+
ensureStateRegistered(this.store, { id: stateId, strategy: 'snapshot' });
|
|
157
174
|
|
|
158
175
|
// Check if this is a restart (state exists)
|
|
159
176
|
const existingState = this.store.getStateJson(stateId);
|
|
@@ -285,8 +302,8 @@ export class ModuleRegistry {
|
|
|
285
302
|
* model. The result is checked and read once, in its JSON form
|
|
286
303
|
* ({@link storableToolResult}).
|
|
287
304
|
*/
|
|
288
|
-
async storableToolCall(call: ToolCall): Promise<ToolResult> {
|
|
289
|
-
return storableToolResult(call, await this.handleToolCall(call));
|
|
305
|
+
async storableToolCall(call: ToolCall, options: { definition?: ToolDefinition } = {}): Promise<ToolResult> {
|
|
306
|
+
return storableToolResult(call, await this.handleToolCall(call, options));
|
|
290
307
|
}
|
|
291
308
|
|
|
292
309
|
/**
|
|
@@ -294,8 +311,14 @@ export class ModuleRegistry {
|
|
|
294
311
|
* result, unchecked, as it returned it, for a caller that uses the result
|
|
295
312
|
* in process (`ModuleContext.callTool`, `executeToolCall`, or a host
|
|
296
313
|
* calling the registry). A module's throw is answered as an error result.
|
|
314
|
+
* A call whose input isn't an object, or lacks a key the tool's schema
|
|
315
|
+
* requires, is answered before the module runs, with an error result that
|
|
316
|
+
* opens "Nothing was done:" and names what to send (toolArgsProblems).
|
|
317
|
+
* A caller that has already resolved the tool's definition, as the `utils`
|
|
318
|
+
* tool has a utility's, passes it as `definition`, and it's checked against
|
|
319
|
+
* that one.
|
|
297
320
|
*/
|
|
298
|
-
async handleToolCall(call: ToolCall): Promise<ToolResult> {
|
|
321
|
+
async handleToolCall(call: ToolCall, options: { definition?: ToolDefinition } = {}): Promise<ToolResult> {
|
|
299
322
|
// Parse module--tool name
|
|
300
323
|
const sepIndex = call.name.indexOf('--');
|
|
301
324
|
if (sepIndex === -1) {
|
|
@@ -318,15 +341,37 @@ export class ModuleRegistry {
|
|
|
318
341
|
};
|
|
319
342
|
}
|
|
320
343
|
|
|
321
|
-
// Create a call with the un-prefixed name (preserving caller identity)
|
|
344
|
+
// Create a call with the un-prefixed name (preserving caller identity and turn)
|
|
322
345
|
const moduleCall: ToolCall = {
|
|
323
346
|
id: call.id,
|
|
324
347
|
name: toolName,
|
|
325
348
|
input: call.input,
|
|
326
349
|
callerAgentName: call.callerAgentName,
|
|
350
|
+
...(call.callerTurnId !== undefined ? { callerTurnId: call.callerTurnId } : {}),
|
|
327
351
|
};
|
|
328
352
|
|
|
329
353
|
try {
|
|
354
|
+
// The call against the tool's declared schema, before the module runs:
|
|
355
|
+
// a missing required argument is refused with what to send, where the
|
|
356
|
+
// handler would otherwise fail deep inside, or run without it. Values
|
|
357
|
+
// aren't checked here, since a handler may take more than its schema
|
|
358
|
+
// can say (toolArgsProblems). The module's own listing runs inside the
|
|
359
|
+
// try, so its throw is answered like any other. Utilities are listed
|
|
360
|
+
// only for a name the tools don't have, so a utility listing that
|
|
361
|
+
// throws or is slow reaches only calls to such names: a utility called
|
|
362
|
+
// by its own name, and a name the module answers without declaring it.
|
|
363
|
+
// A caller that passes `definition` lists nothing.
|
|
364
|
+
const definition = options.definition
|
|
365
|
+
?? module.getTools().find((tool) => tool.name === toolName)
|
|
366
|
+
?? module.getUtilities?.()?.find((tool) => tool.name === toolName);
|
|
367
|
+
const problems = toolArgsProblems(call.input, definition?.inputSchema);
|
|
368
|
+
if (problems.length > 0) {
|
|
369
|
+
return {
|
|
370
|
+
success: false,
|
|
371
|
+
error: `Nothing was done: ${call.name} ${problems.join('; ')}.`,
|
|
372
|
+
isError: true,
|
|
373
|
+
};
|
|
374
|
+
}
|
|
330
375
|
return await module.handleToolCall(moduleCall);
|
|
331
376
|
} catch (error) {
|
|
332
377
|
return thrownResult(error);
|
|
@@ -425,7 +470,10 @@ export class ModuleRegistry {
|
|
|
425
470
|
);
|
|
426
471
|
let timer: ReturnType<typeof setTimeout> | undefined;
|
|
427
472
|
const promise = Promise.race([
|
|
428
|
-
module.gatherContext(agentName).then(r =>
|
|
473
|
+
module.gatherContext(agentName).then(r => {
|
|
474
|
+
injections.push(...r);
|
|
475
|
+
this.noteBlocksNotShown(module.name, r);
|
|
476
|
+
}),
|
|
429
477
|
new Promise<void>((_, rej) => {
|
|
430
478
|
timer = setTimeout(
|
|
431
479
|
() => rej(new Error(`gatherContext timed out after ${budgetMs}ms`)),
|
|
@@ -443,6 +491,28 @@ export class ModuleRegistry {
|
|
|
443
491
|
return injections;
|
|
444
492
|
}
|
|
445
493
|
|
|
494
|
+
/**
|
|
495
|
+
* The system prompt is text, so an agent given a `system` injection reads
|
|
496
|
+
* a line in place of each of its blocks that isn't text (the agent's
|
|
497
|
+
* buildSystemPrompt), though `ContextInjection`'s content may be any
|
|
498
|
+
* block. The module meant those blocks for the model, so its operator is
|
|
499
|
+
* told, once per module and namespace, as the module's injections are
|
|
500
|
+
* gathered, whichever agents are given them.
|
|
501
|
+
*/
|
|
502
|
+
private noteBlocksNotShown(moduleName: string, injections: ContextInjection[]): void {
|
|
503
|
+
for (const injection of injections) {
|
|
504
|
+
if (injection.position !== 'system' || !injection.content.some((block) => block.type !== 'text')) continue;
|
|
505
|
+
const key = `${moduleName}\u0000${injection.namespace}`;
|
|
506
|
+
if (this.notShownWarned.has(key)) continue;
|
|
507
|
+
this.notShownWarned.add(key);
|
|
508
|
+
console.error(
|
|
509
|
+
`[${moduleName}] gatherContext: a system injection in namespace ${logValue(injection.namespace)} holds a block that ` +
|
|
510
|
+
"isn't text, which the system prompt can't carry, so an agent given the injection reads a line in place of each such block; " +
|
|
511
|
+
'this line prints once per module and namespace while the host runs',
|
|
512
|
+
);
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
|
|
446
516
|
/**
|
|
447
517
|
* Tell modules an agent's tool batch completed (see
|
|
448
518
|
* Module.onToolBatchComplete). Hooks run in parallel, each awaited up to
|
|
@@ -542,7 +612,7 @@ class ModuleContextImpl implements ModuleContext {
|
|
|
542
612
|
private addMessageFn: (participant: string, content: ContentBlock[], metadata?: MessageMetadata) => MessageId;
|
|
543
613
|
private editMessageFn: (id: MessageId, content: ContentBlock[]) => void;
|
|
544
614
|
private removeMessageFn: (id: MessageId) => void;
|
|
545
|
-
private getMessageFn: (id: MessageId) =>
|
|
615
|
+
private getMessageFn: (id: MessageId) => ModuleMessage | null;
|
|
546
616
|
private queryMessagesFn: (filter: MessageQuery) => MessageQueryResult;
|
|
547
617
|
private pushEventFn: (event: ProcessEvent, moduleName?: string) => void;
|
|
548
618
|
private onTraceFn: (listener: TraceEventListener) => () => void;
|
|
@@ -562,7 +632,7 @@ class ModuleContextImpl implements ModuleContext {
|
|
|
562
632
|
addMessage: (participant: string, content: ContentBlock[], metadata?: MessageMetadata) => MessageId,
|
|
563
633
|
editMessage: (id: MessageId, content: ContentBlock[]) => void,
|
|
564
634
|
removeMessage: (id: MessageId) => void,
|
|
565
|
-
getMessage: (id: MessageId) =>
|
|
635
|
+
getMessage: (id: MessageId) => ModuleMessage | null,
|
|
566
636
|
queryMessages: (filter: MessageQuery) => MessageQueryResult,
|
|
567
637
|
pushEvent: (event: ProcessEvent, moduleName?: string) => void,
|
|
568
638
|
onTrace: (listener: TraceEventListener) => () => void,
|
|
@@ -640,18 +710,12 @@ class ModuleContextImpl implements ModuleContext {
|
|
|
640
710
|
name: string,
|
|
641
711
|
opts?: { deltaSnapshotEvery?: number; fullSnapshotEvery?: number }
|
|
642
712
|
): void {
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
fullSnapshotEvery: opts?.fullSnapshotEvery ?? 20,
|
|
650
|
-
});
|
|
651
|
-
} catch (err) {
|
|
652
|
-
if (!isStateExistsError(err)) throw err;
|
|
653
|
-
// Already registered (previous run) — idempotent path.
|
|
654
|
-
}
|
|
713
|
+
ensureStateRegistered(this.store, {
|
|
714
|
+
id: this.logStateId(name),
|
|
715
|
+
strategy: 'append_log',
|
|
716
|
+
deltaSnapshotEvery: opts?.deltaSnapshotEvery ?? 100,
|
|
717
|
+
fullSnapshotEvery: opts?.fullSnapshotEvery ?? 20,
|
|
718
|
+
});
|
|
655
719
|
this.registeredLogStates.add(name);
|
|
656
720
|
}
|
|
657
721
|
|
|
@@ -695,10 +759,13 @@ class ModuleContextImpl implements ModuleContext {
|
|
|
695
759
|
): MessageId {
|
|
696
760
|
const id = this.addMessageFn(participant, content, metadata);
|
|
697
761
|
|
|
698
|
-
// Track external ID if provided
|
|
762
|
+
// Track external ID if provided. A write the framework holds keeps '',
|
|
763
|
+
// as it did before held writes had handles: the map is module state an
|
|
764
|
+
// earlier release reads back, and a handle is no id to it.
|
|
765
|
+
// findMessageByExternalId finds the held write by its external id.
|
|
699
766
|
if (metadata?.external) {
|
|
700
767
|
const key = `${metadata.external.source}:${metadata.external.id}`;
|
|
701
|
-
this.externalIdMap.set(key, id);
|
|
768
|
+
this.externalIdMap.set(key, heldWriteId(id) === undefined ? id : '');
|
|
702
769
|
// Persist the mapping
|
|
703
770
|
this.persistExternalIdMap();
|
|
704
771
|
}
|
|
@@ -724,10 +791,33 @@ class ModuleContextImpl implements ModuleContext {
|
|
|
724
791
|
|
|
725
792
|
findMessageByExternalId(source: string, externalId: string): MessageId | null {
|
|
726
793
|
const key = `${source}:${externalId}`;
|
|
727
|
-
|
|
794
|
+
const entry = this.externalIdMap.get(key);
|
|
795
|
+
if (entry === undefined) return null;
|
|
796
|
+
// A stored id answers while the store holds its row, and once the row is
|
|
797
|
+
// gone the entry goes, as removeMessage drops it. The '' a held write
|
|
798
|
+
// keeps here (addMessage) names no row, so the message is looked up in
|
|
799
|
+
// the store by its external id, held rows included, and the first row
|
|
800
|
+
// found is taken, as context-manager's findByExternalId takes it: a held
|
|
801
|
+
// row answers by its handle and leaves the entry as it is, and a stored
|
|
802
|
+
// row's id becomes the entry. With nothing found, '' stays, as earlier
|
|
803
|
+
// releases kept it: in a module's start(), the writes the last process
|
|
804
|
+
// held don't show yet, since create() restores them after the modules
|
|
805
|
+
// start, and a write that shows later finds its entry.
|
|
806
|
+
if (entry !== '') {
|
|
807
|
+
if (this.getMessageFn(entry)) return entry;
|
|
808
|
+
this.externalIdMap.delete(key);
|
|
809
|
+
this.persistExternalIdMap();
|
|
810
|
+
return null;
|
|
811
|
+
}
|
|
812
|
+
const row = this.queryMessagesFn({ source, externalIds: [externalId] }).messages[0];
|
|
813
|
+
if (row?.held) return row.id;
|
|
814
|
+
if (!row) return null;
|
|
815
|
+
this.externalIdMap.set(key, row.id);
|
|
816
|
+
this.persistExternalIdMap();
|
|
817
|
+
return row.id;
|
|
728
818
|
}
|
|
729
819
|
|
|
730
|
-
getMessage(id: MessageId):
|
|
820
|
+
getMessage(id: MessageId): ModuleMessage | null {
|
|
731
821
|
return this.getMessageFn(id);
|
|
732
822
|
}
|
|
733
823
|
|
package/src/modules/api/index.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* into conversation messages and inference requests.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
import { unknownToolMessage } from '../unknown-tool.js';
|
|
8
9
|
import type {
|
|
9
10
|
Module,
|
|
10
11
|
ModuleContext,
|
|
@@ -38,9 +39,9 @@ export class ApiModule implements Module {
|
|
|
38
39
|
// Nothing to clean up
|
|
39
40
|
}
|
|
40
41
|
|
|
41
|
-
async handleToolCall(
|
|
42
|
+
async handleToolCall(call: ToolCall): Promise<ToolResult> {
|
|
42
43
|
// API module has no tools
|
|
43
|
-
return { success: false, error:
|
|
44
|
+
return { success: false, error: unknownToolMessage(this.name, call.name, this.getTools()), isError: true };
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
async onProcess(event: ProcessEvent, _state: ProcessState): Promise<EventResponse> {
|