instar 1.3.39 → 1.3.41
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/scheduler/MentorOnboardingRunner.d.ts +15 -0
- package/dist/scheduler/MentorOnboardingRunner.d.ts.map +1 -1
- package/dist/scheduler/MentorOnboardingRunner.js +2 -0
- package/dist/scheduler/MentorOnboardingRunner.js.map +1 -1
- package/dist/scheduler/OutstandingPromptTracker.d.ts +82 -0
- package/dist/scheduler/OutstandingPromptTracker.d.ts.map +1 -0
- package/dist/scheduler/OutstandingPromptTracker.js +136 -0
- package/dist/scheduler/OutstandingPromptTracker.js.map +1 -0
- package/dist/server/AgentServer.d.ts +39 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +225 -11
- package/dist/server/AgentServer.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +3 -3
- package/upgrades/1.3.40.md +37 -0
- package/upgrades/1.3.41.md +43 -0
- package/upgrades/side-effects/mentor-consumer-receiver-wire.md +89 -0
- package/upgrades/side-effects/mentor-consumer-sender-wire.md +78 -0
|
@@ -22,7 +22,22 @@ export interface MentorConfig {
|
|
|
22
22
|
menteeFramework: string;
|
|
23
23
|
minIntervalMs: number;
|
|
24
24
|
maxRoundsPerDay: number;
|
|
25
|
+
/** @deprecated dead config — we run on a Claude subscription; replacement is the
|
|
26
|
+
* quota-aware Stage-B token ceiling (Fix 3 of MENTOR-LIVE-READINESS, separate PR).
|
|
27
|
+
* Retained for backward-compat read; removed by migrateRetireDeadMentorConfig. */
|
|
25
28
|
dailySpendCapUsd: number;
|
|
29
|
+
/** Telegram bot token Echo uses to send to the mentee (Secret-Drop-collected). When
|
|
30
|
+
* unset, the mentor refuses to deliver (logs + no-op) — the wiring stays dark even
|
|
31
|
+
* with mentor.enabled true, until a token is configured. */
|
|
32
|
+
botToken?: string;
|
|
33
|
+
/** Mentee's Telegram bot id (the recipient — Codey's bot). Used by Echo's mentor
|
|
34
|
+
* bot to address its sends + by Codey-side allowlist for the spoof defense. */
|
|
35
|
+
menteeBotId?: string;
|
|
36
|
+
/** Mentee's Telegram chat id (the supergroup where Codey's topics live). Echo's
|
|
37
|
+
* mentor bot sends INTO this chat (it's Codey's universe, not Echo's). */
|
|
38
|
+
menteeChatId?: string;
|
|
39
|
+
/** Topic id within menteeChatId that Echo writes mentor prompts to. */
|
|
40
|
+
menteeTopicId?: number;
|
|
26
41
|
}
|
|
27
42
|
export declare const DEFAULT_MENTOR_CONFIG: MentorConfig;
|
|
28
43
|
export interface MentorRunnerServices {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MentorOnboardingRunner.d.ts","sourceRoot":"","sources":["../../src/scheduler/MentorOnboardingRunner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAiB,KAAK,gBAAgB,EAAmB,MAAM,2BAA2B,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAEhH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;IACjC,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"MentorOnboardingRunner.d.ts","sourceRoot":"","sources":["../../src/scheduler/MentorOnboardingRunner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAiB,KAAK,gBAAgB,EAAmB,MAAM,2BAA2B,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAEhH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;IACjC,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB;;uFAEmF;IACnF,gBAAgB,EAAE,MAAM,CAAC;IACzB;;iEAE6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;oFACgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;+EAC2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,qBAAqB,EAAE,YASnC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,iEAAiE;IACjE,OAAO,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,gBAAgB,CAAC;IACtD,sEAAsE;IACtE,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,4DAA4D;IAC5D,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACtE,kCAAkC;IAClC,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,kBAAkB,EAAE,MAAM,OAAO,CAAC;IAClC,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,6DAA6D;IAC7D,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,mBAAmB,CAAC;IACvD,0EAA0E;IAC1E,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D;0DACsD;IACtD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;AAEtE,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IACvE,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,MAAM,YAAY;IAGhD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAmD;IAErE,MAAM,IAAI;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3B,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,OAAO,CAAC;QAClB,UAAU,EAAE,CAAC,eAAe,GAAG;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC,GAAG,IAAI,CAAC;KACvD;IAWD;;;;;;OAMG;IACH,SAAS,IAAI;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IA2BnD,gFAAgF;IAC1E,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC;CAuBvC"}
|
|
@@ -20,6 +20,8 @@ export const DEFAULT_MENTOR_CONFIG = {
|
|
|
20
20
|
minIntervalMs: 600_000, // 10 min floor
|
|
21
21
|
maxRoundsPerDay: 24,
|
|
22
22
|
dailySpendCapUsd: 0.5,
|
|
23
|
+
// botToken / menteeBotId / menteeTopicId default undefined → mentor wiring stays
|
|
24
|
+
// dark until they are explicitly configured (per /mentor/bot-setup, future PR).
|
|
23
25
|
};
|
|
24
26
|
export class MentorOnboardingRunner {
|
|
25
27
|
services;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MentorOnboardingRunner.js","sourceRoot":"","sources":["../../src/scheduler/MentorOnboardingRunner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,aAAa,EAA0C,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"MentorOnboardingRunner.js","sourceRoot":"","sources":["../../src/scheduler/MentorOnboardingRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OutstandingPromptTracker — anti-ping-pong invariant for the mentor live loop.
|
|
3
|
+
*
|
|
4
|
+
* Spec: MENTOR-LIVE-READINESS §Fix 2b "Implementation surface" item 4 + Justin's original
|
|
5
|
+
* concern (the rebuilt-slow ping-pong: a 15-min mentor tick + a Codey reply that takes
|
|
6
|
+
* 16+ min = naive next-tick re-sends while the prior is in flight → loop).
|
|
7
|
+
*
|
|
8
|
+
* Justin's user-fidelity correction made this THE real cadence gate (Fix 1 idle-probe
|
|
9
|
+
* was removed; users don't probe). The mentor refuses to send a new prompt while any
|
|
10
|
+
* prior prompt is outstanding within `replyTimeoutMs`. On timeout expiry without a reply
|
|
11
|
+
* → degradation event + Attention entry (silent reply-loss is observable).
|
|
12
|
+
*
|
|
13
|
+
* Pure in-memory + a small persistence shim so a server restart doesn't lose the "I'm
|
|
14
|
+
* waiting on a reply" state (would otherwise re-send + double-prompt Codey).
|
|
15
|
+
*
|
|
16
|
+
* Keyed per-mentee. The same `corr` round-trips: mark on send, clear on matching reply.
|
|
17
|
+
*/
|
|
18
|
+
export interface OutstandingPromptTrackerOptions {
|
|
19
|
+
/** Absolute path to the JSON file backing the tracker (per-mentee state). */
|
|
20
|
+
filePath: string;
|
|
21
|
+
/** A reply that doesn't arrive within this window is treated as orphaned. */
|
|
22
|
+
replyTimeoutMs?: number;
|
|
23
|
+
/** Injected for testability. */
|
|
24
|
+
now?: () => number;
|
|
25
|
+
}
|
|
26
|
+
export type CheckResult = {
|
|
27
|
+
ok: true;
|
|
28
|
+
} | {
|
|
29
|
+
ok: false;
|
|
30
|
+
reason: 'prior-prompt-in-flight';
|
|
31
|
+
outstandingCorr: string;
|
|
32
|
+
sentAt: number;
|
|
33
|
+
};
|
|
34
|
+
export declare class OutstandingPromptTracker {
|
|
35
|
+
private readonly filePath;
|
|
36
|
+
private readonly replyTimeoutMs;
|
|
37
|
+
private readonly now;
|
|
38
|
+
private entries;
|
|
39
|
+
/** Per-(reason,day) dedup for the orphan-degradation notification. */
|
|
40
|
+
private orphanedNotifiedFor;
|
|
41
|
+
constructor(opts: OutstandingPromptTrackerOptions);
|
|
42
|
+
/**
|
|
43
|
+
* Returns `{ok: true}` if the mentor can send a new prompt to this mentee; otherwise
|
|
44
|
+
* `{ok: false, reason: 'prior-prompt-in-flight'}` (the tick must refuse the send). An
|
|
45
|
+
* EXPIRED outstanding (past replyTimeoutMs) is automatically swept here and does NOT
|
|
46
|
+
* block — the caller can also call sweepExpired() explicitly to surface orphans.
|
|
47
|
+
*/
|
|
48
|
+
canSendTo(mentee: string): CheckResult;
|
|
49
|
+
/** Record that a prompt with this `corr` was sent to this mentee at now(). */
|
|
50
|
+
markSent(corr: string, mentee: string): void;
|
|
51
|
+
/**
|
|
52
|
+
* Clear an outstanding prompt by `corr` (called when the matching reply arrives).
|
|
53
|
+
* Returns true if an outstanding entry existed (legitimate reply); false if not
|
|
54
|
+
* (a reply with no outstanding match — possibly a late reply after orphan-sweep,
|
|
55
|
+
* or a spurious reply; the caller may want to log this).
|
|
56
|
+
*/
|
|
57
|
+
clearByCorr(corr: string): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Find + remove orphans (sentAt + replyTimeoutMs < now). Returns the list. Caller
|
|
60
|
+
* decides whether to fire DegradationReporter / Attention. The dedup field stays
|
|
61
|
+
* across calls so the same orphan-episode doesn't re-fire repeatedly.
|
|
62
|
+
*/
|
|
63
|
+
sweepExpired(): Array<{
|
|
64
|
+
corr: string;
|
|
65
|
+
mentee: string;
|
|
66
|
+
sentAt: number;
|
|
67
|
+
ageMs: number;
|
|
68
|
+
}>;
|
|
69
|
+
/** Idempotent: once an orphan-notify has fired for a (corr), don't re-fire. */
|
|
70
|
+
recordOrphanNotified(corr: string): boolean;
|
|
71
|
+
/** Test helper. */
|
|
72
|
+
size(): number;
|
|
73
|
+
/** Test helper. */
|
|
74
|
+
list(): Array<{
|
|
75
|
+
corr: string;
|
|
76
|
+
mentee: string;
|
|
77
|
+
sentAt: number;
|
|
78
|
+
}>;
|
|
79
|
+
private load;
|
|
80
|
+
private persist;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=OutstandingPromptTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OutstandingPromptTracker.d.ts","sourceRoot":"","sources":["../../src/scheduler/OutstandingPromptTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,MAAM,WAAW,+BAA+B;IAC9C,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAiBD,MAAM,MAAM,WAAW,GACnB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,wBAAwB,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7F,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,OAAO,CAAiC;IAChD,sEAAsE;IACtE,OAAO,CAAC,mBAAmB,CAAc;gBAE7B,IAAI,EAAE,+BAA+B;IASjD;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW;IAUtC,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5C;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAMlC;;;;OAIG;IACH,YAAY,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAatF,+EAA+E;IAC/E,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAM3C,mBAAmB;IACnB,IAAI,IAAI,MAAM;IAId,mBAAmB;IACnB,IAAI,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAI/D,OAAO,CAAC,IAAI;IAkBZ,OAAO,CAAC,OAAO;CAahB"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OutstandingPromptTracker — anti-ping-pong invariant for the mentor live loop.
|
|
3
|
+
*
|
|
4
|
+
* Spec: MENTOR-LIVE-READINESS §Fix 2b "Implementation surface" item 4 + Justin's original
|
|
5
|
+
* concern (the rebuilt-slow ping-pong: a 15-min mentor tick + a Codey reply that takes
|
|
6
|
+
* 16+ min = naive next-tick re-sends while the prior is in flight → loop).
|
|
7
|
+
*
|
|
8
|
+
* Justin's user-fidelity correction made this THE real cadence gate (Fix 1 idle-probe
|
|
9
|
+
* was removed; users don't probe). The mentor refuses to send a new prompt while any
|
|
10
|
+
* prior prompt is outstanding within `replyTimeoutMs`. On timeout expiry without a reply
|
|
11
|
+
* → degradation event + Attention entry (silent reply-loss is observable).
|
|
12
|
+
*
|
|
13
|
+
* Pure in-memory + a small persistence shim so a server restart doesn't lose the "I'm
|
|
14
|
+
* waiting on a reply" state (would otherwise re-send + double-prompt Codey).
|
|
15
|
+
*
|
|
16
|
+
* Keyed per-mentee. The same `corr` round-trips: mark on send, clear on matching reply.
|
|
17
|
+
*/
|
|
18
|
+
import fs from 'node:fs';
|
|
19
|
+
import path from 'node:path';
|
|
20
|
+
import { SafeFsExecutor } from '../core/SafeFsExecutor.js';
|
|
21
|
+
const DEFAULT_REPLY_TIMEOUT_MS = 20 * 60 * 1000; // 20 min — > the 15-min tick interval.
|
|
22
|
+
export class OutstandingPromptTracker {
|
|
23
|
+
filePath;
|
|
24
|
+
replyTimeoutMs;
|
|
25
|
+
now;
|
|
26
|
+
entries;
|
|
27
|
+
/** Per-(reason,day) dedup for the orphan-degradation notification. */
|
|
28
|
+
orphanedNotifiedFor;
|
|
29
|
+
constructor(opts) {
|
|
30
|
+
this.filePath = opts.filePath;
|
|
31
|
+
this.replyTimeoutMs = opts.replyTimeoutMs ?? DEFAULT_REPLY_TIMEOUT_MS;
|
|
32
|
+
this.now = opts.now ?? Date.now;
|
|
33
|
+
this.entries = new Map();
|
|
34
|
+
this.orphanedNotifiedFor = new Set();
|
|
35
|
+
this.load();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Returns `{ok: true}` if the mentor can send a new prompt to this mentee; otherwise
|
|
39
|
+
* `{ok: false, reason: 'prior-prompt-in-flight'}` (the tick must refuse the send). An
|
|
40
|
+
* EXPIRED outstanding (past replyTimeoutMs) is automatically swept here and does NOT
|
|
41
|
+
* block — the caller can also call sweepExpired() explicitly to surface orphans.
|
|
42
|
+
*/
|
|
43
|
+
canSendTo(mentee) {
|
|
44
|
+
this.sweepExpired();
|
|
45
|
+
for (const [corr, p] of this.entries) {
|
|
46
|
+
if (p.mentee === mentee) {
|
|
47
|
+
return { ok: false, reason: 'prior-prompt-in-flight', outstandingCorr: corr, sentAt: p.sentAt };
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return { ok: true };
|
|
51
|
+
}
|
|
52
|
+
/** Record that a prompt with this `corr` was sent to this mentee at now(). */
|
|
53
|
+
markSent(corr, mentee) {
|
|
54
|
+
this.entries.set(corr, { sentAt: this.now(), mentee });
|
|
55
|
+
this.persist();
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Clear an outstanding prompt by `corr` (called when the matching reply arrives).
|
|
59
|
+
* Returns true if an outstanding entry existed (legitimate reply); false if not
|
|
60
|
+
* (a reply with no outstanding match — possibly a late reply after orphan-sweep,
|
|
61
|
+
* or a spurious reply; the caller may want to log this).
|
|
62
|
+
*/
|
|
63
|
+
clearByCorr(corr) {
|
|
64
|
+
const had = this.entries.delete(corr);
|
|
65
|
+
if (had)
|
|
66
|
+
this.persist();
|
|
67
|
+
return had;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Find + remove orphans (sentAt + replyTimeoutMs < now). Returns the list. Caller
|
|
71
|
+
* decides whether to fire DegradationReporter / Attention. The dedup field stays
|
|
72
|
+
* across calls so the same orphan-episode doesn't re-fire repeatedly.
|
|
73
|
+
*/
|
|
74
|
+
sweepExpired() {
|
|
75
|
+
const cutoff = this.now() - this.replyTimeoutMs;
|
|
76
|
+
const out = [];
|
|
77
|
+
for (const [corr, p] of this.entries) {
|
|
78
|
+
if (p.sentAt < cutoff) {
|
|
79
|
+
out.push({ corr, mentee: p.mentee, sentAt: p.sentAt, ageMs: this.now() - p.sentAt });
|
|
80
|
+
this.entries.delete(corr);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (out.length > 0)
|
|
84
|
+
this.persist();
|
|
85
|
+
return out;
|
|
86
|
+
}
|
|
87
|
+
/** Idempotent: once an orphan-notify has fired for a (corr), don't re-fire. */
|
|
88
|
+
recordOrphanNotified(corr) {
|
|
89
|
+
if (this.orphanedNotifiedFor.has(corr))
|
|
90
|
+
return false;
|
|
91
|
+
this.orphanedNotifiedFor.add(corr);
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
/** Test helper. */
|
|
95
|
+
size() {
|
|
96
|
+
return this.entries.size;
|
|
97
|
+
}
|
|
98
|
+
/** Test helper. */
|
|
99
|
+
list() {
|
|
100
|
+
return [...this.entries].map(([corr, p]) => ({ corr, mentee: p.mentee, sentAt: p.sentAt }));
|
|
101
|
+
}
|
|
102
|
+
load() {
|
|
103
|
+
if (!fs.existsSync(this.filePath))
|
|
104
|
+
return;
|
|
105
|
+
try {
|
|
106
|
+
const raw = fs.readFileSync(this.filePath, 'utf-8');
|
|
107
|
+
const parsed = JSON.parse(raw);
|
|
108
|
+
if (parsed && parsed.v === 1 && parsed.entries && typeof parsed.entries === 'object') {
|
|
109
|
+
for (const [corr, p] of Object.entries(parsed.entries)) {
|
|
110
|
+
if (p && typeof p.sentAt === 'number' && typeof p.mentee === 'string') {
|
|
111
|
+
this.entries.set(corr, { sentAt: p.sentAt, mentee: p.mentee });
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
// Corrupted state → start fresh; better than crashing the mentor on a bad file.
|
|
118
|
+
this.entries = new Map();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
persist() {
|
|
122
|
+
const file = {
|
|
123
|
+
v: 1,
|
|
124
|
+
entries: Object.fromEntries(this.entries),
|
|
125
|
+
};
|
|
126
|
+
try {
|
|
127
|
+
fs.mkdirSync(path.dirname(this.filePath), { recursive: true });
|
|
128
|
+
SafeFsExecutor.atomicWriteJsonSync(this.filePath, file, { operation: 'OutstandingPromptTracker.persist' });
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
// eslint-disable-next-line no-console
|
|
132
|
+
console.warn(`[mentor] OutstandingPromptTracker persist failed (non-fatal) at ${this.filePath}:`, err instanceof Error ? err.message : String(err));
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=OutstandingPromptTracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OutstandingPromptTracker.js","sourceRoot":"","sources":["../../src/scheduler/OutstandingPromptTracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,19 @@ export declare class AgentServer {
|
|
|
54
54
|
/** UTC day + run count for the per-day mentor cap (resets across days). */
|
|
55
55
|
private mentorDayKey;
|
|
56
56
|
private mentorRunsToday;
|
|
57
|
+
/** Lazily-constructed second TelegramAdapter for the mentor bot (gated on
|
|
58
|
+
* mentor.botToken). Per-token-cached so config reloads with the same token reuse the
|
|
59
|
+
* same adapter (avoids leaking a new bot poll loop on every send). Spec §Fix 2b. */
|
|
60
|
+
private mentorBotAdapter;
|
|
61
|
+
private mentorBotAdapterToken;
|
|
62
|
+
/** Lazily-constructed a2a audit ledger (shared across mentor sends/recvs). */
|
|
63
|
+
private a2aLedger;
|
|
64
|
+
/** Lazily-constructed processed-id store (idempotency for inbound mentor-reply). */
|
|
65
|
+
private a2aProcessedIds;
|
|
66
|
+
/** Lazily-constructed outstanding-prompt tracker (anti-ping-pong). */
|
|
67
|
+
private mentorOutstanding;
|
|
68
|
+
/** Reply-jsonl path (Codey's reply persisted here for Stage-B forensics). */
|
|
69
|
+
private mentorReplyJsonlPath;
|
|
57
70
|
private failureLedger;
|
|
58
71
|
private failureAttributionEngine;
|
|
59
72
|
private burnDetector;
|
|
@@ -229,6 +242,32 @@ export declare class AgentServer {
|
|
|
229
242
|
/** Find the N most recently-modified rollout .jsonl files under a codex sessions
|
|
230
243
|
* dir (nested year/month/day). Best-effort; returns [] on any error. */
|
|
231
244
|
private findRecentRolloutFiles;
|
|
245
|
+
/**
|
|
246
|
+
* Lazily construct + cache the mentor-bot TelegramAdapter for the given token. Uses
|
|
247
|
+
* PR 2a's multi-instance support (subDir + suppressLifelineAutoCreate) so the second
|
|
248
|
+
* bot can't clobber the primary bot's state files OR auto-create a second Lifeline
|
|
249
|
+
* topic. Reconfiguration (token change) tears down the old adapter first.
|
|
250
|
+
* Returns null on construction failure (logged) — caller treats as "no delivery."
|
|
251
|
+
*/
|
|
252
|
+
private getOrCreateMentorBot;
|
|
253
|
+
/** Lazily construct + cache the a2a audit ledger. Paths default under stateDir. */
|
|
254
|
+
private getOrCreateA2aLedger;
|
|
255
|
+
/** Lazily construct + cache the processed-id store (idempotency for inbound replies). */
|
|
256
|
+
private getOrCreateA2aProcessedIds;
|
|
257
|
+
/** Lazily construct + cache the outstanding-prompt tracker (anti-ping-pong). */
|
|
258
|
+
private getOrCreateMentorOutstanding;
|
|
259
|
+
/**
|
|
260
|
+
* Install the mentor-reply recipient hook on the mentor-bot adapter. Called from
|
|
261
|
+
* getOrCreateMentorBot once the adapter is up. The hook routes role=`mentor-reply`
|
|
262
|
+
* from Codey to a handler that (1) clears the outstanding-prompt entry by `corr`
|
|
263
|
+
* (so the next mentor tick can send again), and (2) persists the reply to a
|
|
264
|
+
* jsonl file Stage-B forensics reads. This is the capability-handle invariant from
|
|
265
|
+
* the spec: the reply-ingestion path CANNOT call spawnStageA / deliverToMentee /
|
|
266
|
+
* scheduler / Threadline — it only writes the reply + clears tracking.
|
|
267
|
+
*/
|
|
268
|
+
private installMentorReceiverHook;
|
|
269
|
+
/** Snapshot of mentor config for use outside the runner's getConfig closure. */
|
|
270
|
+
private getMentorConfigSnapshot;
|
|
232
271
|
private buildMentorRunner;
|
|
233
272
|
/**
|
|
234
273
|
* Start the HTTP server.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentServer.d.ts","sourceRoot":"","sources":["../../src/server/AgentServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAgB,EAAE,KAAK,OAAO,EAA+B,MAAM,SAAS,CAAC;AAM7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAcxF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentServer.d.ts","sourceRoot":"","sources":["../../src/server/AgentServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,12 @@ import { FrameworkIssueLedger } from '../monitoring/FrameworkIssueLedger.js';
|
|
|
37
37
|
import { MentorOnboardingRunner, DEFAULT_MENTOR_CONFIG } from '../scheduler/MentorOnboardingRunner.js';
|
|
38
38
|
import { STAGE_A_ALLOWED_TOOLS } from '../monitoring/MentorStageA.js';
|
|
39
39
|
import { analyzeForensics } from '../scheduler/MentorStageBForensics.js';
|
|
40
|
+
import { TelegramAdapter as MentorTelegramAdapter } from '../messaging/TelegramAdapter.js';
|
|
41
|
+
import { sendAgentMessage, A2A_VERSION } from '../messaging/AgentTelegramComms.js';
|
|
42
|
+
import { AgentTelegramLedger, defaultLedgerPaths as defaultA2aLedgerPaths } from '../messaging/AgentTelegramLedger.js';
|
|
43
|
+
import { ProcessedIdStore } from '../messaging/ProcessedIdStore.js';
|
|
44
|
+
import { buildAgentMessageHook } from '../messaging/installAgentMessageHook.js';
|
|
45
|
+
import { OutstandingPromptTracker } from '../scheduler/OutstandingPromptTracker.js';
|
|
40
46
|
import { parseCodexRollout } from '../monitoring/CodexRolloutParser.js';
|
|
41
47
|
import { BurnDetector } from '../monitoring/BurnDetector.js';
|
|
42
48
|
import { BurnThrottleRunbook } from '../monitoring/BurnThrottleRunbook.js';
|
|
@@ -68,6 +74,19 @@ export class AgentServer {
|
|
|
68
74
|
/** UTC day + run count for the per-day mentor cap (resets across days). */
|
|
69
75
|
mentorDayKey = '';
|
|
70
76
|
mentorRunsToday = 0;
|
|
77
|
+
/** Lazily-constructed second TelegramAdapter for the mentor bot (gated on
|
|
78
|
+
* mentor.botToken). Per-token-cached so config reloads with the same token reuse the
|
|
79
|
+
* same adapter (avoids leaking a new bot poll loop on every send). Spec §Fix 2b. */
|
|
80
|
+
mentorBotAdapter = null;
|
|
81
|
+
mentorBotAdapterToken = null;
|
|
82
|
+
/** Lazily-constructed a2a audit ledger (shared across mentor sends/recvs). */
|
|
83
|
+
a2aLedger = null;
|
|
84
|
+
/** Lazily-constructed processed-id store (idempotency for inbound mentor-reply). */
|
|
85
|
+
a2aProcessedIds = null;
|
|
86
|
+
/** Lazily-constructed outstanding-prompt tracker (anti-ping-pong). */
|
|
87
|
+
mentorOutstanding = null;
|
|
88
|
+
/** Reply-jsonl path (Codey's reply persisted here for Stage-B forensics). */
|
|
89
|
+
mentorReplyJsonlPath = null;
|
|
71
90
|
failureLedger = null;
|
|
72
91
|
failureAttributionEngine = null;
|
|
73
92
|
// Burn-detection-and-self-heal system (six-phase umbrella spec at
|
|
@@ -562,6 +581,126 @@ export class AgentServer {
|
|
|
562
581
|
walk(sessionsDir, 0);
|
|
563
582
|
return found.sort((a, b) => b.mtime - a.mtime).slice(0, n).map((f) => f.path);
|
|
564
583
|
}
|
|
584
|
+
/**
|
|
585
|
+
* Lazily construct + cache the mentor-bot TelegramAdapter for the given token. Uses
|
|
586
|
+
* PR 2a's multi-instance support (subDir + suppressLifelineAutoCreate) so the second
|
|
587
|
+
* bot can't clobber the primary bot's state files OR auto-create a second Lifeline
|
|
588
|
+
* topic. Reconfiguration (token change) tears down the old adapter first.
|
|
589
|
+
* Returns null on construction failure (logged) — caller treats as "no delivery."
|
|
590
|
+
*/
|
|
591
|
+
getOrCreateMentorBot(botToken, menteeChatId) {
|
|
592
|
+
if (this.mentorBotAdapter && this.mentorBotAdapterToken === botToken) {
|
|
593
|
+
return this.mentorBotAdapter;
|
|
594
|
+
}
|
|
595
|
+
if (this.mentorBotAdapter && this.mentorBotAdapterToken !== botToken) {
|
|
596
|
+
this.mentorBotAdapter.stop().catch(() => { });
|
|
597
|
+
this.mentorBotAdapter = null;
|
|
598
|
+
this.mentorBotAdapterToken = null;
|
|
599
|
+
}
|
|
600
|
+
try {
|
|
601
|
+
this.mentorBotAdapter = new MentorTelegramAdapter({ token: botToken, chatId: menteeChatId }, this.config.stateDir, { subDir: 'agent-telegram/mentor-bot', suppressLifelineAutoCreate: true });
|
|
602
|
+
this.mentorBotAdapterToken = botToken;
|
|
603
|
+
// Install the mentor-reply recipient hook now that the adapter is up. The handler
|
|
604
|
+
// clears the outstanding-prompt by corr + persists the reply for Stage-B.
|
|
605
|
+
const mentorBotId = botToken.split(':')[0];
|
|
606
|
+
this.installMentorReceiverHook(this.mentorBotAdapter, mentorBotId);
|
|
607
|
+
return this.mentorBotAdapter;
|
|
608
|
+
}
|
|
609
|
+
catch (err) {
|
|
610
|
+
console.warn('[mentor] mentor-bot adapter construction failed (non-fatal):', err instanceof Error ? err.message : String(err));
|
|
611
|
+
this.mentorBotAdapter = null;
|
|
612
|
+
this.mentorBotAdapterToken = null;
|
|
613
|
+
return null;
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
/** Lazily construct + cache the a2a audit ledger. Paths default under stateDir. */
|
|
617
|
+
getOrCreateA2aLedger() {
|
|
618
|
+
if (!this.a2aLedger) {
|
|
619
|
+
this.a2aLedger = new AgentTelegramLedger(defaultA2aLedgerPaths(this.config.stateDir));
|
|
620
|
+
}
|
|
621
|
+
return this.a2aLedger;
|
|
622
|
+
}
|
|
623
|
+
/** Lazily construct + cache the processed-id store (idempotency for inbound replies). */
|
|
624
|
+
getOrCreateA2aProcessedIds() {
|
|
625
|
+
if (!this.a2aProcessedIds) {
|
|
626
|
+
this.a2aProcessedIds = new ProcessedIdStore({
|
|
627
|
+
filePath: path.join(this.config.stateDir, 'a2a-processed-ids.json'),
|
|
628
|
+
});
|
|
629
|
+
}
|
|
630
|
+
return this.a2aProcessedIds;
|
|
631
|
+
}
|
|
632
|
+
/** Lazily construct + cache the outstanding-prompt tracker (anti-ping-pong). */
|
|
633
|
+
getOrCreateMentorOutstanding() {
|
|
634
|
+
if (!this.mentorOutstanding) {
|
|
635
|
+
this.mentorOutstanding = new OutstandingPromptTracker({
|
|
636
|
+
filePath: path.join(this.config.stateDir, 'mentor-outstanding-prompts.json'),
|
|
637
|
+
});
|
|
638
|
+
}
|
|
639
|
+
return this.mentorOutstanding;
|
|
640
|
+
}
|
|
641
|
+
/**
|
|
642
|
+
* Install the mentor-reply recipient hook on the mentor-bot adapter. Called from
|
|
643
|
+
* getOrCreateMentorBot once the adapter is up. The hook routes role=`mentor-reply`
|
|
644
|
+
* from Codey to a handler that (1) clears the outstanding-prompt entry by `corr`
|
|
645
|
+
* (so the next mentor tick can send again), and (2) persists the reply to a
|
|
646
|
+
* jsonl file Stage-B forensics reads. This is the capability-handle invariant from
|
|
647
|
+
* the spec: the reply-ingestion path CANNOT call spawnStageA / deliverToMentee /
|
|
648
|
+
* scheduler / Threadline — it only writes the reply + clears tracking.
|
|
649
|
+
*/
|
|
650
|
+
installMentorReceiverHook(bot, mentorBotId) {
|
|
651
|
+
const cfg = this.getMentorConfigSnapshot();
|
|
652
|
+
if (!cfg.menteeBotId)
|
|
653
|
+
return;
|
|
654
|
+
const recipientCfg = {
|
|
655
|
+
localAgent: 'echo',
|
|
656
|
+
knownAgents: { [`instar-${cfg.menteeFramework}`]: { botId: cfg.menteeBotId } },
|
|
657
|
+
acceptRoles: { [`instar-${cfg.menteeFramework}`]: ['mentor-reply'] },
|
|
658
|
+
skewWindowMs: 24 * 60 * 60 * 1000,
|
|
659
|
+
maxVersion: A2A_VERSION,
|
|
660
|
+
};
|
|
661
|
+
const outstanding = this.getOrCreateMentorOutstanding();
|
|
662
|
+
const replyJsonl = path.join(this.config.stateDir, 'mentor-replies.jsonl');
|
|
663
|
+
this.mentorReplyJsonlPath = replyJsonl;
|
|
664
|
+
const mentorReplyHandler = async (msg, ctx) => {
|
|
665
|
+
// (1) Clear the outstanding-prompt by corr (the next tick can send again).
|
|
666
|
+
const had = outstanding.clearByCorr(msg.corr);
|
|
667
|
+
if (!had) {
|
|
668
|
+
// Spurious / late reply (no outstanding match). Still persist it for forensics.
|
|
669
|
+
console.warn(`[mentor] mentor-reply for unknown corr=${msg.corr} (late after orphan-sweep?); persisting anyway`);
|
|
670
|
+
}
|
|
671
|
+
// (2) Persist the reply for Stage-B (append-only JSONL). Capability-handle
|
|
672
|
+
// invariant: this is the ONLY outbound effect; no spawn/deliver/schedule.
|
|
673
|
+
try {
|
|
674
|
+
fs.mkdirSync(path.dirname(replyJsonl), { recursive: true });
|
|
675
|
+
const row = {
|
|
676
|
+
ts: Date.now(),
|
|
677
|
+
fromAgent: msg.from,
|
|
678
|
+
corr: msg.corr,
|
|
679
|
+
replyId: msg.id,
|
|
680
|
+
topicId: ctx.topicId,
|
|
681
|
+
message: msg.body,
|
|
682
|
+
};
|
|
683
|
+
fs.appendFileSync(replyJsonl, JSON.stringify(row) + '\n', 'utf-8');
|
|
684
|
+
}
|
|
685
|
+
catch (err) {
|
|
686
|
+
console.warn('[mentor] mentor-reply persist failed (non-fatal):', err instanceof Error ? err.message : String(err));
|
|
687
|
+
}
|
|
688
|
+
};
|
|
689
|
+
const hook = buildAgentMessageHook({
|
|
690
|
+
config: recipientCfg,
|
|
691
|
+
ledger: this.getOrCreateA2aLedger(),
|
|
692
|
+
processedIds: this.getOrCreateA2aProcessedIds(),
|
|
693
|
+
roleHandlers: new Map([['mentor-reply', mentorReplyHandler]]),
|
|
694
|
+
});
|
|
695
|
+
bot.setAgentMessageHook(hook);
|
|
696
|
+
}
|
|
697
|
+
/** Snapshot of mentor config for use outside the runner's getConfig closure. */
|
|
698
|
+
getMentorConfigSnapshot() {
|
|
699
|
+
return {
|
|
700
|
+
...DEFAULT_MENTOR_CONFIG,
|
|
701
|
+
...(this.config.mentor ?? {}),
|
|
702
|
+
};
|
|
703
|
+
}
|
|
565
704
|
buildMentorRunner(ledger, options, serverDataDir) {
|
|
566
705
|
const getConfig = () => ({
|
|
567
706
|
...DEFAULT_MENTOR_CONFIG,
|
|
@@ -665,20 +804,83 @@ export class AgentServer {
|
|
|
665
804
|
return self.mentorRunsToday < cfg.maxRoundsPerDay;
|
|
666
805
|
},
|
|
667
806
|
getSurface: (framework) => ({ framework, threadlineHistory: '' }),
|
|
668
|
-
//
|
|
669
|
-
//
|
|
670
|
-
//
|
|
671
|
-
//
|
|
672
|
-
//
|
|
673
|
-
|
|
807
|
+
// Live delivery via the agent-to-agent Telegram comms primitive (spec
|
|
808
|
+
// MENTOR-LIVE-READINESS §Fix 2b — Justin's substrate correction replaced the
|
|
809
|
+
// earlier file-outbox design). Echo's mentor-bot (a second TelegramAdapter, gated
|
|
810
|
+
// on mentor.botToken being set) sends a tagged [a2a:…] message to the mentee's
|
|
811
|
+
// bot in a dedicated mentor topic. The anti-spawn-loop discipline lives in the
|
|
812
|
+
// primitive (one outbound producer per role, no auto-reply, audit ledger). If
|
|
813
|
+
// the bot isn't configured yet, this no-ops with a log — the dark default.
|
|
814
|
+
deliverToMentee: async (framework, message) => {
|
|
815
|
+
const cfg = getConfig();
|
|
816
|
+
if (!cfg.botToken || !cfg.menteeBotId || !cfg.menteeChatId || cfg.menteeTopicId === undefined) {
|
|
817
|
+
console.warn(`[mentor] deliverToMentee skipped — mentor-bot config incomplete (need mentor.botToken + menteeBotId + menteeChatId + menteeTopicId; framework=${framework})`);
|
|
818
|
+
return;
|
|
819
|
+
}
|
|
820
|
+
const menteeAgent = `instar-${framework}`;
|
|
821
|
+
// Anti-ping-pong (spec §Fix 2b item 4 + Justin's original concern). Refuse to
|
|
822
|
+
// send a new prompt while a prior one is unanswered within replyTimeoutMs.
|
|
823
|
+
const outstanding = self.getOrCreateMentorOutstanding();
|
|
824
|
+
const orphans = outstanding.sweepExpired();
|
|
825
|
+
for (const orphan of orphans) {
|
|
826
|
+
if (outstanding.recordOrphanNotified(orphan.corr)) {
|
|
827
|
+
console.warn(`[mentor] orphaned prompt — no reply within ${orphan.ageMs}ms (corr=${orphan.corr}, mentee=${orphan.mentee})`);
|
|
828
|
+
try {
|
|
829
|
+
DegradationReporter.getInstance().report({
|
|
830
|
+
feature: 'mentor.reply-orphaned',
|
|
831
|
+
primary: 'mentor receives Codey reply within replyTimeoutMs',
|
|
832
|
+
fallback: 'tick continues; no auto-resend; Stage-B sees the routed-sent row + no matching reply row',
|
|
833
|
+
reason: `outstanding prompt corr=${orphan.corr} aged ${orphan.ageMs}ms without a mentor-reply`,
|
|
834
|
+
impact: 'mentor cycle silently lost a reply; next tick allowed to retry',
|
|
835
|
+
});
|
|
836
|
+
}
|
|
837
|
+
catch { /* best-effort */ }
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
const check = outstanding.canSendTo(menteeAgent);
|
|
841
|
+
if (!check.ok) {
|
|
842
|
+
console.warn(`[mentor] deliverToMentee deferred — prior-prompt-in-flight (corr=${check.outstandingCorr}, sentAt=${check.sentAt})`);
|
|
843
|
+
return;
|
|
844
|
+
}
|
|
845
|
+
const bot = self.getOrCreateMentorBot(cfg.botToken, cfg.menteeChatId);
|
|
846
|
+
if (!bot)
|
|
847
|
+
return;
|
|
848
|
+
const ledger = self.getOrCreateA2aLedger();
|
|
849
|
+
const corr = `mp-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
|
|
674
850
|
try {
|
|
675
|
-
const
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
851
|
+
const result = await sendAgentMessage({
|
|
852
|
+
fromAgent: 'echo',
|
|
853
|
+
toAgent: menteeAgent,
|
|
854
|
+
role: 'mentor',
|
|
855
|
+
toTopicId: cfg.menteeTopicId,
|
|
856
|
+
message,
|
|
857
|
+
id: corr,
|
|
858
|
+
correlationId: corr,
|
|
859
|
+
}, {
|
|
860
|
+
send: async (topicId, text) => {
|
|
861
|
+
try {
|
|
862
|
+
const id = await bot.sendToTopic(topicId, text);
|
|
863
|
+
return { ok: true, messageId: String(id ?? '') };
|
|
864
|
+
}
|
|
865
|
+
catch (err) {
|
|
866
|
+
return { ok: false, error: err };
|
|
867
|
+
}
|
|
868
|
+
},
|
|
869
|
+
appendAudit: (row) => ledger.appendSent(row),
|
|
870
|
+
now: () => Date.now(),
|
|
871
|
+
mintId: () => corr,
|
|
872
|
+
allowedRoles: new Set(['mentor']),
|
|
873
|
+
botToken: cfg.botToken,
|
|
874
|
+
fromBotId: cfg.botToken.split(':')[0],
|
|
875
|
+
toBotId: cfg.menteeBotId,
|
|
876
|
+
});
|
|
877
|
+
if (result.ok) {
|
|
878
|
+
// Mark only on successful send — a failed send doesn't owe a reply.
|
|
879
|
+
outstanding.markSent(corr, menteeAgent);
|
|
880
|
+
}
|
|
679
881
|
}
|
|
680
882
|
catch (err) {
|
|
681
|
-
console.warn('[mentor] deliverToMentee
|
|
883
|
+
console.warn('[mentor] deliverToMentee send failed (non-fatal):', err instanceof Error ? err.message : String(err));
|
|
682
884
|
}
|
|
683
885
|
},
|
|
684
886
|
onTickRan: () => {
|
|
@@ -879,6 +1081,18 @@ export class AgentServer {
|
|
|
879
1081
|
* Closes keep-alive connections after a timeout to prevent hanging.
|
|
880
1082
|
*/
|
|
881
1083
|
async stop() {
|
|
1084
|
+
// Stop the mentor bot adapter first (it has its own poll loop + state files
|
|
1085
|
+
// under the subDir; clean shutdown avoids stranded background work).
|
|
1086
|
+
if (this.mentorBotAdapter) {
|
|
1087
|
+
try {
|
|
1088
|
+
await this.mentorBotAdapter.stop();
|
|
1089
|
+
}
|
|
1090
|
+
catch (err) {
|
|
1091
|
+
console.warn('[mentor] mentor-bot adapter stop raised:', err);
|
|
1092
|
+
}
|
|
1093
|
+
this.mentorBotAdapter = null;
|
|
1094
|
+
this.mentorBotAdapterToken = null;
|
|
1095
|
+
}
|
|
882
1096
|
// Stop the Layer 3 sentinel BEFORE the WebSocket manager — the
|
|
883
1097
|
// sentinel's SSE subscription needs an alive wsManager to clean up
|
|
884
1098
|
// its listener. Order: sentinel → wsManager → server.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentServer.js","sourceRoot":"","sources":["../../src/server/AgentServer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AgentServer.js","sourceRoot":"","sources":["../../src/server/AgentServer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-05-
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-05-28T01:00:11.494Z",
|
|
5
|
+
"instarVersion": "1.3.41",
|
|
6
6
|
"entryCount": 193,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -1457,7 +1457,7 @@
|
|
|
1457
1457
|
"type": "subsystem",
|
|
1458
1458
|
"domain": "server",
|
|
1459
1459
|
"sourcePath": "src/server/AgentServer.ts",
|
|
1460
|
-
"contentHash": "
|
|
1460
|
+
"contentHash": "d97b98638cccf4bd66b46d2d49615a5f5a416eebddf6bcae7ab3473800f02990",
|
|
1461
1461
|
"since": "2025-01-01"
|
|
1462
1462
|
},
|
|
1463
1463
|
"subsystem:session-manager": {
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Instar Upgrade Guide — NEXT
|
|
2
|
+
|
|
3
|
+
<!-- bump: patch -->
|
|
4
|
+
|
|
5
|
+
## What Changed
|
|
6
|
+
|
|
7
|
+
**Mentor consumer — sender wiring.** The mentor's `deliverToMentee` is rewired from the
|
|
8
|
+
legacy file-outbox onto the new agent-to-agent Telegram comms primitive (shipping in pieces
|
|
9
|
+
across previous releases). Lazily constructs a second TelegramAdapter for the mentor bot
|
|
10
|
+
(using the multi-instance subDir + suppress-Lifeline support from earlier increments), then
|
|
11
|
+
calls `sendAgentMessage` with role `'mentor'`. The runtime anti-loop guard physically
|
|
12
|
+
prevents sending any other role; bot-token scrubbing on errors is inherited.
|
|
13
|
+
|
|
14
|
+
Gated on four new `MentorConfig` fields (`botToken`, `menteeBotId`, `menteeChatId`,
|
|
15
|
+
`menteeTopicId`) — all default undefined, so the mentor stays dark until an operator
|
|
16
|
+
explicitly configures the bot. The pre-existing `dailySpendCapUsd` is marked
|
|
17
|
+
`@deprecated`; a future PR retires it along with the legacy `mentor-outbox/` files.
|
|
18
|
+
|
|
19
|
+
## What to Tell Your User
|
|
20
|
+
|
|
21
|
+
- Plumbing for the mentor feature — the delivery path now goes through the new agent-to-agent Telegram channel instead of the old file-based outbox, but stays completely dark until you configure a dedicated mentor bot. A later update adds a one-button setup flow for that.
|
|
22
|
+
|
|
23
|
+
## Summary of New Capabilities
|
|
24
|
+
|
|
25
|
+
| Capability | How to Use |
|
|
26
|
+
|-----------|-----------|
|
|
27
|
+
| Mentor sender wiring (dark) | Internal — `MentorConfig` gains `botToken`/`menteeBotId`/`menteeChatId`/`menteeTopicId` (all undefined by default); when all four are set, `deliverToMentee` sends via the mentor bot through `sendAgentMessage` instead of the legacy file-outbox |
|
|
28
|
+
|
|
29
|
+
## Evidence
|
|
30
|
+
|
|
31
|
+
**Net-new groundwork, not a bug fix.** Coverage strategy: the `sendAgentMessage` path is
|
|
32
|
+
fully covered by previous PRs (5 tests for the send + audit + anti-loop + token-scrub);
|
|
33
|
+
the multi-instance TelegramAdapter is covered by previous PRs (3 tests, including the
|
|
34
|
+
load-bearing "primary paths byte-for-byte unchanged" assertion); marker / routing /
|
|
35
|
+
cycle-detection by the earliest PR (20 tests). The AgentServer-level lazy mentor-bot
|
|
36
|
+
construction is dark by default — the bot-setup live flow in the next PR exercises it.
|
|
37
|
+
`tsc --noEmit` clean.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Instar Upgrade Guide — NEXT
|
|
2
|
+
|
|
3
|
+
<!-- bump: patch -->
|
|
4
|
+
|
|
5
|
+
## What Changed
|
|
6
|
+
|
|
7
|
+
**Mentor consumer — receiver wiring + anti-ping-pong tracker.** Closes the mentor round-trip
|
|
8
|
+
on Echo's side. Three coupled additions, all dark at the same `mentor.botToken` gate as the
|
|
9
|
+
prior PR (until the bot is configured, none of this runs):
|
|
10
|
+
|
|
11
|
+
- A new `OutstandingPromptTracker` — per-mentee, persistent across server restart — that
|
|
12
|
+
refuses to send a new mentor prompt while a prior one is in flight within
|
|
13
|
+
`replyTimeoutMs` (default 20 min, > the 15-min tick interval). This makes the original
|
|
14
|
+
"ping-pong" concern structurally impossible at the cadence layer.
|
|
15
|
+
- A `mentor-reply` role-handler installed on the mentor-bot adapter via the receiver hook
|
|
16
|
+
from the prior PR. When Codey replies, the handler clears the outstanding-prompt by
|
|
17
|
+
correlation id + persists the reply to `mentor-replies.jsonl` for Stage-B forensics.
|
|
18
|
+
The handler's closure has minimal capability — it cannot reach `spawnStageA` / scheduler
|
|
19
|
+
/ `deliverToMentee` / Threadline (structural anti-loop invariant).
|
|
20
|
+
- `deliverToMentee` integrates the tracker: sweeps orphans on each call + surfaces each
|
|
21
|
+
one as a deduped `DegradationReporter` event (silent reply-loss is observable). Marks
|
|
22
|
+
on successful send; defers if prior-prompt-in-flight.
|
|
23
|
+
|
|
24
|
+
## What to Tell Your User
|
|
25
|
+
|
|
26
|
+
- Plumbing for the mentor feature — your concern about agents bouncing messages back and forth in a loop is now structurally impossible at the timing layer. Echo cannot send a new mentor message while it's still waiting on the prior reply, and if a reply never arrives an alert is raised instead of a silent retry. Stays completely dark until the mentor bot is configured.
|
|
27
|
+
|
|
28
|
+
## Summary of New Capabilities
|
|
29
|
+
|
|
30
|
+
| Capability | How to Use |
|
|
31
|
+
|-----------|-----------|
|
|
32
|
+
| Mentor receiver + anti-ping-pong (dark) | Internal — `OutstandingPromptTracker` (per-mentee persistent state) blocks re-sends while a prior is in flight; mentor-reply role-handler clears the tracker on reply; orphan-sweep emits one deduped `DegradationReporter` event per orphaned correlation id |
|
|
33
|
+
|
|
34
|
+
## Evidence
|
|
35
|
+
|
|
36
|
+
**Net-new groundwork, not a bug fix.** 10 new unit tests for `OutstandingPromptTracker`,
|
|
37
|
+
all green: anti-ping-pong assertion (markSent → canSendTo returns prior-prompt-in-flight);
|
|
38
|
+
clearByCorr happy + spurious; cross-mentee non-blocking; persistence across re-open
|
|
39
|
+
(server restart preserves in-flight state); reply-timeout sweep; sweepExpired returns
|
|
40
|
+
orphans; orphan-notify idempotency (don't re-spam the same orphan-episode); corrupt-file
|
|
41
|
+
recovery starts fresh. The receiver wiring + tracker integration in `AgentServer.deliverToMentee`
|
|
42
|
+
is the dark layer that the bot-setup live flow will exercise in the next PR.
|
|
43
|
+
`tsc --noEmit` clean. 50 mentor-stack tests across the staged build, all green.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Side-Effects Review — mentor consumer: receiver wiring + outstanding-prompt tracker (PR 3c-2)
|
|
2
|
+
|
|
3
|
+
**Spec:** `docs/specs/MENTOR-LIVE-READINESS-SPEC.md` §Fix 2b "Implementation surface"
|
|
4
|
+
item 4 + the receiver-handler wiring + Justin's anti-ping-pong concern (which Fix 1's
|
|
5
|
+
removal made THE real cadence gate). PR 3 of the staged build, part c-2.
|
|
6
|
+
**Change:** Three coupled additions that close the mentor round-trip:
|
|
7
|
+
1. `OutstandingPromptTracker` — anti-ping-pong gate (refuse to send a new prompt while a
|
|
8
|
+
prior is in flight within `replyTimeoutMs`); persistent across server restart.
|
|
9
|
+
2. Mentor-reply role-handler installed on the mentor-bot adapter — clears outstanding by
|
|
10
|
+
`corr` + persists the reply to `mentor-replies.jsonl` for Stage-B forensics.
|
|
11
|
+
3. `deliverToMentee` integrates the tracker (sweep + check + mark on send) + emits a
|
|
12
|
+
`DegradationReporter` event for each orphan (deduped per `corr`).
|
|
13
|
+
|
|
14
|
+
**Ships dark** at the same gate as PR 3c-1 — until `mentor.botToken` + the three mentee
|
|
15
|
+
fields are set, the mentor-bot isn't constructed and none of this runs.
|
|
16
|
+
**Files:** `src/scheduler/OutstandingPromptTracker.ts` (new), `src/server/AgentServer.ts`
|
|
17
|
+
(receiver-hook installation + tracker wiring), `tests/unit/scheduler/OutstandingPromptTracker.test.ts` (new, 10).
|
|
18
|
+
|
|
19
|
+
## What changed
|
|
20
|
+
|
|
21
|
+
1. **`OutstandingPromptTracker`** (new): pure in-memory + small JSON persistence via
|
|
22
|
+
`SafeFsExecutor.atomicWriteJsonSync`. Per-mentee. Key methods: `canSendTo(mentee)`
|
|
23
|
+
returns `{ok:true}` or `{ok:false, reason:'prior-prompt-in-flight'}`; `markSent(corr,
|
|
24
|
+
mentee)`; `clearByCorr(corr)`; `sweepExpired()` returns orphans; `recordOrphanNotified(corr)`
|
|
25
|
+
dedups the orphan notification per `corr`. Corrupt-file recovery starts fresh (don't
|
|
26
|
+
crash the mentor on a bad state file).
|
|
27
|
+
2. **Mentor-reply receiver hook** — installed on the mentor-bot adapter via
|
|
28
|
+
`setAgentMessageHook` + `buildAgentMessageHook` (PR 3b composer) inside the existing
|
|
29
|
+
`getOrCreateMentorBot` lazy construction. The recipient config (built per-mentee from
|
|
30
|
+
`mentor.menteeFramework` + `mentor.menteeBotId`) accepts ONLY `mentor-reply` from
|
|
31
|
+
`instar-<framework>`. The role-handler:
|
|
32
|
+
- Calls `outstanding.clearByCorr(msg.corr)`. Logs a warning if no outstanding match
|
|
33
|
+
(spurious / late reply after orphan-sweep).
|
|
34
|
+
- Appends the reply to `mentor-replies.jsonl` (append-only; Stage-B forensics reads
|
|
35
|
+
this in a future PR).
|
|
36
|
+
- **Capability-handle invariant** (spec): the handler's closure has access to
|
|
37
|
+
`outstanding`, the reply jsonl path, and nothing else. No `spawnStageA`, no
|
|
38
|
+
`deliverToMentee`, no scheduler, no Threadline — structurally unreachable.
|
|
39
|
+
3. **`deliverToMentee`** integrates the tracker:
|
|
40
|
+
- `sweepExpired()` on every call → for each orphan, emit ONE `DegradationReporter`
|
|
41
|
+
event (deduped per `corr` via `recordOrphanNotified`).
|
|
42
|
+
- `canSendTo(menteeAgent)` — if `{ok:false}`, log + return (defer this tick).
|
|
43
|
+
- On successful send, `markSent(corr, mentee)`.
|
|
44
|
+
|
|
45
|
+
## The seven questions
|
|
46
|
+
|
|
47
|
+
1. **Over-block.** The tracker correctly defers only when a prior prompt to the SAME
|
|
48
|
+
mentee is in flight. Different mentees are not blocked. Aged-out outstanding is
|
|
49
|
+
swept first → caller proceeds.
|
|
50
|
+
2. **Under-block.** `markSent` only fires on successful send (a failed send doesn't owe
|
|
51
|
+
a reply). The reply-handler clears by `corr` (exact match). Orphan sweep prevents
|
|
52
|
+
indefinite blockage if a reply is silently lost; the degradation event makes that
|
|
53
|
+
silent-loss observable.
|
|
54
|
+
3. **Level-of-abstraction fit.** Tracker is pure logic + tiny persistence; the handler
|
|
55
|
+
closure has minimal-capability access (clear + append); the wiring in `deliverToMentee`
|
|
56
|
+
is the integration point. No new policy layers.
|
|
57
|
+
4. **Signal vs authority.** Tracker is the cadence authority; the degradation event is
|
|
58
|
+
the signal (with dedup so the same orphan-episode doesn't re-fire).
|
|
59
|
+
5. **Interactions.** Receiver-hook is installed only on the mentor-bot adapter (not the
|
|
60
|
+
primary) — primary's behavior is unaffected. Capability-handle invariant means the
|
|
61
|
+
reply path can't accidentally close the loop. The tracker file is a new path under
|
|
62
|
+
stateDir; corrupt-file recovery is tested.
|
|
63
|
+
6. **External surfaces.** None new. `mentor-replies.jsonl` + `mentor-outstanding-prompts.json`
|
|
64
|
+
+ `a2a-processed-ids.json` are new state files (per-agent, dark by default).
|
|
65
|
+
7. **Rollback cost.** Trivial — revert removes the tracker module + the additive wiring.
|
|
66
|
+
The reply-jsonl + tracker JSON are forward-only; old state is harmless if left on disk.
|
|
67
|
+
|
|
68
|
+
## Testing
|
|
69
|
+
|
|
70
|
+
10 new unit tests for `OutstandingPromptTracker`, all green:
|
|
71
|
+
- empty / canSendTo→ok; markSent → canSendTo prior-prompt-in-flight (the ANTI-PING-PONG
|
|
72
|
+
assertion); clearByCorr lets next send proceed; clearByCorr on non-existent corr →
|
|
73
|
+
false (spurious); different mentee not blocked; persistence across re-open (server
|
|
74
|
+
restart preserves in-flight state); reply-timeout sweeps + caller can proceed;
|
|
75
|
+
sweepExpired returns orphans; recordOrphanNotified idempotent (no re-spam); corrupt-file
|
|
76
|
+
recovery starts fresh.
|
|
77
|
+
|
|
78
|
+
Coverage strategy: the integration in `AgentServer.deliverToMentee` (tracker + receiver
|
|
79
|
+
hook installation) is the dark-default wiring layer. The primitive sides
|
|
80
|
+
(`sendAgentMessage`, `buildAgentMessageHook`, `AgentTelegramLedger`, `ProcessedIdStore`)
|
|
81
|
+
are fully covered by prior PRs (PR 1: 20; PR 2b: 5; PR 3a: 8; PR 3b: 7 = 40 a2a tests
|
|
82
|
+
+ this PR's 10 tracker tests = **50 mentor-stack tests, all green**). The end-to-end
|
|
83
|
+
mentor round-trip is the live-test deliverable in PR 3c-3 (bot-setup + supervised cycle).
|
|
84
|
+
`tsc --noEmit` clean.
|
|
85
|
+
|
|
86
|
+
## Migration parity
|
|
87
|
+
|
|
88
|
+
None in this PR (separate PR 3c-3 ships the migration: `migrateRetireDeadMentorConfig`
|
|
89
|
+
for `dailySpendCapUsd` + `migrateRetireMentorOutbox` for the legacy file-outbox).
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Side-Effects Review — mentor consumer: sender wiring (PR 3c-1)
|
|
2
|
+
|
|
3
|
+
**Spec:** `docs/specs/MENTOR-LIVE-READINESS-SPEC.md` §Fix 2b (mentor consumes the
|
|
4
|
+
primitive). PR 3 of the staged build, part c-1.
|
|
5
|
+
**Change:** Rewire the mentor's `deliverToMentee` from the file-outbox to
|
|
6
|
+
`sendAgentMessage` (PR 2b) via a lazily-constructed second TelegramAdapter (PR 2a's
|
|
7
|
+
multi-instance subDir + suppressLifelineAutoCreate). **Ships dark** — gated on three
|
|
8
|
+
config fields none of which default to anything (`mentor.botToken`, `mentor.menteeBotId`,
|
|
9
|
+
`mentor.menteeChatId`, `mentor.menteeTopicId`); without all four set, `deliverToMentee`
|
|
10
|
+
logs + no-ops, identical to the prior dormant state.
|
|
11
|
+
**Files:** `src/server/AgentServer.ts` (rewire + lazy mentor-bot helpers + cleanup in
|
|
12
|
+
`stop()`), `src/scheduler/MentorOnboardingRunner.ts` (new optional config fields on
|
|
13
|
+
`MentorConfig`).
|
|
14
|
+
|
|
15
|
+
## What changed
|
|
16
|
+
|
|
17
|
+
1. **`MentorConfig`** gains optional `botToken`, `menteeBotId`, `menteeChatId`,
|
|
18
|
+
`menteeTopicId` (all undefined by default). The pre-existing `dailySpendCapUsd` is
|
|
19
|
+
marked `@deprecated` (removed by a future `migrateRetireDeadMentorConfig` in PR 3c-3).
|
|
20
|
+
2. **`AgentServer`**:
|
|
21
|
+
- New private fields: `mentorBotAdapter` + `mentorBotAdapterToken` (per-token cache),
|
|
22
|
+
`a2aLedger`.
|
|
23
|
+
- `getOrCreateMentorBot(botToken, menteeChatId)`: lazily constructs the second
|
|
24
|
+
`TelegramAdapter` with `subDir: 'agent-telegram/mentor-bot'` + `suppressLifelineAutoCreate: true`.
|
|
25
|
+
Token-change reconfigures (old adapter stopped first).
|
|
26
|
+
- `getOrCreateA2aLedger()`: lazily constructs `AgentTelegramLedger` at default paths.
|
|
27
|
+
- `deliverToMentee` is now **async** and:
|
|
28
|
+
- Returns immediately with a warning if any of the four required mentor-bot config
|
|
29
|
+
fields is unset (the dark default).
|
|
30
|
+
- Otherwise calls `sendAgentMessage` with role `'mentor'`, body = the prompt, audit
|
|
31
|
+
routed through the a2a ledger.
|
|
32
|
+
- `stop()` now stops the mentor-bot adapter first (clean shutdown of its poll loop +
|
|
33
|
+
state files under the subDir).
|
|
34
|
+
|
|
35
|
+
## The seven questions
|
|
36
|
+
|
|
37
|
+
1. **Over-block.** The dark default (no mentor-bot config) is the safe over-block — until
|
|
38
|
+
the operator explicitly configures the four fields, the mentor cannot send anything.
|
|
39
|
+
2. **Under-block.** The anti-loop guard is enforced by `sendAgentMessage`'s
|
|
40
|
+
`allowedRoles` (Echo's mentor sender is constructed with `new Set(['mentor'])` — it
|
|
41
|
+
physically cannot send any other role). Bot-token scrubbing on errors is inherited
|
|
42
|
+
from PR 2b.
|
|
43
|
+
3. **Level-of-abstraction fit.** The wiring layer composes existing primitives (`sendAgentMessage`,
|
|
44
|
+
`TelegramAdapter` with subDir, `AgentTelegramLedger`). No new policy here.
|
|
45
|
+
4. **Signal vs authority.** N/A new — `sendAgentMessage` retains its result authority
|
|
46
|
+
(ok/failed/role-refused).
|
|
47
|
+
5. **Interactions.** The mentor-bot adapter shares NO state files with the primary bot
|
|
48
|
+
(PR 2a's subDir isolation — primary paths byte-for-byte unchanged, verified by PR 2a's
|
|
49
|
+
test). The primary bot's behavior is unaffected. If the mentor bot fails to construct
|
|
50
|
+
(bad token), the warning is logged and `deliverToMentee` returns — the mentor tick
|
|
51
|
+
continues, just without delivery.
|
|
52
|
+
6. **External surfaces.** None new in this PR. PR 3c-3 adds `/mentor/bot-setup` routes
|
|
53
|
+
+ the Secret-Drop flow for entering the bot token.
|
|
54
|
+
7. **Rollback cost.** Trivial — revert restores file-outbox `deliverToMentee`. No data,
|
|
55
|
+
no migration in this PR (the file-outbox retirement migration ships with PR 3c-2 or
|
|
56
|
+
3c-3).
|
|
57
|
+
|
|
58
|
+
## Testing
|
|
59
|
+
|
|
60
|
+
`tsc --noEmit` clean. Coverage strategy for this PR (intentional + honest):
|
|
61
|
+
- The **`sendAgentMessage` path** (the actual marker formation, send, audit, anti-loop
|
|
62
|
+
role refusal, token scrub) is fully covered by PR 2b's 5 unit tests + the 20 marker /
|
|
63
|
+
routing / cycle-detection tests from PR 1.
|
|
64
|
+
- The **multi-instance TelegramAdapter** (the second-bot construction with subDir +
|
|
65
|
+
suppressLifelineAutoCreate) is covered by PR 2a's 3 tests (incl. the "primary paths
|
|
66
|
+
byte-for-byte unchanged" load-bearing safety assertion).
|
|
67
|
+
- The **mentor-bot lazy construction** in `AgentServer` is dark by default and the same
|
|
68
|
+
shape that PR 3c-3's bot-setup route will live-exercise.
|
|
69
|
+
- A dedicated integration test for `deliverToMentee` end-to-end (with a stubbed
|
|
70
|
+
TelegramAdapter send) ships with PR 3c-2 when the receiver-side handler registration
|
|
71
|
+
lands and the round-trip becomes meaningful.
|
|
72
|
+
|
|
73
|
+
## Migration parity
|
|
74
|
+
|
|
75
|
+
None in this PR. The new MentorConfig fields are all optional + default undefined. The
|
|
76
|
+
`dailySpendCapUsd` deprecation note ships now; its actual removal (`migrateRetireDeadMentorConfig`)
|
|
77
|
+
+ the file-outbox cleanup (`migrateRetireMentorOutbox`) land with PR 3c-2 / 3c-3 per
|
|
78
|
+
the spec's §Migration parity.
|