instar 1.3.507 → 1.3.508
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/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +6 -12
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +16 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/coordination/AnchoredAuthorization.d.ts +66 -0
- package/dist/coordination/AnchoredAuthorization.d.ts.map +1 -0
- package/dist/coordination/AnchoredAuthorization.js +71 -0
- package/dist/coordination/AnchoredAuthorization.js.map +1 -0
- package/dist/core/ExternalOperationGate.d.ts +12 -0
- package/dist/core/ExternalOperationGate.d.ts.map +1 -1
- package/dist/core/ExternalOperationGate.js +6 -0
- package/dist/core/ExternalOperationGate.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +9 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/devGatedFeatures.d.ts.map +1 -1
- package/dist/core/devGatedFeatures.js +5 -0
- package/dist/core/devGatedFeatures.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +8 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +159 -16
- package/dist/server/routes.js.map +1 -1
- package/dist/threadline/ContentClassifier.d.ts +15 -0
- package/dist/threadline/ContentClassifier.d.ts.map +1 -1
- package/dist/threadline/ContentClassifier.js +39 -0
- package/dist/threadline/ContentClassifier.js.map +1 -1
- package/dist/threadline/ConversationStore.d.ts +32 -0
- package/dist/threadline/ConversationStore.d.ts.map +1 -1
- package/dist/threadline/ConversationStore.js +74 -0
- package/dist/threadline/ConversationStore.js.map +1 -1
- package/dist/threadline/NegotiatorGate.d.ts +88 -0
- package/dist/threadline/NegotiatorGate.d.ts.map +1 -0
- package/dist/threadline/NegotiatorGate.js +148 -0
- package/dist/threadline/NegotiatorGate.js.map +1 -0
- package/dist/threadline/NegotiatorLease.d.ts +156 -0
- package/dist/threadline/NegotiatorLease.d.ts.map +1 -0
- package/dist/threadline/NegotiatorLease.js +202 -0
- package/dist/threadline/NegotiatorLease.js.map +1 -0
- package/dist/threadline/ThreadlineEndpoints.d.ts +2 -1
- package/dist/threadline/ThreadlineEndpoints.d.ts.map +1 -1
- package/dist/threadline/ThreadlineEndpoints.js +21 -1
- package/dist/threadline/ThreadlineEndpoints.js.map +1 -1
- package/dist/threadline/ThreadlineMCPServer.d.ts +8 -0
- package/dist/threadline/ThreadlineMCPServer.d.ts.map +1 -1
- package/dist/threadline/ThreadlineMCPServer.js +14 -1
- package/dist/threadline/ThreadlineMCPServer.js.map +1 -1
- package/dist/threadline/mcp-http-client.d.ts.map +1 -1
- package/dist/threadline/mcp-http-client.js +6 -0
- package/dist/threadline/mcp-http-client.js.map +1 -1
- package/dist/threadline/recordInboundAck.d.ts +48 -0
- package/dist/threadline/recordInboundAck.d.ts.map +1 -0
- package/dist/threadline/recordInboundAck.js +46 -0
- package/dist/threadline/recordInboundAck.js.map +1 -0
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +63 -63
- package/src/scaffold/templates.ts +8 -0
- package/upgrades/1.3.508.md +83 -0
- package/upgrades/side-effects/threadline-single-negotiator.md +106 -0
|
@@ -80,4 +80,19 @@ export declare class ContentClassifier {
|
|
|
80
80
|
* Used as default when content classification is not configured.
|
|
81
81
|
*/
|
|
82
82
|
export declare function createDisabledClassifier(): ContentClassifier;
|
|
83
|
+
export interface CommitmentSignal {
|
|
84
|
+
/** True when the text reads like an attempt to commit/lock an irreversible step. */
|
|
85
|
+
isCommitmentClass: boolean;
|
|
86
|
+
/** The binding terms that matched (for the advisory message). */
|
|
87
|
+
matchedTerms: string[];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Detect commitment-class prose. PURE, deterministic, no I/O — safe to call
|
|
91
|
+
* off the send path with zero latency. Returns a signal only; the caller
|
|
92
|
+
* surfaces it as a non-blocking nudge (e.g. an advisory note on the send
|
|
93
|
+
* response). It is NEVER wired to a block path.
|
|
94
|
+
*/
|
|
95
|
+
export declare function detectCommitmentClass(content: string): CommitmentSignal;
|
|
96
|
+
/** The fixed advisory nudge text shown when commitment-class prose is detected. */
|
|
97
|
+
export declare function commitmentNudge(matchedTerms: string[]): string;
|
|
83
98
|
//# sourceMappingURL=ContentClassifier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentClassifier.d.ts","sourceRoot":"","sources":["../../src/threadline/ContentClassifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;AAErE,MAAM,WAAW,oBAAoB;IACnC,6BAA6B;IAC7B,cAAc,EAAE,qBAAqB,CAAC;IACtC,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,6CAA6C;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,0EAA0E;IAC1E,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA2GD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IAGjD,OAAO,CAAC,OAAO,CAQb;gBAEU,MAAM,EAAE,uBAAuB;IAI3C;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;;;;OASG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAqFtF;;OAEG;IACH,UAAU;;;;;;;;;CAGX;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,iBAAiB,CAE5D"}
|
|
1
|
+
{"version":3,"file":"ContentClassifier.d.ts","sourceRoot":"","sources":["../../src/threadline/ContentClassifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;AAErE,MAAM,WAAW,oBAAoB;IACnC,6BAA6B;IAC7B,cAAc,EAAE,qBAAqB,CAAC;IACtC,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,6CAA6C;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,0EAA0E;IAC1E,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA2GD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IAGjD,OAAO,CAAC,OAAO,CAQb;gBAEU,MAAM,EAAE,uBAAuB;IAI3C;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;;;;OASG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAqFtF;;OAEG;IACH,UAAU;;;;;;;;;CAGX;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,iBAAiB,CAE5D;AAYD,MAAM,WAAW,gBAAgB;IAC/B,oFAAoF;IACpF,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iEAAiE;IACjE,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAmBD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAOvE;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAQ9D"}
|
|
@@ -215,4 +215,43 @@ export class ContentClassifier {
|
|
|
215
215
|
export function createDisabledClassifier() {
|
|
216
216
|
return new ContentClassifier({ enabled: false });
|
|
217
217
|
}
|
|
218
|
+
/**
|
|
219
|
+
* Binding verbs/phrases that, over an irreversible or temporal object, read as a
|
|
220
|
+
* commitment. Deliberately colloquial-inclusive — the incident's own evidence
|
|
221
|
+
* ("see you at the gate", "yep, go ahead") had no formal keyword. This is recall
|
|
222
|
+
* for a NUDGE; it does not need to be exhaustive to be correct (FD-10).
|
|
223
|
+
*/
|
|
224
|
+
const COMMITMENT_TERMS = [
|
|
225
|
+
'go ahead', 'go-ahead', 'green light', 'greenlight', 'green-light',
|
|
226
|
+
'sign off', 'sign-off', 'signed off', 'signing off',
|
|
227
|
+
"let's schedule", 'let us schedule', "let's lock", 'lock it in', 'locked in',
|
|
228
|
+
'move forward', 'go live', 'go-live', 'going live', 'ship it',
|
|
229
|
+
'confirmed for', 'confirm the', 'we agreed', 'we agree to', 'agreed to',
|
|
230
|
+
'i confirm', 'you are approved', 'approve the', 'approved the', 'approval to',
|
|
231
|
+
'lock the', 'locking the', 'schedule the cutover', 'cutover window',
|
|
232
|
+
'see you at the gate', 'commit to', 'committing to',
|
|
233
|
+
];
|
|
234
|
+
/**
|
|
235
|
+
* Detect commitment-class prose. PURE, deterministic, no I/O — safe to call
|
|
236
|
+
* off the send path with zero latency. Returns a signal only; the caller
|
|
237
|
+
* surfaces it as a non-blocking nudge (e.g. an advisory note on the send
|
|
238
|
+
* response). It is NEVER wired to a block path.
|
|
239
|
+
*/
|
|
240
|
+
export function detectCommitmentClass(content) {
|
|
241
|
+
const lower = (content ?? '').toLowerCase();
|
|
242
|
+
const matched = [];
|
|
243
|
+
for (const term of COMMITMENT_TERMS) {
|
|
244
|
+
if (lower.includes(term))
|
|
245
|
+
matched.push(term);
|
|
246
|
+
}
|
|
247
|
+
return { isCommitmentClass: matched.length > 0, matchedTerms: matched };
|
|
248
|
+
}
|
|
249
|
+
/** The fixed advisory nudge text shown when commitment-class prose is detected. */
|
|
250
|
+
export function commitmentNudge(matchedTerms) {
|
|
251
|
+
const sample = matchedTerms.slice(0, 3).join('", "');
|
|
252
|
+
return (`This message reads like a commitment (matched "${sample}"). Prose carries NO ` +
|
|
253
|
+
`authority on Threadline — it can never lock an irreversible step. To make a ` +
|
|
254
|
+
`binding agreement with the peer, anchor it through a Coordination Mandate or ` +
|
|
255
|
+
`ReviewExchange (PIN-anchored). The message was sent unchanged; this is only a hint.`);
|
|
256
|
+
}
|
|
218
257
|
//# sourceMappingURL=ContentClassifier.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentClassifier.js","sourceRoot":"","sources":["../../src/threadline/ContentClassifier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ContentClassifier.js","sourceRoot":"","sources":["../../src/threadline/ContentClassifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
* authoritative state stays local. The append-only SharedStateLedger remains the
|
|
26
26
|
* audit trail; this is the live mutable state it logs transitions from.
|
|
27
27
|
*/
|
|
28
|
+
import type { NegotiatorLease, LeaseOwner, LeaseResult } from './NegotiatorLease.js';
|
|
28
29
|
/**
|
|
29
30
|
* Conversation lifecycle state. Superset of the legacy `ThreadState`
|
|
30
31
|
* (`active|idle|resolved|failed|archived`) plus `open` (created, not yet
|
|
@@ -90,6 +91,12 @@ export interface Conversation {
|
|
|
90
91
|
trustLevel?: string;
|
|
91
92
|
/** Snapshot of the MoltBridge IQS band at last contact. */
|
|
92
93
|
iqsBand?: string;
|
|
94
|
+
/** The single-negotiator lease — names the one session that owns the voice. */
|
|
95
|
+
negotiatorLease?: NegotiatorLease;
|
|
96
|
+
/** Durable per-epoch holding-notice rate limit (FD-3). */
|
|
97
|
+
lastHoldingNoticeEpoch?: number;
|
|
98
|
+
/** Durable global min-interval floor for holding notices (FD-3). */
|
|
99
|
+
lastHoldingNoticeAt?: string;
|
|
93
100
|
}
|
|
94
101
|
/** Mutation function: receives a draft clone, returns the next record. */
|
|
95
102
|
export type ConversationMutateFn = (draft: Conversation) => Conversation | Promise<Conversation>;
|
|
@@ -186,6 +193,31 @@ export declare class ConversationStore {
|
|
|
186
193
|
* reply can still reactivate the thread through the normal resume path.
|
|
187
194
|
*/
|
|
188
195
|
retireInactive(maxInactiveMs?: number, now?: Date): number;
|
|
196
|
+
/**
|
|
197
|
+
* Acquire-or-renew the negotiator lease for a thread (D-A). One synchronous
|
|
198
|
+
* CAS transaction over `mutate()` — no background timers (FD-6). Decision:
|
|
199
|
+
* - no lease / expired / owner provably dead → acquire (epoch += 1).
|
|
200
|
+
* - already owned by the caller (and not expired) → renew (epoch unchanged).
|
|
201
|
+
* - a live, unexpired FOREIGN lease → held (caller does NOT own the voice).
|
|
202
|
+
*
|
|
203
|
+
* `isOwnerLive(sessionName)` lets the caller fence a dead owner: a foreign
|
|
204
|
+
* lease whose owner session is absent from the live session registry is
|
|
205
|
+
* reclaimable even before its TTL expires. Never reads identity from a
|
|
206
|
+
* message body — the owner is always the server-authoritative live session.
|
|
207
|
+
*/
|
|
208
|
+
acquireOrRenewLease(threadId: string, owner: LeaseOwner, opts: {
|
|
209
|
+
ttlMs: number;
|
|
210
|
+
now?: number;
|
|
211
|
+
isOwnerLive?: (sessionName: string) => boolean;
|
|
212
|
+
}): Promise<LeaseResult>;
|
|
213
|
+
/** Read the current lease for a thread (no TTL filtering — lease may be stale). */
|
|
214
|
+
readLease(threadId: string): NegotiatorLease | null;
|
|
215
|
+
/**
|
|
216
|
+
* Stamp the durable holding-notice rate-limit fields (FD-3). Called by the
|
|
217
|
+
* gate when it decides to emit a notice, so the per-epoch + min-interval
|
|
218
|
+
* limits survive restarts.
|
|
219
|
+
*/
|
|
220
|
+
recordHoldingNotice(threadId: string, epoch: number, now?: number): Promise<void>;
|
|
189
221
|
/**
|
|
190
222
|
* Record a short-lived, verified-only affinity hint (peer → most-recent
|
|
191
223
|
* thread). Deliberately NOT persisted (accepted loss on restart). Callers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationStore.d.ts","sourceRoot":"","sources":["../../src/threadline/ConversationStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;
|
|
1
|
+
{"version":3,"file":"ConversationStore.d.ts","sourceRoot":"","sources":["../../src/threadline/ConversationStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -394,6 +394,80 @@ export class ConversationStore {
|
|
|
394
394
|
}
|
|
395
395
|
return retired;
|
|
396
396
|
}
|
|
397
|
+
// ── Negotiator lease (Robustness Phase 1, D-A) ─────────────────
|
|
398
|
+
/**
|
|
399
|
+
* Acquire-or-renew the negotiator lease for a thread (D-A). One synchronous
|
|
400
|
+
* CAS transaction over `mutate()` — no background timers (FD-6). Decision:
|
|
401
|
+
* - no lease / expired / owner provably dead → acquire (epoch += 1).
|
|
402
|
+
* - already owned by the caller (and not expired) → renew (epoch unchanged).
|
|
403
|
+
* - a live, unexpired FOREIGN lease → held (caller does NOT own the voice).
|
|
404
|
+
*
|
|
405
|
+
* `isOwnerLive(sessionName)` lets the caller fence a dead owner: a foreign
|
|
406
|
+
* lease whose owner session is absent from the live session registry is
|
|
407
|
+
* reclaimable even before its TTL expires. Never reads identity from a
|
|
408
|
+
* message body — the owner is always the server-authoritative live session.
|
|
409
|
+
*/
|
|
410
|
+
async acquireOrRenewLease(threadId, owner, opts) {
|
|
411
|
+
const nowMs = opts.now ?? Date.now();
|
|
412
|
+
const nowIso = new Date(nowMs).toISOString();
|
|
413
|
+
const expiresIso = new Date(nowMs + opts.ttlMs).toISOString();
|
|
414
|
+
const isOwnerLive = opts.isOwnerLive ?? (() => true);
|
|
415
|
+
let result = null;
|
|
416
|
+
await this.mutate(threadId, (draft) => {
|
|
417
|
+
const existing = draft.negotiatorLease;
|
|
418
|
+
const ownedByCaller = !!existing &&
|
|
419
|
+
existing.ownerSessionName === owner.ownerSessionName &&
|
|
420
|
+
existing.ownerMachineId === owner.ownerMachineId;
|
|
421
|
+
const expired = existing ? new Date(existing.expiresAt).getTime() <= nowMs : true;
|
|
422
|
+
const foreignDead = !!existing && !ownedByCaller && !isOwnerLive(existing.ownerSessionName);
|
|
423
|
+
if (existing && !expired && !ownedByCaller && !foreignDead) {
|
|
424
|
+
// Live foreign lease — HELD. The lease itself is not mutated.
|
|
425
|
+
result = { disposition: 'held', lease: existing, ownedByCaller: false };
|
|
426
|
+
return draft;
|
|
427
|
+
}
|
|
428
|
+
if (existing && ownedByCaller && !expired) {
|
|
429
|
+
// Renew — extend expiry, epoch unchanged.
|
|
430
|
+
const renewed = { ...existing, renewedAt: nowIso, expiresAt: expiresIso };
|
|
431
|
+
draft.negotiatorLease = renewed;
|
|
432
|
+
result = { disposition: 'renewed', lease: renewed, ownedByCaller: true };
|
|
433
|
+
return draft;
|
|
434
|
+
}
|
|
435
|
+
// Acquire (no lease / expired / dead foreign owner) — new monotonic epoch.
|
|
436
|
+
const acquired = {
|
|
437
|
+
ownerSessionName: owner.ownerSessionName,
|
|
438
|
+
ownerMachineId: owner.ownerMachineId,
|
|
439
|
+
epoch: (existing?.epoch ?? 0) + 1,
|
|
440
|
+
acquiredAt: nowIso,
|
|
441
|
+
renewedAt: nowIso,
|
|
442
|
+
expiresAt: expiresIso,
|
|
443
|
+
};
|
|
444
|
+
draft.negotiatorLease = acquired;
|
|
445
|
+
result = { disposition: 'acquired', lease: acquired, ownedByCaller: true };
|
|
446
|
+
return draft;
|
|
447
|
+
});
|
|
448
|
+
// result is always set by the mutate fn (which runs at least once on commit).
|
|
449
|
+
if (!result) {
|
|
450
|
+
throw new Error(`acquireOrRenewLease: no result produced for ${threadId}`);
|
|
451
|
+
}
|
|
452
|
+
return result;
|
|
453
|
+
}
|
|
454
|
+
/** Read the current lease for a thread (no TTL filtering — lease may be stale). */
|
|
455
|
+
readLease(threadId) {
|
|
456
|
+
return this.snapshot().conversations[threadId]?.negotiatorLease ?? null;
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Stamp the durable holding-notice rate-limit fields (FD-3). Called by the
|
|
460
|
+
* gate when it decides to emit a notice, so the per-epoch + min-interval
|
|
461
|
+
* limits survive restarts.
|
|
462
|
+
*/
|
|
463
|
+
async recordHoldingNotice(threadId, epoch, now) {
|
|
464
|
+
const nowIso = new Date(now ?? Date.now()).toISOString();
|
|
465
|
+
await this.mutate(threadId, (draft) => {
|
|
466
|
+
draft.lastHoldingNoticeEpoch = epoch;
|
|
467
|
+
draft.lastHoldingNoticeAt = nowIso;
|
|
468
|
+
return draft;
|
|
469
|
+
});
|
|
470
|
+
}
|
|
397
471
|
// ── Ephemeral verified-only peer affinity (in-memory, non-durable) ──
|
|
398
472
|
/**
|
|
399
473
|
* Record a short-lived, verified-only affinity hint (peer → most-recent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationStore.js","sourceRoot":"","sources":["../../src/threadline/ConversationStore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConversationStore.js","sourceRoot":"","sources":["../../src/threadline/ConversationStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NegotiatorGate — the lease/voice send gate (D-B) for the Threadline
|
|
3
|
+
* single-negotiator lock (THREADLINE-SINGLE-NEGOTIATOR-SPEC.md, CMT-1362).
|
|
4
|
+
*
|
|
5
|
+
* This is the chokepoint orchestration that the server's `/threadline/relay-send`
|
|
6
|
+
* route calls right after it mints the effective threadId, BEFORE the content is
|
|
7
|
+
* delivered. It does exactly one decision: enforce the lease so only the owning
|
|
8
|
+
* session is the agent's voice (G1). It has NO authority over content MEANING —
|
|
9
|
+
* binding lives only in the existing operator-anchored primitives (G2, D-C).
|
|
10
|
+
*
|
|
11
|
+
* Behavior by config (FD-7):
|
|
12
|
+
* - enabled:false (default, ships dark) → pure pass-through. No store write, no
|
|
13
|
+
* log, zero overhead. The fleet sees no behavior change.
|
|
14
|
+
* - enabled:true + dryRun:true → observe-only. Acquire/record the lease and log
|
|
15
|
+
* the verdict it WOULD reach, but ALWAYS allow the send.
|
|
16
|
+
* - enabled:true + dryRun:false → enforce. A non-owner's CONTENT send is
|
|
17
|
+
* withheld; the gate emits at most one holding-notice to the peer (rate-
|
|
18
|
+
* limited, FD-3) and the owning session is the only voice.
|
|
19
|
+
*
|
|
20
|
+
* Fail-open (FD / D-B): a lease-store ERROR fails OPEN for the send (it proceeds)
|
|
21
|
+
* — G1 is explicitly NOT enforced during that window — AND raises a HIGH-priority
|
|
22
|
+
* alert (never silent). Safe because prose is inert (G2): the worst case is two
|
|
23
|
+
* of the agent's own sessions briefly both speaking inert prose, never a binding.
|
|
24
|
+
*/
|
|
25
|
+
import { ConversationStore } from './ConversationStore.js';
|
|
26
|
+
import { type HoldingNotice } from './NegotiatorLease.js';
|
|
27
|
+
/** What the route should do with the send. */
|
|
28
|
+
export type SendGateVerdict =
|
|
29
|
+
/** Caller owns the voice (acquired/renewed) — deliver the content. */
|
|
30
|
+
{
|
|
31
|
+
decision: 'allow';
|
|
32
|
+
reason: 'own';
|
|
33
|
+
}
|
|
34
|
+
/** Feature dark — pure pass-through, deliver the content. */
|
|
35
|
+
| {
|
|
36
|
+
decision: 'allow';
|
|
37
|
+
reason: 'disabled';
|
|
38
|
+
}
|
|
39
|
+
/** Lease-store error — fail open, deliver the content; an alert was raised. */
|
|
40
|
+
| {
|
|
41
|
+
decision: 'allow';
|
|
42
|
+
reason: 'fail-open';
|
|
43
|
+
}
|
|
44
|
+
/** Dry-run observed a foreign lease — deliver anyway, but it was logged. */
|
|
45
|
+
| {
|
|
46
|
+
decision: 'allow';
|
|
47
|
+
reason: 'would-hold';
|
|
48
|
+
}
|
|
49
|
+
/** Enforcing + foreign live lease — WITHHOLD the content. */
|
|
50
|
+
| {
|
|
51
|
+
decision: 'hold';
|
|
52
|
+
/** A holding notice to best-effort deliver to the peer (null if rate-limited). */
|
|
53
|
+
notice: HoldingNotice | null;
|
|
54
|
+
ownerSessionName: string;
|
|
55
|
+
epoch: number;
|
|
56
|
+
};
|
|
57
|
+
export interface SendGateDeps {
|
|
58
|
+
conversationStore?: ConversationStore | null;
|
|
59
|
+
/** Raw `threadline.singleNegotiator` config block (resolved defensively). */
|
|
60
|
+
rawConfig: unknown;
|
|
61
|
+
/** This machine's id. */
|
|
62
|
+
machineId: string;
|
|
63
|
+
/** This agent's display name (interpolated into the fixed holding-notice template). */
|
|
64
|
+
agentName: string;
|
|
65
|
+
/** The sending session's server-authoritative name (from INSTAR_SESSION_NAME). */
|
|
66
|
+
ownerSessionName: string | undefined;
|
|
67
|
+
/** Directory for the dry-run/fail-open observability JSONL (logs/). */
|
|
68
|
+
logDir: string;
|
|
69
|
+
/** Whether a session is currently live (fences a dead foreign owner). */
|
|
70
|
+
isSessionLive?: (sessionName: string) => boolean;
|
|
71
|
+
/** Raise a HIGH-priority alert on fail-open (never silent). Best-effort. */
|
|
72
|
+
raiseFailOpenAlert?: (detail: {
|
|
73
|
+
threadId: string;
|
|
74
|
+
sessionName: string;
|
|
75
|
+
reason: string;
|
|
76
|
+
}) => void;
|
|
77
|
+
/** Clock injection for tests. */
|
|
78
|
+
now?: () => number;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Evaluate the send gate for one outbound send. Returns the verdict the route
|
|
82
|
+
* acts on. Performs the lease CAS + holding-notice stamp + observability log
|
|
83
|
+
* internally; never throws into the send path (a store error fails open).
|
|
84
|
+
*/
|
|
85
|
+
export declare function evaluateSendGate(threadId: string, deps: SendGateDeps): Promise<SendGateVerdict>;
|
|
86
|
+
/** Resolve the standard logs/ directory for negotiator observability. */
|
|
87
|
+
export declare function negotiatorLogDir(stateDir: string): string;
|
|
88
|
+
//# sourceMappingURL=NegotiatorGate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NegotiatorGate.d.ts","sourceRoot":"","sources":["../../src/threadline/NegotiatorGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAML,KAAK,aAAa,EAEnB,MAAM,sBAAsB,CAAC;AAE9B,8CAA8C;AAC9C,MAAM,MAAM,eAAe;AACzB,sEAAsE;AACpE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,KAAK,CAAA;CAAE;AACtC,6DAA6D;GAC3D;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE;AAC3C,+EAA+E;GAC7E;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE;AAC5C,4EAA4E;GAC1E;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE;AAC7C,6DAA6D;GAC3D;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,MAAM,WAAW,YAAY;IAC3B,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC7C,6EAA6E;IAC7E,SAAS,EAAE,OAAO,CAAC;IACnB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,SAAS,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACjG,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAsHrG;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGzD"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NegotiatorGate — the lease/voice send gate (D-B) for the Threadline
|
|
3
|
+
* single-negotiator lock (THREADLINE-SINGLE-NEGOTIATOR-SPEC.md, CMT-1362).
|
|
4
|
+
*
|
|
5
|
+
* This is the chokepoint orchestration that the server's `/threadline/relay-send`
|
|
6
|
+
* route calls right after it mints the effective threadId, BEFORE the content is
|
|
7
|
+
* delivered. It does exactly one decision: enforce the lease so only the owning
|
|
8
|
+
* session is the agent's voice (G1). It has NO authority over content MEANING —
|
|
9
|
+
* binding lives only in the existing operator-anchored primitives (G2, D-C).
|
|
10
|
+
*
|
|
11
|
+
* Behavior by config (FD-7):
|
|
12
|
+
* - enabled:false (default, ships dark) → pure pass-through. No store write, no
|
|
13
|
+
* log, zero overhead. The fleet sees no behavior change.
|
|
14
|
+
* - enabled:true + dryRun:true → observe-only. Acquire/record the lease and log
|
|
15
|
+
* the verdict it WOULD reach, but ALWAYS allow the send.
|
|
16
|
+
* - enabled:true + dryRun:false → enforce. A non-owner's CONTENT send is
|
|
17
|
+
* withheld; the gate emits at most one holding-notice to the peer (rate-
|
|
18
|
+
* limited, FD-3) and the owning session is the only voice.
|
|
19
|
+
*
|
|
20
|
+
* Fail-open (FD / D-B): a lease-store ERROR fails OPEN for the send (it proceeds)
|
|
21
|
+
* — G1 is explicitly NOT enforced during that window — AND raises a HIGH-priority
|
|
22
|
+
* alert (never silent). Safe because prose is inert (G2): the worst case is two
|
|
23
|
+
* of the agent's own sessions briefly both speaking inert prose, never a binding.
|
|
24
|
+
*/
|
|
25
|
+
import path from 'node:path';
|
|
26
|
+
import { resolveSingleNegotiatorConfig, buildHoldingNotice, shouldEmitHoldingNotice, appendNegotiatorLog, } from './NegotiatorLease.js';
|
|
27
|
+
/**
|
|
28
|
+
* Evaluate the send gate for one outbound send. Returns the verdict the route
|
|
29
|
+
* acts on. Performs the lease CAS + holding-notice stamp + observability log
|
|
30
|
+
* internally; never throws into the send path (a store error fails open).
|
|
31
|
+
*/
|
|
32
|
+
export async function evaluateSendGate(threadId, deps) {
|
|
33
|
+
const cfg = resolveSingleNegotiatorConfig(deps.rawConfig);
|
|
34
|
+
// Dark ship: pure pass-through, zero overhead.
|
|
35
|
+
if (!cfg.enabled)
|
|
36
|
+
return { decision: 'allow', reason: 'disabled' };
|
|
37
|
+
const store = deps.conversationStore;
|
|
38
|
+
if (!store) {
|
|
39
|
+
// No store wired — cannot enforce; fail open (this is a wiring gap, alert).
|
|
40
|
+
deps.raiseFailOpenAlert?.({ threadId, sessionName: deps.ownerSessionName ?? '(unknown)', reason: 'no-conversation-store' });
|
|
41
|
+
appendNegotiatorLog(deps.logDir, {
|
|
42
|
+
ts: new Date(deps.now?.() ?? Date.now()).toISOString(),
|
|
43
|
+
threadId,
|
|
44
|
+
action: 'fail-open',
|
|
45
|
+
sessionName: deps.ownerSessionName ?? '(unknown)',
|
|
46
|
+
dryRun: cfg.dryRun,
|
|
47
|
+
detail: 'no-conversation-store',
|
|
48
|
+
});
|
|
49
|
+
return { decision: 'allow', reason: 'fail-open' };
|
|
50
|
+
}
|
|
51
|
+
// A send with no resolvable owning session cannot be lease-checked (no identity
|
|
52
|
+
// to own the voice). Treat as fail-open + alert rather than withhold a real send.
|
|
53
|
+
const ownerSessionName = (deps.ownerSessionName ?? '').trim();
|
|
54
|
+
if (!ownerSessionName) {
|
|
55
|
+
deps.raiseFailOpenAlert?.({ threadId, sessionName: '(none)', reason: 'no-owner-session-identity' });
|
|
56
|
+
appendNegotiatorLog(deps.logDir, {
|
|
57
|
+
ts: new Date(deps.now?.() ?? Date.now()).toISOString(),
|
|
58
|
+
threadId,
|
|
59
|
+
action: 'fail-open',
|
|
60
|
+
sessionName: '(none)',
|
|
61
|
+
dryRun: cfg.dryRun,
|
|
62
|
+
detail: 'no-owner-session-identity',
|
|
63
|
+
});
|
|
64
|
+
return { decision: 'allow', reason: 'fail-open' };
|
|
65
|
+
}
|
|
66
|
+
const nowMs = deps.now?.() ?? Date.now();
|
|
67
|
+
let lease;
|
|
68
|
+
try {
|
|
69
|
+
lease = await store.acquireOrRenewLease(threadId, { ownerSessionName, ownerMachineId: deps.machineId }, { ttlMs: cfg.leaseTtlMs, now: nowMs, isOwnerLive: deps.isSessionLive });
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
// Store/CAS error — FAIL OPEN for the send, raise a HIGH-priority alert.
|
|
73
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
74
|
+
deps.raiseFailOpenAlert?.({ threadId, sessionName: ownerSessionName, reason });
|
|
75
|
+
appendNegotiatorLog(deps.logDir, {
|
|
76
|
+
ts: new Date(nowMs).toISOString(),
|
|
77
|
+
threadId,
|
|
78
|
+
action: /CAS retry budget/.test(reason) ? 'cas-exhausted' : 'fail-open',
|
|
79
|
+
sessionName: ownerSessionName,
|
|
80
|
+
dryRun: cfg.dryRun,
|
|
81
|
+
detail: reason,
|
|
82
|
+
});
|
|
83
|
+
return { decision: 'allow', reason: 'fail-open' };
|
|
84
|
+
}
|
|
85
|
+
if (lease.ownedByCaller) {
|
|
86
|
+
appendNegotiatorLog(deps.logDir, {
|
|
87
|
+
ts: new Date(nowMs).toISOString(),
|
|
88
|
+
threadId,
|
|
89
|
+
action: 'allow-own',
|
|
90
|
+
sessionName: ownerSessionName,
|
|
91
|
+
epoch: lease.lease.epoch,
|
|
92
|
+
dryRun: cfg.dryRun,
|
|
93
|
+
});
|
|
94
|
+
return { decision: 'allow', reason: 'own' };
|
|
95
|
+
}
|
|
96
|
+
// Foreign live lease — the caller is NOT the voice.
|
|
97
|
+
if (cfg.dryRun) {
|
|
98
|
+
// Observe-only: log what we WOULD do, still send.
|
|
99
|
+
appendNegotiatorLog(deps.logDir, {
|
|
100
|
+
ts: new Date(nowMs).toISOString(),
|
|
101
|
+
threadId,
|
|
102
|
+
action: 'would-hold',
|
|
103
|
+
sessionName: ownerSessionName,
|
|
104
|
+
ownerSessionName: lease.lease.ownerSessionName,
|
|
105
|
+
epoch: lease.lease.epoch,
|
|
106
|
+
dryRun: true,
|
|
107
|
+
});
|
|
108
|
+
return { decision: 'allow', reason: 'would-hold' };
|
|
109
|
+
}
|
|
110
|
+
// Enforce: WITHHOLD the content. Decide whether to emit a (rate-limited) notice.
|
|
111
|
+
const conv = store.get(threadId);
|
|
112
|
+
const emit = shouldEmitHoldingNotice({
|
|
113
|
+
epoch: lease.lease.epoch,
|
|
114
|
+
lastHoldingNoticeEpoch: conv?.lastHoldingNoticeEpoch,
|
|
115
|
+
lastHoldingNoticeAt: conv?.lastHoldingNoticeAt,
|
|
116
|
+
minIntervalMs: cfg.holdingNoticeMinIntervalMs,
|
|
117
|
+
now: nowMs,
|
|
118
|
+
});
|
|
119
|
+
let notice = null;
|
|
120
|
+
if (emit) {
|
|
121
|
+
notice = buildHoldingNotice(deps.agentName, lease.lease);
|
|
122
|
+
// Stamp the durable rate-limit fields BEFORE the route delivers the notice.
|
|
123
|
+
try {
|
|
124
|
+
await store.recordHoldingNotice(threadId, lease.lease.epoch, nowMs);
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
// @silent-fallback-ok: a stamp failure at worst allows one extra notice next
|
|
128
|
+
// send; never withhold/deliver differently because the bookkeeping write failed.
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
appendNegotiatorLog(deps.logDir, {
|
|
132
|
+
ts: new Date(nowMs).toISOString(),
|
|
133
|
+
threadId,
|
|
134
|
+
action: 'hold',
|
|
135
|
+
sessionName: ownerSessionName,
|
|
136
|
+
ownerSessionName: lease.lease.ownerSessionName,
|
|
137
|
+
epoch: lease.lease.epoch,
|
|
138
|
+
dryRun: false,
|
|
139
|
+
detail: emit ? 'notice-emitted' : 'notice-rate-limited',
|
|
140
|
+
});
|
|
141
|
+
return { decision: 'hold', notice, ownerSessionName: lease.lease.ownerSessionName, epoch: lease.lease.epoch };
|
|
142
|
+
}
|
|
143
|
+
/** Resolve the standard logs/ directory for negotiator observability. */
|
|
144
|
+
export function negotiatorLogDir(stateDir) {
|
|
145
|
+
// stateDir is the agent's .instar dir; logs live as a sibling under it.
|
|
146
|
+
return path.join(stateDir, '..', 'logs');
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=NegotiatorGate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NegotiatorGate.js","sourceRoot":"","sources":["../../src/threadline/NegotiatorGate.ts"],"names":[],"mappings":"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"}
|