@scotthuang/agent-knock-knock 0.13.16 → 0.13.17

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 (168) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/src/claude-terminal-agent-adapter.js +1 -1
  3. package/dist/src/claude-terminal-agent-adapter.js.map +1 -1
  4. package/dist/src/codex-app-server-interaction-client.js +68 -26
  5. package/dist/src/codex-app-server-interaction-client.js.map +1 -1
  6. package/dist/src/codex-app-server-read-client.js +52 -20
  7. package/dist/src/codex-app-server-read-client.js.map +1 -1
  8. package/dist/src/codex-astra-composer-proof.js +1 -1
  9. package/dist/src/codex-astra-composer-proof.js.map +1 -1
  10. package/dist/src/codex-open-rollout-inventory.d.ts +51 -0
  11. package/dist/src/codex-open-rollout-inventory.js +365 -0
  12. package/dist/src/codex-open-rollout-inventory.js.map +1 -0
  13. package/dist/src/codex-paginated-thread-binding.js +1 -1
  14. package/dist/src/codex-paginated-thread-binding.js.map +1 -1
  15. package/dist/src/codex-rollout-bound-completion.d.ts +44 -0
  16. package/dist/src/codex-rollout-bound-completion.js +357 -0
  17. package/dist/src/codex-rollout-bound-completion.js.map +1 -0
  18. package/dist/src/codex-rollout-file.d.ts +15 -0
  19. package/dist/src/codex-rollout-file.js +98 -0
  20. package/dist/src/codex-rollout-file.js.map +1 -0
  21. package/dist/src/codex-rollout-human-task.d.ts +61 -0
  22. package/dist/src/codex-rollout-human-task.js +555 -0
  23. package/dist/src/codex-rollout-human-task.js.map +1 -0
  24. package/dist/src/codex-rollout-interaction-evidence.d.ts +48 -0
  25. package/dist/src/codex-rollout-interaction-evidence.js +521 -0
  26. package/dist/src/codex-rollout-interaction-evidence.js.map +1 -0
  27. package/dist/src/codex-rollout-inventory.d.ts +5 -0
  28. package/dist/src/codex-rollout-inventory.js +81 -0
  29. package/dist/src/codex-rollout-inventory.js.map +1 -0
  30. package/dist/src/codex-rollout-records.d.ts +49 -0
  31. package/dist/src/codex-rollout-records.js +298 -0
  32. package/dist/src/codex-rollout-records.js.map +1 -0
  33. package/dist/src/codex-sqlite-thread-query.d.ts +85 -0
  34. package/dist/src/codex-sqlite-thread-query.js +440 -0
  35. package/dist/src/codex-sqlite-thread-query.js.map +1 -0
  36. package/dist/src/codex-status-history-navigation.d.ts +1 -1
  37. package/dist/src/codex-status-history-navigation.js +1 -1
  38. package/dist/src/codex-status-history-navigation.js.map +1 -1
  39. package/dist/src/codex-store-adapter.d.ts +3 -50
  40. package/dist/src/codex-store-adapter.js +5 -796
  41. package/dist/src/codex-store-adapter.js.map +1 -1
  42. package/dist/src/codex-terminal-agent-adapter.js +1 -1
  43. package/dist/src/codex-terminal-agent-adapter.js.map +1 -1
  44. package/dist/src/native-thread-lifecycle-cli-adapter.d.ts +4 -134
  45. package/dist/src/native-thread-lifecycle-cli-adapter.js +19 -633
  46. package/dist/src/native-thread-lifecycle-cli-adapter.js.map +1 -1
  47. package/dist/src/native-thread-lifecycle-cli-contract.d.ts +138 -0
  48. package/dist/src/native-thread-lifecycle-cli-contract.js +2 -0
  49. package/dist/src/native-thread-lifecycle-cli-contract.js.map +1 -0
  50. package/dist/src/semantic-permission-control.js +33 -6
  51. package/dist/src/semantic-permission-control.js.map +1 -1
  52. package/dist/src/semantic-tool-descriptions.d.ts +26 -0
  53. package/dist/src/semantic-tool-descriptions.js +259 -0
  54. package/dist/src/semantic-tool-descriptions.js.map +1 -0
  55. package/dist/src/semantic-tool-runtime.js +45 -37
  56. package/dist/src/semantic-tool-runtime.js.map +1 -1
  57. package/dist/src/semantic-tool-schemas.js +134 -33
  58. package/dist/src/semantic-tool-schemas.js.map +1 -1
  59. package/dist/src/terminal-action-contracts.d.ts +4 -0
  60. package/dist/src/terminal-action-contracts.js +695 -0
  61. package/dist/src/terminal-action-contracts.js.map +1 -0
  62. package/dist/src/terminal-composer-classifier.d.ts +1 -1
  63. package/dist/src/terminal-composer-classifier.js +2 -2
  64. package/dist/src/terminal-composer-classifier.js.map +1 -1
  65. package/dist/src/terminal-interaction-response-bridge.js +1 -1
  66. package/dist/src/terminal-interaction-response-bridge.js.map +1 -1
  67. package/dist/src/terminal-list-renderer.d.ts +1 -2
  68. package/dist/src/terminal-list-renderer.js +8 -424
  69. package/dist/src/terminal-list-renderer.js.map +1 -1
  70. package/dist/src/terminal-model-control-action-policy.d.ts +1 -1
  71. package/dist/src/terminal-model-control-availability.d.ts +1 -1
  72. package/dist/src/terminal-model-control-availability.js +1 -1
  73. package/dist/src/terminal-model-control-availability.js.map +1 -1
  74. package/dist/src/terminal-model-control-cli-adapter.d.ts +34 -0
  75. package/dist/src/terminal-model-control-cli-adapter.js +669 -0
  76. package/dist/src/terminal-model-control-cli-adapter.js.map +1 -0
  77. package/dist/src/terminal-model-control-contract.d.ts +198 -0
  78. package/dist/src/terminal-model-control-contract.js +15 -0
  79. package/dist/src/terminal-model-control-contract.js.map +1 -0
  80. package/dist/src/terminal-model-control-input.d.ts +29 -0
  81. package/dist/src/terminal-model-control-input.js +86 -0
  82. package/dist/src/terminal-model-control-input.js.map +1 -0
  83. package/dist/src/terminal-model-control-profile.d.ts +2 -0
  84. package/dist/src/terminal-model-control-profile.js +6 -0
  85. package/dist/src/terminal-model-control-profile.js.map +1 -1
  86. package/dist/src/terminal-model-control-subject.d.ts +52 -0
  87. package/dist/src/terminal-model-control-subject.js +73 -0
  88. package/dist/src/terminal-model-control-subject.js.map +1 -1
  89. package/dist/src/terminal-model-control-surface.d.ts +82 -0
  90. package/dist/src/terminal-model-control-surface.js +688 -0
  91. package/dist/src/terminal-model-control-surface.js.map +1 -0
  92. package/dist/src/terminal-model-control.d.ts +6 -270
  93. package/dist/src/terminal-model-control.js +11 -988
  94. package/dist/src/terminal-model-control.js.map +1 -1
  95. package/dist/src/terminal-model-selection.d.ts +33 -0
  96. package/dist/src/terminal-model-selection.js +143 -0
  97. package/dist/src/terminal-model-selection.js.map +1 -0
  98. package/dist/src/terminal-monitor-application-service.js +38 -59
  99. package/dist/src/terminal-monitor-application-service.js.map +1 -1
  100. package/dist/src/terminal-monitor-attention-store.d.ts +65 -0
  101. package/dist/src/terminal-monitor-attention-store.js +518 -0
  102. package/dist/src/terminal-monitor-attention-store.js.map +1 -0
  103. package/dist/src/terminal-monitor-collateral-recovery.d.ts +12 -0
  104. package/dist/src/terminal-monitor-collateral-recovery.js +415 -0
  105. package/dist/src/terminal-monitor-collateral-recovery.js.map +1 -0
  106. package/dist/src/terminal-monitor-interaction-projection.d.ts +19 -0
  107. package/dist/src/terminal-monitor-interaction-projection.js +48 -0
  108. package/dist/src/terminal-monitor-interaction-projection.js.map +1 -0
  109. package/dist/src/terminal-monitor-startup-recovery.d.ts +15 -0
  110. package/dist/src/terminal-monitor-startup-recovery.js +767 -0
  111. package/dist/src/terminal-monitor-startup-recovery.js.map +1 -0
  112. package/dist/src/terminal-monitor-state-cli-adapter.d.ts +2 -104
  113. package/dist/src/terminal-monitor-state-cli-adapter.js +28 -1640
  114. package/dist/src/terminal-monitor-state-cli-adapter.js.map +1 -1
  115. package/dist/src/terminal-monitor-state-contract.d.ts +108 -0
  116. package/dist/src/terminal-monitor-state-contract.js +8 -0
  117. package/dist/src/terminal-monitor-state-contract.js.map +1 -0
  118. package/dist/src/terminal-native-inspection-bridge.d.ts +4 -153
  119. package/dist/src/terminal-native-inspection-bridge.js +7 -646
  120. package/dist/src/terminal-native-inspection-bridge.js.map +1 -1
  121. package/dist/src/terminal-native-inspection-contract.d.ts +128 -0
  122. package/dist/src/terminal-native-inspection-contract.js +38 -0
  123. package/dist/src/terminal-native-inspection-contract.js.map +1 -0
  124. package/dist/src/terminal-native-inspection-profile.d.ts +15 -0
  125. package/dist/src/terminal-native-inspection-profile.js +185 -0
  126. package/dist/src/terminal-native-inspection-profile.js.map +1 -0
  127. package/dist/src/terminal-native-inspection-proof.d.ts +62 -0
  128. package/dist/src/terminal-native-inspection-proof.js +362 -0
  129. package/dist/src/terminal-native-inspection-proof.js.map +1 -0
  130. package/dist/src/terminal-permission-control-bridge.js +1 -1
  131. package/dist/src/terminal-permission-control-bridge.js.map +1 -1
  132. package/dist/src/terminal-runtime-cli-adapter.d.ts +2 -1
  133. package/dist/src/terminal-runtime-cli-adapter.js +1 -1
  134. package/dist/src/terminal-runtime-cli-adapter.js.map +1 -1
  135. package/dist/src/terminal-submission-acceptance.d.ts +5 -148
  136. package/dist/src/terminal-submission-acceptance.js +21 -1845
  137. package/dist/src/terminal-submission-acceptance.js.map +1 -1
  138. package/dist/src/terminal-watch-anchor-capture.d.ts +9 -0
  139. package/dist/src/terminal-watch-anchor-capture.js +139 -0
  140. package/dist/src/terminal-watch-anchor-capture.js.map +1 -0
  141. package/dist/src/terminal-watch-cli-adapter.d.ts +3 -117
  142. package/dist/src/terminal-watch-cli-adapter.js +10 -1992
  143. package/dist/src/terminal-watch-cli-adapter.js.map +1 -1
  144. package/dist/src/terminal-watch-cli-contract.d.ts +117 -0
  145. package/dist/src/terminal-watch-cli-contract.js +2 -0
  146. package/dist/src/terminal-watch-cli-contract.js.map +1 -0
  147. package/dist/src/terminal-watch-fallback-observation.d.ts +15 -0
  148. package/dist/src/terminal-watch-fallback-observation.js +249 -0
  149. package/dist/src/terminal-watch-fallback-observation.js.map +1 -0
  150. package/dist/src/terminal-watch-interaction-observation.d.ts +26 -0
  151. package/dist/src/terminal-watch-interaction-observation.js +262 -0
  152. package/dist/src/terminal-watch-interaction-observation.js.map +1 -0
  153. package/dist/src/terminal-watch-observation-adapter.d.ts +4 -0
  154. package/dist/src/terminal-watch-observation-adapter.js +307 -0
  155. package/dist/src/terminal-watch-observation-adapter.js.map +1 -0
  156. package/dist/src/terminal-watch-observation-evidence.d.ts +25 -0
  157. package/dist/src/terminal-watch-observation-evidence.js +184 -0
  158. package/dist/src/terminal-watch-observation-evidence.js.map +1 -0
  159. package/dist/src/terminal-watch-response-authority.d.ts +6 -0
  160. package/dist/src/terminal-watch-response-authority.js +333 -0
  161. package/dist/src/terminal-watch-response-authority.js.map +1 -0
  162. package/dist/src/terminal-watch-response-cli-adapter.d.ts +3 -0
  163. package/dist/src/terminal-watch-response-cli-adapter.js +230 -0
  164. package/dist/src/terminal-watch-response-cli-adapter.js.map +1 -0
  165. package/dist/src/terminal-watch-terminal-identity.d.ts +39 -0
  166. package/dist/src/terminal-watch-terminal-identity.js +380 -0
  167. package/dist/src/terminal-watch-terminal-identity.js.map +1 -0
  168. package/package.json +1 -1
