instar 1.3.237 → 1.3.238
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 +35 -2
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +8 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/types.d.ts +37 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/monitoring/GeminiLoopRunner.d.ts +93 -0
- package/dist/monitoring/GeminiLoopRunner.d.ts.map +1 -0
- package/dist/monitoring/GeminiLoopRunner.js +134 -0
- package/dist/monitoring/GeminiLoopRunner.js.map +1 -0
- package/dist/monitoring/geminiLoopProduction.d.ts +62 -0
- package/dist/monitoring/geminiLoopProduction.d.ts.map +1 -0
- package/dist/monitoring/geminiLoopProduction.js +124 -0
- package/dist/monitoring/geminiLoopProduction.js.map +1 -0
- package/dist/server/AgentServer.d.ts +8 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +53 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/CapabilityIndex.d.ts.map +1 -1
- package/dist/server/CapabilityIndex.js +1 -0
- package/dist/server/CapabilityIndex.js.map +1 -1
- package/dist/server/routes.d.ts +3 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +45 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +47 -47
- package/upgrades/1.3.238.md +68 -0
- package/upgrades/side-effects/gemini-loop-driver-wiring.md +59 -0
- package/upgrades/side-effects/parallel-activity-coherence.md +9 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GeminiLoopRunner (need-gem-002, increment 2) — the budget-gated, dark-by-default
|
|
3
|
+
* service that makes the GeminiLoopDriver invocable.
|
|
4
|
+
*
|
|
5
|
+
* A multi-turn gemini loop can run for minutes (several turns × a turn each), so
|
|
6
|
+
* it CANNOT block an HTTP request. `startRun` admits a run (enabled? under
|
|
7
|
+
* concurrency cap? budget ok?), kicks off `driver.run()` in the background, and
|
|
8
|
+
* returns a `runId` immediately; the result lands in a bounded in-memory registry
|
|
9
|
+
* retrievable via `getRun`. Ships DARK (`enabled: false`); the `developmentAgent`
|
|
10
|
+
* gate turns it on for dev agents only.
|
|
11
|
+
*
|
|
12
|
+
* Subscription auth is structural: the runner's spawn dep is the production
|
|
13
|
+
* transport spawn (`buildGeminiChildEnv` strips every billing var), so no run can
|
|
14
|
+
* introduce an API key.
|
|
15
|
+
*
|
|
16
|
+
* Spec: docs/specs/gemini-multi-turn-loop-driver.md
|
|
17
|
+
*/
|
|
18
|
+
import { randomUUID } from 'node:crypto';
|
|
19
|
+
import { GeminiLoopDriver, } from './GeminiLoopDriver.js';
|
|
20
|
+
export class GeminiLoopRunner {
|
|
21
|
+
config;
|
|
22
|
+
spawn;
|
|
23
|
+
captureHandle;
|
|
24
|
+
budgetGate;
|
|
25
|
+
now;
|
|
26
|
+
genId;
|
|
27
|
+
log;
|
|
28
|
+
runs = new Map();
|
|
29
|
+
activeCount = 0;
|
|
30
|
+
constructor(deps) {
|
|
31
|
+
this.config = deps.config;
|
|
32
|
+
this.spawn = deps.spawn;
|
|
33
|
+
this.captureHandle = deps.captureHandle;
|
|
34
|
+
this.budgetGate = deps.budgetGate;
|
|
35
|
+
this.now = deps.now ?? (() => Date.now());
|
|
36
|
+
this.genId = deps.genId ?? (() => randomUUID());
|
|
37
|
+
this.log = deps.log ?? (() => { });
|
|
38
|
+
}
|
|
39
|
+
isEnabled() {
|
|
40
|
+
return this.config.enabled === true;
|
|
41
|
+
}
|
|
42
|
+
activeRuns() {
|
|
43
|
+
return this.activeCount;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Admit + launch a run. Returns immediately with a runId; the loop runs in the
|
|
47
|
+
* background. Admission order: feature enabled → under concurrency cap → valid
|
|
48
|
+
* goal → budget gate open.
|
|
49
|
+
*/
|
|
50
|
+
startRun(req) {
|
|
51
|
+
if (!this.isEnabled())
|
|
52
|
+
return { ok: false, reason: 'disabled' };
|
|
53
|
+
if (this.activeCount >= this.config.maxConcurrent) {
|
|
54
|
+
return { ok: false, reason: 'at-capacity', detail: `maxConcurrent=${this.config.maxConcurrent}` };
|
|
55
|
+
}
|
|
56
|
+
const goalPrompt = (req.goalPrompt ?? '').trim();
|
|
57
|
+
if (!goalPrompt)
|
|
58
|
+
return { ok: false, reason: 'invalid', detail: 'goalPrompt is required' };
|
|
59
|
+
const gate = this.budgetGate();
|
|
60
|
+
if (!gate.ok)
|
|
61
|
+
return { ok: false, reason: 'budget', detail: gate.reason };
|
|
62
|
+
const runId = this.genId();
|
|
63
|
+
const model = (req.model ?? this.config.model) || this.config.model;
|
|
64
|
+
const maxTurns = Number.isInteger(req.maxTurns) && req.maxTurns > 0
|
|
65
|
+
? Math.min(req.maxTurns, this.config.maxTurns)
|
|
66
|
+
: this.config.maxTurns;
|
|
67
|
+
const record = {
|
|
68
|
+
runId,
|
|
69
|
+
status: 'running',
|
|
70
|
+
goalPrompt,
|
|
71
|
+
model,
|
|
72
|
+
maxTurns,
|
|
73
|
+
startedAt: this.now(),
|
|
74
|
+
};
|
|
75
|
+
this.runs.set(runId, record);
|
|
76
|
+
this.evictOldFinished();
|
|
77
|
+
this.activeCount += 1;
|
|
78
|
+
this.log(`[gemini-loop] run ${runId} started (model=${model}, maxTurns=${maxTurns})`);
|
|
79
|
+
// Fire-and-forget — do NOT await; the HTTP caller already has the runId.
|
|
80
|
+
void this.execute(record);
|
|
81
|
+
return { ok: true, runId };
|
|
82
|
+
}
|
|
83
|
+
getRun(runId) {
|
|
84
|
+
return this.runs.get(runId) ?? null;
|
|
85
|
+
}
|
|
86
|
+
listRuns() {
|
|
87
|
+
return [...this.runs.values()].sort((a, b) => b.startedAt - a.startedAt);
|
|
88
|
+
}
|
|
89
|
+
async execute(record) {
|
|
90
|
+
const driver = new GeminiLoopDriver({
|
|
91
|
+
spawn: this.spawn,
|
|
92
|
+
captureHandle: this.captureHandle,
|
|
93
|
+
budgetGate: this.budgetGate,
|
|
94
|
+
});
|
|
95
|
+
try {
|
|
96
|
+
const result = await driver.run({
|
|
97
|
+
model: record.model,
|
|
98
|
+
goalPrompt: record.goalPrompt,
|
|
99
|
+
maxTurns: record.maxTurns,
|
|
100
|
+
minTurnIntervalMs: this.config.minTurnIntervalMs,
|
|
101
|
+
doneSentinel: this.config.doneSentinel,
|
|
102
|
+
});
|
|
103
|
+
record.status = 'done';
|
|
104
|
+
record.result = result;
|
|
105
|
+
record.finishedAt = this.now();
|
|
106
|
+
this.log(`[gemini-loop] run ${record.runId} done (${result.stopReason}, ${result.turns.length} turns)`);
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
record.status = 'error';
|
|
110
|
+
record.error = err instanceof Error ? err.message : String(err);
|
|
111
|
+
record.finishedAt = this.now();
|
|
112
|
+
this.log(`[gemini-loop] run ${record.runId} error: ${record.error}`);
|
|
113
|
+
}
|
|
114
|
+
finally {
|
|
115
|
+
this.activeCount = Math.max(0, this.activeCount - 1);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/** Keep the registry bounded — drop the oldest FINISHED runs past the cap. */
|
|
119
|
+
evictOldFinished() {
|
|
120
|
+
if (this.runs.size <= this.config.maxRetainedRuns)
|
|
121
|
+
return;
|
|
122
|
+
const finished = [...this.runs.values()]
|
|
123
|
+
.filter((r) => r.status !== 'running')
|
|
124
|
+
.sort((a, b) => (a.finishedAt ?? a.startedAt) - (b.finishedAt ?? b.startedAt));
|
|
125
|
+
let over = this.runs.size - this.config.maxRetainedRuns;
|
|
126
|
+
for (const r of finished) {
|
|
127
|
+
if (over <= 0)
|
|
128
|
+
break;
|
|
129
|
+
this.runs.delete(r.runId);
|
|
130
|
+
over -= 1;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=GeminiLoopRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeminiLoopRunner.js","sourceRoot":"","sources":["../../src/monitoring/GeminiLoopRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Production wiring for the GeminiLoopDriver (need-gem-002, increment 2).
|
|
3
|
+
*
|
|
4
|
+
* Turns the injected-dependency engine (`GeminiLoopDriver`) into real
|
|
5
|
+
* subscription-auth gemini spawns:
|
|
6
|
+
* - `createGeminiLoopSpawn` — routes every turn through the gemini transport
|
|
7
|
+
* (`spawnGeminiAndWait` + `buildGeminiChildEnv`,
|
|
8
|
+
* which strips every billing env var → subscription
|
|
9
|
+
* OAuth is the only possible auth path).
|
|
10
|
+
* - `parseLatestGeminiSessionHandle` — pure parser of `gemini --list-sessions`
|
|
11
|
+
* output → the FRESHEST session's UUID (the one
|
|
12
|
+
* turn 1 just created). Min-age, not list order.
|
|
13
|
+
* - `createGeminiHandleCapture` — runs `--list-sessions` via the transport and
|
|
14
|
+
* parses it; returns null if no handle resolves
|
|
15
|
+
* (the engine then ABORTS rather than guessing).
|
|
16
|
+
* - `createQuotaBudgetGate` — wraps the existing QuotaTracker so a loop refuses
|
|
17
|
+
* to start / continue under load or spend pressure.
|
|
18
|
+
*
|
|
19
|
+
* Spec: docs/specs/gemini-multi-turn-loop-driver.md
|
|
20
|
+
*/
|
|
21
|
+
import type { GeminiLoopSpawn, GeminiLoopHandleCapture, GeminiLoopBudgetGate } from './GeminiLoopDriver.js';
|
|
22
|
+
/** Default per-turn spawn timeout (a single gemini turn). */
|
|
23
|
+
export declare const DEFAULT_GEMINI_TURN_TIMEOUT_MS = 180000;
|
|
24
|
+
/**
|
|
25
|
+
* Parse `gemini --list-sessions` stdout and return the FRESHEST session's UUID.
|
|
26
|
+
*
|
|
27
|
+
* Each session row looks like:
|
|
28
|
+
* ` 3. Remember the codeword... (Just now) [ef951c6e-49b4-49df-a8f0-b8aa62b4403f]`
|
|
29
|
+
* The age is the parenthesised group immediately before the `[uuid]` bracket
|
|
30
|
+
* (anchored there so parentheses inside the title don't interfere). We pick the
|
|
31
|
+
* MINIMUM age rather than trusting list order, so the handle is the session turn 1
|
|
32
|
+
* just created. Returns null when no row parses.
|
|
33
|
+
*/
|
|
34
|
+
export declare function parseLatestGeminiSessionHandle(stdout: string): string | null;
|
|
35
|
+
/**
|
|
36
|
+
* Production gemini spawn — every turn routes through the subscription-auth
|
|
37
|
+
* transport. `buildGeminiChildEnv()` strips all billing env vars, so no argv this
|
|
38
|
+
* receives can introduce an API key.
|
|
39
|
+
*/
|
|
40
|
+
export declare function createGeminiLoopSpawn(geminiPath: string, turnTimeoutMs?: number): GeminiLoopSpawn;
|
|
41
|
+
/**
|
|
42
|
+
* Production handle capture — after turn 1, list sessions and pick the freshest.
|
|
43
|
+
* Single-concurrency (`maxConcurrent: 1`) keeps this unambiguous: turn 1 just ran,
|
|
44
|
+
* so its session is the "Just now" / min-age row even if other gemini one-shots
|
|
45
|
+
* (e.g. cross-model review) created older sessions in the shared cwd.
|
|
46
|
+
*/
|
|
47
|
+
export declare function createGeminiHandleCapture(geminiPath: string, listTimeoutMs?: number): GeminiLoopHandleCapture;
|
|
48
|
+
/** Minimal slice of QuotaTracker the budget gate needs. */
|
|
49
|
+
export interface SpawnAdmissionSource {
|
|
50
|
+
shouldSpawnSession(): {
|
|
51
|
+
allowed: boolean;
|
|
52
|
+
reason: string;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Production budget gate — reuses the existing QuotaTracker spawn-admission
|
|
57
|
+
* decision (the same daily-spend / load-shedding signal every other instar spawn
|
|
58
|
+
* respects). Fails OPEN if no tracker is wired (the engine's own maxTurns +
|
|
59
|
+
* spawn-failure handling still bound the loop).
|
|
60
|
+
*/
|
|
61
|
+
export declare function createQuotaBudgetGate(quota: SpawnAdmissionSource | null | undefined): GeminiLoopBudgetGate;
|
|
62
|
+
//# sourceMappingURL=geminiLoopProduction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geminiLoopProduction.d.ts","sourceRoot":"","sources":["../../src/monitoring/geminiLoopProduction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAE/B,6DAA6D;AAC7D,eAAO,MAAM,8BAA8B,SAAU,CAAC;AAEtD;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY5E;AAkBD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,aAAa,GAAE,MAAuC,GACrD,eAAe,CAQjB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,aAAa,GAAE,MAAe,GAC7B,uBAAuB,CAiBzB;AAED,2DAA2D;AAC3D,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,IAAI;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GAC7C,oBAAoB,CAMtB"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Production wiring for the GeminiLoopDriver (need-gem-002, increment 2).
|
|
3
|
+
*
|
|
4
|
+
* Turns the injected-dependency engine (`GeminiLoopDriver`) into real
|
|
5
|
+
* subscription-auth gemini spawns:
|
|
6
|
+
* - `createGeminiLoopSpawn` — routes every turn through the gemini transport
|
|
7
|
+
* (`spawnGeminiAndWait` + `buildGeminiChildEnv`,
|
|
8
|
+
* which strips every billing env var → subscription
|
|
9
|
+
* OAuth is the only possible auth path).
|
|
10
|
+
* - `parseLatestGeminiSessionHandle` — pure parser of `gemini --list-sessions`
|
|
11
|
+
* output → the FRESHEST session's UUID (the one
|
|
12
|
+
* turn 1 just created). Min-age, not list order.
|
|
13
|
+
* - `createGeminiHandleCapture` — runs `--list-sessions` via the transport and
|
|
14
|
+
* parses it; returns null if no handle resolves
|
|
15
|
+
* (the engine then ABORTS rather than guessing).
|
|
16
|
+
* - `createQuotaBudgetGate` — wraps the existing QuotaTracker so a loop refuses
|
|
17
|
+
* to start / continue under load or spend pressure.
|
|
18
|
+
*
|
|
19
|
+
* Spec: docs/specs/gemini-multi-turn-loop-driver.md
|
|
20
|
+
*/
|
|
21
|
+
import { buildGeminiChildEnv, spawnGeminiAndWait, } from '../providers/adapters/gemini-cli/transport/geminiSpawn.js';
|
|
22
|
+
/** Default per-turn spawn timeout (a single gemini turn). */
|
|
23
|
+
export const DEFAULT_GEMINI_TURN_TIMEOUT_MS = 180_000;
|
|
24
|
+
/**
|
|
25
|
+
* Parse `gemini --list-sessions` stdout and return the FRESHEST session's UUID.
|
|
26
|
+
*
|
|
27
|
+
* Each session row looks like:
|
|
28
|
+
* ` 3. Remember the codeword... (Just now) [ef951c6e-49b4-49df-a8f0-b8aa62b4403f]`
|
|
29
|
+
* The age is the parenthesised group immediately before the `[uuid]` bracket
|
|
30
|
+
* (anchored there so parentheses inside the title don't interfere). We pick the
|
|
31
|
+
* MINIMUM age rather than trusting list order, so the handle is the session turn 1
|
|
32
|
+
* just created. Returns null when no row parses.
|
|
33
|
+
*/
|
|
34
|
+
export function parseLatestGeminiSessionHandle(stdout) {
|
|
35
|
+
const rowRe = /\(([^()]+)\)\s*\[([0-9a-fA-F-]{36})\]/g;
|
|
36
|
+
let best = null;
|
|
37
|
+
let m;
|
|
38
|
+
while ((m = rowRe.exec(stdout)) !== null) {
|
|
39
|
+
const ageSec = parseRelativeAgeSeconds(m[1]);
|
|
40
|
+
const uuid = m[2].toLowerCase();
|
|
41
|
+
if (!best || ageSec < best.ageSec) {
|
|
42
|
+
best = { uuid, ageSec };
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return best ? best.uuid : null;
|
|
46
|
+
}
|
|
47
|
+
/** Parse a gemini relative-age string ("Just now", "16 minutes ago") to seconds. */
|
|
48
|
+
function parseRelativeAgeSeconds(raw) {
|
|
49
|
+
const s = raw.trim().toLowerCase();
|
|
50
|
+
if (/just now/.test(s))
|
|
51
|
+
return 0;
|
|
52
|
+
const num = s.match(/(\d+)/);
|
|
53
|
+
const n = num ? parseInt(num[1], 10) : NaN;
|
|
54
|
+
if (!Number.isFinite(n))
|
|
55
|
+
return Number.POSITIVE_INFINITY;
|
|
56
|
+
if (/second/.test(s))
|
|
57
|
+
return n;
|
|
58
|
+
if (/minute/.test(s))
|
|
59
|
+
return n * 60;
|
|
60
|
+
if (/hour/.test(s))
|
|
61
|
+
return n * 3_600;
|
|
62
|
+
if (/day/.test(s))
|
|
63
|
+
return n * 86_400;
|
|
64
|
+
if (/week/.test(s))
|
|
65
|
+
return n * 604_800;
|
|
66
|
+
if (/month/.test(s))
|
|
67
|
+
return n * 2_592_000;
|
|
68
|
+
return Number.POSITIVE_INFINITY;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Production gemini spawn — every turn routes through the subscription-auth
|
|
72
|
+
* transport. `buildGeminiChildEnv()` strips all billing env vars, so no argv this
|
|
73
|
+
* receives can introduce an API key.
|
|
74
|
+
*/
|
|
75
|
+
export function createGeminiLoopSpawn(geminiPath, turnTimeoutMs = DEFAULT_GEMINI_TURN_TIMEOUT_MS) {
|
|
76
|
+
return async (argv) => {
|
|
77
|
+
const r = await spawnGeminiAndWait(geminiPath, argv, {
|
|
78
|
+
timeoutMs: turnTimeoutMs,
|
|
79
|
+
env: buildGeminiChildEnv(),
|
|
80
|
+
});
|
|
81
|
+
return { exitCode: r.exitCode, stdout: r.stdout, stderr: r.stderr, truncated: r.truncated };
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Production handle capture — after turn 1, list sessions and pick the freshest.
|
|
86
|
+
* Single-concurrency (`maxConcurrent: 1`) keeps this unambiguous: turn 1 just ran,
|
|
87
|
+
* so its session is the "Just now" / min-age row even if other gemini one-shots
|
|
88
|
+
* (e.g. cross-model review) created older sessions in the shared cwd.
|
|
89
|
+
*/
|
|
90
|
+
export function createGeminiHandleCapture(geminiPath, listTimeoutMs = 30_000) {
|
|
91
|
+
return async () => {
|
|
92
|
+
try {
|
|
93
|
+
const r = await spawnGeminiAndWait(geminiPath, ['--list-sessions'], {
|
|
94
|
+
timeoutMs: listTimeoutMs,
|
|
95
|
+
env: buildGeminiChildEnv(),
|
|
96
|
+
});
|
|
97
|
+
if (r.exitCode !== 0)
|
|
98
|
+
return null;
|
|
99
|
+
return parseLatestGeminiSessionHandle(r.stdout);
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// @silent-fallback-ok — intentional fail-closed: if `--list-sessions` errors
|
|
103
|
+
// we return null, and the GeminiLoopDriver ABORTS the run (stopReason
|
|
104
|
+
// 'handle-capture-failure') rather than guessing a handle. Not a degraded
|
|
105
|
+
// silent continue — it is the safe stop, surfaced in the run's stopReason.
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Production budget gate — reuses the existing QuotaTracker spawn-admission
|
|
112
|
+
* decision (the same daily-spend / load-shedding signal every other instar spawn
|
|
113
|
+
* respects). Fails OPEN if no tracker is wired (the engine's own maxTurns +
|
|
114
|
+
* spawn-failure handling still bound the loop).
|
|
115
|
+
*/
|
|
116
|
+
export function createQuotaBudgetGate(quota) {
|
|
117
|
+
return () => {
|
|
118
|
+
if (!quota)
|
|
119
|
+
return { ok: true };
|
|
120
|
+
const v = quota.shouldSpawnSession();
|
|
121
|
+
return { ok: v.allowed, reason: v.allowed ? undefined : v.reason };
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=geminiLoopProduction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geminiLoopProduction.js","sourceRoot":"","sources":["../../src/monitoring/geminiLoopProduction.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@ import type { TopicMemory } from '../memory/TopicMemory.js';
|
|
|
32
32
|
import type { FeedbackAnomalyDetector } from '../monitoring/FeedbackAnomalyDetector.js';
|
|
33
33
|
import type { TopicIntentStore } from '../core/TopicIntent.js';
|
|
34
34
|
import type { WorktreeManager } from '../core/WorktreeManager.js';
|
|
35
|
+
import { ParallelWorkSentinel } from '../monitoring/ParallelWorkSentinel.js';
|
|
35
36
|
import { type MentorConfig } from '../scheduler/MentorOnboardingRunner.js';
|
|
36
37
|
export declare function readMentorConfigFromDisk(stateDir: string | undefined, fallback: MentorConfig): MentorConfig;
|
|
37
38
|
export declare class AgentServer {
|
|
@@ -53,6 +54,8 @@ export declare class AgentServer {
|
|
|
53
54
|
private resourceLedger;
|
|
54
55
|
private resourceLedgerPoller;
|
|
55
56
|
private parallelActivityIndex;
|
|
57
|
+
private parallelWorkSentinel;
|
|
58
|
+
private parallelWorkSentinelTimer;
|
|
56
59
|
private resourceSampler;
|
|
57
60
|
private frameworkIssueLedger;
|
|
58
61
|
private mentorRunner;
|
|
@@ -318,6 +321,9 @@ export declare class AgentServer {
|
|
|
318
321
|
/** McpProcessReaper — reclaims leaked MCP-server children of dead/stale
|
|
319
322
|
* sessions. Powers GET /processes/mcp-reaper. */
|
|
320
323
|
mcpProcessReaper?: import('../monitoring/McpProcessReaper.js').McpProcessReaper;
|
|
324
|
+
/** GeminiLoopRunner — multi-turn gemini loop-driver (need-gem-002). Powers
|
|
325
|
+
* POST + GET /gemini-loop/runs. */
|
|
326
|
+
geminiLoopRunner?: import('../monitoring/GeminiLoopRunner.js').GeminiLoopRunner | null;
|
|
321
327
|
/** SleepController — agent hard-sleep decision (Stage B). Powers GET /sleep. */
|
|
322
328
|
sleepController?: import('../monitoring/SleepController.js').SleepController;
|
|
323
329
|
/** AgentActivityState — shared idle signal bumped at the inbound chokepoint. */
|
|
@@ -486,5 +492,7 @@ export declare class AgentServer {
|
|
|
486
492
|
* Expose the Express app for testing with supertest.
|
|
487
493
|
*/
|
|
488
494
|
getApp(): Express;
|
|
495
|
+
/** Wiring-integrity accessor: the ParallelWorkSentinel when constructed (enabled), else null. */
|
|
496
|
+
getParallelWorkSentinel(): ParallelWorkSentinel | null;
|
|
489
497
|
}
|
|
490
498
|
//# sourceMappingURL=AgentServer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentServer.d.ts","sourceRoot":"","sources":["../../src/server/AgentServer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AgentServer.d.ts","sourceRoot":"","sources":["../../src/server/AgentServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,7 @@ import { TokenLedgerPoller } from '../monitoring/TokenLedgerPoller.js';
|
|
|
46
46
|
import { ResourceLedger } from '../monitoring/ResourceLedger.js';
|
|
47
47
|
import { ResourceLedgerPoller } from '../monitoring/ResourceLedgerPoller.js';
|
|
48
48
|
import { ParallelActivityIndex } from '../core/ParallelActivityIndex.js';
|
|
49
|
+
import { ParallelWorkSentinel } from '../monitoring/ParallelWorkSentinel.js';
|
|
49
50
|
import { ResourceSampler } from '../monitoring/ResourceSampler.js';
|
|
50
51
|
import { getLlmCircuitBreaker } from '../core/LlmCircuitBreaker.js';
|
|
51
52
|
import { FrameworkIssueLedger } from '../monitoring/FrameworkIssueLedger.js';
|
|
@@ -113,6 +114,8 @@ export class AgentServer {
|
|
|
113
114
|
resourceLedger = null;
|
|
114
115
|
resourceLedgerPoller = null;
|
|
115
116
|
parallelActivityIndex = null;
|
|
117
|
+
parallelWorkSentinel = null;
|
|
118
|
+
parallelWorkSentinelTimer = null;
|
|
116
119
|
resourceSampler = null;
|
|
117
120
|
frameworkIssueLedger = null;
|
|
118
121
|
mentorRunner = null;
|
|
@@ -402,6 +405,43 @@ export class AgentServer {
|
|
|
402
405
|
this.parallelActivityIndex = null;
|
|
403
406
|
}
|
|
404
407
|
}
|
|
408
|
+
// Parallel-Work Awareness, Phase B — the proactive overlap councilor sentinel.
|
|
409
|
+
// Ships DARK (monitoring.parallelWorkSentinel.enabled defaults false). When on, it
|
|
410
|
+
// ticks on a cadence over the index, detects cross-topic overlap, and emits ONE
|
|
411
|
+
// deduped nudge. Signal-only. Own try/catch (cascade isolation). Every transition is
|
|
412
|
+
// audited to logs/sentinel-events.jsonl (house pattern); a nudge additionally surfaces
|
|
413
|
+
// to the user via the post-update channel if Telegram is wired.
|
|
414
|
+
const pwsEnabled = options.config.monitoring?.parallelWorkSentinel?.enabled === true;
|
|
415
|
+
if (pwsEnabled && this.parallelActivityIndex && options.config.stateDir) {
|
|
416
|
+
try {
|
|
417
|
+
const index = this.parallelActivityIndex;
|
|
418
|
+
const auditPath = path.join(options.config.stateDir, 'logs', 'sentinel-events.jsonl');
|
|
419
|
+
this.parallelWorkSentinel = new ParallelWorkSentinel({
|
|
420
|
+
getActivities: (nowMs) => index.activities(nowMs),
|
|
421
|
+
audit: (ev) => {
|
|
422
|
+
try {
|
|
423
|
+
fs.appendFileSync(auditPath, JSON.stringify({ ts: new Date(ev.atMs).toISOString(), kind: `parallel-work:${ev.kind}`, pair: ev.pair }) + '\n');
|
|
424
|
+
}
|
|
425
|
+
catch { /* best-effort audit; never break the tick */ }
|
|
426
|
+
},
|
|
427
|
+
});
|
|
428
|
+
// Cadence (default 15 min). Lease-gating for multi-machine is a refinement;
|
|
429
|
+
// shipping dark + single-machine common, so the tick runs when enabled.
|
|
430
|
+
const cadenceMs = (options.config.monitoring?.parallelWorkSentinel?.cadenceMinutes ?? 15) * 60 * 1000;
|
|
431
|
+
this.parallelWorkSentinelTimer = setInterval(() => {
|
|
432
|
+
try {
|
|
433
|
+
this.parallelWorkSentinel?.tick(Date.now());
|
|
434
|
+
}
|
|
435
|
+
catch { /* never throw from the cadence */ }
|
|
436
|
+
}, cadenceMs);
|
|
437
|
+
if (typeof this.parallelWorkSentinelTimer.unref === 'function')
|
|
438
|
+
this.parallelWorkSentinelTimer.unref();
|
|
439
|
+
}
|
|
440
|
+
catch (err) {
|
|
441
|
+
console.warn('[instar] parallel-work-sentinel init failed (non-fatal):', err);
|
|
442
|
+
this.parallelWorkSentinel = null;
|
|
443
|
+
}
|
|
444
|
+
}
|
|
405
445
|
// Per-feature LLM metrics ledger — read-only observability for every gate/
|
|
406
446
|
// sentinel's cost + hit-rate (docs/specs/llm-feature-metrics-spec.md). Own
|
|
407
447
|
// try/catch, independent of the other ledgers (same cascade-isolation as
|
|
@@ -831,6 +871,7 @@ export class AgentServer {
|
|
|
831
871
|
sessionReaper: options.sessionReaper ?? null,
|
|
832
872
|
agentWorktreeReaper: options.agentWorktreeReaper ?? null,
|
|
833
873
|
mcpProcessReaper: options.mcpProcessReaper ?? null,
|
|
874
|
+
geminiLoopRunner: options.geminiLoopRunner ?? null,
|
|
834
875
|
sleepController: options.sleepController ?? null,
|
|
835
876
|
agentActivityState: options.agentActivityState ?? null,
|
|
836
877
|
reapLog: options.reapLog ?? null,
|
|
@@ -2208,6 +2249,14 @@ export class AgentServer {
|
|
|
2208
2249
|
catch { /* best-effort */ }
|
|
2209
2250
|
this.resourceLedgerPoller = null;
|
|
2210
2251
|
}
|
|
2252
|
+
if (this.parallelWorkSentinelTimer) {
|
|
2253
|
+
try {
|
|
2254
|
+
clearInterval(this.parallelWorkSentinelTimer);
|
|
2255
|
+
}
|
|
2256
|
+
catch { /* best-effort */ }
|
|
2257
|
+
this.parallelWorkSentinelTimer = null;
|
|
2258
|
+
}
|
|
2259
|
+
this.parallelWorkSentinel = null;
|
|
2211
2260
|
if (this.resourceLedger) {
|
|
2212
2261
|
try {
|
|
2213
2262
|
this.resourceLedger.close();
|
|
@@ -2270,5 +2319,9 @@ export class AgentServer {
|
|
|
2270
2319
|
getApp() {
|
|
2271
2320
|
return this.app;
|
|
2272
2321
|
}
|
|
2322
|
+
/** Wiring-integrity accessor: the ParallelWorkSentinel when constructed (enabled), else null. */
|
|
2323
|
+
getParallelWorkSentinel() {
|
|
2324
|
+
return this.parallelWorkSentinel;
|
|
2325
|
+
}
|
|
2273
2326
|
}
|
|
2274
2327
|
//# sourceMappingURL=AgentServer.js.map
|