@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.
Files changed (67) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/src/claude-injected-paste-proof.d.ts +59 -0
  3. package/dist/src/claude-injected-paste-proof.js +153 -0
  4. package/dist/src/claude-injected-paste-proof.js.map +1 -0
  5. package/dist/src/claude-terminal-agent-adapter.js +20 -1
  6. package/dist/src/claude-terminal-agent-adapter.js.map +1 -1
  7. package/dist/src/cli-core.js +50 -35
  8. package/dist/src/cli-core.js.map +1 -1
  9. package/dist/src/codex-terminal-agent-adapter.d.ts +2 -1
  10. package/dist/src/codex-terminal-agent-adapter.js +40 -4
  11. package/dist/src/codex-terminal-agent-adapter.js.map +1 -1
  12. package/dist/src/host-adapter.d.ts +1 -1
  13. package/dist/src/host-adapter.js +1 -1
  14. package/dist/src/host-bridge-tools.js +2 -2
  15. package/dist/src/openclaw-plugin-command-adapter.js +155 -24
  16. package/dist/src/openclaw-plugin-command-adapter.js.map +1 -1
  17. package/dist/src/openclaw-plugin-helpers.d.ts +2 -0
  18. package/dist/src/openclaw-plugin-helpers.js +28 -7
  19. package/dist/src/openclaw-plugin-helpers.js.map +1 -1
  20. package/dist/src/openclaw-plugin-schemas.d.ts +104 -0
  21. package/dist/src/openclaw-plugin-schemas.js +108 -0
  22. package/dist/src/openclaw-plugin-schemas.js.map +1 -1
  23. package/dist/src/openclaw-private-authority-offers.d.ts +2 -0
  24. package/dist/src/openclaw-private-authority-offers.js +12 -0
  25. package/dist/src/openclaw-private-authority-offers.js.map +1 -1
  26. package/dist/src/terminal-agent-adapter.d.ts +34 -0
  27. package/dist/src/terminal-agent-adapter.js +54 -0
  28. package/dist/src/terminal-agent-adapter.js.map +1 -1
  29. package/dist/src/terminal-agent-bridge.d.ts +76 -1
  30. package/dist/src/terminal-agent-bridge.js +873 -153
  31. package/dist/src/terminal-agent-bridge.js.map +1 -1
  32. package/dist/src/terminal-command-cli-adapter.d.ts +2 -1
  33. package/dist/src/terminal-command-cli-adapter.js +46 -8
  34. package/dist/src/terminal-command-cli-adapter.js.map +1 -1
  35. package/dist/src/terminal-dispatch-execution.js +15 -0
  36. package/dist/src/terminal-dispatch-execution.js.map +1 -1
  37. package/dist/src/terminal-identity-authority-cli-adapter.d.ts +1 -0
  38. package/dist/src/terminal-identity-authority-cli-adapter.js +10 -1
  39. package/dist/src/terminal-identity-authority-cli-adapter.js.map +1 -1
  40. package/dist/src/terminal-interaction-authority.d.ts +33 -0
  41. package/dist/src/terminal-interaction-authority.js +3 -0
  42. package/dist/src/terminal-interaction-authority.js.map +1 -0
  43. package/dist/src/terminal-interaction-cli-adapter.d.ts +66 -0
  44. package/dist/src/terminal-interaction-cli-adapter.js +354 -0
  45. package/dist/src/terminal-interaction-cli-adapter.js.map +1 -0
  46. package/dist/src/terminal-interaction-protocol.d.ts +111 -0
  47. package/dist/src/terminal-interaction-protocol.js +432 -0
  48. package/dist/src/terminal-interaction-protocol.js.map +1 -0
  49. package/dist/src/terminal-list-renderer.js +31 -2
  50. package/dist/src/terminal-list-renderer.js.map +1 -1
  51. package/dist/src/terminal-monitor-cli-adapter.js +12 -3
  52. package/dist/src/terminal-monitor-cli-adapter.js.map +1 -1
  53. package/dist/src/terminal-monitor-decision-policy.d.ts +1 -1
  54. package/dist/src/terminal-monitor-state-cli-adapter.js +15 -1
  55. package/dist/src/terminal-monitor-state-cli-adapter.js.map +1 -1
  56. package/dist/src/terminal-mutation-cli-runtime.d.ts +44 -0
  57. package/dist/src/terminal-mutation-cli-runtime.js +41 -0
  58. package/dist/src/terminal-mutation-cli-runtime.js.map +1 -0
  59. package/dist/src/terminal-questionnaire-adapter.d.ts +84 -0
  60. package/dist/src/terminal-questionnaire-adapter.js +677 -0
  61. package/dist/src/terminal-questionnaire-adapter.js.map +1 -0
  62. package/docs/host-bridge-profiles.md +2 -2
  63. package/docs/quickstart-herdr.md +1 -1
  64. package/docs/quickstart-tmux.md +3 -1
  65. package/openclaw.plugin.json +4 -0
  66. package/package.json +1 -1
  67. 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":"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"}
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 {};