@mclawnet/swarm 0.1.12 → 0.1.13
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/__tests__/inbox-store-notbefore.test.d.ts +2 -0
- package/dist/__tests__/inbox-store-notbefore.test.d.ts.map +1 -0
- package/dist/__tests__/inbox-store-notbefore.test.js +47 -0
- package/dist/__tests__/inbox-store-notbefore.test.js.map +1 -0
- package/dist/__tests__/inbox-store-swarmid-validation.test.d.ts +2 -0
- package/dist/__tests__/inbox-store-swarmid-validation.test.d.ts.map +1 -0
- package/dist/__tests__/inbox-store-swarmid-validation.test.js +32 -0
- package/dist/__tests__/inbox-store-swarmid-validation.test.js.map +1 -0
- package/dist/__tests__/role-loader-editor.test.js +40 -10
- package/dist/__tests__/role-loader-editor.test.js.map +1 -1
- package/dist/__tests__/template-loader-editor.test.js +28 -13
- package/dist/__tests__/template-loader-editor.test.js.map +1 -1
- package/dist/__tests__/wakeup-end-to-end.test.d.ts +2 -0
- package/dist/__tests__/wakeup-end-to-end.test.d.ts.map +1 -0
- package/dist/__tests__/wakeup-end-to-end.test.js +80 -0
- package/dist/__tests__/wakeup-end-to-end.test.js.map +1 -0
- package/dist/__tests__/wakeup-scheduler-restore-fires.test.d.ts +2 -0
- package/dist/__tests__/wakeup-scheduler-restore-fires.test.d.ts.map +1 -0
- package/dist/__tests__/wakeup-scheduler-restore-fires.test.js +33 -0
- package/dist/__tests__/wakeup-scheduler-restore-fires.test.js.map +1 -0
- package/dist/__tests__/wakeup-scheduler-restore.test.d.ts +2 -0
- package/dist/__tests__/wakeup-scheduler-restore.test.d.ts.map +1 -0
- package/dist/__tests__/wakeup-scheduler-restore.test.js +62 -0
- package/dist/__tests__/wakeup-scheduler-restore.test.js.map +1 -0
- package/dist/__tests__/wakeup-scheduler.test.d.ts +2 -0
- package/dist/__tests__/wakeup-scheduler.test.d.ts.map +1 -0
- package/dist/__tests__/wakeup-scheduler.test.js +65 -0
- package/dist/__tests__/wakeup-scheduler.test.js.map +1 -0
- package/dist/__tests__/watch-manager.test.d.ts +2 -0
- package/dist/__tests__/watch-manager.test.d.ts.map +1 -0
- package/dist/__tests__/watch-manager.test.js +203 -0
- package/dist/__tests__/watch-manager.test.js.map +1 -0
- package/dist/inbox-store.d.ts +7 -0
- package/dist/inbox-store.d.ts.map +1 -1
- package/dist/inbox-store.js +8 -1
- package/dist/inbox-store.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/roles/role-loader.d.ts +30 -5
- package/dist/roles/role-loader.d.ts.map +1 -1
- package/dist/roles/role-loader.js +40 -32
- package/dist/roles/role-loader.js.map +1 -1
- package/dist/templates/template-loader.d.ts +23 -9
- package/dist/templates/template-loader.d.ts.map +1 -1
- package/dist/templates/template-loader.js +33 -26
- package/dist/templates/template-loader.js.map +1 -1
- package/dist/wakeup-scheduler.d.ts +36 -0
- package/dist/wakeup-scheduler.d.ts.map +1 -0
- package/dist/wakeup-scheduler.js +107 -0
- package/dist/wakeup-scheduler.js.map +1 -0
- package/dist/watch-manager.d.ts +32 -0
- package/dist/watch-manager.d.ts.map +1 -0
- package/dist/watch-manager.js +153 -0
- package/dist/watch-manager.js.map +1 -0
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-loader.js","sourceRoot":"","sources":["../../src/roles/role-loader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"role-loader.js","sourceRoot":"","sources":["../../src/roles/role-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,29 +11,43 @@ import type { TemplateDefinition } from "./types.js";
|
|
|
11
11
|
* ```
|
|
12
12
|
*/
|
|
13
13
|
export declare function parseTemplateFile(content: string): TemplateDefinition;
|
|
14
|
-
/** Ensure user templates directory exists. */
|
|
15
|
-
export declare function initTemplates(): string;
|
|
16
14
|
/** List all available template names (user dir + presets, deduplicated). */
|
|
17
15
|
export declare function listTemplates(): string[];
|
|
18
16
|
/** Load a template definition by name. User directory takes priority. */
|
|
19
17
|
export declare function loadTemplate(name: string): TemplateDefinition;
|
|
20
|
-
export type TemplateSource = "preset" | "user"
|
|
18
|
+
export type TemplateSource = "preset" | "user";
|
|
21
19
|
export interface TemplateListItem {
|
|
22
20
|
name: string;
|
|
23
21
|
source: TemplateSource;
|
|
22
|
+
/**
|
|
23
|
+
* True when a user-authored template with this name hides a built-in preset
|
|
24
|
+
* of the same name (legacy state — saveTemplate now refuses such writes).
|
|
25
|
+
* Lets the UI warn the user they're masking a built-in.
|
|
26
|
+
*/
|
|
27
|
+
shadowsPreset?: boolean;
|
|
24
28
|
}
|
|
25
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* List all templates with source tag.
|
|
31
|
+
*
|
|
32
|
+
* Presets live in the npm package; user templates in `~/.clawnet/templates/`.
|
|
33
|
+
* Names must be globally unique going forward (enforced at save time). On a
|
|
34
|
+
* collision (e.g. a stale user copy left over from an older build), the user
|
|
35
|
+
* copy wins for both listing and loading and is flagged `shadowsPreset` so
|
|
36
|
+
* the UI can surface the conflict.
|
|
37
|
+
*/
|
|
26
38
|
export declare function listTemplatesWithSource(): TemplateListItem[];
|
|
27
39
|
/** Resolve a template's source; null when neither user nor preset has it. */
|
|
28
40
|
export declare function getTemplateSource(name: string): TemplateSource | null;
|
|
29
41
|
/** Get raw markdown content. User file wins over preset. */
|
|
30
42
|
export declare function getTemplateRaw(name: string): string | null;
|
|
31
43
|
/**
|
|
32
|
-
* Write a template to the user directory.
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
44
|
+
* Write a template to the user directory.
|
|
45
|
+
*
|
|
46
|
+
* Validates by parsing first; throws on bad frontmatter so a broken file
|
|
47
|
+
* never reaches disk. Refuses to write if the name collides with a built-in
|
|
48
|
+
* preset — presets are immutable, so "edit a preset" is implemented by Copy
|
|
49
|
+
* with a new name. Uses tmp + rename for atomicity (no truncated reads under
|
|
50
|
+
* concurrent get).
|
|
37
51
|
*/
|
|
38
52
|
export declare function saveTemplate(name: string, raw: string): TemplateSource;
|
|
39
53
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-loader.d.ts","sourceRoot":"","sources":["../../src/templates/template-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAoB,MAAM,YAAY,CAAC;AAuCvE;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAwDrE;AAUD,
|
|
1
|
+
{"version":3,"file":"template-loader.d.ts","sourceRoot":"","sources":["../../src/templates/template-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAoB,MAAM,YAAY,CAAC;AAuCvE;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAwDrE;AAUD,4EAA4E;AAC5E,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAqBxC;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAa7D;AAMD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,IAAI,gBAAgB,EAAE,CA2B5D;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAKrE;AAED,4DAA4D;AAC5D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAmBtE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,gBAAgB,EAAE,OAAO,CAAA;CAAE,CAW1E"}
|
|
@@ -104,12 +104,6 @@ function finalizeRole(partial) {
|
|
|
104
104
|
eager: partial.eager,
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
|
-
/** Ensure user templates directory exists. */
|
|
108
|
-
export function initTemplates() {
|
|
109
|
-
const dir = userTemplatesDir();
|
|
110
|
-
mkdirSync(dir, { recursive: true });
|
|
111
|
-
return dir;
|
|
112
|
-
}
|
|
113
107
|
/** List all available template names (user dir + presets, deduplicated). */
|
|
114
108
|
export function listTemplates() {
|
|
115
109
|
const templates = new Set();
|
|
@@ -143,7 +137,15 @@ export function loadTemplate(name) {
|
|
|
143
137
|
}
|
|
144
138
|
throw new Error(`Template not found: ${name}`);
|
|
145
139
|
}
|
|
146
|
-
/**
|
|
140
|
+
/**
|
|
141
|
+
* List all templates with source tag.
|
|
142
|
+
*
|
|
143
|
+
* Presets live in the npm package; user templates in `~/.clawnet/templates/`.
|
|
144
|
+
* Names must be globally unique going forward (enforced at save time). On a
|
|
145
|
+
* collision (e.g. a stale user copy left over from an older build), the user
|
|
146
|
+
* copy wins for both listing and loading and is flagged `shadowsPreset` so
|
|
147
|
+
* the UI can surface the conflict.
|
|
148
|
+
*/
|
|
147
149
|
export function listTemplatesWithSource() {
|
|
148
150
|
const presetNames = existsSync(PRESET_DIR)
|
|
149
151
|
? readdirSync(PRESET_DIR)
|
|
@@ -156,26 +158,26 @@ export function listTemplatesWithSource() {
|
|
|
156
158
|
.filter((f) => f.endsWith(".md"))
|
|
157
159
|
.map((f) => f.replace(/\.md$/, ""))
|
|
158
160
|
: [];
|
|
159
|
-
const presetSet = new Set(presetNames);
|
|
160
161
|
const userSet = new Set(userNames);
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
}
|
|
162
|
+
const presetSet = new Set(presetNames);
|
|
163
|
+
const items = [];
|
|
164
|
+
for (const name of userNames) {
|
|
165
|
+
items.push(presetSet.has(name)
|
|
166
|
+
? { name, source: "user", shadowsPreset: true }
|
|
167
|
+
: { name, source: "user" });
|
|
168
|
+
}
|
|
169
|
+
for (const name of presetNames) {
|
|
170
|
+
if (!userSet.has(name))
|
|
171
|
+
items.push({ name, source: "preset" });
|
|
172
|
+
}
|
|
173
|
+
return items.sort((a, b) => a.name.localeCompare(b.name));
|
|
168
174
|
}
|
|
169
175
|
/** Resolve a template's source; null when neither user nor preset has it. */
|
|
170
176
|
export function getTemplateSource(name) {
|
|
171
177
|
validateName(name);
|
|
172
|
-
|
|
173
|
-
const inPreset = existsSync(join(PRESET_DIR, `${name}.md`));
|
|
174
|
-
if (inUser && inPreset)
|
|
175
|
-
return "override";
|
|
176
|
-
if (inUser)
|
|
178
|
+
if (existsSync(join(userTemplatesDir(), `${name}.md`)))
|
|
177
179
|
return "user";
|
|
178
|
-
if (
|
|
180
|
+
if (existsSync(join(PRESET_DIR, `${name}.md`)))
|
|
179
181
|
return "preset";
|
|
180
182
|
return null;
|
|
181
183
|
}
|
|
@@ -191,14 +193,19 @@ export function getTemplateRaw(name) {
|
|
|
191
193
|
return null;
|
|
192
194
|
}
|
|
193
195
|
/**
|
|
194
|
-
* Write a template to the user directory.
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
*
|
|
196
|
+
* Write a template to the user directory.
|
|
197
|
+
*
|
|
198
|
+
* Validates by parsing first; throws on bad frontmatter so a broken file
|
|
199
|
+
* never reaches disk. Refuses to write if the name collides with a built-in
|
|
200
|
+
* preset — presets are immutable, so "edit a preset" is implemented by Copy
|
|
201
|
+
* with a new name. Uses tmp + rename for atomicity (no truncated reads under
|
|
202
|
+
* concurrent get).
|
|
199
203
|
*/
|
|
200
204
|
export function saveTemplate(name, raw) {
|
|
201
205
|
validateName(name);
|
|
206
|
+
if (existsSync(join(PRESET_DIR, `${name}.md`))) {
|
|
207
|
+
throw new Error(`Cannot save template '${name}': name conflicts with a built-in preset. Choose another name.`);
|
|
208
|
+
}
|
|
202
209
|
const parsed = parseTemplateFile(raw);
|
|
203
210
|
if (parsed.name && parsed.name !== name && parsed.name !== "unknown") {
|
|
204
211
|
throw new Error(`Frontmatter name '${parsed.name}' does not match requested '${name}'`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-loader.js","sourceRoot":"","sources":["../../src/templates/template-loader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"template-loader.js","sourceRoot":"","sources":["../../src/templates/template-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface WakeupRelayLike {
|
|
2
|
+
deliver(swarmId: string, instanceId: string): void | Promise<void>;
|
|
3
|
+
}
|
|
4
|
+
export interface RestoreSwarm {
|
|
5
|
+
swarmId: string;
|
|
6
|
+
workDir: string;
|
|
7
|
+
}
|
|
8
|
+
export interface RestoreOptions {
|
|
9
|
+
projectRootFor?: (workDir: string, home: string) => string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* In-memory timer registry for delayed inbox deliveries.
|
|
13
|
+
*
|
|
14
|
+
* `wakeup_after` writes an InboxMessage with `notBefore` in the future;
|
|
15
|
+
* readUndelivered filters it until that time. To avoid waiting on the next
|
|
16
|
+
* external deliver() call to discover the wakeup, we register an in-process
|
|
17
|
+
* setTimeout that fires relay.deliver() at notBefore.
|
|
18
|
+
*
|
|
19
|
+
* Persistence: timers are NOT persisted — InboxStore is. On agent startup
|
|
20
|
+
* restoreFromInbox() scans inbox files and re-registers timers for all
|
|
21
|
+
* future-dated messages.
|
|
22
|
+
*/
|
|
23
|
+
export declare class WakeupScheduler {
|
|
24
|
+
private relay;
|
|
25
|
+
private timers;
|
|
26
|
+
constructor(relay: WakeupRelayLike);
|
|
27
|
+
private key;
|
|
28
|
+
register(swarmId: string, instanceId: string, notBefore: number): void;
|
|
29
|
+
size(): number;
|
|
30
|
+
/** Count of active timers for (swarmId, instanceId). Used by mcp-server's
|
|
31
|
+
* wrapper to enforce per-instance caps before register. */
|
|
32
|
+
countForInstance(swarmId: string, instanceId: string): number;
|
|
33
|
+
dispose(): void;
|
|
34
|
+
restoreFromInbox(home: string, swarms: RestoreSwarm[], opts?: RestoreOptions): Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=wakeup-scheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wakeup-scheduler.d.ts","sourceRoot":"","sources":["../src/wakeup-scheduler.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAED,MAAM,WAAW,YAAY;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CAAE;AACnE,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5D;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,eAAe;IAEd,OAAO,CAAC,KAAK;IADzB,OAAO,CAAC,MAAM,CAAqC;gBAC/B,KAAK,EAAE,eAAe;IAC1C,OAAO,CAAC,GAAG;IACX,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAatE,IAAI,IAAI,MAAM;IACd;gEAC4D;IAC5D,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAM7D,OAAO,IAAI,IAAI;IAET,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAuCvG"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { readdirSync, readFileSync, existsSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { createLogger } from "@mclawnet/logger";
|
|
4
|
+
import { projectRoot as defaultProjectRoot } from "@mclawnet/task";
|
|
5
|
+
const log = createLogger({ module: "swarm/wakeup-scheduler" });
|
|
6
|
+
/**
|
|
7
|
+
* In-memory timer registry for delayed inbox deliveries.
|
|
8
|
+
*
|
|
9
|
+
* `wakeup_after` writes an InboxMessage with `notBefore` in the future;
|
|
10
|
+
* readUndelivered filters it until that time. To avoid waiting on the next
|
|
11
|
+
* external deliver() call to discover the wakeup, we register an in-process
|
|
12
|
+
* setTimeout that fires relay.deliver() at notBefore.
|
|
13
|
+
*
|
|
14
|
+
* Persistence: timers are NOT persisted — InboxStore is. On agent startup
|
|
15
|
+
* restoreFromInbox() scans inbox files and re-registers timers for all
|
|
16
|
+
* future-dated messages.
|
|
17
|
+
*/
|
|
18
|
+
export class WakeupScheduler {
|
|
19
|
+
relay;
|
|
20
|
+
timers = new Map();
|
|
21
|
+
constructor(relay) {
|
|
22
|
+
this.relay = relay;
|
|
23
|
+
}
|
|
24
|
+
key(s, i, n) { return `${s}::${i}::${n}`; }
|
|
25
|
+
register(swarmId, instanceId, notBefore) {
|
|
26
|
+
const k = this.key(swarmId, instanceId, notBefore);
|
|
27
|
+
if (this.timers.has(k))
|
|
28
|
+
return;
|
|
29
|
+
const delay = Math.max(0, notBefore - Date.now());
|
|
30
|
+
const t = setTimeout(() => {
|
|
31
|
+
this.timers.delete(k);
|
|
32
|
+
Promise.resolve(this.relay.deliver(swarmId, instanceId)).catch(err => {
|
|
33
|
+
log.warn({ err, swarmId, instanceId }, "wakeup deliver failed (best-effort)");
|
|
34
|
+
});
|
|
35
|
+
}, delay);
|
|
36
|
+
t.unref(); // don't keep event loop alive purely for wakeups
|
|
37
|
+
this.timers.set(k, t);
|
|
38
|
+
}
|
|
39
|
+
size() { return this.timers.size; }
|
|
40
|
+
/** Count of active timers for (swarmId, instanceId). Used by mcp-server's
|
|
41
|
+
* wrapper to enforce per-instance caps before register. */
|
|
42
|
+
countForInstance(swarmId, instanceId) {
|
|
43
|
+
const prefix = `${swarmId}::${instanceId}::`;
|
|
44
|
+
let c = 0;
|
|
45
|
+
for (const k of this.timers.keys())
|
|
46
|
+
if (k.startsWith(prefix))
|
|
47
|
+
c++;
|
|
48
|
+
return c;
|
|
49
|
+
}
|
|
50
|
+
dispose() { for (const t of this.timers.values())
|
|
51
|
+
clearTimeout(t); this.timers.clear(); }
|
|
52
|
+
async restoreFromInbox(home, swarms, opts = {}) {
|
|
53
|
+
const resolveRoot = opts.projectRootFor ?? ((wd, h) => defaultProjectRoot(wd, h));
|
|
54
|
+
const now = Date.now();
|
|
55
|
+
let restored = 0;
|
|
56
|
+
for (const { swarmId, workDir } of swarms) {
|
|
57
|
+
// Per-swarm try: any unexpected throw (bad workDir, projectRoot
|
|
58
|
+
// computation, path traversal in encoding, etc) must not short-circuit
|
|
59
|
+
// restoration for the remaining swarms.
|
|
60
|
+
try {
|
|
61
|
+
const inboxDir = join(resolveRoot(workDir, home), "swarms", swarmId, "inboxes");
|
|
62
|
+
if (!existsSync(inboxDir))
|
|
63
|
+
continue;
|
|
64
|
+
let entries;
|
|
65
|
+
try {
|
|
66
|
+
entries = readdirSync(inboxDir);
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
log.warn({ err, inboxDir }, "WakeupScheduler: readdir failed, skipping swarm");
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
for (const file of entries) {
|
|
73
|
+
if (!file.endsWith(".json"))
|
|
74
|
+
continue;
|
|
75
|
+
const instanceId = file.slice(0, -5);
|
|
76
|
+
if (!instanceId)
|
|
77
|
+
continue; // skip pathological ".json" name
|
|
78
|
+
let parsed;
|
|
79
|
+
try {
|
|
80
|
+
parsed = JSON.parse(readFileSync(join(inboxDir, file), "utf-8"));
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
if (!Array.isArray(parsed))
|
|
86
|
+
continue; // defensive: skip object/null
|
|
87
|
+
for (const raw of parsed) {
|
|
88
|
+
if (!raw || typeof raw !== "object")
|
|
89
|
+
continue;
|
|
90
|
+
const m = raw;
|
|
91
|
+
if (m.delivered)
|
|
92
|
+
continue;
|
|
93
|
+
if (m.notBefore === undefined || m.notBefore <= now)
|
|
94
|
+
continue;
|
|
95
|
+
this.register(swarmId, instanceId, m.notBefore);
|
|
96
|
+
restored++;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
log.warn({ err, swarmId, workDir }, "WakeupScheduler: swarm restore failed, skipping");
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
log.info({ restored, swarms: swarms.length }, "WakeupScheduler restored timers from inbox");
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=wakeup-scheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wakeup-scheduler.js","sourceRoot":"","sources":["../src/wakeup-scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { watch } from "node:fs";
|
|
2
|
+
export interface WatchRegistration {
|
|
3
|
+
swarmId: string;
|
|
4
|
+
instanceId: string;
|
|
5
|
+
watchId: string;
|
|
6
|
+
projectRoot: string;
|
|
7
|
+
includeGlobs: string[];
|
|
8
|
+
ignoreGlobs: string[];
|
|
9
|
+
debounceMs: number;
|
|
10
|
+
onTrigger: (matchedPath: string) => void | Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export interface WatchManagerOptions {
|
|
13
|
+
/** Defaults to native `fs.watch`; tests may inject a fake. */
|
|
14
|
+
watchFn?: typeof watch;
|
|
15
|
+
}
|
|
16
|
+
export declare class WatchManager {
|
|
17
|
+
private handles;
|
|
18
|
+
private watchFn;
|
|
19
|
+
constructor(opts?: WatchManagerOptions);
|
|
20
|
+
size(): number;
|
|
21
|
+
/** Count of active watches for (swarmId, instanceId). Used by the
|
|
22
|
+
* mcp-server wrapper to enforce per-instance caps before register and to
|
|
23
|
+
* decide whether to prune external registries on unregister
|
|
24
|
+
* (`countForInstance(s, i) === 0`). */
|
|
25
|
+
countForInstance(swarmId: string, instanceId: string): number;
|
|
26
|
+
private key;
|
|
27
|
+
register(reg: WatchRegistration): void;
|
|
28
|
+
unregister(swarmId: string, instanceId: string, watchId: string): void;
|
|
29
|
+
unwatchByInstance(swarmId: string, instanceId: string): void;
|
|
30
|
+
dispose(): void;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=watch-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch-manager.d.ts","sourceRoot":"","sources":["../src/watch-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,EAAkB,MAAM,SAAS,CAAC;AAM5D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAUD,MAAM,WAAW,mBAAmB;IAClC,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,OAAO,CAAe;gBAElB,IAAI,GAAE,mBAAwB;IAI1C,IAAI,IAAI,MAAM;IAEd;;;4CAGwC;IACxC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAO7D,OAAO,CAAC,GAAG;IAEX,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI;IAwCtC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAStE,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAY5D,OAAO,IAAI,IAAI;CAOhB"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { existsSync, watch } from "node:fs";
|
|
2
|
+
import { relative, isAbsolute } from "node:path";
|
|
3
|
+
import { createLogger } from "@mclawnet/logger";
|
|
4
|
+
const log = createLogger({ module: "swarm/watch-manager" });
|
|
5
|
+
export class WatchManager {
|
|
6
|
+
handles = new Map();
|
|
7
|
+
watchFn;
|
|
8
|
+
constructor(opts = {}) {
|
|
9
|
+
this.watchFn = opts.watchFn ?? watch;
|
|
10
|
+
}
|
|
11
|
+
size() { return this.handles.size; }
|
|
12
|
+
/** Count of active watches for (swarmId, instanceId). Used by the
|
|
13
|
+
* mcp-server wrapper to enforce per-instance caps before register and to
|
|
14
|
+
* decide whether to prune external registries on unregister
|
|
15
|
+
* (`countForInstance(s, i) === 0`). */
|
|
16
|
+
countForInstance(swarmId, instanceId) {
|
|
17
|
+
const prefix = `${swarmId}::${instanceId}::`;
|
|
18
|
+
let c = 0;
|
|
19
|
+
for (const k of this.handles.keys())
|
|
20
|
+
if (k.startsWith(prefix))
|
|
21
|
+
c++;
|
|
22
|
+
return c;
|
|
23
|
+
}
|
|
24
|
+
key(s, i, w) { return `${s}::${i}::${w}`; }
|
|
25
|
+
register(reg) {
|
|
26
|
+
const k = this.key(reg.swarmId, reg.instanceId, reg.watchId);
|
|
27
|
+
if (this.handles.has(k))
|
|
28
|
+
this.unregister(reg.swarmId, reg.instanceId, reg.watchId);
|
|
29
|
+
if (!existsSync(reg.projectRoot)) {
|
|
30
|
+
log.warn({ root: reg.projectRoot, key: k }, "WatchManager: projectRoot missing, skipping");
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const h = {
|
|
34
|
+
reg, watcher: undefined, timer: undefined,
|
|
35
|
+
includeRes: reg.includeGlobs.map(compileGlob),
|
|
36
|
+
ignoreRes: reg.ignoreGlobs.map(compileGlob),
|
|
37
|
+
};
|
|
38
|
+
try {
|
|
39
|
+
h.watcher = this.watchFn(reg.projectRoot, { recursive: true }, (_ev, filename) => {
|
|
40
|
+
// Race guard: if dispose/unregister ran while a watcher event was in-flight
|
|
41
|
+
// (or fired after fs.watch.close() but before the listener detached), the
|
|
42
|
+
// handle has already been removed from the map. Reject early to avoid
|
|
43
|
+
// scheduling a new debounce timer that nobody can clear.
|
|
44
|
+
if (!this.handles.has(k))
|
|
45
|
+
return;
|
|
46
|
+
const name = toUtf8(filename);
|
|
47
|
+
if (!name)
|
|
48
|
+
return;
|
|
49
|
+
const rel = isAbsolute(name) ? (relative(reg.projectRoot, name) || name) : name;
|
|
50
|
+
if (h.ignoreRes.some(r => r.test(rel)))
|
|
51
|
+
return;
|
|
52
|
+
if (h.includeRes.length > 0 && !h.includeRes.some(r => r.test(rel)))
|
|
53
|
+
return;
|
|
54
|
+
if (h.timer)
|
|
55
|
+
clearTimeout(h.timer);
|
|
56
|
+
h.timer = setTimeout(() => {
|
|
57
|
+
h.timer = undefined;
|
|
58
|
+
if (!this.handles.has(k))
|
|
59
|
+
return; // also guard timer fire
|
|
60
|
+
Promise.resolve(reg.onTrigger(rel)).catch(err => log.warn({ err, key: k }, "watch onTrigger failed"));
|
|
61
|
+
}, Math.max(0, reg.debounceMs));
|
|
62
|
+
});
|
|
63
|
+
h.watcher.on("error", err => log.warn({ err, key: k }, "fs.watch error"));
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
66
|
+
log.warn({ err, key: k }, "WatchManager: watch() failed");
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
this.handles.set(k, h);
|
|
70
|
+
}
|
|
71
|
+
unregister(swarmId, instanceId, watchId) {
|
|
72
|
+
const k = this.key(swarmId, instanceId, watchId);
|
|
73
|
+
const h = this.handles.get(k);
|
|
74
|
+
if (!h)
|
|
75
|
+
return;
|
|
76
|
+
if (h.timer)
|
|
77
|
+
clearTimeout(h.timer);
|
|
78
|
+
try {
|
|
79
|
+
h.watcher?.close();
|
|
80
|
+
}
|
|
81
|
+
catch { /* best-effort */ }
|
|
82
|
+
this.handles.delete(k);
|
|
83
|
+
}
|
|
84
|
+
unwatchByInstance(swarmId, instanceId) {
|
|
85
|
+
const prefix = `${swarmId}::${instanceId}::`;
|
|
86
|
+
for (const k of [...this.handles.keys()]) {
|
|
87
|
+
if (k.startsWith(prefix)) {
|
|
88
|
+
const h = this.handles.get(k);
|
|
89
|
+
if (h.timer)
|
|
90
|
+
clearTimeout(h.timer);
|
|
91
|
+
try {
|
|
92
|
+
h.watcher?.close();
|
|
93
|
+
}
|
|
94
|
+
catch { /* best-effort */ }
|
|
95
|
+
this.handles.delete(k);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
dispose() {
|
|
100
|
+
for (const h of this.handles.values()) {
|
|
101
|
+
if (h.timer)
|
|
102
|
+
clearTimeout(h.timer);
|
|
103
|
+
try {
|
|
104
|
+
h.watcher?.close();
|
|
105
|
+
}
|
|
106
|
+
catch { /* best-effort */ }
|
|
107
|
+
}
|
|
108
|
+
this.handles.clear();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function toUtf8(v) {
|
|
112
|
+
if (typeof v === "string")
|
|
113
|
+
return v;
|
|
114
|
+
if (v && typeof v.toString === "function")
|
|
115
|
+
return v.toString("utf-8");
|
|
116
|
+
return "";
|
|
117
|
+
}
|
|
118
|
+
/** gitignore-style glob → RegExp. Copied from PilotDeck SignalWatcher.compileGlob. */
|
|
119
|
+
function compileGlob(glob) {
|
|
120
|
+
let body = "", i = 0;
|
|
121
|
+
while (i < glob.length) {
|
|
122
|
+
const ch = glob[i];
|
|
123
|
+
if (ch === "*") {
|
|
124
|
+
if (glob[i + 1] === "*") {
|
|
125
|
+
if (glob[i + 2] === "/") {
|
|
126
|
+
body += "(?:.*/)?";
|
|
127
|
+
i += 3;
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
body += ".*";
|
|
131
|
+
i += 2;
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
body += "[^/]*";
|
|
135
|
+
i += 1;
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
if (ch === "?") {
|
|
139
|
+
body += "[^/]";
|
|
140
|
+
i += 1;
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
if (/[.+^$|()\\\[\]{}/]/.test(ch)) {
|
|
144
|
+
body += `\\${ch}`;
|
|
145
|
+
i += 1;
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
body += ch;
|
|
149
|
+
i += 1;
|
|
150
|
+
}
|
|
151
|
+
return new RegExp(`^(?:${body})$`);
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=watch-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch-manager.js","sourceRoot":"","sources":["../src/watch-manager.ts"],"names":[],"mappings":"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"}
|