baxian 2.0.28 → 2.0.29
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/agent/bootstrap.js +2 -2
- package/dist/agent/bootstrap.js.map +1 -1
- package/dist/agent/manager.d.ts +27 -1
- package/dist/agent/manager.d.ts.map +1 -1
- package/dist/agent/manager.js +244 -109
- package/dist/agent/manager.js.map +1 -1
- package/dist/agent/tmux-probe-poller.d.ts +12 -2
- package/dist/agent/tmux-probe-poller.d.ts.map +1 -1
- package/dist/agent/tmux-probe-poller.js +199 -57
- package/dist/agent/tmux-probe-poller.js.map +1 -1
- package/dist/agent/tmux.d.ts +16 -5
- package/dist/agent/tmux.d.ts.map +1 -1
- package/dist/agent/tmux.js +251 -39
- package/dist/agent/tmux.js.map +1 -1
- package/dist/api/config.d.ts.map +1 -1
- package/dist/api/config.js +38 -4
- package/dist/api/config.js.map +1 -1
- package/dist/api/projects.d.ts.map +1 -1
- package/dist/api/projects.js +112 -92
- package/dist/api/projects.js.map +1 -1
- package/dist/web/assets/{index-CItUtzU7.js → index-vQFMnvpO.js} +3 -3
- package/dist/web/index.html +1 -1
- package/package.json +2 -1
|
@@ -55,25 +55,35 @@ export declare class TmuxProbePoller {
|
|
|
55
55
|
private concurrency;
|
|
56
56
|
private failureThreshold;
|
|
57
57
|
private lastRecordedIssue;
|
|
58
|
+
private shellSightings;
|
|
59
|
+
private paneProbeFailures;
|
|
58
60
|
private lastScreen;
|
|
59
|
-
private
|
|
61
|
+
private instances;
|
|
62
|
+
private generations;
|
|
63
|
+
private inFlight;
|
|
60
64
|
private debouncers;
|
|
61
65
|
private lastPublishedState;
|
|
62
66
|
private now;
|
|
63
67
|
constructor(options: TmuxProbePollerOptions);
|
|
64
68
|
replaceConfig(validated: BaxianConfig): void;
|
|
65
69
|
purgeAgent(id: string): void;
|
|
70
|
+
private resetPaneIssueState;
|
|
66
71
|
private resetDetectionBaseline;
|
|
72
|
+
private indexInstances;
|
|
67
73
|
private isCurrentInstance;
|
|
68
|
-
private commitObservation;
|
|
69
74
|
private detectViaManifest;
|
|
70
75
|
start(): void;
|
|
71
76
|
stop(): void;
|
|
72
77
|
pollOnce(): Promise<void>;
|
|
78
|
+
confirmReplReady(agentId: string): Promise<void>;
|
|
79
|
+
probeAgent(agentId: string): Promise<void>;
|
|
73
80
|
private probeConfiguredAgents;
|
|
74
81
|
private probe;
|
|
82
|
+
private probeInstance;
|
|
75
83
|
private observePresentSession;
|
|
76
84
|
private screenStaticForGrace;
|
|
85
|
+
private trackShellSightings;
|
|
86
|
+
private breakUnconfirmedShellStreak;
|
|
77
87
|
private issueForPaneState;
|
|
78
88
|
private recordRuntimeIssue;
|
|
79
89
|
private recordProbeError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tmux-probe-poller.d.ts","sourceRoot":"","sources":["../../src/agent/tmux-probe-poller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAe,KAAK,cAAc,EAAyB,MAAM,WAAW,CAAC;AAKpF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,gCAAgC,GAAG,KAAK,GAAG,QAAQ,CAAC;AAChE,MAAM,MAAM,8BAA8B,GAAG,CAC3C,IAAI,EAAE,gCAAgC,EACtC,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;AAEV,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,SAAS,CAA6C;IAE9D,QAAQ,CAAC,EAAE,EAAE,8BAA8B,GAAG,MAAM,IAAI;IAKxD,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB;IAI5C,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,GAAG,IAAI;IAqBzD,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAIhC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM7B,OAAO,CAAC,IAAI;CASb;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,aAAa,CAAC;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"tmux-probe-poller.d.ts","sourceRoot":"","sources":["../../src/agent/tmux-probe-poller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
|
-
import { createRunner, resolveAgentHost } from './runner.js';
|
|
2
|
+
import { createRunner, hostGroupKey, resolveAgentHost } from './runner.js';
|
|
3
3
|
import { TmuxManager } from './tmux.js';
|
|
4
4
|
import { classifyScreen } from './detect/classify.js';
|
|
5
5
|
import { WorkingToIdleDebounce } from './detect/debounce.js';
|
|
@@ -57,6 +57,8 @@ export class TmuxSessionStatusStore {
|
|
|
57
57
|
}
|
|
58
58
|
const DEFAULT_FAILURE_THRESHOLD = 2;
|
|
59
59
|
const PENDING_IDLE_AFTER_MS = 5 * 60 * 1000;
|
|
60
|
+
// 探测间隔可低至 1s,只按次数计会把 runtime 冷启动/远程慢 shell 的正常窗口记成退出:还要求 shell 持续满这段时间
|
|
61
|
+
const RUNTIME_EXIT_GRACE_MS = 20 * 1000;
|
|
60
62
|
export class TmuxProbePoller {
|
|
61
63
|
periodicRunner;
|
|
62
64
|
failureCounts = new Map();
|
|
@@ -71,8 +73,12 @@ export class TmuxProbePoller {
|
|
|
71
73
|
concurrency;
|
|
72
74
|
failureThreshold;
|
|
73
75
|
lastRecordedIssue = new Map();
|
|
76
|
+
shellSightings = new Map();
|
|
77
|
+
paneProbeFailures = new Map();
|
|
74
78
|
lastScreen = new Map();
|
|
75
|
-
|
|
79
|
+
instances = new Map();
|
|
80
|
+
generations = 0;
|
|
81
|
+
inFlight = new Map();
|
|
76
82
|
debouncers = new Map();
|
|
77
83
|
lastPublishedState = new Map();
|
|
78
84
|
now;
|
|
@@ -88,7 +94,7 @@ export class TmuxProbePoller {
|
|
|
88
94
|
this.probeTimeoutMs = options.probeTimeoutMs ?? options.config.server.tmuxProbeTimeoutMs;
|
|
89
95
|
this.concurrency = options.concurrency ?? options.config.server.tmuxProbeConcurrency;
|
|
90
96
|
this.failureThreshold = options.failureThreshold ?? DEFAULT_FAILURE_THRESHOLD;
|
|
91
|
-
this.
|
|
97
|
+
this.instances = this.indexInstances(options.config);
|
|
92
98
|
this.periodicRunner = new PeriodicTaskRunner({
|
|
93
99
|
name: 'tmux-probe-poller',
|
|
94
100
|
intervalMs: this.pollIntervalMs,
|
|
@@ -98,15 +104,26 @@ export class TmuxProbePoller {
|
|
|
98
104
|
}
|
|
99
105
|
replaceConfig(validated) {
|
|
100
106
|
this.config = validated;
|
|
101
|
-
|
|
107
|
+
const previous = this.instances;
|
|
108
|
+
this.instances = this.indexInstances(validated);
|
|
109
|
+
for (const [id, instance] of this.instances) {
|
|
110
|
+
const before = previous.get(id);
|
|
111
|
+
// 换代即另一个实例:失败计数、连击、去重键、检测基线与旧观测都不得跨代延续
|
|
112
|
+
if (before && before.generation !== instance.generation)
|
|
113
|
+
this.purgeAgent(id);
|
|
114
|
+
// 连续失败计数属于连接:凭据或端点换了从零数起,旧连接的失败不给新连接垫底;pane 侧状态照旧保留
|
|
115
|
+
else if (before && before.connection !== instance.connection)
|
|
116
|
+
this.failureCounts.delete(id);
|
|
117
|
+
}
|
|
102
118
|
const allKnownIds = new Set([
|
|
103
119
|
...this.failureCounts.keys(),
|
|
120
|
+
...this.paneProbeFailures.keys(),
|
|
104
121
|
...this.lastRecordedIssue.keys(),
|
|
105
122
|
...this.lastScreen.keys(),
|
|
106
123
|
...this.store.keys(),
|
|
107
124
|
]);
|
|
108
125
|
for (const id of allKnownIds) {
|
|
109
|
-
if (!this.
|
|
126
|
+
if (!this.instances.has(id))
|
|
110
127
|
this.purgeAgent(id);
|
|
111
128
|
}
|
|
112
129
|
this.probeTimeoutMs = validated.server.tmuxProbeTimeoutMs;
|
|
@@ -117,26 +134,41 @@ export class TmuxProbePoller {
|
|
|
117
134
|
this.periodicRunner.reschedule(nextIntervalMs);
|
|
118
135
|
}
|
|
119
136
|
}
|
|
137
|
+
// purge 也让在途探测作废:已拿到 absent、正卡在 reconcile 等锁的旧探测不能再对重建后的 agent 生效,换代是它们唯一认的栅栏
|
|
120
138
|
purgeAgent(id) {
|
|
139
|
+
const instance = this.instances.get(id);
|
|
140
|
+
if (instance)
|
|
141
|
+
this.instances.set(id, { ...instance, generation: ++this.generations });
|
|
121
142
|
this.failureCounts.delete(id);
|
|
143
|
+
this.resetPaneIssueState(id);
|
|
144
|
+
this.store.delete(id);
|
|
145
|
+
}
|
|
146
|
+
resetPaneIssueState(id) {
|
|
122
147
|
this.lastRecordedIssue.delete(id);
|
|
148
|
+
this.shellSightings.delete(id);
|
|
149
|
+
this.paneProbeFailures.delete(id);
|
|
123
150
|
this.resetDetectionBaseline(id);
|
|
124
|
-
this.store.delete(id);
|
|
125
151
|
}
|
|
126
152
|
resetDetectionBaseline(id) {
|
|
127
153
|
this.lastScreen.delete(id);
|
|
128
154
|
this.debouncers.delete(id);
|
|
129
155
|
this.lastPublishedState.delete(id);
|
|
130
156
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
this.
|
|
137
|
-
|
|
157
|
+
// 热重载会重建整棵配置对象树,实例身份只能按内容认:同 ID 且被探测的 pane 与解读方式没变才是同一代
|
|
158
|
+
indexInstances(config) {
|
|
159
|
+
const next = new Map();
|
|
160
|
+
for (const [id, agent] of buildInstanceIndex(config)) {
|
|
161
|
+
const signature = probeSignature(config, agent);
|
|
162
|
+
const previous = this.instances.get(id);
|
|
163
|
+
const generation = previous?.signature === signature ? previous.generation : ++this.generations;
|
|
164
|
+
next.set(id, { agent, signature, connection: connectionSignature(config, agent), generation });
|
|
138
165
|
}
|
|
139
|
-
|
|
166
|
+
return next;
|
|
167
|
+
}
|
|
168
|
+
// 换代/换连接只发生在 await 期间:每个 await 之后先 fencing 再碰按实例累计的状态;过期探测直接放弃,不清当前代的状态
|
|
169
|
+
isCurrentInstance({ agent, generation, connection }) {
|
|
170
|
+
const current = this.instances.get(agent.id);
|
|
171
|
+
return current?.generation === generation && current.connection === connection;
|
|
140
172
|
}
|
|
141
173
|
detectViaManifest(agentId, runtime, runtimeScreen, oscTitle) {
|
|
142
174
|
const detection = classifyScreen(runtime, runtimeScreen, oscTitle);
|
|
@@ -161,11 +193,40 @@ export class TmuxProbePoller {
|
|
|
161
193
|
async pollOnce() {
|
|
162
194
|
await this.periodicRunner.runOnce();
|
|
163
195
|
}
|
|
196
|
+
// 维护路径(restart-repl / retry)刚亲眼确认 REPL 就绪:作废旧结论后先按这一事实落 present,再立即重看;重看瞬时失败(未到阈值不落库)时留下的是已确认的 present 而不是 unknown
|
|
197
|
+
async confirmReplReady(agentId) {
|
|
198
|
+
this.purgeAgent(agentId);
|
|
199
|
+
if (!this.instances.has(agentId))
|
|
200
|
+
return;
|
|
201
|
+
const now = new Date().toISOString();
|
|
202
|
+
this.store.set(agentId, { tmuxSessionStatus: 'present', observedAt: now, lastPresentAt: now, paneState: 'live-runtime' });
|
|
203
|
+
await this.probeAgent(agentId);
|
|
204
|
+
}
|
|
205
|
+
async probeAgent(agentId) {
|
|
206
|
+
if (this.instances.has(agentId))
|
|
207
|
+
await this.probe(agentId);
|
|
208
|
+
}
|
|
164
209
|
async probeConfiguredAgents() {
|
|
165
|
-
const
|
|
166
|
-
await runWithConcurrency(
|
|
210
|
+
const ids = [...this.instances.keys()];
|
|
211
|
+
await runWithConcurrency(ids, Math.max(1, this.concurrency), id => this.probe(id));
|
|
212
|
+
}
|
|
213
|
+
// 同一 agent 的探测串行:即时探测排在进行中的定时探测之后,最后落库的一定是最新的观测
|
|
214
|
+
// 排队的是 agent id 而不是实例:轮到执行才取当前实例,排队期间热重载换掉的 host 引用不会拿去查新配置树
|
|
215
|
+
probe(id) {
|
|
216
|
+
const run = (this.inFlight.get(id) ?? Promise.resolve()).then(() => {
|
|
217
|
+
const instance = this.instances.get(id);
|
|
218
|
+
return instance ? this.probeInstance(instance) : undefined;
|
|
219
|
+
});
|
|
220
|
+
const settled = run.catch(() => undefined);
|
|
221
|
+
this.inFlight.set(id, settled);
|
|
222
|
+
void settled.then(() => {
|
|
223
|
+
if (this.inFlight.get(id) === settled)
|
|
224
|
+
this.inFlight.delete(id);
|
|
225
|
+
});
|
|
226
|
+
return run;
|
|
167
227
|
}
|
|
168
|
-
async
|
|
228
|
+
async probeInstance(instance) {
|
|
229
|
+
const { agent } = instance;
|
|
169
230
|
let tmux;
|
|
170
231
|
let result;
|
|
171
232
|
try {
|
|
@@ -181,43 +242,50 @@ export class TmuxProbePoller {
|
|
|
181
242
|
error: err instanceof Error ? err.message : String(err),
|
|
182
243
|
};
|
|
183
244
|
}
|
|
184
|
-
if (!this.isCurrentInstance(
|
|
185
|
-
this.purgeAgent(agent.id);
|
|
245
|
+
if (!this.isCurrentInstance(instance))
|
|
186
246
|
return;
|
|
187
|
-
|
|
247
|
+
// 只有确实看到 pane 的探测才能延续 shell 候选连击;已发布的 RUNTIME_EXITED 不因一次瞬时探测失败而"假恢复"
|
|
248
|
+
if (result.tmuxSessionStatus !== 'present')
|
|
249
|
+
this.breakUnconfirmedShellStreak(agent.id);
|
|
188
250
|
const now = new Date().toISOString();
|
|
189
251
|
const previousEntry = this.store.get(agent.id);
|
|
190
252
|
const previous = previousEntry.tmuxSessionStatus;
|
|
191
253
|
if (result.tmuxSessionStatus === 'unreachable') {
|
|
192
254
|
const failures = (this.failureCounts.get(agent.id) ?? 0) + 1;
|
|
193
|
-
this.
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
const latestError = await this.recordProbeError(agent, now, result.error);
|
|
197
|
-
this.commitObservation(agent, {
|
|
198
|
-
tmuxSessionStatus: 'unreachable',
|
|
199
|
-
observedAt: now,
|
|
200
|
-
...(previousEntry.lastPresentAt ? { lastPresentAt: previousEntry.lastPresentAt } : {}),
|
|
201
|
-
error: result.error,
|
|
202
|
-
...(latestError ? { latestError } : {}),
|
|
203
|
-
});
|
|
204
|
-
this.logTransition(agent.id, previous, 'unreachable', result.error);
|
|
255
|
+
if (failures < this.failureThreshold) {
|
|
256
|
+
this.failureCounts.set(agent.id, failures);
|
|
257
|
+
return;
|
|
205
258
|
}
|
|
259
|
+
const latestError = await this.recordProbeError(agent, now, result.error);
|
|
260
|
+
// 计数、pane 结论作废与发布都落在落盘之后的 fence 后面:落盘期间连接换了,这次旧凭据失败对新连接什么都不留
|
|
261
|
+
if (!this.isCurrentInstance(instance))
|
|
262
|
+
return;
|
|
263
|
+
this.failureCounts.set(agent.id, failures);
|
|
264
|
+
// 发布 unreachable 即失去对 pane 的确认:pane 级结论、连击与去重键一并作废,恢复后重新确认并落新记录
|
|
265
|
+
this.resetPaneIssueState(agent.id);
|
|
266
|
+
this.store.set(agent.id, {
|
|
267
|
+
tmuxSessionStatus: 'unreachable',
|
|
268
|
+
observedAt: now,
|
|
269
|
+
...(previousEntry.lastPresentAt ? { lastPresentAt: previousEntry.lastPresentAt } : {}),
|
|
270
|
+
error: result.error,
|
|
271
|
+
...(latestError ? { latestError } : {}),
|
|
272
|
+
});
|
|
273
|
+
this.logTransition(agent.id, previous, 'unreachable', result.error);
|
|
206
274
|
return;
|
|
207
275
|
}
|
|
208
276
|
this.failureCounts.delete(agent.id);
|
|
209
277
|
const presentProbe = result.tmuxSessionStatus === 'present' && tmux
|
|
210
|
-
? await this.observePresentSession(
|
|
278
|
+
? await this.observePresentSession(instance, tmux, now)
|
|
211
279
|
: {};
|
|
280
|
+
if (presentProbe === 'stale' || !this.isCurrentInstance(instance))
|
|
281
|
+
return;
|
|
212
282
|
const effectiveStatus = result.tmuxSessionStatus === 'present' && presentProbe === undefined
|
|
213
283
|
? 'absent'
|
|
214
284
|
: result.tmuxSessionStatus;
|
|
215
285
|
const presentDetails = presentProbe === undefined ? {} : presentProbe;
|
|
216
|
-
if (effectiveStatus !== 'present')
|
|
217
|
-
this.
|
|
218
|
-
|
|
219
|
-
}
|
|
220
|
-
this.commitObservation(agent, {
|
|
286
|
+
if (effectiveStatus !== 'present')
|
|
287
|
+
this.resetPaneIssueState(agent.id);
|
|
288
|
+
this.store.set(agent.id, {
|
|
221
289
|
tmuxSessionStatus: effectiveStatus,
|
|
222
290
|
observedAt: now,
|
|
223
291
|
...(effectiveStatus === 'present' ? { lastPresentAt: now } : {}),
|
|
@@ -226,20 +294,26 @@ export class TmuxProbePoller {
|
|
|
226
294
|
this.logTransition(agent.id, previous, effectiveStatus);
|
|
227
295
|
if (effectiveStatus === 'absent') {
|
|
228
296
|
try {
|
|
229
|
-
await this.agentManager.reconcileFailedAgent(agent.id);
|
|
297
|
+
await this.agentManager.reconcileFailedAgent(agent.id, { stillCurrent: () => this.isCurrentInstance(instance) });
|
|
230
298
|
}
|
|
231
299
|
catch (err) {
|
|
232
300
|
console.error(`[tmux-probe] reconcileFailedAgent ${agent.id} threw:`, err);
|
|
233
301
|
}
|
|
234
302
|
}
|
|
235
303
|
}
|
|
236
|
-
async observePresentSession(
|
|
304
|
+
async observePresentSession(instance, tmux, occurredAt) {
|
|
305
|
+
const { agent } = instance;
|
|
306
|
+
let paneState;
|
|
237
307
|
try {
|
|
238
308
|
const snapshot = await tmux.getSessionSnapshot(agent.id, { timeout: this.probeTimeoutMs });
|
|
239
309
|
if (!snapshot || snapshot.claim !== agent.id)
|
|
240
310
|
return undefined;
|
|
241
311
|
const pane = await tmux.getSinglePaneByRef(snapshot.ref, agent.id, { timeout: this.probeTimeoutMs });
|
|
242
|
-
|
|
312
|
+
paneState = await tmux.classifyPaneForAdopt(pane, agent.runtime, { timeout: this.probeTimeoutMs });
|
|
313
|
+
if (!this.isCurrentInstance(instance))
|
|
314
|
+
return 'stale';
|
|
315
|
+
this.paneProbeFailures.delete(agent.id);
|
|
316
|
+
const runtimeExited = this.trackShellSightings(agent.id, paneState);
|
|
243
317
|
const liveRuntime = paneState.kind === 'live-runtime';
|
|
244
318
|
const [runtimeScreen, currentTaskId, oscTitle, paneWidth] = liveRuntime
|
|
245
319
|
? await Promise.all([
|
|
@@ -258,6 +332,8 @@ export class TmuxProbePoller {
|
|
|
258
332
|
.catch(() => 0),
|
|
259
333
|
])
|
|
260
334
|
: ['', null, '', 0];
|
|
335
|
+
if (!this.isCurrentInstance(instance))
|
|
336
|
+
return 'stale';
|
|
261
337
|
const manifestResult = liveRuntime
|
|
262
338
|
? this.detectViaManifest(agent.id, agent.runtime, runtimeScreen, oscTitle)
|
|
263
339
|
: undefined;
|
|
@@ -282,13 +358,15 @@ export class TmuxProbePoller {
|
|
|
282
358
|
this.resetDetectionBaseline(agent.id);
|
|
283
359
|
}
|
|
284
360
|
if (manifestResult === 'skip') {
|
|
285
|
-
|
|
361
|
+
// skip 只说明屏幕不可读,能继承的只有同样来自 live-runtime 的上一轮观察;RUNTIME_EXITED 这类 pane 级结论已被 live-runtime 推翻
|
|
362
|
+
const last = this.store.get(agent.id);
|
|
363
|
+
const inherit = last.paneState === 'live-runtime';
|
|
364
|
+
// 不继承即视为该问题已解除:去重键一并清掉,否则下一次同类问题会命中旧键而不再落 error record
|
|
365
|
+
if (!inherit)
|
|
366
|
+
this.lastRecordedIssue.delete(agent.id);
|
|
286
367
|
return {
|
|
368
|
+
...(inherit ? paneConclusionOf(last) : {}),
|
|
287
369
|
paneState: paneState.kind,
|
|
288
|
-
...(prev.runtimeStatusHint ? { runtimeStatusHint: prev.runtimeStatusHint } : {}),
|
|
289
|
-
...(prev.reason ? { reason: prev.reason } : {}),
|
|
290
|
-
...(prev.message ? { message: prev.message } : {}),
|
|
291
|
-
...(prev.latestError ? { latestError: prev.latestError } : {}),
|
|
292
370
|
};
|
|
293
371
|
}
|
|
294
372
|
const pending = detected?.published === 'pending';
|
|
@@ -296,7 +374,7 @@ export class TmuxProbePoller {
|
|
|
296
374
|
const screenStatic = !pending && this.screenStaticForGrace(agent.id, paneState);
|
|
297
375
|
const stuckBusy = busy && screenStatic && (detected?.visibleWorking ?? false);
|
|
298
376
|
const pendingIdle = !busy && screenStatic;
|
|
299
|
-
const issue = this.issueForPaneState(paneState, pending, pendingIdle, stuckBusy);
|
|
377
|
+
const issue = this.issueForPaneState(paneState, pending, pendingIdle, stuckBusy, runtimeExited);
|
|
300
378
|
if (!issue) {
|
|
301
379
|
this.lastRecordedIssue.delete(agent.id);
|
|
302
380
|
return {
|
|
@@ -314,7 +392,19 @@ export class TmuxProbePoller {
|
|
|
314
392
|
};
|
|
315
393
|
}
|
|
316
394
|
catch (err) {
|
|
395
|
+
if (!this.isCurrentInstance(instance))
|
|
396
|
+
return 'stale';
|
|
397
|
+
const failures = (this.paneProbeFailures.get(agent.id) ?? 0) + 1;
|
|
398
|
+
this.paneProbeFailures.set(agent.id, failures);
|
|
399
|
+
const last = this.store.get(agent.id);
|
|
400
|
+
// 一次看不到 pane 推翻不了已确认的 RUNTIME_EXITED(与 unreachable 同一阈值);但前台已确认不是 shell 就是直接反证,不延续
|
|
401
|
+
const foregroundStillShell = paneState === undefined || paneState.kind === 'shell';
|
|
402
|
+
if (foregroundStillShell && last.reason === 'RUNTIME_EXITED' && failures < this.failureThreshold) {
|
|
403
|
+
console.warn(`[tmux-probe] ${agent.id} pane probe failed (${failures}/${this.failureThreshold}); keeping RUNTIME_EXITED:`, err);
|
|
404
|
+
return paneConclusionOf(last);
|
|
405
|
+
}
|
|
317
406
|
this.resetDetectionBaseline(agent.id);
|
|
407
|
+
this.shellSightings.delete(agent.id);
|
|
318
408
|
const message = err instanceof Error ? err.message : String(err);
|
|
319
409
|
const issue = {
|
|
320
410
|
runtimeStatusHint: 'error',
|
|
@@ -338,7 +428,31 @@ export class TmuxProbePoller {
|
|
|
338
428
|
return false;
|
|
339
429
|
return this.now() - entry.changedAt > PENDING_IDLE_AFTER_MS;
|
|
340
430
|
}
|
|
341
|
-
|
|
431
|
+
// 启动与 Restart REPL 都会让 pane 短暂停在 shell:连续多次且持续够久才算 runtime 真的退出
|
|
432
|
+
trackShellSightings(agentId, paneState) {
|
|
433
|
+
if (paneState.kind !== 'shell') {
|
|
434
|
+
this.shellSightings.delete(agentId);
|
|
435
|
+
return false;
|
|
436
|
+
}
|
|
437
|
+
const now = this.now();
|
|
438
|
+
const streak = this.shellSightings.get(agentId) ?? { count: 0, since: now };
|
|
439
|
+
streak.count += 1;
|
|
440
|
+
this.shellSightings.set(agentId, streak);
|
|
441
|
+
return streak.count >= this.failureThreshold && now - streak.since >= RUNTIME_EXIT_GRACE_MS;
|
|
442
|
+
}
|
|
443
|
+
breakUnconfirmedShellStreak(agentId) {
|
|
444
|
+
if (this.store.get(agentId).reason !== 'RUNTIME_EXITED')
|
|
445
|
+
this.shellSightings.delete(agentId);
|
|
446
|
+
}
|
|
447
|
+
issueForPaneState(paneState, pendingRuntimeMenu, pendingIdle, stuckBusy, runtimeExited) {
|
|
448
|
+
if (runtimeExited) {
|
|
449
|
+
return {
|
|
450
|
+
runtimeStatusHint: 'error',
|
|
451
|
+
reason: 'RUNTIME_EXITED',
|
|
452
|
+
message: 'Agent runtime is no longer running — the pane sits at a shell prompt, so prompts sent to it would land in the shell.',
|
|
453
|
+
recommendation: 'Use Restart REPL on the agent card to relaunch the runtime, then inspect why it exited.',
|
|
454
|
+
};
|
|
455
|
+
}
|
|
342
456
|
if (pendingRuntimeMenu) {
|
|
343
457
|
return {
|
|
344
458
|
runtimeStatusHint: 'pending',
|
|
@@ -380,10 +494,12 @@ export class TmuxProbePoller {
|
|
|
380
494
|
if (!this.errorRecordStore)
|
|
381
495
|
return undefined;
|
|
382
496
|
const key = `${issue.reason}:${issue.message}`;
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
497
|
+
const recorded = this.lastRecordedIssue.get(agent.id);
|
|
498
|
+
// 去重命中要返回这个键自己的记录:store 里的 latestError 可能已被中途发布的 unreachable 记录顶掉
|
|
499
|
+
if (recorded?.key === key)
|
|
500
|
+
return recorded.summary;
|
|
501
|
+
const entry = { key };
|
|
502
|
+
this.lastRecordedIssue.set(agent.id, entry);
|
|
387
503
|
const projectId = projectIdForAgent(this.config, agent.id) ?? '';
|
|
388
504
|
try {
|
|
389
505
|
const record = await this.errorRecordStore.append({
|
|
@@ -397,11 +513,12 @@ export class TmuxProbePoller {
|
|
|
397
513
|
tmuxSessionStatus: 'present',
|
|
398
514
|
runtimeStatusHint: issue.runtimeStatusHint,
|
|
399
515
|
},
|
|
400
|
-
recommendation: issue.runtimeStatusHint === 'pending'
|
|
516
|
+
recommendation: issue.recommendation ?? (issue.runtimeStatusHint === 'pending'
|
|
401
517
|
? 'Open the web terminal and complete the pending prompt.'
|
|
402
|
-
: 'Inspect the pane before assigning more work to this agent.',
|
|
518
|
+
: 'Inspect the pane before assigning more work to this agent.'),
|
|
403
519
|
});
|
|
404
|
-
|
|
520
|
+
entry.summary = this.errorRecordStore.toSummary(record);
|
|
521
|
+
return entry.summary;
|
|
405
522
|
}
|
|
406
523
|
catch (err) {
|
|
407
524
|
console.warn(`[tmux-probe] record runtime issue for ${agent.id} failed:`, err);
|
|
@@ -443,8 +560,33 @@ export class TmuxProbePoller {
|
|
|
443
560
|
}
|
|
444
561
|
}
|
|
445
562
|
}
|
|
446
|
-
|
|
447
|
-
|
|
563
|
+
// alias / 密码 / 模型 / workdir 这类展示与启动参数改了,正在运行的 pane 与它的屏幕解读都不变,不算换代
|
|
564
|
+
function probeSignature(config, agent) {
|
|
565
|
+
return JSON.stringify({
|
|
566
|
+
runtime: agent.runtime,
|
|
567
|
+
mode: agent.mode,
|
|
568
|
+
host: hostGroupKey(agent.mode, resolveAgentHost(config.host, agent.host)),
|
|
569
|
+
});
|
|
570
|
+
}
|
|
571
|
+
// 凭据只影响那一次连接:密码轮换不换代(pane 状态保留),但持旧凭据建立的在途探测结果一律作废,失败不能记到新配置头上
|
|
572
|
+
function connectionSignature(config, agent) {
|
|
573
|
+
const host = resolveAgentHost(config.host, agent.host);
|
|
574
|
+
return JSON.stringify({
|
|
575
|
+
mode: agent.mode,
|
|
576
|
+
hostname: host?.hostname,
|
|
577
|
+
port: host?.port,
|
|
578
|
+
user: host?.user,
|
|
579
|
+
password: host?.password,
|
|
580
|
+
});
|
|
581
|
+
}
|
|
582
|
+
function paneConclusionOf(last) {
|
|
583
|
+
return {
|
|
584
|
+
...(last.paneState ? { paneState: last.paneState } : {}),
|
|
585
|
+
...(last.runtimeStatusHint ? { runtimeStatusHint: last.runtimeStatusHint } : {}),
|
|
586
|
+
...(last.reason ? { reason: last.reason } : {}),
|
|
587
|
+
...(last.message ? { message: last.message } : {}),
|
|
588
|
+
...(last.latestError ? { latestError: last.latestError } : {}),
|
|
589
|
+
};
|
|
448
590
|
}
|
|
449
591
|
function buildInstanceIndex(config) {
|
|
450
592
|
const byId = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tmux-probe-poller.js","sourceRoot":"","sources":["../../src/agent/tmux-probe-poller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tmux-probe-poller.js","sourceRoot":"","sources":["../../src/agent/tmux-probe-poller.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/tmux.d.ts
CHANGED
|
@@ -72,6 +72,7 @@ export interface WaitOpts {
|
|
|
72
72
|
}
|
|
73
73
|
export interface WaitReplReadyOpts extends WaitOpts {
|
|
74
74
|
failFastOnShell?: boolean;
|
|
75
|
+
runtimeSeen?: boolean;
|
|
75
76
|
scrollback?: number;
|
|
76
77
|
perCommandTimeoutMs?: number;
|
|
77
78
|
titleIdleFastPath?: boolean;
|
|
@@ -140,18 +141,28 @@ export declare class TmuxManager {
|
|
|
140
141
|
setServerOption(key: string, value: string): Promise<void>;
|
|
141
142
|
appendServerOptionIfMissing(key: string, value: string): Promise<void>;
|
|
142
143
|
sendKeysToPane(pane: PaneRef, ...keys: string[]): Promise<void>;
|
|
143
|
-
sendKeysLiteral(pane: PaneRef, text: string): Promise<void>;
|
|
144
|
+
sendKeysLiteral(pane: PaneRef, text: string, runtime?: AgentRuntimeKind): Promise<void>;
|
|
145
|
+
sendKeysToRuntime(pane: PaneRef, runtime: AgentRuntimeKind, ...keys: string[]): Promise<void>;
|
|
146
|
+
submitToRuntime(pane: PaneRef, runtime: AgentRuntimeKind, text: string): Promise<void>;
|
|
147
|
+
private guardedForegroundWrite;
|
|
148
|
+
private writeIfRuntimeForeground;
|
|
149
|
+
private discardShellInputLine;
|
|
150
|
+
submitCommandOnShell(pane: PaneRef, command: string, opts?: ExecOptions): Promise<void>;
|
|
151
|
+
private reconcileShellWrite;
|
|
144
152
|
capturePaneById(pane: PaneRef, opts?: CapturePaneOpts): Promise<string>;
|
|
145
|
-
injectPrompt(pane: PaneRef, prompt: string, agentId: string): Promise<void>;
|
|
153
|
+
injectPrompt(pane: PaneRef, prompt: string, agentId: string, runtime: AgentRuntimeKind): Promise<void>;
|
|
146
154
|
private reconcileInjectBuffer;
|
|
147
155
|
stagePromptBuffer(paneId: string, prompt: string, agentId: string): Promise<{
|
|
148
156
|
buf: string;
|
|
149
157
|
}>;
|
|
150
|
-
pasteStagedBuffer(
|
|
158
|
+
pasteStagedBuffer(pane: PaneRef, buf: string, runtime: AgentRuntimeKind): Promise<void>;
|
|
151
159
|
dropStagedBuffer(buf: string): Promise<void>;
|
|
152
160
|
capturePaneSnapshot(pane: PaneRef, runtime?: AgentRuntimeKind): Promise<string>;
|
|
153
|
-
sendEnter(pane: PaneRef): Promise<void>;
|
|
154
|
-
clearComposerDraft(pane: PaneRef): Promise<void>;
|
|
161
|
+
sendEnter(pane: PaneRef, runtime?: AgentRuntimeKind): Promise<void>;
|
|
162
|
+
clearComposerDraft(pane: PaneRef, runtime: AgentRuntimeKind, opts?: WaitOpts): Promise<void>;
|
|
163
|
+
private readComposerFrame;
|
|
164
|
+
private waitComposerFrameChange;
|
|
165
|
+
private captureForDiagnosis;
|
|
155
166
|
captureSettledSnapshot(pane: PaneRef, opts?: WaitOpts & {
|
|
156
167
|
runtime?: AgentRuntimeKind;
|
|
157
168
|
}): Promise<string>;
|