@scotthuang/agent-knock-knock 0.13.16 → 0.13.18

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 (184) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +4 -4
  3. package/dist/src/claude-terminal-agent-adapter.js +1 -1
  4. package/dist/src/claude-terminal-agent-adapter.js.map +1 -1
  5. package/dist/src/codex-app-server-interaction-client.js +68 -26
  6. package/dist/src/codex-app-server-interaction-client.js.map +1 -1
  7. package/dist/src/codex-app-server-read-client.js +52 -20
  8. package/dist/src/codex-app-server-read-client.js.map +1 -1
  9. package/dist/src/codex-astra-composer-proof.js +1 -1
  10. package/dist/src/codex-astra-composer-proof.js.map +1 -1
  11. package/dist/src/codex-async-question-adapter.js +14 -4
  12. package/dist/src/codex-async-question-adapter.js.map +1 -1
  13. package/dist/src/codex-lifecycle-compatibility.d.ts +1 -1
  14. package/dist/src/codex-lifecycle-compatibility.js +9 -3
  15. package/dist/src/codex-lifecycle-compatibility.js.map +1 -1
  16. package/dist/src/codex-open-rollout-inventory.d.ts +51 -0
  17. package/dist/src/codex-open-rollout-inventory.js +365 -0
  18. package/dist/src/codex-open-rollout-inventory.js.map +1 -0
  19. package/dist/src/codex-paginated-thread-binding.js +1 -1
  20. package/dist/src/codex-paginated-thread-binding.js.map +1 -1
  21. package/dist/src/codex-permission-surface.d.ts +1 -1
  22. package/dist/src/codex-permission-surface.js +1 -1
  23. package/dist/src/codex-permission-surface.js.map +1 -1
  24. package/dist/src/codex-rollout-bound-completion.d.ts +44 -0
  25. package/dist/src/codex-rollout-bound-completion.js +357 -0
  26. package/dist/src/codex-rollout-bound-completion.js.map +1 -0
  27. package/dist/src/codex-rollout-file.d.ts +15 -0
  28. package/dist/src/codex-rollout-file.js +98 -0
  29. package/dist/src/codex-rollout-file.js.map +1 -0
  30. package/dist/src/codex-rollout-human-task.d.ts +61 -0
  31. package/dist/src/codex-rollout-human-task.js +555 -0
  32. package/dist/src/codex-rollout-human-task.js.map +1 -0
  33. package/dist/src/codex-rollout-interaction-evidence.d.ts +48 -0
  34. package/dist/src/codex-rollout-interaction-evidence.js +521 -0
  35. package/dist/src/codex-rollout-interaction-evidence.js.map +1 -0
  36. package/dist/src/codex-rollout-inventory.d.ts +5 -0
  37. package/dist/src/codex-rollout-inventory.js +81 -0
  38. package/dist/src/codex-rollout-inventory.js.map +1 -0
  39. package/dist/src/codex-rollout-records.d.ts +49 -0
  40. package/dist/src/codex-rollout-records.js +298 -0
  41. package/dist/src/codex-rollout-records.js.map +1 -0
  42. package/dist/src/codex-sqlite-thread-query.d.ts +85 -0
  43. package/dist/src/codex-sqlite-thread-query.js +440 -0
  44. package/dist/src/codex-sqlite-thread-query.js.map +1 -0
  45. package/dist/src/codex-status-history-navigation.d.ts +1 -1
  46. package/dist/src/codex-status-history-navigation.js +1 -1
  47. package/dist/src/codex-status-history-navigation.js.map +1 -1
  48. package/dist/src/codex-store-adapter.d.ts +3 -50
  49. package/dist/src/codex-store-adapter.js +5 -796
  50. package/dist/src/codex-store-adapter.js.map +1 -1
  51. package/dist/src/codex-terminal-agent-adapter.js +4 -2
  52. package/dist/src/codex-terminal-agent-adapter.js.map +1 -1
  53. package/dist/src/native-thread-lifecycle-cli-adapter.d.ts +4 -134
  54. package/dist/src/native-thread-lifecycle-cli-adapter.js +19 -633
  55. package/dist/src/native-thread-lifecycle-cli-adapter.js.map +1 -1
  56. package/dist/src/native-thread-lifecycle-cli-contract.d.ts +138 -0
  57. package/dist/src/native-thread-lifecycle-cli-contract.js +2 -0
  58. package/dist/src/native-thread-lifecycle-cli-contract.js.map +1 -0
  59. package/dist/src/semantic-permission-control.js +33 -6
  60. package/dist/src/semantic-permission-control.js.map +1 -1
  61. package/dist/src/semantic-tool-descriptions.d.ts +26 -0
  62. package/dist/src/semantic-tool-descriptions.js +259 -0
  63. package/dist/src/semantic-tool-descriptions.js.map +1 -0
  64. package/dist/src/semantic-tool-runtime.js +45 -37
  65. package/dist/src/semantic-tool-runtime.js.map +1 -1
  66. package/dist/src/semantic-tool-schemas.js +134 -33
  67. package/dist/src/semantic-tool-schemas.js.map +1 -1
  68. package/dist/src/terminal-action-contracts.d.ts +4 -0
  69. package/dist/src/terminal-action-contracts.js +695 -0
  70. package/dist/src/terminal-action-contracts.js.map +1 -0
  71. package/dist/src/terminal-composer-classifier.d.ts +1 -1
  72. package/dist/src/terminal-composer-classifier.js +2 -2
  73. package/dist/src/terminal-composer-classifier.js.map +1 -1
  74. package/dist/src/terminal-interaction-response-bridge.js +1 -1
  75. package/dist/src/terminal-interaction-response-bridge.js.map +1 -1
  76. package/dist/src/terminal-list-renderer.d.ts +1 -2
  77. package/dist/src/terminal-list-renderer.js +8 -424
  78. package/dist/src/terminal-list-renderer.js.map +1 -1
  79. package/dist/src/terminal-model-control-action-policy.d.ts +1 -1
  80. package/dist/src/terminal-model-control-availability.d.ts +1 -1
  81. package/dist/src/terminal-model-control-availability.js +1 -1
  82. package/dist/src/terminal-model-control-availability.js.map +1 -1
  83. package/dist/src/terminal-model-control-cli-adapter.d.ts +34 -0
  84. package/dist/src/terminal-model-control-cli-adapter.js +669 -0
  85. package/dist/src/terminal-model-control-cli-adapter.js.map +1 -0
  86. package/dist/src/terminal-model-control-contract.d.ts +198 -0
  87. package/dist/src/terminal-model-control-contract.js +15 -0
  88. package/dist/src/terminal-model-control-contract.js.map +1 -0
  89. package/dist/src/terminal-model-control-input.d.ts +29 -0
  90. package/dist/src/terminal-model-control-input.js +86 -0
  91. package/dist/src/terminal-model-control-input.js.map +1 -0
  92. package/dist/src/terminal-model-control-profile.d.ts +5 -1
  93. package/dist/src/terminal-model-control-profile.js +21 -7
  94. package/dist/src/terminal-model-control-profile.js.map +1 -1
  95. package/dist/src/terminal-model-control-subject.d.ts +52 -0
  96. package/dist/src/terminal-model-control-subject.js +73 -0
  97. package/dist/src/terminal-model-control-subject.js.map +1 -1
  98. package/dist/src/terminal-model-control-surface.d.ts +82 -0
  99. package/dist/src/terminal-model-control-surface.js +688 -0
  100. package/dist/src/terminal-model-control-surface.js.map +1 -0
  101. package/dist/src/terminal-model-control.d.ts +6 -270
  102. package/dist/src/terminal-model-control.js +11 -988
  103. package/dist/src/terminal-model-control.js.map +1 -1
  104. package/dist/src/terminal-model-selection.d.ts +33 -0
  105. package/dist/src/terminal-model-selection.js +143 -0
  106. package/dist/src/terminal-model-selection.js.map +1 -0
  107. package/dist/src/terminal-monitor-application-service.js +38 -59
  108. package/dist/src/terminal-monitor-application-service.js.map +1 -1
  109. package/dist/src/terminal-monitor-attention-store.d.ts +65 -0
  110. package/dist/src/terminal-monitor-attention-store.js +518 -0
  111. package/dist/src/terminal-monitor-attention-store.js.map +1 -0
  112. package/dist/src/terminal-monitor-collateral-recovery.d.ts +12 -0
  113. package/dist/src/terminal-monitor-collateral-recovery.js +415 -0
  114. package/dist/src/terminal-monitor-collateral-recovery.js.map +1 -0
  115. package/dist/src/terminal-monitor-interaction-projection.d.ts +19 -0
  116. package/dist/src/terminal-monitor-interaction-projection.js +48 -0
  117. package/dist/src/terminal-monitor-interaction-projection.js.map +1 -0
  118. package/dist/src/terminal-monitor-startup-recovery.d.ts +15 -0
  119. package/dist/src/terminal-monitor-startup-recovery.js +767 -0
  120. package/dist/src/terminal-monitor-startup-recovery.js.map +1 -0
  121. package/dist/src/terminal-monitor-state-cli-adapter.d.ts +2 -104
  122. package/dist/src/terminal-monitor-state-cli-adapter.js +28 -1640
  123. package/dist/src/terminal-monitor-state-cli-adapter.js.map +1 -1
  124. package/dist/src/terminal-monitor-state-contract.d.ts +108 -0
  125. package/dist/src/terminal-monitor-state-contract.js +8 -0
  126. package/dist/src/terminal-monitor-state-contract.js.map +1 -0
  127. package/dist/src/terminal-native-inspection-bridge.d.ts +4 -153
  128. package/dist/src/terminal-native-inspection-bridge.js +7 -646
  129. package/dist/src/terminal-native-inspection-bridge.js.map +1 -1
  130. package/dist/src/terminal-native-inspection-contract.d.ts +128 -0
  131. package/dist/src/terminal-native-inspection-contract.js +38 -0
  132. package/dist/src/terminal-native-inspection-contract.js.map +1 -0
  133. package/dist/src/terminal-native-inspection-profile.d.ts +15 -0
  134. package/dist/src/terminal-native-inspection-profile.js +189 -0
  135. package/dist/src/terminal-native-inspection-profile.js.map +1 -0
  136. package/dist/src/terminal-native-inspection-proof.d.ts +62 -0
  137. package/dist/src/terminal-native-inspection-proof.js +362 -0
  138. package/dist/src/terminal-native-inspection-proof.js.map +1 -0
  139. package/dist/src/terminal-permission-control-bridge.js +1 -1
  140. package/dist/src/terminal-permission-control-bridge.js.map +1 -1
  141. package/dist/src/terminal-permission-control.js +5 -1
  142. package/dist/src/terminal-permission-control.js.map +1 -1
  143. package/dist/src/terminal-questionnaire-adapter.js +5 -2
  144. package/dist/src/terminal-questionnaire-adapter.js.map +1 -1
  145. package/dist/src/terminal-runtime-cli-adapter.d.ts +2 -1
  146. package/dist/src/terminal-runtime-cli-adapter.js +1 -1
  147. package/dist/src/terminal-runtime-cli-adapter.js.map +1 -1
  148. package/dist/src/terminal-submission-acceptance.d.ts +5 -148
  149. package/dist/src/terminal-submission-acceptance.js +21 -1845
  150. package/dist/src/terminal-submission-acceptance.js.map +1 -1
  151. package/dist/src/terminal-watch-anchor-capture.d.ts +9 -0
  152. package/dist/src/terminal-watch-anchor-capture.js +139 -0
  153. package/dist/src/terminal-watch-anchor-capture.js.map +1 -0
  154. package/dist/src/terminal-watch-cli-adapter.d.ts +3 -117
  155. package/dist/src/terminal-watch-cli-adapter.js +10 -1992
  156. package/dist/src/terminal-watch-cli-adapter.js.map +1 -1
  157. package/dist/src/terminal-watch-cli-contract.d.ts +117 -0
  158. package/dist/src/terminal-watch-cli-contract.js +2 -0
  159. package/dist/src/terminal-watch-cli-contract.js.map +1 -0
  160. package/dist/src/terminal-watch-fallback-observation.d.ts +15 -0
  161. package/dist/src/terminal-watch-fallback-observation.js +249 -0
  162. package/dist/src/terminal-watch-fallback-observation.js.map +1 -0
  163. package/dist/src/terminal-watch-interaction-observation.d.ts +26 -0
  164. package/dist/src/terminal-watch-interaction-observation.js +262 -0
  165. package/dist/src/terminal-watch-interaction-observation.js.map +1 -0
  166. package/dist/src/terminal-watch-observation-adapter.d.ts +4 -0
  167. package/dist/src/terminal-watch-observation-adapter.js +307 -0
  168. package/dist/src/terminal-watch-observation-adapter.js.map +1 -0
  169. package/dist/src/terminal-watch-observation-evidence.d.ts +25 -0
  170. package/dist/src/terminal-watch-observation-evidence.js +184 -0
  171. package/dist/src/terminal-watch-observation-evidence.js.map +1 -0
  172. package/dist/src/terminal-watch-response-authority.d.ts +6 -0
  173. package/dist/src/terminal-watch-response-authority.js +333 -0
  174. package/dist/src/terminal-watch-response-authority.js.map +1 -0
  175. package/dist/src/terminal-watch-response-cli-adapter.d.ts +3 -0
  176. package/dist/src/terminal-watch-response-cli-adapter.js +230 -0
  177. package/dist/src/terminal-watch-response-cli-adapter.js.map +1 -0
  178. package/dist/src/terminal-watch-terminal-identity.d.ts +39 -0
  179. package/dist/src/terminal-watch-terminal-identity.js +380 -0
  180. package/dist/src/terminal-watch-terminal-identity.js.map +1 -0
  181. package/docs/codex-0.160.0-compatibility.md +126 -0
  182. package/docs/codex-permissions.md +12 -1
  183. package/package.json +3 -2
  184. package/templates/openclaw-skills/agent-knock-knock/SKILL.md +3 -3
