@animalabs/agent-framework 0.6.8 → 0.7.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/dist/src/agent.d.ts +6 -0
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +11 -1
- package/dist/src/agent.js.map +1 -1
- package/dist/src/framework.d.ts +129 -15
- package/dist/src/framework.d.ts.map +1 -1
- package/dist/src/framework.js +967 -113
- package/dist/src/framework.js.map +1 -1
- package/dist/src/mcpl/channel-registry.d.ts +87 -7
- package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
- package/dist/src/mcpl/channel-registry.js +329 -49
- package/dist/src/mcpl/channel-registry.js.map +1 -1
- package/dist/src/modules/workspace/index.d.ts +10 -0
- package/dist/src/modules/workspace/index.d.ts.map +1 -1
- package/dist/src/modules/workspace/index.js +61 -6
- package/dist/src/modules/workspace/index.js.map +1 -1
- package/dist/src/modules/workspace/types.d.ts +2 -0
- 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 +17 -0
- package/dist/src/modules/workspace/watcher.d.ts.map +1 -1
- package/dist/src/modules/workspace/watcher.js +143 -7
- package/dist/src/modules/workspace/watcher.js.map +1 -1
- package/dist/src/types/agent.d.ts +32 -0
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/trace.d.ts +32 -0
- package/dist/src/types/trace.d.ts.map +1 -1
- package/dist/test/channel-registry-routing.test.js +186 -10
- package/dist/test/channel-registry-routing.test.js.map +1 -1
- package/dist/test/explicit-prose-routing.test.d.ts +11 -0
- package/dist/test/explicit-prose-routing.test.d.ts.map +1 -0
- package/dist/test/explicit-prose-routing.test.js +247 -0
- package/dist/test/explicit-prose-routing.test.js.map +1 -0
- package/dist/test/present-while-acting.test.js +85 -8
- package/dist/test/present-while-acting.test.js.map +1 -1
- package/dist/test/trunk-channel-routing.test.js +7 -3
- package/dist/test/trunk-channel-routing.test.js.map +1 -1
- package/dist/test/workspace-watcher.test.js +161 -9
- package/dist/test/workspace-watcher.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/agent.ts +11 -1
- package/src/framework.ts +1037 -116
- package/src/mcpl/channel-registry.ts +401 -54
- package/src/modules/workspace/index.ts +60 -6
- package/src/modules/workspace/types.ts +2 -0
- package/src/modules/workspace/watcher.ts +160 -7
- package/src/types/agent.ts +35 -0
- package/src/types/trace.ts +47 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { describe, it, beforeEach, afterEach } from 'node:test';
|
|
2
2
|
import assert from 'node:assert';
|
|
3
|
-
import { existsSync, mkdtempSync, writeFileSync, unlinkSync, rmSync } from 'node:fs';
|
|
3
|
+
import { existsSync, mkdtempSync, mkdirSync, writeFileSync, unlinkSync, rmSync } from 'node:fs';
|
|
4
4
|
import { tmpdir } from 'node:os';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
6
|
import { MountWatcher } from '../src/modules/workspace/watcher.js';
|
|
7
7
|
// Short debounce keeps each test under ~200ms.
|
|
8
8
|
const DEBOUNCE_MS = 50;
|
|
9
|
+
const WATCH_ROOT_POLL_MS = 50;
|
|
9
10
|
// Chokidar's awaitWriteFinish (stabilityThreshold:100) + our debounce means
|
|
10
11
|
// each emission takes ~150ms to land; wait at least 300ms.
|
|
11
12
|
const SETTLE_MS = 350;
|
|
@@ -24,26 +25,68 @@ function makeConfig() {
|
|
|
24
25
|
mode: 'read-write',
|
|
25
26
|
watch: 'always',
|
|
26
27
|
watchDebounceMs: DEBOUNCE_MS,
|
|
28
|
+
watchRootPollMs: WATCH_ROOT_POLL_MS,
|
|
27
29
|
};
|
|
28
30
|
}
|
|
29
|
-
function collect() {
|
|
31
|
+
function collect(lifecycle, config = makeConfig()) {
|
|
30
32
|
const batches = [];
|
|
31
|
-
const watcher = new MountWatcher(
|
|
33
|
+
const watcher = new MountWatcher(config, (changes) => {
|
|
32
34
|
batches.push(changes);
|
|
33
|
-
});
|
|
35
|
+
}, lifecycle);
|
|
34
36
|
watcher.start();
|
|
35
37
|
return { watcher, batches };
|
|
36
38
|
}
|
|
39
|
+
function withChokidarBackend(usePolling, start) {
|
|
40
|
+
const previousUsePolling = process.env.CHOKIDAR_USEPOLLING;
|
|
41
|
+
const previousInterval = process.env.CHOKIDAR_INTERVAL;
|
|
42
|
+
process.env.CHOKIDAR_USEPOLLING = String(usePolling);
|
|
43
|
+
if (usePolling)
|
|
44
|
+
process.env.CHOKIDAR_INTERVAL = '25';
|
|
45
|
+
try {
|
|
46
|
+
return start();
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
if (previousUsePolling === undefined)
|
|
50
|
+
delete process.env.CHOKIDAR_USEPOLLING;
|
|
51
|
+
else
|
|
52
|
+
process.env.CHOKIDAR_USEPOLLING = previousUsePolling;
|
|
53
|
+
if (previousInterval === undefined)
|
|
54
|
+
delete process.env.CHOKIDAR_INTERVAL;
|
|
55
|
+
else
|
|
56
|
+
process.env.CHOKIDAR_INTERVAL = previousInterval;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function withPollingBackend(start) {
|
|
60
|
+
return withChokidarBackend(true, start);
|
|
61
|
+
}
|
|
62
|
+
function withNativeBackend(start) {
|
|
63
|
+
return withChokidarBackend(false, start);
|
|
64
|
+
}
|
|
65
|
+
function collectWithPolling(lifecycle) {
|
|
66
|
+
return withPollingBackend(() => collect(lifecycle));
|
|
67
|
+
}
|
|
68
|
+
function collectWithNative(lifecycle, config) {
|
|
69
|
+
return withNativeBackend(() => collect(lifecycle, config));
|
|
70
|
+
}
|
|
37
71
|
async function wait(ms) {
|
|
38
72
|
await new Promise(r => setTimeout(r, ms));
|
|
39
73
|
}
|
|
74
|
+
async function waitFor(predicate, message, timeoutMs = 1500) {
|
|
75
|
+
const start = Date.now();
|
|
76
|
+
while (Date.now() - start < timeoutMs) {
|
|
77
|
+
if (predicate())
|
|
78
|
+
return;
|
|
79
|
+
await wait(25);
|
|
80
|
+
}
|
|
81
|
+
assert.fail(message);
|
|
82
|
+
}
|
|
40
83
|
describe('MountWatcher mergeOp', () => {
|
|
41
84
|
it('unlink + add within debounce window → modified (atomic save)', async () => {
|
|
42
85
|
// Seed a file before starting the watcher, so add+unlink+add reduces to
|
|
43
86
|
// unlink+add (atomic save shape).
|
|
44
87
|
const file = join(tmp, 'ticket.md');
|
|
45
88
|
writeFileSync(file, 'v1');
|
|
46
|
-
const { watcher, batches } =
|
|
89
|
+
const { watcher, batches } = collectWithPolling();
|
|
47
90
|
await wait(100); // let chokidar initialize
|
|
48
91
|
// Atomic save: unlink then write
|
|
49
92
|
unlinkSync(file);
|
|
@@ -57,7 +100,7 @@ describe('MountWatcher mergeOp', () => {
|
|
|
57
100
|
assert.strictEqual(forFile[0].op, 'modified');
|
|
58
101
|
});
|
|
59
102
|
it('create + modify within window → created (net new)', async () => {
|
|
60
|
-
const { watcher, batches } =
|
|
103
|
+
const { watcher, batches } = collectWithPolling();
|
|
61
104
|
await wait(100);
|
|
62
105
|
const file = join(tmp, 'new.md');
|
|
63
106
|
writeFileSync(file, 'hello');
|
|
@@ -75,7 +118,7 @@ describe('MountWatcher mergeOp', () => {
|
|
|
75
118
|
// Seed so the watcher's first observation is the unlink of a real file.
|
|
76
119
|
const file = join(tmp, 'a.md');
|
|
77
120
|
writeFileSync(file, 'v1');
|
|
78
|
-
const { watcher, batches } =
|
|
121
|
+
const { watcher, batches } = collectWithPolling();
|
|
79
122
|
await wait(100);
|
|
80
123
|
// Double-flip: unlink + recreate + unlink + recreate inside one window.
|
|
81
124
|
unlinkSync(file);
|
|
@@ -93,8 +136,11 @@ describe('MountWatcher lifecycle', () => {
|
|
|
93
136
|
assert.ok(!existsSync(nested), 'precondition: nested path should not exist');
|
|
94
137
|
const batches = [];
|
|
95
138
|
let ready = false;
|
|
96
|
-
const watcher =
|
|
97
|
-
|
|
139
|
+
const watcher = withPollingBackend(() => {
|
|
140
|
+
const mounted = new MountWatcher({ name: 'tickets', path: nested, mode: 'read-write', watch: 'always', watchDebounceMs: DEBOUNCE_MS }, (changes) => { batches.push(changes); }, { onReady: () => { ready = true; } });
|
|
141
|
+
mounted.start();
|
|
142
|
+
return mounted;
|
|
143
|
+
});
|
|
98
144
|
await wait(150);
|
|
99
145
|
assert.ok(existsSync(nested), 'start() should have created the watched path');
|
|
100
146
|
writeFileSync(join(nested, 'ticket.md'), 'hi');
|
|
@@ -113,5 +159,111 @@ describe('MountWatcher lifecycle', () => {
|
|
|
113
159
|
assert.ok(!existsSync(roPath), 'read-only mount must not mkdir -p behind the user\'s back');
|
|
114
160
|
await watcher.stop();
|
|
115
161
|
});
|
|
162
|
+
it('read-write mount recreates a deleted root and re-attaches', async () => {
|
|
163
|
+
let readyCount = 0;
|
|
164
|
+
let reattachCount = 0;
|
|
165
|
+
const { watcher } = collectWithNative({
|
|
166
|
+
onReady: () => { readyCount++; },
|
|
167
|
+
onReattach: () => { reattachCount++; },
|
|
168
|
+
});
|
|
169
|
+
try {
|
|
170
|
+
await waitFor(() => readyCount > 0, 'expected initial watcher ready');
|
|
171
|
+
rmSync(tmp, { recursive: true, force: true });
|
|
172
|
+
await waitFor(() => reattachCount > 0, 'expected watcher to recreate and reattach');
|
|
173
|
+
await waitFor(() => readyCount > 1, 'expected recreated watcher ready');
|
|
174
|
+
assert.ok(existsSync(tmp), 'read-write mount should recreate its deleted root');
|
|
175
|
+
}
|
|
176
|
+
finally {
|
|
177
|
+
await watcher.stop();
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
// Sandboxed macOS rejects native fs.watch handles with EMFILE. Keep this
|
|
181
|
+
// production-backend integration assertion authoritative on Linux.
|
|
182
|
+
it('re-attaches after the root is removed and recreated', {
|
|
183
|
+
skip: process.platform !== 'linux',
|
|
184
|
+
}, async () => {
|
|
185
|
+
let readyCount = 0;
|
|
186
|
+
let reattachCount = 0;
|
|
187
|
+
const { watcher, batches } = collectWithNative({
|
|
188
|
+
onReady: () => { readyCount++; },
|
|
189
|
+
onReattach: () => { reattachCount++; },
|
|
190
|
+
}, { ...makeConfig(), watchRootPollMs: 5000 });
|
|
191
|
+
try {
|
|
192
|
+
await waitFor(() => readyCount > 0, 'expected initial watcher ready');
|
|
193
|
+
rmSync(tmp, { recursive: true, force: true });
|
|
194
|
+
mkdirSync(tmp, { recursive: true });
|
|
195
|
+
await waitFor(() => reattachCount > 0, 'expected watcher to reattach');
|
|
196
|
+
await waitFor(() => readyCount > 1, 'expected reattached watcher ready');
|
|
197
|
+
writeFileSync(join(tmp, 'after-recreate.md'), 'hello');
|
|
198
|
+
await wait(SETTLE_MS);
|
|
199
|
+
const created = batches.flat().find(c => c.path === 'after-recreate.md');
|
|
200
|
+
assert.ok(created, `expected created event after reattach, got ${JSON.stringify(batches.flat())}`);
|
|
201
|
+
assert.strictEqual(created.op, 'created');
|
|
202
|
+
}
|
|
203
|
+
finally {
|
|
204
|
+
await watcher.stop();
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
it('fires onReattach exactly once for one remove and recreate cycle', async () => {
|
|
208
|
+
let readyCount = 0;
|
|
209
|
+
let reattachCount = 0;
|
|
210
|
+
const { watcher } = collectWithNative({
|
|
211
|
+
onReady: () => { readyCount++; },
|
|
212
|
+
onReattach: () => { reattachCount++; },
|
|
213
|
+
});
|
|
214
|
+
try {
|
|
215
|
+
await waitFor(() => readyCount > 0, 'expected initial watcher ready');
|
|
216
|
+
rmSync(tmp, { recursive: true, force: true });
|
|
217
|
+
mkdirSync(tmp, { recursive: true });
|
|
218
|
+
await waitFor(() => reattachCount > 0, 'expected watcher to reattach');
|
|
219
|
+
await waitFor(() => readyCount > 1, 'expected reattached watcher ready');
|
|
220
|
+
await wait(WATCH_ROOT_POLL_MS * 4);
|
|
221
|
+
assert.strictEqual(reattachCount, 1);
|
|
222
|
+
}
|
|
223
|
+
finally {
|
|
224
|
+
await watcher.stop();
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
it('does not re-attach for normal create and modify traffic', async () => {
|
|
228
|
+
let ready = false;
|
|
229
|
+
let reattachCount = 0;
|
|
230
|
+
const { watcher, batches } = collectWithPolling({
|
|
231
|
+
onReady: () => { ready = true; },
|
|
232
|
+
onReattach: () => { reattachCount++; },
|
|
233
|
+
});
|
|
234
|
+
try {
|
|
235
|
+
await waitFor(() => ready, 'expected initial watcher ready');
|
|
236
|
+
const file = join(tmp, 'normal.md');
|
|
237
|
+
writeFileSync(file, 'v1');
|
|
238
|
+
await wait(SETTLE_MS);
|
|
239
|
+
writeFileSync(file, 'v2');
|
|
240
|
+
await wait(SETTLE_MS + WATCH_ROOT_POLL_MS * 4);
|
|
241
|
+
assert.strictEqual(reattachCount, 0);
|
|
242
|
+
const flat = batches.flat();
|
|
243
|
+
assert.ok(flat.some(c => c.path === 'normal.md'), `expected normal file event, got ${JSON.stringify(flat)}`);
|
|
244
|
+
}
|
|
245
|
+
finally {
|
|
246
|
+
await watcher.stop();
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
it('keeps a deleted read-only root detached and stops cleanly', async () => {
|
|
250
|
+
let ready = false;
|
|
251
|
+
let reattachCount = 0;
|
|
252
|
+
const watcher = new MountWatcher({ ...makeConfig(), mode: 'read-only' }, () => { }, {
|
|
253
|
+
onReady: () => { ready = true; },
|
|
254
|
+
onReattach: () => { reattachCount++; },
|
|
255
|
+
});
|
|
256
|
+
watcher.start();
|
|
257
|
+
try {
|
|
258
|
+
await waitFor(() => ready, 'expected initial watcher ready');
|
|
259
|
+
rmSync(tmp, { recursive: true, force: true });
|
|
260
|
+
await wait(WATCH_ROOT_POLL_MS * 2);
|
|
261
|
+
assert.ok(!existsSync(tmp), 'read-only mount must not recreate its deleted root');
|
|
262
|
+
assert.strictEqual(reattachCount, 0);
|
|
263
|
+
}
|
|
264
|
+
finally {
|
|
265
|
+
await watcher.stop();
|
|
266
|
+
}
|
|
267
|
+
});
|
|
116
268
|
});
|
|
117
269
|
//# sourceMappingURL=workspace-watcher.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-watcher.test.js","sourceRoot":"","sources":["../../test/workspace-watcher.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace-watcher.test.js","sourceRoot":"","sources":["../../test/workspace-watcher.test.ts"],"names":[],"mappings":"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"}
|