@scotthuang/agent-knock-knock 0.2.47 → 0.2.48
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/CHANGELOG.md +27 -0
- package/README.md +73 -50
- package/dist/src/approval-policy.d.ts +2 -1
- package/dist/src/approval-policy.js +12 -4
- package/dist/src/approval-policy.js.map +1 -1
- package/dist/src/claude-hook-store.js +17 -6
- package/dist/src/claude-hook-store.js.map +1 -1
- package/dist/src/claude-terminal-agent-adapter.js +16 -1
- package/dist/src/claude-terminal-agent-adapter.js.map +1 -1
- package/dist/src/cli.js +1037 -172
- package/dist/src/cli.js.map +1 -1
- package/dist/src/openclaw-plugin-helpers.d.ts +49 -0
- package/dist/src/openclaw-plugin-helpers.js +246 -0
- package/dist/src/openclaw-plugin-helpers.js.map +1 -0
- package/dist/src/openclaw-plugin.js +92 -269
- package/dist/src/openclaw-plugin.js.map +1 -1
- package/dist/src/runtime-log.js +54 -2
- package/dist/src/runtime-log.js.map +1 -1
- package/dist/src/store.js +432 -12
- package/dist/src/store.js.map +1 -1
- package/dist/src/terminal-agent-adapter.d.ts +3 -0
- package/dist/src/terminal-agent-adapter.js.map +1 -1
- package/dist/src/terminal-agent-bridge.d.ts +32 -2
- package/dist/src/terminal-agent-bridge.js +192 -34
- package/dist/src/terminal-agent-bridge.js.map +1 -1
- package/dist/src/terminal-control-provider.d.ts +3 -1
- package/dist/src/terminal-control-provider.js +41 -37
- package/dist/src/terminal-control-provider.js.map +1 -1
- package/dist/src/terminal-process-source.d.ts +12 -3
- package/dist/src/terminal-process-source.js +37 -6
- package/dist/src/terminal-process-source.js.map +1 -1
- package/openclaw.plugin.json +2 -2
- package/package.json +10 -5
- package/templates/openclaw-skills/agent-knock-knock/SKILL.md +4 -18
|
@@ -18,6 +18,7 @@ export interface TerminalBridgeStatus {
|
|
|
18
18
|
label?: string;
|
|
19
19
|
prompt_kind?: string;
|
|
20
20
|
command?: string;
|
|
21
|
+
cwd?: string;
|
|
21
22
|
tool_name?: string;
|
|
22
23
|
request_detail?: string;
|
|
23
24
|
reason?: string;
|
|
@@ -49,6 +50,7 @@ export interface TerminalApprovalExecution {
|
|
|
49
50
|
label?: string;
|
|
50
51
|
promptKind?: string;
|
|
51
52
|
command?: string;
|
|
53
|
+
cwd?: string;
|
|
52
54
|
toolName?: string;
|
|
53
55
|
requestDetail?: string;
|
|
54
56
|
fingerprint?: string;
|
|
@@ -56,6 +58,26 @@ export interface TerminalApprovalExecution {
|
|
|
56
58
|
decisionMode?: "keys" | "structured";
|
|
57
59
|
requestId?: string;
|
|
58
60
|
}
|
|
61
|
+
export interface TerminalIdentityVerificationRequest {
|
|
62
|
+
agent: ExecutorKind;
|
|
63
|
+
pid: number;
|
|
64
|
+
terminalControl: TerminalControlRef;
|
|
65
|
+
}
|
|
66
|
+
export interface TerminalIdentityVerificationResult {
|
|
67
|
+
terminalControl?: TerminalControlRef;
|
|
68
|
+
}
|
|
69
|
+
export type TerminalIdentityVerifier = (request: TerminalIdentityVerificationRequest) => Promise<TerminalIdentityVerificationResult | void>;
|
|
70
|
+
export interface TerminalApprovalAuthorizationContext {
|
|
71
|
+
agent: ExecutorKind;
|
|
72
|
+
terminalControl: TerminalControlRef;
|
|
73
|
+
inspection: TerminalScreenInspection;
|
|
74
|
+
fingerprint?: string;
|
|
75
|
+
runtime?: TerminalRuntimeIdentity;
|
|
76
|
+
}
|
|
77
|
+
export interface TerminalApprovalAuthorizationDecision {
|
|
78
|
+
approved: boolean;
|
|
79
|
+
reason?: string;
|
|
80
|
+
}
|
|
59
81
|
export interface TerminalMonitorPoll {
|
|
60
82
|
status: TerminalBridgeStatus;
|
|
61
83
|
inspection?: TerminalScreenInspection;
|
|
@@ -65,21 +87,27 @@ export interface TerminalMonitorPoll {
|
|
|
65
87
|
export declare class TerminalAgentBridge {
|
|
66
88
|
readonly registry: TerminalAgentAdapterRegistry;
|
|
67
89
|
readonly terminalProvider: TerminalControlProvider;
|
|
90
|
+
private readonly verifyIdentity?;
|
|
68
91
|
constructor(options: {
|
|
69
92
|
registry: TerminalAgentAdapterRegistry;
|
|
70
93
|
terminalProvider: TerminalControlProvider;
|
|
94
|
+
verifyIdentity?: TerminalIdentityVerifier;
|
|
71
95
|
});
|
|
72
96
|
adapterFor(agent: ExecutorKind | string): TerminalAgentAdapter;
|
|
73
97
|
listProcesses(snapshots: readonly TerminalProcessSnapshot[], agents?: readonly ExecutorKind[]): Promise<ActiveTerminalProcess[]>;
|
|
74
98
|
discoverProcesses(snapshots: readonly TerminalProcessSnapshot[], agents?: readonly ExecutorKind[]): Promise<ActiveTerminalProcess[]>;
|
|
75
|
-
attachProcesses<T extends ActiveTerminalProcess>(agent: ExecutorKind, processes: T[]
|
|
99
|
+
attachProcesses<T extends ActiveTerminalProcess>(agent: ExecutorKind, processes: T[], options?: {
|
|
100
|
+
processTree?: readonly TerminalProcessSnapshot[];
|
|
101
|
+
}): Promise<T[]>;
|
|
76
102
|
terminalConversationId(process: Pick<ActiveTerminalProcess, "agent" | "pid" | "terminalControl">): string;
|
|
77
103
|
resolveConversationId(conversationId: string | undefined): Promise<ResolvedTerminalConversation | undefined>;
|
|
78
104
|
status(agent: ExecutorKind, terminalControl: TerminalControlRef, options?: {
|
|
79
105
|
scrollbackLines?: number;
|
|
80
106
|
runtime?: TerminalRuntimeIdentity;
|
|
81
107
|
}): Promise<TerminalBridgeStatus>;
|
|
82
|
-
send(agent: ExecutorKind, terminalControl: TerminalControlRef, text: string
|
|
108
|
+
send(agent: ExecutorKind, terminalControl: TerminalControlRef, text: string, options?: {
|
|
109
|
+
runtime?: TerminalRuntimeIdentity;
|
|
110
|
+
}): Promise<void>;
|
|
83
111
|
cancel(agent: ExecutorKind, terminalControl: TerminalControlRef, options?: {
|
|
84
112
|
runtime?: TerminalRuntimeIdentity;
|
|
85
113
|
scrollbackLines?: number;
|
|
@@ -96,6 +124,7 @@ export declare class TerminalAgentBridge {
|
|
|
96
124
|
scrollbackLines?: number;
|
|
97
125
|
runtime?: TerminalRuntimeIdentity;
|
|
98
126
|
requiredDecisionMode?: "keys" | "structured";
|
|
127
|
+
authorize?: (context: TerminalApprovalAuthorizationContext) => TerminalApprovalAuthorizationDecision | Promise<TerminalApprovalAuthorizationDecision>;
|
|
99
128
|
}): Promise<TerminalApprovalExecution>;
|
|
100
129
|
monitorPoll(options: {
|
|
101
130
|
agent: ExecutorKind;
|
|
@@ -110,5 +139,6 @@ export declare class TerminalAgentBridge {
|
|
|
110
139
|
durableRequest?: TerminalDurableCompletionRequest;
|
|
111
140
|
}): Promise<TerminalMonitorPoll>;
|
|
112
141
|
private captureInspection;
|
|
142
|
+
private verifyTerminalIdentity;
|
|
113
143
|
}
|
|
114
144
|
export declare function terminalApprovalFingerprint(agent: ExecutorKind, terminalControl: Pick<TerminalControlRef, "target">, inspection: TerminalScreenInspection): string | undefined;
|
|
@@ -4,9 +4,11 @@ import { enrichActiveProcessesWithTerminalControl, terminalRefFromPane } from ".
|
|
|
4
4
|
export class TerminalAgentBridge {
|
|
5
5
|
registry;
|
|
6
6
|
terminalProvider;
|
|
7
|
+
verifyIdentity;
|
|
7
8
|
constructor(options) {
|
|
8
9
|
this.registry = options.registry;
|
|
9
10
|
this.terminalProvider = options.terminalProvider;
|
|
11
|
+
this.verifyIdentity = options.verifyIdentity;
|
|
10
12
|
}
|
|
11
13
|
adapterFor(agent) {
|
|
12
14
|
return this.registry.require(agent);
|
|
@@ -24,17 +26,21 @@ export class TerminalAgentBridge {
|
|
|
24
26
|
.map((snapshot) => adapter.classifyProcess(snapshot))
|
|
25
27
|
.filter((process) => process !== undefined)
|
|
26
28
|
.map((process) => ({ ...process, agent: adapter.agent }));
|
|
27
|
-
discovered.push(...await this.
|
|
29
|
+
discovered.push(...await enrichActiveProcessesWithTerminalControl(classified, this.terminalProvider, {
|
|
30
|
+
capabilities: terminalControlCapabilitiesForAdapter(adapter),
|
|
31
|
+
processTree: snapshots
|
|
32
|
+
}));
|
|
28
33
|
}
|
|
29
34
|
return discovered;
|
|
30
35
|
}
|
|
31
36
|
async discoverProcesses(snapshots, agents) {
|
|
32
37
|
return this.listProcesses(snapshots, agents);
|
|
33
38
|
}
|
|
34
|
-
async attachProcesses(agent, processes) {
|
|
39
|
+
async attachProcesses(agent, processes, options = {}) {
|
|
35
40
|
const adapter = this.registry.require(agent);
|
|
36
41
|
return enrichActiveProcessesWithTerminalControl(processes, this.terminalProvider, {
|
|
37
|
-
capabilities: terminalControlCapabilitiesForAdapter(adapter)
|
|
42
|
+
capabilities: terminalControlCapabilitiesForAdapter(adapter),
|
|
43
|
+
processTree: options.processTree
|
|
38
44
|
});
|
|
39
45
|
}
|
|
40
46
|
terminalConversationId(process) {
|
|
@@ -55,17 +61,35 @@ export class TerminalAgentBridge {
|
|
|
55
61
|
}
|
|
56
62
|
const adapter = this.registry.require(parsed.agent);
|
|
57
63
|
const panes = await this.terminalProvider.listPanes();
|
|
58
|
-
const
|
|
59
|
-
|
|
64
|
+
const candidates = panes.filter((candidate) => candidate.kind === parsed.kind && candidate.target === parsed.target);
|
|
65
|
+
const verified = this.verifyIdentity
|
|
66
|
+
? (await Promise.all(candidates.map(async (pane) => {
|
|
67
|
+
const terminalControl = terminalRefFromPane(pane, terminalControlCapabilitiesForAdapter(adapter));
|
|
68
|
+
try {
|
|
69
|
+
const verifiedTerminalControl = await this.verifyTerminalIdentity(adapter.agent, terminalControl, { pid: parsed.pid });
|
|
70
|
+
return { pane, terminalControl: verifiedTerminalControl };
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
}))).filter((candidate) => candidate !== undefined)
|
|
76
|
+
: candidates.slice(0, 1).map((pane) => ({
|
|
77
|
+
pane,
|
|
78
|
+
terminalControl: terminalRefFromPane(pane, terminalControlCapabilitiesForAdapter(adapter))
|
|
79
|
+
}));
|
|
80
|
+
if (verified.length === 0) {
|
|
60
81
|
throw new Error(`terminal-controlled session ${parsed.conversationId} is no longer available`);
|
|
61
82
|
}
|
|
83
|
+
if (verified.length > 1) {
|
|
84
|
+
throw new Error(`terminal-controlled session ${parsed.conversationId} matches multiple active panes`);
|
|
85
|
+
}
|
|
62
86
|
return {
|
|
63
87
|
conversationId: parsed.conversationId,
|
|
64
88
|
agent: parsed.agent,
|
|
65
89
|
pid: parsed.pid,
|
|
66
90
|
legacy: parsed.legacy,
|
|
67
91
|
adapter,
|
|
68
|
-
terminalControl:
|
|
92
|
+
terminalControl: verified[0].terminalControl
|
|
69
93
|
};
|
|
70
94
|
}
|
|
71
95
|
async status(agent, terminalControl, options = {}) {
|
|
@@ -75,8 +99,8 @@ export class TerminalAgentBridge {
|
|
|
75
99
|
return unsupportedScreenStatus(adapter, terminalControl);
|
|
76
100
|
}
|
|
77
101
|
try {
|
|
78
|
-
const
|
|
79
|
-
return statusFromInspection(adapter, terminalControl, inspection);
|
|
102
|
+
const captured = await this.captureInspection(adapter, terminalControl, options);
|
|
103
|
+
return statusFromInspection(adapter, captured.terminalControl, captured.inspection);
|
|
80
104
|
}
|
|
81
105
|
catch (error) {
|
|
82
106
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -98,7 +122,7 @@ export class TerminalAgentBridge {
|
|
|
98
122
|
};
|
|
99
123
|
}
|
|
100
124
|
}
|
|
101
|
-
async send(agent, terminalControl, text) {
|
|
125
|
+
async send(agent, terminalControl, text, options = {}) {
|
|
102
126
|
const adapter = this.registry.require(agent);
|
|
103
127
|
if (!terminalControl.capabilities.includes("send_keys")) {
|
|
104
128
|
throw new Error(`${adapter.displayName} terminal input is not supported`);
|
|
@@ -107,11 +131,29 @@ export class TerminalAgentBridge {
|
|
|
107
131
|
if (!normalized) {
|
|
108
132
|
throw new Error("terminal message is empty");
|
|
109
133
|
}
|
|
110
|
-
await this.
|
|
111
|
-
|
|
134
|
+
const verifiedForText = await this.verifyTerminalIdentity(adapter.agent, terminalControl, options.runtime);
|
|
135
|
+
await this.terminalProvider.sendText(verifiedForText.target, normalized, {
|
|
136
|
+
socketPath: verifiedForText.socketPath
|
|
112
137
|
});
|
|
113
|
-
|
|
114
|
-
|
|
138
|
+
// Text and Enter are separate tmux operations. Revalidate between them; if the
|
|
139
|
+
// identity changed, clear the line best-effort and never submit it.
|
|
140
|
+
let verifiedForEnter;
|
|
141
|
+
try {
|
|
142
|
+
verifiedForEnter = await this.verifyTerminalIdentity(adapter.agent, terminalControl, options.runtime);
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
try {
|
|
146
|
+
await this.terminalProvider.sendKeys(verifiedForText.target, ["C-u"], {
|
|
147
|
+
socketPath: verifiedForText.socketPath
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
// Best effort only: preserving the identity failure is more important than cleanup.
|
|
152
|
+
}
|
|
153
|
+
throw error;
|
|
154
|
+
}
|
|
155
|
+
await this.terminalProvider.sendKeys(verifiedForEnter.target, ["C-m"], {
|
|
156
|
+
socketPath: verifiedForEnter.socketPath
|
|
115
157
|
});
|
|
116
158
|
}
|
|
117
159
|
async cancel(agent, terminalControl, options = {}) {
|
|
@@ -121,15 +163,17 @@ export class TerminalAgentBridge {
|
|
|
121
163
|
terminalControl.capabilities.includes("terminal_approval") &&
|
|
122
164
|
adapter.capabilities.screenStatus &&
|
|
123
165
|
terminalControl.capabilities.includes("screen_status")) {
|
|
124
|
-
const
|
|
166
|
+
const captured = await this.captureInspection(adapter, terminalControl, options);
|
|
167
|
+
const { inspection } = captured;
|
|
125
168
|
if (inspection.approval.approvable && inspection.approval.action.mode === "structured") {
|
|
126
|
-
const fingerprint = terminalApprovalFingerprint(adapter.agent, terminalControl, inspection);
|
|
169
|
+
const fingerprint = terminalApprovalFingerprint(adapter.agent, captured.terminalControl, inspection);
|
|
127
170
|
if (!fingerprint) {
|
|
128
171
|
return {
|
|
129
172
|
cancelRequested: false,
|
|
130
173
|
reason: `${adapter.displayName} structured approval has no fingerprint`
|
|
131
174
|
};
|
|
132
175
|
}
|
|
176
|
+
await this.verifyTerminalIdentity(adapter.agent, captured.terminalControl, options.runtime);
|
|
133
177
|
const decision = await adapter.resolveApproval({
|
|
134
178
|
decision: "deny",
|
|
135
179
|
expectedFingerprint: fingerprint,
|
|
@@ -160,8 +204,9 @@ export class TerminalAgentBridge {
|
|
|
160
204
|
reason: `${adapter.displayName} terminal cancellation is not supported`
|
|
161
205
|
};
|
|
162
206
|
}
|
|
163
|
-
await this.
|
|
164
|
-
|
|
207
|
+
const verifiedForCancel = await this.verifyTerminalIdentity(adapter.agent, terminalControl, options.runtime);
|
|
208
|
+
await this.terminalProvider.sendKeys(verifiedForCancel.target, adapter.cancelKeys, {
|
|
209
|
+
socketPath: verifiedForCancel.socketPath
|
|
165
210
|
});
|
|
166
211
|
return {
|
|
167
212
|
cancelRequested: true,
|
|
@@ -179,7 +224,9 @@ export class TerminalAgentBridge {
|
|
|
179
224
|
reason: `${adapter.displayName} terminal approval is not supported`
|
|
180
225
|
};
|
|
181
226
|
}
|
|
182
|
-
const
|
|
227
|
+
const captured = await this.captureInspection(adapter, terminalControl, options);
|
|
228
|
+
const { inspection } = captured;
|
|
229
|
+
const activeTerminalControl = captured.terminalControl;
|
|
183
230
|
if (!inspection.approval.approvable) {
|
|
184
231
|
return {
|
|
185
232
|
approved: false,
|
|
@@ -199,7 +246,7 @@ export class TerminalAgentBridge {
|
|
|
199
246
|
label: inspection.approval.action.label,
|
|
200
247
|
promptKind: inspection.approval.promptKind,
|
|
201
248
|
command: inspection.approval.command,
|
|
202
|
-
fingerprint: terminalApprovalFingerprint(adapter.agent,
|
|
249
|
+
fingerprint: terminalApprovalFingerprint(adapter.agent, activeTerminalControl, inspection),
|
|
203
250
|
screenExcerpt: inspection.screenExcerpt,
|
|
204
251
|
decisionMode,
|
|
205
252
|
requestId: inspection.approval.action.requestId
|
|
@@ -216,7 +263,7 @@ export class TerminalAgentBridge {
|
|
|
216
263
|
screenExcerpt: inspection.screenExcerpt
|
|
217
264
|
};
|
|
218
265
|
}
|
|
219
|
-
const fingerprint = terminalApprovalFingerprint(adapter.agent,
|
|
266
|
+
const fingerprint = terminalApprovalFingerprint(adapter.agent, activeTerminalControl, inspection);
|
|
220
267
|
if (options.expectedFingerprint && options.expectedFingerprint !== fingerprint) {
|
|
221
268
|
return {
|
|
222
269
|
approved: false,
|
|
@@ -235,6 +282,35 @@ export class TerminalAgentBridge {
|
|
|
235
282
|
requestId: inspection.approval.action.requestId
|
|
236
283
|
};
|
|
237
284
|
}
|
|
285
|
+
if (options.authorize) {
|
|
286
|
+
const authorization = await options.authorize({
|
|
287
|
+
agent: adapter.agent,
|
|
288
|
+
terminalControl: activeTerminalControl,
|
|
289
|
+
inspection,
|
|
290
|
+
fingerprint,
|
|
291
|
+
runtime: options.runtime
|
|
292
|
+
});
|
|
293
|
+
if (!authorization.approved) {
|
|
294
|
+
return {
|
|
295
|
+
approved: false,
|
|
296
|
+
blocked: true,
|
|
297
|
+
reason: authorization.reason ?? "approval was not authorized",
|
|
298
|
+
key: inspection.approval.action.keys.length === 1
|
|
299
|
+
? inspection.approval.action.keys[0]
|
|
300
|
+
: undefined,
|
|
301
|
+
keys: inspection.approval.action.keys,
|
|
302
|
+
label: inspection.approval.action.label,
|
|
303
|
+
promptKind: inspection.approval.promptKind,
|
|
304
|
+
command: inspection.approval.command,
|
|
305
|
+
toolName: inspection.approval.toolName,
|
|
306
|
+
requestDetail: inspection.approval.requestDetail,
|
|
307
|
+
fingerprint,
|
|
308
|
+
screenExcerpt: inspection.screenExcerpt,
|
|
309
|
+
decisionMode,
|
|
310
|
+
requestId: inspection.approval.action.requestId
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
}
|
|
238
314
|
if (decisionMode === "structured") {
|
|
239
315
|
if (!options.expectedFingerprint) {
|
|
240
316
|
return {
|
|
@@ -261,6 +337,7 @@ export class TerminalAgentBridge {
|
|
|
261
337
|
requestId: inspection.approval.action.requestId
|
|
262
338
|
};
|
|
263
339
|
}
|
|
340
|
+
await this.verifyTerminalIdentity(adapter.agent, activeTerminalControl, options.runtime);
|
|
264
341
|
const resolved = await adapter.resolveApproval({
|
|
265
342
|
decision: "allow",
|
|
266
343
|
expectedFingerprint: options.expectedFingerprint,
|
|
@@ -281,21 +358,82 @@ export class TerminalAgentBridge {
|
|
|
281
358
|
requestId: resolved.requestId ?? inspection.approval.action.requestId
|
|
282
359
|
};
|
|
283
360
|
}
|
|
284
|
-
await this.
|
|
361
|
+
const recaptured = await this.captureInspection(adapter, activeTerminalControl, options);
|
|
362
|
+
const recapturedInspection = recaptured.inspection;
|
|
363
|
+
if (!recapturedInspection.approval.approvable) {
|
|
364
|
+
return {
|
|
365
|
+
approved: false,
|
|
366
|
+
blocked: true,
|
|
367
|
+
reason: "approval prompt is no longer approvable after authorization",
|
|
368
|
+
promptKind: recapturedInspection.approval.promptKind,
|
|
369
|
+
command: recapturedInspection.approval.command,
|
|
370
|
+
cwd: recapturedInspection.approval.cwd,
|
|
371
|
+
toolName: recapturedInspection.approval.toolName,
|
|
372
|
+
requestDetail: recapturedInspection.approval.requestDetail,
|
|
373
|
+
screenExcerpt: recapturedInspection.screenExcerpt
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
const recapturedDecisionMode = recapturedInspection.approval.action.mode ?? "keys";
|
|
377
|
+
const recapturedFingerprint = terminalApprovalFingerprint(adapter.agent, recaptured.terminalControl, recapturedInspection);
|
|
378
|
+
if (recapturedDecisionMode !== decisionMode) {
|
|
379
|
+
return {
|
|
380
|
+
approved: false,
|
|
381
|
+
blocked: true,
|
|
382
|
+
reason: "approval decision mode changed after authorization",
|
|
383
|
+
key: recapturedInspection.approval.action.keys.length === 1
|
|
384
|
+
? recapturedInspection.approval.action.keys[0]
|
|
385
|
+
: undefined,
|
|
386
|
+
keys: recapturedInspection.approval.action.keys,
|
|
387
|
+
label: recapturedInspection.approval.action.label,
|
|
388
|
+
promptKind: recapturedInspection.approval.promptKind,
|
|
389
|
+
command: recapturedInspection.approval.command,
|
|
390
|
+
cwd: recapturedInspection.approval.cwd,
|
|
391
|
+
toolName: recapturedInspection.approval.toolName,
|
|
392
|
+
requestDetail: recapturedInspection.approval.requestDetail,
|
|
393
|
+
fingerprint: recapturedFingerprint,
|
|
394
|
+
screenExcerpt: recapturedInspection.screenExcerpt,
|
|
395
|
+
decisionMode: recapturedDecisionMode,
|
|
396
|
+
requestId: recapturedInspection.approval.action.requestId
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
if (recapturedFingerprint !== fingerprint) {
|
|
400
|
+
return {
|
|
401
|
+
approved: false,
|
|
402
|
+
blocked: true,
|
|
403
|
+
reason: "approval fingerprint changed after authorization",
|
|
404
|
+
key: recapturedInspection.approval.action.keys.length === 1
|
|
405
|
+
? recapturedInspection.approval.action.keys[0]
|
|
406
|
+
: undefined,
|
|
407
|
+
keys: recapturedInspection.approval.action.keys,
|
|
408
|
+
label: recapturedInspection.approval.action.label,
|
|
409
|
+
promptKind: recapturedInspection.approval.promptKind,
|
|
410
|
+
command: recapturedInspection.approval.command,
|
|
411
|
+
cwd: recapturedInspection.approval.cwd,
|
|
412
|
+
toolName: recapturedInspection.approval.toolName,
|
|
413
|
+
requestDetail: recapturedInspection.approval.requestDetail,
|
|
414
|
+
fingerprint: recapturedFingerprint,
|
|
415
|
+
screenExcerpt: recapturedInspection.screenExcerpt,
|
|
416
|
+
decisionMode: recapturedDecisionMode,
|
|
417
|
+
requestId: recapturedInspection.approval.action.requestId
|
|
418
|
+
};
|
|
419
|
+
}
|
|
420
|
+
const verifiedForApproval = await this.verifyTerminalIdentity(adapter.agent, recaptured.terminalControl, options.runtime);
|
|
421
|
+
await this.terminalProvider.sendKeys(verifiedForApproval.target, recapturedInspection.approval.action.keys, { socketPath: verifiedForApproval.socketPath });
|
|
285
422
|
return {
|
|
286
423
|
approved: true,
|
|
287
424
|
blocked: false,
|
|
288
|
-
key:
|
|
289
|
-
?
|
|
425
|
+
key: recapturedInspection.approval.action.keys.length === 1
|
|
426
|
+
? recapturedInspection.approval.action.keys[0]
|
|
290
427
|
: undefined,
|
|
291
|
-
keys:
|
|
292
|
-
label:
|
|
293
|
-
promptKind:
|
|
294
|
-
command:
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
428
|
+
keys: recapturedInspection.approval.action.keys,
|
|
429
|
+
label: recapturedInspection.approval.action.label,
|
|
430
|
+
promptKind: recapturedInspection.approval.promptKind,
|
|
431
|
+
command: recapturedInspection.approval.command,
|
|
432
|
+
cwd: recapturedInspection.approval.cwd,
|
|
433
|
+
fingerprint: recapturedFingerprint,
|
|
434
|
+
screenExcerpt: recapturedInspection.screenExcerpt,
|
|
435
|
+
decisionMode: recapturedDecisionMode,
|
|
436
|
+
requestId: recapturedInspection.approval.action.requestId
|
|
299
437
|
};
|
|
300
438
|
}
|
|
301
439
|
async monitorPoll(options) {
|
|
@@ -307,7 +445,7 @@ export class TerminalAgentBridge {
|
|
|
307
445
|
try {
|
|
308
446
|
const captured = await this.captureInspection(adapter, options.terminalControl, options.screenOptions);
|
|
309
447
|
inspection = captured.inspection;
|
|
310
|
-
status = statusFromInspection(adapter,
|
|
448
|
+
status = statusFromInspection(adapter, captured.terminalControl, inspection);
|
|
311
449
|
}
|
|
312
450
|
catch (error) {
|
|
313
451
|
status = failedScreenStatus(adapter, options.terminalControl, error);
|
|
@@ -346,11 +484,13 @@ export class TerminalAgentBridge {
|
|
|
346
484
|
};
|
|
347
485
|
}
|
|
348
486
|
async captureInspection(adapter, terminalControl, options = {}) {
|
|
349
|
-
const
|
|
487
|
+
const verifiedTerminalControl = await this.verifyTerminalIdentity(adapter.agent, terminalControl, options.runtime);
|
|
488
|
+
const screen = await this.terminalProvider.capture(verifiedTerminalControl.target, {
|
|
350
489
|
scrollbackLines: options.scrollbackLines ?? 120,
|
|
351
|
-
socketPath:
|
|
490
|
+
socketPath: verifiedTerminalControl.socketPath
|
|
352
491
|
});
|
|
353
492
|
return {
|
|
493
|
+
terminalControl: verifiedTerminalControl,
|
|
354
494
|
screen,
|
|
355
495
|
inspection: adapter.inspectScreen({
|
|
356
496
|
screen,
|
|
@@ -361,6 +501,20 @@ export class TerminalAgentBridge {
|
|
|
361
501
|
})
|
|
362
502
|
};
|
|
363
503
|
}
|
|
504
|
+
async verifyTerminalIdentity(agent, terminalControl, runtime) {
|
|
505
|
+
if (!this.verifyIdentity) {
|
|
506
|
+
return terminalControl;
|
|
507
|
+
}
|
|
508
|
+
if (!Number.isInteger(runtime?.pid) || Number(runtime?.pid) <= 0) {
|
|
509
|
+
throw new Error(`refusing terminal access for ${agent}:${terminalControl.target} without an exact agent pid; reattach this legacy tmux session before controlling it`);
|
|
510
|
+
}
|
|
511
|
+
const result = await this.verifyIdentity({
|
|
512
|
+
agent,
|
|
513
|
+
pid: Number(runtime?.pid),
|
|
514
|
+
terminalControl
|
|
515
|
+
});
|
|
516
|
+
return result?.terminalControl ?? terminalControl;
|
|
517
|
+
}
|
|
364
518
|
}
|
|
365
519
|
export function terminalApprovalFingerprint(agent, terminalControl, inspection) {
|
|
366
520
|
if (!inspection.approval.approvable) {
|
|
@@ -376,6 +530,7 @@ export function terminalApprovalFingerprint(agent, terminalControl, inspection)
|
|
|
376
530
|
label: inspection.approval.action.label,
|
|
377
531
|
prompt_kind: inspection.approval.promptKind,
|
|
378
532
|
command: inspection.approval.command,
|
|
533
|
+
cwd: inspection.approval.cwd,
|
|
379
534
|
tool_name: inspection.approval.toolName,
|
|
380
535
|
request_detail: inspection.approval.requestDetail,
|
|
381
536
|
screen_excerpt: decisionMode === "structured" ? undefined : inspection.screenExcerpt,
|
|
@@ -406,6 +561,7 @@ function statusFromInspection(adapter, terminalControl, inspection) {
|
|
|
406
561
|
label: approval.approvable ? approval.action.label : undefined,
|
|
407
562
|
prompt_kind: approval.promptKind,
|
|
408
563
|
command: approval.command,
|
|
564
|
+
cwd: approval.cwd,
|
|
409
565
|
tool_name: approval.toolName,
|
|
410
566
|
request_detail: approval.requestDetail,
|
|
411
567
|
reason: approval.approvable ? undefined : approval.reason,
|
|
@@ -446,6 +602,7 @@ function approvalOutput(approval) {
|
|
|
446
602
|
reason: approval.reason,
|
|
447
603
|
promptKind: approval.promptKind,
|
|
448
604
|
command: approval.command,
|
|
605
|
+
cwd: approval.cwd,
|
|
449
606
|
toolName: approval.toolName,
|
|
450
607
|
requestDetail: approval.requestDetail
|
|
451
608
|
};
|
|
@@ -458,6 +615,7 @@ function approvalOutput(approval) {
|
|
|
458
615
|
label: approval.action.label,
|
|
459
616
|
promptKind: approval.promptKind,
|
|
460
617
|
command: approval.command,
|
|
618
|
+
cwd: approval.cwd,
|
|
461
619
|
toolName: approval.toolName,
|
|
462
620
|
requestDetail: approval.requestDetail,
|
|
463
621
|
decisionMode: approval.action.mode ?? "keys",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-agent-bridge.js","sourceRoot":"","sources":["../../src/terminal-agent-bridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"terminal-agent-bridge.js","sourceRoot":"","sources":["../../src/terminal-agent-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,qCAAqC,EAWtC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,wCAAwC,EACxC,mBAAmB,EAEpB,MAAM,gCAAgC,CAAC;AAgGxC,MAAM,OAAO,mBAAmB;IACrB,QAAQ,CAA+B;IACvC,gBAAgB,CAA0B;IAClC,cAAc,CAA4B;IAE3D,YAAY,OAIX;QACC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAC/C,CAAC;IAED,UAAU,CAAC,KAA4B;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,SAA6C,EAC7C,MAAgC;QAEhC,MAAM,QAAQ,GAAG,MAAM;YACrB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACrD,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;gBAC3C,SAAS;YACX,CAAC;YACD,MAAM,UAAU,GAAG,SAAS;iBACzB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;iBACpD,MAAM,CAAC,CAAC,OAAO,EAAoC,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC;iBAC5E,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5D,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,wCAAwC,CAC/D,UAAU,EACV,IAAI,CAAC,gBAAgB,EACrB;gBACE,YAAY,EAAE,qCAAqC,CAAC,OAAO,CAAC;gBAC5D,WAAW,EAAE,SAAS;aACvB,CACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,SAA6C,EAC7C,MAAgC;QAEhC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,KAAmB,EACnB,SAAc,EACd,UAAgE,EAAE;QAElE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,wCAAwC,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE;YAChF,YAAY,EAAE,qCAAqC,CAAC,OAAO,CAAC;YAC5D,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;IACL,CAAC;IAED,sBAAsB,CAAC,OAAyE;QAC9F,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,GAAG,6BAA6B,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,4BAA4B,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,MAAM;YACtC,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,cAAkC;QAC5D,MAAM,MAAM,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;QACtD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAC7B,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CACpF,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc;YAClC,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC/C,MAAM,eAAe,GAAG,mBAAmB,CACzC,IAAI,EACJ,qCAAqC,CAAC,OAAO,CAAC,CAC/C,CAAC;gBACF,IAAI,CAAC;oBACH,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAC/D,OAAO,CAAC,KAAK,EACb,eAAe,EACf,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CACpB,CAAC;oBACF,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,uBAAuB,EAAE,CAAC;gBAC5D,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAGpB,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC;YAC/B,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACpC,IAAI;gBACJ,eAAe,EAAE,mBAAmB,CAClC,IAAI,EACJ,qCAAqC,CAAC,OAAO,CAAC,CAC/C;aACF,CAAC,CAAC,CAAC;QACR,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,cAAc,yBAAyB,CAAC,CAAC;QACjG,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,cAAc,gCAAgC,CAAC,CAAC;QACxG,CAAC;QACD,OAAO;YACL,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO;YACP,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe;SAC7C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAAmB,EACnB,eAAmC,EACnC,UAA2E,EAAE;QAE7E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,IACE,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY;YAClC,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EACvD,CAAC;YACD,OAAO,uBAAuB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;YACjF,OAAO,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QACtF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO;gBACL,QAAQ,EAAE,eAAe,CAAC,IAAI;gBAC9B,MAAM,EAAE,eAAe,CAAC,MAAM;gBAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,SAAS,EAAE,KAAK;gBAChB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,cAAc,EAAE,SAAS;gBACzB,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE;oBACd,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;oBACjB,MAAM,EAAE,OAAO;iBAChB;gBACD,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;aAC3B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CACR,KAAmB,EACnB,eAAmC,EACnC,IAAY,EACZ,UAAiD,EAAE;QAEnD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,WAAW,kCAAkC,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,sBAAsB,CACvD,OAAO,CAAC,KAAK,EACb,eAAe,EACf,OAAO,CAAC,OAAO,CAChB,CAAC;QACF,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE;YACvE,UAAU,EAAE,eAAe,CAAC,UAAU;SACvC,CAAC,CAAC;QACH,+EAA+E;QAC/E,oEAAoE;QACpE,IAAI,gBAAoC,CAAC;QACzC,IAAI,CAAC;YACH,gBAAgB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAClD,OAAO,CAAC,KAAK,EACb,eAAe,EACf,OAAO,CAAC,OAAO,CAChB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE;oBACpE,UAAU,EAAE,eAAe,CAAC,UAAU;iBACvC,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,oFAAoF;YACtF,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE;YACrE,UAAU,EAAE,gBAAgB,CAAC,UAAU;SACxC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAAmB,EACnB,eAAmC,EACnC,UAA2E,EAAE;QAS7E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,IACE,OAAO,CAAC,YAAY,CAAC,gBAAgB;YACrC,OAAO,CAAC,eAAe;YACvB,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC1D,OAAO,CAAC,YAAY,CAAC,YAAY;YACjC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EACtD,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;YACjF,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;YAChC,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACvF,MAAM,WAAW,GAAG,2BAA2B,CAC7C,OAAO,CAAC,KAAK,EACb,QAAQ,CAAC,eAAe,EACxB,UAAU,CACX,CAAC;gBACF,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO;wBACL,eAAe,EAAE,KAAK;wBACtB,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,yCAAyC;qBACxE,CAAC;gBACJ,CAAC;gBACD,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC5F,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC;oBAC7C,QAAQ,EAAE,MAAM;oBAChB,mBAAmB,EAAE,WAAW;oBAChC,iBAAiB,EAAE,WAAW;oBAC9B,UAAU;oBACV,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;gBACH,OAAO;oBACL,eAAe,EAAE,QAAQ,CAAC,QAAQ;oBAClC,cAAc,EAAE,QAAQ,CAAC,QAAQ;oBACjC,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;iBACxB,CAAC;YACJ,CAAC;YACD,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACnE,OAAO;oBACL,eAAe,EAAE,KAAK;oBACtB,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM;iBACnC,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IACE,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY;YAClC,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAC/B,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EACzD,CAAC;YACD,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,yCAAyC;aACxE,CAAC;QACJ,CAAC;QACD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CACzD,OAAO,CAAC,KAAK,EACb,eAAe,EACf,OAAO,CAAC,OAAO,CAChB,CAAC;QACF,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE;YACjF,UAAU,EAAE,iBAAiB,CAAC,UAAU;SACzC,CAAC,CAAC;QACH,OAAO;YACL,eAAe,EAAE,IAAI;YACrB,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YACxE,IAAI,EAAE,OAAO,CAAC,UAAU;SACzB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CACX,KAAmB,EACnB,eAAmC,EACnC,UAQI,EAAE;QAEN,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,IACE,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB;YACtC,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAC3D,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,qCAAqC;aACpE,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QACjF,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;QAChC,MAAM,qBAAqB,GAAG,QAAQ,CAAC,eAAe,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YACpC,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO;gBACpC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM;gBAClC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU;gBAC1C,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO;gBACpC,aAAa,EAAE,UAAU,CAAC,aAAa;aACxC,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;QAC/D,IAAI,OAAO,CAAC,oBAAoB,IAAI,YAAY,KAAK,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAClF,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,kBAAkB,YAAY,oCAAoC;gBAChG,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;gBACvC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU;gBAC1C,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO;gBACpC,WAAW,EAAE,2BAA2B,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAqB,EAAE,UAAU,CAAC;gBAC1F,aAAa,EAAE,UAAU,CAAC,aAAa;gBACvC,YAAY;gBACZ,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS;aAChD,CAAC;QACJ,CAAC;QACD,IAAI,YAAY,KAAK,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5E,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,8BAA8B;gBAC5D,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;gBACvC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU;gBAC1C,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO;gBACpC,aAAa,EAAE,UAAU,CAAC,aAAa;aACxC,CAAC;QACJ,CAAC;QACD,MAAM,WAAW,GAAG,2BAA2B,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAqB,EAAE,UAAU,CAAC,CAAC;QAClG,IAAI,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,KAAK,WAAW,EAAE,CAAC;YAC/E,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,+CAA+C;gBACvD,GAAG,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;oBAC/C,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;oBACpC,CAAC,CAAC,SAAS;gBACb,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI;gBACrC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;gBACvC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU;gBAC1C,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO;gBACpC,WAAW;gBACX,aAAa,EAAE,UAAU,CAAC,aAAa;gBACvC,YAAY;gBACZ,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS;aAChD,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC;gBAC5C,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,eAAe,EAAE,qBAAqB;gBACtC,UAAU;gBACV,WAAW;gBACX,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;gBAC5B,OAAO;oBACL,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,aAAa,CAAC,MAAM,IAAI,6BAA6B;oBAC7D,GAAG,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;wBAC/C,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;wBACpC,CAAC,CAAC,SAAS;oBACb,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI;oBACrC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;oBACvC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU;oBAC1C,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO;oBACpC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ;oBACtC,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,aAAa;oBAChD,WAAW;oBACX,aAAa,EAAE,UAAU,CAAC,aAAa;oBACvC,YAAY;oBACZ,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS;iBAChD,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;gBACjC,OAAO;oBACL,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,8DAA8D;oBACtE,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;oBACvC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU;oBAC1C,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO;oBACpC,WAAW;oBACX,aAAa,EAAE,UAAU,CAAC,aAAa;oBACvC,YAAY;oBACZ,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS;iBAChD,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC7C,OAAO;oBACL,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,8CAA8C;oBAC5E,WAAW;oBACX,aAAa,EAAE,UAAU,CAAC,aAAa;oBACvC,YAAY;oBACZ,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS;iBAChD,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAqB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACzF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC;gBAC7C,QAAQ,EAAE,OAAO;gBACjB,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;gBAChD,iBAAiB,EAAE,WAAW;gBAC9B,UAAU;gBACV,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;YACH,OAAO;gBACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ;gBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;gBACvC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU;gBAC1C,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO;gBACpC,WAAW;gBACX,aAAa,EAAE,UAAU,CAAC,aAAa;gBACvC,YAAY;gBACZ,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS;aACtE,CAAC;QACJ,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAC7C,OAAO,EACP,qBAAqB,EACrB,OAAO,CACR,CAAC;QACF,MAAM,oBAAoB,GAAG,UAAU,CAAC,UAAU,CAAC;QACnD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC9C,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,6DAA6D;gBACrE,UAAU,EAAE,oBAAoB,CAAC,QAAQ,CAAC,UAAU;gBACpD,OAAO,EAAE,oBAAoB,CAAC,QAAQ,CAAC,OAAO;gBAC9C,GAAG,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG;gBACtC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC,QAAQ;gBAChD,aAAa,EAAE,oBAAoB,CAAC,QAAQ,CAAC,aAAa;gBAC1D,aAAa,EAAE,oBAAoB,CAAC,aAAa;aAClD,CAAC;QACJ,CAAC;QACD,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;QACnF,MAAM,qBAAqB,GAAG,2BAA2B,CACvD,OAAO,CAAC,KAAK,EACb,UAAU,CAAC,eAAe,EAC1B,oBAAoB,CACrB,CAAC;QACF,IAAI,sBAAsB,KAAK,YAAY,EAAE,CAAC;YAC5C,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,oDAAoD;gBAC5D,GAAG,EAAE,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;oBACzD,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC9C,CAAC,CAAC,SAAS;gBACb,IAAI,EAAE,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI;gBAC/C,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;gBACjD,UAAU,EAAE,oBAAoB,CAAC,QAAQ,CAAC,UAAU;gBACpD,OAAO,EAAE,oBAAoB,CAAC,QAAQ,CAAC,OAAO;gBAC9C,GAAG,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG;gBACtC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC,QAAQ;gBAChD,aAAa,EAAE,oBAAoB,CAAC,QAAQ,CAAC,aAAa;gBAC1D,WAAW,EAAE,qBAAqB;gBAClC,aAAa,EAAE,oBAAoB,CAAC,aAAa;gBACjD,YAAY,EAAE,sBAAsB;gBACpC,SAAS,EAAE,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS;aAC1D,CAAC;QACJ,CAAC;QACD,IAAI,qBAAqB,KAAK,WAAW,EAAE,CAAC;YAC1C,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,kDAAkD;gBAC1D,GAAG,EAAE,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;oBACzD,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC9C,CAAC,CAAC,SAAS;gBACb,IAAI,EAAE,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI;gBAC/C,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;gBACjD,UAAU,EAAE,oBAAoB,CAAC,QAAQ,CAAC,UAAU;gBACpD,OAAO,EAAE,oBAAoB,CAAC,QAAQ,CAAC,OAAO;gBAC9C,GAAG,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG;gBACtC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC,QAAQ;gBAChD,aAAa,EAAE,oBAAoB,CAAC,QAAQ,CAAC,aAAa;gBAC1D,WAAW,EAAE,qBAAqB;gBAClC,aAAa,EAAE,oBAAoB,CAAC,aAAa;gBACjD,YAAY,EAAE,sBAAsB;gBACpC,SAAS,EAAE,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS;aAC1D,CAAC;QACJ,CAAC;QACD,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAC3D,OAAO,CAAC,KAAK,EACb,UAAU,CAAC,eAAe,EAC1B,OAAO,CAAC,OAAO,CAChB,CAAC;QACF,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAClC,mBAAmB,CAAC,MAAM,EAC1B,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EACzC,EAAE,UAAU,EAAE,mBAAmB,CAAC,UAAU,EAAE,CAC/C,CAAC;QACF,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,KAAK;YACd,GAAG,EAAE,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBACzD,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9C,CAAC,CAAC,SAAS;YACb,IAAI,EAAE,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI;YAC/C,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;YACjD,UAAU,EAAE,oBAAoB,CAAC,QAAQ,CAAC,UAAU;YACpD,OAAO,EAAE,oBAAoB,CAAC,QAAQ,CAAC,OAAO;YAC9C,GAAG,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG;YACtC,WAAW,EAAE,qBAAqB;YAClC,aAAa,EAAE,oBAAoB,CAAC,aAAa;YACjD,YAAY,EAAE,sBAAsB;YACpC,SAAS,EAAE,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS;SAC1D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAWjB;QACC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,UAAgD,CAAC;QACrD,IAAI,MAAM,GAAG,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QACvE,IACE,OAAO,CAAC,YAAY,CAAC,YAAY;YACjC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EAC9D,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAC3C,OAAO,EACP,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,aAAa,CACtB,CAAC;gBACF,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;gBACjC,MAAM,GAAG,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAC/E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,IAAI,iBAAyD,CAAC;QAC9D,IAAI,YAAgC,CAAC;QACrC,IAAI,CAAC;YACH,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,iBAAiB;gBACxD,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBACnE,OAAO,CAAC,cAAc;gBACtB,CAAC,CAAC,MAAM,OAAO,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;gBACjE,CAAC,CAAC,SAAS,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,gBAAgB;YAC5D,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAClE,CAAC,CAAC,UAAU,EAAE,UAAU;YACxB,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,WAAW,GAAG;YAClB,MAAM,CAAC,qBAAqB;YAC5B,YAAY,CAAC,CAAC,CAAC,8BAA8B,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS;YACvE,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB;gBAC/E,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,iDAAiD;gBACzE,CAAC,CAAC,SAAS;SACd,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC;gBAC5B,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,qBAAqB,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC9D,CAAC,CAAC,MAAM;YACV,UAAU;YACV,iBAAiB;YACjB,UAAU,EAAE,iBAAiB,IAAI,gBAAgB;SAClD,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,OAA6B,EAC7B,eAAmC,EACnC,UAMI,EAAE;QAMN,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAC/D,OAAO,CAAC,KAAK,EACb,eAAe,EACf,OAAO,CAAC,OAAO,CAChB,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,EAAE;YACjF,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,GAAG;YAC/C,UAAU,EAAE,uBAAuB,CAAC,UAAU;SAC/C,CAAC,CAAC;QACH,OAAO;YACL,eAAe,EAAE,uBAAuB;YACxC,MAAM;YACN,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC;gBAChC,MAAM;gBACN,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;gBACtD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,KAAmB,EACnB,eAAmC,EACnC,OAAiC;QAEjC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,eAAe,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CACb,gCAAgC,KAAK,IAAI,eAAe,CAAC,MAAM,sFAAsF,CACtJ,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;YACvC,KAAK;YACL,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC;YACzB,eAAe;SAChB,CAAC,CAAC;QACH,OAAO,MAAM,EAAE,eAAe,IAAI,eAAe,CAAC;IACpD,CAAC;CACF;AAED,MAAM,UAAU,2BAA2B,CACzC,KAAmB,EACnB,eAAmD,EACnD,UAAoC;IAEpC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;IAC/D,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QACrB,KAAK;QACL,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,eAAe,CAAC,MAAM;QAC9B,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI;QACrC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;QACvC,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU;QAC3C,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO;QACpC,GAAG,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG;QAC5B,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ;QACvC,cAAc,EAAE,UAAU,CAAC,QAAQ,CAAC,aAAa;QACjD,cAAc,EAAE,YAAY,KAAK,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa;QACpF,aAAa,EAAE,YAAY;QAC3B,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS;KACjD,CAAC,CAAC;SACF,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAA6B,EAC7B,eAAmC,EACnC,UAAoC;IAEpC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;IACrC,MAAM,WAAW,GAAG,2BAA2B,CAAC,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;IAC5F,OAAO;QACL,QAAQ,EAAE,eAAe,CAAC,IAAI;QAC9B,MAAM,EAAE,eAAe,CAAC,MAAM;QAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,cAAc,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK;QACzC,eAAe,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM;QAC3C,cAAc,EAAE;YACd,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,GAAG,EAAE,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAC3D,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzB,CAAC,CAAC,SAAS;YACb,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC5D,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU;YAChC,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,SAAS,EAAE,QAAQ,CAAC,QAAQ;YAC5B,cAAc,EAAE,QAAQ,CAAC,aAAa;YACtC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM;YACzD,WAAW;YACX,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,SAAS;YAC/E,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SACxE;QACD,MAAM,EAAE;YACN,OAAO,EAAE,UAAU,CAAC,aAAa;YACjC,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;SACnC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,OAA6B,EAC7B,eAAmC,EACnC,KAAc;IAEd,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO;QACL,QAAQ,EAAE,eAAe,CAAC,IAAI;QAC9B,MAAM,EAAE,eAAe,CAAC,MAAM;QAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,cAAc,EAAE,SAAS;QACzB,eAAe,EAAE,OAAO;QACxB,cAAc,EAAE;YACd,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,OAAO;SAChB;QACD,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;KAC3B,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,QAA8C;IACpE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,aAAa,EAAE,QAAQ,CAAC,aAAa;SACtC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;QAChB,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QAC5E,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI;QAC1B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK;QAC5B,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM;QAC5C,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAA6B,EAC7B,eAAmC;IAEnC,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,0CAA0C,CAAC;IAChF,OAAO;QACL,QAAQ,EAAE,eAAe,CAAC,IAAI;QAC9B,MAAM,EAAE,eAAe,CAAC,MAAM;QAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,cAAc,EAAE,SAAS;QACzB,eAAe,EAAE,MAAM;QACvB,cAAc,EAAE;YACd,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,MAAM;SACP;QACD,MAAM,EAAE,EAAE;QACV,qBAAqB,EAAE,MAAM;KAC9B,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ActiveTerminalProcess, TerminalControlCapability, TerminalControlRef } from "./terminal-agent-adapter.js";
|
|
1
|
+
import type { ActiveTerminalProcess, TerminalControlCapability, TerminalControlRef, TerminalProcessSnapshot } from "./terminal-agent-adapter.js";
|
|
2
2
|
export interface TerminalPane {
|
|
3
3
|
kind: "tmux";
|
|
4
4
|
target: string;
|
|
@@ -86,6 +86,8 @@ export declare class StaticTerminalControlProvider implements TerminalControlPro
|
|
|
86
86
|
export declare function parseTmuxListPanes(output: string, socketPath?: string): TerminalPane[];
|
|
87
87
|
export declare function enrichActiveProcessesWithTerminalControl<T extends ActiveTerminalProcess>(processes: T[], provider: TerminalControlProvider, options?: {
|
|
88
88
|
capabilities?: readonly TerminalControlCapability[];
|
|
89
|
+
processTree?: readonly TerminalProcessSnapshot[];
|
|
89
90
|
}): Promise<T[]>;
|
|
90
91
|
export declare function terminalRefFromPane(pane: TerminalPane, capabilities?: readonly TerminalControlCapability[]): TerminalControlRef;
|
|
92
|
+
export declare function terminalPaneContainsProcess(process: Pick<TerminalProcessSnapshot, "pid" | "ppid">, pane: TerminalPane, processes: readonly Pick<TerminalProcessSnapshot, "pid" | "ppid">[]): boolean;
|
|
91
93
|
export declare function discoverTmuxSocketPaths(root: string): string[];
|