@@ -0,0 +1,230 @@
1
+ /** Watch interaction response transaction; retains terminal, Store, and Watch lock order. */
2
+ import { respondCodexPaginatedAsyncQuestion } from "./codex-paginated-async-response.js";
3
+ import { publicTerminalWatch, terminalWatchCapturedAgentVersion } from "./terminal-watch-presentation.js";
4
+ import { refreshPaginatedResponseForeground } from "./codex-paginated-watch.js";
5
+ import { respondCodexPaginatedBlockingQuestion } from "./codex-paginated-questionnaire-runtime.js";
6
+ import { TerminalInteractionDispatchReservedError, TerminalInteractionInputNotStartedError } from "./terminal-agent-bridge.js";
7
+ import { hashTerminalInteractionResponse, reduceTerminalInteractionAggregate } from "./terminal-interaction-core.js";
8
+ import { validateTerminalInteractionSubjectResponse } from "./terminal-interaction-protocol.js";
9
+ import { executeTerminalInteractionResponseTransaction } from "./terminal-interaction-response-transaction.js";
10
+ import { terminalInteractionRuntimeForWatch } from "./terminal-watch-interaction-runtime.js";
11
+ import { consumeWatchInteractionResponse, settleWatchInteractionResponseFailure } from "./terminal-watch-interaction-response-store.js";
12
+ import { createTerminalWatchStore, terminalWatchRevision } from "./terminal-watch-store.js";
13
+ import { exactTerminalForWatch, terminalControlForWatch, terminalMatchesWatch, requiredWatchId, requiredString, requiredSha256, requiredTimestamp, parseWatchInteractionResponse, assertWatchControllerSession, requiredExecutableWatchInteraction, sha256 } from "./terminal-watch-terminal-identity.js";
14
+ import { terminalWatchResponseDecision } from "./terminal-watch-response-authority.js";
15
+ export function createTerminalWatchInteractionResponder(dependencies, serviceFor) {
16
+ return async function runRespondInteraction(options) {
17
+ const watchId = requiredWatchId(options.watch);
18
+ const interactionId = requiredString(options.interaction, "--interaction is required");
19
+ const expectedFingerprint = requiredSha256(options.expectedInteractionFingerprint, "interaction prompt fingerprint");
20
+ const expectedExpiresAt = requiredTimestamp(options.expectedInteractionExpiresAt, "--expected-interaction-expires-at");
21
+ const responseValue = parseWatchInteractionResponse(options.responseJson);
22
+ const storeDir = dependencies.storeDirFromOptions(options);
23
+ const repository = createTerminalWatchStore(storeDir, {
24
+ acquire: dependencies.acquireFileLock
25
+ });
26
+ const service = serviceFor(options);
27
+ const displayed = await service.reconcile(watchId);
28
+ assertWatchControllerSession(displayed, options.openclawSession);
29
+ const displayedInteraction = requiredExecutableWatchInteraction(displayed, interactionId, expectedFingerprint);
30
+ const response = validateTerminalInteractionSubjectResponse(responseValue, displayedInteraction.projection, { now: dependencies.now(), allowExpiredForLiveRecapture: true });
31
+ if (response.subject.kind !== "terminal_watch" ||
32
+ response.subject.watch_id !== watchId) {
33
+ throw new Error("--response-json subject watch_id does not match --watch");
34
+ }
35
+ const exact = await exactTerminalForWatch(displayed.terminal.terminal_id, options, dependencies);
36
+ if (!terminalMatchesWatch(exact.rawTerminal, displayed)) {
37
+ throw new Error("terminal Watch identity changed before interaction response; refresh status");
38
+ }
39
+ const terminalControl = terminalControlForWatch(exact.rawTerminal);
40
+ const releaseTerminal = dependencies.acquireTerminalLock(storeDir, terminalControl);
41
+ try {
42
+ const withWriterLease = dependencies.withStoreWriterLeaseAsync ??
43
+ (async (_storeDir, operation) => operation());
44
+ await withWriterLease(storeDir, async () => {
45
+ let current = repository.load(watchId);
46
+ assertWatchControllerSession(current, options.openclawSession);
47
+ const executableInteraction = requiredExecutableWatchInteraction(current, interactionId, expectedFingerprint);
48
+ const decision = terminalWatchResponseDecision(current, exact.rawTerminal, executableInteraction.projection.surface_id, executableInteraction.projection.prompt_fingerprint, options, dependencies);
49
+ if (!decision.executable || decision.suppress) {
50
+ throw new Error("a higher-priority terminal interaction responder owns this live questionnaire; refresh status");
51
+ }
52
+ const version = terminalWatchCapturedAgentVersion(current) ??
53
+ requiredString(exact.rawTerminal.agent_version, "running coding-agent version");
54
+ const runtime = terminalInteractionRuntimeForWatch({
55
+ watch: current,
56
+ rawTerminal: exact.rawTerminal,
57
+ checkpoint: current.observation_checkpoint,
58
+ version,
59
+ terminalTarget: terminalControl.target,
60
+ responseAuthority: "executable"
61
+ });
62
+ const bridge = dependencies.createBridge?.(options);
63
+ if (!bridge) {
64
+ throw new Error("terminal interaction bridge is unavailable");
65
+ }
66
+ if (runtime.codexPaginatedThread && executableInteraction.projection.kind === "async_question") {
67
+ await refreshPaginatedResponseForeground(bridge, terminalControl, runtime, dependencies.now);
68
+ }
69
+ const attemptId = dependencies.randomUUID();
70
+ const responseHash = hashTerminalInteractionResponse(response);
71
+ const reservation = { attemptId, responseHash };
72
+ const result = await executeTerminalInteractionResponseTransaction({
73
+ reservationFailureFence: "confirmed",
74
+ dispatch: (hooks) => "schema" in current.observation_checkpoint &&
75
+ current.observation_checkpoint.schema === "agent-knock-knock/codex-paginated-task-checkpoint" &&
76
+ executableInteraction.projection.kind === "questionnaire"
77
+ ? respondCodexPaginatedBlockingQuestion({
78
+ watch: current, checkpoint: current.observation_checkpoint, terminalControl,
79
+ response, expectedFingerprint, now: dependencies.now,
80
+ authorize: hooks.authorize, beforeDispatch: hooks.beforeDispatch,
81
+ persistDraft: (draft) => {
82
+ current = repository.withWriterLease((scope) => scope.withWatchLock(watchId, () => {
83
+ const latest = scope.load(watchId);
84
+ const checkpoint = latest.observation_checkpoint;
85
+ if (!("schema" in checkpoint) || checkpoint.schema !== "agent-knock-knock/codex-paginated-task-checkpoint") {
86
+ throw new Error("Codex blocking question checkpoint changed");
87
+ }
88
+ const nextCheckpoint = { ...checkpoint };
89
+ if (draft)
90
+ nextCheckpoint.blocking_question_draft = draft;
91
+ else
92
+ delete nextCheckpoint.blocking_question_draft;
93
+ return scope.save({ ...latest,
94
+ observation_checkpoint: nextCheckpoint,
95
+ updated_at: dependencies.now().toISOString()
96
+ }, { expectedRevision: terminalWatchRevision(latest) });
97
+ }));
98
+ }
99
+ })
100
+ : runtime.codexPaginatedThread && executableInteraction.projection.kind === "async_question"
101
+ ? respondCodexPaginatedAsyncQuestion({
102
+ bridge, terminalControl, terminalEvidence: current.terminal.terminal_endpoint,
103
+ runtime, response, now: dependencies.now,
104
+ options: { agentVersion: version, expectedFingerprint, expectedExpiresAt,
105
+ scrollbackLines: Number(options.scrollbackLines ?? 120), runtime,
106
+ authorize: hooks.authorize, beforeDispatch: hooks.beforeDispatch }
107
+ })
108
+ : bridge.respondInteraction(current.agent, terminalControl, response, {
109
+ agentVersion: version,
110
+ expectedFingerprint,
111
+ expectedExpiresAt,
112
+ scrollbackLines: Number(options.scrollbackLines ?? 120),
113
+ runtime,
114
+ authorize: hooks.authorize,
115
+ beforeDispatch: hooks.beforeDispatch
116
+ }),
117
+ authorize: ({ projection, fingerprint }) => {
118
+ const latest = repository.load(watchId);
119
+ const interaction = requiredExecutableWatchInteraction(latest, interactionId, expectedFingerprint);
120
+ const latestDecision = terminalWatchResponseDecision(latest, exact.rawTerminal, interaction.projection.surface_id, interaction.projection.prompt_fingerprint, options, dependencies);
121
+ return projection.interaction_id === interactionId &&
122
+ fingerprint === expectedFingerprint &&
123
+ interaction.projection.subject.kind === "terminal_watch" &&
124
+ projection.version === 2 &&
125
+ projection.subject.kind === "terminal_watch" &&
126
+ projection.subject.watch_id === watchId &&
127
+ latestDecision.executable && !latestDecision.suppress
128
+ ? { approved: true }
129
+ : {
130
+ approved: false,
131
+ reason: "terminal Watch interaction authority changed before response"
132
+ };
133
+ },
134
+ createReservation: () => reservation,
135
+ reserve: ({ projection, fingerprint }, receipt, confirm) => {
136
+ current = repository.withWriterLease((scope) => scope.withWatchLock(watchId, () => {
137
+ const latest = scope.load(watchId);
138
+ const interaction = requiredExecutableWatchInteraction(latest, interactionId, expectedFingerprint);
139
+ if (projection.interaction_id !== interactionId ||
140
+ fingerprint !== expectedFingerprint ||
141
+ interaction.aggregate.state !== "pending") {
142
+ throw new Error("terminal Watch interaction authority changed before dispatch");
143
+ }
144
+ const dispatchDecision = terminalWatchResponseDecision(latest, exact.rawTerminal, interaction.projection.surface_id, interaction.projection.prompt_fingerprint, options, dependencies);
145
+ if (!dispatchDecision.executable || dispatchDecision.suppress) {
146
+ throw new TerminalInteractionInputNotStartedError("terminal Watch interaction ownership changed before dispatch");
147
+ }
148
+ const reservedAt = dependencies.now().toISOString();
149
+ const aggregate = reduceTerminalInteractionAggregate(interaction.aggregate, {
150
+ type: "reserve",
151
+ attempt_id: receipt.attemptId,
152
+ response_hash: receipt.responseHash,
153
+ at: reservedAt
154
+ });
155
+ const saved = scope.save({
156
+ ...latest,
157
+ current_interaction: {
158
+ projection: interaction.projection,
159
+ aggregate
160
+ },
161
+ updated_at: reservedAt
162
+ }, { expectedRevision: terminalWatchRevision(latest) });
163
+ // Match the predecessor's commit boundary: a later lock
164
+ // release failure must still settle this durable receipt.
165
+ confirm();
166
+ return saved;
167
+ }));
168
+ },
169
+ release: (receipt) => {
170
+ current = settleWatchInteractionResponseFailure(repository, {
171
+ watchId,
172
+ interactionId,
173
+ reservation: receipt,
174
+ state: "release",
175
+ now: dependencies.now
176
+ });
177
+ },
178
+ releaseFailure: (_receipt, _error, releaseError) => releaseError,
179
+ markUncertain: (receipt) => {
180
+ current = settleWatchInteractionResponseFailure(repository, {
181
+ watchId,
182
+ interactionId,
183
+ reservation: receipt,
184
+ state: "response_uncertain",
185
+ now: dependencies.now
186
+ });
187
+ },
188
+ consume: (receipt) => {
189
+ current = consumeWatchInteractionResponse(repository, {
190
+ watchId,
191
+ interactionId,
192
+ reservation: receipt,
193
+ now: dependencies.now,
194
+ notificationFingerprint: sha256
195
+ });
196
+ },
197
+ responded: (execution) => execution.responded,
198
+ isInputNotStarted: (error) => error instanceof TerminalInteractionInputNotStartedError,
199
+ duplicateReservationError: () => new Error("terminal Watch interaction response was already reserved"),
200
+ inputNotStartedError: (error) => error,
201
+ missingReservationError: () => new TerminalInteractionDispatchReservedError("reservation_uncertain", "terminal Watch response was dispatched without a durable reservation")
202
+ });
203
+ const execution = result.execution;
204
+ if (result.state === "blocked") {
205
+ dependencies.printJson({
206
+ watch: publicTerminalWatch(current, [], true),
207
+ interaction_id: interactionId,
208
+ responded: false,
209
+ blocked: execution.blocked,
210
+ reason: execution.reason
211
+ });
212
+ return;
213
+ }
214
+ dependencies.printJson({
215
+ watch: publicTerminalWatch(current, [], true),
216
+ interaction_id: interactionId,
217
+ responded: true,
218
+ blocked: false,
219
+ question_id: execution.questionId,
220
+ response_kind: execution.responseKind,
221
+ outcome: execution.outcome
222
+ });
223
+ });
224
+ }
225
+ finally {
226
+ releaseTerminal();
227
+ }
228
+ };
229
+ }
230
+ //# sourceMappingURL=terminal-watch-response-cli-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-watch-response-cli-adapter.js","sourceRoot":"","sources":["../../src/terminal-watch-response-cli-adapter.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,OAAO,EAAE,kCAAkC,EAAE,MAAM,qCAAqC,CAAC;AACzF,OAAO,EACL,mBAAmB,EACnB,iCAAiC,EAClC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,qCAAqC,EAAE,MAAM,4CAA4C,CAAC;AACnG,OAAO,EACL,wCAAwC,EACxC,uCAAuC,EAIxC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,+BAA+B,EAC/B,kCAAkC,EACnC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,0CAA0C,EAAE,MAAM,oCAAoC,CAAC;AAChG,OAAO,EACL,6CAA6C,EAC9C,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAC;AAC7F,OAAO,EACL,+BAA+B,EAC/B,qCAAqC,EAEtC,MAAM,gDAAgD,CAAC;AAExD,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAK5F,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,6BAA6B,EAC7B,4BAA4B,EAC5B,kCAAkC,EAClC,MAAM,EACP,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AAEvF,MAAM,UAAU,uCAAuC,CACrD,YAA0C,EAC1C,UAAsE;IAEtE,OAAO,KAAK,UAAU,qBAAqB,CACzC,OAAgC;QAEhC,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,cAAc,CAClC,OAAO,CAAC,WAAW,EACnB,2BAA2B,CAC5B,CAAC;QACF,MAAM,mBAAmB,GAAG,cAAc,CACxC,OAAO,CAAC,8BAA8B,EACtC,gCAAgC,CACjC,CAAC;QACF,MAAM,iBAAiB,GAAG,iBAAiB,CACzC,OAAO,CAAC,4BAA4B,EACpC,mCAAmC,CACpC,CAAC;QACF,MAAM,aAAa,GAAG,6BAA6B,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,wBAAwB,CAAC,QAAQ,EAAE;YACpD,OAAO,EAAE,YAAY,CAAC,eAAe;SACtC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACnD,4BAA4B,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QACjE,MAAM,oBAAoB,GAAG,kCAAkC,CAC7D,SAAS,EACT,aAAa,EACb,mBAAmB,CACpB,CAAC;QACF,MAAM,QAAQ,GAAG,0CAA0C,CACzD,aAAa,EACb,oBAAoB,CAAC,UAAU,EAC/B,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,EAAE,4BAA4B,EAAE,IAAI,EAAE,CAChE,CAAC;QACF,IACE,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,gBAAgB;YAC1C,QAAQ,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,EACrC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,qBAAqB,CACvC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAC9B,OAAO,EACP,YAAY,CACb,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;QACJ,CAAC;QACD,MAAM,eAAe,GAAG,uBAAuB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnE,MAAM,eAAe,GAAG,YAAY,CAAC,mBAAmB,CACtD,QAAQ,EACR,eAAe,CAChB,CAAC;QACF,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,YAAY,CAAC,yBAAyB;gBAC5D,CAAC,KAAK,EACJ,SAAiB,EACjB,SAAgC,EACf,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;YACrC,MAAM,eAAe,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACzC,IAAI,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvC,4BAA4B,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;gBAC/D,MAAM,qBAAqB,GAAG,kCAAkC,CAC9D,OAAO,EACP,aAAa,EACb,mBAAmB,CACpB,CAAC;gBACF,MAAM,QAAQ,GAAG,6BAA6B,CAC5C,OAAO,EACP,KAAK,CAAC,WAAW,EACjB,qBAAqB,CAAC,UAAU,CAAC,UAAU,EAC3C,qBAAqB,CAAC,UAAU,CAAC,kBAAkB,EACnD,OAAO,EACP,YAAY,CACb,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBAC9C,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;gBACJ,CAAC;gBACD,MAAM,OAAO,GAAG,iCAAiC,CAAC,OAAO,CAAC;oBACxD,cAAc,CACZ,KAAK,CAAC,WAAW,CAAC,aAAa,EAC/B,8BAA8B,CAC/B,CAAC;gBACJ,MAAM,OAAO,GAAG,kCAAkC,CAAC;oBACjD,KAAK,EAAE,OAAO;oBACd,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,UAAU,EAAE,OAAO,CAAC,sBAAsB;oBAC1C,OAAO;oBACP,cAAc,EAAE,eAAe,CAAC,MAAM;oBACtC,iBAAiB,EAAE,YAAY;iBAChC,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC;gBACpD,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBAChE,CAAC;gBACD,IAAI,OAAO,CAAC,oBAAoB,IAAI,qBAAqB,CAAC,UAAU,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;oBAC/F,MAAM,kCAAkC,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC/F,CAAC;gBACD,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC;gBAC5C,MAAM,YAAY,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;gBAC/D,MAAM,WAAW,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAG,MAAM,6CAA6C,CAKhE;oBACA,uBAAuB,EAAE,WAAW;oBACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,IAAI,OAAO,CAAC,sBAAsB;wBAC3D,OAAO,CAAC,sBAAsB,CAAC,MAAM,KAAK,mDAAmD;wBAC7F,qBAAqB,CAAC,UAAU,CAAC,IAAI,KAAK,eAAe;wBAC3D,CAAC,CAAC,qCAAqC,CAAC;4BACpC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,sBAAsB,EAAE,eAAe;4BAC3E,QAAQ,EAAE,mBAAmB,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG;4BACpD,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc;4BAChE,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;gCACtB,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE;oCAChF,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oCACnC,MAAM,UAAU,GAAG,MAAM,CAAC,sBAAsB,CAAC;oCACjD,IAAI,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,mDAAmD,EAAE,CAAC;wCAC3G,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;oCAChE,CAAC;oCACD,MAAM,cAAc,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;oCACzC,IAAI,KAAK;wCAAE,cAAc,CAAC,uBAAuB,GAAG,KAAK,CAAC;;wCACrD,OAAO,cAAc,CAAC,uBAAuB,CAAC;oCACnD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM;wCAC3B,sBAAsB,EAAE,cAAc;wCACtC,UAAU,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;qCAC7C,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gCAC1D,CAAC,CAAC,CAAC,CAAC;4BACN,CAAC;yBACF,CAAC;wBACJ,CAAC,CAAC,OAAO,CAAC,oBAAoB,IAAI,qBAAqB,CAAC,UAAU,CAAC,IAAI,KAAK,gBAAgB;4BAC1F,CAAC,CAAC,kCAAkC,CAAC;gCACjC,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gCAC7E,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG;gCACxC,OAAO,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB;oCACtE,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,IAAI,GAAG,CAAC,EAAE,OAAO;oCAChE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE;6BACrE,CAAC;4BACN,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAC3B,OAAO,CAAC,KAAK,EACb,eAAe,EACf,QAAQ,EACR;gCACE,YAAY,EAAE,OAAO;gCACrB,mBAAmB;gCACnB,iBAAiB;gCACjB,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,IAAI,GAAG,CAAC;gCACvD,OAAO;gCACP,SAAS,EAAE,KAAK,CAAC,SAAS;gCAC1B,cAAc,EAAE,KAAK,CAAC,cAAc;6BACrC,CACF;oBACD,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE;wBACzC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACxC,MAAM,WAAW,GAAG,kCAAkC,CACpD,MAAM,EACN,aAAa,EACb,mBAAmB,CACpB,CAAC;wBACF,MAAM,cAAc,GAAG,6BAA6B,CAClD,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,WAAW,CAAC,UAAU,CAAC,UAAU,EACjC,WAAW,CAAC,UAAU,CAAC,kBAAkB,EACzC,OAAO,EACP,YAAY,CACb,CAAC;wBACF,OAAO,UAAU,CAAC,cAAc,KAAK,aAAa;4BAC9C,WAAW,KAAK,mBAAmB;4BACnC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,gBAAgB;4BACxD,UAAU,CAAC,OAAO,KAAK,CAAC;4BACxB,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,gBAAgB;4BAC5C,UAAU,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;4BACvC,cAAc,CAAC,UAAU,IAAI,CAAC,cAAc,CAAC,QAAQ;4BACvD,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;4BACpB,CAAC,CAAC;gCACE,QAAQ,EAAE,KAAK;gCACf,MAAM,EACJ,8DAA8D;6BACjE,CAAC;oBACR,CAAC;oBACD,iBAAiB,EAAE,GAAG,EAAE,CAAC,WAAW;oBACpC,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;wBACzD,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7C,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE;4BAChC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACnC,MAAM,WAAW,GAAG,kCAAkC,CACpD,MAAM,EACN,aAAa,EACb,mBAAmB,CACpB,CAAC;4BACF,IACE,UAAU,CAAC,cAAc,KAAK,aAAa;gCAC3C,WAAW,KAAK,mBAAmB;gCACnC,WAAW,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS,EACzC,CAAC;gCACD,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;4BACJ,CAAC;4BACD,MAAM,gBAAgB,GAAG,6BAA6B,CACpD,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,WAAW,CAAC,UAAU,CAAC,UAAU,EACjC,WAAW,CAAC,UAAU,CAAC,kBAAkB,EACzC,OAAO,EACP,YAAY,CACb,CAAC;4BACF,IAAI,CAAC,gBAAgB,CAAC,UAAU,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC;gCAC9D,MAAM,IAAI,uCAAuC,CAC/C,8DAA8D,CAC/D,CAAC;4BACJ,CAAC;4BACD,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;4BACpD,MAAM,SAAS,GAAG,kCAAkC,CAClD,WAAW,CAAC,SAAS,EACrB;gCACE,IAAI,EAAE,SAAS;gCACf,UAAU,EAAE,OAAO,CAAC,SAAS;gCAC7B,aAAa,EAAE,OAAO,CAAC,YAAY;gCACnC,EAAE,EAAE,UAAU;6BACf,CACF,CAAC;4BACF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;gCACvB,GAAG,MAAM;gCACT,mBAAmB,EAAE;oCACnB,UAAU,EAAE,WAAW,CAAC,UAAU;oCAClC,SAAS;iCACV;gCACD,UAAU,EAAE,UAAU;6BACvB,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;4BACxD,wDAAwD;4BACxD,0DAA0D;4BAC1D,OAAO,EAAE,CAAC;4BACV,OAAO,KAAK,CAAC;wBACf,CAAC,CAAC,CAAC,CAAC;oBACR,CAAC;oBACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;wBACnB,OAAO,GAAG,qCAAqC,CAC7C,UAAU,EACV;4BACE,OAAO;4BACP,aAAa;4BACb,WAAW,EAAE,OAAO;4BACpB,KAAK,EAAE,SAAS;4BAChB,GAAG,EAAE,YAAY,CAAC,GAAG;yBACtB,CACF,CAAC;oBACJ,CAAC;oBACD,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY;oBAChE,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE;wBACzB,OAAO,GAAG,qCAAqC,CAC7C,UAAU,EACV;4BACE,OAAO;4BACP,aAAa;4BACb,WAAW,EAAE,OAAO;4BACpB,KAAK,EAAE,oBAAoB;4BAC3B,GAAG,EAAE,YAAY,CAAC,GAAG;yBACtB,CACF,CAAC;oBACJ,CAAC;oBACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;wBACnB,OAAO,GAAG,+BAA+B,CACvC,UAAU,EACV;4BACE,OAAO;4BACP,aAAa;4BACb,WAAW,EAAE,OAAO;4BACpB,GAAG,EAAE,YAAY,CAAC,GAAG;4BACrB,uBAAuB,EAAE,MAAM;yBAChC,CACF,CAAC;oBACJ,CAAC;oBACD,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS;oBAC7C,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAC3B,KAAK,YAAY,uCAAuC;oBAC1D,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,CACxC,0DAA0D,CAC3D;oBACD,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;oBACtC,uBAAuB,EAAE,GAAG,EAAE,CAC5B,IAAI,wCAAwC,CAC1C,uBAAuB,EACvB,sEAAsE,CACvE;iBACJ,CAAC,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;gBACnC,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC/B,YAAY,CAAC,SAAS,CAAC;wBACrB,KAAK,EAAE,mBAAmB,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC;wBAC7C,cAAc,EAAE,aAAa;wBAC7B,SAAS,EAAE,KAAK;wBAChB,OAAO,EAAE,SAAS,CAAC,OAAO;wBAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;qBACzB,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBACD,YAAY,CAAC,SAAS,CAAC;oBACrB,KAAK,EAAE,mBAAmB,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC;oBAC7C,cAAc,EAAE,aAAa;oBAC7B,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,SAAS,CAAC,UAAU;oBACjC,aAAa,EAAE,SAAS,CAAC,YAAY;oBACrC,OAAO,EAAE,SAAS,CAAC,OAAO;iBAC3B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,eAAe,EAAE,CAAC;QACpB,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { ExecutorKind } from "./executors.js";
2
+ import type { CodexRolloutAcceptanceIdentity } from "./terminal-submission-acceptance.js";
3
+ import { type TerminalControlRef } from "./terminal-control-ref.js";
4
+ import { type TerminalWatch, type TerminalWatchAnchor, type TerminalWatchCurrentInteraction, type TerminalWatchTerminalIdentity, type TerminalActivityState } from "./terminal-watch-store.js";
5
+ import type { TerminalWatchCliOptions, UserExplicitFallbackWatchTarget, PreparedUserExplicitFallbackWatch, ExactTerminalWatchObservation, TerminalWatchCliDependencies } from "./terminal-watch-cli-contract.js";
6
+ export declare function assertSameUserExplicitFallbackTerminal(expected: UserExplicitFallbackWatchTarget, observed: Record<string, unknown>): void;
7
+ export declare function assertPreparedFallbackTerminal(prepared: PreparedUserExplicitFallbackWatch, observed: Record<string, unknown>): void;
8
+ export declare function exactTerminalForWatch(terminalId: string, options: TerminalWatchCliOptions, dependencies: TerminalWatchCliDependencies): Promise<Extract<ExactTerminalWatchObservation, {
9
+ state: "available";
10
+ }>>;
11
+ export declare function bestEffortBindingTokenForWatch(terminal: Record<string, unknown>): {
12
+ token: string;
13
+ warning?: string;
14
+ };
15
+ export declare function terminalActivityState(terminal: Record<string, unknown>): TerminalActivityState;
16
+ export declare function sameManualWatchTarget(watch: TerminalWatch, agent: ExecutorKind, terminal: TerminalWatchTerminalIdentity, anchor: TerminalWatchAnchor): boolean;
17
+ export declare function safeDiagnostic(error: unknown): string;
18
+ export declare function terminalControlForWatch(terminal: Record<string, unknown>): TerminalControlRef;
19
+ export declare function terminalWatchCandidateMatchesLiveContext(watch: TerminalWatch, terminal: Record<string, unknown>): boolean;
20
+ export declare function currentTerminalForWatch(watch: TerminalWatch, options: TerminalWatchCliOptions, dependencies: TerminalWatchCliDependencies): Promise<ExactTerminalWatchObservation>;
21
+ export declare function terminalMatchesWatch(terminal: Record<string, unknown>, watch: TerminalWatch): boolean;
22
+ export type TerminalActivityWatchIdentityMatch = "match" | "mismatch" | "unavailable";
23
+ export declare function terminalActivityWatchIdentityMatch(terminal: Record<string, unknown>, watch: TerminalWatch): TerminalActivityWatchIdentityMatch;
24
+ export declare function terminalMatchesUserExplicitFallbackWatch(terminal: Record<string, unknown>, watch: TerminalWatch): boolean;
25
+ export declare function terminalWatchIdentity(terminal: Record<string, unknown>, bindingToken: string): TerminalWatchTerminalIdentity;
26
+ export declare function codexIdentity(terminal: Record<string, unknown>): CodexRolloutAcceptanceIdentity;
27
+ export declare function codexIdentityForWatch(watch: TerminalWatch): CodexRolloutAcceptanceIdentity;
28
+ export declare function terminalAgent(terminal: Record<string, unknown>): ExecutorKind;
29
+ export declare function terminalWorkspace(terminal: Record<string, unknown>): string;
30
+ export declare function requiredWatchId(value: unknown): string;
31
+ export declare function requiredString(value: unknown, label: string): string;
32
+ export declare function requiredSha256(value: unknown, label: string): string;
33
+ export declare function requiredTimestamp(value: unknown, label: string): string;
34
+ export declare function parseWatchInteractionResponse(value: unknown): unknown;
35
+ export declare function assertWatchControllerSession(watch: TerminalWatch, requestedValue: unknown): void;
36
+ export declare function requiredExecutableWatchInteraction(watch: TerminalWatch, interactionId: string, expectedFingerprint: string): TerminalWatchCurrentInteraction;
37
+ export declare function positiveInteger(value: unknown, label: string): number;
38
+ export declare function positiveMinutes(value: unknown, fallback: number): number;
39
+ export declare function sha256(value: unknown): string;