@adhd/agent-mcp 1.1.3 → 1.1.4
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/package.json +1 -1
- package/src/engine/hooks.d.ts +21 -6
- package/src/engine/hooks.d.ts.map +1 -1
- package/src/engine/hooks.js +47 -6
- package/src/engine/hooks.js.map +1 -1
package/package.json
CHANGED
package/src/engine/hooks.d.ts
CHANGED
|
@@ -1,9 +1,24 @@
|
|
|
1
|
+
import type { HookEvent, HookEventMap, HookHandler, IHookRegistry, EnforcementEvent, EnforcementHandler } from "@adhd/agent-mcp-types";
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
3
|
+
* Concrete implementation of IHookRegistry used by the agent-mcp server.
|
|
4
|
+
*
|
|
5
|
+
* NOTE: A copy of this class also lives in @adhd/agent-mcp-types so plugin
|
|
6
|
+
* authors can instantiate it in their own tests without taking a runtime
|
|
7
|
+
* dependency on the full server package. Keep the two in sync until DEBT-009
|
|
8
|
+
* is resolved (extraction to @adhd/agent-mcp-hooks).
|
|
9
|
+
*
|
|
10
|
+
* Observational handlers registered via register() have their throws swallowed
|
|
11
|
+
* and logged — a buggy plugin never kills a task.
|
|
12
|
+
*
|
|
13
|
+
* Enforcement handlers registered via registerEnforcement() propagate throws
|
|
14
|
+
* so the orchestrator can fail the task with BUDGET_EXCEEDED.
|
|
7
15
|
*/
|
|
8
|
-
export
|
|
16
|
+
export declare class HookRegistry implements IHookRegistry {
|
|
17
|
+
private readonly handlers;
|
|
18
|
+
private readonly enforcementHandlers;
|
|
19
|
+
register<E extends HookEvent>(event: E, handler: HookHandler<E>): void;
|
|
20
|
+
emit<E extends HookEvent>(event: E, payload: HookEventMap[E]): Promise<void>;
|
|
21
|
+
registerEnforcement<E extends EnforcementEvent>(event: E, handler: EnforcementHandler<E>): void;
|
|
22
|
+
enforce<E extends EnforcementEvent>(event: E, payload: HookEventMap[E]): Promise<void>;
|
|
23
|
+
}
|
|
9
24
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/engine/hooks.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/engine/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,SAAS,EACT,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EACrB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAa,YAAW,aAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6D;IACtF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAuE;IAE3G,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI;IAMhE,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlF,mBAAmB,CAAC,CAAC,SAAS,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI;IAMzF,OAAO,CAAC,CAAC,SAAS,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAO/F"}
|
package/src/engine/hooks.js
CHANGED
|
@@ -1,9 +1,50 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* Concrete implementation of IHookRegistry used by the agent-mcp server.
|
|
3
|
+
*
|
|
4
|
+
* NOTE: A copy of this class also lives in @adhd/agent-mcp-types so plugin
|
|
5
|
+
* authors can instantiate it in their own tests without taking a runtime
|
|
6
|
+
* dependency on the full server package. Keep the two in sync until DEBT-009
|
|
7
|
+
* is resolved (extraction to @adhd/agent-mcp-hooks).
|
|
8
|
+
*
|
|
9
|
+
* Observational handlers registered via register() have their throws swallowed
|
|
10
|
+
* and logged — a buggy plugin never kills a task.
|
|
11
|
+
*
|
|
12
|
+
* Enforcement handlers registered via registerEnforcement() propagate throws
|
|
13
|
+
* so the orchestrator can fail the task with BUDGET_EXCEEDED.
|
|
7
14
|
*/
|
|
8
|
-
export
|
|
15
|
+
export class HookRegistry {
|
|
16
|
+
handlers = new Map();
|
|
17
|
+
enforcementHandlers = new Map();
|
|
18
|
+
register(event, handler) {
|
|
19
|
+
const list = this.handlers.get(event) ?? [];
|
|
20
|
+
list.push(handler);
|
|
21
|
+
this.handlers.set(event, list);
|
|
22
|
+
}
|
|
23
|
+
async emit(event, payload) {
|
|
24
|
+
const list = this.handlers.get(event);
|
|
25
|
+
if (!list?.length)
|
|
26
|
+
return;
|
|
27
|
+
for (const handler of list) {
|
|
28
|
+
try {
|
|
29
|
+
await handler(payload);
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
console.warn("[HookRegistry] hook handler error (swallowed)", { event, err });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
registerEnforcement(event, handler) {
|
|
37
|
+
const list = this.enforcementHandlers.get(event) ?? [];
|
|
38
|
+
list.push(handler);
|
|
39
|
+
this.enforcementHandlers.set(event, list);
|
|
40
|
+
}
|
|
41
|
+
async enforce(event, payload) {
|
|
42
|
+
const list = this.enforcementHandlers.get(event);
|
|
43
|
+
if (!list?.length)
|
|
44
|
+
return;
|
|
45
|
+
for (const handler of list) {
|
|
46
|
+
await handler(payload);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
9
50
|
//# sourceMappingURL=hooks.js.map
|
package/src/engine/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/engine/hooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/engine/hooks.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,YAAY;IACJ,QAAQ,GAAc,IAAI,GAAG,EAAuC,CAAC;IACrE,mBAAmB,GAAG,IAAI,GAAG,EAA4D,CAAC;IAE3G,QAAQ,CAAsB,KAAQ,EAAE,OAAuB;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAiC,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,IAAI,CAAsB,KAAQ,EAAE,OAAwB;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE,MAAM;YAAE,OAAO;QAC1B,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC;gBACD,MAAO,OAA0B,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,+CAA+C,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAClF,CAAC;QACL,CAAC;IACL,CAAC;IAED,mBAAmB,CAA6B,KAAQ,EAAE,OAA8B;QACpF,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,OAA+C,CAAC,CAAC;QAC3D,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,OAAO,CAA6B,KAAQ,EAAE,OAAwB;QACxE,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE,MAAM;YAAE,OAAO;QAC1B,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;YACzB,MAAO,OAAiC,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;CACJ"}
|