@scotthuang/agent-knock-knock 0.2.43 → 0.2.46

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.
Files changed (34) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +135 -244
  3. package/dist/src/cli.js +641 -730
  4. package/dist/src/cli.js.map +1 -1
  5. package/dist/src/codex-session-provider.d.ts +6 -32
  6. package/dist/src/codex-session-provider.js +2 -1
  7. package/dist/src/codex-session-provider.js.map +1 -1
  8. package/dist/src/codex-store-adapter.d.ts +3 -9
  9. package/dist/src/codex-store-adapter.js +5 -55
  10. package/dist/src/codex-store-adapter.js.map +1 -1
  11. package/dist/src/codex-terminal-agent-adapter.d.ts +34 -0
  12. package/dist/src/codex-terminal-agent-adapter.js +386 -0
  13. package/dist/src/codex-terminal-agent-adapter.js.map +1 -0
  14. package/dist/src/openclaw-plugin.js +54 -5
  15. package/dist/src/openclaw-plugin.js.map +1 -1
  16. package/dist/src/protocol.d.ts +1 -1
  17. package/dist/src/terminal-agent-adapter.d.ts +124 -0
  18. package/dist/src/terminal-agent-adapter.js +109 -0
  19. package/dist/src/terminal-agent-adapter.js.map +1 -0
  20. package/dist/src/terminal-agent-bridge.d.ts +97 -0
  21. package/dist/src/terminal-agent-bridge.js +362 -0
  22. package/dist/src/terminal-agent-bridge.js.map +1 -0
  23. package/dist/src/terminal-agent-registry.d.ts +7 -0
  24. package/dist/src/terminal-agent-registry.js +22 -0
  25. package/dist/src/terminal-agent-registry.js.map +1 -0
  26. package/dist/src/terminal-control-provider.d.ts +8 -6
  27. package/dist/src/terminal-control-provider.js +5 -5
  28. package/dist/src/terminal-control-provider.js.map +1 -1
  29. package/dist/src/terminal-process-source.d.ts +25 -0
  30. package/dist/src/terminal-process-source.js +77 -0
  31. package/dist/src/terminal-process-source.js.map +1 -0
  32. package/openclaw.plugin.json +4 -0
  33. package/package.json +1 -1
  34. package/templates/openclaw-skills/agent-knock-knock/SKILL.md +4 -4
