@animalabs/agent-framework 0.7.3 → 0.8.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 (105) hide show
  1. package/dist/src/agent.d.ts.map +1 -1
  2. package/dist/src/agent.js +28 -1
  3. package/dist/src/agent.js.map +1 -1
  4. package/dist/src/code-execution/index.d.ts +1 -1
  5. package/dist/src/code-execution/index.d.ts.map +1 -1
  6. package/dist/src/code-execution/index.js.map +1 -1
  7. package/dist/src/code-execution/py-runner.d.ts +23 -1
  8. package/dist/src/code-execution/py-runner.d.ts.map +1 -1
  9. package/dist/src/code-execution/py-runner.js +40 -4
  10. package/dist/src/code-execution/py-runner.js.map +1 -1
  11. package/dist/src/code-execution/runtime-py.d.ts +15 -2
  12. package/dist/src/code-execution/runtime-py.d.ts.map +1 -1
  13. package/dist/src/code-execution/runtime-py.js +156 -7
  14. package/dist/src/code-execution/runtime-py.js.map +1 -1
  15. package/dist/src/code-execution/tool-definition.d.ts.map +1 -1
  16. package/dist/src/code-execution/tool-definition.js +27 -2
  17. package/dist/src/code-execution/tool-definition.js.map +1 -1
  18. package/dist/src/framework.d.ts +92 -0
  19. package/dist/src/framework.d.ts.map +1 -1
  20. package/dist/src/framework.js +932 -60
  21. package/dist/src/framework.js.map +1 -1
  22. package/dist/src/mcpl/channel-registry.d.ts +28 -2
  23. package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
  24. package/dist/src/mcpl/channel-registry.js +53 -7
  25. package/dist/src/mcpl/channel-registry.js.map +1 -1
  26. package/dist/src/mcpl/transport.d.ts +1 -1
  27. package/dist/src/mcpl/transport.d.ts.map +1 -1
  28. package/dist/src/mcpl/transport.js +25 -7
  29. package/dist/src/mcpl/transport.js.map +1 -1
  30. package/dist/src/mcpl/types.d.ts +10 -0
  31. package/dist/src/mcpl/types.d.ts.map +1 -1
  32. package/dist/src/mcpl/types.js.map +1 -1
  33. package/dist/src/module-registry.d.ts +12 -0
  34. package/dist/src/module-registry.d.ts.map +1 -1
  35. package/dist/src/module-registry.js +26 -0
  36. package/dist/src/module-registry.js.map +1 -1
  37. package/dist/src/modules/workspace/index.d.ts +20 -0
  38. package/dist/src/modules/workspace/index.d.ts.map +1 -1
  39. package/dist/src/modules/workspace/index.js +48 -15
  40. package/dist/src/modules/workspace/index.js.map +1 -1
  41. package/dist/src/modules/workspace/sync.d.ts +4 -0
  42. package/dist/src/modules/workspace/sync.d.ts.map +1 -1
  43. package/dist/src/modules/workspace/sync.js +1 -1
  44. package/dist/src/modules/workspace/sync.js.map +1 -1
  45. package/dist/src/types/agent.d.ts +12 -0
  46. package/dist/src/types/agent.d.ts.map +1 -1
  47. package/dist/src/types/framework.d.ts +10 -0
  48. package/dist/src/types/framework.d.ts.map +1 -1
  49. package/dist/src/types/module.d.ts +22 -0
  50. package/dist/src/types/module.d.ts.map +1 -1
  51. package/dist/test/agent-runtime-settings.test.js +37 -0
  52. package/dist/test/agent-runtime-settings.test.js.map +1 -1
  53. package/dist/test/assistant-persist-refusal.test.d.ts +2 -0
  54. package/dist/test/assistant-persist-refusal.test.d.ts.map +1 -0
  55. package/dist/test/assistant-persist-refusal.test.js +63 -0
  56. package/dist/test/assistant-persist-refusal.test.js.map +1 -0
  57. package/dist/test/busy-agent-scheduler.test.js +1 -0
  58. package/dist/test/busy-agent-scheduler.test.js.map +1 -1
  59. package/dist/test/code-execution.test.js +327 -1
  60. package/dist/test/code-execution.test.js.map +1 -1
  61. package/dist/test/deferred-wake-integrity.test.d.ts +29 -0
  62. package/dist/test/deferred-wake-integrity.test.d.ts.map +1 -0
  63. package/dist/test/deferred-wake-integrity.test.js +320 -0
  64. package/dist/test/deferred-wake-integrity.test.js.map +1 -0
  65. package/dist/test/machine-close-provenance.test.d.ts +2 -0
  66. package/dist/test/machine-close-provenance.test.d.ts.map +1 -0
  67. package/dist/test/machine-close-provenance.test.js +110 -0
  68. package/dist/test/machine-close-provenance.test.js.map +1 -0
  69. package/dist/test/mcpl-access-provider.test.d.ts +2 -0
  70. package/dist/test/mcpl-access-provider.test.d.ts.map +1 -0
  71. package/dist/test/mcpl-access-provider.test.js +20 -0
  72. package/dist/test/mcpl-access-provider.test.js.map +1 -0
  73. package/dist/test/module-context-integration.test.d.ts +18 -0
  74. package/dist/test/module-context-integration.test.d.ts.map +1 -0
  75. package/dist/test/module-context-integration.test.js +181 -0
  76. package/dist/test/module-context-integration.test.js.map +1 -0
  77. package/dist/test/present-while-acting.test.js +72 -0
  78. package/dist/test/present-while-acting.test.js.map +1 -1
  79. package/dist/test/utils-surface.test.d.ts +2 -0
  80. package/dist/test/utils-surface.test.d.ts.map +1 -0
  81. package/dist/test/utils-surface.test.js +145 -0
  82. package/dist/test/utils-surface.test.js.map +1 -0
  83. package/dist/test/workspace-read-image.test.js +71 -0
  84. package/dist/test/workspace-read-image.test.js.map +1 -1
  85. package/dist/test/workspace-restore-order.test.d.ts +16 -0
  86. package/dist/test/workspace-restore-order.test.d.ts.map +1 -0
  87. package/dist/test/workspace-restore-order.test.js +140 -0
  88. package/dist/test/workspace-restore-order.test.js.map +1 -0
  89. package/dist/tsconfig.tsbuildinfo +1 -1
  90. package/package.json +1 -1
  91. package/src/agent.ts +31 -1
  92. package/src/code-execution/index.ts +1 -0
  93. package/src/code-execution/py-runner.ts +56 -4
  94. package/src/code-execution/runtime-py.ts +156 -7
  95. package/src/code-execution/tool-definition.ts +27 -2
  96. package/src/framework.ts +1055 -63
  97. package/src/mcpl/channel-registry.ts +98 -4
  98. package/src/mcpl/transport.ts +26 -7
  99. package/src/mcpl/types.ts +11 -0
  100. package/src/module-registry.ts +34 -0
  101. package/src/modules/workspace/index.ts +49 -15
  102. package/src/modules/workspace/sync.ts +1 -1
  103. package/src/types/agent.ts +12 -0
  104. package/src/types/framework.ts +10 -0
  105. package/src/types/module.ts +24 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=assistant-persist-refusal.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-persist-refusal.test.d.ts","sourceRoot":"","sources":["../../test/assistant-persist-refusal.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * A turn whose entire output is thinking blocks produced NOTHING — no speech,
