instar 1.3.521 → 1.3.523
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 +100 -1
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +16 -1
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/MeshRpc.d.ts +5 -0
- package/dist/core/MeshRpc.d.ts.map +1 -1
- package/dist/core/MeshRpc.js +8 -0
- package/dist/core/MeshRpc.js.map +1 -1
- package/dist/core/StoreSnapshot.d.ts +455 -0
- package/dist/core/StoreSnapshot.d.ts.map +1 -0
- package/dist/core/StoreSnapshot.js +786 -0
- package/dist/core/StoreSnapshot.js.map +1 -0
- package/dist/core/devGatedFeatures.d.ts.map +1 -1
- package/dist/core/devGatedFeatures.js +6 -0
- package/dist/core/devGatedFeatures.js.map +1 -1
- package/dist/core/stateSyncConfig.js +1 -1
- package/dist/core/stateSyncConfig.js.map +1 -1
- package/dist/core/storeSnapshotBuild.worker.d.ts +2 -0
- package/dist/core/storeSnapshotBuild.worker.d.ts.map +1 -0
- package/dist/core/storeSnapshotBuild.worker.js +32 -0
- package/dist/core/storeSnapshotBuild.worker.js.map +1 -0
- package/dist/core/types.d.ts +17 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/monitoring/OrphanedWorkSentinel.d.ts +148 -0
- package/dist/monitoring/OrphanedWorkSentinel.d.ts.map +1 -0
- package/dist/monitoring/OrphanedWorkSentinel.js +177 -0
- package/dist/monitoring/OrphanedWorkSentinel.js.map +1 -0
- package/dist/monitoring/guardManifest.d.ts.map +1 -1
- package/dist/monitoring/guardManifest.js +14 -0
- package/dist/monitoring/guardManifest.js.map +1 -1
- package/dist/monitoring/orphanedWorkGit.d.ts +30 -0
- package/dist/monitoring/orphanedWorkGit.d.ts.map +1 -0
- package/dist/monitoring/orphanedWorkGit.js +124 -0
- package/dist/monitoring/orphanedWorkGit.js.map +1 -0
- package/dist/server/AgentServer.d.ts +3 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +1 -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 +11 -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.522.md +25 -0
- package/upgrades/1.3.523.md +31 -0
- package/upgrades/side-effects/hlc-step3-snapshot-tail.md +133 -0
- package/upgrades/side-effects/orphaned-work-sentinel.md +40 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OrphanedWorkSentinel — the silent-uncommitted-death backstop.
|
|
3
|
+
*
|
|
4
|
+
* The failure it closes (2026-06-12, topic 22367): a decoupled build/autonomous
|
|
5
|
+
* session was spawned to do work in an agent worktree. It edited files, launched
|
|
6
|
+
* its test suite in the BACKGROUND, said "standing by" — and the `claude -p`
|
|
7
|
+
* turn ended, so the session died with all of its work UNCOMMITTED and no PR. No
|
|
8
|
+
* commitment had been registered for the code itself, so the PromiseBeacon
|
|
9
|
+
* escalation ladder (#1093/#1097) — which acts on REGISTERED promises — had
|
|
10
|
+
* nothing to act on. The stranded work sat invisible for hours.
|
|
11
|
+
*
|
|
12
|
+
* This sentinel needs NOTHING registered. It reads the stranded work straight
|
|
13
|
+
* off disk: an agent worktree with uncommitted changes (work) whose owning
|
|
14
|
+
* session is DEAD (no live process cwd inside it, no session/index lock) and
|
|
15
|
+
* that has been SETTLED for a while (no recent file activity — so we never grab
|
|
16
|
+
* work that is merely paused mid-keystroke) is *orphaned work*. The sentinel
|
|
17
|
+
* RECORDS it durably, raises ONE deduped attention item ("work was stranded
|
|
18
|
+
* here — revive or discard"), and — only behind an explicit, off-by-default
|
|
19
|
+
* sub-flag — creates a WIP preservation commit so the work can never be lost.
|
|
20
|
+
*
|
|
21
|
+
* Distinct from AgentWorktreeReaper, which is its INVERSE: the reaper reclaims
|
|
22
|
+
* worktrees that are clean + merged + idle (KEEPS anything dirty); this sentinel
|
|
23
|
+
* acts ONLY on the dirty + owner-dead + settled worktrees the reaper deliberately
|
|
24
|
+
* leaves alone. They share the same git/fs signal sources.
|
|
25
|
+
*
|
|
26
|
+
* Posture: SIGNAL-ONLY by default — it records + surfaces, it never deletes and
|
|
27
|
+
* never blocks. The optional preservation-commit only ADDS a commit (never
|
|
28
|
+
* destroys). developmentAgent dark-feature gate: the config OMITS `enabled`, so
|
|
29
|
+
* resolveDevAgentGate runs it LIVE on a dev agent (the dogfooding ground) and
|
|
30
|
+
* DARK on the fleet. Spec: docs/specs/ORPHANED-WORK-SENTINEL-SPEC.md.
|
|
31
|
+
*/
|
|
32
|
+
import { EventEmitter } from 'node:events';
|
|
33
|
+
export interface OrphanedWorkSentinelConfig {
|
|
34
|
+
/** developmentAgent-gated at the wiring site; omitted from the default. */
|
|
35
|
+
enabled: boolean;
|
|
36
|
+
/** How often the sentinel scans the agent's worktrees. */
|
|
37
|
+
scanIntervalMs: number;
|
|
38
|
+
/**
|
|
39
|
+
* A dirty + owner-dead worktree must have been idle (no file activity) for at
|
|
40
|
+
* least this long before it counts as ORPHANED — guards against grabbing work
|
|
41
|
+
* that is merely paused for a moment, not abandoned.
|
|
42
|
+
*/
|
|
43
|
+
settleMs: number;
|
|
44
|
+
/**
|
|
45
|
+
* Optional: create a `wip:` preservation commit on the orphaned branch so the
|
|
46
|
+
* work survives even if the worktree is later removed. OFF for everyone by
|
|
47
|
+
* default (the dev-gate covers only the non-destructive detect+record+surface;
|
|
48
|
+
* this sub-flag is the only mutation and is opt-in). Only ADDS a commit.
|
|
49
|
+
*/
|
|
50
|
+
preserveWork: boolean;
|
|
51
|
+
/** Bounded blast radius per scan pass (how many worktrees we'll flag at once). */
|
|
52
|
+
maxFlagsPerPass: number;
|
|
53
|
+
}
|
|
54
|
+
export declare const DEFAULT_ORPHANED_WORK_SENTINEL_CONFIG: OrphanedWorkSentinelConfig;
|
|
55
|
+
export interface OrphanedWorktreeInfo {
|
|
56
|
+
path: string;
|
|
57
|
+
branch: string | null;
|
|
58
|
+
headSha: string;
|
|
59
|
+
}
|
|
60
|
+
export type OrphanedVerdict = 'orphaned' | 'skip';
|
|
61
|
+
export interface OrphanedWorkEvaluation {
|
|
62
|
+
path: string;
|
|
63
|
+
branch: string | null;
|
|
64
|
+
verdict: OrphanedVerdict;
|
|
65
|
+
/** The gate that produced SKIP, or 'uncommitted-owner-dead-settled' when orphaned. */
|
|
66
|
+
reason: string;
|
|
67
|
+
}
|
|
68
|
+
/** A durable record of a detected orphaned-work episode. */
|
|
69
|
+
export interface OrphanedWorkEvent {
|
|
70
|
+
ts: number;
|
|
71
|
+
path: string;
|
|
72
|
+
branch: string | null;
|
|
73
|
+
/** Short hash of the dirty `git status` so a re-scan of the SAME stranded
|
|
74
|
+
* state dedupes, but NEW changes re-flag. */
|
|
75
|
+
workSig: string;
|
|
76
|
+
preserved: boolean;
|
|
77
|
+
preserveError?: string;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* All signal sources injected so the classifier + pass are unit-testable with
|
|
81
|
+
* fakes; production wiring supplies git/fs-backed implementations.
|
|
82
|
+
*/
|
|
83
|
+
export interface OrphanedWorkSentinelDeps {
|
|
84
|
+
/** Worktrees under the agent's `.worktrees/` (excludes the main checkout). */
|
|
85
|
+
listWorktrees: () => OrphanedWorktreeInfo[];
|
|
86
|
+
/** True when the worktree has uncommitted or untracked changes (the "work"). */
|
|
87
|
+
hasUncommittedWork: (path: string) => boolean;
|
|
88
|
+
/** A stable short signature of the current dirty state (for episode dedup). */
|
|
89
|
+
workSignature: (path: string) => string;
|
|
90
|
+
/** True when the worktree is in use: a live session/index lock OR a running
|
|
91
|
+
* process whose cwd is inside it. The "owner is alive — leave it" signal. */
|
|
92
|
+
isInUse: (path: string) => boolean;
|
|
93
|
+
/** Most recent file-activity time (ms epoch) inside the worktree, or null when
|
|
94
|
+
* unknown. Drives the settle gate. */
|
|
95
|
+
lastActivityMs: (path: string) => number | null;
|
|
96
|
+
/** Create a WIP preservation commit. Only called when preserveWork && !dryRun
|
|
97
|
+
* (here, preserveWork is the gate; there is no separate dryRun). Throws on
|
|
98
|
+
* failure; the caller records the error and continues. */
|
|
99
|
+
preserve: (info: OrphanedWorktreeInfo) => void;
|
|
100
|
+
/** Append a durable record of the episode. */
|
|
101
|
+
record: (event: OrphanedWorkEvent) => void;
|
|
102
|
+
/** Raise ONE deduped attention item for a stranded worktree. */
|
|
103
|
+
raiseAttention: (event: OrphanedWorkEvent) => void;
|
|
104
|
+
now?: () => number;
|
|
105
|
+
}
|
|
106
|
+
export declare class OrphanedWorkSentinel extends EventEmitter {
|
|
107
|
+
private readonly cfg;
|
|
108
|
+
private readonly deps;
|
|
109
|
+
private readonly now;
|
|
110
|
+
private timer?;
|
|
111
|
+
private running;
|
|
112
|
+
private lastPassAt;
|
|
113
|
+
/** Episode dedup: `${path}::${workSig}` already flagged this process-lifetime. */
|
|
114
|
+
private readonly flagged;
|
|
115
|
+
constructor(deps: OrphanedWorkSentinelDeps, cfg?: Partial<OrphanedWorkSentinelConfig>);
|
|
116
|
+
start(): void;
|
|
117
|
+
stop(): void;
|
|
118
|
+
/**
|
|
119
|
+
* Pure, stateless per-worktree classifier. Returns SKIP unless EVERY orphan
|
|
120
|
+
* gate clears, in this order (cheapest / most-protective first, short-circuit
|
|
121
|
+
* on the first SKIP — never scan mtimes on a live or clean worktree):
|
|
122
|
+
* 1. owner alive → SKIP (work is in flight; leave it)
|
|
123
|
+
* 2. no uncommitted work → SKIP (nothing stranded)
|
|
124
|
+
* 3. not settled long enough → SKIP (paused, not abandoned)
|
|
125
|
+
* else → ORPHANED.
|
|
126
|
+
*/
|
|
127
|
+
evaluate(info: OrphanedWorktreeInfo): OrphanedWorkEvaluation;
|
|
128
|
+
/** One scan pass. Records + surfaces (and optionally preserves) orphaned work. */
|
|
129
|
+
scan(): Promise<{
|
|
130
|
+
ts: number;
|
|
131
|
+
evaluations: OrphanedWorkEvaluation[];
|
|
132
|
+
flagged: OrphanedWorkEvent[];
|
|
133
|
+
}>;
|
|
134
|
+
/**
|
|
135
|
+
* Observability snapshot for GET /orphaned-work (read-only — runs one
|
|
136
|
+
* classifier pass over the current worktrees but takes NO action, records
|
|
137
|
+
* nothing, and never preserves).
|
|
138
|
+
*/
|
|
139
|
+
snapshot(): {
|
|
140
|
+
enabled: boolean;
|
|
141
|
+
preserveWork: boolean;
|
|
142
|
+
lastPassAt: number;
|
|
143
|
+
settleMs: number;
|
|
144
|
+
evaluations: OrphanedWorkEvaluation[];
|
|
145
|
+
orphanedCount: number;
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=OrphanedWorkSentinel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrphanedWorkSentinel.d.ts","sourceRoot":"","sources":["../../src/monitoring/OrphanedWorkSentinel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OrphanedWorkSentinel — the silent-uncommitted-death backstop.
|
|
3
|
+
*
|
|
4
|
+
* The failure it closes (2026-06-12, topic 22367): a decoupled build/autonomous
|
|
5
|
+
* session was spawned to do work in an agent worktree. It edited files, launched
|
|
6
|
+
* its test suite in the BACKGROUND, said "standing by" — and the `claude -p`
|
|
7
|
+
* turn ended, so the session died with all of its work UNCOMMITTED and no PR. No
|
|
8
|
+
* commitment had been registered for the code itself, so the PromiseBeacon
|
|
9
|
+
* escalation ladder (#1093/#1097) — which acts on REGISTERED promises — had
|
|
10
|
+
* nothing to act on. The stranded work sat invisible for hours.
|
|
11
|
+
*
|
|
12
|
+
* This sentinel needs NOTHING registered. It reads the stranded work straight
|
|
13
|
+
* off disk: an agent worktree with uncommitted changes (work) whose owning
|
|
14
|
+
* session is DEAD (no live process cwd inside it, no session/index lock) and
|
|
15
|
+
* that has been SETTLED for a while (no recent file activity — so we never grab
|
|
16
|
+
* work that is merely paused mid-keystroke) is *orphaned work*. The sentinel
|
|
17
|
+
* RECORDS it durably, raises ONE deduped attention item ("work was stranded
|
|
18
|
+
* here — revive or discard"), and — only behind an explicit, off-by-default
|
|
19
|
+
* sub-flag — creates a WIP preservation commit so the work can never be lost.
|
|
20
|
+
*
|
|
21
|
+
* Distinct from AgentWorktreeReaper, which is its INVERSE: the reaper reclaims
|
|
22
|
+
* worktrees that are clean + merged + idle (KEEPS anything dirty); this sentinel
|
|
23
|
+
* acts ONLY on the dirty + owner-dead + settled worktrees the reaper deliberately
|
|
24
|
+
* leaves alone. They share the same git/fs signal sources.
|
|
25
|
+
*
|
|
26
|
+
* Posture: SIGNAL-ONLY by default — it records + surfaces, it never deletes and
|
|
27
|
+
* never blocks. The optional preservation-commit only ADDS a commit (never
|
|
28
|
+
* destroys). developmentAgent dark-feature gate: the config OMITS `enabled`, so
|
|
29
|
+
* resolveDevAgentGate runs it LIVE on a dev agent (the dogfooding ground) and
|
|
30
|
+
* DARK on the fleet. Spec: docs/specs/ORPHANED-WORK-SENTINEL-SPEC.md.
|
|
31
|
+
*/
|
|
32
|
+
import { EventEmitter } from 'node:events';
|
|
33
|
+
export const DEFAULT_ORPHANED_WORK_SENTINEL_CONFIG = {
|
|
34
|
+
enabled: false,
|
|
35
|
+
scanIntervalMs: 10 * 60 * 1000, // 10 min
|
|
36
|
+
settleMs: 8 * 60 * 1000, // 8 min idle ⇒ settled
|
|
37
|
+
preserveWork: false,
|
|
38
|
+
maxFlagsPerPass: 10,
|
|
39
|
+
};
|
|
40
|
+
export class OrphanedWorkSentinel extends EventEmitter {
|
|
41
|
+
cfg;
|
|
42
|
+
deps;
|
|
43
|
+
now;
|
|
44
|
+
timer;
|
|
45
|
+
running = false;
|
|
46
|
+
lastPassAt = 0;
|
|
47
|
+
/** Episode dedup: `${path}::${workSig}` already flagged this process-lifetime. */
|
|
48
|
+
flagged = new Set();
|
|
49
|
+
constructor(deps, cfg) {
|
|
50
|
+
super();
|
|
51
|
+
this.deps = deps;
|
|
52
|
+
this.cfg = { ...DEFAULT_ORPHANED_WORK_SENTINEL_CONFIG, ...(cfg ?? {}) };
|
|
53
|
+
this.now = deps.now ?? (() => Date.now());
|
|
54
|
+
}
|
|
55
|
+
start() {
|
|
56
|
+
if (this.timer || !this.cfg.enabled)
|
|
57
|
+
return;
|
|
58
|
+
this.timer = setInterval(() => { void this.scan(); }, this.cfg.scanIntervalMs);
|
|
59
|
+
if (typeof this.timer.unref === 'function')
|
|
60
|
+
this.timer.unref();
|
|
61
|
+
}
|
|
62
|
+
stop() {
|
|
63
|
+
if (this.timer) {
|
|
64
|
+
clearInterval(this.timer);
|
|
65
|
+
this.timer = undefined;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Pure, stateless per-worktree classifier. Returns SKIP unless EVERY orphan
|
|
70
|
+
* gate clears, in this order (cheapest / most-protective first, short-circuit
|
|
71
|
+
* on the first SKIP — never scan mtimes on a live or clean worktree):
|
|
72
|
+
* 1. owner alive → SKIP (work is in flight; leave it)
|
|
73
|
+
* 2. no uncommitted work → SKIP (nothing stranded)
|
|
74
|
+
* 3. not settled long enough → SKIP (paused, not abandoned)
|
|
75
|
+
* else → ORPHANED.
|
|
76
|
+
*/
|
|
77
|
+
evaluate(info) {
|
|
78
|
+
const skip = (reason) => ({ path: info.path, branch: info.branch, verdict: 'skip', reason });
|
|
79
|
+
if (this.deps.isInUse(info.path))
|
|
80
|
+
return skip('owner-alive');
|
|
81
|
+
if (!this.deps.hasUncommittedWork(info.path))
|
|
82
|
+
return skip('clean');
|
|
83
|
+
const last = this.deps.lastActivityMs(info.path);
|
|
84
|
+
if (last != null && this.now() - last < this.cfg.settleMs)
|
|
85
|
+
return skip('active-recently');
|
|
86
|
+
return { path: info.path, branch: info.branch, verdict: 'orphaned', reason: 'uncommitted-owner-dead-settled' };
|
|
87
|
+
}
|
|
88
|
+
/** One scan pass. Records + surfaces (and optionally preserves) orphaned work. */
|
|
89
|
+
async scan() {
|
|
90
|
+
if (this.running)
|
|
91
|
+
return { ts: this.now(), evaluations: [], flagged: [] };
|
|
92
|
+
this.running = true;
|
|
93
|
+
const evaluations = [];
|
|
94
|
+
const flaggedEvents = [];
|
|
95
|
+
try {
|
|
96
|
+
let worktrees;
|
|
97
|
+
try {
|
|
98
|
+
worktrees = this.deps.listWorktrees();
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
worktrees = [];
|
|
102
|
+
}
|
|
103
|
+
for (const info of worktrees) {
|
|
104
|
+
const evalResult = this.evaluate(info);
|
|
105
|
+
evaluations.push(evalResult);
|
|
106
|
+
if (evalResult.verdict !== 'orphaned')
|
|
107
|
+
continue;
|
|
108
|
+
if (flaggedEvents.length >= this.cfg.maxFlagsPerPass)
|
|
109
|
+
continue;
|
|
110
|
+
const sig = (() => { try {
|
|
111
|
+
return this.deps.workSignature(info.path);
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return 'unknown';
|
|
115
|
+
} })();
|
|
116
|
+
const key = `${info.path}::${sig}`;
|
|
117
|
+
if (this.flagged.has(key))
|
|
118
|
+
continue; // same stranded state, already surfaced
|
|
119
|
+
this.flagged.add(key);
|
|
120
|
+
const event = {
|
|
121
|
+
ts: this.now(),
|
|
122
|
+
path: info.path,
|
|
123
|
+
branch: info.branch,
|
|
124
|
+
workSig: sig,
|
|
125
|
+
preserved: false,
|
|
126
|
+
};
|
|
127
|
+
if (this.cfg.preserveWork) {
|
|
128
|
+
try {
|
|
129
|
+
this.deps.preserve(info);
|
|
130
|
+
event.preserved = true;
|
|
131
|
+
}
|
|
132
|
+
catch (e) {
|
|
133
|
+
event.preserveError = e instanceof Error ? e.message : String(e);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
try {
|
|
137
|
+
this.deps.record(event);
|
|
138
|
+
}
|
|
139
|
+
catch { /* recording must never throw the pass */ }
|
|
140
|
+
try {
|
|
141
|
+
this.deps.raiseAttention(event);
|
|
142
|
+
}
|
|
143
|
+
catch { /* attention must never throw the pass */ }
|
|
144
|
+
this.emit('orphaned-work-detected', event);
|
|
145
|
+
flaggedEvents.push(event);
|
|
146
|
+
}
|
|
147
|
+
this.lastPassAt = this.now();
|
|
148
|
+
}
|
|
149
|
+
finally {
|
|
150
|
+
this.running = false;
|
|
151
|
+
}
|
|
152
|
+
return { ts: this.now(), evaluations, flagged: flaggedEvents };
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Observability snapshot for GET /orphaned-work (read-only — runs one
|
|
156
|
+
* classifier pass over the current worktrees but takes NO action, records
|
|
157
|
+
* nothing, and never preserves).
|
|
158
|
+
*/
|
|
159
|
+
snapshot() {
|
|
160
|
+
let evaluations = [];
|
|
161
|
+
try {
|
|
162
|
+
evaluations = this.deps.listWorktrees().map((info) => this.evaluate(info));
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
evaluations = [];
|
|
166
|
+
}
|
|
167
|
+
return {
|
|
168
|
+
enabled: this.cfg.enabled,
|
|
169
|
+
preserveWork: this.cfg.preserveWork,
|
|
170
|
+
lastPassAt: this.lastPassAt,
|
|
171
|
+
settleMs: this.cfg.settleMs,
|
|
172
|
+
evaluations,
|
|
173
|
+
orphanedCount: evaluations.filter((e) => e.verdict === 'orphaned').length,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=OrphanedWorkSentinel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrphanedWorkSentinel.js","sourceRoot":"","sources":["../../src/monitoring/OrphanedWorkSentinel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guardManifest.d.ts","sourceRoot":"","sources":["../../src/monitoring/guardManifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,cAAc,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,6FAA6F;IAC7F,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;qFAEiF;IACjF,cAAc,EAAE,OAAO,CAAC;IACxB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;wEACoE;IACpE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB;;;;2DAIuD;IACvD,aAAa,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,SAAS,kBAAkB,
|
|
1
|
+
{"version":3,"file":"guardManifest.d.ts","sourceRoot":"","sources":["../../src/monitoring/guardManifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,cAAc,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,6FAA6F;IAC7F,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;qFAEiF;IACjF,cAAc,EAAE,OAAO,CAAC;IACxB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;wEACoE;IACpE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB;;;;2DAIuD;IACvD,aAAa,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,SAAS,kBAAkB,EAwd9C,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,cAAc,EA8EvC,CAAC;AAEX,qFAAqF;AACrF,wBAAgB,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAI/D;AAED,wBAAgB,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC,CAIhD;AAED,wBAAgB,mBAAmB,IAAI,GAAG,CAAC,MAAM,CAAC,CAEjD"}
|
|
@@ -152,6 +152,20 @@ export const GUARD_MANIFEST = [
|
|
|
152
152
|
component: 'AgentWorktreeReaper',
|
|
153
153
|
description: 'Reclaims merged+clean+unused agent worktrees.',
|
|
154
154
|
},
|
|
155
|
+
{
|
|
156
|
+
// `enabled` is deliberately OMITTED from ConfigDefaults — the runtime resolves
|
|
157
|
+
// it through the developmentAgent dark-feature gate (dark on the fleet, live on
|
|
158
|
+
// a dev agent). defaultEnabled:false reflects the fleet default.
|
|
159
|
+
key: 'monitoring.orphanedWorkSentinel.enabled',
|
|
160
|
+
kind: 'config',
|
|
161
|
+
configPath: 'monitoring.orphanedWorkSentinel.enabled',
|
|
162
|
+
defaultEnabled: false,
|
|
163
|
+
expectedTickMs: 600_000,
|
|
164
|
+
process: 'server',
|
|
165
|
+
expectRuntime: false,
|
|
166
|
+
component: 'OrphanedWorkSentinel',
|
|
167
|
+
description: 'Detects agent worktrees with uncommitted work whose owning session died + settled.',
|
|
168
|
+
},
|
|
155
169
|
{
|
|
156
170
|
key: 'monitoring.mcpProcessReaper.enabled',
|
|
157
171
|
kind: 'config',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guardManifest.js","sourceRoot":"","sources":["../../src/monitoring/guardManifest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"guardManifest.js","sourceRoot":"","sources":["../../src/monitoring/guardManifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAkCH,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D,iFAAiF;IACjF;QACE,GAAG,EAAE,+CAA+C;QACpD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,+CAA+C;QAC3D,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,8CAA8C;QAChE,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,gBAAgB;QAC3B,WAAW,EAAE,iGAAiG;KAC/G;IACD;QACE,GAAG,EAAE,mDAAmD;QACxD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,mDAAmD;QAC/D,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,wEAAwE;QACxE,yEAAyE;QACzE,2DAA2D;QAC3D,mDAAmD;QACnD,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,kBAAkB;QAC7B,WAAW,EAAE,yJAAyJ;KACvK;IACD,iCAAiC;IACjC;QACE,GAAG,EAAE,kCAAkC;QACvC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,kCAAkC;QAC9C,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,iCAAiC;QACnD,cAAc,EAAE,OAAO;QACvB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,eAAe;QAC1B,WAAW,EAAE,+FAA+F;KAC7G;IACD;QACE,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,+BAA+B;QAC3C,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,YAAY;QACvB,WAAW,EAAE,8DAA8D;KAC5E;IACD;QACE,GAAG,EAAE,qCAAqC;QAC1C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,qCAAqC;QACjD,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,oCAAoC;QACtD,cAAc,EAAE,OAAO;QACvB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,mBAAmB;QAC9B,WAAW,EAAE,2KAA2K;KACzL;IACD;QACE,GAAG,EAAE,6BAA6B;QAClC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,6BAA6B;QACzC,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,MAAM;QACtB,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,iBAAiB;QAC5B,WAAW,EAAE,qDAAqD;KACnE;IACD;QACE,GAAG,EAAE,6CAA6C;QAClD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,6CAA6C;QACzD,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,0BAA0B;QACrC,WAAW,EAAE,sDAAsD;KACpE;IACD;QACE,GAAG,EAAE,8CAA8C;QACnD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,8CAA8C;QAC1D,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,2BAA2B;QACtC,WAAW,EAAE,6DAA6D;KAC3E;IACD;QACE,GAAG,EAAE,yCAAyC;QAC9C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,yCAAyC;QACrD,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,wEAAwE;KACtF;IACD;QACE,sEAAsE;QACtE,sEAAsE;QACtE,uEAAuE;QACvE,oEAAoE;QACpE,GAAG,EAAE,sDAAsD;QAC3D,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,sDAAsD;QAClE,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,qDAAqD;QACvE,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,yEAAyE;KACvF;IACD;QACE,GAAG,EAAE,wCAAwC;QAC7C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,wCAAwC;QACpD,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,uCAAuC;QACzD,cAAc,EAAE,UAAU;QAC1B,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,qBAAqB;QAChC,WAAW,EAAE,+CAA+C;KAC7D;IACD;QACE,+EAA+E;QAC/E,gFAAgF;QAChF,iEAAiE;QACjE,GAAG,EAAE,yCAAyC;QAC9C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,yCAAyC;QACrD,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,OAAO;QACvB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,oFAAoF;KAClG;IACD;QACE,GAAG,EAAE,qCAAqC;QAC1C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,qCAAqC;QACjD,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,SAAS;QACzB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,kBAAkB;QAC7B,WAAW,EAAE,sCAAsC;KACpD;IACD;QACE,GAAG,EAAE,kCAAkC;QACvC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,kCAAkC;QAC9C,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,eAAe;QAC1B,WAAW,EAAE,2CAA2C;KACzD;IACD;QACE,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,+BAA+B;QAC3C,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,YAAY;QACvB,WAAW,EAAE,oCAAoC;KAClD;IACD,iCAAiC;IACjC;QACE,GAAG,EAAE,qCAAqC;QAC1C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,qCAAqC;QACjD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,kBAAkB;QAC7B,WAAW,EAAE,mCAAmC;KACjD;IACD;QACE,GAAG,EAAE,sCAAsC;QAC3C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,sCAAsC;QAClD,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,mBAAmB;QAC9B,WAAW,EAAE,2DAA2D;KACzE;IACD;QACE,GAAG,EAAE,yCAAyC;QAC9C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,yCAAyC;QACrD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,sDAAsD;KACpE;IACD;QACE,GAAG,EAAE,mCAAmC;QACxC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,mCAAmC;QAC/C,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,gBAAgB;QAC3B,WAAW,EAAE,0EAA0E;KACxF;IACD;QACE,GAAG,EAAE,6BAA6B;QAClC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,6BAA6B;QACzC,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,uBAAuB;QAClC,WAAW,EAAE,0DAA0D;KACxE;IACD;QACE,GAAG,EAAE,0BAA0B;QAC/B,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,0BAA0B;QACtC,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,qDAAqD;KACnE;IACD;QACE,GAAG,EAAE,8BAA8B;QACnC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,8BAA8B;QAC1C,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,oBAAoB;QAC/B,WAAW,EAAE,mCAAmC;KACjD;IACD;QACE,GAAG,EAAE,kCAAkC;QACvC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,kCAAkC;QAC9C,2EAA2E;QAC3E,iDAAiD;QACjD,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,6CAA6C;KAC3D;IACD;QACE,GAAG,EAAE,uCAAuC;QAC5C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,uCAAuC;QACnD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,wBAAwB;QACnC,WAAW,EAAE,6DAA6D;KAC3E;IACD,iCAAiC;IACjC;QACE,GAAG,EAAE,2BAA2B;QAChC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,2BAA2B;QACvC,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,kBAAkB;QAC7B,WAAW,EAAE,wDAAwD;KACtE;IACD;QACE,GAAG,EAAE,uCAAuC;QAC5C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,uCAAuC;QACnD,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,oBAAoB;QAC/B,WAAW,EAAE,qDAAqD;KACnE;IACD;QACE,GAAG,EAAE,oCAAoC;QACzC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,oCAAoC;QAChD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,qBAAqB;QAChC,WAAW,EAAE,oDAAoD;KAClE;IACD;QACE,GAAG,EAAE,uCAAuC;QAC5C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,uCAAuC;QACnD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,wBAAwB;QACnC,WAAW,EAAE,4CAA4C;KAC1D;IACD;QACE,yEAAyE;QACzE,8DAA8D;QAC9D,GAAG,EAAE,mDAAmD;QACxD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,mDAAmD;QAC/D,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,wBAAwB;QACnC,WAAW,EAAE,gEAAgE;KAC9E;IACD;QACE,GAAG,EAAE,2CAA2C;QAChD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,2CAA2C;QACvD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,+BAA+B;QAC1C,WAAW,EAAE,mDAAmD;KACjE;IACD;QACE,GAAG,EAAE,6CAA6C;QAClD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,6CAA6C;QACzD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,0BAA0B;QACrC,WAAW,EAAE,qCAAqC;KACnD;IACD;QACE,GAAG,EAAE,qCAAqC;QAC1C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,qCAAqC;QACjD,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,UAAU;QAC1B,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,0BAA0B;QACrC,WAAW,EAAE,qDAAqD;KACnE;IACD;QACE,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,+BAA+B;QAC3C,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,YAAY;QACvB,WAAW,EAAE,4CAA4C;KAC1D;IACD,wEAAwE;IACxE;QACE,GAAG,EAAE,kCAAkC;QACvC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,kCAAkC;QAC9C,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,wBAAwB;QACnC,WAAW,EAAE,mDAAmD;KACjE;IACD;QACE,GAAG,EAAE,kCAAkC;QACvC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,kCAAkC;QAC9C,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,eAAe;QAC1B,WAAW,EAAE,iDAAiD;KAC/D;IACD,6BAA6B;IAC7B;QACE,GAAG,EAAE,mBAAmB;QACxB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,mBAAmB;QAC/B,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,oGAAoG;KAClH;IACD;QACE,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,+BAA+B;QAC3C,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,8BAA8B;QAChD,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,qBAAqB;QAChC,WAAW,EAAE,wDAAwD;KACtE;IACD;QACE,+DAA+D;QAC/D,wEAAwE;QACxE,iEAAiE;QACjE,GAAG,EAAE,gCAAgC;QACrC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,gCAAgC;QAC5C,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,UAAU;QACnB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,uBAAuB;QAClC,WAAW,EAAE,8EAA8E;KAC5F;IACD;QACE,GAAG,EAAE,iCAAiC;QACtC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,iCAAiC;QAC7C,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,YAAY;QACvB,WAAW,EAAE,sDAAsD;KACpE;IACD;QACE,GAAG,EAAE,kCAAkC;QACvC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,kCAAkC;QAC9C,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,aAAa;QACxB,WAAW,EAAE,uDAAuD;KACrE;IACD;QACE,GAAG,EAAE,uCAAuC;QAC5C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,uCAAuC;QACnD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,kBAAkB;QAC7B,WAAW,EAAE,8CAA8C;KAC5D;IACD,gEAAgE;IAChE;QACE,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,cAAc;QACpB,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,qBAAqB;QAChC,WAAW,EAAE,0IAA0I;KACxJ;IACD;QACE,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,cAAc;QACpB,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,qBAAqB;QAChC,WAAW,EAAE,qGAAqG;KACnH;CACO,CAAC;AAcX,MAAM,CAAC,MAAM,WAAW,GAA8B;IACpD,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,EAAE,qHAAqH,EAAE;IACpK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,+FAA+F,EAAE;IACvI,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,wGAAwG,EAAE;IACpJ,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,uHAAuH,EAAE;IAChK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,wHAAwH,EAAE;IACrK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,uFAAuF,EAAE;IAChI,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,sFAAsF,EAAE;IAChI,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,EAAE,qFAAqF,EAAE;IAChI,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,8GAA8G,EAAE;IAC3J,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,oFAAoF,EAAE;IAChI,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,kGAAkG,EAAE;IAC1I,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,6FAA6F,EAAE;IACrI,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,6DAA6D,EAAE;IACzG,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,sFAAsF,EAAE;IACzH,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,kHAAkH,EAAE;IAC3J,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,EAAE,uGAAuG,EAAE;IACzJ,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,EAAE,qEAAqE,EAAE;IACtH,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,yGAAyG,EAAE;IAC/I,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,iEAAiE,EAAE;IAC7G,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,4HAA4H,EAAE;IACtK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,mEAAmE,EAAE;IAChH,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,EAAE,+EAA+E,EAAE;IAClI,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,+GAA+G,EAAE;IACzJ,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,oEAAoE,EAAE;IAC9G,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,oEAAoE,EAAE;IAC3G,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,oEAAoE,EAAE;IAC9G,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,oEAAoE,EAAE;IAC9G,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,+DAA+D,EAAE;IACvG,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,EAAE,kEAAkE,EAAE;IACjH,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,kDAAkD,EAAE;IAC9F,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,kDAAkD,EAAE;IACzF,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,mEAAmE,EAAE;IACjH,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,sEAAsE,EAAE;IAC/G,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,wCAAwC,EAAE;IAC/E,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,gJAAgJ,EAAE;IAC1L,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,4FAA4F,EAAE;IACtI,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,2FAA2F,EAAE;IACpI,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,wEAAwE,EAAE;IAChH,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,EAAE,mGAAmG,EAAE;IAClJ,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,mFAAmF,EAAE;IACjI,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,uCAAuC,EAAE;IACpF,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,iFAAiF,EAAE;IACzH,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,EAAE,sGAAsG,EAAE;IACrJ,2EAA2E;IAC3E,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,EAAE,2MAA2M,EAAE;IAC3P,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,EAAE,sKAAsK,EAAE;IACtN,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,EAAE,4HAA4H,EAAE;IAC9K,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,EAAE,wKAAwK,EAAE;IAC1N,EAAE,SAAS,EAAE,iCAAiC,EAAE,MAAM,EAAE,2MAA2M,EAAE;IACrQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,sIAAsI,EAAE;IAChL,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,sIAAsI,EAAE;IACnL,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,6JAA6J,EAAE;IAClM,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,sIAAsI,EAAE;IACpL,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,mHAAmH,EAAE;IAC5J,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,EAAE,2HAA2H,EAAE;IAC9K,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,EAAE,sKAAsK,EAAE;IACvN,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,sKAAsK,EAAE;IACpN,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,0IAA0I,EAAE;IACjL,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,qIAAqI,EAAE;IACnL,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,wKAAwK,EAAE;IACjN,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,EAAE,8IAA8I,EAAE;IAC7L,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,8HAA8H,EAAE;IACpK,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,EAAE,8HAA8H,EAAE;IAChL,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,8JAA8J,EAAE;IAClM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,0HAA0H,EAAE;IACnK,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,EAAE,8JAA8J,EAAE;IAC9M,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,EAAE,wHAAwH,EAAE;IAC1K,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,0HAA0H,EAAE;IACvK,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,EAAE,kIAAkI,EAAE;IACnL,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,0HAA0H,EAAE;IACtK,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,EAAE,qLAAqL,EAAE;IACpO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,yHAAyH,EAAE;IACjK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,mKAAmK,EAAE;IAChN,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,EAAE,6JAA6J,EAAE;IAC9M,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,iKAAiK,EAAE;IAC1M,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,EAAE,sJAAsJ,EAAE;IACrM,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,wHAAwH,EAAE;CAC9J,CAAC;AAEX,qFAAqF;AACrF,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,IAAI,GAAG,EAA8B,CAAC;IAClD,KAAK,MAAM,KAAK,IAAI,cAAc;QAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,cAAc;QAAE,IAAI,KAAK,CAAC,SAAS;YAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAClF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git/fs-backed signal sources + side-effects for the OrphanedWorkSentinel.
|
|
3
|
+
* Kept separate from the classifier so the sentinel stays unit-testable with
|
|
4
|
+
* fakes. Reuses the AgentWorktreeReaper's git helpers (listWorktrees / isClean /
|
|
5
|
+
* isInUse) so worktree discovery + process-cwd liveness have ONE implementation.
|
|
6
|
+
*
|
|
7
|
+
* All git queries are read-only (SafeGitExecutor.readSync). "Preservation" is a
|
|
8
|
+
* NON-destructive patch write (git diff → a file under the state dir): it never
|
|
9
|
+
* mutates the worktree, its index, or any ref — the stranded work stays exactly
|
|
10
|
+
* where it is (this sentinel never removes a worktree), and the patch is belt-
|
|
11
|
+
* and-suspenders insurance against a LATER reaper.
|
|
12
|
+
*/
|
|
13
|
+
import { type ReadGit } from './agentWorktreeGit.js';
|
|
14
|
+
import type { OrphanedWorkSentinelDeps, OrphanedWorkEvent } from './OrphanedWorkSentinel.js';
|
|
15
|
+
/**
|
|
16
|
+
* Build the production deps for the OrphanedWorkSentinel.
|
|
17
|
+
*
|
|
18
|
+
* @param opts.raiseAttention injected by the server wiring (needs the attention
|
|
19
|
+
* store); called with the durable event for ONE deduped attention item.
|
|
20
|
+
*/
|
|
21
|
+
export declare function makeOrphanedWorkSentinelDeps(opts: {
|
|
22
|
+
instarRepo: string;
|
|
23
|
+
worktreesDir: string;
|
|
24
|
+
stateDir: string;
|
|
25
|
+
raiseAttention: (event: OrphanedWorkEvent) => void;
|
|
26
|
+
readGit?: ReadGit;
|
|
27
|
+
cwdRoots?: () => Set<string>;
|
|
28
|
+
now?: () => number;
|
|
29
|
+
}): OrphanedWorkSentinelDeps;
|
|
30
|
+
//# sourceMappingURL=orphanedWorkGit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orphanedWorkGit.d.ts","sourceRoot":"","sources":["../../src/monitoring/orphanedWorkGit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAA+B,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EACV,wBAAwB,EAExB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAenC;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,GAAG,wBAAwB,CAwF3B"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git/fs-backed signal sources + side-effects for the OrphanedWorkSentinel.
|
|
3
|
+
* Kept separate from the classifier so the sentinel stays unit-testable with
|
|
4
|
+
* fakes. Reuses the AgentWorktreeReaper's git helpers (listWorktrees / isClean /
|
|
5
|
+
* isInUse) so worktree discovery + process-cwd liveness have ONE implementation.
|
|
6
|
+
*
|
|
7
|
+
* All git queries are read-only (SafeGitExecutor.readSync). "Preservation" is a
|
|
8
|
+
* NON-destructive patch write (git diff → a file under the state dir): it never
|
|
9
|
+
* mutates the worktree, its index, or any ref — the stranded work stays exactly
|
|
10
|
+
* where it is (this sentinel never removes a worktree), and the patch is belt-
|
|
11
|
+
* and-suspenders insurance against a LATER reaper.
|
|
12
|
+
*/
|
|
13
|
+
import fs from 'node:fs';
|
|
14
|
+
import path from 'node:path';
|
|
15
|
+
import crypto from 'node:crypto';
|
|
16
|
+
import { SafeGitExecutor } from '../core/SafeGitExecutor.js';
|
|
17
|
+
import { makeAgentWorktreeReaperDeps } from './agentWorktreeGit.js';
|
|
18
|
+
const readGitOpts = (cwd) => ({
|
|
19
|
+
cwd,
|
|
20
|
+
encoding: 'utf-8',
|
|
21
|
+
timeout: 30_000,
|
|
22
|
+
operation: 'src/monitoring/orphanedWorkGit.ts',
|
|
23
|
+
// The agent home is a checkout of the instar source tree, so reads trip the
|
|
24
|
+
// SourceTreeGuard without these. readSync still rejects any destructive shape.
|
|
25
|
+
sourceTreeReadOk: true,
|
|
26
|
+
sourceTreeWorktreeManagerOk: true,
|
|
27
|
+
});
|
|
28
|
+
const defaultReadGit = (args, cwd) => SafeGitExecutor.readSync(args, readGitOpts(cwd));
|
|
29
|
+
/**
|
|
30
|
+
* Build the production deps for the OrphanedWorkSentinel.
|
|
31
|
+
*
|
|
32
|
+
* @param opts.raiseAttention injected by the server wiring (needs the attention
|
|
33
|
+
* store); called with the durable event for ONE deduped attention item.
|
|
34
|
+
*/
|
|
35
|
+
export function makeOrphanedWorkSentinelDeps(opts) {
|
|
36
|
+
const readGit = opts.readGit ?? defaultReadGit;
|
|
37
|
+
// Reuse the reaper's git helpers for the shared signals (one implementation).
|
|
38
|
+
const base = makeAgentWorktreeReaperDeps({
|
|
39
|
+
instarRepo: opts.instarRepo,
|
|
40
|
+
worktreesDir: opts.worktreesDir,
|
|
41
|
+
readGit,
|
|
42
|
+
cwdRoots: opts.cwdRoots,
|
|
43
|
+
now: opts.now,
|
|
44
|
+
});
|
|
45
|
+
const eventsLog = path.join(opts.stateDir, 'orphaned-work.jsonl');
|
|
46
|
+
const patchesDir = path.join(opts.stateDir, 'orphaned-work-patches');
|
|
47
|
+
const porcelain = (p) => {
|
|
48
|
+
try {
|
|
49
|
+
return readGit(['-C', p, 'status', '--porcelain'], p);
|
|
50
|
+
}
|
|
51
|
+
catch { /* @silent-fallback-ok: best-effort porcelain ENRICHMENT for the captured detail/patch — the orphaned-work DETECTION itself runs through base.isClean()/hasUncommittedWork, never this helper; a failed status read just omits the detailed listing, it can never suppress a detection */
|
|
52
|
+
return '';
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const slug = (p) => path.basename(p).replace(/[^a-z0-9-]+/gi, '-');
|
|
56
|
+
return {
|
|
57
|
+
listWorktrees: () => base.listWorktrees(),
|
|
58
|
+
hasUncommittedWork: (p) => !base.isClean(p),
|
|
59
|
+
isInUse: (p) => base.isInUse(p),
|
|
60
|
+
workSignature: (p) => {
|
|
61
|
+
// Content-sensitive: the dirty file SET (porcelain) plus the tracked diff,
|
|
62
|
+
// so re-stranded work that GREW (new edits, not just the same files) gets a
|
|
63
|
+
// new signature and re-surfaces, while an unchanged frozen state dedupes.
|
|
64
|
+
let diff = '';
|
|
65
|
+
try {
|
|
66
|
+
diff = readGit(['-C', p, 'diff', 'HEAD'], p);
|
|
67
|
+
}
|
|
68
|
+
catch { /* best-effort */ }
|
|
69
|
+
return crypto.createHash('sha256').update(porcelain(p) + '\x00' + diff).digest('hex').slice(0, 12);
|
|
70
|
+
},
|
|
71
|
+
lastActivityMs: (p) => {
|
|
72
|
+
// Newest mtime among the DIRTY files + the index — bounded by the number of
|
|
73
|
+
// changed files (cheap), and exactly the set whose recency tells us whether
|
|
74
|
+
// the work is still being actively written.
|
|
75
|
+
let newest = 0;
|
|
76
|
+
const consider = (abs) => {
|
|
77
|
+
try {
|
|
78
|
+
const m = fs.statSync(abs).mtimeMs;
|
|
79
|
+
if (m > newest)
|
|
80
|
+
newest = m;
|
|
81
|
+
}
|
|
82
|
+
catch { /* missing/unreadable → ignore */ }
|
|
83
|
+
};
|
|
84
|
+
consider(path.join(p, '.git', 'index'));
|
|
85
|
+
for (const line of porcelain(p).split('\n')) {
|
|
86
|
+
const rel = line.slice(3).trim(); // strip the 2-char status + space
|
|
87
|
+
if (!rel)
|
|
88
|
+
continue;
|
|
89
|
+
// Rename lines look like "old -> new"; stat the new path.
|
|
90
|
+
const file = rel.includes(' -> ') ? rel.split(' -> ')[1] : rel;
|
|
91
|
+
consider(path.join(p, file));
|
|
92
|
+
}
|
|
93
|
+
return newest > 0 ? newest : null;
|
|
94
|
+
},
|
|
95
|
+
preserve: (info) => {
|
|
96
|
+
// NON-destructive: capture the tracked diff (read-only) + the untracked
|
|
97
|
+
// file list to a durable patch under the state dir. Never touches the
|
|
98
|
+
// worktree, its index, or any ref.
|
|
99
|
+
fs.mkdirSync(patchesDir, { recursive: true });
|
|
100
|
+
const diff = readGit(['-C', info.path, 'diff', 'HEAD'], info.path);
|
|
101
|
+
const untracked = readGit(['-C', info.path, 'ls-files', '--others', '--exclude-standard'], info.path);
|
|
102
|
+
const stamp = String(opts.now ? opts.now() : Date.now());
|
|
103
|
+
const file = path.join(patchesDir, `${slug(info.path)}-${stamp}.patch`);
|
|
104
|
+
const header = `# Orphaned-work preservation patch\n` +
|
|
105
|
+
`# worktree: ${info.path}\n` +
|
|
106
|
+
`# branch: ${info.branch ?? '(detached)'}\n` +
|
|
107
|
+
`# head: ${info.headSha}\n` +
|
|
108
|
+
`# untracked files (NOT in the diff below):\n` +
|
|
109
|
+
untracked.split('\n').filter(Boolean).map((u) => `# ${u}`).join('\n') +
|
|
110
|
+
`\n# --- tracked diff (git apply this) ---\n`;
|
|
111
|
+
fs.writeFileSync(file, header + diff, 'utf-8');
|
|
112
|
+
},
|
|
113
|
+
record: (event) => {
|
|
114
|
+
try {
|
|
115
|
+
fs.mkdirSync(opts.stateDir, { recursive: true });
|
|
116
|
+
fs.appendFileSync(eventsLog, JSON.stringify(event) + '\n', 'utf-8');
|
|
117
|
+
}
|
|
118
|
+
catch { /* recording is best-effort; never throw the scan pass */ }
|
|
119
|
+
},
|
|
120
|
+
raiseAttention: opts.raiseAttention,
|
|
121
|
+
now: opts.now,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=orphanedWorkGit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orphanedWorkGit.js","sourceRoot":"","sources":["../../src/monitoring/orphanedWorkGit.ts"],"names":[],"mappings":"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"}
|
|
@@ -434,6 +434,9 @@ export declare class AgentServer {
|
|
|
434
434
|
/** AgentWorktreeReaper — reclaims stale CLI worktrees. Powers
|
|
435
435
|
* GET /worktrees/agent-reaper. */
|
|
436
436
|
agentWorktreeReaper?: import('../monitoring/AgentWorktreeReaper.js').AgentWorktreeReaper;
|
|
437
|
+
/** OrphanedWorkSentinel — the silent-uncommitted-death backstop. Powers
|
|
438
|
+
* GET /orphaned-work. */
|
|
439
|
+
orphanedWorkSentinel?: import('../monitoring/OrphanedWorkSentinel.js').OrphanedWorkSentinel;
|
|
437
440
|
/** McpProcessReaper — reclaims leaked MCP-server children of dead/stale
|
|
438
441
|
* sessions. Powers GET /processes/mcp-reaper. */
|
|
439
442
|
mcpProcessReaper?: import('../monitoring/McpProcessReaper.js').McpProcessReaper;
|