@scotthuang/agent-knock-knock 0.12.29 → 0.12.30
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 +11 -0
- package/dist/src/claude-terminal-agent-adapter.js +20 -1
- package/dist/src/claude-terminal-agent-adapter.js.map +1 -1
- package/dist/src/cli-core.js +50 -35
- package/dist/src/cli-core.js.map +1 -1
- package/dist/src/codex-terminal-agent-adapter.d.ts +2 -1
- package/dist/src/codex-terminal-agent-adapter.js +40 -4
- package/dist/src/codex-terminal-agent-adapter.js.map +1 -1
- package/dist/src/host-adapter.d.ts +1 -1
- package/dist/src/host-adapter.js +1 -1
- package/dist/src/host-bridge-tools.js +2 -2
- package/dist/src/openclaw-plugin-command-adapter.js +155 -24
- package/dist/src/openclaw-plugin-command-adapter.js.map +1 -1
- package/dist/src/openclaw-plugin-helpers.d.ts +2 -0
- package/dist/src/openclaw-plugin-helpers.js +28 -7
- package/dist/src/openclaw-plugin-helpers.js.map +1 -1
- package/dist/src/openclaw-plugin-schemas.d.ts +104 -0
- package/dist/src/openclaw-plugin-schemas.js +108 -0
- package/dist/src/openclaw-plugin-schemas.js.map +1 -1
- package/dist/src/openclaw-private-authority-offers.d.ts +2 -0
- package/dist/src/openclaw-private-authority-offers.js +12 -0
- package/dist/src/openclaw-private-authority-offers.js.map +1 -1
- package/dist/src/terminal-agent-adapter.d.ts +34 -0
- package/dist/src/terminal-agent-adapter.js +54 -0
- package/dist/src/terminal-agent-adapter.js.map +1 -1
- package/dist/src/terminal-agent-bridge.d.ts +75 -1
- package/dist/src/terminal-agent-bridge.js +759 -149
- package/dist/src/terminal-agent-bridge.js.map +1 -1
- package/dist/src/terminal-command-cli-adapter.d.ts +2 -1
- package/dist/src/terminal-command-cli-adapter.js +46 -8
- package/dist/src/terminal-command-cli-adapter.js.map +1 -1
- package/dist/src/terminal-dispatch-execution.js +15 -0
- package/dist/src/terminal-dispatch-execution.js.map +1 -1
- package/dist/src/terminal-identity-authority-cli-adapter.d.ts +1 -0
- package/dist/src/terminal-identity-authority-cli-adapter.js +10 -1
- package/dist/src/terminal-identity-authority-cli-adapter.js.map +1 -1
- package/dist/src/terminal-interaction-authority.d.ts +33 -0
- package/dist/src/terminal-interaction-authority.js +3 -0
- package/dist/src/terminal-interaction-authority.js.map +1 -0
- package/dist/src/terminal-interaction-cli-adapter.d.ts +66 -0
- package/dist/src/terminal-interaction-cli-adapter.js +354 -0
- package/dist/src/terminal-interaction-cli-adapter.js.map +1 -0
- package/dist/src/terminal-interaction-protocol.d.ts +111 -0
- package/dist/src/terminal-interaction-protocol.js +432 -0
- package/dist/src/terminal-interaction-protocol.js.map +1 -0
- package/dist/src/terminal-list-renderer.js +31 -2
- package/dist/src/terminal-list-renderer.js.map +1 -1
- package/dist/src/terminal-monitor-cli-adapter.js +12 -3
- package/dist/src/terminal-monitor-cli-adapter.js.map +1 -1
- package/dist/src/terminal-monitor-decision-policy.d.ts +1 -1
- package/dist/src/terminal-monitor-state-cli-adapter.js +15 -1
- package/dist/src/terminal-monitor-state-cli-adapter.js.map +1 -1
- package/dist/src/terminal-mutation-cli-runtime.d.ts +44 -0
- package/dist/src/terminal-mutation-cli-runtime.js +41 -0
- package/dist/src/terminal-mutation-cli-runtime.js.map +1 -0
- package/dist/src/terminal-questionnaire-adapter.d.ts +84 -0
- package/dist/src/terminal-questionnaire-adapter.js +677 -0
- package/dist/src/terminal-questionnaire-adapter.js.map +1 -0
- package/docs/host-bridge-profiles.md +2 -2
- package/docs/quickstart-herdr.md +1 -1
- package/docs/quickstart-tmux.md +3 -1
- package/openclaw.plugin.json +4 -0
- package/package.json +1 -1
- package/templates/openclaw-skills/agent-knock-knock/SKILL.md +11 -8
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { isExecutorKind } from "./executors.js";
|
|
3
|
+
/**
|
|
4
|
+
* Closed semantic decisions that an adapter may expose for a proven native
|
|
5
|
+
* approval prompt. Callers select one of these values; terminal keys, menu
|
|
6
|
+
* indexes, and rendered labels remain adapter-owned transport details.
|
|
7
|
+
*/
|
|
8
|
+
export const TERMINAL_APPROVAL_DECISIONS = [
|
|
9
|
+
"approve_once",
|
|
10
|
+
"reject"
|
|
11
|
+
];
|
|
12
|
+
export function isTerminalApprovalDecision(value) {
|
|
13
|
+
return typeof value === "string" &&
|
|
14
|
+
TERMINAL_APPROVAL_DECISIONS.includes(value);
|
|
15
|
+
}
|
|
3
16
|
const TERMINAL_APPROVAL_ANSI_ESCAPE_PATTERN = /\x1B(?:\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/gu;
|
|
4
17
|
/**
|
|
5
18
|
* Hash an adapter-verified prompt region without redaction or semantic
|
|
@@ -19,6 +32,47 @@ export function normalizeTerminalApprovalPromptRegion(value) {
|
|
|
19
32
|
.replace(TERMINAL_APPROVAL_ANSI_ESCAPE_PATTERN, "")
|
|
20
33
|
.replace(/\r\n?/gu, "\n");
|
|
21
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Normalize an adapter-owned approval offer. Any malformed or ambiguous
|
|
37
|
+
* explicit choice set fails closed. Legacy adapters expose approve_once only.
|
|
38
|
+
*/
|
|
39
|
+
export function terminalApprovalChoices(approval) {
|
|
40
|
+
if (!approval.approvable) {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
const legacyApprove = {
|
|
44
|
+
...approval.action,
|
|
45
|
+
decision: approval.action.decision ?? "approve_once"
|
|
46
|
+
};
|
|
47
|
+
const offered = approval.choices?.length
|
|
48
|
+
? approval.choices
|
|
49
|
+
: [legacyApprove];
|
|
50
|
+
const normalized = offered.map((choice) => ({
|
|
51
|
+
...choice,
|
|
52
|
+
decision: choice.decision
|
|
53
|
+
}));
|
|
54
|
+
if (legacyApprove.decision !== "approve_once" ||
|
|
55
|
+
normalized.some((choice) => !isTerminalApprovalDecision(choice.decision) ||
|
|
56
|
+
(choice.mode ?? "keys") !== "keys" ||
|
|
57
|
+
choice.keys.length === 0 ||
|
|
58
|
+
!choice.label) ||
|
|
59
|
+
new Set(normalized.map((choice) => choice.decision)).size !==
|
|
60
|
+
normalized.length) {
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
const approveOnce = normalized.find((choice) => choice.decision === "approve_once");
|
|
64
|
+
if (!approveOnce ||
|
|
65
|
+
approveOnce.label !== legacyApprove.label ||
|
|
66
|
+
approveOnce.requestId !== legacyApprove.requestId ||
|
|
67
|
+
approveOnce.keys.length !== legacyApprove.keys.length ||
|
|
68
|
+
approveOnce.keys.some((key, index) => key !== legacyApprove.keys[index])) {
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
return normalized;
|
|
72
|
+
}
|
|
73
|
+
export function terminalApprovalActionForDecision(approval, decision) {
|
|
74
|
+
return terminalApprovalChoices(approval).find((choice) => choice.decision === decision);
|
|
75
|
+
}
|
|
22
76
|
export class TerminalAgentAdapterRegistry {
|
|
23
77
|
adapters = new Map();
|
|
24
78
|
constructor(adapters = []) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-agent-adapter.js","sourceRoot":"","sources":["../../src/terminal-agent-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAqB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"terminal-agent-adapter.js","sourceRoot":"","sources":["../../src/terminal-agent-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ExecutorKind } from "./executors.js";
|
|
2
|
-
import { type ActiveTerminalProcess, type TerminalAgentAdapter, type TerminalAgentAdapterCapabilities, type TerminalAgentAdapterRegistry, type TerminalCompletionEvidence, type TerminalControlRef, type TerminalDurableCompletionRequest, type TerminalNativeInspectionEvidenceInventoryEntry, type TerminalNativeInspectionObservation, type TerminalNativeInspectionObservationRequest, type TerminalNativeInspectionPlan, type TerminalProcessSnapshot, type TerminalRuntimeIdentity, type TerminalScreenInspection } from "./terminal-agent-adapter.js";
|
|
2
|
+
import { type ActiveTerminalProcess, type TerminalAgentAdapter, type TerminalAgentAdapterCapabilities, type TerminalAgentAdapterRegistry, type TerminalApprovalDecision, type TerminalCompletionEvidence, type TerminalControlRef, type TerminalDurableCompletionRequest, type TerminalNativeInspectionEvidenceInventoryEntry, type TerminalNativeInspectionObservation, type TerminalNativeInspectionObservationRequest, type TerminalNativeInspectionPlan, type TerminalProcessSnapshot, type TerminalRuntimeIdentity, type TerminalScreenInspection } from "./terminal-agent-adapter.js";
|
|
3
3
|
import { type TerminalDiscoveryDiagnosticLog, type TerminalControlProvider } from "./terminal-control-provider.js";
|
|
4
|
+
import { type TerminalInteractionAnswer, type TerminalInteractionProjection, type TerminalInteractionResponse } from "./terminal-interaction-protocol.js";
|
|
4
5
|
/** A terminal send failed at a boundary that proves input never started. */
|
|
5
6
|
export declare class TerminalInputNotStartedError extends Error {
|
|
6
7
|
readonly code = "AKK_TERMINAL_INPUT_NOT_STARTED";
|
|
@@ -63,6 +64,19 @@ export declare class NativeInspectionDismissalError extends Error {
|
|
|
63
64
|
cause?: unknown;
|
|
64
65
|
});
|
|
65
66
|
}
|
|
67
|
+
export type TerminalInteractionReservedStage = "reservation_uncertain" | "text_uncertain" | "key_uncertain";
|
|
68
|
+
/**
|
|
69
|
+
* A response reservation or terminal input may already have happened. The
|
|
70
|
+
* same interaction must never be dispatched automatically after this error.
|
|
71
|
+
*/
|
|
72
|
+
export declare class TerminalInteractionDispatchReservedError extends Error {
|
|
73
|
+
readonly stage: TerminalInteractionReservedStage;
|
|
74
|
+
readonly code = "AKK_TERMINAL_INTERACTION_DISPATCH_RESERVED";
|
|
75
|
+
readonly doNotRetry = true;
|
|
76
|
+
constructor(stage: TerminalInteractionReservedStage, message: string, options?: {
|
|
77
|
+
cause?: unknown;
|
|
78
|
+
});
|
|
79
|
+
}
|
|
66
80
|
export interface TerminalBridgeStatus {
|
|
67
81
|
provider: string;
|
|
68
82
|
target: string;
|
|
@@ -85,6 +99,11 @@ export interface TerminalBridgeStatus {
|
|
|
85
99
|
request_detail?: string;
|
|
86
100
|
reason?: string;
|
|
87
101
|
fingerprint?: string;
|
|
102
|
+
choices?: readonly {
|
|
103
|
+
decision: TerminalApprovalDecision;
|
|
104
|
+
label: string;
|
|
105
|
+
fingerprint: string;
|
|
106
|
+
}[];
|
|
88
107
|
decision_mode?: "keys";
|
|
89
108
|
request_id?: string;
|
|
90
109
|
policy_evidence?: {
|
|
@@ -102,8 +121,44 @@ export interface TerminalBridgeStatus {
|
|
|
102
121
|
approval?: Record<string, unknown>;
|
|
103
122
|
error?: string;
|
|
104
123
|
};
|
|
124
|
+
/** Safe, semantic current-question projection; never terminal keys. */
|
|
125
|
+
interaction_state?: TerminalInteractionProjection;
|
|
126
|
+
/**
|
|
127
|
+
* Owner-private response fence. Public status renderers must remove this
|
|
128
|
+
* sibling field before returning terminal_status to a model or browser.
|
|
129
|
+
*/
|
|
130
|
+
interaction_prompt_fingerprint?: string;
|
|
105
131
|
capability_limitation?: string;
|
|
106
132
|
}
|
|
133
|
+
export interface TerminalInteractionAuthorizationContext {
|
|
134
|
+
agent: ExecutorKind;
|
|
135
|
+
terminalControl: TerminalControlRef;
|
|
136
|
+
fingerprint: string;
|
|
137
|
+
projection: TerminalInteractionProjection;
|
|
138
|
+
response: TerminalInteractionResponse;
|
|
139
|
+
runtime?: TerminalRuntimeIdentity;
|
|
140
|
+
}
|
|
141
|
+
export interface TerminalInteractionAuthorizationDecision {
|
|
142
|
+
approved: boolean;
|
|
143
|
+
reason?: string;
|
|
144
|
+
}
|
|
145
|
+
export interface TerminalInteractionBeforeDispatchContext {
|
|
146
|
+
agent: ExecutorKind;
|
|
147
|
+
terminalControl: TerminalControlRef;
|
|
148
|
+
fingerprint: string;
|
|
149
|
+
projection: TerminalInteractionProjection;
|
|
150
|
+
response: TerminalInteractionResponse;
|
|
151
|
+
runtime?: TerminalRuntimeIdentity;
|
|
152
|
+
}
|
|
153
|
+
export interface TerminalInteractionResponseExecution {
|
|
154
|
+
responded: boolean;
|
|
155
|
+
blocked: boolean;
|
|
156
|
+
reason?: string;
|
|
157
|
+
interactionId: string;
|
|
158
|
+
questionId?: string;
|
|
159
|
+
responseKind?: TerminalInteractionAnswer["response_kind"];
|
|
160
|
+
outcome?: "submitted_or_advanced" | "custom_text_opened" | "confirmed" | "cancelled";
|
|
161
|
+
}
|
|
107
162
|
export interface ResolvedTerminalConversation {
|
|
108
163
|
conversationId: string;
|
|
109
164
|
agent: ExecutorKind;
|
|
@@ -114,6 +169,9 @@ export interface ResolvedTerminalConversation {
|
|
|
114
169
|
}
|
|
115
170
|
export interface TerminalApprovalExecution {
|
|
116
171
|
approved: boolean;
|
|
172
|
+
/** True after either approve_once or reject was dispatched exactly once. */
|
|
173
|
+
decisionDispatched?: boolean;
|
|
174
|
+
decision?: TerminalApprovalDecision;
|
|
117
175
|
blocked: boolean;
|
|
118
176
|
reason?: string;
|
|
119
177
|
key?: string;
|
|
@@ -326,6 +384,7 @@ export interface TerminalApprovalAuthorizationContext {
|
|
|
326
384
|
terminalControl: TerminalControlRef;
|
|
327
385
|
inspection: TerminalScreenInspection;
|
|
328
386
|
fingerprint?: string;
|
|
387
|
+
decision: TerminalApprovalDecision;
|
|
329
388
|
runtime?: TerminalRuntimeIdentity;
|
|
330
389
|
}
|
|
331
390
|
export interface TerminalApprovalAuthorizationDecision {
|
|
@@ -337,6 +396,7 @@ export interface TerminalApprovalKeyDispatchContext {
|
|
|
337
396
|
terminalControl: TerminalControlRef;
|
|
338
397
|
inspection: TerminalScreenInspection;
|
|
339
398
|
fingerprint: string;
|
|
399
|
+
decision: TerminalApprovalDecision;
|
|
340
400
|
keys: readonly string[];
|
|
341
401
|
runtime?: TerminalRuntimeIdentity;
|
|
342
402
|
}
|
|
@@ -351,6 +411,7 @@ export declare class TerminalAgentBridge {
|
|
|
351
411
|
readonly terminalProvider: TerminalControlProvider;
|
|
352
412
|
private readonly verifyIdentity?;
|
|
353
413
|
private readonly nowMs;
|
|
414
|
+
private readonly now;
|
|
354
415
|
private readonly sleep;
|
|
355
416
|
private readonly diagnosticLog?;
|
|
356
417
|
constructor(options: {
|
|
@@ -358,6 +419,7 @@ export declare class TerminalAgentBridge {
|
|
|
358
419
|
terminalProvider: TerminalControlProvider;
|
|
359
420
|
verifyIdentity?: TerminalIdentityVerifier;
|
|
360
421
|
nowMs?: () => number;
|
|
422
|
+
now?: () => Date;
|
|
361
423
|
sleep?: (milliseconds: number) => Promise<void>;
|
|
362
424
|
diagnosticLog?: TerminalDiscoveryDiagnosticLog;
|
|
363
425
|
});
|
|
@@ -465,6 +527,7 @@ export declare class TerminalAgentBridge {
|
|
|
465
527
|
requestId?: string;
|
|
466
528
|
}>;
|
|
467
529
|
approve(agent: ExecutorKind, terminalControl: TerminalControlRef, options?: {
|
|
530
|
+
decision?: TerminalApprovalDecision;
|
|
468
531
|
expectedFingerprint?: string;
|
|
469
532
|
scrollbackLines?: number;
|
|
470
533
|
runtime?: TerminalRuntimeIdentity;
|
|
@@ -478,6 +541,15 @@ export declare class TerminalAgentBridge {
|
|
|
478
541
|
*/
|
|
479
542
|
beforeKeyDispatch?: (context: TerminalApprovalKeyDispatchContext) => void | Promise<void>;
|
|
480
543
|
}): Promise<TerminalApprovalExecution>;
|
|
544
|
+
respondInteraction(agent: ExecutorKind, terminalControl: TerminalControlRef, response: TerminalInteractionResponse, options: {
|
|
545
|
+
agentVersion: string;
|
|
546
|
+
expectedFingerprint: string;
|
|
547
|
+
expectedExpiresAt: string;
|
|
548
|
+
scrollbackLines?: number;
|
|
549
|
+
runtime?: TerminalRuntimeIdentity;
|
|
550
|
+
authorize?: (context: TerminalInteractionAuthorizationContext) => TerminalInteractionAuthorizationDecision | Promise<TerminalInteractionAuthorizationDecision>;
|
|
551
|
+
beforeDispatch?: (context: TerminalInteractionBeforeDispatchContext) => void | Promise<void>;
|
|
552
|
+
}): Promise<TerminalInteractionResponseExecution>;
|
|
481
553
|
monitorPoll(options: {
|
|
482
554
|
agent: ExecutorKind;
|
|
483
555
|
terminalControl: TerminalControlRef;
|
|
@@ -491,6 +563,7 @@ export declare class TerminalAgentBridge {
|
|
|
491
563
|
durableRequest?: TerminalDurableCompletionRequest;
|
|
492
564
|
}): Promise<TerminalMonitorPoll>;
|
|
493
565
|
private captureInspection;
|
|
566
|
+
private captureTerminalInteractionOffer;
|
|
494
567
|
private verifyTerminalIdentity;
|
|
495
568
|
}
|
|
496
569
|
/**
|
|
@@ -510,5 +583,6 @@ export declare function exactCodexReadyStyledComposerCapture(screen: string): {
|
|
|
510
583
|
export declare function terminalApprovalFingerprint(agent: ExecutorKind, terminalControl: TerminalControlRef, inspection: TerminalScreenInspection, options?: {
|
|
511
584
|
screen?: string;
|
|
512
585
|
runtime?: TerminalRuntimeIdentity;
|
|
586
|
+
decision?: TerminalApprovalDecision;
|
|
513
587
|
}): string | undefined;
|
|
514
588
|
export {};
|