@animalabs/agent-framework 0.8.0 → 0.9.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.
Files changed (172) hide show
  1. package/dist/src/agent.d.ts +10 -0
  2. package/dist/src/agent.d.ts.map +1 -1
  3. package/dist/src/agent.js +33 -3
  4. package/dist/src/agent.js.map +1 -1
  5. package/dist/src/framework.d.ts +171 -15
  6. package/dist/src/framework.d.ts.map +1 -1
  7. package/dist/src/framework.js +1059 -224
  8. package/dist/src/framework.js.map +1 -1
  9. package/dist/src/gate/event-gate.d.ts +11 -0
  10. package/dist/src/gate/event-gate.d.ts.map +1 -1
  11. package/dist/src/gate/event-gate.js +66 -0
  12. package/dist/src/gate/event-gate.js.map +1 -1
  13. package/dist/src/index.d.ts +1 -0
  14. package/dist/src/index.d.ts.map +1 -1
  15. package/dist/src/index.js +1 -0
  16. package/dist/src/index.js.map +1 -1
  17. package/dist/src/mcpl/capability-grant.d.ts +115 -0
  18. package/dist/src/mcpl/capability-grant.d.ts.map +1 -0
  19. package/dist/src/mcpl/capability-grant.js +291 -0
  20. package/dist/src/mcpl/capability-grant.js.map +1 -0
  21. package/dist/src/mcpl/capability-mask.d.ts +51 -0
  22. package/dist/src/mcpl/capability-mask.d.ts.map +1 -0
  23. package/dist/src/mcpl/capability-mask.js +190 -0
  24. package/dist/src/mcpl/capability-mask.js.map +1 -0
  25. package/dist/src/mcpl/channel-registry.d.ts +3 -1
  26. package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
  27. package/dist/src/mcpl/channel-registry.js +163 -36
  28. package/dist/src/mcpl/channel-registry.js.map +1 -1
  29. package/dist/src/mcpl/checkpoint-manager.d.ts +8 -3
  30. package/dist/src/mcpl/checkpoint-manager.d.ts.map +1 -1
  31. package/dist/src/mcpl/checkpoint-manager.js +28 -8
  32. package/dist/src/mcpl/checkpoint-manager.js.map +1 -1
  33. package/dist/src/mcpl/errors.d.ts +6 -0
  34. package/dist/src/mcpl/errors.d.ts.map +1 -1
  35. package/dist/src/mcpl/errors.js +6 -0
  36. package/dist/src/mcpl/errors.js.map +1 -1
  37. package/dist/src/mcpl/feature-set-manager.d.ts +10 -1
  38. package/dist/src/mcpl/feature-set-manager.d.ts.map +1 -1
  39. package/dist/src/mcpl/feature-set-manager.js +45 -4
  40. package/dist/src/mcpl/feature-set-manager.js.map +1 -1
  41. package/dist/src/mcpl/hook-orchestrator.d.ts +10 -14
  42. package/dist/src/mcpl/hook-orchestrator.d.ts.map +1 -1
  43. package/dist/src/mcpl/hook-orchestrator.js +58 -67
  44. package/dist/src/mcpl/hook-orchestrator.js.map +1 -1
  45. package/dist/src/mcpl/index.d.ts +1 -1
  46. package/dist/src/mcpl/index.d.ts.map +1 -1
  47. package/dist/src/mcpl/index.js.map +1 -1
  48. package/dist/src/mcpl/prose-stream-router.d.ts +9 -0
  49. package/dist/src/mcpl/prose-stream-router.d.ts.map +1 -1
  50. package/dist/src/mcpl/prose-stream-router.js +16 -0
  51. package/dist/src/mcpl/prose-stream-router.js.map +1 -1
  52. package/dist/src/mcpl/push-handler.d.ts.map +1 -1
  53. package/dist/src/mcpl/push-handler.js +20 -2
  54. package/dist/src/mcpl/push-handler.js.map +1 -1
  55. package/dist/src/mcpl/server-connection.d.ts +93 -9
  56. package/dist/src/mcpl/server-connection.d.ts.map +1 -1
  57. package/dist/src/mcpl/server-connection.js +231 -32
  58. package/dist/src/mcpl/server-connection.js.map +1 -1
  59. package/dist/src/mcpl/server-registry.d.ts.map +1 -1
  60. package/dist/src/mcpl/server-registry.js +4 -3
  61. package/dist/src/mcpl/server-registry.js.map +1 -1
  62. package/dist/src/mcpl/tags.d.ts +24 -0
  63. package/dist/src/mcpl/tags.d.ts.map +1 -0
  64. package/dist/src/mcpl/tags.js +52 -0
  65. package/dist/src/mcpl/tags.js.map +1 -0
  66. package/dist/src/mcpl/transport.d.ts.map +1 -1
  67. package/dist/src/mcpl/transport.js +10 -0
  68. package/dist/src/mcpl/transport.js.map +1 -1
  69. package/dist/src/mcpl/types.d.ts +159 -64
  70. package/dist/src/mcpl/types.d.ts.map +1 -1
  71. package/dist/src/mcpl/types.js +16 -2
  72. package/dist/src/mcpl/types.js.map +1 -1
  73. package/dist/src/refusal-reactions.d.ts +27 -0
  74. package/dist/src/refusal-reactions.d.ts.map +1 -0
  75. package/dist/src/refusal-reactions.js +35 -0
  76. package/dist/src/refusal-reactions.js.map +1 -0
  77. package/dist/src/tool-result-history.d.ts +10 -0
  78. package/dist/src/tool-result-history.d.ts.map +1 -1
  79. package/dist/src/tool-result-history.js +16 -5
  80. package/dist/src/tool-result-history.js.map +1 -1
  81. package/dist/src/types/agent.d.ts +35 -0
  82. package/dist/src/types/agent.d.ts.map +1 -1
  83. package/dist/src/types/framework.d.ts +16 -0
  84. package/dist/src/types/framework.d.ts.map +1 -1
  85. package/dist/src/types/trace.d.ts +24 -0
  86. package/dist/src/types/trace.d.ts.map +1 -1
  87. package/dist/test/channel-registry-routing.test.js +38 -10
  88. package/dist/test/channel-registry-routing.test.js.map +1 -1
  89. package/dist/test/channel-registry-typing.test.js +10 -1
  90. package/dist/test/channel-registry-typing.test.js.map +1 -1
  91. package/dist/test/checkpoint-attribution.test.js +168 -8
  92. package/dist/test/checkpoint-attribution.test.js.map +1 -1
  93. package/dist/test/conversation-fork-injection-scoping.test.js +8 -3
  94. package/dist/test/conversation-fork-injection-scoping.test.js.map +1 -1
  95. package/dist/test/event-gate-selfwake.test.d.ts +15 -0
  96. package/dist/test/event-gate-selfwake.test.d.ts.map +1 -0
  97. package/dist/test/event-gate-selfwake.test.js +125 -0
  98. package/dist/test/event-gate-selfwake.test.js.map +1 -0
  99. package/dist/test/machine-close-provenance.test.js +6 -0
  100. package/dist/test/machine-close-provenance.test.js.map +1 -1
  101. package/dist/test/mcpl-awareness-barrier.test.js +10 -0
  102. package/dist/test/mcpl-awareness-barrier.test.js.map +1 -1
  103. package/dist/test/mcpl-capability-grant.test.d.ts +10 -0
  104. package/dist/test/mcpl-capability-grant.test.d.ts.map +1 -0
  105. package/dist/test/mcpl-capability-grant.test.js +109 -0
  106. package/dist/test/mcpl-capability-grant.test.js.map +1 -0
  107. package/dist/test/mcpl-capability-scoping.test.d.ts +2 -0
  108. package/dist/test/mcpl-capability-scoping.test.d.ts.map +1 -0
  109. package/dist/test/mcpl-capability-scoping.test.js +266 -0
  110. package/dist/test/mcpl-capability-scoping.test.js.map +1 -0
  111. package/dist/test/mcpl-gate-roundtrip.test.js +13 -0
  112. package/dist/test/mcpl-gate-roundtrip.test.js.map +1 -1
  113. package/dist/test/mcpl-list-status.test.d.ts +2 -0
  114. package/dist/test/mcpl-list-status.test.d.ts.map +1 -0
  115. package/dist/test/mcpl-list-status.test.js +78 -0
  116. package/dist/test/mcpl-list-status.test.js.map +1 -0
  117. package/dist/test/mcpl-manifest-changed.test.d.ts +2 -0
  118. package/dist/test/mcpl-manifest-changed.test.d.ts.map +1 -0
  119. package/dist/test/mcpl-manifest-changed.test.js +177 -0
  120. package/dist/test/mcpl-manifest-changed.test.js.map +1 -0
  121. package/dist/test/mcpl-reconnect-events.test.js +27 -2
  122. package/dist/test/mcpl-reconnect-events.test.js.map +1 -1
  123. package/dist/test/mcpl-reconnect-reregistration.test.js +53 -17
  124. package/dist/test/mcpl-reconnect-reregistration.test.js.map +1 -1
  125. package/dist/test/mcpl-request-timeout.test.js +1 -1
  126. package/dist/test/mcpl-request-timeout.test.js.map +1 -1
  127. package/dist/test/physical-window-restart.test.d.ts +14 -0
  128. package/dist/test/physical-window-restart.test.d.ts.map +1 -0
  129. package/dist/test/physical-window-restart.test.js +222 -0
  130. package/dist/test/physical-window-restart.test.js.map +1 -0
  131. package/dist/test/present-while-acting.test.js +199 -1
  132. package/dist/test/present-while-acting.test.js.map +1 -1
  133. package/dist/test/refusal-reaction-baseline.test.d.ts +2 -0
  134. package/dist/test/refusal-reaction-baseline.test.d.ts.map +1 -0
  135. package/dist/test/refusal-reaction-baseline.test.js +74 -0
  136. package/dist/test/refusal-reaction-baseline.test.js.map +1 -0
  137. package/dist/test/state-scaling-e2e.test.js +7 -1
  138. package/dist/test/state-scaling-e2e.test.js.map +1 -1
  139. package/dist/test/state-scaling.test.js +9 -1
  140. package/dist/test/state-scaling.test.js.map +1 -1
  141. package/dist/test/tool-result-spill.test.d.ts +13 -0
  142. package/dist/test/tool-result-spill.test.d.ts.map +1 -0
  143. package/dist/test/tool-result-spill.test.js +463 -0
  144. package/dist/test/tool-result-spill.test.js.map +1 -0
  145. package/dist/test/trunk-channel-routing.test.js +45 -0
  146. package/dist/test/trunk-channel-routing.test.js.map +1 -1
  147. package/dist/tsconfig.tsbuildinfo +1 -1
  148. package/package.json +4 -4
  149. package/src/agent.ts +37 -3
  150. package/src/framework.ts +1219 -248
  151. package/src/gate/event-gate.ts +72 -0
  152. package/src/index.ts +1 -0
  153. package/src/mcpl/capability-grant.ts +319 -0
  154. package/src/mcpl/capability-mask.ts +228 -0
  155. package/src/mcpl/channel-registry.ts +167 -39
  156. package/src/mcpl/checkpoint-manager.ts +28 -8
  157. package/src/mcpl/errors.ts +7 -0
  158. package/src/mcpl/feature-set-manager.ts +50 -5
  159. package/src/mcpl/hook-orchestrator.ts +64 -86
  160. package/src/mcpl/index.ts +0 -2
  161. package/src/mcpl/prose-stream-router.ts +17 -0
  162. package/src/mcpl/push-handler.ts +18 -2
  163. package/src/mcpl/server-connection.ts +262 -34
  164. package/src/mcpl/server-registry.ts +4 -3
  165. package/src/mcpl/tags.ts +50 -0
  166. package/src/mcpl/transport.ts +11 -0
  167. package/src/mcpl/types.ts +176 -78
  168. package/src/refusal-reactions.ts +37 -0
  169. package/src/tool-result-history.ts +17 -5
  170. package/src/types/agent.ts +36 -0
  171. package/src/types/framework.ts +17 -0
  172. package/src/types/trace.ts +22 -0