@@ -0,0 +1,362 @@
1
+ import { createHash } from "node:crypto";
2
+ import { formatTerminalConversationId, parseTerminalConversationId, terminalControlCapabilitiesForAdapter } from "./terminal-agent-adapter.js";
3
+ import { enrichActiveProcessesWithTerminalControl, terminalRefFromPane } from "./terminal-control-provider.js";
4
+ export class TerminalAgentBridge {
5
+ registry;
6
+ terminalProvider;
7
+ constructor(options) {
8
+ this.registry = options.registry;
9
+ this.terminalProvider = options.terminalProvider;
10
+ }
11
+ adapterFor(agent) {
12
+ return this.registry.require(agent);
13
+ }
14
+ async listProcesses(snapshots, agents) {
15
+ const adapters = agents
16
+ ? agents.map((agent) => this.registry.require(agent))
17
+ : this.registry.list();
18
+ const discovered = [];
19
+ for (const adapter of adapters) {
20
+ if (!adapter.capabilities.processDiscovery) {
21
+ continue;
22
+ }
23
+ const classified = snapshots
24
+ .map((snapshot) => adapter.classifyProcess(snapshot))
25
+ .filter((process) => process !== undefined)
26
+ .map((process) => ({ ...process, agent: adapter.agent }));
27
+ discovered.push(...await this.attachProcesses(adapter.agent, classified));
28
+ }
29
+ return discovered;
30
+ }
31
+ async discoverProcesses(snapshots, agents) {
32
+ return this.listProcesses(snapshots, agents);
33
+ }
34
+ async attachProcesses(agent, processes) {
35
+ const adapter = this.registry.require(agent);
36
+ return enrichActiveProcessesWithTerminalControl(processes, this.terminalProvider, {
37
+ capabilities: terminalControlCapabilitiesForAdapter(adapter)
38
+ });
39
+ }
40
+ terminalConversationId(process) {
41
+ if (!process.terminalControl) {
42
+ throw new Error(`process ${process.pid} is not terminal-controlled`);
43
+ }
44
+ this.registry.require(process.agent);
45
+ return formatTerminalConversationId({
46
+ agent: process.agent,
47
+ target: process.terminalControl.target,
48
+ pid: process.pid
49
+ });
50
+ }
51
+ async resolveConversationId(conversationId) {
52
+ const parsed = parseTerminalConversationId(conversationId);
53
+ if (!parsed) {
54
+ return undefined;
55
+ }
56
+ const adapter = this.registry.require(parsed.agent);
57
+ const panes = await this.terminalProvider.listPanes();
58
+ const pane = panes.find((candidate) => candidate.kind === parsed.kind && candidate.target === parsed.target);
59
+ if (!pane) {
60
+ throw new Error(`terminal-controlled session ${parsed.conversationId} is no longer available`);
61
+ }
62
+ return {
63
+ conversationId: parsed.conversationId,
64
+ agent: parsed.agent,
65
+ pid: parsed.pid,
66
+ legacy: parsed.legacy,
67
+ adapter,
68
+ terminalControl: terminalRefFromPane(pane, terminalControlCapabilitiesForAdapter(adapter))
69
+ };
70
+ }
71
+ async status(agent, terminalControl, options = {}) {
72
+ const adapter = this.registry.require(agent);
73
+ if (!adapter.capabilities.screenStatus) {
74
+ return unsupportedScreenStatus(adapter, terminalControl);
75
+ }
76
+ try {
77
+ const { inspection } = await this.captureInspection(adapter, terminalControl, options);
78
+ return statusFromInspection(adapter, terminalControl, inspection);
79
+ }
80
+ catch (error) {
81
+ const message = error instanceof Error ? error.message : String(error);
82
+ return {
83
+ provider: terminalControl.kind,
84
+ target: terminalControl.target,
85
+ agent: adapter.agent,
86
+ reachable: false,
87
+ capabilities: adapter.capabilities,
88
+ activity_state: "unknown",
89
+ activity_reason: message,
90
+ approval_state: {
91
+ scanned: false,
92
+ blocked: false,
93
+ approvable: false,
94
+ reason: message
95
+ },
96
+ screen: { error: message }
97
+ };
98
+ }
99
+ }
100
+ async send(agent, terminalControl, text) {
101
+ const adapter = this.registry.require(agent);
102
+ if (!terminalControl.capabilities.includes("send_keys")) {
103
+ throw new Error(`${adapter.displayName} terminal input is not supported`);
104
+ }
105
+ const normalized = text.trimEnd();
106
+ if (!normalized) {
107
+ throw new Error("terminal message is empty");
108
+ }
109
+ await this.terminalProvider.sendText(terminalControl.target, normalized, {
110
+ socketPath: terminalControl.socketPath
111
+ });
112
+ await this.terminalProvider.sendKeys(terminalControl.target, ["C-m"], {
113
+ socketPath: terminalControl.socketPath
114
+ });
115
+ }
116
+ async cancel(agent, terminalControl) {
117
+ const adapter = this.registry.require(agent);
118
+ if (!adapter.capabilities.cancellation || adapter.cancelKeys.length === 0) {
119
+ return {
120
+ cancelRequested: false,
121
+ reason: `${adapter.displayName} terminal cancellation is not supported`
122
+ };
123
+ }
124
+ await this.terminalProvider.sendKeys(terminalControl.target, adapter.cancelKeys, {
125
+ socketPath: terminalControl.socketPath
126
+ });
127
+ return {
128
+ cancelRequested: true,
129
+ key: adapter.cancelKeys.length === 1 ? adapter.cancelKeys[0] : undefined,
130
+ keys: adapter.cancelKeys
131
+ };
132
+ }
133
+ async approve(agent, terminalControl, options = {}) {
134
+ const adapter = this.registry.require(agent);
135
+ if (!adapter.capabilities.terminalApproval) {
136
+ return {
137
+ approved: false,
138
+ blocked: true,
139
+ reason: `${adapter.displayName} terminal approval is not supported`
140
+ };
141
+ }
142
+ const { inspection } = await this.captureInspection(adapter, terminalControl, options);
143
+ if (!inspection.approval.approvable) {
144
+ return {
145
+ approved: false,
146
+ blocked: inspection.approval.blocked,
147
+ reason: inspection.approval.reason,
148
+ promptKind: inspection.approval.promptKind,
149
+ command: inspection.approval.command,
150
+ screenExcerpt: inspection.screenExcerpt
151
+ };
152
+ }
153
+ if (inspection.approval.action.keys.length === 0) {
154
+ return {
155
+ approved: false,
156
+ blocked: true,
157
+ reason: `${adapter.displayName} approval action has no keys`,
158
+ label: inspection.approval.action.label,
159
+ promptKind: inspection.approval.promptKind,
160
+ command: inspection.approval.command,
161
+ screenExcerpt: inspection.screenExcerpt
162
+ };
163
+ }
164
+ const fingerprint = terminalApprovalFingerprint(adapter.agent, terminalControl, inspection);
165
+ if (options.expectedFingerprint && options.expectedFingerprint !== fingerprint) {
166
+ return {
167
+ approved: false,
168
+ blocked: true,
169
+ reason: "approval fingerprint changed before execution",
170
+ key: inspection.approval.action.keys.length === 1
171
+ ? inspection.approval.action.keys[0]
172
+ : undefined,
173
+ keys: inspection.approval.action.keys,
174
+ label: inspection.approval.action.label,
175
+ promptKind: inspection.approval.promptKind,
176
+ command: inspection.approval.command,
177
+ fingerprint,
178
+ screenExcerpt: inspection.screenExcerpt
179
+ };
180
+ }
181
+ await this.terminalProvider.sendKeys(terminalControl.target, inspection.approval.action.keys, { socketPath: terminalControl.socketPath });
182
+ return {
183
+ approved: true,
184
+ blocked: false,
185
+ key: inspection.approval.action.keys.length === 1
186
+ ? inspection.approval.action.keys[0]
187
+ : undefined,
188
+ keys: inspection.approval.action.keys,
189
+ label: inspection.approval.action.label,
190
+ promptKind: inspection.approval.promptKind,
191
+ command: inspection.approval.command,
192
+ fingerprint,
193
+ screenExcerpt: inspection.screenExcerpt
194
+ };
195
+ }
196
+ async monitorPoll(options) {
197
+ const adapter = this.registry.require(options.agent);
198
+ let inspection;
199
+ let status = unsupportedScreenStatus(adapter, options.terminalControl);
200
+ if (adapter.capabilities.screenStatus) {
201
+ try {
202
+ const captured = await this.captureInspection(adapter, options.terminalControl, options.screenOptions);
203
+ inspection = captured.inspection;
204
+ status = statusFromInspection(adapter, options.terminalControl, inspection);
205
+ }
206
+ catch (error) {
207
+ status = failedScreenStatus(adapter, options.terminalControl, error);
208
+ }
209
+ }
210
+ let durableCompletion;
211
+ let durableError;
212
+ try {
213
+ durableCompletion = adapter.capabilities.durableCompletion && options.durableRequest
214
+ ? await adapter.detectDurableCompletion?.(options.durableRequest)
215
+ : undefined;
216
+ }
217
+ catch (error) {
218
+ durableError = error instanceof Error ? error.message : String(error);
219
+ }
220
+ const screenCompletion = adapter.capabilities.screenCompletion
221
+ ? inspection?.completion
222
+ : undefined;
223
+ const limitations = [
224
+ status.capability_limitation,
225
+ durableError ? `durable completion failed: ${durableError}` : undefined,
226
+ !adapter.capabilities.screenCompletion && !adapter.capabilities.durableCompletion
227
+ ? `${adapter.displayName} terminal completion detection is not supported`
228
+ : undefined
229
+ ].filter((value) => Boolean(value));
230
+ return {
231
+ status: limitations.length > 0
232
+ ? { ...status, capability_limitation: limitations.join("; ") }
233
+ : status,
234
+ inspection,
235
+ durableCompletion,
236
+ completion: durableCompletion ?? screenCompletion
237
+ };
238
+ }
239
+ async captureInspection(adapter, terminalControl, options = {}) {
240
+ const screen = await this.terminalProvider.capture(terminalControl.target, {
241
+ scrollbackLines: options.scrollbackLines ?? 120,
242
+ socketPath: terminalControl.socketPath
243
+ });
244
+ return {
245
+ screen,
246
+ inspection: adapter.inspectScreen({
247
+ screen,
248
+ requestText: options.requestText,
249
+ screenChangedSinceSend: options.screenChangedSinceSend,
250
+ maxExcerptLength: options.maxExcerptLength
251
+ })
252
+ };
253
+ }
254
+ }
255
+ export function terminalApprovalFingerprint(agent, terminalControl, inspection) {
256
+ if (!inspection.approval.approvable) {
257
+ return undefined;
258
+ }
259
+ return createHash("sha256")
260
+ .update(JSON.stringify({
261
+ agent,
262
+ provider: "tmux",
263
+ target: terminalControl.target,
264
+ keys: inspection.approval.action.keys,
265
+ label: inspection.approval.action.label,
266
+ prompt_kind: inspection.approval.promptKind,
267
+ command: inspection.approval.command,
268
+ screen_excerpt: inspection.screenExcerpt
269
+ }))
270
+ .digest("hex");
271
+ }
272
+ function statusFromInspection(adapter, terminalControl, inspection) {
273
+ const approval = inspection.approval;
274
+ const fingerprint = terminalApprovalFingerprint(adapter.agent, terminalControl, inspection);
275
+ return {
276
+ provider: terminalControl.kind,
277
+ target: terminalControl.target,
278
+ agent: adapter.agent,
279
+ reachable: true,
280
+ capabilities: adapter.capabilities,
281
+ activity_state: inspection.activity.state,
282
+ activity_reason: inspection.activity.reason,
283
+ approval_state: {
284
+ scanned: true,
285
+ blocked: approval.blocked,
286
+ approvable: approval.approvable,
287
+ key: approval.approvable && approval.action.keys.length === 1
288
+ ? approval.action.keys[0]
289
+ : undefined,
290
+ keys: approval.approvable ? approval.action.keys : undefined,
291
+ label: approval.approvable ? approval.action.label : undefined,
292
+ prompt_kind: approval.promptKind,
293
+ command: approval.command,
294
+ reason: approval.approvable ? undefined : approval.reason,
295
+ fingerprint
296
+ },
297
+ screen: {
298
+ excerpt: inspection.screenExcerpt,
299
+ approval: approvalOutput(approval)
300
+ }
301
+ };
302
+ }
303
+ function failedScreenStatus(adapter, terminalControl, error) {
304
+ const message = error instanceof Error ? error.message : String(error);
305
+ return {
306
+ provider: terminalControl.kind,
307
+ target: terminalControl.target,
308
+ agent: adapter.agent,
309
+ reachable: false,
310
+ capabilities: adapter.capabilities,
311
+ activity_state: "unknown",
312
+ activity_reason: message,
313
+ approval_state: {
314
+ scanned: false,
315
+ blocked: false,
316
+ approvable: false,
317
+ reason: message
318
+ },
319
+ screen: { error: message }
320
+ };
321
+ }
322
+ function approvalOutput(approval) {
323
+ if (!approval.approvable) {
324
+ return {
325
+ blocked: approval.blocked,
326
+ approvable: false,
327
+ reason: approval.reason,
328
+ promptKind: approval.promptKind,
329
+ command: approval.command
330
+ };
331
+ }
332
+ return {
333
+ blocked: true,
334
+ approvable: true,
335
+ key: approval.action.keys.length === 1 ? approval.action.keys[0] : undefined,
336
+ keys: approval.action.keys,
337
+ label: approval.action.label,
338
+ promptKind: approval.promptKind,
339
+ command: approval.command
340
+ };
341
+ }
342
+ function unsupportedScreenStatus(adapter, terminalControl) {
343
+ const reason = `${adapter.displayName} terminal screen status is not supported`;
344
+ return {
345
+ provider: terminalControl.kind,
346
+ target: terminalControl.target,
347
+ agent: adapter.agent,
348
+ reachable: true,
349
+ capabilities: adapter.capabilities,
350
+ activity_state: "unknown",
351
+ activity_reason: reason,
352
+ approval_state: {
353
+ scanned: false,
354
+ blocked: false,
355
+ approvable: false,
356
+ reason
357
+ },
358
+ screen: {},
359
+ capability_limitation: reason
360
+ };
361
+ }
362
+ //# sourceMappingURL=terminal-agent-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-agent-bridge.js","sourceRoot":"","sources":["../../src/terminal-agent-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type TerminalAgentAdapter } from "./terminal-agent-adapter.js";
2
+ import type { ExecutorKind } from "./executors.js";
3
+ export declare function createProductionTerminalAgentRegistry(options?: {
4
+ overrides?: readonly TerminalAgentAdapter[];
5
+ }): import("./terminal-agent-adapter.js").TerminalAgentAdapterRegistry;
6
+ export declare const terminalAgentAdapterRegistry: import("./terminal-agent-adapter.js").TerminalAgentAdapterRegistry;
7
+ export declare function terminalAgentAdapterFor(agent: ExecutorKind | string): TerminalAgentAdapter;
@@ -0,0 +1,22 @@
1
+ import { codexTerminalAgentAdapter } from "./codex-terminal-agent-adapter.js";
2
+ import { createTerminalAgentAdapterRegistry } from "./terminal-agent-adapter.js";
3
+ /** New production terminal agents opt in once here after providing a complete adapter. */
4
+ const productionTerminalAgentAdapters = [
5
+ codexTerminalAgentAdapter
6
+ ];
7
+ export function createProductionTerminalAgentRegistry(options = {}) {
8
+ const overrides = new Map((options.overrides ?? []).map((adapter) => [adapter.agent, adapter]));
9
+ const adapters = productionTerminalAgentAdapters.map((adapter) => overrides.get(adapter.agent) ?? adapter);
10
+ const productionAgents = new Set(adapters.map((adapter) => adapter.agent));
11
+ for (const adapter of overrides.values()) {
12
+ if (!productionAgents.has(adapter.agent)) {
13
+ adapters.push(adapter);
14
+ }
15
+ }
16
+ return createTerminalAgentAdapterRegistry(adapters);
17
+ }
18
+ export const terminalAgentAdapterRegistry = createProductionTerminalAgentRegistry();
19
+ export function terminalAgentAdapterFor(agent) {
20
+ return terminalAgentAdapterRegistry.require(agent);
21
+ }
22
+ //# sourceMappingURL=terminal-agent-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-agent-registry.js","sourceRoot":"","sources":["../../src/terminal-agent-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EACL,kCAAkC,EAEnC,MAAM,6BAA6B,CAAC;AAGrC,0FAA0F;AAC1F,MAAM,+BAA+B,GAAoC;IACvE,yBAAyB;CAC1B,CAAC;AAEF,MAAM,UAAU,qCAAqC,CAAC,UAElD,EAAE;IACJ,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CACrE,CAAC;IACF,MAAM,QAAQ,GAAG,+BAA+B,CAAC,GAAG,CAClD,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CACrD,CAAC;IACF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,kCAAkC,CAAC,QAAQ,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,qCAAqC,EAAE,CAAC;AAEpF,MAAM,UAAU,uBAAuB,CAAC,KAA4B;IAClE,OAAO,4BAA4B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACrD,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { ActiveCodexProcess, TerminalControlRef } from "./codex-session-provider.js";
1
+ import type { ActiveTerminalProcess, TerminalControlCapability, TerminalControlRef } from "./terminal-agent-adapter.js";
2
2
  export interface TerminalPane {
3
3
  kind: "tmux";
4
4
  target: string;
@@ -19,7 +19,7 @@ export interface TerminalControlProvider {
19
19
  sendText(target: string, text: string, options?: {
20
20
  socketPath?: string;
21
21
  }): Promise<void>;
22
- sendKeys(target: string, keys: string[], options?: {
22
+ sendKeys(target: string, keys: readonly string[], options?: {
23
23
  socketPath?: string;
24
24
  }): Promise<void>;
25
25
  }
@@ -60,7 +60,7 @@ export declare class TmuxTerminalControlProvider implements TerminalControlProvi
60
60
  scrollbackLines?: number;
61
61
  socketPath?: string;
62
62
  }): Promise<string>;
63
- sendKeys(target: string, keys: string[], options?: {
63
+ sendKeys(target: string, keys: readonly string[], options?: {
64
64
  socketPath?: string;
65
65
  }): Promise<void>;
66
66
  sendText(target: string, text: string, options?: {
@@ -81,9 +81,11 @@ export declare class StaticTerminalControlProvider implements TerminalControlPro
81
81
  listPanes(): Promise<TerminalPane[]>;
82
82
  capture(target: string): Promise<string>;
83
83
  sendText(target: string, text: string): Promise<void>;
84
- sendKeys(target: string, keys: string[]): Promise<void>;
84
+ sendKeys(target: string, keys: readonly string[]): Promise<void>;
85
85
  }
86
86
  export declare function parseTmuxListPanes(output: string, socketPath?: string): TerminalPane[];
87
- export declare function enrichActiveProcessesWithTerminalControl(processes: ActiveCodexProcess[], provider: TerminalControlProvider): Promise<ActiveCodexProcess[]>;
88
- export declare function terminalRefFromPane(pane: TerminalPane): TerminalControlRef;
87
+ export declare function enrichActiveProcessesWithTerminalControl<T extends ActiveTerminalProcess>(processes: T[], provider: TerminalControlProvider, options?: {
88
+ capabilities?: readonly TerminalControlCapability[];
89
+ }): Promise<T[]>;
90
+ export declare function terminalRefFromPane(pane: TerminalPane, capabilities?: readonly TerminalControlCapability[]): TerminalControlRef;
89
91
  export declare function discoverTmuxSocketPaths(root: string): string[];
@@ -118,7 +118,7 @@ export class StaticTerminalControlProvider {
118
118
  this.sentKeys.push({ target, keys: ["-l", text] });
119
119
  }
120
120
  async sendKeys(target, keys) {
121
- this.sentKeys.push({ target, keys });
121
+ this.sentKeys.push({ target, keys: [...keys] });
122
122
  }
123
123
  }
124
124
  export function parseTmuxListPanes(output, socketPath) {
@@ -179,7 +179,7 @@ function parseUnderscoreTmuxPaneLine(line) {
179
179
  const match = /^(.+)_(\d+)_(\d+)_(\d+)_([^_]+)_(.+?)\s*$/u.exec(line.trim());
180
180
  return match ? match.slice(1) : undefined;
181
181
  }
182
- export async function enrichActiveProcessesWithTerminalControl(processes, provider) {
182
+ export async function enrichActiveProcessesWithTerminalControl(processes, provider, options = {}) {
183
183
  const panes = await provider.listPanes();
184
184
  if (panes.length === 0) {
185
185
  return processes;
@@ -208,11 +208,11 @@ export async function enrichActiveProcessesWithTerminalControl(processes, provid
208
208
  }
209
209
  return {
210
210
  ...process,
211
- terminalControl: terminalRefFromPane(pane)
211
+ terminalControl: terminalRefFromPane(pane, options.capabilities)
212
212
  };
213
213
  });
214
214
  }
215
- export function terminalRefFromPane(pane) {
215
+ export function terminalRefFromPane(pane, capabilities = ["screen_status", "send_keys"]) {
216
216
  return {
217
217
  kind: "tmux",
218
218
  target: pane.target,
@@ -223,7 +223,7 @@ export function terminalRefFromPane(pane) {
223
223
  panePid: pane.panePid,
224
224
  currentCommand: pane.currentCommand,
225
225
  currentPath: pane.currentPath,
226
- capabilities: ["screen_status", "send_keys", "terminal_approval"]
226
+ capabilities: [...capabilities]
227
227
  };
228
228
  }
229
229
  function processBelongsToPane(process, pane, processes) {
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-control-provider.js","sourceRoot":"","sources":["../../src/terminal-control-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-control-provider.js","sourceRoot":"","sources":["../../src/terminal-control-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAkD7B,MAAM,OAAO,2BAA2B;IACrB,UAAU,CAAqD;IAC/D,WAAW,CAAW;IACtB,QAAQ,CAAW;IAEpC,YAAY,UAIR,EAAE;QACJ,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,UAAU,CAAC;QACnD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,sBAAsB,EAAE,CAAC;QACnE,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,MAAM,kBAAkB,GAA+C,EAAE,CAAC;QAC1E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,MAAM,QAAQ,GAA2B,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1E,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE;oBAC3D,YAAY;oBACZ,IAAI;oBACJ,IAAI;oBACJ,6GAA6G;iBAC9G,CAAC,CAAC,CAAC;gBACJ,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7F,kBAAkB,CAAC,IAAI,CAAC;oBACtB,OAAO;oBACP,UAAU;oBACV,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM;oBACzC,aAAa,EAAE,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC;oBACjD,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC;oBAC1C,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;oBACjD,SAAS,EAAE,WAAW,CAAC,MAAM;iBAC9B,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,SAAS;gBACX,CAAC;gBACD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;oBAC/B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;oBACxE,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBACzB,SAAS;oBACX,CAAC;oBACD,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,kBAAkB;YAC5B,SAAS,EAAE,KAAK,CAAC,MAAM;YACvB,KAAK;SACN,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,UAA6D,EAAE;QAC3F,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,IAAI,GAAG,CAAC,CAAC,CAAC;QAChF,IAAI,UAAqC,CAAC;QAC1C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE;gBACnE,cAAc;gBACd,IAAI;gBACJ,MAAM;gBACN,IAAI;gBACJ,IAAI;gBACJ,IAAI,eAAe,EAAE;aACtB,CAAC,CAAC,CAAC;YACJ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,MAAM,CAAC,MAAM,CAAC;YACvB,CAAC;YACD,UAAU,GAAG,MAAM,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,MAAM,IAAI,UAAU,EAAE,KAAK,EAAE,OAAO,IAAI,gCAAgC,MAAM,EAAE,CAAC,CAAC;IAChH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,IAAuB,EAAE,UAAmC,EAAE;QAC3F,IAAI,UAAqC,CAAC;QAC1C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5G,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YACD,UAAU,GAAG,MAAM,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,MAAM,IAAI,UAAU,EAAE,KAAK,EAAE,OAAO,IAAI,6BAA6B,MAAM,EAAE,CAAC,CAAC;IAC7G,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,IAAY,EAAE,UAAmC,EAAE;QAChF,IAAI,UAAqC,CAAC;QAC1C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/G,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YACD,UAAU,GAAG,MAAM,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,MAAM,IAAI,UAAU,EAAE,KAAK,EAAE,OAAO,IAAI,6BAA6B,MAAM,EAAE,CAAC,CAAC;IAC7G,CAAC;CACF;AAED,MAAM,OAAO,6BAA6B;IACvB,KAAK,CAAiB;IACtB,OAAO,CAAsB;IACrC,QAAQ,GAAyC,EAAE,CAAC;IAE7D,YAAY,UAAwE,EAAE;QACpF,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,IAAY;QACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,IAAuB;QACpD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,UAAmB;IACpE,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,MAAe;YACrB,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;YAC3D,UAAU;YACV,GAAG,MAAM;SACV,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC;QAClC,CAAC,CAAC;YACE,SAAS,CAAC,CAAC,CAAC;YACZ,SAAS,CAAC,CAAC,CAAC;YACZ,SAAS,CAAC,CAAC,CAAC;YACZ,SAAS,CAAC,CAAC,CAAC;YACZ,SAAS,CAAC,CAAC,CAAC;YACZ,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SAC9B;QACH,CAAC,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,2BAA2B,CAAC,IAAI,CAAC,CAAC;IAC3E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,CAAC,GAAG,MAAM,CAAC;IACvF,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;QACzG,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,OAAO;QACP,MAAM;QACN,IAAI;QACJ,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,cAAc,IAAI,SAAS;QAC3C,WAAW,EAAE,WAAW,IAAI,SAAS;KACtC,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAY;IAC/C,MAAM,KAAK,GAAG,qDAAqD,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACtF,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAY;IAC/C,MAAM,KAAK,GAAG,4CAA4C,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wCAAwC,CAC5D,SAAc,EACd,QAAiC,EACjC,UAAmE,EAAE;IAErE,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAChD,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,SAAS;QACX,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO;YACL,GAAG,OAAO;YACV,eAAe,EAAE,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC;SAC5D,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAAkB,EAClB,eAAqD,CAAC,eAAe,EAAE,WAAW,CAAC;IAEnF,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAU,EACV,IAAkB,EAClB,SAAc;IAEd,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,GAAG,OAAO,CAAC;IACtB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,OAA8B,EAAE,KAAqB;IAC5E,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAwB,CAAC;IACtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,UAAU,EAAE,CAAC;YACpD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,eAAe,CAAC,IAAkB;IACzC,OAAO,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,cAAc,CAAC,KAAyB;IAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,IAAc;IACjD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE;QACtC,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE;KAC5B,CAAC,CAAC;IACH,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,UAA8B,EAAE,IAAc;IAC9D,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,KAAK,GAAG;QACZ,OAAO,CAAC,GAAG,CAAC,eAAe;QAC3B,yBAAyB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3C,aAAa,CAAC,cAAc,CAAC;QAC7B,aAAa,CAAC,MAAM,CAAC;QACrB,GAAG,uBAAuB,CAAC,cAAc,CAAC;QAC1C,GAAG,uBAAuB,CAAC,MAAM,CAAC;KACnC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aACjD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;aACxE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;aACtD,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO;QACL,MAAM;QACN,wBAAwB;QACxB,qBAAqB;QACrB,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,MAAgB;IACrC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAyB;IACpD,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAyB;IAC1D,OAAO,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;AAC3C,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACzC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,IAAI,SAAS,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC;AACpD,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { TerminalProcessSnapshot } from "./terminal-agent-adapter.js";
2
+ export interface ProcessCommandResult {
3
+ status: number | null;
4
+ stdout: string;
5
+ stderr: string;
6
+ error?: Error;
7
+ }
8
+ export interface TerminalProcessSource {
9
+ listProcessSnapshots(isCandidate?: (snapshot: TerminalProcessSnapshot) => boolean): Promise<TerminalProcessSnapshot[]>;
10
+ }
11
+ export declare class StaticTerminalProcessSource implements TerminalProcessSource {
12
+ private readonly snapshots;
13
+ constructor(snapshots: readonly TerminalProcessSnapshot[]);
14
+ listProcessSnapshots(isCandidate?: (snapshot: TerminalProcessSnapshot) => boolean): Promise<TerminalProcessSnapshot[]>;
15
+ }
16
+ export declare class SystemTerminalProcessSource implements TerminalProcessSource {
17
+ private readonly runCommand;
18
+ constructor(options?: {
19
+ runCommand?: (command: string, args: string[]) => ProcessCommandResult;
20
+ });
21
+ listProcessSnapshots(isCandidate?: (snapshot: TerminalProcessSnapshot) => boolean): Promise<TerminalProcessSnapshot[]>;
22
+ }
23
+ export declare function parsePsProcessSnapshots(output: string): TerminalProcessSnapshot[];
24
+ export declare function parseLsofCwdMap(output: string): Map<number, string>;
25
+ export declare function runProcessCommand(command: string, args: string[]): ProcessCommandResult;
@@ -0,0 +1,77 @@
1
+ import { spawnSync } from "node:child_process";
2
+ export class StaticTerminalProcessSource {
3
+ snapshots;
4
+ constructor(snapshots) {
5
+ this.snapshots = snapshots;
6
+ }
7
+ async listProcessSnapshots(isCandidate = () => true) {
8
+ return this.snapshots.filter(isCandidate).map((snapshot) => ({ ...snapshot }));
9
+ }
10
+ }
11
+ export class SystemTerminalProcessSource {
12
+ runCommand;
13
+ constructor(options = {}) {
14
+ this.runCommand = options.runCommand ?? runProcessCommand;
15
+ }
16
+ async listProcessSnapshots(isCandidate = () => true) {
17
+ const ps = this.runCommand("ps", ["-axo", "pid,ppid,etime,command"]);
18
+ if (ps.status !== 0) {
19
+ throw new Error(ps.stderr || ps.error?.message || "ps failed");
20
+ }
21
+ const candidates = parsePsProcessSnapshots(ps.stdout).filter(isCandidate);
22
+ if (candidates.length === 0) {
23
+ return [];
24
+ }
25
+ const lsof = this.runCommand("lsof", [
26
+ "-a",
27
+ "-d",
28
+ "cwd",
29
+ "-p",
30
+ candidates.map((snapshot) => String(snapshot.pid)).join(",")
31
+ ]);
32
+ if (lsof.status !== 0) {
33
+ return candidates;
34
+ }
35
+ const cwdByPid = parseLsofCwdMap(lsof.stdout);
36
+ return candidates.map((snapshot) => ({
37
+ ...snapshot,
38
+ cwd: snapshot.cwd ?? cwdByPid.get(snapshot.pid)
39
+ }));
40
+ }
41
+ }
42
+ export function parsePsProcessSnapshots(output) {
43
+ return output
44
+ .split(/\r?\n/)
45
+ .slice(1)
46
+ .map((line) => /^\s*(\d+)\s+(\d+)\s+(\S+)\s+(.+?)\s*$/u.exec(line))
47
+ .filter((match) => Boolean(match))
48
+ .map((match) => ({
49
+ pid: Number(match[1]),
50
+ ppid: Number(match[2]),
51
+ elapsed: match[3],
52
+ command: match[4]
53
+ }));
54
+ }
55
+ export function parseLsofCwdMap(output) {
56
+ const cwdByPid = new Map();
57
+ for (const line of output.split(/\r?\n/).slice(1)) {
58
+ const match = /^\S+\s+(\d+)\s+\S+\s+cwd\s+\S+\s+\S+\s+\S+\s+\S+\s+(.+?)\s*$/u.exec(line);
59
+ if (match) {
60
+ cwdByPid.set(Number(match[1]), match[2]);
61
+ }
62
+ }
63
+ return cwdByPid;
64
+ }
65
+ export function runProcessCommand(command, args) {
66
+ const result = spawnSync(command, args, {
67
+ encoding: "utf8",
68
+ maxBuffer: 1024 * 1024 * 10
69
+ });
70
+ return {
71
+ status: result.status,
72
+ stdout: result.stdout,
73
+ stderr: result.stderr,
74
+ error: result.error
75
+ };
76
+ }
77
+ //# sourceMappingURL=terminal-process-source.js.map