@animalabs/agent-framework 0.5.7 → 0.6.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/framework.d.ts +67 -0
- package/dist/src/framework.d.ts.map +1 -1
- package/dist/src/framework.js +469 -26
- package/dist/src/framework.js.map +1 -1
- package/dist/src/gate/event-gate.d.ts +44 -1
- package/dist/src/gate/event-gate.d.ts.map +1 -1
- package/dist/src/gate/event-gate.js +152 -8
- package/dist/src/gate/event-gate.js.map +1 -1
- package/dist/src/gate/gate-script-worker.d.ts +2 -0
- package/dist/src/gate/gate-script-worker.d.ts.map +1 -0
- package/dist/src/gate/gate-script-worker.js +69 -0
- package/dist/src/gate/gate-script-worker.js.map +1 -0
- package/dist/src/gate/gate-script.d.ts +44 -0
- package/dist/src/gate/gate-script.d.ts.map +1 -0
- package/dist/src/gate/gate-script.js +164 -0
- package/dist/src/gate/gate-script.js.map +1 -0
- package/dist/src/gate/types.d.ts +18 -3
- package/dist/src/gate/types.d.ts.map +1 -1
- package/dist/src/mcpl/channel-registry.d.ts +43 -1
- package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
- package/dist/src/mcpl/channel-registry.js +82 -8
- package/dist/src/mcpl/channel-registry.js.map +1 -1
- package/dist/src/mcpl/checkpoint-manager.d.ts +7 -0
- package/dist/src/mcpl/checkpoint-manager.d.ts.map +1 -1
- package/dist/src/mcpl/checkpoint-manager.js +15 -0
- package/dist/src/mcpl/checkpoint-manager.js.map +1 -1
- package/dist/src/mcpl/push-handler.d.ts.map +1 -1
- package/dist/src/mcpl/push-handler.js +1 -0
- package/dist/src/mcpl/push-handler.js.map +1 -1
- package/dist/src/mcpl/server-connection.d.ts +35 -30
- package/dist/src/mcpl/server-connection.d.ts.map +1 -1
- package/dist/src/mcpl/server-connection.js +145 -206
- package/dist/src/mcpl/server-connection.js.map +1 -1
- package/dist/src/mcpl/transport.d.ts +98 -0
- package/dist/src/mcpl/transport.d.ts.map +1 -0
- package/dist/src/mcpl/transport.js +281 -0
- package/dist/src/mcpl/transport.js.map +1 -0
- package/dist/src/mcpl/types.d.ts +42 -2
- package/dist/src/mcpl/types.d.ts.map +1 -1
- package/dist/src/mcpl/types.js.map +1 -1
- package/dist/src/module-registry.d.ts +2 -0
- package/dist/src/module-registry.d.ts.map +1 -1
- package/dist/src/module-registry.js +9 -2
- package/dist/src/module-registry.js.map +1 -1
- package/dist/src/prose-segments.d.ts +18 -0
- package/dist/src/prose-segments.d.ts.map +1 -0
- package/dist/src/prose-segments.js +39 -0
- package/dist/src/prose-segments.js.map +1 -0
- package/dist/src/runtime/liveness-watchdog-worker.d.ts +2 -0
- package/dist/src/runtime/liveness-watchdog-worker.d.ts.map +1 -0
- package/dist/src/runtime/liveness-watchdog-worker.js +57 -0
- package/dist/src/runtime/liveness-watchdog-worker.js.map +1 -0
- package/dist/src/runtime/liveness-watchdog.d.ts +36 -0
- package/dist/src/runtime/liveness-watchdog.d.ts.map +1 -0
- package/dist/src/runtime/liveness-watchdog.js +106 -0
- package/dist/src/runtime/liveness-watchdog.js.map +1 -0
- package/dist/src/types/agent.d.ts +10 -0
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/framework.d.ts +14 -0
- package/dist/src/types/framework.d.ts.map +1 -1
- package/dist/src/types/module.d.ts +12 -0
- package/dist/src/types/module.d.ts.map +1 -1
- package/dist/test/channel-registry-routing.test.js +108 -1
- package/dist/test/channel-registry-routing.test.js.map +1 -1
- package/dist/test/checkpoint-attribution.test.d.ts +2 -0
- package/dist/test/checkpoint-attribution.test.d.ts.map +1 -0
- package/dist/test/checkpoint-attribution.test.js +40 -0
- package/dist/test/checkpoint-attribution.test.js.map +1 -0
- package/dist/test/event-gate-policy-mutation.test.d.ts +2 -0
- package/dist/test/event-gate-policy-mutation.test.d.ts.map +1 -0
- package/dist/test/event-gate-policy-mutation.test.js +137 -0
- package/dist/test/event-gate-policy-mutation.test.js.map +1 -0
- package/dist/test/event-gate-script.test.d.ts +2 -0
- package/dist/test/event-gate-script.test.d.ts.map +1 -0
- package/dist/test/event-gate-script.test.js +95 -0
- package/dist/test/event-gate-script.test.js.map +1 -0
- package/dist/test/event-gate-tags.test.d.ts +2 -0
- package/dist/test/event-gate-tags.test.d.ts.map +1 -0
- package/dist/test/event-gate-tags.test.js +76 -0
- package/dist/test/event-gate-tags.test.js.map +1 -0
- package/dist/test/liveness-watchdog.test.d.ts +2 -0
- package/dist/test/liveness-watchdog.test.d.ts.map +1 -0
- package/dist/test/liveness-watchdog.test.js +78 -0
- package/dist/test/liveness-watchdog.test.js.map +1 -0
- package/dist/test/mcpl-ws-transport.test.d.ts +2 -0
- package/dist/test/mcpl-ws-transport.test.d.ts.map +1 -0
- package/dist/test/mcpl-ws-transport.test.js +155 -0
- package/dist/test/mcpl-ws-transport.test.js.map +1 -0
- package/dist/test/prose-segments.test.d.ts +2 -0
- package/dist/test/prose-segments.test.d.ts.map +1 -0
- package/dist/test/prose-segments.test.js +52 -0
- package/dist/test/prose-segments.test.js.map +1 -0
- package/dist/test/trunk-channel-routing.test.d.ts +19 -0
- package/dist/test/trunk-channel-routing.test.d.ts.map +1 -0
- package/dist/test/trunk-channel-routing.test.js +175 -0
- package/dist/test/trunk-channel-routing.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/framework.ts +509 -24
- package/src/gate/event-gate.ts +153 -8
- package/src/gate/gate-script-worker.ts +73 -0
- package/src/gate/gate-script.ts +180 -0
- package/src/gate/types.ts +19 -3
- package/src/mcpl/channel-registry.ts +112 -8
- package/src/mcpl/checkpoint-manager.ts +16 -0
- package/src/mcpl/push-handler.ts +1 -0
- package/src/mcpl/server-connection.ts +153 -224
- package/src/mcpl/transport.ts +307 -0
- package/src/mcpl/types.ts +49 -2
- package/src/module-registry.ts +13 -2
- package/src/prose-segments.ts +42 -0
- package/src/runtime/liveness-watchdog-worker.ts +66 -0
- package/src/runtime/liveness-watchdog.ts +122 -0
- package/src/types/agent.ts +10 -0
- package/src/types/framework.ts +15 -0
- package/src/types/module.ts +13 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { GateBehavior, GateEventInfo } from './types.js';
|
|
2
|
+
export interface GateScriptStatus {
|
|
3
|
+
active: boolean;
|
|
4
|
+
ready: boolean;
|
|
5
|
+
path: string;
|
|
6
|
+
runs: number;
|
|
7
|
+
errors: number;
|
|
8
|
+
timeouts: number;
|
|
9
|
+
lastError: string | null;
|
|
10
|
+
}
|
|
11
|
+
export declare class GateScript {
|
|
12
|
+
private readonly scriptPath;
|
|
13
|
+
private readonly timeoutMs;
|
|
14
|
+
private readonly now;
|
|
15
|
+
private worker?;
|
|
16
|
+
private readonly sab;
|
|
17
|
+
private readonly ctrl;
|
|
18
|
+
private readonly data;
|
|
19
|
+
private readonly dec;
|
|
20
|
+
private mtime;
|
|
21
|
+
private lastCheck;
|
|
22
|
+
private active;
|
|
23
|
+
private ready;
|
|
24
|
+
private lastError;
|
|
25
|
+
private runs;
|
|
26
|
+
private errors;
|
|
27
|
+
private timeouts;
|
|
28
|
+
constructor(scriptPath: string, timeoutMs?: number, now?: () => number);
|
|
29
|
+
/** Hot-reload: (re)spawn the worker when gate.js appears or changes; stop it
|
|
30
|
+
* when the file is removed. Throttled like the gate's config reload. */
|
|
31
|
+
private reloadIfChanged;
|
|
32
|
+
private spawn;
|
|
33
|
+
private stop;
|
|
34
|
+
/**
|
|
35
|
+
* Evaluate the script for one event.
|
|
36
|
+
* - returns a GateBehavior → the script decided
|
|
37
|
+
* - returns null → fall through to the declarative policies
|
|
38
|
+
* - returns undefined → script inactive / errored / timed out (fall through)
|
|
39
|
+
*/
|
|
40
|
+
evaluate(event: GateEventInfo): GateBehavior | null | undefined;
|
|
41
|
+
status(): GateScriptStatus;
|
|
42
|
+
dispose(): void;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=gate-script.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-script.d.ts","sourceRoot":"","sources":["../../../src/gate/gate-script.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAM9D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAOD,qBAAa,UAAU;IAgBnB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAjBtB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAmC;IACvD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkC;IACvD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+B;IACpD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqB;IACzC,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAK;gBAGF,UAAU,EAAE,MAAM,EAClB,SAAS,SAAK,EACd,GAAG,GAAE,MAAM,MAAiB;IAK/C;6EACyE;IACzE,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,KAAK;IAyBb,OAAO,CAAC,IAAI;IASZ;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,GAAG,IAAI,GAAG,SAAS;IAwC/D,MAAM,IAAI,gBAAgB;IAY1B,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GateScript — runs an agent-authored `gate.js` decision function on a worker
|
|
3
|
+
* thread, synchronously from the gate's perspective, with a hard timeout.
|
|
4
|
+
*
|
|
5
|
+
* The agent is trusted (shell + fs already), so this is a robustness seatbelt,
|
|
6
|
+
* not a security sandbox: a script that throws falls through to the declarative
|
|
7
|
+
* policies (and the error is surfaced via status()); a script that hangs is
|
|
8
|
+
* timed out (Atomics.wait), the wedged worker is terminated and respawned, and
|
|
9
|
+
* the event falls through — so a bad rule can't brick the agent's own attention.
|
|
10
|
+
*
|
|
11
|
+
* Sync model: the main thread posts the event then blocks in Atomics.wait until
|
|
12
|
+
* the worker writes the result into shared memory (or the timeout elapses).
|
|
13
|
+
* Node permits Atomics.wait on the main thread, so evaluate() stays synchronous
|
|
14
|
+
* and the rest of the EventGate is unchanged.
|
|
15
|
+
*/
|
|
16
|
+
import { Worker } from 'node:worker_threads';
|
|
17
|
+
import { existsSync, statSync } from 'node:fs';
|
|
18
|
+
import { fileURLToPath } from 'node:url';
|
|
19
|
+
import { dirname, join } from 'node:path';
|
|
20
|
+
const WORKER_PATH = join(dirname(fileURLToPath(import.meta.url)), 'gate-script-worker.js');
|
|
21
|
+
const SAB_SIZE = 16_384;
|
|
22
|
+
const RELOAD_THROTTLE_MS = 1000;
|
|
23
|
+
export class GateScript {
|
|
24
|
+
scriptPath;
|
|
25
|
+
timeoutMs;
|
|
26
|
+
now;
|
|
27
|
+
worker;
|
|
28
|
+
sab = new SharedArrayBuffer(SAB_SIZE);
|
|
29
|
+
ctrl = new Int32Array(this.sab, 0, 2);
|
|
30
|
+
data = new Uint8Array(this.sab, 8);
|
|
31
|
+
dec = new TextDecoder();
|
|
32
|
+
mtime = 0;
|
|
33
|
+
lastCheck = 0;
|
|
34
|
+
active = false;
|
|
35
|
+
ready = false;
|
|
36
|
+
lastError = null;
|
|
37
|
+
runs = 0;
|
|
38
|
+
errors = 0;
|
|
39
|
+
timeouts = 0;
|
|
40
|
+
constructor(scriptPath, timeoutMs = 50, now = Date.now) {
|
|
41
|
+
this.scriptPath = scriptPath;
|
|
42
|
+
this.timeoutMs = timeoutMs;
|
|
43
|
+
this.now = now;
|
|
44
|
+
this.reloadIfChanged();
|
|
45
|
+
}
|
|
46
|
+
/** Hot-reload: (re)spawn the worker when gate.js appears or changes; stop it
|
|
47
|
+
* when the file is removed. Throttled like the gate's config reload. */
|
|
48
|
+
reloadIfChanged() {
|
|
49
|
+
const t = this.now();
|
|
50
|
+
if (this.lastCheck !== 0 && t - this.lastCheck < RELOAD_THROTTLE_MS)
|
|
51
|
+
return;
|
|
52
|
+
this.lastCheck = t;
|
|
53
|
+
if (!existsSync(this.scriptPath)) {
|
|
54
|
+
if (this.active)
|
|
55
|
+
this.stop();
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
let m = 0;
|
|
59
|
+
try {
|
|
60
|
+
m = statSync(this.scriptPath).mtimeMs;
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (this.active && m === this.mtime)
|
|
66
|
+
return;
|
|
67
|
+
this.mtime = m;
|
|
68
|
+
this.spawn();
|
|
69
|
+
}
|
|
70
|
+
spawn() {
|
|
71
|
+
this.stop();
|
|
72
|
+
try {
|
|
73
|
+
const w = new Worker(WORKER_PATH, {
|
|
74
|
+
workerData: { scriptPath: this.scriptPath, sab: this.sab },
|
|
75
|
+
});
|
|
76
|
+
w.on('message', (m) => {
|
|
77
|
+
if (m?.type === 'ready') {
|
|
78
|
+
this.ready = true; // load finished (with or without a load error)
|
|
79
|
+
if (m.error)
|
|
80
|
+
this.lastError = m.error;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
w.on('error', (e) => {
|
|
84
|
+
this.lastError = e.message;
|
|
85
|
+
});
|
|
86
|
+
w.unref(); // never keep the process alive on the gate script's account
|
|
87
|
+
this.worker = w;
|
|
88
|
+
this.active = true;
|
|
89
|
+
this.lastError = null;
|
|
90
|
+
}
|
|
91
|
+
catch (e) {
|
|
92
|
+
this.lastError = e.message;
|
|
93
|
+
this.active = false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
stop() {
|
|
97
|
+
if (this.worker) {
|
|
98
|
+
void this.worker.terminate().catch(() => { });
|
|
99
|
+
this.worker = undefined;
|
|
100
|
+
}
|
|
101
|
+
this.active = false;
|
|
102
|
+
this.ready = false;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Evaluate the script for one event.
|
|
106
|
+
* - returns a GateBehavior → the script decided
|
|
107
|
+
* - returns null → fall through to the declarative policies
|
|
108
|
+
* - returns undefined → script inactive / errored / timed out (fall through)
|
|
109
|
+
*/
|
|
110
|
+
evaluate(event) {
|
|
111
|
+
this.reloadIfChanged();
|
|
112
|
+
// Inactive, or the worker hasn't finished importing gate.js yet → fall
|
|
113
|
+
// through (don't time-out/respawn during a cold start).
|
|
114
|
+
if (!this.active || !this.worker || !this.ready)
|
|
115
|
+
return undefined;
|
|
116
|
+
Atomics.store(this.ctrl, 0, 0);
|
|
117
|
+
try {
|
|
118
|
+
this.worker.postMessage({ type: 'eval', event });
|
|
119
|
+
}
|
|
120
|
+
catch (e) {
|
|
121
|
+
this.lastError = e.message;
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
const r = Atomics.wait(this.ctrl, 0, 0, this.timeoutMs);
|
|
125
|
+
this.runs++;
|
|
126
|
+
if (r === 'timed-out') {
|
|
127
|
+
this.timeouts++;
|
|
128
|
+
this.lastError = `gate.js timed out (>${this.timeoutMs}ms) — terminated and restarted`;
|
|
129
|
+
this.spawn(); // kill the wedged worker, fresh one for next time
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
const len = Atomics.load(this.ctrl, 1);
|
|
133
|
+
let parsed;
|
|
134
|
+
try {
|
|
135
|
+
parsed = JSON.parse(this.dec.decode(this.data.subarray(0, len)));
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
this.errors++;
|
|
139
|
+
this.lastError = 'gate.js produced an unreadable result';
|
|
140
|
+
return undefined;
|
|
141
|
+
}
|
|
142
|
+
if (parsed.error) {
|
|
143
|
+
this.errors++;
|
|
144
|
+
this.lastError = parsed.error;
|
|
145
|
+
return undefined;
|
|
146
|
+
}
|
|
147
|
+
return parsed.behavior ?? null;
|
|
148
|
+
}
|
|
149
|
+
status() {
|
|
150
|
+
return {
|
|
151
|
+
active: this.active,
|
|
152
|
+
ready: this.ready,
|
|
153
|
+
path: this.scriptPath,
|
|
154
|
+
runs: this.runs,
|
|
155
|
+
errors: this.errors,
|
|
156
|
+
timeouts: this.timeouts,
|
|
157
|
+
lastError: this.lastError,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
dispose() {
|
|
161
|
+
this.stop();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=gate-script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-script.js","sourceRoot":"","sources":["../../../src/gate/gate-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG1C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;AAC3F,MAAM,QAAQ,GAAG,MAAM,CAAC;AACxB,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAiBhC,MAAM,OAAO,UAAU;IAgBF;IACA;IACA;IAjBX,MAAM,CAAU;IACP,GAAG,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACnC,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;IACjC,KAAK,GAAG,CAAC,CAAC;IACV,SAAS,GAAG,CAAC,CAAC;IACd,MAAM,GAAG,KAAK,CAAC;IACf,KAAK,GAAG,KAAK,CAAC;IACd,SAAS,GAAkB,IAAI,CAAC;IAChC,IAAI,GAAG,CAAC,CAAC;IACT,MAAM,GAAG,CAAC,CAAC;IACX,QAAQ,GAAG,CAAC,CAAC;IAErB,YACmB,UAAkB,EAClB,YAAY,EAAE,EACd,MAAoB,IAAI,CAAC,GAAG;QAF5B,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAK;QACd,QAAG,GAAH,GAAG,CAAyB;QAE7C,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED;6EACyE;IACjE,eAAe;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,kBAAkB;YAAE,OAAO;QAC5E,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC;YACH,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK;YAAE,OAAO;QAC5C,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAEO,KAAK;QACX,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE;gBAChC,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;aAC3D,CAAC,CAAC;YACH,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAA2C,EAAE,EAAE;gBAC9D,IAAI,CAAC,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;oBACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,+CAA+C;oBAClE,IAAI,CAAC,CAAC,KAAK;wBAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;gBACxC,CAAC;YACH,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBAClB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,4DAA4D;YACvE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,SAAS,GAAI,CAAW,CAAC,OAAO,CAAC;YACtC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,IAAI;QACV,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,KAAoB;QAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,uEAAuE;QACvE,wDAAwD;QACxD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAElE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,SAAS,GAAI,CAAW,CAAC,OAAO,CAAC;YACtC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,KAAK,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,GAAG,uBAAuB,IAAI,CAAC,SAAS,gCAAgC,CAAC;YACvF,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,kDAAkD;YAChE,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACvC,IAAI,MAAoB,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAiB,CAAC;QACnF,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,GAAG,uCAAuC,CAAC;YACzD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;YAC9B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;CACF"}
|
package/dist/src/gate/types.d.ts
CHANGED
|
@@ -43,7 +43,7 @@ export interface PassiveSampleConfig {
|
|
|
43
43
|
keyBy?: string;
|
|
44
44
|
}
|
|
45
45
|
/** How a matching policy affects inference triggering. */
|
|
46
|
-
export type GateBehavior = 'always' | 'skip' | {
|
|
46
|
+
export type GateBehavior = 'always' | 'defer' | 'skip' | {
|
|
47
47
|
debounce: number;
|
|
48
48
|
} | {
|
|
49
49
|
rate_limit: RateLimitConfig;
|
|
@@ -80,6 +80,17 @@ export interface GatePolicyMatch {
|
|
|
80
80
|
* matches if any of those is set. Empty/omitted = no metadata constraint.
|
|
81
81
|
*/
|
|
82
82
|
metadataTrue?: string[];
|
|
83
|
+
/**
|
|
84
|
+
* Tag matching (MCPL RFC-001 event tags). Globs allowed (e.g. `robotics:*`).
|
|
85
|
+
* Evaluated against the event's (implication-expanded) tag set:
|
|
86
|
+
* tagsAny — match if ANY listed pattern matches an event tag
|
|
87
|
+
* tagsAll — match only if EVERY listed pattern matches some event tag
|
|
88
|
+
* tagsNone — match only if NO listed pattern matches any event tag
|
|
89
|
+
* Combined with the other fields by AND, like the rest of the match.
|
|
90
|
+
*/
|
|
91
|
+
tagsAny?: string[];
|
|
92
|
+
tagsAll?: string[];
|
|
93
|
+
tagsNone?: string[];
|
|
83
94
|
}
|
|
84
95
|
/** A single gate policy — one rule in the ordered policy list. */
|
|
85
96
|
export interface GatePolicy {
|
|
@@ -98,7 +109,7 @@ export interface GatePolicy {
|
|
|
98
109
|
export interface GateConfig {
|
|
99
110
|
policies: GatePolicy[];
|
|
100
111
|
/** Behavior when no policy matches. Default: 'always'. */
|
|
101
|
-
default?: 'always' | 'skip';
|
|
112
|
+
default?: 'always' | 'defer' | 'skip';
|
|
102
113
|
}
|
|
103
114
|
/** Options for configuring the EventGate via FrameworkConfig. */
|
|
104
115
|
export interface GateOptions {
|
|
@@ -134,6 +145,8 @@ export interface GateEventInfo {
|
|
|
134
145
|
mount?: string;
|
|
135
146
|
/** Mount-prefixed paths touched (for workspace:* events). */
|
|
136
147
|
paths?: string[];
|
|
148
|
+
/** Event tags (MCPL RFC-001), already implication-expanded by the host. */
|
|
149
|
+
tags?: string[];
|
|
137
150
|
}
|
|
138
151
|
/** Per-policy runtime statistics (for gate:status). */
|
|
139
152
|
export interface GatePolicyStats {
|
|
@@ -161,7 +174,9 @@ export interface GateStatus {
|
|
|
161
174
|
configPath: string;
|
|
162
175
|
configSource: 'file' | 'initial' | 'default';
|
|
163
176
|
lastReloadTimestamp: number | null;
|
|
164
|
-
default: 'always' | 'skip';
|
|
177
|
+
default: 'always' | 'defer' | 'skip';
|
|
178
|
+
/** Status of the optional programmable gate (gate.js). */
|
|
179
|
+
script: import('./gate-script.js').GateScriptStatus;
|
|
165
180
|
policies: GatePolicyStats[];
|
|
166
181
|
errors: string[];
|
|
167
182
|
/** Total events the gate has evaluated since startup. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/gate/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,0DAA0D;AAC1D,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,MAAM,GACN;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpB;IAAE,UAAU,EAAE,eAAe,CAAA;CAAE,GAC/B;IAAE,cAAc,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAM5C,mFAAmF;AACnF,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/gate/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,31 @@ interface ChannelRegistryOptions {
|
|
|
44
44
|
reason: string;
|
|
45
45
|
textLen: number;
|
|
46
46
|
}) => void;
|
|
47
|
+
/**
|
|
48
|
+
* Resolve a conversation fork's HOME channel from its agent name. Conversation
|
|
49
|
+
* forks are spawned bound to a single channel (the framework tracks this in
|
|
50
|
+
* `conversationAgentHomes` / `ConversationRouter.channelForAgent`); their
|
|
51
|
+
* plain-text speech must route THERE. The process-global `defaultPublishChannel`
|
|
52
|
+
* tracks only the most-recent inbound across ALL channels, so with one fork per
|
|
53
|
+
* channel running concurrently it misroutes a fork's reply to whichever channel
|
|
54
|
+
* last spoke (item 3). Returns undefined for the trunk/primary agent, which has
|
|
55
|
+
* no home and correctly falls back to the global locus (heartbeats, etc.).
|
|
56
|
+
*/
|
|
57
|
+
homeChannelResolver?: (agentName: string) => string | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Resolve the channel that triggered an agent's CURRENT inference turn, by
|
|
60
|
+
* agent name. This is the fix for single-TRUNK agents (the only mode
|
|
61
|
+
* connectome-host runs — it never exposes conversation forks). A trunk agent
|
|
62
|
+
* has no fork home, so without this its plain-text speech falls back to the
|
|
63
|
+
* process-global `defaultPublishChannel`, which tracks the most-recent inbound
|
|
64
|
+
* across ALL channels and misroutes a reply to whichever channel last spoke
|
|
65
|
+
* under concurrency (item-3 redux). The framework tracks the triggering
|
|
66
|
+
* channel of the live turn per-agent and exposes it here; resolves to
|
|
67
|
+
* undefined for a heartbeat / no-trigger turn, which correctly keeps the
|
|
68
|
+
* global fallback. Consulted AFTER `homeChannelResolver` (a fork's home always
|
|
69
|
+
* wins), BEFORE `defaultPublishChannel`.
|
|
70
|
+
*/
|
|
71
|
+
activeChannelResolver?: (agentName: string) => string | undefined;
|
|
47
72
|
}
|
|
48
73
|
export declare class ChannelRegistry {
|
|
49
74
|
private serverRegistry;
|
|
@@ -53,6 +78,8 @@ export declare class ChannelRegistry {
|
|
|
53
78
|
private sendTypingFn?;
|
|
54
79
|
private shouldTriggerInference?;
|
|
55
80
|
private onRouteFailure?;
|
|
81
|
+
private homeChannelResolver?;
|
|
82
|
+
private activeChannelResolver?;
|
|
56
83
|
/** Registered channels, keyed by `{serverId}:{channelId}`. */
|
|
57
84
|
private channels;
|
|
58
85
|
/** Most recent incoming channel ID — used for speech routing / default publish. */
|
|
@@ -102,6 +129,21 @@ export declare class ChannelRegistry {
|
|
|
102
129
|
* queue, and responds with per-message results.
|
|
103
130
|
*/
|
|
104
131
|
handleIncoming(serverId: string, params: ChannelsIncomingParams, responder?: Responder): void;
|
|
132
|
+
/**
|
|
133
|
+
* Ensure a channel is registered AND open so it can serve as an outbound
|
|
134
|
+
* routing locus, lazy-registering it if unseen and opening it if closed.
|
|
135
|
+
*
|
|
136
|
+
* Mirrors the lazy-registration inside handleIncoming(), but for channels
|
|
137
|
+
* that only ever arrive as push/events rather than channels/incoming — the
|
|
138
|
+
* motivating case is Discord DMs, which discord-mcpl forwards via push/event
|
|
139
|
+
* with the channel closed (`channelIsOpen:false`). Such a channel is never
|
|
140
|
+
* registered, so routeSpeech() can't resolve it and the agent's reply is
|
|
141
|
+
* silently dropped even though the inbound message proves the channel is
|
|
142
|
+
* reachable (item-3 redux, DM sub-case). Idempotent: a later authoritative
|
|
143
|
+
* channels/register or channels/changed overwrites this descriptor with the
|
|
144
|
+
* richer one; re-opening an already-open channel is a no-op.
|
|
145
|
+
*/
|
|
146
|
+
ensureChannelRegistered(serverId: string, channelId: string, label?: string): void;
|
|
105
147
|
/**
|
|
106
148
|
* Start sending typing indicators for a channel.
|
|
107
149
|
*
|
|
@@ -144,7 +186,7 @@ export declare class ChannelRegistry {
|
|
|
144
186
|
*
|
|
145
187
|
* Returns undefined if no channels are active.
|
|
146
188
|
*/
|
|
147
|
-
buildChannelContext(): ChannelContext | undefined;
|
|
189
|
+
buildChannelContext(agentName?: string): ChannelContext | undefined;
|
|
148
190
|
/**
|
|
149
191
|
* Stop all typing intervals and clear all channel registrations.
|
|
150
192
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-registry.d.ts","sourceRoot":"","sources":["../../../src/mcpl/channel-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EAEtB,qBAAqB,EACrB,sBAAsB,EAKvB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA2BlF,qEAAqE;AACrE,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,IAAI,EAAE,OAAO,CAAC;CACf;AAED,qEAAqE;AACrE,UAAU,SAAS;IACjB,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,YAAY,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACpE;AAqJD,UAAU,sBAAsB;IAC9B,kFAAkF;IAClF,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;IACzF;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"channel-registry.d.ts","sourceRoot":"","sources":["../../../src/mcpl/channel-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -158,6 +158,8 @@ export class ChannelRegistry {
|
|
|
158
158
|
sendTypingFn;
|
|
159
159
|
shouldTriggerInference;
|
|
160
160
|
onRouteFailure;
|
|
161
|
+
homeChannelResolver;
|
|
162
|
+
activeChannelResolver;
|
|
161
163
|
/** Registered channels, keyed by `{serverId}:{channelId}`. */
|
|
162
164
|
channels = new Map();
|
|
163
165
|
/** Most recent incoming channel ID — used for speech routing / default publish. */
|
|
@@ -184,6 +186,8 @@ export class ChannelRegistry {
|
|
|
184
186
|
this.sendTypingFn = options?.sendTypingFn;
|
|
185
187
|
this.shouldTriggerInference = options?.shouldTriggerInference;
|
|
186
188
|
this.onRouteFailure = options?.onRouteFailure;
|
|
189
|
+
this.homeChannelResolver = options?.homeChannelResolver;
|
|
190
|
+
this.activeChannelResolver = options?.activeChannelResolver;
|
|
187
191
|
}
|
|
188
192
|
/**
|
|
189
193
|
* Set the channel auto-open policy for a server. Called by the framework
|
|
@@ -334,6 +338,7 @@ export class ChannelRegistry {
|
|
|
334
338
|
messageId: message.messageId,
|
|
335
339
|
threadId: message.threadId,
|
|
336
340
|
author: message.author,
|
|
341
|
+
...(message.tags ? { tags: message.tags } : {}),
|
|
337
342
|
});
|
|
338
343
|
}
|
|
339
344
|
// Build the incoming event
|
|
@@ -368,6 +373,48 @@ export class ChannelRegistry {
|
|
|
368
373
|
channelIds: [...new Set(params.messages.map((m) => m.channelId))],
|
|
369
374
|
});
|
|
370
375
|
}
|
|
376
|
+
/**
|
|
377
|
+
* Ensure a channel is registered AND open so it can serve as an outbound
|
|
378
|
+
* routing locus, lazy-registering it if unseen and opening it if closed.
|
|
379
|
+
*
|
|
380
|
+
* Mirrors the lazy-registration inside handleIncoming(), but for channels
|
|
381
|
+
* that only ever arrive as push/events rather than channels/incoming — the
|
|
382
|
+
* motivating case is Discord DMs, which discord-mcpl forwards via push/event
|
|
383
|
+
* with the channel closed (`channelIsOpen:false`). Such a channel is never
|
|
384
|
+
* registered, so routeSpeech() can't resolve it and the agent's reply is
|
|
385
|
+
* silently dropped even though the inbound message proves the channel is
|
|
386
|
+
* reachable (item-3 redux, DM sub-case). Idempotent: a later authoritative
|
|
387
|
+
* channels/register or channels/changed overwrites this descriptor with the
|
|
388
|
+
* richer one; re-opening an already-open channel is a no-op.
|
|
389
|
+
*/
|
|
390
|
+
ensureChannelRegistered(serverId, channelId, label) {
|
|
391
|
+
const existing = this.findChannelEntry(channelId);
|
|
392
|
+
if (existing) {
|
|
393
|
+
if (!existing.open) {
|
|
394
|
+
existing.open = true;
|
|
395
|
+
this.emitTraceFn({ type: 'mcpl:channel-opened', serverId: existing.serverId, channelId });
|
|
396
|
+
}
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
const key = `${serverId}:${channelId}`;
|
|
400
|
+
this.channels.set(key, {
|
|
401
|
+
serverId,
|
|
402
|
+
descriptor: {
|
|
403
|
+
id: channelId,
|
|
404
|
+
type: serverId,
|
|
405
|
+
label: label ?? channelId,
|
|
406
|
+
direction: 'bidirectional',
|
|
407
|
+
metadata: { lazyRegistered: true },
|
|
408
|
+
},
|
|
409
|
+
open: true,
|
|
410
|
+
});
|
|
411
|
+
this.emitTraceFn({
|
|
412
|
+
type: 'mcpl:channel-lazy-registered',
|
|
413
|
+
serverId,
|
|
414
|
+
channelId,
|
|
415
|
+
label: label ?? channelId,
|
|
416
|
+
});
|
|
417
|
+
}
|
|
371
418
|
// ==========================================================================
|
|
372
419
|
// Typing Indicator Management
|
|
373
420
|
// ==========================================================================
|
|
@@ -522,13 +569,24 @@ export class ChannelRegistry {
|
|
|
522
569
|
*
|
|
523
570
|
* Returns undefined if no channels are active.
|
|
524
571
|
*/
|
|
525
|
-
buildChannelContext() {
|
|
572
|
+
buildChannelContext(agentName) {
|
|
526
573
|
const openChannels = this.getOpenChannels();
|
|
527
|
-
|
|
574
|
+
// Resolve the outbound locus the SAME way routeSpeech does, so the agent is
|
|
575
|
+
// told the channel its speech will actually land in: a conversation fork's
|
|
576
|
+
// home channel, else this turn's triggering channel (single trunk agent —
|
|
577
|
+
// item-3 redux), else the global default (heartbeats). Without this, a fork
|
|
578
|
+
// was advertised the global locus but published somewhere else; and a trunk
|
|
579
|
+
// agent was told the wrong channel under concurrency.
|
|
580
|
+
const home = agentName ? this.homeChannelResolver?.(agentName) : undefined;
|
|
581
|
+
const active = agentName ? this.activeChannelResolver?.(agentName) : undefined;
|
|
582
|
+
const outgoing = home ?? active ?? this.defaultPublishChannel;
|
|
583
|
+
if (openChannels.length === 0 && !outgoing) {
|
|
528
584
|
return undefined;
|
|
529
585
|
}
|
|
530
586
|
const context = {};
|
|
531
|
-
// Incoming:
|
|
587
|
+
// Incoming: the most-recent inbound message (what the agent is replying to).
|
|
588
|
+
// Left process-global — per-channel inbound tracking (the right messageId for
|
|
589
|
+
// a fork's own channel) is a separate concern from the outbound routing fix.
|
|
532
590
|
if (this.defaultPublishChannel && this.defaultPublishMessageId) {
|
|
533
591
|
context.incoming = {
|
|
534
592
|
channelId: this.defaultPublishChannel,
|
|
@@ -536,10 +594,10 @@ export class ChannelRegistry {
|
|
|
536
594
|
threadId: this.defaultPublishThreadId,
|
|
537
595
|
};
|
|
538
596
|
}
|
|
539
|
-
// Default outgoing:
|
|
540
|
-
if (
|
|
597
|
+
// Default outgoing: the resolved outbound locus (home channel for forks).
|
|
598
|
+
if (outgoing) {
|
|
541
599
|
context.defaultOutgoing = {
|
|
542
|
-
channelId:
|
|
600
|
+
channelId: outgoing,
|
|
543
601
|
};
|
|
544
602
|
}
|
|
545
603
|
// Candidates: all open channel IDs
|
|
@@ -828,9 +886,25 @@ export class ChannelRegistry {
|
|
|
828
886
|
this.onRouteFailure?.({ conversationId, channelId, reason, textLen: text.length });
|
|
829
887
|
return null;
|
|
830
888
|
};
|
|
831
|
-
|
|
889
|
+
// Resolve the outbound locus, in precedence order:
|
|
890
|
+
// 1. fork HOME channel — a conversation fork always replies in the channel
|
|
891
|
+
// it was spawned to serve (item 3, forks).
|
|
892
|
+
// 2. this turn's TRIGGERING channel — a single trunk agent (connectome-
|
|
893
|
+
// host's only mode) replies in the channel whose message woke THIS
|
|
894
|
+
// inference, so a concurrent inbound elsewhere can't hijack the reply
|
|
895
|
+
// (item-3 redux, trunk agents). Also carries DM channels, which arrive
|
|
896
|
+
// as push/events and never touch `defaultPublishChannel`.
|
|
897
|
+
// 3. the process-global `defaultPublishChannel` — last resort for turns
|
|
898
|
+
// with no triggering channel (heartbeats, timers).
|
|
899
|
+
// Using the global for a fork or a concurrent trunk turn is the item-3 bug:
|
|
900
|
+
// it tracks the most-recent inbound across ALL channels, so a reply lands
|
|
901
|
+
// wherever a message last happened to arrive rather than where it belongs.
|
|
902
|
+
const home = this.homeChannelResolver?.(conversationId);
|
|
903
|
+
const channelId = home ?? this.activeChannelResolver?.(conversationId) ?? this.defaultPublishChannel;
|
|
832
904
|
if (!channelId) {
|
|
833
|
-
|
|
905
|
+
// Reached only when the agent has no home, no active triggering channel,
|
|
906
|
+
// AND no global inbound was ever seen.
|
|
907
|
+
return fail(null, 'no locus (no home/active channel, defaultPublishChannel null)');
|
|
834
908
|
}
|
|
835
909
|
const entry = this.findChannelEntry(channelId);
|
|
836
910
|
if (!entry) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-registry.js","sourceRoot":"","sources":["../../../src/mcpl/channel-registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"channel-registry.js","sourceRoot":"","sources":["../../../src/mcpl/channel-registry.ts"],"names":[],"mappings":"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"}
|