@apnex/network-adapter 0.1.6 → 0.1.9
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/build-info.json +3 -3
- package/dist/index.d.ts +3 -2
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/kernel/state-sync.js +6 -2
- package/dist/kernel/state-sync.js.map +1 -1
- package/dist/prompt-format.js +22 -1
- package/dist/prompt-format.js.map +1 -1
- package/dist/tool-manager/catalog/tool-catalog-cache.d.ts +20 -12
- package/dist/tool-manager/catalog/tool-catalog-cache.js +22 -12
- package/dist/tool-manager/catalog/tool-catalog-cache.js.map +1 -1
- package/dist/tool-manager/catalog/tool-surface-reconciler.d.ts +120 -50
- package/dist/tool-manager/catalog/tool-surface-reconciler.js +179 -59
- package/dist/tool-manager/catalog/tool-surface-reconciler.js.map +1 -1
- package/dist/tool-manager/orchestrator/dispatcher.d.ts +16 -0
- package/dist/tool-manager/orchestrator/dispatcher.js +96 -8
- package/dist/tool-manager/orchestrator/dispatcher.js.map +1 -1
- package/dist/tool-manager/work-protocol/claimable-digest-tracker.d.ts +37 -0
- package/dist/tool-manager/work-protocol/claimable-digest-tracker.js +61 -6
- package/dist/tool-manager/work-protocol/claimable-digest-tracker.js.map +1 -1
- package/dist/tool-manager/work-protocol/work-lease-tracker.d.ts +29 -0
- package/dist/tool-manager/work-protocol/work-lease-tracker.js +56 -3
- package/dist/tool-manager/work-protocol/work-lease-tracker.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,101 +1,221 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* tool-surface-reconciler.ts — declared-vs-applied reconcile for the Hub
|
|
3
|
-
* MCP tool surface (bug-180 / FR-21).
|
|
3
|
+
* MCP tool surface (bug-180 / FR-21; mission-106 hardening).
|
|
4
4
|
*
|
|
5
5
|
* Problem this closes: the host (e.g. Claude Code) enumerates `tools/list`
|
|
6
6
|
* ONCE at startup. On the pre-identity probe path the dispatcher serves the
|
|
7
7
|
* persisted on-disk catalog (tool-catalog-cache). When a Hub redeploy changes
|
|
8
|
-
* the tool surface, the
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* the tool surface, the on-disk catalog goes stale and — pre-mission-106 —
|
|
9
|
+
* NOTHING rewrote it: the reconciler only EMITTED `tools/list_changed` and bet
|
|
10
|
+
* on the host re-enumerating. A host that ignores the notification (observed:
|
|
11
|
+
* 33 emits, disk frozen for days) never refreshes, and a RESTART cannot help
|
|
12
|
+
* because the fresh process reads the same frozen disk on its own pre-identity
|
|
13
|
+
* probe. Disk-self-heal is therefore MANDATORY.
|
|
12
14
|
*
|
|
13
|
-
* The
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* on /health; Hub-side since bug-114).
|
|
18
|
-
* - applied-state = the revision the host most recently enumerated.
|
|
19
|
-
* - watch/notify = MCP `notifications/tools/list_changed` (the Hub already
|
|
20
|
-
* advertises `tools.listChanged: true`).
|
|
15
|
+
* The mission-106 invariant (level-triggered, NOT edge-triggered — idea-451):
|
|
16
|
+
* > A running harness's reachable tool surface CONVERGES to the hub's
|
|
17
|
+
* > advertised surface within bounded latency of any change, and a
|
|
18
|
+
* > revision-mismatched cache is NEVER served without a repair action.
|
|
21
19
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
20
|
+
* Correctness rests on comparing the LEVEL (the disk-served revision vs the
|
|
21
|
+
* live revision) and REPAIRING the disk, never on catching an EDGE (a
|
|
22
|
+
* `list_changed` broadcast the host may miss). Contract clauses:
|
|
23
|
+
* 1. Repair authority belongs to drift-detection — on drift the reconciler
|
|
24
|
+
* re-fetches the catalog and atomically REWRITES the on-disk cache.
|
|
25
|
+
* 2. Validation fails CLOSED on an unknown revision (see isCacheValid).
|
|
26
|
+
* 3. `list_changed` is BEST-EFFORT acceleration of the live host surface, NOT
|
|
27
|
+
* the correctness mechanism (host re-enumeration is unverified — F2).
|
|
28
|
+
* 4. No silent stale serve (the dispatcher logs it; see serve path).
|
|
25
29
|
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* cache exists, i.e. a fresh install that bootstrapped live).
|
|
33
|
-
* - emitListChanged: emit `notifications/tools/list_changed` to the host.
|
|
30
|
+
* F1 (deepest): the LEVEL is the DISK-served revision — `readServedRevision()`
|
|
31
|
+
* read fresh EVERY pass — never an optimistic in-memory `appliedRevision`
|
|
32
|
+
* latch. An in-memory advance after emit could mask a stale disk forever (next
|
|
33
|
+
* tick believes applied==live while the disk is still old). Convergence is
|
|
34
|
+
* marked ONLY after the atomic repair write succeeds; a failed/racing repair
|
|
35
|
+
* keeps the mismatch visible for the next tick.
|
|
34
36
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* identityReady).
|
|
37
|
+
* All I/O is injected so the class is unit-testable without a live Hub. The
|
|
38
|
+
* repair deps (fetchLiveCatalog / writeServedCatalog / onRepairOutcome) are
|
|
39
|
+
* OPTIONAL: a host that wires them gets full disk-repair authority; a host that
|
|
40
|
+
* does not falls back to emit-only (the pre-mission-106 degraded behavior,
|
|
41
|
+
* throttled so it does not spam).
|
|
41
42
|
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
43
|
+
* Two trigger points share one `reconcile()`:
|
|
44
|
+
* - L1 (primary): the shim's `identityReady` event.
|
|
45
|
+
* - L2 (backstop): the PollBackstop heartbeat cadence (~30s) — the
|
|
46
|
+
* level-triggered floor that catches a redeploy while a session stays up.
|
|
47
|
+
* - L3 (serve-kick): the dispatcher's stale-serve path fire-and-forgets a
|
|
48
|
+
* `reconcile()` when it serves a labeled-stale cache (D3).
|
|
45
49
|
*/
|
|
46
50
|
export class ToolSurfaceReconciler {
|
|
47
51
|
deps;
|
|
48
52
|
/**
|
|
49
|
-
* The
|
|
50
|
-
* the
|
|
53
|
+
* The emit baseline/marker: the revision we last emitted `list_changed` for
|
|
54
|
+
* (repair path) OR the seeded baseline (emit-only path). mission-106 (F1): in
|
|
55
|
+
* the REPAIR path this is ONLY emit-dedup and is NEVER the convergence
|
|
56
|
+
* decision — convergence there is `readServedRevision() === live` (a real disk
|
|
57
|
+
* read, every pass). In the emit-only fallback (a host with no on-disk cache /
|
|
58
|
+
* no repair authority — e.g. pi/opencode) it is the pre-mission-106
|
|
59
|
+
* baseline+latch, which is safe there precisely because there is no disk for it
|
|
60
|
+
* to mask.
|
|
51
61
|
*/
|
|
52
62
|
appliedRevision = null;
|
|
63
|
+
consecutiveRepairFailures = 0;
|
|
53
64
|
log;
|
|
65
|
+
repairFailureBound;
|
|
54
66
|
constructor(deps) {
|
|
55
67
|
this.deps = deps;
|
|
56
68
|
this.log = deps.log ?? (() => { });
|
|
69
|
+
this.repairFailureBound = deps.repairFailureBound ?? 3;
|
|
57
70
|
}
|
|
58
|
-
/** Test/diagnostic accessor
|
|
71
|
+
/** Test/diagnostic accessor — consecutive repair failures (F5 observability). */
|
|
72
|
+
getConsecutiveRepairFailures() {
|
|
73
|
+
return this.consecutiveRepairFailures;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Diagnostic accessor — the revision we last EMITTED `list_changed` for (the
|
|
77
|
+
* emit-throttle marker). mission-106 (F1): this is NOT the convergence level
|
|
78
|
+
* and MUST NOT be read as "the disk is fresh" — convergence is decided solely
|
|
79
|
+
* by `readServedRevision() === live` on each pass. Retained for observability
|
|
80
|
+
* + existing emit-cadence assertions.
|
|
81
|
+
*/
|
|
59
82
|
getAppliedRevision() {
|
|
60
83
|
return this.appliedRevision;
|
|
61
84
|
}
|
|
62
85
|
/**
|
|
63
|
-
* One reconcile pass. Idempotent and safe
|
|
64
|
-
* 1. Resolve
|
|
65
|
-
* 2.
|
|
66
|
-
*
|
|
67
|
-
* 3. On
|
|
68
|
-
*
|
|
69
|
-
*
|
|
86
|
+
* One reconcile pass. Idempotent and safe from any trigger:
|
|
87
|
+
* 1. Resolve live; no-op on unknown (fetch failed — fail-safe).
|
|
88
|
+
* 2. Read the DISK-served revision (the level; F1). If served === live →
|
|
89
|
+
* converged, no-op.
|
|
90
|
+
* 3. On drift: REPAIR the disk (refetch + coherent + atomic rewrite) when
|
|
91
|
+
* repair deps are wired; else emit-only fallback. Converge ONLY on a
|
|
92
|
+
* successful atomic write; a failed repair stays visible (retry next tick)
|
|
93
|
+
* and escalates after `repairFailureBound` consecutive failures.
|
|
70
94
|
*/
|
|
71
95
|
async reconcile(reason = "reconcile") {
|
|
72
96
|
const live = await this.deps.fetchLiveRevision();
|
|
73
97
|
if (live === null) {
|
|
74
|
-
this.log(`[tool-surface-reconcile] ${reason}: live revision unknown — skipping (
|
|
75
|
-
return { emitted: false, live: null };
|
|
98
|
+
this.log(`[tool-surface-reconcile] ${reason}: live revision unknown — skipping (no repair/emit against unknown live)`);
|
|
99
|
+
return { emitted: false, live: null, repaired: false, converged: false };
|
|
76
100
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
//
|
|
80
|
-
//
|
|
101
|
+
const served = this.deps.readServedRevision();
|
|
102
|
+
const repairCapable = Boolean(this.deps.fetchLiveCatalog && this.deps.writeServedCatalog);
|
|
103
|
+
// ── REPAIR path (clause 1 / D1 / F3 / F5). F1: the level is the DISK-served
|
|
104
|
+
// revision, read fresh every pass; convergence is a real disk read, never an
|
|
105
|
+
// in-memory latch. ──
|
|
106
|
+
if (repairCapable) {
|
|
107
|
+
if (served === live) {
|
|
108
|
+
this.consecutiveRepairFailures = 0;
|
|
109
|
+
return { emitted: false, live, repaired: false, converged: true };
|
|
110
|
+
}
|
|
111
|
+
this.log(`[tool-surface-reconcile] ${reason}: DRIFT served=${served ?? "none"} → live=${live} — repairing disk`);
|
|
112
|
+
const outcome = await this.repair(live);
|
|
113
|
+
this.deps.onRepairOutcome?.(outcome);
|
|
114
|
+
if (outcome.ok) {
|
|
115
|
+
this.consecutiveRepairFailures = 0;
|
|
116
|
+
// Disk now serves `live` (correctness holds). Emit is best-effort
|
|
117
|
+
// acceleration of the LIVE in-memory host surface only (clause 3 / F2).
|
|
118
|
+
const emitted = this.maybeEmit(reason, live);
|
|
119
|
+
return { emitted, live, repaired: true, converged: true };
|
|
120
|
+
}
|
|
121
|
+
// F5: repair failed — LOUD, keep the mismatch visible, retry next tick.
|
|
122
|
+
this.consecutiveRepairFailures = outcome.consecutiveFailures;
|
|
123
|
+
this.log(`[tool-surface-reconcile] ${reason}: REPAIR FAILED (${outcome.klass}${outcome.detail ? `: ${outcome.detail}` : ""}) — consecutive=${this.consecutiveRepairFailures}; disk stays stale, retry next tick`);
|
|
124
|
+
if (this.consecutiveRepairFailures >= this.repairFailureBound) {
|
|
125
|
+
this.log(`[tool-surface-reconcile] ${reason}: ESCALATION — ${this.consecutiveRepairFailures} consecutive repair failures (>= ${this.repairFailureBound}); tool surface cannot converge (served=${served ?? "none"}, live=${live}) — operator/architect intervention required`);
|
|
126
|
+
}
|
|
127
|
+
return { emitted: false, live, repaired: false, converged: false };
|
|
128
|
+
}
|
|
129
|
+
// ── EMIT-ONLY fallback (no repair authority / no on-disk cache — the
|
|
130
|
+
// pre-mission-106 behavior, retained for hosts like pi/opencode). Seed the
|
|
131
|
+
// baseline on the first pass WITHOUT emitting (the host already enumerated
|
|
132
|
+
// live at bootstrap — a fresh install has nothing stale to signal); emit +
|
|
133
|
+
// advance only on a genuine change. F1-safe: with no disk to repair, this
|
|
134
|
+
// latch masks nothing. ──
|
|
81
135
|
if (this.appliedRevision === null) {
|
|
82
|
-
const served = this.deps.readServedRevision();
|
|
83
136
|
this.appliedRevision = served ?? live;
|
|
84
137
|
this.log(`[tool-surface-reconcile] ${reason}: baseline applied=${this.appliedRevision} (served=${served ?? "none"}, live=${live})`);
|
|
85
138
|
}
|
|
86
139
|
if (live !== this.appliedRevision) {
|
|
87
140
|
this.log(`[tool-surface-reconcile] ${reason}: drift applied=${this.appliedRevision} → live=${live} — emitting tools/list_changed`);
|
|
88
|
-
|
|
89
|
-
this.deps.emitListChanged();
|
|
90
|
-
}
|
|
91
|
-
catch (err) {
|
|
92
|
-
// Never let a host-emit failure escape the reconcile loop.
|
|
93
|
-
this.log(`[tool-surface-reconcile] ${reason}: emitListChanged threw (non-fatal): ${err?.message ?? String(err)}`);
|
|
94
|
-
}
|
|
141
|
+
this.safeEmit(reason);
|
|
95
142
|
this.appliedRevision = live;
|
|
96
|
-
return { emitted: true, live };
|
|
143
|
+
return { emitted: true, live, repaired: false, converged: false };
|
|
144
|
+
}
|
|
145
|
+
return { emitted: false, live, repaired: false, converged: false };
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Refetch + coherent + atomic rewrite (D1 tmp+rename via writeServedCatalog).
|
|
149
|
+
* F3: bind catalog + revision COHERENTLY — re-confirm the live revision AFTER
|
|
150
|
+
* fetching the catalog; if it moved mid-fetch, skip (retry next tick with the
|
|
151
|
+
* new live) rather than persist catalog@oldRevision. Never persist a zero-tool
|
|
152
|
+
* catalog (would poison the disk).
|
|
153
|
+
*/
|
|
154
|
+
async repair(live) {
|
|
155
|
+
const nextFail = (klass, detail) => ({
|
|
156
|
+
ok: false,
|
|
157
|
+
klass,
|
|
158
|
+
detail,
|
|
159
|
+
consecutiveFailures: this.consecutiveRepairFailures + 1,
|
|
160
|
+
});
|
|
161
|
+
let catalog;
|
|
162
|
+
try {
|
|
163
|
+
catalog = await this.deps.fetchLiveCatalog();
|
|
164
|
+
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
return nextFail("fetch-failed", err?.message ?? String(err));
|
|
167
|
+
}
|
|
168
|
+
if (!Array.isArray(catalog) || catalog.length === 0) {
|
|
169
|
+
return nextFail("zero-tool");
|
|
170
|
+
}
|
|
171
|
+
// F3 coherence gate: confirm the revision the catalog belongs to is still live.
|
|
172
|
+
const revAfter = await this.deps.fetchLiveRevision();
|
|
173
|
+
if (revAfter !== live) {
|
|
174
|
+
return nextFail("revision-moved", `live moved ${live} → ${revAfter ?? "unknown"} mid-fetch`);
|
|
175
|
+
}
|
|
176
|
+
let wrote;
|
|
177
|
+
try {
|
|
178
|
+
wrote = this.deps.writeServedCatalog(catalog, live);
|
|
179
|
+
}
|
|
180
|
+
catch (err) {
|
|
181
|
+
return nextFail("write-threw", err?.message ?? String(err));
|
|
182
|
+
}
|
|
183
|
+
if (!wrote)
|
|
184
|
+
return nextFail("write-failed");
|
|
185
|
+
return { ok: true, consecutiveFailures: 0 };
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Operator escape-hatch (S2b / idea-456) — UNCONDITIONALLY emit
|
|
189
|
+
* `notifications/tools/list_changed`, bypassing the drift check, to hand an
|
|
190
|
+
* already-stale live host a fresh re-enumeration trigger on demand. With
|
|
191
|
+
* mission-106 disk-repair this is rarely needed (a reconcile pass repairs the
|
|
192
|
+
* disk), but retained as the manual host-kick + a deterministic test trigger.
|
|
193
|
+
*/
|
|
194
|
+
async forceEmit(reason = "force-emit") {
|
|
195
|
+
const live = await this.deps.fetchLiveRevision();
|
|
196
|
+
this.log(`[tool-surface-reconcile] ${reason}: FORCE emit tools/list_changed (unconditional; live=${live ?? "unknown"})`);
|
|
197
|
+
this.safeEmit(reason);
|
|
198
|
+
if (live !== null)
|
|
199
|
+
this.appliedRevision = live;
|
|
200
|
+
return { emitted: true, live, repaired: false, converged: false };
|
|
201
|
+
}
|
|
202
|
+
/** Emit once per live revision (repair-path emit-dedup ONLY — never a
|
|
203
|
+
* convergence marker; convergence is the disk read). */
|
|
204
|
+
maybeEmit(reason, live) {
|
|
205
|
+
if (this.appliedRevision === live)
|
|
206
|
+
return false;
|
|
207
|
+
this.safeEmit(reason);
|
|
208
|
+
this.appliedRevision = live;
|
|
209
|
+
return true;
|
|
210
|
+
}
|
|
211
|
+
/** Emit to the host, never letting a host-emit failure escape the loop. */
|
|
212
|
+
safeEmit(reason) {
|
|
213
|
+
try {
|
|
214
|
+
this.deps.emitListChanged();
|
|
215
|
+
}
|
|
216
|
+
catch (err) {
|
|
217
|
+
this.log(`[tool-surface-reconcile] ${reason}: emitListChanged threw (non-fatal): ${err?.message ?? String(err)}`);
|
|
97
218
|
}
|
|
98
|
-
return { emitted: false, live };
|
|
99
219
|
}
|
|
100
220
|
}
|
|
101
221
|
//# sourceMappingURL=tool-surface-reconciler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-surface-reconciler.js","sourceRoot":"","sources":["../../../src/tool-manager/catalog/tool-surface-reconciler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tool-surface-reconciler.js","sourceRoot":"","sources":["../../../src/tool-manager/catalog/tool-surface-reconciler.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,6 +126,14 @@ export interface SharedDispatcherOptions {
|
|
|
126
126
|
* to enable tool-surface-revision-keyed validity.
|
|
127
127
|
*/
|
|
128
128
|
isCacheValid?: (cached: CachedCatalog, currentRevision: string | null | undefined) => boolean;
|
|
129
|
+
/**
|
|
130
|
+
* mission-106 (D3) — kick an out-of-band reconcile when the serve path
|
|
131
|
+
* serves a LABELED-STALE cache (isCacheValid false: unknown or mismatched
|
|
132
|
+
* revision). Fire-and-forget: the serve path stays sub-50ms and NEVER awaits
|
|
133
|
+
* this; correctness (a fresh disk for the next enumeration) comes from the
|
|
134
|
+
* reconciler's disk repair, not from the serve path. Omit to disable the kick.
|
|
135
|
+
*/
|
|
136
|
+
scheduleRepair?: () => void;
|
|
129
137
|
/**
|
|
130
138
|
* Universal Adapter notification contract. Host shim attaches its
|
|
131
139
|
* render-surface bindings here.
|
|
@@ -170,6 +178,14 @@ export interface SharedDispatcherOptions {
|
|
|
170
178
|
* When omitted, the dispatcher constructs its own (MCP hosts — unchanged).
|
|
171
179
|
*/
|
|
172
180
|
sharedWorkLeases?: WorkLeaseTracker;
|
|
181
|
+
/**
|
|
182
|
+
* work-164 (idea-395) — override the auto-heartbeat's active-work recency window
|
|
183
|
+
* (ms). Defaults to RECENT_ACTIVITY_WINDOW_MS (env OIS_ADAPTER_ACTIVE_WORK_WINDOW_MS
|
|
184
|
+
* or 5min). Primarily a test seam: a small value makes an agent read "stalled" soon
|
|
185
|
+
* after its last tool call (exercising the stall-prompt + sweeper fallback), a large
|
|
186
|
+
* one keeps it "active" (exercising the auto-renew). Prod leaves it default.
|
|
187
|
+
*/
|
|
188
|
+
activeWorkWindowMs?: number;
|
|
173
189
|
}
|
|
174
190
|
export interface SharedDispatcher {
|
|
175
191
|
/** ADR-017 queueItemId tracking map. Keyed by `${dispatchType}:${entityRef}`. */
|
|
@@ -39,6 +39,15 @@ export { TOOL_CALL_SIGNAL_SKIP, pendingKey, injectQueueItemId };
|
|
|
39
39
|
// hold the heartbeat cadence (heartbeatInFlight) and resource use. On timeout
|
|
40
40
|
// the read is treated as a failed read (AC3 — tracker skipped, no false replay).
|
|
41
41
|
const WAKE_STALL_READ_TIMEOUT_MS = 10_000;
|
|
42
|
+
// work-164 (idea-395): the auto-heartbeat's active-work recency window. An agent is
|
|
43
|
+
// treated as "genuinely working the node" if a tool-call boundary happened within
|
|
44
|
+
// this window (OR a call is in flight / the host reports non-idle). MUST be > the
|
|
45
|
+
// heartbeat tick interval (30s) AND > a plausible inter-tool REASONING gap (so a
|
|
46
|
+
// long mid-turn between tool calls does not read idle and get reaped — the case the
|
|
47
|
+
// architect flagged), yet < the lease TTL (15min) so a genuinely dead/silent holder
|
|
48
|
+
// falls out of "active" and is left to the stall-prompt + sweeper reap. 5 min sits in
|
|
49
|
+
// that band. Tunable via env for ops.
|
|
50
|
+
const RECENT_ACTIVITY_WINDOW_MS = Number(process.env.OIS_ADAPTER_ACTIVE_WORK_WINDOW_MS ?? 5 * 60_000);
|
|
42
51
|
function withTimeout(p, ms, label) {
|
|
43
52
|
let timer;
|
|
44
53
|
const timeout = new Promise((_, reject) => {
|
|
@@ -57,6 +66,14 @@ export function createSharedDispatcher(opts) {
|
|
|
57
66
|
// (list_ready_work etc.) do NOT pass through this handler, so an idle poll
|
|
58
67
|
// never self-gates.
|
|
59
68
|
let activeCallCount = 0;
|
|
69
|
+
// work-164 (idea-395): epoch-ms of the most recent host-driven tool-call boundary
|
|
70
|
+
// (start OR end). The auto-heartbeat's active-work signal reads this so a claim
|
|
71
|
+
// held by an agent that is mid-a-long-REASONING-turn (between tool calls at the
|
|
72
|
+
// tick instant, so activeCallCount===0) is still recognised as genuinely working
|
|
73
|
+
// and gets auto-renewed — the mid-turn survival case. Instantaneous
|
|
74
|
+
// activeCallCount alone would read "idle" here and reap live work (the bug one
|
|
75
|
+
// layer down). 0 until the first call.
|
|
76
|
+
let lastToolActivityMs = 0;
|
|
60
77
|
let capturedClientInfo = {
|
|
61
78
|
name: "unknown",
|
|
62
79
|
version: "0.0.0",
|
|
@@ -237,6 +254,10 @@ export function createSharedDispatcher(opts) {
|
|
|
237
254
|
// always 0 for it). MCP hosts leave externalIdle undefined → counter wins.
|
|
238
255
|
const idle = opts.externalIdle ? opts.externalIdle() : activeCallCount === 0;
|
|
239
256
|
const nowMs = Date.now();
|
|
257
|
+
// work-165 (idea-358): drop expired leases up front, so both the W2 stall
|
|
258
|
+
// scan and the W3 size()-based "holding" status below see only live leases
|
|
259
|
+
// (a reaped-but-unclosed lease would otherwise linger + mis-report).
|
|
260
|
+
workLeases.prune(nowMs);
|
|
240
261
|
let claimableCount = 0;
|
|
241
262
|
// W1 — inbound claimable digest. Read the CALLER-CLAIMABLE set via the
|
|
242
263
|
// stable list_ready_work contract with scopeToCaller (idea-353 WI-2.1 /
|
|
@@ -247,6 +268,9 @@ export function createSharedDispatcher(opts) {
|
|
|
247
268
|
// false 0→N replay (AC3).
|
|
248
269
|
try {
|
|
249
270
|
const raw = await withTimeout(agent.call("list_ready_work", { role, scopeToCaller: true }, { internal: true }), WAKE_STALL_READ_TIMEOUT_MS, "list_ready_work wake/stall read");
|
|
271
|
+
// work-165 (idea-358): the read returned (didn't throw/timeout) — the wake
|
|
272
|
+
// is alive, so clear any consecutive-failure streak + re-arm the degraded latch.
|
|
273
|
+
claimableDigest.recordReadSuccess();
|
|
250
274
|
const items = raw?.items;
|
|
251
275
|
if (Array.isArray(items)) {
|
|
252
276
|
const claimableIds = items
|
|
@@ -259,20 +283,63 @@ export function createSharedDispatcher(opts) {
|
|
|
259
283
|
kind: "notification.actionable",
|
|
260
284
|
event: {
|
|
261
285
|
event: "work_claimable_digest",
|
|
262
|
-
data: { role, count: decision.count, newCount: decision.newCount },
|
|
286
|
+
data: { role, count: decision.count, newCount: decision.newCount, trigger: decision.trigger },
|
|
263
287
|
},
|
|
264
288
|
});
|
|
265
|
-
log(`[idea-353] inbound digest emitted — ${decision.count} claimable (${decision.newCount} new) for ${role}`);
|
|
289
|
+
log(`[idea-353] inbound digest emitted — ${decision.count} claimable (${decision.newCount} new, ${decision.trigger}-triggered) for ${role}`);
|
|
266
290
|
}
|
|
267
291
|
}
|
|
268
292
|
}
|
|
269
293
|
catch (err) {
|
|
270
|
-
|
|
294
|
+
// work-165 (idea-358): a failed read skips the tracker (AC3) — but a RUN of
|
|
295
|
+
// failures silently kills the inbound wake (no reconcile ever runs). Count
|
|
296
|
+
// them; once the streak crosses the threshold, emit ONE degraded-mode
|
|
297
|
+
// notification so the dead wake is visible instead of silent.
|
|
298
|
+
const rf = claimableDigest.recordReadFailure();
|
|
299
|
+
log(`[idea-353] list_ready_work tick failed (non-fatal, ${rf.consecutiveFailures} consecutive): ${err?.message ?? err}`);
|
|
300
|
+
if (rf.degraded) {
|
|
301
|
+
router.route({
|
|
302
|
+
kind: "notification.actionable",
|
|
303
|
+
event: {
|
|
304
|
+
event: "wake_degraded",
|
|
305
|
+
data: { role, consecutiveFailures: rf.consecutiveFailures },
|
|
306
|
+
},
|
|
307
|
+
});
|
|
308
|
+
log(`[idea-358] WAKE DEGRADED — ${rf.consecutiveFailures} consecutive list_ready_work read failures; the inbound claimable-digest wake is silently dead until reads recover (check the Hub connection / restart the stream)`);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
// work-164 (idea-395) — the ACTIVE-WORK signal. NOT the instantaneous
|
|
312
|
+
// activeCallCount: an agent mid-a-long reasoning turn sits BETWEEN tool calls
|
|
313
|
+
// at the tick instant (activeCallCount===0) yet is genuinely working — reaping
|
|
314
|
+
// it would be the same bug one layer down. So active = host reports non-idle
|
|
315
|
+
// (a call is in flight now) OR a tool-call boundary happened within
|
|
316
|
+
// RECENT_ACTIVITY_WINDOW_MS (covers the inter-tool reasoning gap).
|
|
317
|
+
const activeWindowMs = opts.activeWorkWindowMs ?? RECENT_ACTIVITY_WINDOW_MS;
|
|
318
|
+
const activeWork = !idle || nowMs - lastToolActivityMs < activeWindowMs;
|
|
319
|
+
// W1.5 — AUTO-HEARTBEAT (idea-395 centerpiece / the work-155 incident). While
|
|
320
|
+
// genuinely working, renew due leases on the holder's behalf so a long
|
|
321
|
+
// cognitive turn is never silently reaped mid-work. Crash-safe by construction:
|
|
322
|
+
// a stalled/dead holder (no activity within the window and not in a call) is
|
|
323
|
+
// NOT active → skipped here and left to the stall-prompt + sweeper below, so
|
|
324
|
+
// this never keeps a dead agent's lease alive.
|
|
325
|
+
if (activeWork) {
|
|
326
|
+
for (const due of workLeases.dueForRenew(nowMs)) {
|
|
327
|
+
try {
|
|
328
|
+
const renewResult = await withTimeout(agent.call("renew_lease", { workId: due.workId, leaseToken: due.token }, { internal: true }), WAKE_STALL_READ_TIMEOUT_MS, "auto-heartbeat renew_lease");
|
|
329
|
+
// Feed the renew result back so the tracker resets the window (the
|
|
330
|
+
// internal call bypasses the CallTool observe path in dispatch.ts).
|
|
331
|
+
workLeases.observe("renew_lease", { workId: due.workId }, renewResult, Date.now());
|
|
332
|
+
log(`[work-164] auto-heartbeat renewed ${due.workId} (was ~${Math.round(due.msUntilExpiry / 60000)}m to expiry; active work in progress)`);
|
|
333
|
+
}
|
|
334
|
+
catch (err) {
|
|
335
|
+
log(`[work-164] auto-heartbeat renew failed for ${due.workId} (non-fatal, retries next tick): ${err?.message ?? err}`);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
271
338
|
}
|
|
272
|
-
// W2 — outbound stall-prompt.
|
|
273
|
-
//
|
|
274
|
-
// lease past ~60% of its window
|
|
275
|
-
if (
|
|
339
|
+
// W2 — outbound stall-prompt. Fires only when NOT actively working (the
|
|
340
|
+
// fallback for a genuinely stalled holder the auto-heartbeat left alone): a
|
|
341
|
+
// held lease past ~60% of its window gets ONE gentle nudge before the sweeper.
|
|
342
|
+
if (!activeWork) {
|
|
276
343
|
for (const due of workLeases.dueForStallPrompt(nowMs)) {
|
|
277
344
|
router.route({
|
|
278
345
|
kind: "notification.actionable",
|
|
@@ -410,7 +477,26 @@ export function createSharedDispatcher(opts) {
|
|
|
410
477
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
411
478
|
return { tools: cached.catalog };
|
|
412
479
|
}
|
|
413
|
-
|
|
480
|
+
// mission-106 (F4/D3) — NOT valid (unknown OR mismatched revision).
|
|
481
|
+
// Preserve the probe-safe sub-50ms path: serve the warm cache as an
|
|
482
|
+
// EXPLICIT labeled-stale fallback (never a silent "valid" serve —
|
|
483
|
+
// clause 4) and fire-and-forget an out-of-band reconcile to repair the
|
|
484
|
+
// on-disk cache (clause 1 / D3). We do NOT block-await /health and do
|
|
485
|
+
// NOT bootstrap here — that would defeat the zero-round-trip probe path
|
|
486
|
+
// (D2/D3). Correctness comes from the repaired disk being served on the
|
|
487
|
+
// NEXT enumeration; the reconciler's L1/L2 triggers repair reliably even
|
|
488
|
+
// if this kick no-ops (e.g. the agent isn't usable pre-identity yet).
|
|
489
|
+
log(`[Cache] STALE served (rev ${cached.toolSurfaceRevision} != live ${currentRevision ?? "unknown"}) — repair scheduled`);
|
|
490
|
+
if (opts.scheduleRepair) {
|
|
491
|
+
try {
|
|
492
|
+
opts.scheduleRepair();
|
|
493
|
+
}
|
|
494
|
+
catch (err) {
|
|
495
|
+
log(`[ListTools] scheduleRepair hook threw (non-fatal): ${err.message ?? err}`);
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
499
|
+
return { tools: cached.catalog };
|
|
414
500
|
}
|
|
415
501
|
else {
|
|
416
502
|
log("[ListTools] no cache (bootstrapping cache from Hub)");
|
|
@@ -489,9 +575,11 @@ export function createSharedDispatcher(opts) {
|
|
|
489
575
|
workLeases,
|
|
490
576
|
onCallStart: () => {
|
|
491
577
|
activeCallCount++;
|
|
578
|
+
lastToolActivityMs = Date.now(); // work-164: stamp active-work recency
|
|
492
579
|
},
|
|
493
580
|
onCallEnd: () => {
|
|
494
581
|
activeCallCount--;
|
|
582
|
+
lastToolActivityMs = Date.now(); // work-164: a just-completed call is recent activity
|
|
495
583
|
},
|
|
496
584
|
callToolGate: opts.callToolGate,
|
|
497
585
|
callToolGateTimeoutMs: opts.callToolGateTimeoutMs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../src/tool-manager/orchestrator/dispatcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../src/tool-manager/orchestrator/dispatcher.ts"],"names":[],"mappings":"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"}
|