@@ -0,0 +1,380 @@
1
+ /** Exact terminal identity and validated Watch command inputs. */
2
+ import { assertAutomaticActivityWatchIdentity } from "./terminal-watch-send-activity.js";
3
+ import { createHash } from "node:crypto";
4
+ import path from "node:path";
5
+ import { paginatedWatchProcessMatches } from "./codex-paginated-watch.js";
6
+ import { rolloutFileIdentityMatches } from "./terminal-binding-authority.js";
7
+ import { sameTerminalControlEvidenceIncarnation, terminalControlEvidence } from "./terminal-control-ref.js";
8
+ import { isTerminalActivityWatch, isUserExplicitFallbackWatch } from "./terminal-watch-store.js";
9
+ import { isRecord, nonBlankString as stringValue } from "./value-guards.js";
10
+ export function assertSameUserExplicitFallbackTerminal(expected, observed) {
11
+ if (requiredString(observed.id, "terminal id") !== expected.conversationId ||
12
+ terminalAgent(observed) !== expected.agent ||
13
+ positiveInteger(observed.pid, "terminal PID") !== expected.pid ||
14
+ !isRecord(observed.terminal_control) ||
15
+ !sameTerminalControlEvidenceIncarnation(expected.terminalControl, observed.terminal_control)) {
16
+ throw new Error("terminal changed before the user-explicit fallback Watch anchor was captured");
17
+ }
18
+ }
19
+ export function assertPreparedFallbackTerminal(prepared, observed) {
20
+ if (requiredString(observed.id, "terminal id") !== prepared.terminalId ||
21
+ terminalAgent(observed) !== prepared.agent ||
22
+ positiveInteger(observed.pid, "terminal PID") !== prepared.pid ||
23
+ !isRecord(observed.terminal_control) ||
24
+ !sameTerminalControlEvidenceIncarnation(prepared.terminalEndpoint, observed.terminal_control)) {
25
+ throw new Error("terminal changed before the user-explicit fallback Watch was attached");
26
+ }
27
+ if (isTerminalActivityWatch(prepared)) {
28
+ assertAutomaticActivityWatchIdentity(prepared.anchor, observed, terminalWorkspace(observed), prepared.terminalIdentity.workspace);
29
+ }
30
+ }
31
+ export async function exactTerminalForWatch(terminalId, options, dependencies) {
32
+ const observation = await dependencies.observeExactTerminal({
33
+ options,
34
+ terminalId
35
+ });
36
+ if (observation.state === "unavailable") {
37
+ throw new Error("authoritative observation of the exact terminal is temporarily " +
38
+ "unavailable; retry after refreshing AKK list");
39
+ }
40
+ if (observation.state === "absent") {
41
+ throw new Error(`expected exact terminal ${terminalId}; observed none`);
42
+ }
43
+ return observation;
44
+ }
45
+ function bindingTokenForWatch(terminal) {
46
+ return requiredSha256(terminal.lifecycle_binding_token, "current terminal binding token");
47
+ }
48
+ export function bestEffortBindingTokenForWatch(terminal) {
49
+ try {
50
+ return { token: bindingTokenForWatch(terminal) };
51
+ }
52
+ catch {
53
+ const terminalControl = terminalControlForWatch(terminal);
54
+ return {
55
+ token: sha256({
56
+ schema: "agent-knock-knock/terminal-watch-observation-binding",
57
+ version: 1,
58
+ terminal_id: requiredString(terminal.id, "terminal id"),
59
+ agent: terminalAgent(terminal),
60
+ pid: positiveInteger(terminal.pid, "terminal PID"),
61
+ endpoint: terminalControlEvidence(terminalControl),
62
+ process_uuid: stringValue(terminal.native_agent_process_uuid) ?? null,
63
+ process_birth: stringValue(terminal.native_agent_process_birth) ?? null
64
+ }),
65
+ warning: "lifecycle_binding_token_unavailable: Watch used read-only terminal/process observation identity"
66
+ };
67
+ }
68
+ }
69
+ export function terminalActivityState(terminal) {
70
+ const state = stringValue(terminal.activity_state);
71
+ return state === "awaiting_approval" || state === "working" ||
72
+ state === "idle"
73
+ ? state
74
+ : "unknown";
75
+ }
76
+ export function sameManualWatchTarget(watch, agent, terminal, anchor) {
77
+ return watch.status === "active" &&
78
+ watch.agent === agent &&
79
+ watch.terminal.terminal_id === terminal.terminal_id &&
80
+ watch.terminal.workspace === terminal.workspace &&
81
+ sameTerminalControlEvidenceIncarnation(watch.terminal.terminal_endpoint, terminal.terminal_endpoint) &&
82
+ sameManualWatchAnchorTarget(watch.anchor, anchor);
83
+ }
84
+ function sameManualWatchAnchorTarget(left, right) {
85
+ if (left.schema !== right.schema)
86
+ return false;
87
+ if (left.schema === "agent-knock-knock/codex-paginated-task-anchor" && right.schema === left.schema) {
88
+ return samePaginatedWatchTask(left, right);
89
+ }
90
+ if (left.schema ===
91
+ "agent-knock-knock/codex-human-started-active-task-anchor" &&
92
+ right.schema === left.schema) {
93
+ return left.turn_id === right.turn_id &&
94
+ left.process_uuid === right.process_uuid &&
95
+ left.process_birth === right.process_birth &&
96
+ left.rollout.device === right.rollout.device &&
97
+ left.rollout.inode === right.rollout.inode;
98
+ }
99
+ if (left.schema ===
100
+ "agent-knock-knock/claude-human-started-active-task-anchor" &&
101
+ right.schema === left.schema) {
102
+ return sameClaudeWatchTask(left, right);
103
+ }
104
+ if (left.schema === "agent-knock-knock/terminal-activity-watch-anchor" &&
105
+ right.schema === left.schema) {
106
+ return left.origin === right.origin &&
107
+ left.request_hash === right.request_hash &&
108
+ left.pid === right.pid &&
109
+ optionalIdentityCompatible(left.native_process_uuid, right.native_process_uuid) &&
110
+ optionalIdentityCompatible(left.native_process_birth, right.native_process_birth);
111
+ }
112
+ return left.anchor_fingerprint === right.anchor_fingerprint;
113
+ }
114
+ function sameClaudeWatchTask(left, right) {
115
+ return left.prompt_uuid === right.prompt_uuid &&
116
+ left.pid === right.pid &&
117
+ left.agent_started_at_ms === right.agent_started_at_ms &&
118
+ left.device === right.device &&
119
+ left.inode === right.inode;
120
+ }
121
+ function samePaginatedWatchTask(left, right) {
122
+ return left.native_thread_id === right.native_thread_id && left.turn_id === right.turn_id &&
123
+ left.process_uuid === right.process_uuid && left.process_birth === right.process_birth &&
124
+ left.origin === right.origin && left.codex_home === right.codex_home;
125
+ }
126
+ function optionalIdentityCompatible(left, right) {
127
+ return left === undefined || right === undefined || left === right;
128
+ }
129
+ export function safeDiagnostic(error) {
130
+ const message = error instanceof Error ? error.message : String(error);
131
+ return message.replace(/[\r\n\0]+/gu, " ").trim().slice(0, 500) ||
132
+ "unknown provider observation error";
133
+ }
134
+ export function terminalControlForWatch(terminal) {
135
+ if (!isRecord(terminal.terminal_control)) {
136
+ throw new Error("the exact terminal has no terminal control authority");
137
+ }
138
+ return terminal.terminal_control;
139
+ }
140
+ export function terminalWatchCandidateMatchesLiveContext(watch, terminal) {
141
+ if (!terminalMatchesWatch(terminal, watch))
142
+ return false;
143
+ if (watch.anchor.schema === "agent-knock-knock/codex-paginated-task-anchor") {
144
+ return paginatedWatchProcessMatches(terminal, watch.anchor);
145
+ }
146
+ const sessionId = stringValue(terminal.native_agent_session_id);
147
+ if (watch.anchor.schema ===
148
+ "agent-knock-knock/codex-human-started-active-task-anchor") {
149
+ return sessionId?.toLowerCase() === watch.anchor.native_thread_id &&
150
+ rolloutFileIdentityMatches(terminal.native_agent_rollout, watch.anchor.rollout);
151
+ }
152
+ if (watch.anchor.schema ===
153
+ "agent-knock-knock/codex-user-explicit-fallback-watch-anchor") {
154
+ const checkpoint = watch.observation_checkpoint;
155
+ return "schema" in checkpoint &&
156
+ checkpoint.schema ===
157
+ "agent-knock-knock/codex-user-explicit-fallback-watch-checkpoint" &&
158
+ checkpoint.accepted_identity !== undefined &&
159
+ sessionId?.toLowerCase() === checkpoint.accepted_identity.native_thread_id &&
160
+ rolloutFileIdentityMatches(terminal.native_agent_rollout, checkpoint.accepted_identity.rollout);
161
+ }
162
+ if (watch.anchor.schema ===
163
+ "agent-knock-knock/claude-human-started-active-task-anchor") {
164
+ return sessionId === watch.anchor.session_id;
165
+ }
166
+ if (watch.anchor.schema ===
167
+ "agent-knock-knock/claude-user-explicit-fallback-watch-anchor") {
168
+ return sessionId === watch.anchor.transcript_anchor.session_id;
169
+ }
170
+ return false;
171
+ }
172
+ export async function currentTerminalForWatch(watch, options, dependencies) {
173
+ return dependencies.observeExactTerminal({
174
+ options,
175
+ terminalId: watch.terminal.terminal_id
176
+ });
177
+ }
178
+ export function terminalMatchesWatch(terminal, watch) {
179
+ try {
180
+ return terminalAgent(terminal) === watch.agent &&
181
+ requiredString(terminal.id, "terminal id") ===
182
+ watch.terminal.terminal_id &&
183
+ terminalWorkspace(terminal) === watch.terminal.workspace &&
184
+ isRecord(terminal.terminal_control) &&
185
+ sameTerminalControlEvidenceIncarnation(terminal.terminal_control, watch.terminal.terminal_endpoint);
186
+ }
187
+ catch {
188
+ return false;
189
+ }
190
+ }
191
+ export function terminalActivityWatchIdentityMatch(terminal, watch) {
192
+ try {
193
+ if (!isTerminalActivityWatch(watch) ||
194
+ terminalAgent(terminal) !== watch.agent ||
195
+ requiredString(terminal.id, "terminal id") !==
196
+ watch.terminal.terminal_id ||
197
+ terminalWorkspace(terminal) !== watch.terminal.workspace ||
198
+ positiveInteger(terminal.pid, "terminal PID") !== watch.anchor.pid) {
199
+ return "mismatch";
200
+ }
201
+ if (!isRecord(terminal.terminal_control)) {
202
+ return "unavailable";
203
+ }
204
+ if (!sameTerminalControlEvidenceIncarnation(terminal.terminal_control, watch.terminal.terminal_endpoint)) {
205
+ return "mismatch";
206
+ }
207
+ const processUuid = stringValue(terminal.native_agent_process_uuid);
208
+ const processBirth = stringValue(terminal.native_agent_process_birth);
209
+ if ((watch.anchor.native_process_uuid !== undefined && !processUuid) ||
210
+ (watch.anchor.native_process_birth !== undefined && !processBirth)) {
211
+ return "unavailable";
212
+ }
213
+ return (watch.anchor.native_process_uuid !== undefined &&
214
+ processUuid !== watch.anchor.native_process_uuid) || (watch.anchor.native_process_birth !== undefined &&
215
+ processBirth !== watch.anchor.native_process_birth)
216
+ ? "mismatch"
217
+ : "match";
218
+ }
219
+ catch {
220
+ return "unavailable";
221
+ }
222
+ }
223
+ export function terminalMatchesUserExplicitFallbackWatch(terminal, watch) {
224
+ try {
225
+ if (!isUserExplicitFallbackWatch(watch) ||
226
+ terminalAgent(terminal) !== watch.agent ||
227
+ requiredString(terminal.id, "terminal id") !==
228
+ watch.terminal.terminal_id ||
229
+ terminalWorkspace(terminal) !== watch.terminal.workspace ||
230
+ !isRecord(terminal.terminal_control) ||
231
+ !sameTerminalControlEvidenceIncarnation(terminal.terminal_control, watch.terminal.terminal_endpoint)) {
232
+ return false;
233
+ }
234
+ if (watch.anchor.schema ===
235
+ "agent-knock-knock/codex-user-explicit-fallback-watch-anchor") {
236
+ return requiredString(terminal.native_agent_process_uuid, "Codex process UUID") === watch.anchor.acceptance_anchor.process_uuid &&
237
+ requiredString(terminal.native_agent_process_birth, "Codex process birth") === watch.anchor.acceptance_anchor.process_birth;
238
+ }
239
+ return watch.anchor.schema ===
240
+ "agent-knock-knock/claude-user-explicit-fallback-watch-anchor" &&
241
+ positiveInteger(terminal.pid, "Claude PID") ===
242
+ watch.anchor.transcript_anchor.pid;
243
+ }
244
+ catch {
245
+ return false;
246
+ }
247
+ }
248
+ export function terminalWatchIdentity(terminal, bindingToken) {
249
+ const terminalControl = terminal.terminal_control;
250
+ return {
251
+ terminal_id: requiredString(terminal.id, "terminal id"),
252
+ terminal_endpoint: terminalControlEvidence(terminalControl),
253
+ workspace: terminalWorkspace(terminal),
254
+ binding_token: bindingToken
255
+ };
256
+ }
257
+ export function codexIdentity(terminal) {
258
+ if (!isRecord(terminal.native_agent_rollout)) {
259
+ throw new Error("Codex terminal has no exact rollout identity");
260
+ }
261
+ return {
262
+ sessionId: requiredString(terminal.native_agent_session_id, "Codex native thread id"),
263
+ processUuid: requiredString(terminal.native_agent_process_uuid, "Codex process UUID"),
264
+ processBirth: requiredString(terminal.native_agent_process_birth, "Codex process birth"),
265
+ rollout: {
266
+ fd: requiredString(terminal.native_agent_rollout.fd, "Codex rollout fd"),
267
+ device: requiredString(terminal.native_agent_rollout.device, "Codex rollout device"),
268
+ inode: requiredString(terminal.native_agent_rollout.inode, "Codex rollout inode"),
269
+ path: requiredString(terminal.native_agent_rollout.path, "Codex rollout path")
270
+ }
271
+ };
272
+ }
273
+ export function codexIdentityForWatch(watch) {
274
+ if (watch.agent !== "codex" ||
275
+ watch.anchor.schema !==
276
+ "agent-knock-knock/codex-human-started-active-task-anchor") {
277
+ throw new Error("terminal Watch has no Codex identity");
278
+ }
279
+ return {
280
+ sessionId: watch.anchor.native_thread_id,
281
+ processUuid: watch.anchor.process_uuid,
282
+ processBirth: watch.anchor.process_birth,
283
+ rollout: watch.anchor.rollout
284
+ };
285
+ }
286
+ export function terminalAgent(terminal) {
287
+ const agent = stringValue(terminal.agent);
288
+ if (agent !== "codex" && agent !== "claude") {
289
+ throw new Error("terminal Watch supports only Codex or Claude Code");
290
+ }
291
+ return agent;
292
+ }
293
+ export function terminalWorkspace(terminal) {
294
+ const workspace = requiredString(terminal.workspace ?? terminal.cwd, "terminal workspace");
295
+ if (!path.isAbsolute(workspace)) {
296
+ throw new Error("terminal workspace must be absolute");
297
+ }
298
+ return path.resolve(workspace);
299
+ }
300
+ export function requiredWatchId(value) {
301
+ const watchId = requiredString(value, "--watch");
302
+ if (!/^terminal-watch-[A-Za-z0-9._:-]+$/u.test(watchId)) {
303
+ throw new Error("--watch must be an exact Terminal Watch id");
304
+ }
305
+ return watchId;
306
+ }
307
+ export function requiredString(value, label) {
308
+ const result = stringValue(value);
309
+ if (!result || result.includes("\0")) {
310
+ throw new Error(`${label} is required`);
311
+ }
312
+ return result;
313
+ }
314
+ export function requiredSha256(value, label) {
315
+ const result = requiredString(value, label);
316
+ if (!/^[a-f0-9]{64}$/u.test(result)) {
317
+ throw new Error(`${label} must be exactly 64 lowercase ASCII hexadecimal characters`);
318
+ }
319
+ return result;
320
+ }
321
+ export function requiredTimestamp(value, label) {
322
+ const result = requiredString(value, label);
323
+ if (!Number.isFinite(Date.parse(result))) {
324
+ throw new Error(`${label} must be a valid timestamp`);
325
+ }
326
+ return result;
327
+ }
328
+ export function parseWatchInteractionResponse(value) {
329
+ const serialized = requiredString(value, "--response-json");
330
+ try {
331
+ const parsed = JSON.parse(serialized);
332
+ if (!isRecord(parsed)) {
333
+ throw new Error("response must be an object");
334
+ }
335
+ return parsed;
336
+ }
337
+ catch (error) {
338
+ throw new Error(`--response-json is invalid: ${safeDiagnostic(error)}`);
339
+ }
340
+ }
341
+ export function assertWatchControllerSession(watch, requestedValue) {
342
+ const requested = stringValue(requestedValue);
343
+ if (!requested || requested !== watch.openclaw_session) {
344
+ throw new Error(`terminal Watch ${watch.watch_id} belongs to a different controller session; no terminal input was sent`);
345
+ }
346
+ }
347
+ export function requiredExecutableWatchInteraction(watch, interactionId, expectedFingerprint) {
348
+ if (watch.status !== "active") {
349
+ throw new Error(`terminal Watch ${watch.watch_id} is ${watch.status}`);
350
+ }
351
+ const interaction = watch.current_interaction;
352
+ if (watch.interaction_policy !== "respond_when_exact" ||
353
+ !interaction ||
354
+ interaction.aggregate.state !== "pending" ||
355
+ interaction.projection.interaction_id !== interactionId ||
356
+ interaction.projection.prompt_fingerprint !== expectedFingerprint ||
357
+ interaction.projection.response_authority !== "executable" ||
358
+ !interaction.projection.capabilities.respond) {
359
+ throw new Error("terminal Watch has no matching executable interaction offer; refresh status");
360
+ }
361
+ return interaction;
362
+ }
363
+ export function positiveInteger(value, label) {
364
+ const result = Number(value);
365
+ if (!Number.isSafeInteger(result) || result <= 0) {
366
+ throw new Error(`${label} must be a positive integer`);
367
+ }
368
+ return result;
369
+ }
370
+ export function positiveMinutes(value, fallback) {
371
+ const result = value === undefined ? fallback : Number(value);
372
+ if (!Number.isFinite(result) || result <= 0) {
373
+ throw new Error("--hard-timeout-minutes must be a positive number");
374
+ }
375
+ return result;
376
+ }
377
+ export function sha256(value) {
378
+ return createHash("sha256").update(JSON.stringify(value)).digest("hex");
379
+ }
380
+ //# sourceMappingURL=terminal-watch-terminal-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-watch-terminal-identity.js","sourceRoot":"","sources":["../../src/terminal-watch-terminal-identity.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scotthuang/agent-knock-knock",
3
- "version": "0.13.16",
3
+ "version": "0.13.17",
4
4
  "description": "Control local Codex and Claude Code from OpenClaw or compatible controller Hosts through shared terminals.",
5
5
  "license": "MIT",
6
6
  "type": "module",