@scotthuang/agent-knock-knock 0.12.28 → 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 +17 -0
- package/dist/src/claude-injected-paste-proof.d.ts +59 -0
- package/dist/src/claude-injected-paste-proof.js +153 -0
- package/dist/src/claude-injected-paste-proof.js.map +1 -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 +76 -1
- package/dist/src/terminal-agent-bridge.js +873 -153
- 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
|
});
|
|
@@ -398,6 +460,7 @@ export declare class TerminalAgentBridge {
|
|
|
398
460
|
*/
|
|
399
461
|
submitExactCodexDraft(terminalControl: TerminalControlRef, expectedText: string, options: TerminalCodexDraftSubmissionOptions): Promise<TerminalCodexDraftSubmissionResult>;
|
|
400
462
|
private verifyExactComposerBeforeEnter;
|
|
463
|
+
private claudeInjectedPasteProofPorts;
|
|
401
464
|
private verifyExactEmptyComposerBeforeText;
|
|
402
465
|
/**
|
|
403
466
|
* Submit one closed, adapter-owned native inspection command.
|
|
@@ -464,6 +527,7 @@ export declare class TerminalAgentBridge {
|
|
|
464
527
|
requestId?: string;
|
|
465
528
|
}>;
|
|
466
529
|
approve(agent: ExecutorKind, terminalControl: TerminalControlRef, options?: {
|
|
530
|
+
decision?: TerminalApprovalDecision;
|
|
467
531
|
expectedFingerprint?: string;
|
|
468
532
|
scrollbackLines?: number;
|
|
469
533
|
runtime?: TerminalRuntimeIdentity;
|
|
@@ -477,6 +541,15 @@ export declare class TerminalAgentBridge {
|
|
|
477
541
|
*/
|
|
478
542
|
beforeKeyDispatch?: (context: TerminalApprovalKeyDispatchContext) => void | Promise<void>;
|
|
479
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>;
|
|
480
553
|
monitorPoll(options: {
|
|
481
554
|
agent: ExecutorKind;
|
|
482
555
|
terminalControl: TerminalControlRef;
|
|
@@ -490,6 +563,7 @@ export declare class TerminalAgentBridge {
|
|
|
490
563
|
durableRequest?: TerminalDurableCompletionRequest;
|
|
491
564
|
}): Promise<TerminalMonitorPoll>;
|
|
492
565
|
private captureInspection;
|
|
566
|
+
private captureTerminalInteractionOffer;
|
|
493
567
|
private verifyTerminalIdentity;
|
|
494
568
|
}
|
|
495
569
|
/**
|
|
@@ -509,5 +583,6 @@ export declare function exactCodexReadyStyledComposerCapture(screen: string): {
|
|
|
509
583
|
export declare function terminalApprovalFingerprint(agent: ExecutorKind, terminalControl: TerminalControlRef, inspection: TerminalScreenInspection, options?: {
|
|
510
584
|
screen?: string;
|
|
511
585
|
runtime?: TerminalRuntimeIdentity;
|
|
586
|
+
decision?: TerminalApprovalDecision;
|
|
512
587
|
}): string | undefined;
|
|
513
588
|
export {};
|