3
+ * no tool call. That is what a refusal looks like on the wire (the provider
4
+ * returns signed thinking, often with empty text under the fable-5 hidden-CoT
5
+ * packaging, and no content). Storing it records an action that never
6
+ * happened, and two such records landing ADJACENT are toxic: formatters merge
7
+ * consecutive same-role messages, yielding one assistant message that carries
8
+ * signed thinking from two different responses — which the provider cannot
9
+ * verify. labclaude went hard down ~4h on exactly that pair (2026-07-27).
10
+ */
11
+ import { describe, it } from 'node:test';
12
+ import assert from 'node:assert/strict';
13
+ import { Agent } from '../src/agent.js';
14
+ function agentRecording(stored) {
15
+ const cm = {
16
+ addMessage: (participant, content) => {
17
+ stored.push({ participant, content });
18
+ return 'id';
19
+ },
20
+ compile: async () => ({ messages: [], systemInjections: [] }),
21
+ };
22
+ return new Agent({ name: 'tester', model: 'test-model', systemPrompt: 'sys' }, cm, {});
23
+ }
24
+ describe('assistant persist: refusals are not stored', () => {
25
+ it('refuses to store a thinking-only assistant message', () => {
26
+ const stored = [];
27
+ agentRecording(stored).addAssistantResponse([
28
+ { type: 'thinking', thinking: '', signature: 'sig-abc' },
29
+ ]);
30
+ assert.equal(stored.length, 0, 'nothing persisted for a turn with no output');
31
+ });
32
+ it('refuses a multi-block thinking-only message (thinking + redacted_thinking)', () => {
33
+ const stored = [];
34
+ agentRecording(stored).addAssistantResponse([
35
+ { type: 'thinking', thinking: '', signature: 'sig-a' },
36
+ { type: 'redacted_thinking', data: 'zzz' },
37
+ ]);
38
+ assert.equal(stored.length, 0);
39
+ });
40
+ it('stores thinking that accompanies real output (text)', () => {
41
+ const stored = [];
42
+ agentRecording(stored).addAssistantResponse([
43
+ { type: 'thinking', thinking: '', signature: 'sig-abc' },
44
+ { type: 'text', text: 'hello' },
45
+ ]);
46
+ assert.equal(stored.length, 1, 'a real turn keeps its thinking block');
47
+ assert.equal(stored[0].content.length, 2);
48
+ });
49
+ it('stores thinking that accompanies a tool call', () => {
50
+ const stored = [];
51
+ agentRecording(stored).addAssistantResponse([
52
+ { type: 'thinking', thinking: '', signature: 'sig-abc' },
53
+ { type: 'tool_use', id: 't1', name: 'x', input: {} },
54
+ ]);
55
+ assert.equal(stored.length, 1);
56
+ });
57
+ it('does not interfere with empty content (nothing to store either way)', () => {
58
+ const stored = [];
59
+ agentRecording(stored).addAssistantResponse([]);
60
+ assert.equal(stored.length, 1, 'empty content is left to existing behavior');
61
+ });
62
+ });
63
+ //# sourceMappingURL=assistant-persist-refusal.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-persist-refusal.test.js","sourceRoot":"","sources":["../../test/assistant-persist-refusal.test.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ function busyAgentHarness() {
12
12
  }];