@@ -1 +1 @@
1
- {"version":3,"file":"mcpl-reconnect-reregistration.test.js","sourceRoot":"","sources":["../../test/mcpl-reconnect-reregistration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcpl-reconnect-reregistration.test.js","sourceRoot":"","sources":["../../test/mcpl-reconnect-reregistration.test.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ setInterval(() => {}, 1 << 30); // stay alive
30
30
  const HOST_CAPS = {
31
31
  version: '0.4',
32
32
  pushEvents: true,
33
- contextHooks: { beforeInference: true, afterInference: { blocking: true } },
33
+ contextHooks: { beforeInference: true },
34
34
  featureSets: true,
35
35
  };
36
36
  function config(overrides) {
@@ -1 +1 @@
1
- {"version":3,"file":"mcpl-request-timeout.test.js","sourceRoot":"","sources":["../../test/mcpl-request-timeout.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcpl-request-timeout.test.js","sourceRoot":"","sources":["../../test/mcpl-request-timeout.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Issue #92 — mid-turn physical-window projection.
3
+ *
4
+ * A turn's continuation rounds append tool results to the compiled request
5
+ * without recompiling, so a turn that starts near the compile target can
6
+ * walk past the provider's HARD context cap mid-turn and take a wire 400.
7
+ * When AgentConfig.physicalWindowTokens is set, the framework projects each
8
+ * continuation round's real size (cache-INCLUSIVE prior input + blocks about
9
+ * to be appended + reserve for response) and breaks the stream through the
10
+ * budget-restart path — fresh compile — instead of dispatching a doomed
11
+ * request. Unset → behavior unchanged.
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=physical-window-restart.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physical-window-restart.test.d.ts","sourceRoot":"","sources":["../../test/physical-window-restart.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
@@ -0,0 +1,222 @@
1
+ /**
2
+ * Issue #92 — mid-turn physical-window projection.
3
+ *
4
+ * A turn's continuation rounds append tool results to the compiled request
5
+ * without recompiling, so a turn that starts near the compile target can
6
+ * walk past the provider's HARD context cap mid-turn and take a wire 400.
7
+ * When AgentConfig.physicalWindowTokens is set, the framework projects each
8
+ * continuation round's real size (cache-INCLUSIVE prior input + blocks about
9
+ * to be appended + reserve for response) and breaks the stream through the
10
+ * budget-restart path — fresh compile — instead of dispatching a doomed
11
+ * request. Unset → behavior unchanged.
12
+ */
13
+ import { describe, it } from 'node:test';
14
+ import assert from 'node:assert';
15
+ import { mkdtempSync, rmSync } from 'node:fs';
16
+ import { tmpdir } from 'node:os';
17
+ import { join } from 'node:path';
18
+ import { AgentFramework } from '../src/index.js';
19
+ import { createMockResponse, MockMembrane, MockYieldingStream } from './helpers/mock-membrane.js';
20
+ /** Each streamYielding call consumes exactly ONE queued response — the
21
+ * restart must open a fresh stream rather than continue the first. */
22
+ class SequentialStreamMembrane extends MockMembrane {
23
+ streamIdx = 0;
24
+ streamYielding(request, _options) {
25
+ this.calls.push(request);
26
+ const stream = new MockYieldingStream(this.responses.slice(this.streamIdx, ++this.streamIdx));
27
+ this.lastStream = stream;
28
+ return stream;
29
+ }
30
+ }
31
+ /** Explicit response queue per streamYielding call. */
32
+ class QueuedStreamsMembrane extends MockMembrane {
33
+ queues;
34
+ constructor(queues) {
35
+ super();
36
+ this.queues = queues;
37
+ }
38
+ streamYielding(request, _options) {
39
+ this.calls.push(request);
40
+ const stream = new MockYieldingStream(this.queues.shift() ?? []);
41
+ this.lastStream = stream;
42
+ return stream;
43
+ }
44
+ }
45
+ class BlobToolModule {
46
+ name = 'canned';
47
+ async start() { }
48
+ async stop() { }
49
+ getTools() {
50
+ return [{ name: 'fetch', description: 'blob', inputSchema: { type: 'object', properties: {} } }];
51
+ }
52
+ async handleToolCall() {
53
+ return { success: true, data: { blob: 'x'.repeat(30_000) } };
54
+ }
55
+ async onProcess(event) {
56
+ if (event.type === 'external-message') {
57
+ return {
58
+ addMessages: [{ participant: 'User', content: event.content }],
59
+ requestInference: true,
60
+ };
61
+ }
62
+ return {};
63
+ }
64
+ }
65
+ /** Tool round whose usage reports a near-cap REAL prefix: only 5k fresh
66
+ * input (far under maxStreamTokens) but 195k cache-read — the projection
67
+ * must count cached tokens or it misses the window entirely. */
68
+ function nearCapToolResponse() {
69
+ const r = createMockResponse([
70
+ { type: 'text', text: 'Working…' },
71
+ { type: 'tool_use', id: 'call_1', name: 'canned--fetch', input: {} },
72
+ ], 'tool_use');
73
+ r.usage = {
74
+ inputTokens: 5_000,
75
+ outputTokens: 5,
76
+ cacheReadTokens: 195_000,
77
+ };
78
+ return r;
79
+ }
80
+ async function pollUntil(cond, timeoutMs = 20_000) {
81
+ const deadline = Date.now() + timeoutMs;
82
+ while (Date.now() < deadline) {
83
+ if (cond())
84
+ return true;
85
+ await new Promise((r) => setTimeout(r, 100));
86
+ }
87
+ return cond();
88
+ }
89
+ function storedTexts(framework) {
90
+ const cm = framework.getAgent('prime')?.getContextManager();
91
+ const msgs = (cm?.queryMessages({}).messages ?? []);
92
+ return msgs
93
+ .flatMap((m) => m.content ?? [])
94
+ .filter((b) => b.type === 'text' && typeof b.text === 'string')
95
+ .map((b) => b.text)
96
+ .join('\n');
97
+ }
98
+ async function runTurn(physicalWindowTokens,
99
+ /** Sequential = one response per stream (restart opens stream 2); plain
100
+ * MockMembrane feeds the whole queue to stream 1 (no-restart continues). */
101
+ membrane) {
102
+ const tempDir = mkdtempSync(join(tmpdir(), 'phys-window-'));
103
+ membrane.pushResponse(nearCapToolResponse());
104
+ membrane.pushResponse(createMockResponse([{ type: 'text', text: 'Recovered final answer' }]));
105
+ const framework = await AgentFramework.create({
106
+ storePath: join(tempDir, 'store'),
107
+ membrane: membrane.asMembrane(),
108
+ agents: [{
109
+ name: 'prime',
110
+ model: 'test-model',
111
+ systemPrompt: 'You are prime.',
112
+ allowedTools: 'all',
113
+ maxTokens: 4_000,
114
+ ...(physicalWindowTokens !== undefined ? { physicalWindowTokens } : {}),
115
+ }],
116
+ modules: [new BlobToolModule()],
117
+ syncIntervalMs: 0,
118
+ });
119
+ const traces = [];
120
+ framework.onTrace((e) => traces.push(e));
121
+ framework.start();
122
+ framework.pushEvent({
123
+ type: 'external-message',
124
+ source: 'test',
125
+ content: [{ type: 'text', text: 'fetch it' }],
126
+ metadata: {},
127
+ triggerInference: true,
128
+ });
129
+ return { framework, membrane, traces, tempDir };
130
+ }
131
+ describe('physical-window mid-turn restart (issue #92)', () => {
132
+ it('restarts through a fresh compile instead of dispatching past the hard cap', async () => {
133
+ // Projection: 200k real prefix (5k fresh + 195k cached) + appended tool
134
+ // result + 4k reserve > 200k window → restart. The fresh-input-only
135
+ // check (5k vs maxStreamTokens 150k) would have sent the doomed request.
136
+ const h = await runTurn(200_000, new SequentialStreamMembrane());
137
+ try {
138
+ const done = await pollUntil(() => storedTexts(h.framework).includes('Recovered final answer'));
139
+ assert.ok(done, 'turn should complete with the post-restart answer');
140
+ assert.strictEqual(h.membrane.calls.length, 2, 'restart should open a second stream');
141
+ const restarted = h.traces.find((e) => e.type === 'inference:stream_restarted');
142
+ assert.ok(restarted, 'a stream_restarted trace should be emitted');
143
+ assert.strictEqual(restarted.reason, 'physical_window');
144
+ assert.strictEqual(restarted.budget, 200_000);
145
+ assert.ok((restarted.inputTokens ?? 0) > 200_000, 'trace should carry the projected size');
146
+ }
147
+ finally {
148
+ await h.framework.stop();
149
+ rmSync(h.tempDir, { recursive: true, force: true });
150
+ }
151
+ });
152
+ it('does not inherit the pre-restart window size into the new stream', async () => {
153
+ // Regression pin for the reset (opus-rev review finding #1): after a
154
+ // physical-window restart, the fresh stream runs a tool round that emits
155
+ // NO usage event before reaching the tool-result boundary. Without the
156
+ // stream-start reset, the projection would run on the inherited 200k
157
+ // figure — the very number that caused the restart — and restart again
158
+ // into an empty queue (loop; this test would then time out).
159
+ const tempDir = mkdtempSync(join(tmpdir(), 'phys-window-'));
160
+ const noUsageToolResponse = createMockResponse([
161
+ { type: 'text', text: 'Continuing…' },
162
+ { type: 'tool_use', id: 'call_2', name: 'canned--fetch', input: {} },
163
+ ], 'tool_use');
164
+ noUsageToolResponse.usage = undefined;
165
+ const membrane = new QueuedStreamsMembrane([
166
+ [nearCapToolResponse()],
167
+ [noUsageToolResponse, createMockResponse([{ type: 'text', text: 'Recovered final answer' }])],
168
+ ]);
169
+ const framework = await AgentFramework.create({
170
+ storePath: join(tempDir, 'store'),
171
+ membrane: membrane.asMembrane(),
172
+ agents: [{
173
+ name: 'prime',
174
+ model: 'test-model',
175
+ systemPrompt: 'You are prime.',
176
+ allowedTools: 'all',
177
+ maxTokens: 4_000,
178
+ physicalWindowTokens: 200_000,
179
+ }],
180
+ modules: [new BlobToolModule()],
181
+ syncIntervalMs: 0,
182
+ });
183
+ const traces = [];
184
+ framework.onTrace((e) => traces.push(e));
185
+ framework.start();
186
+ framework.pushEvent({
187
+ type: 'external-message',
188
+ source: 'test',
189
+ content: [{ type: 'text', text: 'fetch it' }],
190
+ metadata: {},
191
+ triggerInference: true,
192
+ });
193
+ try {
194
+ const done = await pollUntil(() => storedTexts(framework).includes('Recovered final answer'));
195
+ assert.ok(done, 'the post-restart stream must resume, not restart again');
196
+ assert.strictEqual(membrane.calls.length, 2, 'exactly one restart');
197
+ const restarts = traces.filter((e) => e.type === 'inference:stream_restarted');
198
+ assert.strictEqual(restarts.length, 1, 'the inherited value must not trigger a second restart');
199
+ }
200
+ finally {
201
+ await framework.stop();
202
+ rmSync(tempDir, { recursive: true, force: true });
203
+ }
204
+ });
205
+ it('leaves behavior unchanged when physicalWindowTokens is unset', async () => {
206
+ const h = await runTurn(undefined, new MockMembrane());
207
+ try {
208
+ // Same near-cap usage, no declared window: the stream resumes in place
209
+ // and the SECOND queued response is never consumed by a restart —
210
+ // MockYieldingStream continues the first stream instead.
211
+ const done = await pollUntil(() => storedTexts(h.framework).includes('Recovered final answer'));
212
+ assert.ok(done, 'turn should complete on the original stream');
213
+ assert.strictEqual(h.membrane.calls.length, 1, 'no second stream without a declared window');
214
+ assert.ok(!h.traces.some((e) => e.type === 'inference:stream_restarted'), 'no restart trace without a declared window');
215
+ }
216
+ finally {
217
+ await h.framework.stop();
218
+ rmSync(h.tempDir, { recursive: true, force: true });
219
+ }
220
+ });
221
+ });
222
+ //# sourceMappingURL=physical-window-restart.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physical-window-restart.test.js","sourceRoot":"","sources":["../../test/physical-window-restart.test.ts"],"names":[],"mappings":"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"}
@@ -109,6 +109,8 @@ function stubChannelRegistry(framework) {
109
109
  },
110
110
  routeSpeech: async (_agent, text, locus) => {
111
111
  routed.push({ text, locus: locus ?? null });
112
+ // Mirror the real registry's outcome shape (delivery receipts read it).
113
+ return locus ? { delivered: true, channelId: locus } : null;
112
114
  },
113
115
  getDefaultPublishChannel: () => null,
114
116
  isChannelOpen: () => true,
@@ -297,7 +299,98 @@ describe('present while acting', () => {
297
299
  .map((o) => o?.injectedMessages ?? []);
298
300
  const wired = injectedBatches.flat().map((m) => JSON.stringify(m.content));
299
301
  assert.ok(wired.some((s) => s.includes('quick question')), 'the addressed message itself was injected');
300
- assert.ok(wired.some((s) => s.includes('[routing] You were just addressed from discord:dm:antra')), 'the re-pin notice was injected alongside it');
302
+ assert.ok(wired.some((s) => s.includes('[routing] The conversation moved to discord:dm:antra')), 'the re-pin notice was injected alongside it');
303
+ await framework.stop();
304
+ });
305
+ it('a follow-up in a channel the agent explicitly engaged this turn re-pins', async () => {
306
+ // 2026-07-31 n=7 (q's #portables reply): the agent explicitly sent into
307
+ // a channel this turn; someone replies there WITHOUT a mention (ambient
308
+ // by tag, addressed by context). The engaged-channel leg moves the pin;
309
+ // trailing prose answering them follows.
310
+ membrane.pushResponse(createMockResponse([
311
+ { type: 'tool_use', id: 'c1', name: 'robot--move', input: { dir: 'north' } },
312
+ ], 'tool_use'));
313
+ membrane.pushResponse(createMockResponse([
314
+ { type: 'text', text: 'Good plan on both counts.' },
315
+ ]));
316
+ const framework = await createFramework();
317
+ const routed = stubChannelRegistry(framework);
318
+ module.toolDelayMs = 25;
319
+ module.interjection = 'I need to swap out this eye screen';
320
+ module.interjectionMetadata = {
321
+ channelId: 'discord:guild:portables',
322
+ tags: ['chat:ambient', 'chat:from-human'],
323
+ };
324
+ // Simulate an explicit send into #portables earlier in THIS turn (the
325
+ // production record happens on the MCPL send path; the harness module's
326
+ // tools are not MCPL, so seed the turn-scoped set mid-turn — after the
327
+ // turn-start clear, before the injection boundary).
328
+ const origHandle = module.handleToolCall.bind(module);
329
+ module.handleToolCall = async (call) => {
330
+ framework.turnEngagedChannels.set('assistant', new Set(['discord:guild:portables']));
331
+ return origHandle(call);
332
+ };
333
+ trigger(framework);
334
+ await framework.runUntilIdle();
335
+ assert.deepEqual(routed, [
336
+ { text: 'Good plan on both counts.', locus: 'discord:guild:portables' },
337
+ ], 'trailing prose followed the human reply into the engaged channel');
338
+ await framework.stop();
339
+ });
340
+ it('an agent-resident follow-up in an engaged channel re-pins too (no author-kind filter)', async () => {
341
+ // Fleet participants include agent-residents — "bot" by Discord flag,
342
+ // full conversational participants in fact. Their in-flow replies in a
343
+ // channel the agent just engaged move the pin exactly like anyone
344
+ // else's (antra, 2026-07-31: the author-kind distinction is fragile and
345
+ // wrong for this fleet).
346
+ membrane.pushResponse(createMockResponse([
347
+ { type: 'tool_use', id: 'c1', name: 'robot--move', input: { dir: 'north' } },
348
+ ], 'tool_use'));
349
+ membrane.pushResponse(createMockResponse([
350
+ { type: 'text', text: 'Continuing with the colleague.' },
351
+ ]));
352
+ const framework = await createFramework();
353
+ const routed = stubChannelRegistry(framework);
354
+ module.toolDelayMs = 25;
355
+ module.interjection = '*from the table* one receipt for the case, since I have a dated instance';
356
+ module.interjectionMetadata = {
357
+ channelId: 'discord:guild:hospital',
358
+ tags: ['chat:ambient', 'chat:from-bot'],
359
+ };
360
+ const origHandle = module.handleToolCall.bind(module);
361
+ module.handleToolCall = async (call) => {
362
+ framework.turnEngagedChannels.set('assistant', new Set(['discord:guild:hospital']));
363
+ return origHandle(call);
364
+ };
365
+ trigger(framework);
366
+ await framework.runUntilIdle();
367
+ assert.deepEqual(routed, [
368
+ { text: 'Continuing with the colleague.', locus: 'discord:guild:hospital' },
369
+ ], 'the agent-resident follow-up moved the pin like any participant');
370
+ await framework.stop();
371
+ });
372
+ it('ambient chatter in a channel the agent did NOT engage still cannot move the pin', async () => {
373
+ // The Cairn-protection boundary, restated for the engaged-channel era:
374
+ // no mention, no engagement this turn → the pin holds.
375
+ membrane.pushResponse(createMockResponse([
376
+ { type: 'tool_use', id: 'c1', name: 'robot--move', input: { dir: 'north' } },
377
+ ], 'tool_use'));
378
+ membrane.pushResponse(createMockResponse([
379
+ { type: 'text', text: 'Continuing my report.' },
380
+ ]));
381
+ const framework = await createFramework();
382
+ const routed = stubChannelRegistry(framework);
383
+ module.toolDelayMs = 25;
384
+ module.interjection = 'unrelated lounge chatter';
385
+ module.interjectionMetadata = {
386
+ channelId: 'discord:guild:lounge',
387
+ tags: ['chat:ambient', 'chat:from-human'],
388
+ };
389
+ trigger(framework);
390
+ await framework.runUntilIdle();
391
+ assert.deepEqual(routed, [
392
+ { text: 'Continuing my report.', locus: 'chan-live-1' },
393
+ ], 'un-engaged ambient left the pin alone');
301
394
  await framework.stop();
302
395
  });
303
396
  it('an addressed injection from the CURRENT locus does not chatter a notice', async () => {
@@ -327,6 +420,111 @@ describe('present while acting', () => {
327
420
  assert.equal(notices.length, 1, 'only the boot-baseline announcement — no re-pin chatter');
328
421
  await framework.stop();
329
422
  });
423
+ it('a prose turn ends with a [delivered] receipt naming where the prose landed', async () => {
424
+ // Explicit sends receipt themselves via tool_result; auto-routed prose
425
+ // previously vanished with no in-window trace — the agent could never
426
+ // see where its own words went (2026-07-31 misroute series). One compact
427
+ // system message at logical turn end, channels deduped in delivery order.
428
+ membrane.pushResponse(createMockResponse([
429
+ { type: 'text', text: 'A quiet reply with no tools.' },
430
+ ]));
431
+ const framework = await createFramework();
432
+ stubChannelRegistry(framework);
433
+ trigger(framework);
434
+ await framework.runUntilIdle();
435
+ const cm = framework.agents.get('assistant').getContextManager();
436
+ const texts = cm.getAllMessages()
437
+ .flatMap((m) => m.content)
438
+ .filter((b) => b.type === 'text')
439
+ .map((b) => b.text ?? '');
440
+ const receipts = texts.filter((t) => t.startsWith('[delivered]'));
441
+ assert.deepEqual(receipts, ['[delivered] plain speech → chan-live-1']);
442
+ // The receipt is the LAST window message — after the assistant blocks.
443
+ assert.ok(texts[texts.length - 1].startsWith('[delivered]'), 'receipt sits at the settled tail');
444
+ await framework.stop();
445
+ });
446
+ it('a re-pinned turn\'s receipt names both channels in delivery order', async () => {
447
+ membrane.pushResponse(createMockResponse([
448
+ { type: 'text', text: 'Station four, proceeding.' },
449
+ { type: 'tool_use', id: 'c1', name: 'robot--move', input: { dir: 'north' } },
450
+ ], 'tool_use'));
451
+ membrane.pushResponse(createMockResponse([
452
+ { type: 'text', text: 'Answering the person who addressed me.' },
453
+ ]));
454
+ const framework = await createFramework();
455
+ stubChannelRegistry(framework);
456
+ module.toolDelayMs = 25;
457
+ module.interjection = 'quick question over here?';
458
+ module.interjectionMetadata = { channelId: 'discord:dm:antra', tags: ['chat:addressed'] };
459
+ trigger(framework);
460
+ await framework.runUntilIdle();
461
+ const cm = framework.agents.get('assistant').getContextManager();
462
+ const receipts = cm.getAllMessages()
463
+ .flatMap((m) => m.content)
464
+ .filter((b) => b.type === 'text')
465
+ .map((b) => b.text ?? '')
466
+ .filter((t) => t.startsWith('[delivered]'));
467
+ assert.deepEqual(receipts, ['[delivered] plain speech → chan-live-1 · discord:dm:antra']);
468
+ await framework.stop();
469
+ });
470
+ it('suppressed prose is visible in the receipt (silencing is never a silent black hole)', async () => {
471
+ // n=8 (2026-07-31 ~22:46): one round multiplexing two threads — prose
472
+ // for the lane + an explicit send for another channel, textbook per the
473
+ // routing doc. Sticky silencing ate the prose reply and nothing told
474
+ // the author; their own record believed it delivered. The rule stands
475
+ // (antra: visibility is enough) — but the turn-end receipt now reports
476
+ // the suppression, so the segment's fate is visible one turn later.
477
+ membrane.pushResponse(createMockResponse([
478
+ { type: 'text', text: 'the reply that silencing will eat' },
479
+ { type: 'tool_use', id: 'c1', name: 'robot--send_message', input: { text: 'explicit send to the other thread' } },
480
+ ], 'tool_use'));
481
+ membrane.pushResponse(createMockResponse([
482
+ { type: 'text', text: 'trailing prose, also suppressed (sticky)' },
483
+ ]));
484
+ const framework = await createFramework();
485
+ const routed = stubChannelRegistry(framework);
486
+ trigger(framework);
487
+ await framework.runUntilIdle();
488
+ assert.deepEqual(routed, [], 'silencing semantics unchanged: nothing auto-routed');
489
+ const cm = framework.agents.get('assistant').getContextManager();
490
+ const receipts = cm.getAllMessages()
491
+ .flatMap((m) => m.content)
492
+ .filter((b) => b.type === 'text')
493
+ .map((b) => b.text ?? '')
494
+ .filter((t) => t.startsWith('[delivered]'));
495
+ assert.deepEqual(receipts, [
496
+ '[delivered] nothing — 2 plain-speech segment(s) suppressed (explicit send in the same round — resend with a send tool if it was meant to be heard)',
497
+ ]);
498
+ await framework.stop();
499
+ });
500
+ it('channel_open moves the pin mid-turn and announces in its own tool result', async () => {
501
+ // The agent's own deliberate open is the strongest "my next words go
502
+ // here" signal — stronger than any injection. The original 2026-07-21
503
+ // Aria fix only set next-turn trigger state; the turn-frozen refactor
504
+ // silently regressed the reply-right-after-opening case. Now the pin
505
+ // moves immediately and the announcement rides the tool result itself
506
+ // (model-requested content: distance zero, safest role).
507
+ membrane.pushResponse(createMockResponse([
508
+ { type: 'tool_use', id: 'c1', name: 'channel_open', input: { channelId: 'discord:guild:observatory' } },
509
+ ], 'tool_use'));
510
+ membrane.pushResponse(createMockResponse([
511
+ { type: 'text', text: 'Hello, observatory.' },
512
+ ]));
513
+ const framework = await createFramework();
514
+ const routed = stubChannelRegistry(framework);
515
+ const registry = framework.channelRegistry;
516
+ registry.handleChannelToolCall =
517
+ async () => ({ success: true, data: { channelId: 'discord:guild:observatory', opened: true } });
518
+ trigger(framework);
519
+ await framework.runUntilIdle();
520
+ assert.deepEqual(routed, [
521
+ { text: 'Hello, observatory.', locus: 'discord:guild:observatory' },
522
+ ], 'prose right after channel_open lands in the opened channel');
523
+ // The announcement rode the tool result the model saw.
524
+ const results = membrane.lastStream.receivedToolResults.flat();
525
+ assert.ok(JSON.stringify(results).includes('plain speech now lands in this channel'), 'routing note present in the channel_open tool result');
526
+ await framework.stop();
527
+ });
330
528
  it('reactions and system markers injected mid-turn do not clear send suppression', async () => {
331
529
  // A reaction (`chat:reaction` tag) or a `system: true` marker is not
332
530
  // conversational input: prose following an explicit send stays suppressed,