@nexus-cortex/core 4.45.0 → 4.46.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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/orchestrator/CortexOrchestrator.d.ts +13 -0
- package/dist/orchestrator/CortexOrchestrator.d.ts.map +1 -1
- package/dist/orchestrator/CortexOrchestrator.js +51 -0
- package/dist/orchestrator/CortexOrchestrator.js.map +1 -1
- package/dist/training/ResearchBacklog.d.ts +27 -0
- package/dist/training/ResearchBacklog.d.ts.map +1 -1
- package/dist/training/ResearchBacklog.js +143 -0
- package/dist/training/ResearchBacklog.js.map +1 -1
- package/dist/training/TurnPredictionStore.d.ts +58 -0
- package/dist/training/TurnPredictionStore.d.ts.map +1 -0
- package/dist/training/TurnPredictionStore.js +85 -0
- package/dist/training/TurnPredictionStore.js.map +1 -0
- package/package.json +3 -3
|
@@ -40,6 +40,9 @@ export interface DeficiencyRecord {
|
|
|
40
40
|
fixedRef?: string;
|
|
41
41
|
verifiedRound?: string;
|
|
42
42
|
notes?: string;
|
|
43
|
+
claimedBy?: string;
|
|
44
|
+
claimedAt?: string;
|
|
45
|
+
leaseExpiresAt?: string;
|
|
43
46
|
createdAt: string;
|
|
44
47
|
updatedAt: string;
|
|
45
48
|
}
|
|
@@ -98,5 +101,29 @@ export declare class ResearchBacklog {
|
|
|
98
101
|
close(id: string): DeficiencyRecord | undefined;
|
|
99
102
|
wontFix(id: string, reason: string): DeficiencyRecord | undefined;
|
|
100
103
|
reopenRegressed(id: string): DeficiencyRecord | undefined;
|
|
104
|
+
static readonly DEFAULT_TTL_MS: number;
|
|
105
|
+
private get lockPath();
|
|
106
|
+
/** Run `fn` while holding an exclusive advisory lock. Spins briefly for the
|
|
107
|
+
* lock; steals a lock older than staleMs (holder presumed dead). */
|
|
108
|
+
private withLock;
|
|
109
|
+
private isLeaseLive;
|
|
110
|
+
/** Claim ONE specific item for `owner`. Returns the claimed record, or
|
|
111
|
+
* undefined if it does not exist, is already resolved, or is held by another
|
|
112
|
+
* worker under a LIVE lease. Idempotent for the same owner (re-extends lease). */
|
|
113
|
+
claim(id: string, owner: string, ttlMs?: number): DeficiencyRecord | undefined;
|
|
114
|
+
/** Release-expired + claim the highest-priority UNCLAIMED workable item.
|
|
115
|
+
* The core work-swarm pull: each worker calls this to get its own task. */
|
|
116
|
+
claimNext(owner: string, ttlMs?: number): DeficiencyRecord | undefined;
|
|
117
|
+
/** Revert every in_progress item whose lease has EXPIRED back to triaged so
|
|
118
|
+
* another worker can pick it up. Returns the reclaimed records. Items marked
|
|
119
|
+
* in_progress WITHOUT a lease (legacy markInProgress) are left untouched. */
|
|
120
|
+
releaseExpired(): DeficiencyRecord[];
|
|
121
|
+
/** Explicitly release a claim you hold (work finished/abandoned) → back to triaged. */
|
|
122
|
+
release(id: string, owner?: string): DeficiencyRecord | undefined;
|
|
123
|
+
private writeClaim;
|
|
124
|
+
private releaseExpiredUnlocked;
|
|
125
|
+
/** append with priority recompute + updatedAt bump (like update(), but takes a
|
|
126
|
+
* full record and is safe to call under the lock without a re-read). */
|
|
127
|
+
private append2;
|
|
101
128
|
}
|
|
102
129
|
//# sourceMappingURL=ResearchBacklog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResearchBacklog.d.ts","sourceRoot":"","sources":["../../src/training/ResearchBacklog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,SAAS,GACT,aAAa,GACb,OAAO,GACP,UAAU,GACV,QAAQ,GACR,UAAU,GACV,WAAW,CAAC;AAEhB,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,0HAA0H;IAC1H,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;IAEzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IAEtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ResearchBacklog.d.ts","sourceRoot":"","sources":["../../src/training/ResearchBacklog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,SAAS,GACT,aAAa,GACb,OAAO,GACP,UAAU,GACV,QAAQ,GACR,UAAU,GACV,WAAW,CAAC;AAEhB,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,0HAA0H;IAC1H,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;IAEzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IAEtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAK9G;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,WAAW,EAAE,MAAM;IAI/B;mCAC+B;IAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAInC,OAAO,CAAC,MAAM;IAKd,6EAA6E;IAC7E,IAAI,CAAC,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,gBAAgB,EAAE;IAiBjH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI7C;4CACwC;IACxC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,gBAAgB;IAiCvC,iFAAiF;IACjF,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,GAAG,SAAS;IASlF,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB,GAAG,SAAS;IAInI,uFAAuF;IACvF,IAAI,IAAI,gBAAgB,GAAG,SAAS;IAIpC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI/E,kFAAkF;IAClF,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIrE,mGAAmG;IACnG,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI7E,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAC/C,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IACjE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAYzD,MAAM,CAAC,QAAQ,CAAC,cAAc,SAAkB;IAEhD,OAAO,KAAK,QAAQ,GAA+C;IAEnE;yEACqE;IACrE,OAAO,CAAC,QAAQ;IAgChB,OAAO,CAAC,WAAW;IAInB;;uFAEmF;IACnF,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAuC,GAAG,gBAAgB,GAAG,SAAS;IAa9G;gFAC4E;IAC5E,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAuC,GAAG,gBAAgB,GAAG,SAAS;IAWtG;;kFAE8E;IAC9E,cAAc,IAAI,gBAAgB,EAAE;IAIpC,uFAAuF;IACvF,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAWjE,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,sBAAsB;IAW9B;6EACyE;IACzE,OAAO,CAAC,OAAO;CAMhB"}
|
|
@@ -145,5 +145,148 @@ export class ResearchBacklog {
|
|
|
145
145
|
close(id) { return this.update(id, { status: 'closed' }); }
|
|
146
146
|
wontFix(id, reason) { return this.update(id, { status: 'wont_fix', notes: reason }); }
|
|
147
147
|
reopenRegressed(id) { return this.update(id, { status: 'regressed' }); }
|
|
148
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
149
|
+
// Work-swarm claim/release (lease with TTL)
|
|
150
|
+
//
|
|
151
|
+
// Lets N workers pull DIFFERENT items from ONE pool concurrently without
|
|
152
|
+
// double-claiming (the §5.4 "claim/release, 15-min TTL" mechanic). An advisory
|
|
153
|
+
// lock file makes the read-check-append sequence atomic on a single machine
|
|
154
|
+
// (the local work-swarm case: N worker processes, one repo). Distributed
|
|
155
|
+
// workers coordinate via the STDB `deficiency` mirror instead, not this JSONL.
|
|
156
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
157
|
+
static DEFAULT_TTL_MS = 15 * 60 * 1000; // 15 minutes
|
|
158
|
+
get lockPath() { return this.storePath + '.lock'; }
|
|
159
|
+
/** Run `fn` while holding an exclusive advisory lock. Spins briefly for the
|
|
160
|
+
* lock; steals a lock older than staleMs (holder presumed dead). */
|
|
161
|
+
withLock(fn, opts = {}) {
|
|
162
|
+
const timeoutMs = opts.timeoutMs ?? 4000;
|
|
163
|
+
const staleMs = opts.staleMs ?? 30_000;
|
|
164
|
+
fs.mkdirSync(path.dirname(this.storePath), { recursive: true });
|
|
165
|
+
const deadline = Date.now() + timeoutMs;
|
|
166
|
+
let fd;
|
|
167
|
+
for (;;) {
|
|
168
|
+
try {
|
|
169
|
+
fd = fs.openSync(this.lockPath, 'wx'); // exclusive create → fails if held
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
// Steal a stale lock (prior holder crashed without releasing).
|
|
174
|
+
try {
|
|
175
|
+
const age = Date.now() - fs.statSync(this.lockPath).mtimeMs;
|
|
176
|
+
if (age > staleMs) {
|
|
177
|
+
try {
|
|
178
|
+
fs.unlinkSync(this.lockPath);
|
|
179
|
+
}
|
|
180
|
+
catch { /* raced */ }
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
catch { /* lock vanished — retry acquire */ }
|
|
185
|
+
if (Date.now() > deadline) {
|
|
186
|
+
// Give up on the lock rather than hang; proceed unlocked (best-effort).
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
// brief busy-wait (sync context; keep it short)
|
|
190
|
+
const until = Date.now() + 25;
|
|
191
|
+
while (Date.now() < until) { /* spin */ }
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
try {
|
|
195
|
+
return fn();
|
|
196
|
+
}
|
|
197
|
+
finally {
|
|
198
|
+
if (fd !== undefined) {
|
|
199
|
+
try {
|
|
200
|
+
fs.closeSync(fd);
|
|
201
|
+
}
|
|
202
|
+
catch { /* ignore */ }
|
|
203
|
+
try {
|
|
204
|
+
fs.unlinkSync(this.lockPath);
|
|
205
|
+
}
|
|
206
|
+
catch { /* ignore */ }
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
isLeaseLive(r, nowMs) {
|
|
211
|
+
return !!r.leaseExpiresAt && Date.parse(r.leaseExpiresAt) > nowMs;
|
|
212
|
+
}
|
|
213
|
+
/** Claim ONE specific item for `owner`. Returns the claimed record, or
|
|
214
|
+
* undefined if it does not exist, is already resolved, or is held by another
|
|
215
|
+
* worker under a LIVE lease. Idempotent for the same owner (re-extends lease). */
|
|
216
|
+
claim(id, owner, ttlMs = ResearchBacklog.DEFAULT_TTL_MS) {
|
|
217
|
+
return this.withLock(() => {
|
|
218
|
+
const cur = this.get(id);
|
|
219
|
+
if (!cur)
|
|
220
|
+
return undefined;
|
|
221
|
+
// Only open/triaged (or already-mine in_progress) are claimable.
|
|
222
|
+
const claimableStatus = cur.status === 'open' || cur.status === 'triaged' || cur.status === 'in_progress';
|
|
223
|
+
if (!claimableStatus)
|
|
224
|
+
return undefined;
|
|
225
|
+
const now = Date.now();
|
|
226
|
+
if (cur.claimedBy && cur.claimedBy !== owner && this.isLeaseLive(cur, now))
|
|
227
|
+
return undefined; // held by another
|
|
228
|
+
return this.writeClaim(cur, owner, now, ttlMs);
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
/** Release-expired + claim the highest-priority UNCLAIMED workable item.
|
|
232
|
+
* The core work-swarm pull: each worker calls this to get its own task. */
|
|
233
|
+
claimNext(owner, ttlMs = ResearchBacklog.DEFAULT_TTL_MS) {
|
|
234
|
+
return this.withLock(() => {
|
|
235
|
+
this.releaseExpiredUnlocked();
|
|
236
|
+
const now = Date.now();
|
|
237
|
+
const candidate = this.list({ status: ['open', 'triaged'], sortByPriority: true })
|
|
238
|
+
.find((r) => !r.claimedBy || r.claimedBy === owner || !this.isLeaseLive(r, now));
|
|
239
|
+
if (!candidate)
|
|
240
|
+
return undefined;
|
|
241
|
+
return this.writeClaim(candidate, owner, now, ttlMs);
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
/** Revert every in_progress item whose lease has EXPIRED back to triaged so
|
|
245
|
+
* another worker can pick it up. Returns the reclaimed records. Items marked
|
|
246
|
+
* in_progress WITHOUT a lease (legacy markInProgress) are left untouched. */
|
|
247
|
+
releaseExpired() {
|
|
248
|
+
return this.withLock(() => this.releaseExpiredUnlocked());
|
|
249
|
+
}
|
|
250
|
+
/** Explicitly release a claim you hold (work finished/abandoned) → back to triaged. */
|
|
251
|
+
release(id, owner) {
|
|
252
|
+
return this.withLock(() => {
|
|
253
|
+
const cur = this.get(id);
|
|
254
|
+
if (!cur || !cur.claimedBy)
|
|
255
|
+
return cur;
|
|
256
|
+
if (owner && cur.claimedBy !== owner)
|
|
257
|
+
return undefined; // not yours
|
|
258
|
+
return this.append2({ ...cur, status: 'triaged', claimedBy: undefined, claimedAt: undefined, leaseExpiresAt: undefined });
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
// -- claim internals (assume lock held) -------------------------------------
|
|
262
|
+
writeClaim(cur, owner, nowMs, ttlMs) {
|
|
263
|
+
const nowIso = new Date(nowMs).toISOString();
|
|
264
|
+
return this.append2({
|
|
265
|
+
...cur,
|
|
266
|
+
status: 'in_progress',
|
|
267
|
+
claimedBy: owner,
|
|
268
|
+
claimedAt: nowIso,
|
|
269
|
+
leaseExpiresAt: new Date(nowMs + ttlMs).toISOString(),
|
|
270
|
+
experimentTag: cur.experimentTag ?? owner,
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
releaseExpiredUnlocked() {
|
|
274
|
+
const now = Date.now();
|
|
275
|
+
const released = [];
|
|
276
|
+
for (const r of this.list({ status: ['in_progress'], sortByPriority: false })) {
|
|
277
|
+
if (r.leaseExpiresAt && Date.parse(r.leaseExpiresAt) <= now) {
|
|
278
|
+
released.push(this.append2({ ...r, status: 'triaged', claimedBy: undefined, claimedAt: undefined, leaseExpiresAt: undefined }));
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
return released;
|
|
282
|
+
}
|
|
283
|
+
/** append with priority recompute + updatedAt bump (like update(), but takes a
|
|
284
|
+
* full record and is safe to call under the lock without a re-read). */
|
|
285
|
+
append2(rec) {
|
|
286
|
+
const merged = { ...rec, updatedAt: new Date().toISOString() };
|
|
287
|
+
merged.priorityScore = computePriority(merged.severity, merged.impact, merged.effort, merged.confidence);
|
|
288
|
+
this.append(merged);
|
|
289
|
+
return merged;
|
|
290
|
+
}
|
|
148
291
|
}
|
|
149
292
|
//# sourceMappingURL=ResearchBacklog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResearchBacklog.js","sourceRoot":"","sources":["../../src/training/ResearchBacklog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ResearchBacklog.js","sourceRoot":"","sources":["../../src/training/ResearchBacklog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How the ACTUAL next message relates to the displayed prediction (the TUI
|
|
3
|
+
* ghost-text prefill). Spec §5.1 tri-state — splits the exam stream from
|
|
4
|
+
* suggestion telemetry:
|
|
5
|
+
* - 'none' — the prediction was never rendered to the user (late helper,
|
|
6
|
+
* display-holdout, or a non-TUI surface). Cleanest exam grade.
|
|
7
|
+
* - 'shown' — the ghost was rendered but the user typed independently.
|
|
8
|
+
* Exam-eligible; the shown-vs-none score gap measures semantic
|
|
9
|
+
* anchoring at the population level.
|
|
10
|
+
* - 'inserted' — the user Tab/→-accepted the ghost (edited or not). Excluded
|
|
11
|
+
* from the graduation exam; match_score re-reads as suggestion
|
|
12
|
+
* retention/usefulness (1.0 = accepted verbatim).
|
|
13
|
+
*/
|
|
14
|
+
export type PrefillProvenance = 'none' | 'shown' | 'inserted';
|
|
15
|
+
export interface TurnPredictionRecord {
|
|
16
|
+
/** deterministic id: <sessionId>:<turnNumber> */
|
|
17
|
+
record_id: string;
|
|
18
|
+
session_id: string;
|
|
19
|
+
turn_number: number;
|
|
20
|
+
/** model that produced the prediction (helper today; the apprentice later). */
|
|
21
|
+
predictor_model: string;
|
|
22
|
+
/** the one-line turn summary generated alongside the prediction. */
|
|
23
|
+
summary: string | null;
|
|
24
|
+
predicted_next: string;
|
|
25
|
+
/** the user's ACTUAL next message (flattened to text). */
|
|
26
|
+
actual_next: string;
|
|
27
|
+
/** deterministic token-F1 in [0,1] — see predictionMatchScore. */
|
|
28
|
+
match_score: number;
|
|
29
|
+
predicted_at_ms: number;
|
|
30
|
+
scored_at_ms: number;
|
|
31
|
+
/** §5.1 provenance of actual_next relative to the displayed prediction. */
|
|
32
|
+
prefill_provenance: PrefillProvenance;
|
|
33
|
+
}
|
|
34
|
+
/** Pending prediction held between turns (in-memory on the orchestrator). */
|
|
35
|
+
export interface PendingTurnPrediction {
|
|
36
|
+
sessionId: string;
|
|
37
|
+
turnNumber: number;
|
|
38
|
+
predictorModel: string;
|
|
39
|
+
summary: string | null;
|
|
40
|
+
prediction: string;
|
|
41
|
+
predictedAtMs: number;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Deterministic prediction↔actual similarity: token-level F1 (harmonic mean of
|
|
45
|
+
* precision and recall over unique tokens). 0 = no overlap, 1 = identical token
|
|
46
|
+
* sets. Chosen over embeddings/LLM-judge for reproducibility and zero cost — the
|
|
47
|
+
* spec upgrades the metric only if this under-separates.
|
|
48
|
+
*/
|
|
49
|
+
export declare function predictionMatchScore(predicted: string, actual: string): number;
|
|
50
|
+
/** Flatten a user message (string or content-block array) to comparable text. */
|
|
51
|
+
export declare function flattenUserContent(content: string | unknown[]): string;
|
|
52
|
+
/**
|
|
53
|
+
* Score a pending prediction against the actual next user message and append
|
|
54
|
+
* the completed record. Truncates stored texts (the raw payload belongs in R2,
|
|
55
|
+
* not the hot store). Never throws — recording must not affect the turn.
|
|
56
|
+
*/
|
|
57
|
+
export declare function scoreAndRecordTurnPrediction(projectRoot: string, pending: PendingTurnPrediction, actualNext: string, nowMs: number, prefillProvenance?: PrefillProvenance): TurnPredictionRecord | null;
|
|
58
|
+
//# sourceMappingURL=TurnPredictionStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TurnPredictionStore.d.ts","sourceRoot":"","sources":["../../src/training/TurnPredictionStore.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,eAAe,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,kBAAkB,EAAE,iBAAiB,CAAC;CACvC;AAED,6EAA6E;AAC7E,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AASD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAU9E;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,MAAM,CAOtE;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,qBAAqB,EAC9B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,iBAAiB,GAAE,iBAA0B,GAC5C,oBAAoB,GAAG,IAAI,CAoB7B"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turn-prediction records — the graduation signal (Decision Capture Layer §5).
|
|
3
|
+
*
|
|
4
|
+
* TURN_SUMMARY_PREDICTION has the helper model predict the user's next message
|
|
5
|
+
* post-turn; historically that prediction was attached to the response and then
|
|
6
|
+
* THROWN AWAY. This store completes the loop: when the next user message arrives,
|
|
7
|
+
* the pending prediction is scored against it (cheap deterministic token-F1) and
|
|
8
|
+
* the `(predicted, actual, match_score)` pair is appended to
|
|
9
|
+
* `.cortex/training/turn-predictions.jsonl`.
|
|
10
|
+
*
|
|
11
|
+
* Why it matters: the apprentice-model graduation gate is "predict the next
|
|
12
|
+
* turn; graduate when accuracy clears the stage bar." These records are that
|
|
13
|
+
* metric's raw material — today's predictor is the helper model (the baseline);
|
|
14
|
+
* the apprentice fills the same slot later and is scored the same way.
|
|
15
|
+
*
|
|
16
|
+
* OSS boundary: local JSONL only (no STDB). The nexus-side capture layer mirrors
|
|
17
|
+
* this stream up (`ingest_turn_prediction`), same as the other `.cortex` stores.
|
|
18
|
+
*/
|
|
19
|
+
import { join } from 'path';
|
|
20
|
+
import { appendJsonlRotating } from '../orchestrator/cortexTrainingRecord.js';
|
|
21
|
+
const STORE_RELATIVE_PATH = join('.cortex', 'training', 'turn-predictions.jsonl');
|
|
22
|
+
/** Lowercased alphanumeric tokens — the comparison alphabet for the match score. */
|
|
23
|
+
function tokens(s) {
|
|
24
|
+
return (s.toLowerCase().match(/[a-z0-9]+/g) ?? []).filter((t) => t.length > 0);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Deterministic prediction↔actual similarity: token-level F1 (harmonic mean of
|
|
28
|
+
* precision and recall over unique tokens). 0 = no overlap, 1 = identical token
|
|
29
|
+
* sets. Chosen over embeddings/LLM-judge for reproducibility and zero cost — the
|
|
30
|
+
* spec upgrades the metric only if this under-separates.
|
|
31
|
+
*/
|
|
32
|
+
export function predictionMatchScore(predicted, actual) {
|
|
33
|
+
const p = new Set(tokens(predicted));
|
|
34
|
+
const a = new Set(tokens(actual));
|
|
35
|
+
if (p.size === 0 || a.size === 0)
|
|
36
|
+
return 0;
|
|
37
|
+
let overlap = 0;
|
|
38
|
+
for (const t of p)
|
|
39
|
+
if (a.has(t))
|
|
40
|
+
overlap++;
|
|
41
|
+
if (overlap === 0)
|
|
42
|
+
return 0;
|
|
43
|
+
const precision = overlap / p.size;
|
|
44
|
+
const recall = overlap / a.size;
|
|
45
|
+
return Math.round(((2 * precision * recall) / (precision + recall)) * 1000) / 1000;
|
|
46
|
+
}
|
|
47
|
+
/** Flatten a user message (string or content-block array) to comparable text. */
|
|
48
|
+
export function flattenUserContent(content) {
|
|
49
|
+
if (typeof content === 'string')
|
|
50
|
+
return content;
|
|
51
|
+
if (!Array.isArray(content))
|
|
52
|
+
return String(content ?? '');
|
|
53
|
+
return content
|
|
54
|
+
.map((b) => (typeof b === 'string' ? b : typeof b?.text === 'string' ? b.text : ''))
|
|
55
|
+
.filter(Boolean)
|
|
56
|
+
.join('\n');
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Score a pending prediction against the actual next user message and append
|
|
60
|
+
* the completed record. Truncates stored texts (the raw payload belongs in R2,
|
|
61
|
+
* not the hot store). Never throws — recording must not affect the turn.
|
|
62
|
+
*/
|
|
63
|
+
export function scoreAndRecordTurnPrediction(projectRoot, pending, actualNext, nowMs, prefillProvenance = 'none') {
|
|
64
|
+
try {
|
|
65
|
+
const record = {
|
|
66
|
+
record_id: `${pending.sessionId}:${pending.turnNumber}`,
|
|
67
|
+
session_id: pending.sessionId,
|
|
68
|
+
turn_number: pending.turnNumber,
|
|
69
|
+
predictor_model: pending.predictorModel,
|
|
70
|
+
summary: pending.summary ? pending.summary.slice(0, 300) : null,
|
|
71
|
+
predicted_next: pending.prediction.slice(0, 500),
|
|
72
|
+
actual_next: actualNext.slice(0, 500),
|
|
73
|
+
match_score: predictionMatchScore(pending.prediction, actualNext),
|
|
74
|
+
predicted_at_ms: pending.predictedAtMs,
|
|
75
|
+
scored_at_ms: nowMs,
|
|
76
|
+
prefill_provenance: prefillProvenance,
|
|
77
|
+
};
|
|
78
|
+
appendJsonlRotating(join(projectRoot, STORE_RELATIVE_PATH), JSON.stringify(record));
|
|
79
|
+
return record;
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=TurnPredictionStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TurnPredictionStore.js","sourceRoot":"","sources":["../../src/training/TurnPredictionStore.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nexus-cortex/core",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.46.0",
|
|
4
4
|
"description": "Core orchestration library implementing Claude CLI architecture patterns",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"@google/genai": "^1.27.0",
|
|
47
47
|
"@google/generative-ai": "^0.2.1",
|
|
48
48
|
"@modelcontextprotocol/sdk": "^1.20.2",
|
|
49
|
-
"@nexus-cortex/executors": "4.
|
|
50
|
-
"@nexus-cortex/types": "4.
|
|
49
|
+
"@nexus-cortex/executors": "4.46.0",
|
|
50
|
+
"@nexus-cortex/types": "4.46.0",
|
|
51
51
|
"@types/uuid": "^10.0.0",
|
|
52
52
|
"chokidar": "^3.6.0",
|
|
53
53
|
"openai": "^4.104.0",
|