13
13
  framework.agents = new Map([['Sol', { state: { status: 'waiting_for_tools' } }]]);
14
14
  framework.activeStreams = new Map();
15
+ framework.activeTurnTokens = new Map();
15
16
  framework.staleWarnAt = new Map();
16
17
  framework.sweepExpiredConversations = () => { };
17
18
  framework.createFrameworkState = () => ({});
@@ -1 +1 @@
1
- {"version":3,"file":"busy-agent-scheduler.test.js","sourceRoot":"","sources":["../../test/busy-agent-scheduler.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"busy-agent-scheduler.test.js","sourceRoot":"","sources":["../../test/busy-agent-scheduler.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAsBrD,SAAS,gBAAgB;IACvB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAqB,CAAC;IAC9E,SAAS,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACzC,SAAS,CAAC,eAAe,GAAG,CAAC;YAC3B,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACH,SAAS,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAClF,SAAS,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;IACpC,SAAS,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;IACvC,SAAS,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;IAClC,SAAS,CAAC,yBAAyB,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IAC/C,SAAS,CAAC,oBAAoB,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5C,SAAS,CAAC,SAAS,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IAC/B,SAAS,CAAC,kBAAkB,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC;IAC9C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,IAAI,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;IACnG,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IACrC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,MAAM,SAAS,CAAC,gBAAgB,EAAE,CAAC;IAEnC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,sEAAsE,CAAC,CAAC;IACrG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,kCAAkC,CAAC,CAAC;AACxF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;IAC/F,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IACrC,SAAS,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;IACnE,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,MAAM,SAAS,CAAC,gBAAgB,EAAE,CAAC;IAEnC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,uDAAuD,CAAC,CAAC;IACtF,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,sCAAsC,CAAC,CAAC;AAC5F,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;IAC7E,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IACrC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;IAC7D,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,SAAS,CAAC,SAAS,GAAG,GAAG,EAAE;QACzB,UAAU,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;IACpC,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,wBAAwB,EAAE,CAAC;QAC3C,MAAM,SAAS,CAAC,wBAAwB,EAAE,CAAC;IAC7C,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,6DAA6D,CAAC,CAAC;IAC3F,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,8CAA8C,CAAC,CAAC;AACpG,CAAC,CAAC,CAAC"}
@@ -279,7 +279,16 @@ class ScriptToolModule {
279
279
  }
280
280
  return { success: true, data: { echoed: call.input } };
281
281
  }
282
- async onProcess(_event, _state) {
282
+ async onProcess(event, _state) {
283
+ if (event.type === 'external-message') {
284
+ const content = Array.isArray(event.content)
285
+ ? event.content
286
+ : [{ type: 'text', text: String(event.content) }];
287
+ return {
288
+ addMessages: [{ participant: 'User', content: content }],
289
+ requestInference: true,
290
+ };
291
+ }
283
292
  return {};
284
293
  }
285
294
  }
@@ -420,4 +429,321 @@ describe('framework code_execution integration (real python3)', () => {
420
429
  }
421
430
  });
422
431
  });
