@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/dist/src/agent.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { isAbortedResponse } from '@animalabs/membrane';
|
|
2
2
|
import { createHash } from 'node:crypto';
|
|
3
3
|
import { ToolResultGuard } from './tool-result-guard.js';
|
|
4
|
-
import {
|
|
4
|
+
import { assertBooleanSetting, holdsSettings } from './config-checks.js';
|
|
5
|
+
import { CONTINUE_ROW, continueTurn, indexRequestOnlyRows, renderRequestOnlyRows, silentHeartbeatSeparatorTurn, tickKey, toolLoopPrompt, } from './silent-heartbeat.js';
|
|
6
|
+
import { randomUUID } from 'node:crypto';
|
|
5
7
|
import { nonErrorResultText, truncateForHistory, DEFAULT_TOOL_RESULT_INLINE_MAX_CHARS, } from './tool-result-history.js';
|
|
6
8
|
function stableHash(value) {
|
|
7
9
|
const encode = (item) => {
|
|
@@ -18,6 +20,32 @@ function stableHash(value) {
|
|
|
18
20
|
const DEFAULT_CONTEXT_BUDGET_TOKENS = 100_000;
|
|
19
21
|
const DEFAULT_TRANSITION_PACE_TOKENS = 16_000;
|
|
20
22
|
const DEFAULT_SAME_ROUND_THINK_TEXT_POLICY = 'public';
|
|
23
|
+
/**
|
|
24
|
+
* Refuse an agent config whose `promptCaching`, `toolResultGuard`,
|
|
25
|
+
* `toolWrapperProseGuard`, `thinking.enabled` or `refusalHandling.autoRewind`
|
|
26
|
+
* holds anything but true or false (assertBooleanSetting), or whose `thinking`
|
|
27
|
+
* or `refusalHandling` is anything but an object, null or false
|
|
28
|
+
* (holdsSettings). The constructor runs it first, so the rule holds wherever
|
|
29
|
+
* an Agent is built. `create()` also runs it for each of its agents before
|
|
30
|
+
* anything opens, and `createEphemeralAgent` before it reserves the name, so a
|
|
31
|
+
* refusal there leaves nothing behind. Membrane reads `thinking.enabled`, and
|
|
32
|
+
* the refusal is here because the setting is AgentConfig's.
|
|
33
|
+
*/
|
|
34
|
+
export function assertAgentSwitches(config) {
|
|
35
|
+
const agent = `Agent "${config.name}"`;
|
|
36
|
+
assertBooleanSetting(`${agent} promptCaching`, config.promptCaching, 'true or leaving it out marks requests for prompt caching, and false leaves the markers off, for transports that refuse them');
|
|
37
|
+
if (holdsSettings(`${agent} thinking`, config.thinking, '{ enabled: true }')) {
|
|
38
|
+
assertBooleanSetting(`${agent} thinking.enabled`, config.thinking.enabled, 'true asks the provider for extended thinking, and false or leaving it out doesn\'t');
|
|
39
|
+
}
|
|
40
|
+
if (holdsSettings(`${agent} refusalHandling`, config.refusalHandling, '{ autoRewind: true }')) {
|
|
41
|
+
assertBooleanSetting(`${agent} refusalHandling.autoRewind`, config.refusalHandling.autoRewind, 'true redacts the turn that tripped a refusal and runs again, up to maxRewinds times, ' +
|
|
42
|
+
'and false or leaving it out doesn\'t');
|
|
43
|
+
}
|
|
44
|
+
assertBooleanSetting(`${agent} toolResultGuard`, config.toolResultGuard, 'true turns on tool-output admission, with one guarded retry after a provider refusal, ' +
|
|
45
|
+
'and false or leaving it out doesn\'t');
|
|
46
|
+
assertBooleanSetting(`${agent} toolWrapperProseGuard`, config.toolWrapperProseGuard, 'true keeps a response whose whole prose is a tool-call-shaped wrapper from running or entering the agent\'s history, ' +
|
|
47
|
+
'and false or leaving it out doesn\'t');
|
|
48
|
+
}
|
|
21
49
|
/**
|
|
22
50
|
* An agent wraps a context manager and manages inference state.
|
|
23
51
|
*/
|
|
@@ -158,6 +186,7 @@ export class Agent {
|
|
|
158
186
|
contextManager;
|
|
159
187
|
membrane;
|
|
160
188
|
constructor(config, contextManager, membrane) {
|
|
189
|
+
assertAgentSwitches(config);
|
|
161
190
|
this.name = config.name;
|
|
162
191
|
this.model = config.model;
|
|
163
192
|
this.systemPrompt = config.systemPrompt;
|
|
@@ -167,11 +196,11 @@ export class Agent {
|
|
|
167
196
|
this.temperature = config.temperature;
|
|
168
197
|
this.thinking = config.thinking;
|
|
169
198
|
this.refusalHandling = config.refusalHandling;
|
|
170
|
-
this.toolResultGuard = new ToolResultGuard(config.name, contextManager, config.toolResultGuard);
|
|
199
|
+
this.toolResultGuard = new ToolResultGuard(config.name, contextManager, config.toolResultGuard === true);
|
|
171
200
|
this.proseRouting = config.proseRouting ?? 'locus';
|
|
172
|
-
this.toolWrapperProseGuard = config.toolWrapperProseGuard
|
|
201
|
+
this.toolWrapperProseGuard = config.toolWrapperProseGuard === true;
|
|
173
202
|
this.cacheTtl = config.cacheTtl ?? '1h';
|
|
174
|
-
this.promptCaching = config.promptCaching
|
|
203
|
+
this.promptCaching = config.promptCaching !== false;
|
|
175
204
|
this.prefillUserMessage = config.prefillUserMessage;
|
|
176
205
|
this.providerParams = config.providerParams;
|
|
177
206
|
this.sameRoundThinkTextPolicy = config.sameRoundThinkTextPolicy;
|
|
@@ -765,18 +794,40 @@ export class Agent {
|
|
|
765
794
|
}
|
|
766
795
|
/**
|
|
767
796
|
* RFC-006 consumed watermark: the newest stored message at the last compile
|
|
768
|
-
* of a model request,
|
|
797
|
+
* of a model request, or at the last tool boundary that injected messages
|
|
798
|
+
* into a live one, per branch. Everything above it has never been in a
|
|
769
799
|
* request and may still be replaced or withdrawn in place by its sender.
|
|
770
800
|
*/
|
|
771
801
|
consumedWatermark = null;
|
|
802
|
+
/** Counts marks: a compile writes its watermark back only if no mark was
|
|
803
|
+
* made while it ran (a tool boundary's, or another compile's). */
|
|
804
|
+
watermarkMarks = 0;
|
|
772
805
|
getConsumedWatermark() {
|
|
773
806
|
return this.consumedWatermark;
|
|
774
807
|
}
|
|
775
|
-
/** Mark everything currently stored as consumed (
|
|
808
|
+
/** Mark everything currently stored as consumed (the agent's creation, at
|
|
809
|
+
* boot or later, and a tool boundary that injected messages into the live
|
|
810
|
+
* stream). */
|
|
776
811
|
markContextConsumed() {
|
|
777
812
|
// Tolerates partial context-manager doubles (tests build Agents over
|
|
778
813
|
// stubs): without a watermark nothing is ever treated as unread.
|
|
779
814
|
this.consumedWatermark = this.pendingWatermark();
|
|
815
|
+
this.watermarkMarks++;
|
|
816
|
+
}
|
|
817
|
+
/**
|
|
818
|
+
* A finished compile's watermark, taken before it awaited. Within a branch
|
|
819
|
+
* the watermark only advances: if a mark was made while the compile ran,
|
|
820
|
+
* the compile's (older) one is applied only where it is later on that
|
|
821
|
+
* mark's branch, so a boundary's mark is never rolled back by a compile
|
|
822
|
+
* that started before it (a preview during a live turn).
|
|
823
|
+
*/
|
|
824
|
+
applyCompileWatermark(watermark, marksBefore) {
|
|
825
|
+
const current = this.consumedWatermark;
|
|
826
|
+
if (this.watermarkMarks !== marksBefore && current
|
|
827
|
+
&& (current.branch !== watermark.branch || current.sequence >= watermark.sequence))
|
|
828
|
+
return;
|
|
829
|
+
this.consumedWatermark = watermark;
|
|
830
|
+
this.watermarkMarks++;
|
|
780
831
|
}
|
|
781
832
|
/** The watermark a successful compile will establish (taken before, applied after). */
|
|
782
833
|
pendingWatermark() {
|
|
@@ -808,10 +859,11 @@ export class Agent {
|
|
|
808
859
|
// RFC-006 §3.3: consumption is determined at assembly — a compile that
|
|
809
860
|
// fails assembled nothing, so the watermark moves only on success.
|
|
810
861
|
const watermark = this.pendingWatermark();
|
|
862
|
+
const marksBefore = this.watermarkMarks;
|
|
811
863
|
const compile = () => this.contextManager.compile(this.compileBudget(budget));
|
|
812
864
|
const result = budget ? await compile() : await this.compileAtLiveBudget(compile);
|
|
813
865
|
if (watermark)
|
|
814
|
-
this.
|
|
866
|
+
this.applyCompileWatermark(watermark, marksBefore);
|
|
815
867
|
return result;
|
|
816
868
|
}
|
|
817
869
|
/**
|
|
@@ -845,10 +897,11 @@ export class Agent {
|
|
|
845
897
|
// compression hold whose deadline has passed, which `compile` does for
|
|
846
898
|
// any compile before it selects.
|
|
847
899
|
const watermark = opts?.dryRun ? null : this.pendingWatermark();
|
|
900
|
+
const marksBefore = this.watermarkMarks;
|
|
848
901
|
const compile = () => this.contextManager.compile(this.compileBudget(budget), injections, opts);
|
|
849
902
|
const result = budget || opts?.dryRun ? await compile() : await this.compileAtLiveBudget(compile);
|
|
850
903
|
if (watermark)
|
|
851
|
-
this.
|
|
904
|
+
this.applyCompileWatermark(watermark, marksBefore);
|
|
852
905
|
return result;
|
|
853
906
|
}
|
|
854
907
|
// ==========================================================================
|
|
@@ -905,15 +958,8 @@ export class Agent {
|
|
|
905
958
|
return {
|
|
906
959
|
messages: this.toolResultGuard.prepareRequest(messages, true),
|
|
907
960
|
system: this.buildSystemPrompt(systemInjections),
|
|
908
|
-
config: {
|
|
909
|
-
model: this.model,
|
|
910
|
-
maxTokens: this.maxTokens,
|
|
911
|
-
...(this.temperature !== undefined && { temperature: this.temperature }),
|
|
912
|
-
...(this.thinking !== undefined && { thinking: this.thinking }),
|
|
913
|
-
},
|
|
914
961
|
tools: tools.length > 0 ? tools : undefined,
|
|
915
|
-
...
|
|
916
|
-
assistantParticipant: this.name,
|
|
962
|
+
...this.requestSettings(),
|
|
917
963
|
};
|
|
918
964
|
};
|
|
919
965
|
const request = await assemble();
|
|
@@ -985,7 +1031,12 @@ export class Agent {
|
|
|
985
1031
|
this._state.completed.push(completed);
|
|
986
1032
|
// If all tools done, transition to ready
|
|
987
1033
|
if (this._state.pending.size === 0) {
|
|
988
|
-
this._state = {
|
|
1034
|
+
this._state = {
|
|
1035
|
+
status: 'ready',
|
|
1036
|
+
toolResults: this._state.completed,
|
|
1037
|
+
stream: this._state.stream,
|
|
1038
|
+
supportsInjectedMessages: this._state.supportsInjectedMessages,
|
|
1039
|
+
};
|
|
989
1040
|
}
|
|
990
1041
|
}
|
|
991
1042
|
/**
|
|
@@ -999,9 +1050,12 @@ export class Agent {
|
|
|
999
1050
|
* Build the membrane-normalized request that WOULD be emitted for this
|
|
1000
1051
|
* agent's next activation, given the supplied tools and injections.
|
|
1001
1052
|
*
|
|
1002
|
-
* This is the single source of truth for
|
|
1003
|
-
* real activation path (`startStreamWithInjections`) and
|
|
1004
|
-
* tooling (`Framework.previewActivation`). It does not call
|
|
1053
|
+
* This is the single source of truth for a framework turn's request,
|
|
1054
|
+
* shared by the real activation path (`startStreamWithInjections`) and
|
|
1055
|
+
* debug/preview tooling (`Framework.previewActivation`). It does not call
|
|
1056
|
+
* the membrane. The direct API (`runInferenceWithInjections`) assembles its
|
|
1057
|
+
* own messages, system prompt and tools, and both take the agent's
|
|
1058
|
+
* settings from `requestSettings()`.
|
|
1005
1059
|
* A compile that is sent commits what the context manager commits for it
|
|
1006
1060
|
* (fold resolutions, the compression its fold plan calls for, the consumed
|
|
1007
1061
|
* watermark); a preview passes `options.dryRun`, so its compile commits
|
|
@@ -1013,7 +1067,7 @@ export class Agent {
|
|
|
1013
1067
|
* may show a withheld stub before its place is added; the activation waits
|
|
1014
1068
|
* for them around its call.
|
|
1015
1069
|
*/
|
|
1016
|
-
async
|
|
1070
|
+
async assembleActivationRequest(availableTools, injections, budget, compressionTools = availableTools, options = {}) {
|
|
1017
1071
|
// Compression may revisit hidden tools in recorded history. Keep its full
|
|
1018
1072
|
// definition set separate from the resident's advertised tools: the
|
|
1019
1073
|
// autobiographical strategy must declare the same tools on its
|
|
@@ -1061,17 +1115,31 @@ export class Agent {
|
|
|
1061
1115
|
(b) => !(b.type === "text" && (typeof b.text !== "string" || b.text.trim() === ""))),
|
|
1062
1116
|
}))
|
|
1063
1117
|
.filter((m) => m.content.length > 0);
|
|
1064
|
-
// Silent heartbeat ticks
|
|
1065
|
-
//
|
|
1066
|
-
// cannot merge the
|
|
1067
|
-
//
|
|
1068
|
-
//
|
|
1069
|
-
//
|
|
1070
|
-
//
|
|
1071
|
-
|
|
1072
|
-
|
|
1118
|
+
// Silent heartbeat ticks and replies to a [Continue] turn store no
|
|
1119
|
+
// prompt row. Render each request-only turn before its response's first
|
|
1120
|
+
// surviving row, so the wire formatter cannot merge the response into the
|
|
1121
|
+
// previous assistant message and every later request keeps the prefix
|
|
1122
|
+
// the response was minted under (see silent-heartbeat.ts for what can
|
|
1123
|
+
// and cannot be matched). The request that minted the response ended on
|
|
1124
|
+
// that same turn, so the prefix it caches is the one every later compile
|
|
1125
|
+
// renders. "First" is per agent: a broadcast tick shares its eventId with
|
|
1126
|
+
// every resident.
|
|
1127
|
+
const index = this.indexRequestOnlyRows();
|
|
1128
|
+
const rendered = renderRequestOnlyRows(messages, index, this.name);
|
|
1129
|
+
messages = rendered.messages;
|
|
1130
|
+
// A tick opens wherever its separator isn't already rendered: on its first
|
|
1131
|
+
// request, and on a restart whose compile left none of the tick's rows,
|
|
1132
|
+
// so the restart's reply follows the separator, where every later compile
|
|
1133
|
+
// renders it.
|
|
1073
1134
|
const openingTick = options.silentHeartbeat !== undefined
|
|
1074
|
-
&& !
|
|
1135
|
+
&& !rendered.separatedTicks.has(tickKey(options.silentHeartbeat));
|
|
1136
|
+
// The [Continue] prompt this request's reply follows, read from the
|
|
1137
|
+
// request itself: a new one when it ends on [Continue]; else, when it
|
|
1138
|
+
// ends on tool results, the prompt of the reply that called those tools,
|
|
1139
|
+
// whose tool loop this reply continues; else none. A request that ends
|
|
1140
|
+
// on anything else (a message that arrived during a cooldown, say) gets
|
|
1141
|
+
// a reply that follows that message and carries no prompt.
|
|
1142
|
+
let continuePrompt;
|
|
1075
1143
|
if (openingTick) {
|
|
1076
1144
|
messages = [...messages, silentHeartbeatSeparatorTurn()];
|
|
1077
1145
|
}
|
|
@@ -1079,47 +1147,68 @@ export class Agent {
|
|
|
1079
1147
|
// Safety: ensure messages don't end with an assistant message.
|
|
1080
1148
|
// Some models reject trailing assistant messages ("prefill not supported"),
|
|
1081
1149
|
// and after context compression a stale assistant turn can end up last.
|
|
1082
|
-
messages = [...messages,
|
|
1083
|
-
|
|
1084
|
-
content: [{ type: 'text', text: '[Continue]' }],
|
|
1085
|
-
}];
|
|
1150
|
+
messages = [...messages, continueTurn()];
|
|
1151
|
+
continuePrompt = { turn: randomUUID(), text: CONTINUE_ROW };
|
|
1086
1152
|
}
|
|
1087
|
-
|
|
1153
|
+
else {
|
|
1154
|
+
continuePrompt = toolLoopPrompt(messages.at(-1), index);
|
|
1155
|
+
}
|
|
1156
|
+
const request = {
|
|
1088
1157
|
messages: this.toolResultGuard.prepareRequest(messages),
|
|
1089
1158
|
system: this.buildSystemPrompt(systemInjections),
|
|
1159
|
+
tools: availableTools.length > 0 ? availableTools : undefined,
|
|
1160
|
+
...this.requestSettings(),
|
|
1161
|
+
...(kvUnified ? { cacheMarkers: 'cm-owned' } : {}),
|
|
1162
|
+
};
|
|
1163
|
+
return { request, ...(continuePrompt ? { continuePrompt } : {}) };
|
|
1164
|
+
}
|
|
1165
|
+
/**
|
|
1166
|
+
* The request fields that come from this agent's own settings: its model
|
|
1167
|
+
* config, prompt caching and cache TTL, prefill message, provider
|
|
1168
|
+
* parameters and participant name. Every request the agent sends takes
|
|
1169
|
+
* them from here, a framework turn's (assembleActivationRequest) and the
|
|
1170
|
+
* direct API's (runInferenceWithInjections), so a setting reaches both or
|
|
1171
|
+
* neither.
|
|
1172
|
+
*/
|
|
1173
|
+
requestSettings() {
|
|
1174
|
+
return {
|
|
1090
1175
|
config: {
|
|
1091
1176
|
model: this.model,
|
|
1092
1177
|
maxTokens: this.maxTokens,
|
|
1093
1178
|
...(this.temperature !== undefined && { temperature: this.temperature }),
|
|
1094
1179
|
...(this.thinking !== undefined && { thinking: this.thinking }),
|
|
1095
1180
|
},
|
|
1096
|
-
tools: availableTools.length > 0 ? availableTools : undefined,
|
|
1097
1181
|
promptCaching: this.promptCaching,
|
|
1098
|
-
...(kvUnified ? { cacheMarkers: 'cm-owned' } : {}),
|
|
1099
1182
|
cacheTtl: this.cacheTtl,
|
|
1100
1183
|
...(this.prefillUserMessage && { prefillUserMessage: this.prefillUserMessage }),
|
|
1101
1184
|
...(this.providerParams && { providerParams: this.providerParams }),
|
|
1102
1185
|
assistantParticipant: this.name,
|
|
1103
1186
|
};
|
|
1104
1187
|
}
|
|
1105
|
-
/**
|
|
1106
|
-
*
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1188
|
+
/** The request `assembleActivationRequest` builds (see there), for preview
|
|
1189
|
+
* and debug tooling: what this agent's next activation would send. */
|
|
1190
|
+
async buildActivationRequest(availableTools, injections, budget, compressionTools = availableTools, options = {}) {
|
|
1191
|
+
return (await this.assembleActivationRequest(availableTools, injections, budget, compressionTools, options)).request;
|
|
1192
|
+
}
|
|
1193
|
+
/** Stored rows that follow a request-only turn, memoized on the store's
|
|
1194
|
+
* cached message array (ContextManager returns the same array until the
|
|
1195
|
+
* store changes). */
|
|
1196
|
+
requestOnlyIndex = null;
|
|
1197
|
+
indexRequestOnlyRows() {
|
|
1198
|
+
const empty = { ticks: new Map(), prompts: new Map() };
|
|
1110
1199
|
const cm = this.contextManager;
|
|
1111
1200
|
if (typeof cm.getAllMessages !== 'function')
|
|
1112
1201
|
return empty;
|
|
1113
1202
|
try {
|
|
1114
1203
|
const stored = cm.getAllMessages();
|
|
1115
|
-
if (this.
|
|
1116
|
-
return this.
|
|
1117
|
-
const index =
|
|
1118
|
-
this.
|
|
1204
|
+
if (this.requestOnlyIndex?.source === stored)
|
|
1205
|
+
return this.requestOnlyIndex.index;
|
|
1206
|
+
const index = indexRequestOnlyRows(stored, this.name);
|
|
1207
|
+
this.requestOnlyIndex = { source: stored, index };
|
|
1119
1208
|
return index;
|
|
1120
1209
|
}
|
|
1121
1210
|
catch (error) {
|
|
1122
|
-
console.error(`[
|
|
1211
|
+
console.error(`[request-only-rows] ${this.name}: could not index stored rows; request-only turns omitted:`, error);
|
|
1123
1212
|
return empty;
|
|
1124
1213
|
}
|
|
1125
1214
|
}
|
|
@@ -1147,6 +1236,15 @@ export class Agent {
|
|
|
1147
1236
|
// flight" (devops agent, 2026-09-16 07:33Z, no provider error logged).
|
|
1148
1237
|
this.failOpenKvSubmissions();
|
|
1149
1238
|
this._streamId++;
|
|
1239
|
+
// A pending cancel belongs to the stream that was live when cancelStream()
|
|
1240
|
+
// ran. The stream driver collects it on that stream's terminal event, or
|
|
1241
|
+
// at the loop's end when the iterator closed without one, while the
|
|
1242
|
+
// stream still owns the agent. This clear is for the records no driver
|
|
1243
|
+
// collects: a dropped turn's, whose stream no driver iterates; one whose
|
|
1244
|
+
// stream's terminal came after another stream took the agent; or a
|
|
1245
|
+
// cancel after the stream's complete event. A fresh stream must not
|
|
1246
|
+
// inherit one and read its own later error as a deliberate stop.
|
|
1247
|
+
this._pendingCancel = undefined;
|
|
1150
1248
|
this._inferenceStartedAt = Date.now();
|
|
1151
1249
|
this.lastStreamInputTokens = 0;
|
|
1152
1250
|
// Reset the cache-inclusive counters too: a new stream must not inherit
|
|
@@ -1163,7 +1261,7 @@ export class Agent {
|
|
|
1163
1261
|
// Compiled only once each withheld stub's annotation has finished,
|
|
1164
1262
|
// including one that began during the compile, and after a stub edit that
|
|
1165
1263
|
// failed has been retried (see afterAnnotations).
|
|
1166
|
-
const request = await this.toolResultGuard.afterAnnotations(() => this.
|
|
1264
|
+
const { request, continuePrompt } = await this.toolResultGuard.afterAnnotations(() => this.assembleActivationRequest(availableTools, injections, budget, compressionTools, options));
|
|
1167
1265
|
request.messages = this.toolResultGuard.prepareRequest(request.messages, true);
|
|
1168
1266
|
const receiptAware = this.contextManager
|
|
1169
1267
|
.getStrategy?.();
|
|
@@ -1206,6 +1304,7 @@ export class Agent {
|
|
|
1206
1304
|
return {
|
|
1207
1305
|
stream,
|
|
1208
1306
|
request,
|
|
1307
|
+
...(continuePrompt ? { continuePrompt } : {}),
|
|
1209
1308
|
...(kvEnabled
|
|
1210
1309
|
? {
|
|
1211
1310
|
takeKvSubmission: () => kvQueue.shift(),
|
|
@@ -1237,9 +1336,10 @@ export class Agent {
|
|
|
1237
1336
|
}
|
|
1238
1337
|
/**
|
|
1239
1338
|
* Transition to waiting_for_tools when stream yields tool calls.
|
|
1240
|
-
* Called by framework's driveStream
|
|
1339
|
+
* Called by framework's driveStream, with what the stream declared about
|
|
1340
|
+
* carrying injected messages with this round's results (see AgentState).
|
|
1241
1341
|
*/
|
|
1242
|
-
enterWaitingForTools(calls, stream) {
|
|
1342
|
+
enterWaitingForTools(calls, stream, supportsInjectedMessages) {
|
|
1243
1343
|
const pending = new Map();
|
|
1244
1344
|
for (const call of calls) {
|
|
1245
1345
|
pending.set(call.id, {
|
|
@@ -1249,7 +1349,7 @@ export class Agent {
|
|
|
1249
1349
|
startedAt: Date.now(),
|
|
1250
1350
|
});
|
|
1251
1351
|
}
|
|
1252
|
-
this._state = { status: 'waiting_for_tools', pending, completed: [], stream };
|
|
1352
|
+
this._state = { status: 'waiting_for_tools', pending, completed: [], stream, supportsInjectedMessages };
|
|
1253
1353
|
}
|
|
1254
1354
|
/**
|
|
1255
1355
|
* Add an assistant response to context.
|
|
@@ -1285,18 +1385,59 @@ export class Agent {
|
|
|
1285
1385
|
setStreaming(stream) {
|
|
1286
1386
|
this._state = { status: 'streaming', stream };
|
|
1287
1387
|
}
|
|
1388
|
+
/** The most recent cancelStream() of a live stream, until the stream
|
|
1389
|
+
* driver collects it on that stream's terminal event. Its presence is
|
|
1390
|
+
* the signal (a reasonless Stop is still a deliberate stop); its reason
|
|
1391
|
+
* is the caller's own word. Membrane reports every cancel() as reason
|
|
1392
|
+
* 'user' — the call, not the actor — and a stream implementation may
|
|
1393
|
+
* report the cancel as `error` with no reason at all, so this record is
|
|
1394
|
+
* the only provenance a host-side cancel has. */
|
|
1395
|
+
_pendingCancel;
|
|
1396
|
+
/** The most recent cancelStream() made while this agent held no stream:
|
|
1397
|
+
* during a turn's hooks or compile, while it waits to retry, or while no
|
|
1398
|
+
* check of a turn is ahead at all. The framework collects it at the check
|
|
1399
|
+
* ahead of it, which ends the turn, and the next start drops one no check
|
|
1400
|
+
* collected, so a stop made while none was ahead, such as a host's
|
|
1401
|
+
* interrupt of every agent, ends nothing. */
|
|
1402
|
+
_stopWithoutStream;
|
|
1288
1403
|
/**
|
|
1289
|
-
* Cancel
|
|
1404
|
+
* Cancel the stream this agent's state holds (streaming, waiting on its
|
|
1405
|
+
* tools, or ready at a tool boundary with every result in), and reset to
|
|
1406
|
+
* idle. With no stream, the stop is kept for the turn in progress, which
|
|
1407
|
+
* the framework ends at its next check, before it sends anything more, if
|
|
1408
|
+
* one is still ahead; otherwise the next start drops it. `reason` is
|
|
1409
|
+
* provenance for the framework's inference:aborted trace and marker
|
|
1410
|
+
* metadata (e.g. 'zombie_reclaim', 'subagent_cancel'); it never reaches
|
|
1411
|
+
* the provider.
|
|
1290
1412
|
*/
|
|
1291
|
-
cancelStream() {
|
|
1292
|
-
if (this._state
|
|
1413
|
+
cancelStream(reason) {
|
|
1414
|
+
if ('stream' in this._state && this._state.stream) {
|
|
1415
|
+
this._pendingCancel = { reason };
|
|
1293
1416
|
this._state.stream.cancel();
|
|
1294
1417
|
}
|
|
1295
|
-
else
|
|
1296
|
-
this.
|
|
1418
|
+
else {
|
|
1419
|
+
this._stopWithoutStream = { reason };
|
|
1297
1420
|
}
|
|
1298
1421
|
this._state = { status: 'idle' };
|
|
1299
1422
|
}
|
|
1423
|
+
/** Collect (and clear) the cancelStream() made while this agent held no
|
|
1424
|
+
* stream, if one was made since the last collection. */
|
|
1425
|
+
takeStopWithoutStream() {
|
|
1426
|
+
const s = this._stopWithoutStream;
|
|
1427
|
+
this._stopWithoutStream = undefined;
|
|
1428
|
+
return s;
|
|
1429
|
+
}
|
|
1430
|
+
/** Collect (and clear) the cancel that ended the current stream, if this
|
|
1431
|
+
* side issued one. The stream driver calls it once, while the stream
|
|
1432
|
+
* still owns the agent, at the stream's terminal event (`aborted`
|
|
1433
|
+
* normally, `error` for implementations that report cancel() that way)
|
|
1434
|
+
* or at the loop's end when the stream closed without one. A record no
|
|
1435
|
+
* driver collects is cleared when the agent's next stream starts. */
|
|
1436
|
+
takeCancel() {
|
|
1437
|
+
const c = this._pendingCancel;
|
|
1438
|
+
this._pendingCancel = undefined;
|
|
1439
|
+
return c;
|
|
1440
|
+
}
|
|
1300
1441
|
/**
|
|
1301
1442
|
* Check if agent has pending tool calls.
|
|
1302
1443
|
*/
|
|
@@ -1325,18 +1466,18 @@ export class Agent {
|
|
|
1325
1466
|
return this.contextManager;
|
|
1326
1467
|
}
|
|
1327
1468
|
/**
|
|
1328
|
-
* Build the effective system prompt, appending any system-position
|
|
1469
|
+
* Build the effective system prompt, appending any system-position
|
|
1470
|
+
* injections, their blocks joined by line breaks. The system prompt is
|
|
1471
|
+
* text, so a block of another type, such as an image a server or module
|
|
1472
|
+
* injected there, can't go in it: a line in its place says so. The hook
|
|
1473
|
+
* orchestrator tells a server's operator once per server and namespace,
|
|
1474
|
+
* and the module registry tells a module's once per module and namespace.
|
|
1329
1475
|
*/
|
|
1330
1476
|
buildSystemPrompt(systemInjections) {
|
|
1331
1477
|
if (systemInjections.length === 0) {
|
|
1332
1478
|
return this.systemPrompt;
|
|
1333
1479
|
}
|
|
1334
|
-
const injectedText = systemInjections
|
|
1335
|
-
.filter((block) => block.type === 'text')
|
|
1336
|
-
.map((block) => block.text);
|
|
1337
|
-
if (injectedText.length === 0) {
|
|
1338
|
-
return this.systemPrompt;
|
|
1339
|
-
}
|
|
1480
|
+
const injectedText = systemInjections.map((block) => block.type === 'text' ? block.text : `[${block.type} block not shown: the system prompt carries text only.]`);
|
|
1340
1481
|
return this.systemPrompt + '\n' + injectedText.join('\n');
|
|
1341
1482
|
}
|
|
1342
1483
|
abortInference(reason) {
|
|
@@ -1345,10 +1486,9 @@ export class Agent {
|
|
|
1345
1486
|
this._state.abortController.abort(reason);
|
|
1346
1487
|
return { aborted: true, durationMs };
|
|
1347
1488
|
}
|
|
1348
|
-
if (this._state
|
|
1349
|
-
(this._state.status === 'waiting_for_tools' && this._state.stream)) {
|
|
1489
|
+
if ('stream' in this._state && this._state.stream) {
|
|
1350
1490
|
const durationMs = Date.now() - this._inferenceStartedAt;
|
|
1351
|
-
this.cancelStream();
|
|
1491
|
+
this.cancelStream(reason);
|
|
1352
1492
|
return { aborted: true, durationMs };
|
|
1353
1493
|
}
|
|
1354
1494
|
return false;
|