@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/types/framework.ts
CHANGED
|
@@ -24,8 +24,6 @@ export interface ModuleProcessResponse {
|
|
|
24
24
|
export interface ProcessLoggingConfig {
|
|
25
25
|
/** Persist process logs to Chronicle (default: false) */
|
|
26
26
|
persist?: boolean;
|
|
27
|
-
/** Broadcast process:completed trace events (default: false) */
|
|
28
|
-
broadcast?: boolean;
|
|
29
27
|
}
|
|
30
28
|
|
|
31
29
|
/**
|
|
@@ -41,7 +39,9 @@ export interface ProcessLoggingConfig {
|
|
|
41
39
|
* the agent already has broader host access through its tools).
|
|
42
40
|
*/
|
|
43
41
|
export interface CodeExecutionConfig {
|
|
44
|
-
/** Master switch —
|
|
42
|
+
/** Master switch — only `true` synthesizes the tool. `create()` refuses a
|
|
43
|
+
* value that isn't a boolean, a quoted "false" included; `null` or leaving
|
|
44
|
+
* it out counts as off. */
|
|
45
45
|
enabled: boolean;
|
|
46
46
|
/** Python interpreter to spawn (default: 'python3' from PATH). */
|
|
47
47
|
pythonPath?: string;
|
|
@@ -74,6 +74,23 @@ export interface CodeExecutionConfig {
|
|
|
74
74
|
/** Max wake_agent() calls per background script (default 100); further
|
|
75
75
|
* calls raise RuntimeError inside the script. */
|
|
76
76
|
maxWakesPerScript?: number;
|
|
77
|
+
/** Variables for the python interpreter beyond the operating allowlist it
|
|
78
|
+
* inherits (see CHILD_ENV_ALLOWLIST), such as PYTHONPATH. A recipe can
|
|
79
|
+
* `${VAR}`-substitute them from .env. Other host variables aren't
|
|
80
|
+
* inherited, which limits what model-authored code inherits, not what a
|
|
81
|
+
* process running as the same user can read. The runner sets
|
|
82
|
+
* PYTHONUNBUFFERED and PYTHONIOENCODING last, over any value given here,
|
|
83
|
+
* since its protocol needs both. The interpreter's working directory is
|
|
84
|
+
* its own runtime directory, so a relative path given here, as in
|
|
85
|
+
* PYTHONPATH, resolves there: give absolute paths. */
|
|
86
|
+
env?: Record<string, string>;
|
|
87
|
+
/** The interpreter inherits the host's whole environment instead of the
|
|
88
|
+
* allowlist: every host variable, provider keys included, reaches
|
|
89
|
+
* model-authored code and every subprocess a script starts. Listing what
|
|
90
|
+
* scripts need in `env` is the safer route. With code execution enabled,
|
|
91
|
+
* `create()` refuses any value but true, false or null, which counts as
|
|
92
|
+
* not set. */
|
|
93
|
+
inheritEnv?: boolean;
|
|
77
94
|
}
|
|
78
95
|
|
|
79
96
|
/** See `FrameworkConfig.providerHold`. */
|
|
@@ -210,7 +227,9 @@ export interface FrameworkConfig {
|
|
|
210
227
|
|
|
211
228
|
/**
|
|
212
229
|
* Client-side programmatic tool calling (`code_execution` tool). Omitted or
|
|
213
|
-
* `enabled: false` → tool absent, no python is ever spawned.
|
|
230
|
+
* `enabled: false` → tool absent, no python is ever spawned. At runtime,
|
|
231
|
+
* untyped configs may also use `null` or `false` to omit this setting.
|
|
232
|
+
* Other values that aren't objects are refused at `create()`.
|
|
214
233
|
*/
|
|
215
234
|
codeExecution?: CodeExecutionConfig;
|
|
216
235
|
|
|
@@ -411,20 +430,32 @@ export interface InferenceLogEntry {
|
|
|
411
430
|
requestId: string;
|
|
412
431
|
/** Whether inference succeeded */
|
|
413
432
|
success: boolean;
|
|
414
|
-
/**
|
|
433
|
+
/** Why it didn't succeed: the failure's message, or what stopped it */
|
|
415
434
|
error?: string;
|
|
416
|
-
/** Request data or blob ID if large
|
|
435
|
+
/** Request data or blob ID if large. A stream the framework ended at a
|
|
436
|
+
* tool boundary (stopReason 'turn_ended', 'context_budget' or
|
|
437
|
+
* 'physical_window') records a note in place of the body. */
|
|
417
438
|
request: unknown | { blobId: string };
|
|
418
439
|
/** Response data or blob ID if large (only if successful) */
|
|
419
440
|
response?: unknown | { blobId: string };
|
|
420
441
|
durationMs: number;
|
|
442
|
+
/** The stream's usage: its final response's, or, for a stream that ended
|
|
443
|
+
* without one, the provider rounds it finished before it ended. Exactly
|
|
444
|
+
* one entry of a stream carries it, the one its end wrote, a stop's
|
|
445
|
+
* included; a stream whose end writes none (a superseded stream, a
|
|
446
|
+
* disposed agent's stream) gets a failure entry that carries it, when it
|
|
447
|
+
* had finished a round. One that hadn't has nothing to carry and gets no
|
|
448
|
+
* entry. */
|
|
421
449
|
tokenUsage?: {
|
|
422
450
|
input: number;
|
|
423
451
|
output: number;
|
|
424
452
|
cacheCreation?: number;
|
|
425
453
|
cacheRead?: number;
|
|
426
454
|
};
|
|
427
|
-
/** Stop reason from the model
|
|
455
|
+
/** Stop reason from the model, or why the framework ended the stream at a
|
|
456
|
+
* tool boundary: 'turn_ended' (a tool result with endTurn), or
|
|
457
|
+
* 'context_budget' / 'physical_window' (a context-budget or
|
|
458
|
+
* physical-window restart). */
|
|
428
459
|
stopReason?: string;
|
|
429
460
|
}
|
|
430
461
|
|
package/src/types/module.ts
CHANGED
|
@@ -15,17 +15,43 @@ import type { TraceEventListener } from './trace.js';
|
|
|
15
15
|
export interface MessageQuery {
|
|
16
16
|
/** Filter by external source (e.g., 'discord') */
|
|
17
17
|
source?: string;
|
|
18
|
+
/** Filter by external IDs: messages whose metadata.external.id is one of these. An empty list filters nothing. */
|
|
19
|
+
externalIds?: string[];
|
|
18
20
|
/** Filter by participant name */
|
|
19
21
|
participant?: string;
|
|
20
|
-
/** Filter by metadata fields
|
|
22
|
+
/** Filter by metadata fields: each key a path, dot-separated for a nested
|
|
23
|
+
* field (such as 'external.channelId'), its value compared by strict
|
|
24
|
+
* equality */
|
|
21
25
|
metadata?: Record<string, unknown>;
|
|
22
26
|
}
|
|
23
27
|
|
|
28
|
+
/**
|
|
29
|
+
* A message as a module context's reads answer it: a stored row, or a row
|
|
30
|
+
* for a write the framework holds (`held`).
|
|
31
|
+
*/
|
|
32
|
+
export type ModuleMessage = StoredMessage & {
|
|
33
|
+
/**
|
|
34
|
+
* True while the framework holds the message's write, as it does while
|
|
35
|
+
* the write's agent has a turn alive or the host is quiesced, until a
|
|
36
|
+
* later boundary stores it. The row's `id` is then a handle, which
|
|
37
|
+
* getMessage, editMessage and removeMessage take as they take a stored
|
|
38
|
+
* id, and which names the stored row once the write lands. Its `sequence`
|
|
39
|
+
* and `timestamp` are provisional: the sequence comes after every stored
|
|
40
|
+
* row's, the timestamp is when the framework held the write (for a write
|
|
41
|
+
* an older release held, when its queue was read back), and both change
|
|
42
|
+
* when it lands. Absent on a stored row.
|
|
43
|
+
*/
|
|
44
|
+
held?: true;
|
|
45
|
+
};
|
|
46
|
+
|
|
24
47
|
/**
|
|
25
48
|
* Result of a message query.
|
|
26
49
|
*/
|
|
27
50
|
export interface MessageQueryResult {
|
|
28
|
-
|
|
51
|
+
/** The matching stored rows, then, as the newest, the matching rows of
|
|
52
|
+
* writes the framework holds (ModuleMessage.held): before the stored rows
|
|
53
|
+
* in a reversed query */
|
|
54
|
+
messages: ModuleMessage[];
|
|
29
55
|
totalCount: number;
|
|
30
56
|
}
|
|
31
57
|
|
|
@@ -53,7 +79,12 @@ export interface Module {
|
|
|
53
79
|
|
|
54
80
|
/**
|
|
55
81
|
* Stop the module.
|
|
56
|
-
* Called when the framework stops or when the module is removed.
|
|
82
|
+
* Called when the framework stops or when the module is removed. Also called
|
|
83
|
+
* when a create() that started the module fails (#389): create() stops the
|
|
84
|
+
* framework before it rejects, so before the host has it and before anything
|
|
85
|
+
* a host wires up after create() returns, such as a WorkspaceModule's
|
|
86
|
+
* initStore(). A stop() that saves state can therefore run before that
|
|
87
|
+
* wiring, and shouldn't then save over state it was handed and hasn't used.
|
|
57
88
|
*/
|
|
58
89
|
stop(): Promise<void>;
|
|
59
90
|
|
|
@@ -184,8 +215,11 @@ export interface ModuleContext {
|
|
|
184
215
|
* `modules/<module>/<name>`. Idempotent — safe to call on every start().
|
|
185
216
|
* Items are appended with `appendToLog` (one O(item) record per append) and
|
|
186
217
|
* point-edited with `editLogItem`; Chronicle's append_log snapshot cadence
|
|
187
|
-
* handles consolidation.
|
|
188
|
-
*
|
|
218
|
+
* handles consolidation. The cadence applies when the state is first
|
|
219
|
+
* registered: a store that already holds the state keeps the cadence it was
|
|
220
|
+
* registered with. `name` must not be 'state' (reserved for the main
|
|
221
|
+
* snapshot state) and must not contain '/'. A registration that fails
|
|
222
|
+
* throws, naming the state, and leaves the name unregistered.
|
|
189
223
|
*/
|
|
190
224
|
registerLogState(
|
|
191
225
|
name: string,
|
|
@@ -239,7 +273,14 @@ export interface ModuleContext {
|
|
|
239
273
|
getModule<T extends Module>(name: string): T | null;
|
|
240
274
|
|
|
241
275
|
/**
|
|
242
|
-
* Add a message to the conversation.
|
|
276
|
+
* Add a message to the conversation, and answer its id. While the
|
|
277
|
+
* framework holds the write (the agent's turn is alive, or the host is
|
|
278
|
+
* quiesced), the id is a handle, `held:` and the write's id, which
|
|
279
|
+
* getMessage, editMessage and removeMessage take as they take a stored
|
|
280
|
+
* id, and which names the stored row once the write lands
|
|
281
|
+
* (ModuleMessage.held). The writes a process held, and keeps across a
|
|
282
|
+
* restart, show to the next process's modules once create() has restored
|
|
283
|
+
* them, which is after every module's start().
|
|
243
284
|
*/
|
|
244
285
|
addMessage(
|
|
245
286
|
participant: string,
|
|
@@ -248,28 +289,40 @@ export interface ModuleContext {
|
|
|
248
289
|
): MessageId;
|
|
249
290
|
|
|
250
291
|
/**
|
|
251
|
-
* Edit a message.
|
|
292
|
+
* Edit a message, by its id or a held write's handle. A held write is
|
|
293
|
+
* stored with the new content.
|
|
252
294
|
*/
|
|
253
295
|
editMessage(id: MessageId, content: ContentBlock[]): void;
|
|
254
296
|
|
|
255
297
|
/**
|
|
256
|
-
* Remove a message.
|
|
298
|
+
* Remove a message, by its id or a held write's handle. A held write is
|
|
299
|
+
* dropped, so the agent never reads it.
|
|
257
300
|
*/
|
|
258
301
|
removeMessage(id: MessageId): void;
|
|
259
302
|
|
|
260
303
|
/**
|
|
261
|
-
* Find
|
|
304
|
+
* Find the message for an external ID this context added a message under:
|
|
305
|
+
* the row it added, while the store holds it. For a write the framework
|
|
306
|
+
* held, whose id this context doesn't keep, the first row the store shows
|
|
307
|
+
* under that external ID, held rows included, a held row by its handle.
|
|
308
|
+
* Null when this context added none under it, when the row it added is
|
|
309
|
+
* gone, or when the store shows none for a held write, such as one the
|
|
310
|
+
* last process held, looked up in start().
|
|
262
311
|
*/
|
|
263
312
|
findMessageByExternalId(source: string, externalId: string): MessageId | null;
|
|
264
313
|
|
|
265
314
|
/**
|
|
266
|
-
* Get a message by
|
|
315
|
+
* Get a message by its id or a held write's handle.
|
|
267
316
|
*/
|
|
268
|
-
getMessage(id: MessageId):
|
|
317
|
+
getMessage(id: MessageId): ModuleMessage | null;
|
|
269
318
|
|
|
270
319
|
/**
|
|
271
320
|
* Query messages by filter criteria.
|
|
272
321
|
* Useful for finding messages from external sources, by participant, etc.
|
|
322
|
+
* The rows of writes the framework holds come after the stored rows, as
|
|
323
|
+
* the newest, or before them in a reversed query, marked `held`
|
|
324
|
+
* (ModuleMessage). Those the last process held show once create() has
|
|
325
|
+
* restored them, after every module's start() (addMessage).
|
|
273
326
|
*/
|
|
274
327
|
queryMessages(filter: MessageQuery): MessageQueryResult;
|
|
275
328
|
|
|
@@ -322,7 +375,8 @@ export interface ModuleContext {
|
|
|
322
375
|
* Modules use this to react to agent lifecycle without polling — e.g. an
|
|
323
376
|
* adapter that wants to show a "typing" indicator can bracket it between
|
|
324
377
|
* `inference:started` and the terminal events: `inference:completed` (the
|
|
325
|
-
*
|
|
378
|
+
* model answered and the turn ended, with a final response or with a tool
|
|
379
|
+
* result that ended it, which `inference:turn_ended` then follows),
|
|
326
380
|
* `inference:aborted`, `inference:failed` and `inference:exhausted`, all of
|
|
327
381
|
* which carry `agentName`. A turn's tool-call cycles stay inside its
|
|
328
382
|
* stream, so one bracket spans them. A context-budget restart emits
|
|
@@ -436,12 +490,14 @@ export interface EventResponse {
|
|
|
436
490
|
addMessages?: NewMessage[];
|
|
437
491
|
|
|
438
492
|
/**
|
|
439
|
-
* Messages to edit
|
|
493
|
+
* Messages to edit, each by its id or a held write's handle
|
|
494
|
+
* (ModuleContext.editMessage).
|
|
440
495
|
*/
|
|
441
496
|
editMessages?: MessageEdit[];
|
|
442
497
|
|
|
443
498
|
/**
|
|
444
|
-
* Messages to remove
|
|
499
|
+
* Messages to remove, each by its id or a held write's handle
|
|
500
|
+
* (ModuleContext.removeMessage).
|
|
445
501
|
*/
|
|
446
502
|
removeMessages?: MessageId[];
|
|
447
503
|
|
|
@@ -512,6 +568,15 @@ export interface SpeechContext {
|
|
|
512
568
|
* Empty when no tool calls were made.
|
|
513
569
|
*/
|
|
514
570
|
thoughts?: ContentBlock[];
|
|
571
|
+
|
|
572
|
+
/**
|
|
573
|
+
* The turn this speech ends: the same id as `ToolCall.callerTurnId` on the
|
|
574
|
+
* calls made in it (its model's calls and its foreground scripts' inner
|
|
575
|
+
* calls), kept across the turn's streams (a context-budget restart or a
|
|
576
|
+
* retry), and larger for the agent's next turn. Unique only within one run
|
|
577
|
+
* of the process.
|
|
578
|
+
*/
|
|
579
|
+
turnId?: number;
|
|
515
580
|
}
|
|
516
581
|
|
|
517
582
|
/**
|
package/src/types/trace.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ProcessEvent } from './events.js';
|
|
2
2
|
import type { ModuleProcessResponse } from './framework.js';
|
|
3
3
|
import type { SessionUsage } from '../usage/types.js';
|
|
4
|
+
import type { DraftReason } from '../prose-drafts.js';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Base for all trace events.
|
|
@@ -55,6 +56,12 @@ export type TraceEvent =
|
|
|
55
56
|
silent?: boolean;
|
|
56
57
|
})
|
|
57
58
|
| (TraceEventBase & {
|
|
59
|
+
/**
|
|
60
|
+
* The model answered and the turn ended: with the stream's final
|
|
61
|
+
* response, or with a tool result carrying `endTurn`, which
|
|
62
|
+
* `inference:turn_ended` then follows. `tokenUsage` is the stream's
|
|
63
|
+
* usage, cumulative across its rounds.
|
|
64
|
+
*/
|
|
58
65
|
type: 'inference:completed';
|
|
59
66
|
agentName: string;
|
|
60
67
|
durationMs: number;
|
|
@@ -66,11 +73,13 @@ export type TraceEvent =
|
|
|
66
73
|
/** How long this start of the turn ran; after a context-budget restart, from the restart. */
|
|
67
74
|
durationMs: number;
|
|
68
75
|
/**
|
|
69
|
-
* Why the turn ended unfinished: the reason
|
|
70
|
-
* `abortInference
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
76
|
+
* Why the turn ended unfinished: the reason its canceller gave
|
|
77
|
+
* `abortInference` or `Agent.cancelStream` (`'user'` when it gave
|
|
78
|
+
* none), `'shutdown'` for a turn `stop()` cancelled,
|
|
79
|
+
* `'quiesce_abandoned'` for a turn an operator quiesce abandoned, or,
|
|
80
|
+
* for a turn dropped before it sent anything (its agent replaced or
|
|
81
|
+
* removed, or the framework stopping or restarted), a sentence saying
|
|
82
|
+
* which.
|
|
74
83
|
*/
|
|
75
84
|
reason?: string;
|
|
76
85
|
})
|
|
@@ -304,7 +313,13 @@ export type TraceEvent =
|
|
|
304
313
|
messageId?: string;
|
|
305
314
|
})
|
|
306
315
|
/** RFC-006 coalescing decision record (received / displaced / removed /
|
|
307
|
-
* rendered / revoked / render-cancelled / late-render / render-failed).
|
|
316
|
+
* rendered / revoked / render-cancelled / late-render / render-failed).
|
|
317
|
+
* A late-render whose push/render had already timed out, its fallback
|
|
318
|
+
* materialized, is recorded by the connection's wiring rather than the
|
|
319
|
+
* coalescer: it names `serverId`, `featureSet`, `key` and, for a
|
|
320
|
+
* channel-scoped subject, `channelId` instead of `subject`, carries a late
|
|
321
|
+
* JSON-RPC error as `error` (`[code] message`, bounded), and its `eventId`
|
|
322
|
+
* links it to the batch's render-failed. */
|
|
308
323
|
| (TraceEventBase & {
|
|
309
324
|
type: 'mcpl:coalescing';
|
|
310
325
|
kind: string;
|
|
@@ -455,6 +470,9 @@ export type TraceEvent =
|
|
|
455
470
|
channelId: string;
|
|
456
471
|
reason: string;
|
|
457
472
|
textLen: number;
|
|
473
|
+
/** `failed`: nothing was posted; `unknown`: the request was dispatched
|
|
474
|
+
* and no valid receipt came back, so it may have been. */
|
|
475
|
+
outcome?: 'failed' | 'unknown';
|
|
458
476
|
})
|
|
459
477
|
|
|
460
478
|
// Admin puppet: an operator executed a tool AS an agent and stored the
|
|
@@ -570,10 +588,51 @@ export type TraceEvent =
|
|
|
570
588
|
suggestion?: string;
|
|
571
589
|
hint: string;
|
|
572
590
|
})
|
|
591
|
+
| (TraceEventBase & {
|
|
592
|
+
/** An inbound RPC request/notification handler failed: it threw or
|
|
593
|
+
* rejected, or it resolved after a reply write of its own failed or
|
|
594
|
+
* after it tried to answer a second time. */
|
|
595
|
+
type: 'mcpl:request-handler-error';
|
|
596
|
+
serverId: string;
|
|
597
|
+
/** Connection event name, e.g. channels-register or push-event. */
|
|
598
|
+
event: string;
|
|
599
|
+
/** The request's id when it is a number, or a string id bounded as the
|
|
600
|
+
* other texts here are: control, format and line-separator characters
|
|
601
|
+
* replaced, and cut after 500 code points, with "…" marking the cut.
|
|
602
|
+
* Absent for a notification, for a request whose id is neither, and
|
|
603
|
+
* for a request form of mcpl/manifestChanged or
|
|
604
|
+
* notifications/tools/list_changed, which is answered as it's admitted
|
|
605
|
+
* and then handled as the notification is. */
|
|
606
|
+
requestId?: string | number;
|
|
607
|
+
/** Whether a reply write of the handler's returned: true once one
|
|
608
|
+
* did. On a connection that had already closed, that write dropped
|
|
609
|
+
* the reply, as the connection then drops every reply, so nothing
|
|
610
|
+
* reached the server. A write that throws, as one that can't be
|
|
611
|
+
* encoded does, sends nothing. When it's false and the responder
|
|
612
|
+
* can send an error reply (it has respondError), the host sent -32603
|
|
613
|
+
* "Internal error" itself, or -32000 while it stops, unless
|
|
614
|
+
* `responseError` says that reply failed. A connection that has
|
|
615
|
+
* already closed drops that reply, as it drops every reply, with no
|
|
616
|
+
* `responseError`. */
|
|
617
|
+
responseAttempted: boolean;
|
|
618
|
+
/** The handler's own error when it threw or rejected; otherwise the
|
|
619
|
+
* reply write that failed and that it swallowed, or that it tried to
|
|
620
|
+
* answer a second time. */
|
|
621
|
+
error: string;
|
|
622
|
+
/** A reply write that failed, when the handler then failed with an
|
|
623
|
+
* error of its own (which is `error`). */
|
|
624
|
+
responseFailure?: string;
|
|
625
|
+
/** What the handler tried to send after a reply was already attempted:
|
|
626
|
+
* refused, never written. A result, or an error reply with its code
|
|
627
|
+
* and (bounded) message. */
|
|
628
|
+
refusedResponse?: { kind: 'result' } | { kind: 'error'; code: number; message: string };
|
|
629
|
+
/** Failure while trying to send the internal-error response. */
|
|
630
|
+
responseError?: string;
|
|
631
|
+
})
|
|
573
632
|
| (TraceEventBase & {
|
|
574
633
|
type: 'mcpl:orphaned-response';
|
|
575
634
|
serverId: string;
|
|
576
|
-
/** The JSON-RPC id of the late response whose
|
|
635
|
+
/** The JSON-RPC id of the late response, whose request had already timed out or been ended by its transport's close. */
|
|
577
636
|
responseId: string | number;
|
|
578
637
|
/** Original request method when retained for mandatory-deadline visibility. */
|
|
579
638
|
method?: string;
|
|
@@ -581,6 +640,8 @@ export type TraceEvent =
|
|
|
581
640
|
hadState: boolean;
|
|
582
641
|
/** True when the dropped response carried a server-managed `checkpoint`. */
|
|
583
642
|
hadCheckpoint: boolean;
|
|
643
|
+
/** A late JSON-RPC error, as `[code] message`, bounded. */
|
|
644
|
+
error?: string;
|
|
584
645
|
})
|
|
585
646
|
|
|
586
647
|
// Ops / fleet observability. Everything the framework's opsAlert() escalates
|
|
@@ -613,7 +674,7 @@ export type TraceEvent =
|
|
|
613
674
|
parkedAdmissions?: number;
|
|
614
675
|
/** True when undrained turns were force-cancelled (abandon). */
|
|
615
676
|
abandoned?: boolean;
|
|
616
|
-
/** Agents whose turn abandon
|
|
677
|
+
/** Agents whose turn the abandon had not ended when its grace ran out: a token held with no stream and no check ahead (a puppet tool turn, a store surgery's reservation, a turn finishing its last delivery), or a turn that hadn't reached its next check, the tool-result guard's wait for its speech included. A turn whose stream the abandon cancelled while it was still streaming isn't listed, even one still running when the grace ran out. */
|
|
617
678
|
unabandonable?: string[];
|
|
618
679
|
})
|
|
619
680
|
| (TraceEventBase & {
|
|
@@ -627,6 +688,40 @@ export type TraceEvent =
|
|
|
627
688
|
type: 'host:quiesced_boot';
|
|
628
689
|
reason?: string;
|
|
629
690
|
since?: number;
|
|
691
|
+
})
|
|
692
|
+
|
|
693
|
+
// Inbound acceptance observation (mcpl/inbound-source.ts): an installed
|
|
694
|
+
// InboundAcceptanceObserver threw. Delivery is unaffected; the observer's
|
|
695
|
+
// own coverage is interrupted for that acceptance.
|
|
696
|
+
| (TraceEventBase & {
|
|
697
|
+
type: 'inbound:observer-failed';
|
|
698
|
+
/** Envelope kind of the acceptance the observer failed on. */
|
|
699
|
+
kind: 'channel' | 'unscoped' | 'surface';
|
|
700
|
+
error: string;
|
|
701
|
+
})
|
|
702
|
+
|
|
703
|
+
// Held prose drafts (src/prose-drafts.ts): plain speech kept privately
|
|
704
|
+
// instead of sent; a resident's explicit resend; a deliberate dismissal.
|
|
705
|
+
| (TraceEventBase & {
|
|
706
|
+
type: 'prose:drafts-held';
|
|
707
|
+
agentName: string;
|
|
708
|
+
reason: DraftReason;
|
|
709
|
+
draftIds: string[];
|
|
710
|
+
textLen: number;
|
|
711
|
+
})
|
|
712
|
+
| (TraceEventBase & {
|
|
713
|
+
type: 'prose:draft-resent';
|
|
714
|
+
agentName: string;
|
|
715
|
+
draftId: string;
|
|
716
|
+
status: 'delivered' | 'failed' | 'unknown';
|
|
717
|
+
serverId: string;
|
|
718
|
+
channelId: string;
|
|
719
|
+
messageId?: string;
|
|
720
|
+
})
|
|
721
|
+
| (TraceEventBase & {
|
|
722
|
+
type: 'prose:drafts-dismissed';
|
|
723
|
+
agentName: string;
|
|
724
|
+
draftIds: string[];
|
|
630
725
|
});
|
|
631
726
|
|
|
632
727
|
/**
|
|
@@ -12,10 +12,14 @@ function accumulateUsage(
|
|
|
12
12
|
tokens: { inputTokens: number; outputTokens: number; cacheCreationTokens: number; cacheReadTokens: number },
|
|
13
13
|
estimatedCost?: { total: number; currency: string }
|
|
14
14
|
): void {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
// A provider's usage can lack a count (membrane 0.5.87's Bedrock stream
|
|
16
|
+
// takes a message_delta's output count as reported); adding it would make
|
|
17
|
+
// the total NaN, which is stored as null.
|
|
18
|
+
const count = (n: number): number => (Number.isFinite(n) ? n : 0);
|
|
19
|
+
target.inputTokens += count(tokens.inputTokens);
|
|
20
|
+
target.outputTokens += count(tokens.outputTokens);
|
|
21
|
+
target.cacheCreationTokens += count(tokens.cacheCreationTokens);
|
|
22
|
+
target.cacheReadTokens += count(tokens.cacheReadTokens);
|
|
19
23
|
if (estimatedCost) {
|
|
20
24
|
if (!target.estimatedCost) {
|
|
21
25
|
target.estimatedCost = { total: 0, currency: estimatedCost.currency };
|
|
@@ -31,10 +35,16 @@ function accumulateUsage(
|
|
|
31
35
|
function parseUsage(raw: unknown): SessionUsage | null {
|
|
32
36
|
if (!raw || typeof raw !== 'object') return null;
|
|
33
37
|
const o = raw as Record<string, unknown>;
|
|
34
|
-
|
|
38
|
+
// A count stored as null is a NaN total, as JSON stores one: an earlier
|
|
39
|
+
// release could write it when a provider's usage lacked a count. The sum
|
|
40
|
+
// before it was lost when it became NaN, so it reads as 0.
|
|
41
|
+
const count = (v: unknown): number | undefined => (v === null ? 0 : typeof v === 'number' ? v : undefined);
|
|
42
|
+
const inputTokens = count(o.inputTokens);
|
|
43
|
+
const outputTokens = count(o.outputTokens);
|
|
44
|
+
if (inputTokens === undefined || outputTokens === undefined) return null;
|
|
35
45
|
return {
|
|
36
|
-
inputTokens
|
|
37
|
-
outputTokens
|
|
46
|
+
inputTokens,
|
|
47
|
+
outputTokens,
|
|
38
48
|
cacheCreationTokens: typeof o.cacheCreationTokens === 'number' ? o.cacheCreationTokens : 0,
|
|
39
49
|
cacheReadTokens: typeof o.cacheReadTokens === 'number' ? o.cacheReadTokens : 0,
|
|
40
50
|
estimatedCost: o.estimatedCost && typeof o.estimatedCost === 'object'
|
|
@@ -49,6 +59,18 @@ export interface PersistedUsageState {
|
|
|
49
59
|
inferenceCount: number;
|
|
50
60
|
}
|
|
51
61
|
|
|
62
|
+
/** What keeps a stored usage record from restoring, or undefined when it
|
|
63
|
+
* restores: it must be an object whose totals are token counts and whose
|
|
64
|
+
* byAgent, if it has one, is a list. Its per-agent entries are checked one
|
|
65
|
+
* by one as they restore, and one that isn't an agent's usage is skipped. */
|
|
66
|
+
export function persistedUsageProblem(value: unknown): 'not a record' | 'totals' | 'byAgent' | undefined {
|
|
67
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) return 'not a record';
|
|
68
|
+
const { totals, byAgent } = value as { totals?: unknown; byAgent?: unknown };
|
|
69
|
+
if (parseUsage(totals) === null) return 'totals';
|
|
70
|
+
if (byAgent !== undefined && !Array.isArray(byAgent)) return 'byAgent';
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
|
|
52
74
|
export class UsageTracker {
|
|
53
75
|
private totals: SessionUsage = { inputTokens: 0, outputTokens: 0, cacheCreationTokens: 0, cacheReadTokens: 0 };
|
|
54
76
|
private byAgent: Map<string, { usage: SessionUsage; inferenceCount: number }> = new Map();
|
|
@@ -71,7 +93,9 @@ export class UsageTracker {
|
|
|
71
93
|
this.totals = totals;
|
|
72
94
|
this.inferenceCount = typeof state.inferenceCount === 'number' ? state.inferenceCount : 0;
|
|
73
95
|
if (Array.isArray(state.byAgent)) {
|
|
74
|
-
for (const
|
|
96
|
+
for (const item of state.byAgent as unknown[]) {
|
|
97
|
+
if (!item || typeof item !== 'object') continue;
|
|
98
|
+
const entry = item as { agentName?: unknown; usage?: unknown; inferenceCount?: unknown };
|
|
75
99
|
const usage = parseUsage(entry.usage);
|
|
76
100
|
if (usage && typeof entry.agentName === 'string') {
|
|
77
101
|
this.byAgent.set(entry.agentName, {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"activation-request-sanitize.test.d.ts","sourceRoot":"","sources":["../../test/activation-request-sanitize.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Live-path empty-text sanitize (PR #58, 8a89da0): the Anthropic API rejects
|
|
3
|
-
* empty text blocks with a 400, and one such block in the compiled window used
|
|
4
|
-
* to mute the agent entirely — [inference-failed] on every activation until
|
|
5
|
-
* the offending message aged out (field-observed 2026-07-10). The sanitize in
|
|
6
|
-
* buildActivationRequest strips empty/whitespace/non-string text blocks and
|
|
7
|
-
* drops messages left with no content, BEFORE the trailing-assistant check.
|
|
8
|
-
*/
|
|
9
|
-
import { describe, it } from 'node:test';
|
|
10
|
-
import assert from 'node:assert/strict';
|
|
11
|
-
import { Agent } from '../src/agent.js';
|
|
12
|
-
/** buildActivationRequest only needs compile(); membrane is never touched. */
|
|
13
|
-
function agentCompiling(messages) {
|
|
14
|
-
const cm = {
|
|
15
|
-
compile: async () => ({ messages, systemInjections: [] }),
|
|
16
|
-
};
|
|
17
|
-
return new Agent({ name: 'tester', model: 'test-model', systemPrompt: 'sys' }, cm, {});
|
|
18
|
-
}
|
|
19
|
-
describe('buildActivationRequest empty-text sanitize', () => {
|
|
20
|
-
it('strips empty and whitespace-only text blocks, keeps real text', async () => {
|
|
21
|
-
const agent = agentCompiling([
|
|
22
|
-
{
|
|
23
|
-
participant: 'human',
|
|
24
|
-
content: [
|
|
25
|
-
{ type: 'text', text: '' },
|
|
26
|
-
{ type: 'text', text: ' \n\t ' },
|
|
27
|
-
{ type: 'text', text: 'hello' },
|
|
28
|
-
],
|
|
29
|
-
},
|
|
30
|
-
]);
|
|
31
|
-
const request = await agent.buildActivationRequest([]);
|
|
32
|
-
assert.equal(request.messages.length, 1);
|
|
33
|
-
assert.deepEqual(request.messages[0].content, [{ type: 'text', text: 'hello' }]);
|
|
34
|
-
});
|
|
35
|
-
it('strips text blocks whose `text` is not a string (untyped history from disk)', async () => {
|
|
36
|
-
const agent = agentCompiling([
|
|
37
|
-
{
|
|
38
|
-
participant: 'human',
|
|
39
|
-
content: [
|
|
40
|
-
{ type: 'text', text: null },
|
|
41
|
-
{ type: 'text', text: 42 },
|
|
42
|
-
{ type: 'text', text: 'kept' },
|
|
43
|
-
],
|
|
44
|
-
},
|
|
45
|
-
]);
|
|
46
|
-
const request = await agent.buildActivationRequest([]);
|
|
47
|
-
assert.deepEqual(request.messages[0].content, [{ type: 'text', text: 'kept' }]);
|
|
48
|
-
});
|
|
49
|
-
it('drops a message left with no content at all', async () => {
|
|
50
|
-
const agent = agentCompiling([
|
|
51
|
-
{ participant: 'human', content: [{ type: 'text', text: '' }] },
|
|
52
|
-
{ participant: 'human', content: [{ type: 'text', text: 'still here' }] },
|
|
53
|
-
]);
|
|
54
|
-
const request = await agent.buildActivationRequest([]);
|
|
55
|
-
assert.equal(request.messages.length, 1);
|
|
56
|
-
assert.deepEqual(request.messages[0].content, [{ type: 'text', text: 'still here' }]);
|
|
57
|
-
});
|
|
58
|
-
it('passes non-text blocks through untouched — tool pairing is unaffected', async () => {
|
|
59
|
-
const toolUse = { type: 'tool_use', id: 't1', name: 'shell', input: {} };
|
|
60
|
-
const toolResult = { type: 'tool_result', toolUseId: 't1', content: 'ok' };
|
|
61
|
-
const agent = agentCompiling([
|
|
62
|
-
{ participant: 'human', content: [{ type: 'text', text: 'run it' }] },
|
|
63
|
-
// Tool-only assistant turn whose accompanying text block is empty: the
|
|
64
|
-
// exact shape that produced the field incident.
|
|
65
|
-
{ participant: 'tester', content: [{ type: 'text', text: '' }, toolUse] },
|
|
66
|
-
{ participant: 'user', content: [toolResult] },
|
|
67
|
-
{ participant: 'human', content: [{ type: 'text', text: 'and?' }] },
|
|
68
|
-
]);
|
|
69
|
-
const request = await agent.buildActivationRequest([]);
|
|
70
|
-
assert.equal(request.messages.length, 4);
|
|
71
|
-
assert.deepEqual(request.messages[1].content, [toolUse]);
|
|
72
|
-
assert.deepEqual(request.messages[2].content, [toolResult]);
|
|
73
|
-
});
|
|
74
|
-
it('runs BEFORE the trailing-assistant check: a sanitize-exposed trailing assistant still gets [Continue]', async () => {
|
|
75
|
-
const agent = agentCompiling([
|
|
76
|
-
{ participant: 'human', content: [{ type: 'text', text: 'hi' }] },
|
|
77
|
-
{ participant: 'tester', content: [{ type: 'text', text: 'ok' }] },
|
|
78
|
-
// Empty trailing user message: dropped by the sanitize, which leaves the
|
|
79
|
-
// assistant turn last — the [Continue] guard must see THAT shape.
|
|
80
|
-
{ participant: 'human', content: [{ type: 'text', text: ' ' }] },
|
|
81
|
-
]);
|
|
82
|
-
const request = await agent.buildActivationRequest([]);
|
|
83
|
-
assert.equal(request.messages.length, 3);
|
|
84
|
-
const last = request.messages[request.messages.length - 1];
|
|
85
|
-
assert.equal(last.participant, 'user');
|
|
86
|
-
assert.deepEqual(last.content, [{ type: 'text', text: '[Continue]' }]);
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
//# sourceMappingURL=activation-request-sanitize.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"activation-request-sanitize.test.js","sourceRoot":"","sources":["../../test/activation-request-sanitize.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAIxC,8EAA8E;AAC9E,SAAS,cAAc,CAAC,QAAmB;IACzC,MAAM,EAAE,GAAG;QACT,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;KAC7B,CAAC;IAC/B,OAAO,IAAI,KAAK,CACd,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,EAC5D,EAAE,EACF,EAAc,CACf,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;IAC1D,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,KAAK,GAAG,cAAc,CAAC;YAC3B;gBACE,WAAW,EAAE,OAAO;gBACpB,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;oBAC1B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;oBAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;iBAChC;aACF;SACF,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,KAAK,GAAG,cAAc,CAAC;YAC3B;gBACE,WAAW,EAAE,OAAO;gBACpB,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;oBAC5B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;oBAC1B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;iBAC/B;aACF;SACF,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,KAAK,GAAG,cAAc,CAAC;YAC3B,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;YAC/D,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE;SAC1E,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACzE,MAAM,UAAU,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3E,MAAM,KAAK,GAAG,cAAc,CAAC;YAC3B,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE;YACrE,uEAAuE;YACvE,gDAAgD;YAChD,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE;YACzE,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE;YAC9C,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;SACpE,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uGAAuG,EAAE,KAAK,IAAI,EAAE;QACrH,MAAM,KAAK,GAAG,cAAc,CAAC;YAC3B,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;YACjE,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;YAClE,yEAAyE;YACzE,kEAAkE;YAClE,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;SAClE,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QAC5D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-cache-ttl.test.d.ts","sourceRoot":"","sources":["../../test/agent-cache-ttl.test.ts"],"names":[],"mappings":""}
|