432
+ // ---------------------------------------------------------------------------
433
+ // Background scripts (wake_agent) + spill-to-file
434
+ // ---------------------------------------------------------------------------
435
+ describe('PyRunner background mode (real python3)', () => {
436
+ it('wake_agent reports the caller line and payload; log file journals output', async () => {
437
+ const tempDir = mkdtempSync(join(tmpdir(), 'pytc-bg-'));
438
+ const logPath = join(tempDir, 'nested', 'bg.log');
439
+ const wakes = [];
440
+ const runner = new PyRunner({ onToolCall: async () => '' });
441
+ try {
442
+ const code = [
443
+ 'print("watcher starting")', // line 1
444
+ 'x = 1', // line 2
445
+ 'await wake_agent({"hit": x})', // line 3
446
+ 'print("after wake")', // line 4
447
+ ].join('\n');
448
+ const result = await runner.exec(code, [], {
449
+ logPath,
450
+ lifetimeMs: 30_000,
451
+ onWake: async (line, payload) => {
452
+ wakes.push({ line, payload });
453
+ return null;
454
+ },
455
+ });
456
+ assert.strictEqual(result.returnCode, 0, result.tail ?? '');
457
+ assert.strictEqual(wakes.length, 1);
458
+ assert.strictEqual(wakes[0].line, 3);
459
+ assert.deepStrictEqual(wakes[0].payload, { hit: 1 });
460
+ const { readFileSync } = await import('node:fs');
461
+ const log = readFileSync(logPath, 'utf8');
462
+ assert.match(log, /watcher starting/);
463
+ assert.match(log, /after wake/);
464
+ assert.match(result.tail ?? '', /after wake/);
465
+ }
466
+ finally {
467
+ runner.dispose();
468
+ rmSync(tempDir, { recursive: true, force: true });
469
+ }
470
+ });
471
+ it('a refused wake raises RuntimeError inside the script', async () => {
472
+ const runner = new PyRunner({ onToolCall: async () => '' });
473
+ try {
474
+ const result = await runner.exec('await wake_agent({"n": 1})', [], {
475
+ logPath: null,
476
+ lifetimeMs: 30_000,
477
+ onWake: async () => 'wake limit reached (test)',
478
+ });
479
+ assert.strictEqual(result.returnCode, 1);
480
+ assert.match(result.tail ?? '', /RuntimeError: wake_agent refused by host: wake limit reached/);
481
+ }
482
+ finally {
483
+ runner.dispose();
484
+ }
485
+ });
486
+ it('wake_agent is absent in foreground scripts', async () => {
487
+ const runner = new PyRunner({ onToolCall: async () => '' });
488
+ try {
489
+ const result = await runner.exec('print("wake_agent" in globals())', []);
490
+ assert.strictEqual(result.returnCode, 0, result.stderr);
491
+ assert.match(result.stdout, /False/);
492
+ }
493
+ finally {
494
+ runner.dispose();
495
+ }
496
+ });
497
+ });
498
+ describe('framework background scripts + spill (real python3)', () => {
499
+ async function createBgFramework(storePath, membrane, opts) {
500
+ const { WorkspaceModule } = await import('../src/modules/workspace/index.js');
501
+ const modules = [new ScriptToolModule()];
502
+ let workspace = null;
503
+ if (opts?.mountDir) {
504
+ workspace = new WorkspaceModule({
505
+ mounts: [{ name: 'files', path: opts.mountDir, mode: 'read-write', watch: 'never' }],
506
+ });
507
+ modules.push(workspace);
508
+ }
509
+ const framework = await AgentFramework.create({
510
+ storePath,
511
+ membrane: membrane.asMembrane(),
512
+ agents: [{
513
+ name: 'prime',
514
+ model: 'test-model',
515
+ systemPrompt: 'You are prime.',
516
+ allowedTools: 'all',
517
+ }],
518
+ modules,
519
+ syncIntervalMs: 0,
520
+ codeExecution: {
521
+ enabled: true,
522
+ wakeMinIntervalMs: 0,
523
+ ...(opts?.codeExecution ?? {}),
524
+ },
525
+ });
526
+ // Host wiring (fkm does this in production): mounts populate in initStore.
527
+ workspace?.initStore(framework.getStore());
528
+ return framework;
529
+ }
530
+ it('background script detaches, wakes the agent with provenance, and triggers inference', async () => {
531
+ const { tempDir, storePath } = tempStorePath('pytc-bgfw-');
532
+ const mountDir = join(tempDir, 'mount');
533
+ const { mkdirSync } = await import('node:fs');
534
+ mkdirSync(mountDir, { recursive: true });
535
+ const membrane = new MockMembrane();
536
+ const bgCode = [
537
+ 'import asyncio',
538
+ 'await asyncio.sleep(0.2)',
539
+ 'await wake_agent({"found": "signal"})',
540
+ ].join('\\n');
541
+ // Turn 1: spawn the background script, then finish the turn.
542
+ membrane.pushResponse(createMockResponse([
543
+ { type: 'text', text: 'Arming watcher.' },
544
+ { type: 'tool_use', id: 'call_bg1', name: 'code_execution', input: { code: bgCode.split('\\n').join('\n'), background: true } },
545
+ ], 'tool_use'));
546
+ membrane.pushResponse(createMockResponse([{ type: 'text', text: 'Watcher armed; resting.' }]));
547
+ // Turn 2 (the wake): agent answers.
548
+ membrane.pushResponse(createMockResponse([{ type: 'text', text: 'Woke and handled.' }]));
549
+ const framework = await createBgFramework(storePath, membrane, { mountDir });
550
+ try {
551
+ framework.start();
552
+ framework.pushEvent({
553
+ type: 'external-message',
554
+ source: 'test',
555
+ content: [{ type: 'text', text: 'arm a watcher' }],
556
+ metadata: {},
557
+ triggerInference: true,
558
+ });
559
+ // Wait for: turn 1 result mentions script started, then wake message lands.
560
+ const deadline = Date.now() + 20_000;
561
+ let wakeMessage = null;
562
+ while (Date.now() < deadline && !wakeMessage) {
563
+ await new Promise((r) => setTimeout(r, 100));
564
+ const cm = framework.getAgent('prime')?.getContextManager();
565
+ const msgs = (cm?.queryMessages({}).messages ?? []);
566
+ wakeMessage = msgs.find((m) => m.metadata?.source === 'background-script') ?? null;
567
+ }
568
+ assert.ok(wakeMessage, 'wake message should be injected');
569
+ const text = wakeMessage.content[0].text ?? '';
570
+ assert.match(text, /\[background script bg-\d+\] Woke you/);
571
+ assert.match(text, /line 3 of your script/);
572
+ assert.match(text, /"found": "signal"/);
573
+ assert.match(text, /workspace file files\/background-scripts\/bg-\d+\.log/);
574
+ assert.match(text, /Script status: still running|Script status/);
575
+ }
576
+ finally {
577
+ await framework.stop();
578
+ rmSync(tempDir, { recursive: true, force: true });
579
+ }
580
+ });
581
+ it('list and cancel manage the daemon fleet; cap enforced', async () => {
582
+ const { tempDir, storePath } = tempStorePath('pytc-bglist-');
583
+ const membrane = new MockMembrane();
584
+ const framework = await createBgFramework(storePath, membrane, {
585
+ codeExecution: { maxBackgroundScripts: 1 },
586
+ });
587
+ try {
588
+ const idle = 'import asyncio\nawait asyncio.sleep(60)';
589
+ const first = await framework.executeToolCall({
590
+ id: 'c1', name: 'code_execution', input: { code: idle, background: true }, callerAgentName: 'prime',
591
+ });
592
+ assert.strictEqual(first.success, true, JSON.stringify(first));
593
+ const firstId = first.data.script_id;
594
+ const second = await framework.executeToolCall({
595
+ id: 'c2', name: 'code_execution', input: { code: idle, background: true }, callerAgentName: 'prime',
596
+ });
597
+ assert.strictEqual(second.isError, true);
598
+ assert.match(String(second.error), /limit reached/);
599
+ const list = await framework.executeToolCall({
600
+ id: 'c3', name: 'code_execution', input: { action: 'list' }, callerAgentName: 'prime',
601
+ });
602
+ const scripts = list.data.background_scripts;
603
+ assert.strictEqual(scripts.filter((s) => s.status === 'running').length, 1);
604
+ const cancel = await framework.executeToolCall({
605
+ id: 'c4', name: 'code_execution', input: { action: 'cancel', script_id: firstId }, callerAgentName: 'prime',
606
+ });
607
+ assert.strictEqual(cancel.success, true);
608
+ assert.strictEqual(cancel.data.status, 'cancelled');
609
+ }
610
+ finally {
611
+ await framework.stop();
612
+ rmSync(tempDir, { recursive: true, force: true });
613
+ }
614
+ });
615
+ it('crashed background script wakes the agent with the error tail', async () => {
616
+ const { tempDir, storePath } = tempStorePath('pytc-bgcrash-');
617
+ const membrane = new MockMembrane();
618
+ membrane.pushResponse(createMockResponse([{ type: 'text', text: 'noted' }]));
619
+ const framework = await createBgFramework(storePath, membrane, {});
620
+ try {
621
+ framework.start();
622
+ const started = await framework.executeToolCall({
623
+ id: 'c1',
624
+ name: 'code_execution',
625
+ input: { code: 'import asyncio\nawait asyncio.sleep(0.1)\nraise ValueError("watcher exploded")', background: true },
626
+ callerAgentName: 'prime',
627
+ });
628
+ assert.strictEqual(started.success, true, JSON.stringify(started));
629
+ const deadline = Date.now() + 20_000;
630
+ let crashMessage = null;
631
+ while (Date.now() < deadline && !crashMessage) {
632
+ await new Promise((r) => setTimeout(r, 100));
633
+ const cm = framework.getAgent('prime')?.getContextManager();
634
+ const msgs = (cm?.queryMessages({}).messages ?? []);
635
+ crashMessage = msgs.find((m) => m.metadata?.source === 'background-script') ?? null;
636
+ }
637
+ assert.ok(crashMessage, 'crash wake should be injected');
638
+ const text = crashMessage.content[0].text ?? '';
639
+ assert.match(text, /DIED/);
640
+ assert.match(text, /ValueError: watcher exploded/);
641
+ }
642
+ finally {
643
+ await framework.stop();
644
+ rmSync(tempDir, { recursive: true, force: true });
645
+ }
646
+ });
647
+ it('oversized tool results spill to a workspace file with a reference', async () => {
648
+ const { tempDir, storePath } = tempStorePath('pytc-spill-');
649
+ const mountDir = join(tempDir, 'mount');
650
+ const { mkdirSync } = await import('node:fs');
651
+ mkdirSync(mountDir, { recursive: true });
652
+ const membrane = new MockMembrane();
653
+ // big module: returns ~600KB (strategy default maxMessageTokens absent →
654
+ // maxChars undefined → no spill). Force the cap via agent_settings-style
655
+ // override path by configuring a small maxMessageTokens on the agent.
656
+ class BigToolModule {
657
+ name = 'big';
658
+ async start() { }
659
+ async stop() { }
660
+ getTools() {
661
+ return [{ name: 'blob', description: 'Returns JSON: huge string.', inputSchema: { type: 'object', properties: {} } }];
662
+ }
663
+ async handleToolCall() {
664
+ return { success: true, data: { blob: 'x'.repeat(600_000) } };
665
+ }
666
+ async onProcess(event) {
667
+ if (event.type === 'external-message') {
668
+ return {
669
+ addMessages: [{ participant: 'User', content: event.content }],
670
+ requestInference: true,
671
+ };
672
+ }
673
+ return {};
674
+ }
675
+ }
676
+ membrane.pushResponse(createMockResponse([
677
+ { type: 'text', text: 'Fetching blob.' },
678
+ { type: 'tool_use', id: 'call_blob', name: 'big--blob', input: {} },
679
+ ], 'tool_use'));
680
+ membrane.pushResponse(createMockResponse([{ type: 'text', text: 'Handled.' }]));
681
+ const { WorkspaceModule } = await import('../src/modules/workspace/index.js');
682
+ const spillWorkspace = new WorkspaceModule({
683
+ mounts: [{ name: 'files', path: mountDir, mode: 'read-write', watch: 'never' }],
684
+ });
685
+ const framework = await AgentFramework.create({
686
+ storePath,
687
+ membrane: membrane.asMembrane(),
688
+ agents: [{
689
+ name: 'prime',
690
+ model: 'test-model',
691
+ systemPrompt: 'You are prime.',
692
+ allowedTools: 'all',
693
+ strategy: new CappedPassthroughStrategy(),
694
+ }],
695
+ modules: [
696
+ new BigToolModule(),
697
+ spillWorkspace,
698
+ ],
699
+ syncIntervalMs: 0,
700
+ codeExecution: { enabled: true },
701
+ });
702
+ spillWorkspace.initStore(framework.getStore());
703
+ try {
704
+ framework.start();
705
+ framework.pushEvent({
706
+ type: 'external-message',
707
+ source: 'test',
708
+ content: [{ type: 'text', text: 'get the blob' }],
709
+ metadata: {},
710
+ triggerInference: true,
711
+ });
712
+ const deadline = Date.now() + 20_000;
713
+ let toolResultText = null;
714
+ while (Date.now() < deadline && !toolResultText) {
715
+ await new Promise((r) => setTimeout(r, 100));
716
+ const cm = framework.getAgent('prime')?.getContextManager();
717
+ const msgs = (cm?.queryMessages({}).messages ?? []);
718
+ for (const m of msgs) {
719
+ for (const b of m.content ?? []) {
720
+ if (b.type === 'tool_result' && typeof b.content === 'string' && b.content.includes('[truncated')) {
721
+ toolResultText = b.content;
722
+ }
723
+ }
724
+ }
725
+ }
726
+ assert.ok(toolResultText, 'spilled tool result should be stored');
727
+ assert.match(toolResultText, /full content: workspace file files\/tool-results\//);
728
+ assert.match(toolResultText, /tool_result_inline_max_chars/);
729
+ assert.ok(toolResultText.length < 20_000, 'inline copy must be capped');
730
+ // The full content lives in the chronicle tree — the same place the
731
+ // agent's own read tool looks (disk materialization is async and
732
+ // watch-mode-dependent; not what we're testing here).
733
+ const refMatch = toolResultText.match(/workspace file (files\/tool-results\/\S+\.txt)/);
734
+ assert.ok(refMatch, 'reference should name the spill file');
735
+ const spilledFile = await spillWorkspace.readBinary(refMatch[1]);
736
+ assert.ok('data' in spilledFile, `spill file should be readable: ${JSON.stringify(spilledFile)}`);
737
+ assert.ok(spilledFile.data.byteLength >= 600_000, 'full content in file');
738
+ }
739
+ finally {
740
+ await framework.stop();
741
+ rmSync(tempDir, { recursive: true, force: true });
742
+ }
743
+ });
744
+ });
745
+ import { PassthroughStrategy } from '../src/index.js';
746
+ class CappedPassthroughStrategy extends PassthroughStrategy {
747
+ maxMessageTokens = 1000;
748
+ }
423
749
  //# sourceMappingURL=code-execution.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-execution.test.js","sourceRoot":"","sources":["../../test/code-execution.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAWjC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE9E,MAAM,UAAU,GAA2C;IACzD,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE;CACjD,CAAC;AAEF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE;YAC/B,EAAE,MAAM,EAAE,6BAA6B,EAAE,QAAQ,EAAE,6BAA6B,EAAE;YAClF,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;SACvC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,oEAAoE;QACpE,mDAAmD;QACnD,MAAM,QAAQ,GAAG,kBAAkB,CAAC;YAClC,yBAAyB;YACzB,qCAAqC;YACrC,gCAAgC;SACjC,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE;YAC/B,EAAE,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,yBAAyB,EAAE;YAC1E,EAAE,MAAM,EAAE,qCAAqC,EAAE,QAAQ,EAAE,qCAAqC,EAAE;YAClG,EAAE,MAAM,EAAE,gCAAgC,EAAE,QAAQ,EAAE,gCAAgC,EAAE;SACzF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;YACnE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YACjD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxC,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,KAAK,GAA2D,EAAE,CAAC;QACzE,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC;YAC1B,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;gBAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAC9B;gBACE,aAAa;gBACb,wDAAwD;gBACxD,0CAA0C;aAC3C,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,UAAU,CACX,CAAC;YACF,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YAC7C,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACtF,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC;YAC1B,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;SAC3D,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAC9B,4CAA4C,EAC5C,UAAU,CACX,CAAC;YACF,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC;YAC1B,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBAChC,QAAQ,EAAE,CAAC;gBACX,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAC9C,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7C,QAAQ,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAC9B;gBACE,gBAAgB;gBAChB,2EAA2E;gBAC3E,0BAA0B;aAC3B,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,UAAU,CACX,CAAC;YACF,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACrC,MAAM,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,EAAE,iDAAiD,WAAW,EAAE,CAAC,CAAC;QAC9F,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACrD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;YACjE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC3C,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC;YAC1B,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,4CAA4C;SACrE,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAC9B;gBACE,0BAA0B;gBAC1B,4BAA4B;gBAC5B,0BAA0B;aAC3B,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,UAAU,CACX,CAAC;YACF,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAC/D,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC;YAC1B,iBAAiB,EAAE,IAAI;YACvB,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;SACpF,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;YACrE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,uDAAuD,CAAC,CAAC;QACvF,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC;YAC1B,eAAe,EAAE,IAAI;YACrB,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE,EAAE,CAAC,CAAC;YAChF,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YACjD,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAC5E,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE,EAAE,CAAC,CAAC;YAC3E,+CAA+C;YAC/C,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAC7B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;YAC3D,uEAAuE;YACvE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YACtD,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAC;YACxE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YACtD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC;YAC1B,UAAU,EAAE,0BAA0B;YACtC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACjD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,6DAA6D,CAAC,CAAC;QAC7F,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,MAAM,gBAAgB;IACX,IAAI,GAAG,MAAM,CAAC;IACd,KAAK,GAAe,EAAE,CAAC;IAEhC,KAAK,CAAC,KAAK,CAAC,IAAmB,IAAkB,CAAC;IAClD,KAAK,CAAC,IAAI,KAAmB,CAAC;IAE9B,QAAQ;QACN,OAAO;YACL;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,gDAAgD;gBAC7D,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;aAC7E;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,eAAe;gBAC5B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;aAChD;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAc;QACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACvC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACd,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACpE,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAoB,EAAE,MAAoB;QACxD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,gCAAgC,CAAC,SAAiB,EAAE,QAAsB,EAAE,MAAc;IACvG,OAAO,cAAc,CAAC,MAAM,CAAC;QAC3B,SAAS;QACT,QAAQ,EAAE,QAAQ,CAAC,UAAU,EAAE;QAC/B,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,MAAM,CAAC;QACjB,cAAc,EAAE,CAAC;QACjB,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;KACjC,CAAC,CAAC;AACL,CAAC;AAED,QAAQ,CAAC,qDAAqD,EAAE,GAAG,EAAE;IACnE,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC;YAC5C,SAAS;YACT,QAAQ,EAAE,QAAQ,CAAC,UAAU,EAAE;YAC/B,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,CAAC,IAAI,gBAAgB,EAAE,CAAC;YACjC,cAAc,EAAE,CAAC;SAClB,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC;QAC/E,CAAC;gBAAS,CAAC;YACT,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;QACnF,MAAM,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,MAAM,gCAAgC,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC;QACzG,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;YAC/E,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,2CAA2C,CAAC,CAAC;YAC7D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;gBAAS,CAAC;YACT,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;YACxB,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAEtC,MAAM,IAAI,GAAG;YACX,aAAa;YACb,YAAY;YACZ,6BAA6B;YAC7B,sDAAsD;YACtD,kDAAkD;YAClD,oCAAoC;SACrC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC;YACvC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE;YACzC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE;SAC/E,EAAE,UAAU,CAAC,CAAC,CAAC;QAChB,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC;YACvC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE;SACxC,CAAC,CAAC,CAAC;QAEJ,MAAM,SAAS,GAAG,MAAM,gCAAgC,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC;gBACnD,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,YAAY;gBACnB,YAAY,EAAE,cAAc;gBAC5B,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;YACH,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC3E,MAAM,OAAO,GAAG,SAAS,CAAC,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;YAC1F,SAAS,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAE7B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YAEnD,qEAAqE;YACrE,kCAAkC;YAClC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC7F,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACxC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC1C,CAAC;YAED,8DAA8D;YAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAW,CAAC;YACpC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACzD,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAA2C,CAAC;YAC9F,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACtD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;YACzD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YACvD,4CAA4C;YAC5C,MAAM,CAAC,EAAE,CACP,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EACxC,kEAAkE,CACnE,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAEtC,MAAM,IAAI,GAAG;YACX,4BAA4B;YAC5B,2BAA2B;SAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC;YACvC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE;YAC/C,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE;SAC/E,EAAE,UAAU,CAAC,CAAC,CAAC;QAChB,2EAA2E;QAE3E,MAAM,SAAS,GAAG,MAAM,gCAAgC,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC;gBACnD,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,YAAY;gBACnB,YAAY,EAAE,SAAS;gBACvB,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;YACH,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YAChF,MAAM,OAAO,GAAG,SAAS,CAAC,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;YAC1F,SAAS,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAE7B,kEAAkE;YAClE,oEAAoE;YACpE,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YACnG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,yCAAyC;QACzF,CAAC;gBAAS,CAAC;YACT,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"code-execution.test.js","sourceRoot":"","sources":["../../test/code-execution.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Deferred-message / wake integrity (2026-07-31 Mythos "phantom skip").
3
+ *
4
+ * The incident: a DM arrived while a turn was streaming → the message body
5
+ * was deferred (hear-while-acting) but its inference wake was pushed
6
+ * immediately. The wake fired a new turn whose compile ran BEFORE the
7
+ * previous turn's finally flushed the deferred DM; the new turn saw only the
8
+ * routing-shift notice, reasonably skipped, and the DM then landed in the
9
+ * window mid-compile — positioned before the skip. Result: falsified history
10
+ * (the window testified the agent saw the DM and skipped it; the agent later
11
+ * confabulated an apology for a choice it never made) and a KV bust (every
12
+ * later compile diverged from the live prefix at the inserted message).
13
+ *
14
+ * Invariants under test:
15
+ * 1. A turn started by a queued wake CONTAINS the deferred message that woke
16
+ * it (turn-start flush runs before the locus announcement and compile).
17
+ * 2. addMessage defers on turn-alive (activeTurnTokens), not merely
18
+ * stream-alive — the compile window between dequeue and stream
19
+ * registration is closed to cross-turn writers.
20
+ * 3. endTurn edge: a message stored at an endTurn tool boundary (collected
21
+ * for injection but never delivered — the stream is cancelled) is seen by
22
+ * the follow-up turn its own wake starts, positioned AFTER the turn that
23
+ * never saw it, never before.
24
+ * 4. Turn tokens never leak: after runUntilIdle, no turn-alive markers
25
+ * remain (a leaked token would permanently requeue every wake — the
26
+ * 'idle+turn-alive' wedge).
27
+ */
28
+ export {};
29
+ //# sourceMappingURL=deferred-wake-integrity.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deferred-wake-integrity.test.d.ts","sourceRoot":"","sources":["../../test/deferred-wake-integrity.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG"}