@scotthuang/agent-knock-knock 0.12.5 → 0.12.7

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.
@@ -5,7 +5,8 @@ import { assertManagedSessionId, assertManagedSessionState, isExactNativeThreadI
5
5
  import { terminalEndpointIdentityFromEvidence } from "./terminal-control-ref.js";
6
6
  import { assertStoreReadable, ensureDir, STORE_DEFERRED_FOREGROUND_TRANSFERS_DIRECTORY, withStoreWriterLease } from "./store.js";
7
7
  export const DEFERRED_FOREGROUND_TRANSFER_SCHEMA = "agent-knock-knock/deferred-foreground-transfer";
8
- export const DEFERRED_FOREGROUND_TRANSFER_VERSION = 1;
8
+ export const DEFERRED_FOREGROUND_TRANSFER_VERSION = 2;
9
+ export const DEFERRED_FOREGROUND_TRANSFER_LEGACY_VERSION = 1;
9
10
  const TRANSFER_STATE_FILE = "state.json";
10
11
  const PRIVATE_FILE_MODE = 0o600;
11
12
  const NO_FOLLOW_FLAG = typeof fs.constants.O_NOFOLLOW === "number"
@@ -62,6 +63,10 @@ export function assertDeferredForegroundTransfer(value, expectedTransferId, opti
62
63
  "source_binding_token",
63
64
  "source_previous_last_transition_id",
64
65
  "source_before_binding",
66
+ "source_kind",
67
+ "source_turn_history",
68
+ "source_rollout_authority",
69
+ "source_abandonment_fingerprint",
65
70
  "target_session_id",
66
71
  "target_expected_revision",
67
72
  "previous_dispatch_status",
@@ -119,7 +124,10 @@ export function assertDeferredForegroundTransfer(value, expectedTransferId, opti
119
124
  "do_not_retry"
120
125
  ], "deferred foreground transfer");
121
126
  if (value.schema !== DEFERRED_FOREGROUND_TRANSFER_SCHEMA ||
122
- value.version !== DEFERRED_FOREGROUND_TRANSFER_VERSION) {
127
+ ![
128
+ DEFERRED_FOREGROUND_TRANSFER_LEGACY_VERSION,
129
+ DEFERRED_FOREGROUND_TRANSFER_VERSION
130
+ ].includes(value.version)) {
123
131
  throw new Error("deferred foreground transfer has an unsupported schema or version");
124
132
  }
125
133
  assertRecordId(value.transfer_id, "deferred foreground transfer id");
@@ -156,6 +164,79 @@ export function assertDeferredForegroundTransfer(value, expectedTransferId, opti
156
164
  assertSha256(value.source_binding_token, "deferred transfer source binding token");
157
165
  assertOptionalNonEmptyString(value.source_previous_last_transition_id, "deferred transfer source previous transition");
158
166
  assertBinding(value.source_before_binding, "deferred transfer source binding");
167
+ const sourceKind = value.version === DEFERRED_FOREGROUND_TRANSFER_LEGACY_VERSION
168
+ ? "status_card_only"
169
+ : value.source_kind;
170
+ if (value.version === DEFERRED_FOREGROUND_TRANSFER_LEGACY_VERSION
171
+ ? value.source_kind !== undefined || value.source_turn_history !== undefined
172
+ : !["status_card_only", "candidate_rollout_quiescent"].includes(String(sourceKind))) {
173
+ throw new Error("deferred transfer source kind is invalid");
174
+ }
175
+ const sourceTurnHistory = value.source_turn_history;
176
+ if (sourceKind === "candidate_rollout_quiescent") {
177
+ if (!Array.isArray(sourceTurnHistory) ||
178
+ sourceTurnHistory.length > 128) {
179
+ throw new Error("candidate-rollout deferred source requires exact Turn history authority");
180
+ }
181
+ const seenTurnIds = new Set();
182
+ for (const turn of sourceTurnHistory) {
183
+ if (!isRecord(turn) ||
184
+ Object.keys(turn).sort().join(",") !== [
185
+ "binding_generation",
186
+ "binding_id",
187
+ "native_thread_id",
188
+ "status",
189
+ "turn_fingerprint",
190
+ "turn_id",
191
+ "updated_at"
192
+ ].join(",") ||
193
+ !isSafeRecordId(turn.turn_id) ||
194
+ !["idle", "failed", "closed", "cancelled"].includes(String(turn.status)) ||
195
+ !isValidTimestamp(turn.updated_at) ||
196
+ !isSafeRecordId(turn.binding_id) ||
197
+ !isPositiveSafeInteger(turn.binding_generation) ||
198
+ !isExactNativeThreadId(turn.native_thread_id) ||
199
+ turn.binding_id !== value.source_before_binding.binding_id ||
200
+ turn.binding_generation !== value.source_before_binding.generation ||
201
+ turn.native_thread_id !== value.source_before_binding.native_thread_id ||
202
+ typeof turn.turn_fingerprint !== "string" ||
203
+ !/^[0-9a-f]{64}$/u.test(turn.turn_fingerprint) ||
204
+ seenTurnIds.has(String(turn.turn_id))) {
205
+ throw new Error("candidate-rollout deferred source Turn history is invalid");
206
+ }
207
+ seenTurnIds.add(String(turn.turn_id));
208
+ }
209
+ }
210
+ else if (sourceTurnHistory !== undefined) {
211
+ throw new Error("status-card deferred source cannot carry Turn history authority");
212
+ }
213
+ const sourceRolloutAuthority = sourceKind === "candidate_rollout_quiescent"
214
+ ? value.source_rollout_authority ?? "present"
215
+ : undefined;
216
+ if (sourceKind !== "candidate_rollout_quiescent"
217
+ ? value.source_rollout_authority !== undefined ||
218
+ value.source_abandonment_fingerprint !== undefined
219
+ : ![
220
+ "present",
221
+ "explicitly_abandoned_predecessor"
222
+ ].includes(String(sourceRolloutAuthority))) {
223
+ throw new Error("deferred transfer source rollout authority is invalid");
224
+ }
225
+ if (sourceRolloutAuthority === "explicitly_abandoned_predecessor") {
226
+ if (!Array.isArray(sourceTurnHistory) ||
227
+ sourceTurnHistory.length === 0 ||
228
+ !sourceTurnHistory.some((turn) => turn.status === "closed") ||
229
+ value.previous_dispatch_status !== "resolved" ||
230
+ typeof value.source_abandonment_fingerprint !== "string" ||
231
+ !/^[0-9a-f]{64}$/u.test(value.source_abandonment_fingerprint)) {
232
+ throw new Error("explicitly abandoned predecessor requires exact resolved abandonment authority");
233
+ }
234
+ }
235
+ else if (value.source_abandonment_fingerprint !== undefined) {
236
+ throw new Error("present deferred source rollout cannot carry abandonment authority");
237
+ }
238
+ const statusCardSource = sourceKind === "status_card_only";
239
+ const candidateRolloutSource = sourceKind === "candidate_rollout_quiescent";
159
240
  if (value.source_before_binding.native_process.pid !== value.process_pid ||
160
241
  value.source_before_binding.native_process.process_uuid !==
161
242
  value.process_uuid ||
@@ -165,9 +246,13 @@ export function assertDeferredForegroundTransfer(value, expectedTransferId, opti
165
246
  JSON.stringify(value.source_before_binding.terminal_endpoint) !==
166
247
  JSON.stringify(value.terminal_endpoint) ||
167
248
  !isExactNativeThreadId(value.source_before_binding.native_thread_id) ||
168
- value.source_before_binding.native_process.rollout !== undefined ||
169
- !value.source_before_binding.native_process.evidence.includes("codex_status_card") ||
170
- value.source_previous_last_transition_id !== undefined ||
249
+ (statusCardSource &&
250
+ (value.source_before_binding.native_process.rollout !== undefined ||
251
+ !value.source_before_binding.native_process.evidence.includes("codex_status_card"))) ||
252
+ (candidateRolloutSource &&
253
+ value.source_before_binding.native_process.rollout === undefined) ||
254
+ (statusCardSource &&
255
+ value.source_previous_last_transition_id !== undefined) ||
171
256
  managedSessionBindingToken({
172
257
  session_id: value.source_session_id,
173
258
  status: "bound",
@@ -640,6 +725,10 @@ function assertTransferAdvance(current, candidate) {
640
725
  "source_binding_token",
641
726
  "source_previous_last_transition_id",
642
727
  "source_before_binding",
728
+ "source_kind",
729
+ "source_turn_history",
730
+ "source_rollout_authority",
731
+ "source_abandonment_fingerprint",
643
732
  "target_session_id",
644
733
  "target_expected_revision",
645
734
  "previous_dispatch_status",
@@ -940,6 +1029,18 @@ function assertRecordId(value, label) {
940
1029
  throw new Error(`${label} is not safe for storage: ${String(value)}`);
941
1030
  }
942
1031
  }
1032
+ function isSafeRecordId(value) {
1033
+ try {
1034
+ assertRecordId(value, "record id");
1035
+ return true;
1036
+ }
1037
+ catch {
1038
+ return false;
1039
+ }
1040
+ }
1041
+ function isValidTimestamp(value) {
1042
+ return typeof value === "string" && Number.isFinite(Date.parse(value));
1043
+ }
943
1044
  function assertContained(candidate, root, label) {
944
1045
  const relative = path.relative(path.resolve(root), path.resolve(candidate));
945
1046
  if (!relative || relative.startsWith("..") || path.isAbsolute(relative)) {
@@ -1 +1 @@
1
- {"version":3,"file":"deferred-foreground-transfer.js","sourceRoot":"","sources":["../../src/deferred-foreground-transfer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deferred-foreground-transfer.js","sourceRoot":"","sources":["../../src/deferred-foreground-transfer.ts"],"names":[],"mappings":"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"}
@@ -376,6 +376,12 @@ const approveParameters = {
376
376
  { required: ["turn_id"] },
377
377
  { required: ["conversation_id"] }
378
378
  ],
379
+ allOf: [
380
+ {
381
+ if: { required: ["expected_terminal_token"] },
382
+ then: { required: ["conversation_id"] }
383
+ }
384
+ ],
379
385
  properties: {
380
386
  turn_id: {
381
387
  type: "string",
@@ -389,6 +395,10 @@ const approveParameters = {
389
395
  expected_approval_fingerprint: {
390
396
  type: "string",
391
397
  description: "Exact approval fingerprint returned by the latest status or approval-required callback. The prompt is captured again and must still match before keys are sent."
398
+ },
399
+ expected_terminal_token: {
400
+ type: "string",
401
+ description: "Only for a terminal-scoped manual Codex approval prefilled by the latest AKK list action. Preserve it exactly with that action's full conversation_id; never construct, reuse, or use it for automatic approval."
392
402
  }
393
403
  }
394
404
  };
@@ -430,13 +440,13 @@ function createPlugin(relayPath, { monitorSupervisorIntervalMs = MONITOR_SUPERVI
430
440
  default: "AKK is handling the request..."
431
441
  },
432
442
  agentPromptGuidance: [
433
- "Use /akk <task> when exactly one eligible idle coding-agent terminal pane should receive new work. Use /akk codex: <task>, /akk claude: <task>, or another selector returned by /akk list to target an existing pane. A session_id send is strict to that Session's native context; an exact list-prefilled terminal selector plus expected_terminal_token is a terminal-scoped follow-current action that may safely absorb a verified quiescent human thread switch before creating the Turn. Never infer or reuse its token. Use /akk threads, /akk new-thread or clear-thread, and /akk resume-thread only with an exact full terminal_id returned by /akk list; these switch native context without creating a Turn. Resume numbers and short IDs are bound to the last displayed snapshot, while previous is available only from the latest verified committed transition. For native Codex or Claude status, use only an advertised agent_knock_knock_native_inspect action; agent_knock_knock_status inspects AKK Turn state and does not execute /status. AKK never starts a coding-agent process."
443
+ "Use /akk <task> when exactly one eligible idle coding-agent terminal pane should receive new work. Use /akk codex: <task>, /akk claude: <task>, or another selector returned by /akk list to target an existing pane. A session_id send is strict to that Session's native context; an exact list-prefilled terminal selector plus expected_terminal_token is a terminal-scoped follow-current action that may safely absorb a verified quiescent human thread switch or defer Codex foreground attribution within a complete exact rollout inventory. It sends the ordinary task once and binds only the uniquely accepting native thread. Never infer or reuse its token. Use /akk threads, /akk new-thread or clear-thread, and /akk resume-thread only with an exact full terminal_id returned by /akk list; these switch native context without creating a Turn. Resume numbers and short IDs are bound to the last displayed snapshot, while previous is available only from the latest verified committed transition. For native Codex or Claude status, use only an advertised agent_knock_knock_native_inspect action; agent_knock_knock_status inspects AKK Turn state and does not execute /status. AKK never starts a coding-agent process."
434
444
  ],
435
445
  handler: async (ctx) => handleAkkCommand(api, ctx, displayedResumeSnapshots)
436
446
  });
437
447
  registerCliTool(api, {
438
448
  name: "agent_knock_knock_list",
439
- description: "List existing Codex and Claude Code tmux or Herdr panes as the primary terminals[] resources. Each terminal may include managed.current_turn or managed.recent_turn; all=true also includes older managed.history and retained unavailable history. By default, unavailable_managed_turns contains attention-needed records whose pane is unavailable. A live human thread switch remains management_state=conflict and exposes handoff_state as adoptable or blocked without mutating the Store. Use only each row's available_actions and authoritative prefilled arguments, except for two explicit-confirmation nested recovery paths: handoff_decision.choices.take_over_current.action and blocking_turns[].recovery_action. The latter is only for collateral blockers; an active handoff source Turn remains exclusively snapshot-fenced by handoff_decision. Refresh list immediately after either nested action. A session-scoped send targets session_id strictly and never redirects to the pane's replacement context; a terminal-scoped follow-current send preserves that row's exact selector and expected_terminal_token and may absorb only a verified quiescent human handoff before starting a Turn; legacy discovery sends remain compatible. respond targets the exact in-flight turn; native_inspect runs only a closed, exact-version Codex or Claude status profile with the current terminal/binding token; read-only thread listing targets the exact terminal, while new/resume mutations also require the current binding token and create no Turn; reconcile_binding remains a low-level conflict recovery action; managed controls target the exact turn; a raw terminal row may prefill its own compatibility selector for status or recovery controls. Never construct identifiers or tokens. AKK revalidates every terminal side effect and never starts a coding-agent process.",
449
+ description: "List existing Codex and Claude Code tmux or Herdr panes as the primary terminals[] resources. Each terminal may include managed.current_turn or managed.recent_turn; all=true also includes older managed.history and retained unavailable history. By default, unavailable_managed_turns contains attention-needed records whose pane is unavailable. A live human thread switch remains management_state=conflict and exposes handoff_state as adoptable or blocked without mutating the Store. Use only each row's available_actions and authoritative prefilled arguments, except for two explicit-confirmation nested recovery paths: handoff_decision.choices.take_over_current.action and blocking_turns[].recovery_action. The latter is only for collateral blockers; an active handoff source Turn remains exclusively snapshot-fenced by handoff_decision. Refresh list immediately after either nested action. A session-scoped send targets session_id strictly and never redirects to the pane's replacement context; a terminal-scoped follow-current send preserves that row's exact selector and expected_terminal_token, then may either absorb a verified quiescent handoff or defer Codex foreground attribution within a complete exact rollout inventory while sending the task only once; legacy discovery sends remain compatible. respond targets the exact in-flight turn; native_inspect runs only a closed, exact-version Codex or Claude status profile with the current terminal/binding token; read-only thread listing targets the exact terminal, while new/resume mutations also require the current binding token and create no Turn; reconcile_binding remains a low-level conflict recovery action; managed controls target the exact turn; a raw terminal row may prefill its own compatibility selector for status or recovery controls. Never construct identifiers or tokens. AKK revalidates every terminal side effect and never starts a coding-agent process.",
440
450
  parameters: listParameters,
441
451
  buildArgs: (params) => {
442
452
  const config = isRecord(api.pluginConfig) ? api.pluginConfig : {};
@@ -585,7 +595,7 @@ function createPlugin(relayPath, { monitorSupervisorIntervalMs = MONITOR_SUPERVI
585
595
  api.registerTool((toolContext) => ({
586
596
  label: "AKK Send",
587
597
  name: "agent_knock_knock_send",
588
- description: "Start a new AKK Turn. A session-scoped send uses the exact session_id from list or a prior send, preserves that Session's native context, and never redirects to a thread the human selected later in the pane. A terminal-scoped follow-current send uses only one exact list-prefilled full terminal selector together with its fresh expected_terminal_token; AKK may then atomically adopt a verified quiescent human handoff before creating the Turn. Preserve both values exactly and never infer, copy, or reuse the token. Legacy selector discovery remains supported, and both target fields may be omitted only when AKK should require one unique eligible idle pane. Never pass a turn id or selector as session_id. To answer an in-flight question, use agent_knock_knock_respond instead. For ordinary use omit monitoring timeouts unless the user explicitly asks to change them. timeoutSeconds is unsupported. AKK never starts a coding agent. This is asynchronous: after acceptance, yield and wait for the callback or a later explicit status request.",
598
+ description: "Start a new AKK Turn. A session-scoped send uses the exact session_id from list or a prior send, preserves that Session's native context, and never redirects to a thread the human selected later in the pane. A terminal-scoped follow-current send uses only one exact list-prefilled full terminal selector together with its fresh expected_terminal_token; AKK may then atomically adopt a verified quiescent human handoff or send once before Codex foreground attribution and bind only the unique exact rollout that accepts that request. Preserve both values exactly and never infer, copy, or reuse the token. Legacy selector discovery remains supported, and both target fields may be omitted only when AKK should require one unique eligible idle pane. Never pass a turn id or selector as session_id. To answer an in-flight question, use agent_knock_knock_respond instead. For ordinary use omit monitoring timeouts unless the user explicitly asks to change them. timeoutSeconds is unsupported. AKK never starts a coding agent. This is asynchronous: after acceptance, yield and wait for the callback or a later explicit status request.",
589
599
  parameters: sendParameters,
590
600
  async execute(toolCallId, params) {
591
601
  const result = await runSendRequest(api, isRecord(params) ? params : {}, toolContext, terminalMessageIdForToolCall({
@@ -624,13 +634,21 @@ function createPlugin(relayPath, { monitorSupervisorIntervalMs = MONITOR_SUPERVI
624
634
  });
625
635
  registerCliTool(api, {
626
636
  name: "agent_knock_knock_approve",
627
- description: "Manually approve a permission request only after the user reviews and explicitly confirms it. Managed approval uses exact turn_id; an unmanaged raw terminal may be approved only through its own list-prefilled action. Claude Code uses no Hooks: this manual path accepts only an exact one-time Bash permission screen, then recaptures its short-lived evidence and process identity before sending Enter. Separately, trusted default-disabled plugin configuration can auto-approve an exact Claude command/workspace match without exposing policy control to the model. Hook-free durable completion is independently verified from the local Claude transcript.",
637
+ description: "Manually approve a permission request only after the user reviews and explicitly confirms it. Managed approval uses exact turn_id. An unmanaged raw terminal, or a managed Codex pane whose current prompt has no usable AKK Turn owner, may be approved only through its own latest list-prefilled action; preserve its full conversation_id and expected_terminal_token exactly. Terminal-scoped approval never enters automatic approval, never changes managed Turn or Session binding, and has no durable dispatch receipt: if its result is interrupted, refresh status and inspect the live prompt instead of retrying blindly. Claude Code uses no Hooks: this manual path accepts only an exact one-time Bash permission screen, then recaptures its short-lived evidence and process identity before sending Enter. Separately, trusted default-disabled plugin configuration can auto-approve an exact Claude command/workspace match without exposing policy control to the model. Hook-free durable completion is independently verified from the local Claude transcript.",
628
638
  parameters: approveParameters,
629
639
  buildArgs: (params) => {
630
640
  const config = isRecord(api.pluginConfig) ? api.pluginConfig : {};
631
641
  const args = ["approve"];
632
642
  pushTurnTarget(args, params);
633
643
  pushOptional(args, "--expected-approval-fingerprint", requiredString(params.expected_approval_fingerprint, "expected_approval_fingerprint"));
644
+ const expectedTerminalToken = Object.hasOwn(params, "expected_terminal_token")
645
+ ? requiredString(params.expected_terminal_token, "expected_terminal_token")
646
+ : undefined;
647
+ if (expectedTerminalToken &&
648
+ !Object.hasOwn(params, "conversation_id")) {
649
+ throw new Error("expected_terminal_token requires the exact list-prefilled conversation_id");
650
+ }
651
+ pushOptional(args, "--expected-terminal-token", expectedTerminalToken);
634
652
  pushOptional(args, "--store-dir", resolvePluginStoreDir(config));
635
653
  return args;
636
654
  }