@scotthuang/agent-knock-knock 0.2.46 → 0.2.47
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 +12 -0
- package/README.md +25 -10
- package/dist/src/approval-policy.d.ts +1 -0
- package/dist/src/approval-policy.js +6 -0
- package/dist/src/approval-policy.js.map +1 -1
- package/dist/src/claude-hook-installer.d.ts +65 -0
- package/dist/src/claude-hook-installer.js +410 -0
- package/dist/src/claude-hook-installer.js.map +1 -0
- package/dist/src/claude-hook-protocol.d.ts +89 -0
- package/dist/src/claude-hook-protocol.js +243 -0
- package/dist/src/claude-hook-protocol.js.map +1 -0
- package/dist/src/claude-hook-store.d.ts +247 -0
- package/dist/src/claude-hook-store.js +1064 -0
- package/dist/src/claude-hook-store.js.map +1 -0
- package/dist/src/claude-terminal-agent-adapter.d.ts +47 -0
- package/dist/src/claude-terminal-agent-adapter.js +920 -0
- package/dist/src/claude-terminal-agent-adapter.js.map +1 -0
- package/dist/src/cli.js +987 -103
- package/dist/src/cli.js.map +1 -1
- package/dist/src/openclaw-plugin.js +6 -6
- package/dist/src/openclaw-plugin.js.map +1 -1
- package/dist/src/terminal-agent-adapter.d.ts +34 -0
- package/dist/src/terminal-agent-adapter.js.map +1 -1
- package/dist/src/terminal-agent-bridge.d.ts +19 -2
- package/dist/src/terminal-agent-bridge.js +140 -15
- package/dist/src/terminal-agent-bridge.js.map +1 -1
- package/dist/src/terminal-agent-registry.js +3 -1
- package/dist/src/terminal-agent-registry.js.map +1 -1
- package/openclaw.plugin.json +3 -3
- package/package.json +1 -1
- package/templates/openclaw-skills/agent-knock-knock/SKILL.md +16 -13
|
@@ -70,7 +70,8 @@ export class TerminalAgentBridge {
|
|
|
70
70
|
}
|
|
71
71
|
async status(agent, terminalControl, options = {}) {
|
|
72
72
|
const adapter = this.registry.require(agent);
|
|
73
|
-
if (!adapter.capabilities.screenStatus
|
|
73
|
+
if (!adapter.capabilities.screenStatus ||
|
|
74
|
+
!terminalControl.capabilities.includes("screen_status")) {
|
|
74
75
|
return unsupportedScreenStatus(adapter, terminalControl);
|
|
75
76
|
}
|
|
76
77
|
try {
|
|
@@ -113,9 +114,47 @@ export class TerminalAgentBridge {
|
|
|
113
114
|
socketPath: terminalControl.socketPath
|
|
114
115
|
});
|
|
115
116
|
}
|
|
116
|
-
async cancel(agent, terminalControl) {
|
|
117
|
+
async cancel(agent, terminalControl, options = {}) {
|
|
117
118
|
const adapter = this.registry.require(agent);
|
|
118
|
-
if (
|
|
119
|
+
if (adapter.capabilities.terminalApproval &&
|
|
120
|
+
adapter.resolveApproval &&
|
|
121
|
+
terminalControl.capabilities.includes("terminal_approval") &&
|
|
122
|
+
adapter.capabilities.screenStatus &&
|
|
123
|
+
terminalControl.capabilities.includes("screen_status")) {
|
|
124
|
+
const { inspection } = await this.captureInspection(adapter, terminalControl, options);
|
|
125
|
+
if (inspection.approval.approvable && inspection.approval.action.mode === "structured") {
|
|
126
|
+
const fingerprint = terminalApprovalFingerprint(adapter.agent, terminalControl, inspection);
|
|
127
|
+
if (!fingerprint) {
|
|
128
|
+
return {
|
|
129
|
+
cancelRequested: false,
|
|
130
|
+
reason: `${adapter.displayName} structured approval has no fingerprint`
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
const decision = await adapter.resolveApproval({
|
|
134
|
+
decision: "deny",
|
|
135
|
+
expectedFingerprint: fingerprint,
|
|
136
|
+
actualFingerprint: fingerprint,
|
|
137
|
+
inspection,
|
|
138
|
+
runtime: options.runtime,
|
|
139
|
+
interrupt: true
|
|
140
|
+
});
|
|
141
|
+
return {
|
|
142
|
+
cancelRequested: decision.resolved,
|
|
143
|
+
deniedApproval: decision.resolved,
|
|
144
|
+
requestId: decision.requestId,
|
|
145
|
+
reason: decision.reason
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
if (inspection.approval.blocked && !inspection.approval.approvable) {
|
|
149
|
+
return {
|
|
150
|
+
cancelRequested: false,
|
|
151
|
+
reason: inspection.approval.reason
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (!adapter.capabilities.cancellation ||
|
|
156
|
+
adapter.cancelKeys.length === 0 ||
|
|
157
|
+
!terminalControl.capabilities.includes("terminal_cancel")) {
|
|
119
158
|
return {
|
|
120
159
|
cancelRequested: false,
|
|
121
160
|
reason: `${adapter.displayName} terminal cancellation is not supported`
|
|
@@ -132,7 +171,8 @@ export class TerminalAgentBridge {
|
|
|
132
171
|
}
|
|
133
172
|
async approve(agent, terminalControl, options = {}) {
|
|
134
173
|
const adapter = this.registry.require(agent);
|
|
135
|
-
if (!adapter.capabilities.terminalApproval
|
|
174
|
+
if (!adapter.capabilities.terminalApproval ||
|
|
175
|
+
!terminalControl.capabilities.includes("terminal_approval")) {
|
|
136
176
|
return {
|
|
137
177
|
approved: false,
|
|
138
178
|
blocked: true,
|
|
@@ -150,7 +190,22 @@ export class TerminalAgentBridge {
|
|
|
150
190
|
screenExcerpt: inspection.screenExcerpt
|
|
151
191
|
};
|
|
152
192
|
}
|
|
153
|
-
|
|
193
|
+
const decisionMode = inspection.approval.action.mode ?? "keys";
|
|
194
|
+
if (options.requiredDecisionMode && decisionMode !== options.requiredDecisionMode) {
|
|
195
|
+
return {
|
|
196
|
+
approved: false,
|
|
197
|
+
blocked: true,
|
|
198
|
+
reason: `${adapter.displayName} approval mode ${decisionMode} is not eligible for this decision`,
|
|
199
|
+
label: inspection.approval.action.label,
|
|
200
|
+
promptKind: inspection.approval.promptKind,
|
|
201
|
+
command: inspection.approval.command,
|
|
202
|
+
fingerprint: terminalApprovalFingerprint(adapter.agent, terminalControl, inspection),
|
|
203
|
+
screenExcerpt: inspection.screenExcerpt,
|
|
204
|
+
decisionMode,
|
|
205
|
+
requestId: inspection.approval.action.requestId
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
if (decisionMode === "keys" && inspection.approval.action.keys.length === 0) {
|
|
154
209
|
return {
|
|
155
210
|
approved: false,
|
|
156
211
|
blocked: true,
|
|
@@ -175,7 +230,55 @@ export class TerminalAgentBridge {
|
|
|
175
230
|
promptKind: inspection.approval.promptKind,
|
|
176
231
|
command: inspection.approval.command,
|
|
177
232
|
fingerprint,
|
|
178
|
-
screenExcerpt: inspection.screenExcerpt
|
|
233
|
+
screenExcerpt: inspection.screenExcerpt,
|
|
234
|
+
decisionMode,
|
|
235
|
+
requestId: inspection.approval.action.requestId
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
if (decisionMode === "structured") {
|
|
239
|
+
if (!options.expectedFingerprint) {
|
|
240
|
+
return {
|
|
241
|
+
approved: false,
|
|
242
|
+
blocked: true,
|
|
243
|
+
reason: "structured approval requires the latest expected fingerprint",
|
|
244
|
+
label: inspection.approval.action.label,
|
|
245
|
+
promptKind: inspection.approval.promptKind,
|
|
246
|
+
command: inspection.approval.command,
|
|
247
|
+
fingerprint,
|
|
248
|
+
screenExcerpt: inspection.screenExcerpt,
|
|
249
|
+
decisionMode,
|
|
250
|
+
requestId: inspection.approval.action.requestId
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
if (!fingerprint || !adapter.resolveApproval) {
|
|
254
|
+
return {
|
|
255
|
+
approved: false,
|
|
256
|
+
blocked: true,
|
|
257
|
+
reason: `${adapter.displayName} structured approval resolver is unavailable`,
|
|
258
|
+
fingerprint,
|
|
259
|
+
screenExcerpt: inspection.screenExcerpt,
|
|
260
|
+
decisionMode,
|
|
261
|
+
requestId: inspection.approval.action.requestId
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
const resolved = await adapter.resolveApproval({
|
|
265
|
+
decision: "allow",
|
|
266
|
+
expectedFingerprint: options.expectedFingerprint,
|
|
267
|
+
actualFingerprint: fingerprint,
|
|
268
|
+
inspection,
|
|
269
|
+
runtime: options.runtime
|
|
270
|
+
});
|
|
271
|
+
return {
|
|
272
|
+
approved: resolved.resolved,
|
|
273
|
+
blocked: !resolved.resolved,
|
|
274
|
+
reason: resolved.reason,
|
|
275
|
+
label: inspection.approval.action.label,
|
|
276
|
+
promptKind: inspection.approval.promptKind,
|
|
277
|
+
command: inspection.approval.command,
|
|
278
|
+
fingerprint,
|
|
279
|
+
screenExcerpt: inspection.screenExcerpt,
|
|
280
|
+
decisionMode,
|
|
281
|
+
requestId: resolved.requestId ?? inspection.approval.action.requestId
|
|
179
282
|
};
|
|
180
283
|
}
|
|
181
284
|
await this.terminalProvider.sendKeys(terminalControl.target, inspection.approval.action.keys, { socketPath: terminalControl.socketPath });
|
|
@@ -190,14 +293,17 @@ export class TerminalAgentBridge {
|
|
|
190
293
|
promptKind: inspection.approval.promptKind,
|
|
191
294
|
command: inspection.approval.command,
|
|
192
295
|
fingerprint,
|
|
193
|
-
screenExcerpt: inspection.screenExcerpt
|
|
296
|
+
screenExcerpt: inspection.screenExcerpt,
|
|
297
|
+
decisionMode,
|
|
298
|
+
requestId: inspection.approval.action.requestId
|
|
194
299
|
};
|
|
195
300
|
}
|
|
196
301
|
async monitorPoll(options) {
|
|
197
302
|
const adapter = this.registry.require(options.agent);
|
|
198
303
|
let inspection;
|
|
199
304
|
let status = unsupportedScreenStatus(adapter, options.terminalControl);
|
|
200
|
-
if (adapter.capabilities.screenStatus
|
|
305
|
+
if (adapter.capabilities.screenStatus &&
|
|
306
|
+
options.terminalControl.capabilities.includes("screen_status")) {
|
|
201
307
|
try {
|
|
202
308
|
const captured = await this.captureInspection(adapter, options.terminalControl, options.screenOptions);
|
|
203
309
|
inspection = captured.inspection;
|
|
@@ -210,14 +316,17 @@ export class TerminalAgentBridge {
|
|
|
210
316
|
let durableCompletion;
|
|
211
317
|
let durableError;
|
|
212
318
|
try {
|
|
213
|
-
durableCompletion = adapter.capabilities.durableCompletion &&
|
|
319
|
+
durableCompletion = adapter.capabilities.durableCompletion &&
|
|
320
|
+
options.terminalControl.capabilities.includes("durable_completion") &&
|
|
321
|
+
options.durableRequest
|
|
214
322
|
? await adapter.detectDurableCompletion?.(options.durableRequest)
|
|
215
323
|
: undefined;
|
|
216
324
|
}
|
|
217
325
|
catch (error) {
|
|
218
326
|
durableError = error instanceof Error ? error.message : String(error);
|
|
219
327
|
}
|
|
220
|
-
const screenCompletion = adapter.capabilities.screenCompletion
|
|
328
|
+
const screenCompletion = adapter.capabilities.screenCompletion &&
|
|
329
|
+
options.terminalControl.capabilities.includes("screen_completion")
|
|
221
330
|
? inspection?.completion
|
|
222
331
|
: undefined;
|
|
223
332
|
const limitations = [
|
|
@@ -247,7 +356,8 @@ export class TerminalAgentBridge {
|
|
|
247
356
|
screen,
|
|
248
357
|
requestText: options.requestText,
|
|
249
358
|
screenChangedSinceSend: options.screenChangedSinceSend,
|
|
250
|
-
maxExcerptLength: options.maxExcerptLength
|
|
359
|
+
maxExcerptLength: options.maxExcerptLength,
|
|
360
|
+
runtime: options.runtime
|
|
251
361
|
})
|
|
252
362
|
};
|
|
253
363
|
}
|
|
@@ -256,6 +366,7 @@ export function terminalApprovalFingerprint(agent, terminalControl, inspection)
|
|
|
256
366
|
if (!inspection.approval.approvable) {
|
|
257
367
|
return undefined;
|
|
258
368
|
}
|
|
369
|
+
const decisionMode = inspection.approval.action.mode ?? "keys";
|
|
259
370
|
return createHash("sha256")
|
|
260
371
|
.update(JSON.stringify({
|
|
261
372
|
agent,
|
|
@@ -265,7 +376,11 @@ export function terminalApprovalFingerprint(agent, terminalControl, inspection)
|
|
|
265
376
|
label: inspection.approval.action.label,
|
|
266
377
|
prompt_kind: inspection.approval.promptKind,
|
|
267
378
|
command: inspection.approval.command,
|
|
268
|
-
|
|
379
|
+
tool_name: inspection.approval.toolName,
|
|
380
|
+
request_detail: inspection.approval.requestDetail,
|
|
381
|
+
screen_excerpt: decisionMode === "structured" ? undefined : inspection.screenExcerpt,
|
|
382
|
+
decision_mode: decisionMode,
|
|
383
|
+
request_id: inspection.approval.action.requestId
|
|
269
384
|
}))
|
|
270
385
|
.digest("hex");
|
|
271
386
|
}
|
|
@@ -291,8 +406,12 @@ function statusFromInspection(adapter, terminalControl, inspection) {
|
|
|
291
406
|
label: approval.approvable ? approval.action.label : undefined,
|
|
292
407
|
prompt_kind: approval.promptKind,
|
|
293
408
|
command: approval.command,
|
|
409
|
+
tool_name: approval.toolName,
|
|
410
|
+
request_detail: approval.requestDetail,
|
|
294
411
|
reason: approval.approvable ? undefined : approval.reason,
|
|
295
|
-
fingerprint
|
|
412
|
+
fingerprint,
|
|
413
|
+
decision_mode: approval.approvable ? approval.action.mode ?? "keys" : undefined,
|
|
414
|
+
request_id: approval.approvable ? approval.action.requestId : undefined
|
|
296
415
|
},
|
|
297
416
|
screen: {
|
|
298
417
|
excerpt: inspection.screenExcerpt,
|
|
@@ -326,7 +445,9 @@ function approvalOutput(approval) {
|
|
|
326
445
|
approvable: false,
|
|
327
446
|
reason: approval.reason,
|
|
328
447
|
promptKind: approval.promptKind,
|
|
329
|
-
command: approval.command
|
|
448
|
+
command: approval.command,
|
|
449
|
+
toolName: approval.toolName,
|
|
450
|
+
requestDetail: approval.requestDetail
|
|
330
451
|
};
|
|
331
452
|
}
|
|
332
453
|
return {
|
|
@@ -336,7 +457,11 @@ function approvalOutput(approval) {
|
|
|
336
457
|
keys: approval.action.keys,
|
|
337
458
|
label: approval.action.label,
|
|
338
459
|
promptKind: approval.promptKind,
|
|
339
|
-
command: approval.command
|
|
460
|
+
command: approval.command,
|
|
461
|
+
toolName: approval.toolName,
|
|
462
|
+
requestDetail: approval.requestDetail,
|
|
463
|
+
decisionMode: approval.action.mode ?? "keys",
|
|
464
|
+
requestId: approval.action.requestId
|
|
340
465
|
};
|
|
341
466
|
}
|
|
342
467
|
function unsupportedScreenStatus(adapter, terminalControl) {
|
|
@@ -1 +1 @@
|
|
|
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,EAUtC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,wCAAwC,EACxC,mBAAmB,EAEpB,MAAM,gCAAgC,CAAC;AA2DxC,MAAM,OAAO,mBAAmB;IACrB,QAAQ,CAA+B;IACvC,gBAAgB,CAA0B;IAEnD,YAAY,OAGX;QACC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACnD,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,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;QAC5E,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;QAEd,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;SAC7D,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,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7G,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,cAAc,yBAAyB,CAAC,CAAC;QACjG,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,mBAAmB,CAClC,IAAI,EACJ,qCAAqC,CAAC,OAAO,CAAC,CAC/C;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAAmB,EACnB,eAAmC,EACnC,UAAwC,EAAE;QAE1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YACvC,OAAO,uBAAuB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;YACvF,OAAO,oBAAoB,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;QACpE,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;QAEZ,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,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE;YACvE,UAAU,EAAE,eAAe,CAAC,UAAU;SACvC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE;YACpE,UAAU,EAAE,eAAe,CAAC,UAAU;SACvC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAmB,EAAE,eAAmC;QAMnE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1E,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,yCAAyC;aACxE,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE;YAC/E,UAAU,EAAE,eAAe,CAAC,UAAU;SACvC,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,UAAsE,EAAE;QAExE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;YAC3C,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,qCAAqC;aACpE,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QACvF,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,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,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,eAAe,EAAE,UAAU,CAAC,CAAC;QAC5F,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;aACxC,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAClC,eAAe,CAAC,MAAM,EACtB,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAC/B,EAAE,UAAU,EAAE,eAAe,CAAC,UAAU,EAAE,CAC3C,CAAC;QACF,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,KAAK;YACd,GAAG,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAC/C,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpC,CAAC,CAAC,SAAS;YACb,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI;YACrC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;YACvC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU;YAC1C,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO;YACpC,WAAW;YACX,aAAa,EAAE,UAAU,CAAC,aAAa;SACxC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAUjB;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,IAAI,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YACtC,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,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAC9E,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,IAAI,OAAO,CAAC,cAAc;gBAClF,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,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,UAKI,EAAE;QAEN,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE;YACzE,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,GAAG;YAC/C,UAAU,EAAE,eAAe,CAAC,UAAU;SACvC,CAAC,CAAC;QACH,OAAO;YACL,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;aAC3C,CAAC;SACH,CAAC;IACJ,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,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,cAAc,EAAE,UAAU,CAAC,aAAa;KACzC,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,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM;YACzD,WAAW;SACZ;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;SAC1B,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;KAC1B,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
|
+
{"version":3,"file":"terminal-agent-bridge.js","sourceRoot":"","sources":["../../src/terminal-agent-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { codexTerminalAgentAdapter } from "./codex-terminal-agent-adapter.js";
|
|
2
|
+
import { claudeTerminalAgentAdapter } from "./claude-terminal-agent-adapter.js";
|
|
2
3
|
import { createTerminalAgentAdapterRegistry } from "./terminal-agent-adapter.js";
|
|
3
4
|
/** New production terminal agents opt in once here after providing a complete adapter. */
|
|
4
5
|
const productionTerminalAgentAdapters = [
|
|
5
|
-
codexTerminalAgentAdapter
|
|
6
|
+
codexTerminalAgentAdapter,
|
|
7
|
+
claudeTerminalAgentAdapter
|
|
6
8
|
];
|
|
7
9
|
export function createProductionTerminalAgentRegistry(options = {}) {
|
|
8
10
|
const overrides = new Map((options.overrides ?? []).map((adapter) => [adapter.agent, adapter]));
|
|
@@ -1 +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;
|
|
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,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EACL,kCAAkC,EAEnC,MAAM,6BAA6B,CAAC;AAGrC,0FAA0F;AAC1F,MAAM,+BAA+B,GAAoC;IACvE,yBAAyB;IACzB,0BAA0B;CAC3B,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"}
|
package/openclaw.plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "agent-knock-knock",
|
|
3
3
|
"name": "Agent Knock Knock",
|
|
4
|
-
"description": "Agent Knock Knock (AKK/akk) delegates OpenClaw coding work to local Codex, Claude, or Cursor agents. Use this plugin when the user says AKK, akk, Agent Knock Knock, asks to hand work to Codex, Claude, or Cursor, asks what agent tasks are running, asks what an AKK
|
|
4
|
+
"description": "Agent Knock Knock (AKK/akk) delegates OpenClaw coding work to local Codex, Claude, or Cursor agents. Use this plugin when the user says AKK, akk, Agent Knock Knock, asks to hand work to Codex, Claude, or Cursor, asks what agent tasks are running, asks what an AKK, Codex, or Claude session is about, sends a follow-up to an agent task, renews monitoring for a stalled terminal task, recovers an unavailable agent session, cancels a running agent task, or closes an agent task. Default delegation target comes from plugin config defaultAgent and falls back to Codex when unset; explicit user agent requests override it.",
|
|
5
5
|
"activation": {
|
|
6
6
|
"onStartup": true
|
|
7
7
|
},
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
"autoApprove": {
|
|
172
172
|
"type": "object",
|
|
173
173
|
"additionalProperties": false,
|
|
174
|
-
"description": "Deterministic terminal approval policy. Disabled by default and never exposed as model-controlled tool parameters.",
|
|
174
|
+
"description": "Deterministic Codex and Claude Code terminal approval policy. Disabled by default and never exposed as model-controlled tool parameters.",
|
|
175
175
|
"properties": {
|
|
176
176
|
"enabled": {
|
|
177
177
|
"type": "boolean",
|
|
@@ -193,7 +193,7 @@
|
|
|
193
193
|
"minItems": 1,
|
|
194
194
|
"items": {
|
|
195
195
|
"type": "string",
|
|
196
|
-
"enum": ["codex"]
|
|
196
|
+
"enum": ["codex", "claude"]
|
|
197
197
|
}
|
|
198
198
|
},
|
|
199
199
|
"workspaces": {
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@ description: Delegate OpenClaw tasks to local Codex, Claude Code, and Cursor age
|
|
|
5
5
|
|
|
6
6
|
# Agent Knock Knock
|
|
7
7
|
|
|
8
|
-
Use this skill when the user says `AKK`, `akk`, `Agent Knock Knock`, asks OpenClaw to delegate coding work to Codex, Claude, or Cursor, asks what agent tasks are running, asks what a listed AKK
|
|
8
|
+
Use this skill when the user says `AKK`, `akk`, `Agent Knock Knock`, asks OpenClaw to delegate coding work to Codex, Claude, or Cursor, asks what agent tasks are running, asks what a listed AKK, Codex, or Claude session is about, sends a follow-up to an agent task, lists existing local coding-agent sessions, takes over an existing native Codex session, recovers an unavailable agent session, cancels a running agent task, or closes an agent task.
|
|
9
9
|
|
|
10
10
|
Treat `AKK` and `akk` the same way.
|
|
11
11
|
|
|
@@ -35,7 +35,7 @@ Slash command forms:
|
|
|
35
35
|
- `/akk cursor <task>`: delegate to Cursor.
|
|
36
36
|
- `/akk list`: list open AKK sessions.
|
|
37
37
|
- `/akk status <conversation-id>`: inspect one AKK session.
|
|
38
|
-
- `/akk describe <conversation-id>`: summarize what one AKK-managed, native
|
|
38
|
+
- `/akk describe <conversation-id>`: summarize what one AKK-managed, native, or terminal-controlled session is about.
|
|
39
39
|
- `/akk send <conversation-id> <message>`: send a follow-up to one open AKK session.
|
|
40
40
|
- `/akk cancel <conversation-id>`: request cooperative cancellation of the current in-flight prompt for one AKK session without closing it.
|
|
41
41
|
- `/akk recover <conversation-id>`: recover a session that is waiting for a recovery decision by starting a new agent session with AKK's saved protocol history summary.
|
|
@@ -47,17 +47,17 @@ Natural-language forms:
|
|
|
47
47
|
- `AKK Codex: <task>`: call `agent_knock_knock_delegate` with `agent="codex"`.
|
|
48
48
|
- `AKK Claude: <task>`: call `agent_knock_knock_delegate` with `agent="claude"`.
|
|
49
49
|
- `AKK Cursor: <task>`: call `agent_knock_knock_delegate` with `agent="cursor"`.
|
|
50
|
-
- `AKK list`, `akk list`, questions such as "what AKK sessions are open", "which Codex sessions are currently running", "terminal-controlled
|
|
50
|
+
- `AKK list`, `akk list`, questions such as "what AKK sessions are open", "which Codex or Claude sessions are currently running", "terminal-controlled sessions", or requests to list active local coding-agent work: call `agent_knock_knock_list`.
|
|
51
51
|
- `AKK status <conversation-id>` or requests to view current output, execution result, terminal screen, or "what is it doing now": call `agent_knock_knock_status`. For `terminal_controlled` entries, status internally captures the terminal pane and returns `terminal_screen`; do not call tmux or shell commands directly to inspect the pane unless AKK status fails.
|
|
52
|
-
- `AKK describe <conversation-id>`, `AKK summary <conversation-id>`, or requests such as "what is this session about", "what was this task doing", "remind me what this drawing/session is for", or "这个会话/绘画大概在做什么": call `agent_knock_knock_describe`. Prefer this over direct terminal/tmux inspection because AKK can combine saved conversation history,
|
|
53
|
-
- `AKK send <conversation-id>: <message>` or follow-up requests for an existing open agent session: call `agent_knock_knock_send`. Also use `agent_knock_knock_send` when the user says to send/tell/ask/forward/add/continue a message or task to a listed AKK session, a listed
|
|
54
|
-
- `AKK cancel <conversation-id>` or requests to stop the current running work
|
|
52
|
+
- `AKK describe <conversation-id>`, `AKK summary <conversation-id>`, or requests such as "what is this session about", "what was this task doing", "remind me what this drawing/session is for", or "这个会话/绘画大概在做什么": call `agent_knock_knock_describe`. Prefer this over direct terminal/tmux inspection because AKK can combine saved conversation history, agent-specific structured history when available, and terminal-screen fallback with explicit confidence.
|
|
53
|
+
- `AKK send <conversation-id>: <message>` or follow-up requests for an existing open agent session: call `agent_knock_knock_send`. Also use `agent_knock_knock_send` when the user says to send/tell/ask/forward/add/continue a message or task to a listed AKK session, a listed native session, a terminal-controlled entry, a tmux target such as `my-work:0.1`, or "the one from the list". If the target comes from a `terminal_controlled` entry in `AKK list`, use that entry's `id` directly; AKK submits only when the pane is at a verified idle prompt. For Claude Code, this background send returns a managed conversation ID and creates the lease required for structured approvals and completion callbacks; use that returned ID for subsequent actions. Do not call `agent_knock_knock_delegate` for these requests unless the user explicitly asks for a new independent session.
|
|
54
|
+
- `AKK cancel <conversation-id>` or requests to stop the current running work: call `agent_knock_knock_cancel`. If the target is terminal-controlled, use its listed `id` directly. AKK denies a pending structured Claude permission request; otherwise it uses the adapter's interrupt key (`Control-C` for Codex or `Escape` for Claude Code). If a Claude permission dialog cannot be revalidated, AKK sends no key and it must be resolved manually in the terminal.
|
|
55
55
|
- `AKK renew <conversation-id>` or requests to extend/restart monitoring for a stalled but still-live terminal task: call `agent_knock_knock_renew`. This is only for an AKK-managed terminal bridge conversation already marked `stalled`; it does not send a message or key to Codex. Pass `minutes` only when the user requests a specific new inactivity timeout.
|
|
56
56
|
- `AKK recover <conversation-id>`: call `agent_knock_knock_recover`.
|
|
57
57
|
- `AKK close <conversation-id>`: call `agent_knock_knock_close`.
|
|
58
58
|
- `AKK takeover Codex <session-id>` or requests to take over an active Codex CLI session: call `agent_knock_knock_agent_takeover` with `agent="codex"` and `strategy="terminate_then_resume"`.
|
|
59
59
|
- `AKK terminal takeover Codex <session-id>` or requests to take over a Codex CLI that is running inside a controllable terminal provider without stopping it: call `agent_knock_knock_agent_takeover` with `agent="codex"` and `strategy="terminal_control"`.
|
|
60
|
-
- `AKK approve <conversation-id>` or requests to approve
|
|
60
|
+
- `AKK approve <conversation-id>` or requests to approve a terminal-controlled permission or command prompt: first call `agent_knock_knock_status` and show the detected request details to the user. Only after the user explicitly approves that exact request, call `agent_knock_knock_approve` with its `approval_state.fingerprint` as `expected_approval_fingerprint`. Claude Code uses the structured `PermissionRequest` hook; Codex uses the current visible prompt. If an AKK callback says a terminal bridge session is waiting for approval, pass its fingerprint the same way; deny it with `agent_knock_knock_cancel`. Unknown, stale, ambiguous, or changed requests must never be approved. Status works directly for every listed `terminal_controlled` ID. Codex visible-prompt approval can also work without managed state; Claude approval requires the managed lease created by a prior background send.
|
|
61
61
|
- `AKK takeover Codex <session-id> with fork`, `AKK fork takeover Codex <session-id>`, or requests to take over without stopping the original Codex CLI: call `agent_knock_knock_agent_takeover` with `agent="codex"` and `strategy="fork"`.
|
|
62
62
|
|
|
63
63
|
Session reuse rule:
|
|
@@ -80,6 +80,7 @@ akk list
|
|
|
80
80
|
akk describe task-20260618T010203Z-abcdef12
|
|
81
81
|
akk send task-20260618T010203Z-abcdef12: continue with the smaller implementation
|
|
82
82
|
akk send terminal:v2:tmux:codex:my-work:0.1:38140: hello 测试一下通信
|
|
83
|
+
akk send terminal:v2:tmux:claude:claude-work:0.1:29466: review the current changes
|
|
83
84
|
给 AKK list 里的 my-work:0.1 发一条消息:继续刚才的任务
|
|
84
85
|
再让刚才那个 Codex 分析 ~/chrome-debug 为什么占空间
|
|
85
86
|
akk cancel task-20260618T010203Z-abcdef12
|
|
@@ -114,7 +115,7 @@ scripts/bidirectional-delegate.sh --request '<user task>'
|
|
|
114
115
|
|
|
115
116
|
Do not use OpenClaw's internal session tools, such as `sessions_send`, to send the task or follow-up messages directly to Codex, Claude, or Cursor.
|
|
116
117
|
|
|
117
|
-
All OpenClaw-to-agent task delivery must go through the Agent Knock Knock plugin tools, `scripts/bidirectional-delegate.sh`, or an equivalent `agent-knock-knock delegate` command. Standard ACPX delegation builds the required bootstrap prompt, embeds the OpenClaw callback command, creates durable conversation state, and records the initial task message. Terminal-control bridge conversations are different: AKK types only the user-facing message into the tmux
|
|
118
|
+
All OpenClaw-to-agent task delivery must go through the Agent Knock Knock plugin tools, `scripts/bidirectional-delegate.sh`, or an equivalent `agent-knock-knock delegate` command. Standard ACPX delegation builds the required bootstrap prompt, embeds the OpenClaw callback command, creates durable conversation state, and records the initial task message. Terminal-control bridge conversations are different: AKK types only the user-facing message into the tmux agent pane, monitors adapter and structured hook state, and sends the OpenClaw callback itself.
|
|
118
119
|
|
|
119
120
|
For standard ACPX delegation, the coding agent must communicate back to OpenClaw by executing the callback command included in its bootstrap prompt. For terminal-control bridge conversations, AKK owns callback delivery. The coding agent should not rely on OpenClaw's session tools, chat memory, or an out-of-band reply path.
|
|
120
121
|
|
|
@@ -142,17 +143,17 @@ Make clear that `recover` is AKK replay recovery, not guaranteed native coding-a
|
|
|
142
143
|
|
|
143
144
|
Do not start a replacement task without the user's explicit choice.
|
|
144
145
|
|
|
145
|
-
## Native
|
|
146
|
+
## Native and tmux Sessions
|
|
146
147
|
|
|
147
|
-
Native
|
|
148
|
+
Native stop/resume and fork takeover are for Codex sessions created outside AKK. tmux terminal control supports both Codex and Claude Code and is separate from AKK managed conversation recovery.
|
|
148
149
|
|
|
149
|
-
Use `agent_knock_knock_list` when the user asks about current
|
|
150
|
+
Use `agent_knock_knock_list` when the user asks about current native Codex sessions, terminal-controlled Codex or Claude Code sessions, or which local coding-agent work is currently open. The list result separates:
|
|
150
151
|
|
|
151
152
|
- `delegated`: AKK-managed tasks.
|
|
152
153
|
- `native`: discovered local native sessions that AKK cannot directly control.
|
|
153
154
|
- `terminal_controlled`: discovered local native sessions in a controllable terminal provider. The current provider is tmux.
|
|
154
155
|
|
|
155
|
-
Use `agent_knock_knock_describe` when the user asks what a listed session is about. AKK-managed sessions use durable AKK conversation history.
|
|
156
|
+
Use `agent_knock_knock_describe` when the user asks what a listed session is about. AKK-managed sessions use durable AKK conversation history. Terminal adapters use agent-specific structured history when available and otherwise return visible terminal/process context with lower confidence. Do not use raw tmux, shell, or peek tools for this summary unless `agent_knock_knock_describe` is unavailable or fails.
|
|
156
157
|
|
|
157
158
|
Use `agent_knock_knock_agent_takeover` when the user wants AKK to take over an existing native Codex session. By default this tool is side-effect-free and returns a plan. When the plan is ready and the user explicitly wants AKK to manage the session, call it with `createConversation=true` to create an AKK conversation bound to the native session:
|
|
158
159
|
|
|
@@ -160,6 +161,8 @@ Use `agent_knock_knock_agent_takeover` when the user wants AKK to take over an e
|
|
|
160
161
|
- `terminal_control`: use when the target Codex CLI is running inside a controllable terminal provider and the user wants AKK to operate the existing TUI without stopping or resuming it. The first call is side-effect-free. If the result is `requires_confirmation`, show the exact terminal target, pid, cwd, and current terminal-control metadata. Only after explicit user confirmation, call again with `strategy="terminal_control"`, `createConversation=true`, `confirmTerminal=true`, and `terminalTarget=<confirmed target>`. Follow-up `AKK send` messages will be typed into the terminal pane as concise user-facing task text; AKK monitors the Codex rollout/terminal state and sends the callback to OpenClaw itself. `AKK cancel` sends Control-C to the controlled terminal pane. Terminal-controlled entries from `AKK list` can be sent to, cancelled, approved, and inspected directly with their `id`; use `agent_knock_knock_status` to inspect the current terminal screen or execution result. Before `agent_knock_knock_approve`, show the user the latest terminal excerpt and pass its fingerprint as `expected_approval_fingerprint`.
|
|
161
162
|
- `fork`: use when the user wants to avoid stopping the original Codex CLI. First call returns a bounded context package plus `summaryPrompt` and `nextAction`; use that prompt to summarize as OpenClaw, ask the user to confirm, and do not inject raw full rollout history directly. After the user confirms the summary, call `agent_knock_knock_agent_takeover` again with `strategy="fork"`, `createConversation=true`, and `forkSummary=<approved summary>` to create the forked AKK-managed session. Then use the returned `conversation_id` with `AKK send` for follow-up work.
|
|
162
163
|
|
|
164
|
+
Claude Code terminal entries are controlled directly by their `terminal:v2:tmux:claude:...` ids; do not offer Codex-only stop/resume or fork strategies for them. Treat the structured completion or error callback as authoritative. Do not report completion merely because the pane looks idle: AKK emits one completion from Claude's `Stop.last_assistant_message` only after background tasks and scheduled jobs are empty, and maps `StopFailure` to an error. If the Claude hooks are unavailable, AKK deliberately keeps completion and approval conservative.
|
|
165
|
+
|
|
163
166
|
Do not present `fork` as a standalone command or standalone feature. It is a takeover strategy.
|
|
164
167
|
|
|
165
168
|
Do not use `resume-anyway` or start a second live client on the same native Codex session while another Codex CLI is active. That can create mixed session history where multiple clients do not see each other's live context until a later resume.
|
|
@@ -177,7 +180,7 @@ Use structured JSON messages with these types:
|
|
|
177
180
|
- `error`: runtime, tool, or protocol failure
|
|
178
181
|
- `control`: budget warning or lifecycle control
|
|
179
182
|
|
|
180
|
-
`cancel` is lifecycle control outside the agent message protocol. For delegated sessions, it asks ACPX to cooperatively cancel the current in-flight prompt
|
|
183
|
+
`cancel` is lifecycle control outside the agent message protocol. For delegated sessions, it asks ACPX to cooperatively cancel the current in-flight prompt. For terminal-controlled sessions, it denies a pending structured permission when safe or uses the adapter's interrupt action, then marks that AKK task cancelled while leaving the tmux pane open.
|
|
181
184
|
|
|
182
185
|
Only messages with `requires_response=true` consume response rounds.
|
|
183
186
|
|