@scotthuang/agent-knock-knock 0.11.6 → 0.11.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.
@@ -1,6 +1,7 @@
1
1
  import { type Conversation } from "./protocol.js";
2
2
  import type { ExecutorKind } from "./executors.js";
3
3
  import type { TerminalControlRef } from "./terminal-agent-adapter.js";
4
+ import { type TerminalControlEvidence } from "./terminal-control-ref.js";
4
5
  export declare const MANAGED_SESSION_SCHEMA: "agent-knock-knock/session";
5
6
  export declare const MANAGED_SESSION_VERSION: 1;
6
7
  export declare const NATIVE_THREAD_TRANSITION_SCHEMA: "agent-knock-knock/native-thread-transition";
@@ -23,6 +24,8 @@ export interface ManagedTerminalBinding {
23
24
  generation: number;
24
25
  terminal_id: string;
25
26
  terminal_control: TerminalControlRef;
27
+ /** Additive provider-neutral identity evidence for newer writers. */
28
+ terminal_endpoint?: TerminalControlEvidence;
26
29
  native_thread_id?: string;
27
30
  native_process: NativeProcessIdentity;
28
31
  bound_at: string;
@@ -122,6 +125,7 @@ export declare function createTerminalBindingId(): string;
122
125
  export declare function createNativeThreadTransitionId(): string;
123
126
  export declare function managedSessionStorageKey(sessionId: string): string;
124
127
  export declare function managedSessionBindingToken(state: Pick<ManagedSessionState, "session_id" | "status" | "binding">): string;
128
+ export declare function legacyManagedSessionBindingToken(state: Pick<ManagedSessionState, "session_id" | "status" | "binding">): string;
125
129
  export declare function unmanagedTerminalBindingToken(value: {
126
130
  terminalId: string;
127
131
  terminalControl: TerminalControlRef;
@@ -133,6 +137,17 @@ export declare function unmanagedTerminalBindingToken(value: {
133
137
  processBirth?: string;
134
138
  rollout?: NativeProcessIdentity["rollout"];
135
139
  }): string;
140
+ export declare function legacyUnmanagedTerminalBindingToken(value: {
141
+ terminalId: string;
142
+ terminalControl: TerminalControlRef;
143
+ agent: ExecutorKind;
144
+ pid: number;
145
+ workspace: string;
146
+ nativeThreadId?: string;
147
+ processUuid?: string;
148
+ processBirth?: string;
149
+ rollout?: NativeProcessIdentity["rollout"];
150
+ }): string;
136
151
  export declare function terminalBindingFrom(value: {
137
152
  terminalId: string;
138
153
  terminalControl: TerminalControlRef;
@@ -1,5 +1,6 @@
1
1
  import { createHash, randomUUID } from "node:crypto";
2
2
  import { executorForConversation } from "./protocol.js";
3
+ import { associateTerminalEndpointEvidence, hasCanonicalTerminalEndpoint, terminalControlEvidence, terminalEndpointIdentityFromEvidence, terminalEndpointIdentityKey, terminalRouteKeyFromEvidence, sameTerminalControlIncarnation } from "./terminal-control-ref.js";
3
4
  export const MANAGED_SESSION_SCHEMA = "agent-knock-knock/session";
4
5
  export const MANAGED_SESSION_VERSION = 1;
5
6
  export const NATIVE_THREAD_TRANSITION_SCHEMA = "agent-knock-knock/native-thread-transition";
@@ -18,6 +19,32 @@ export function managedSessionStorageKey(sessionId) {
18
19
  return createHash("sha256").update(sessionId).digest("hex");
19
20
  }
20
21
  export function managedSessionBindingToken(state) {
22
+ if (state.binding?.terminal_endpoint) {
23
+ const identity = terminalEndpointIdentityFromEvidence(state.binding.terminal_endpoint);
24
+ if (!identity) {
25
+ throw new Error("managed terminal binding endpoint identity is invalid");
26
+ }
27
+ return createHash("sha256")
28
+ .update(JSON.stringify({
29
+ version: 2,
30
+ session_id: state.session_id,
31
+ status: state.status,
32
+ binding_id: state.binding.binding_id,
33
+ binding_generation: state.binding.generation,
34
+ terminal_id: state.binding.terminal_id,
35
+ terminal_identity: terminalEndpointIdentityKey(identity),
36
+ terminal_process_anchor_pid: state.binding.terminal_endpoint.process_anchor_pid,
37
+ agent_pid: state.binding.native_process.pid,
38
+ process_uuid: state.binding.native_process.process_uuid ?? null,
39
+ process_birth: state.binding.native_process.process_birth ?? null,
40
+ rollout: state.binding.native_process.rollout ?? null,
41
+ native_thread_id: state.binding.native_thread_id ?? null
42
+ }))
43
+ .digest("hex");
44
+ }
45
+ return legacyManagedSessionBindingToken(state);
46
+ }
47
+ export function legacyManagedSessionBindingToken(state) {
21
48
  return createHash("sha256")
22
49
  .update(JSON.stringify({
23
50
  session_id: state.session_id,
@@ -37,6 +64,28 @@ export function managedSessionBindingToken(state) {
37
64
  .digest("hex");
38
65
  }
39
66
  export function unmanagedTerminalBindingToken(value) {
67
+ if (hasCanonicalTerminalEndpoint(value.terminalControl)) {
68
+ const evidence = terminalControlEvidence(value.terminalControl);
69
+ return createHash("sha256")
70
+ .update(JSON.stringify({
71
+ version: 2,
72
+ state: "unmanaged",
73
+ terminal_id: value.terminalId,
74
+ terminal_identity: terminalEndpointIdentityKey(terminalEndpointIdentityFromEvidence(evidence)),
75
+ terminal_process_anchor_pid: evidence.process_anchor_pid,
76
+ agent: value.agent,
77
+ agent_pid: value.pid,
78
+ workspace: value.workspace,
79
+ native_thread_id: value.nativeThreadId ?? null,
80
+ process_uuid: value.processUuid ?? null,
81
+ process_birth: value.processBirth ?? null,
82
+ rollout: value.rollout ?? null
83
+ }))
84
+ .digest("hex");
85
+ }
86
+ return legacyUnmanagedTerminalBindingToken(value);
87
+ }
88
+ export function legacyUnmanagedTerminalBindingToken(value) {
40
89
  return createHash("sha256")
41
90
  .update(JSON.stringify({
42
91
  state: "unmanaged",
@@ -61,6 +110,9 @@ export function terminalBindingFrom(value) {
61
110
  generation: value.generation,
62
111
  terminal_id: value.terminalId,
63
112
  terminal_control: value.terminalControl,
113
+ ...(hasCanonicalTerminalEndpoint(value.terminalControl)
114
+ ? { terminal_endpoint: terminalControlEvidence(value.terminalControl) }
115
+ : {}),
64
116
  native_thread_id: value.nativeThreadId,
65
117
  native_process: {
66
118
  pid: value.pid,
@@ -350,7 +402,8 @@ function assertNativeThreadTransitionBindingConsistency(transition) {
350
402
  }
351
403
  const before = transition.before_binding;
352
404
  if (before) {
353
- if (before.terminal_id !== transition.terminal_id ||
405
+ if ((before.terminal_id !== transition.terminal_id &&
406
+ !hasCanonicalTerminalEndpoint(before.terminal_control)) ||
354
407
  before.native_thread_id?.toLowerCase() !==
355
408
  transition.before_native_thread_id.toLowerCase() ||
356
409
  before.native_process.process_uuid !== transition.before_process_uuid ||
@@ -367,15 +420,15 @@ function assertNativeThreadTransitionBindingConsistency(transition) {
367
420
  if (!["verified", "committed"].includes(transition.status)) {
368
421
  throw new Error("native thread transition cannot carry after_binding before verification");
369
422
  }
370
- if (after.terminal_id !== transition.terminal_id ||
423
+ if ((after.terminal_id !== transition.terminal_id &&
424
+ !hasCanonicalTerminalEndpoint(after.terminal_control)) ||
371
425
  !after.native_thread_id ||
372
426
  after.native_process.process_uuid !== transition.before_process_uuid ||
373
427
  after.native_process.process_birth !== transition.before_process_birth) {
374
428
  throw new Error("native thread transition after_binding disagrees with terminal or process identity");
375
429
  }
376
430
  if (before &&
377
- (JSON.stringify(after.terminal_control) !==
378
- JSON.stringify(before.terminal_control) ||
431
+ (!sameTerminalControlIncarnation(after.terminal_control, before.terminal_control) ||
379
432
  after.native_process.pid !== before.native_process.pid)) {
380
433
  throw new Error("native thread transition changed terminal control or process PID");
381
434
  }
@@ -502,6 +555,17 @@ function migratedBindingCandidate(conversation, agent) {
502
555
  catch {
503
556
  return undefined;
504
557
  }
558
+ const terminalEndpoint = isRecord(takeover.terminal_endpoint)
559
+ ? takeover.terminal_endpoint
560
+ : undefined;
561
+ if (terminalEndpoint) {
562
+ try {
563
+ associateTerminalEndpointEvidence(terminalControl, terminalEndpoint);
564
+ }
565
+ catch {
566
+ return undefined;
567
+ }
568
+ }
505
569
  const terminalId = optionalNonEmptyString(takeover.native_session_id);
506
570
  const pid = positiveInteger(takeover.terminal_agent_pid);
507
571
  if (!terminalId || pid === undefined) {
@@ -538,6 +602,7 @@ function migratedBindingCandidate(conversation, agent) {
538
602
  agent,
539
603
  terminal_id: terminalId,
540
604
  terminal_control: terminalControl,
605
+ ...(terminalEndpoint ? { terminal_endpoint: terminalEndpoint } : {}),
541
606
  native_thread_id: nativeThreadId ?? null,
542
607
  pid,
543
608
  process_uuid: processUuid ?? null,
@@ -557,6 +622,7 @@ function migratedBindingCandidate(conversation, agent) {
557
622
  generation,
558
623
  terminal_id: terminalId,
559
624
  terminal_control: terminalControl,
625
+ ...(terminalEndpoint ? { terminal_endpoint: terminalEndpoint } : {}),
560
626
  native_thread_id: nativeThreadId,
561
627
  native_process: {
562
628
  pid,
@@ -648,6 +714,7 @@ function assertManagedTerminalBinding(value, label) {
648
714
  "generation",
649
715
  "terminal_id",
650
716
  "terminal_control",
717
+ "terminal_endpoint",
651
718
  "native_thread_id",
652
719
  "native_process",
653
720
  "bound_at",
@@ -659,6 +726,10 @@ function assertManagedTerminalBinding(value, label) {
659
726
  }
660
727
  assertNonEmptyString(value.terminal_id, `${label} terminal_id`);
661
728
  assertTerminalControlRef(value.terminal_control, `${label} terminal_control`);
729
+ if (value.terminal_endpoint !== undefined) {
730
+ assertTerminalEndpointEvidence(value.terminal_endpoint, `${label} terminal_endpoint`);
731
+ associateTerminalEndpointEvidence(value.terminal_control, value.terminal_endpoint);
732
+ }
662
733
  if (value.native_thread_id !== undefined) {
663
734
  // Persist the exact opaque id reported by the adapter. Current Codex and
664
735
  // Claude lifecycle selectors are UUIDs, but a Session binding must not
@@ -669,6 +740,36 @@ function assertManagedTerminalBinding(value, label) {
669
740
  assertTimestamp(value.bound_at, `${label} bound_at`);
670
741
  assertTimestamp(value.last_verified_at, `${label} last_verified_at`);
671
742
  }
743
+ function assertTerminalEndpointEvidence(value, label) {
744
+ if (!isRecord(value)) {
745
+ throw new Error(`${label} must be an object`);
746
+ }
747
+ assertOnlyKeys(value, [
748
+ "schema",
749
+ "version",
750
+ "kind",
751
+ "endpoint_key",
752
+ "resource_key",
753
+ "route_key",
754
+ "process_anchor_pid",
755
+ "target",
756
+ "socket_path",
757
+ "pane_pid",
758
+ "server_socket_path",
759
+ "pane_id",
760
+ "current_path"
761
+ ], label);
762
+ if (value.schema !== "agent-knock-knock/terminal-endpoint" ||
763
+ value.version !== 1) {
764
+ throw new Error(`${label} has an unsupported identity evidence version`);
765
+ }
766
+ if (!terminalEndpointIdentityFromEvidence(value)) {
767
+ throw new Error(`${label} has invalid or inconsistent identity evidence`);
768
+ }
769
+ if (!terminalRouteKeyFromEvidence(value)) {
770
+ throw new Error(`${label} has inconsistent route evidence`);
771
+ }
772
+ }
672
773
  function assertNativeProcessIdentity(value, label) {
673
774
  if (!isRecord(value)) {
674
775
  throw new Error(`${label} must be an object`);
@@ -1 +1 @@
1
- {"version":3,"file":"managed-session.js","sourceRoot":"","sources":["../../src/managed-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"managed-session.js","sourceRoot":"","sources":["../../src/managed-session.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { type ManagedSessionState, type ManagedTerminalBinding, type NativeThreadCandidate, type NativeThreadTransition } from "./managed-session.js";
2
+ import { type TerminalControlEvidence } from "./terminal-control-ref.js";
2
3
  export declare const NATIVE_THREAD_RESUME_SNAPSHOT_TTL_MS: number;
3
4
  export declare const NATIVE_THREAD_RESUME_SNAPSHOT_SCHEMA = "agent-knock-knock/native-thread-resume-snapshot";
4
- export declare const NATIVE_THREAD_RESUME_SNAPSHOT_VERSION = 1;
5
+ export declare const NATIVE_THREAD_RESUME_SNAPSHOT_VERSION = 2;
6
+ export declare const LEGACY_NATIVE_THREAD_RESUME_SNAPSHOT_VERSION = 1;
5
7
  export interface NativeThreadResumeSnapshotRow {
6
8
  selection_number: number;
7
9
  short_id: string;
@@ -13,7 +15,7 @@ export interface NativeThreadResumeSnapshotRow {
13
15
  }
14
16
  export interface NativeThreadResumeSnapshot {
15
17
  schema: typeof NATIVE_THREAD_RESUME_SNAPSHOT_SCHEMA;
16
- version: typeof NATIVE_THREAD_RESUME_SNAPSHOT_VERSION;
18
+ version: typeof LEGACY_NATIVE_THREAD_RESUME_SNAPSHOT_VERSION | typeof NATIVE_THREAD_RESUME_SNAPSHOT_VERSION;
17
19
  snapshot_id: string;
18
20
  store_key: string;
19
21
  selection_scope: string;
@@ -27,6 +29,7 @@ export interface NativeThreadResumeSnapshot {
27
29
  socket_path?: string;
28
30
  pane_pid?: number;
29
31
  };
32
+ terminal_endpoint?: TerminalControlEvidence;
30
33
  current_session_id?: string;
31
34
  current_native_thread_id?: string;
32
35
  expected_binding_token: string;
@@ -2,9 +2,11 @@ import { createHash, randomBytes, randomUUID } from "node:crypto";
2
2
  import fs from "node:fs";
3
3
  import path from "node:path";
4
4
  import { isExactNativeThreadId } from "./managed-session.js";
5
+ import { associateTerminalEndpointEvidence, hasCanonicalTerminalEndpoint, sameTerminalControlIncarnation, terminalControlEvidence } from "./terminal-control-ref.js";
5
6
  export const NATIVE_THREAD_RESUME_SNAPSHOT_TTL_MS = 5 * 60 * 1000;
6
7
  export const NATIVE_THREAD_RESUME_SNAPSHOT_SCHEMA = "agent-knock-knock/native-thread-resume-snapshot";
7
- export const NATIVE_THREAD_RESUME_SNAPSHOT_VERSION = 1;
8
+ export const NATIVE_THREAD_RESUME_SNAPSHOT_VERSION = 2;
9
+ export const LEGACY_NATIVE_THREAD_RESUME_SNAPSHOT_VERSION = 1;
8
10
  const PRIVATE_DIRECTORY_MODE = 0o700;
9
11
  const PRIVATE_FILE_MODE = 0o600;
10
12
  const NO_FOLLOW_FLAG = fs.constants.O_NOFOLLOW ?? 0;
@@ -90,11 +92,13 @@ export function verifiedPreviousResumeCandidate({ terminalId, agent, workspace,
90
92
  transition.transition_id !== currentSession.last_transition_id ||
91
93
  transition.status !== "committed" ||
92
94
  transition.target_session_id !== currentSession.session_id ||
93
- transition.terminal_id !== terminalId ||
95
+ !after ||
96
+ (transition.terminal_id !== terminalId &&
97
+ !(hasCanonicalTerminalEndpoint(after.terminal_control) &&
98
+ hasCanonicalTerminalEndpoint(binding.terminal_control))) ||
94
99
  transition.agent !== agent ||
95
100
  path.resolve(transition.workspace) !== path.resolve(workspace) ||
96
101
  path.resolve(currentSession.workspace) !== path.resolve(workspace) ||
97
- !after ||
98
102
  !lifecycleAfterBindingMatchesCurrent(after, binding)) {
99
103
  return undefined;
100
104
  }
@@ -123,10 +127,10 @@ export function lifecycleAfterBindingMatchesCurrent(after, current) {
123
127
  const currentProcess = current.native_process;
124
128
  return (after.binding_id === current.binding_id &&
125
129
  after.generation === current.generation &&
126
- after.terminal_id === current.terminal_id &&
127
- terminalControlKey(after.terminal_control) ===
128
- terminalControlKey(current.terminal_control) &&
129
- after.terminal_control.panePid === current.terminal_control.panePid &&
130
+ (after.terminal_id === current.terminal_id ||
131
+ (hasCanonicalTerminalEndpoint(after.terminal_control) &&
132
+ hasCanonicalTerminalEndpoint(current.terminal_control))) &&
133
+ sameTerminalControlIncarnation(after.terminal_control, current.terminal_control) &&
130
134
  after.native_thread_id?.toLowerCase() ===
131
135
  current.native_thread_id?.toLowerCase() &&
132
136
  afterProcess.pid === currentProcess.pid &&
@@ -148,9 +152,12 @@ export function createNativeThreadResumeSnapshot({ storeDir, selectionScope, ter
148
152
  const ordered = sortNativeThreadCandidates(candidates);
149
153
  const snapshotId = `rs_${randomBytes(16).toString("base64url")}`;
150
154
  const rows = canonicalNativeThreadResumeSnapshotRows(snapshotId, ordered);
155
+ const canonicalTerminalControl = isCompleteTerminalControlRef(terminalControl) && hasCanonicalTerminalEndpoint(terminalControl);
151
156
  return {
152
157
  schema: NATIVE_THREAD_RESUME_SNAPSHOT_SCHEMA,
153
- version: NATIVE_THREAD_RESUME_SNAPSHOT_VERSION,
158
+ version: canonicalTerminalControl
159
+ ? NATIVE_THREAD_RESUME_SNAPSHOT_VERSION
160
+ : LEGACY_NATIVE_THREAD_RESUME_SNAPSHOT_VERSION,
154
161
  snapshot_id: snapshotId,
155
162
  store_key: resumeSnapshotStoreKey(storeDir),
156
163
  selection_scope: selectionScope,
@@ -164,6 +171,9 @@ export function createNativeThreadResumeSnapshot({ storeDir, selectionScope, ter
164
171
  socket_path: terminalControl.socketPath,
165
172
  pane_pid: terminalControl.panePid
166
173
  },
174
+ ...(canonicalTerminalControl
175
+ ? { terminal_endpoint: terminalControlEvidence(terminalControl) }
176
+ : {}),
167
177
  current_session_id: currentSessionId,
168
178
  current_native_thread_id: currentNativeThreadId,
169
179
  expected_binding_token: expectedBindingToken,
@@ -260,7 +270,8 @@ export function resolveNativeThreadResumeSelection({ runtimeDir, storeDir, termi
260
270
  throw new Error("exactly one snapshot-bound resume selection is required");
261
271
  }
262
272
  const snapshot = loadNativeThreadResumeSnapshot(runtimeDir, storeDir, resolvedSnapshotId, now);
263
- if (snapshot.terminal_id !== terminalId ||
273
+ if ((snapshot.version === LEGACY_NATIVE_THREAD_RESUME_SNAPSHOT_VERSION &&
274
+ snapshot.terminal_id !== terminalId) ||
264
275
  snapshot.selection_scope !== selectionScope) {
265
276
  throw new Error("resume selection belongs to another terminal or OpenClaw session; run /akk threads again");
266
277
  }
@@ -304,7 +315,8 @@ function assertSnapshotId(snapshotId) {
304
315
  function assertNativeThreadResumeSnapshot(value, storeDir, expectedSnapshotId) {
305
316
  if (!isRecord(value) ||
306
317
  value.schema !== NATIVE_THREAD_RESUME_SNAPSHOT_SCHEMA ||
307
- value.version !== NATIVE_THREAD_RESUME_SNAPSHOT_VERSION ||
318
+ !(value.version === LEGACY_NATIVE_THREAD_RESUME_SNAPSHOT_VERSION ||
319
+ value.version === NATIVE_THREAD_RESUME_SNAPSHOT_VERSION) ||
308
320
  typeof value.snapshot_id !== "string" ||
309
321
  !SNAPSHOT_ID_PATTERN.test(value.snapshot_id) ||
310
322
  (expectedSnapshotId !== undefined &&
@@ -327,6 +339,15 @@ function assertNativeThreadResumeSnapshot(value, storeDir, expectedSnapshotId) {
327
339
  !Array.isArray(value.rows)) {
328
340
  throw new Error("resume selection snapshot is malformed");
329
341
  }
342
+ if (value.version === NATIVE_THREAD_RESUME_SNAPSHOT_VERSION &&
343
+ (!isRecord(value.terminal_endpoint) ||
344
+ !snapshotEndpointMatches(value.terminal_control, value.terminal_endpoint))) {
345
+ throw new Error("resume selection snapshot endpoint identity is malformed");
346
+ }
347
+ if (value.version === LEGACY_NATIVE_THREAD_RESUME_SNAPSHOT_VERSION &&
348
+ value.terminal_endpoint !== undefined) {
349
+ throw new Error("legacy resume selection snapshot has unexpected endpoint identity");
350
+ }
330
351
  const numbers = new Set();
331
352
  const shortIds = new Set();
332
353
  const handles = new Set();
@@ -430,11 +451,40 @@ function stableStringify(value) {
430
451
  }
431
452
  return JSON.stringify(value);
432
453
  }
433
- function terminalControlKey(value) {
434
- return JSON.stringify({
435
- target: value.target,
436
- socket_path: value.socketPath ?? null
437
- });
454
+ function snapshotTerminalControl(value) {
455
+ const target = String(value.target ?? "");
456
+ const [session = target, route = "0.0"] = target.split(":", 2);
457
+ const [windowText = "0", paneText = "0"] = route.split(".", 2);
458
+ return {
459
+ kind: "tmux",
460
+ target,
461
+ socketPath: nonEmptyString(value.socket_path)
462
+ ? value.socket_path
463
+ : undefined,
464
+ session,
465
+ window: Number.parseInt(windowText, 10) || 0,
466
+ pane: Number.parseInt(paneText, 10) || 0,
467
+ panePid: Number(value.pane_pid),
468
+ capabilities: []
469
+ };
470
+ }
471
+ function isCompleteTerminalControlRef(value) {
472
+ const candidate = value;
473
+ return candidate.kind === "tmux" &&
474
+ typeof candidate.session === "string" &&
475
+ Number.isSafeInteger(candidate.window) &&
476
+ Number.isSafeInteger(candidate.pane) &&
477
+ Number.isSafeInteger(candidate.panePid) &&
478
+ Array.isArray(candidate.capabilities);
479
+ }
480
+ function snapshotEndpointMatches(terminalControl, terminalEndpoint) {
481
+ try {
482
+ associateTerminalEndpointEvidence(snapshotTerminalControl(terminalControl), terminalEndpoint);
483
+ return true;
484
+ }
485
+ catch {
486
+ return false;
487
+ }
438
488
  }
439
489
  function isRecord(value) {
440
490
  return value !== null && typeof value === "object" && !Array.isArray(value);