@scotthuang/agent-knock-knock 0.12.32 → 0.12.34

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 (38) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/src/callback-cli-adapter.d.ts +2 -1
  3. package/dist/src/callback-cli-adapter.js +1 -0
  4. package/dist/src/callback-cli-adapter.js.map +1 -1
  5. package/dist/src/callback-outbox-policy.d.ts +12 -1
  6. package/dist/src/callback-outbox-policy.js +51 -0
  7. package/dist/src/callback-outbox-policy.js.map +1 -1
  8. package/dist/src/callback-outbox-service.d.ts +19 -0
  9. package/dist/src/callback-outbox-service.js +63 -0
  10. package/dist/src/callback-outbox-service.js.map +1 -1
  11. package/dist/src/openclaw-managed-callback-cli-adapter.d.ts +2 -0
  12. package/dist/src/openclaw-managed-callback-cli-adapter.js +9 -1
  13. package/dist/src/openclaw-managed-callback-cli-adapter.js.map +1 -1
  14. package/dist/src/openclaw-plugin-callback-adapter.js +45 -20
  15. package/dist/src/openclaw-plugin-callback-adapter.js.map +1 -1
  16. package/dist/src/openclaw-plugin-command-adapter.js +1 -1
  17. package/dist/src/openclaw-plugin-command-adapter.js.map +1 -1
  18. package/dist/src/openclaw-plugin-schemas.d.ts +34 -62
  19. package/dist/src/openclaw-plugin-schemas.js +28 -64
  20. package/dist/src/openclaw-plugin-schemas.js.map +1 -1
  21. package/dist/src/terminal-agent-bridge.d.ts +19 -0
  22. package/dist/src/terminal-agent-bridge.js +61 -11
  23. package/dist/src/terminal-agent-bridge.js.map +1 -1
  24. package/dist/src/terminal-interaction-cli-adapter.js +138 -15
  25. package/dist/src/terminal-interaction-cli-adapter.js.map +1 -1
  26. package/dist/src/terminal-monitor-application-service.d.ts +22 -0
  27. package/dist/src/terminal-monitor-application-service.js +161 -1
  28. package/dist/src/terminal-monitor-application-service.js.map +1 -1
  29. package/dist/src/terminal-monitor-cli-adapter.d.ts +37 -1
  30. package/dist/src/terminal-monitor-cli-adapter.js +88 -0
  31. package/dist/src/terminal-monitor-cli-adapter.js.map +1 -1
  32. package/dist/src/terminal-monitor-state-cli-adapter.d.ts +1 -1
  33. package/dist/src/terminal-monitor-state-cli-adapter.js +235 -1
  34. package/dist/src/terminal-monitor-state-cli-adapter.js.map +1 -1
  35. package/dist/src/terminal-questionnaire-adapter.js +66 -15
  36. package/dist/src/terminal-questionnaire-adapter.js.map +1 -1
  37. package/package.json +1 -1
  38. package/templates/openclaw-skills/agent-knock-knock/SKILL.md +1 -1
@@ -1,7 +1,8 @@
1
1
  import { createHash, randomUUID } from "node:crypto";
2
2
  import path from "node:path";
3
+ import { supersedeMatchingInteractionCallbackDelivery } from "./callback-outbox-policy.js";
3
4
  import { executorForConversation, turnIdForConversation } from "./protocol.js";
4
- import { TerminalInteractionDispatchReservedError } from "./terminal-agent-bridge.js";
5
+ import { TerminalInteractionDispatchReservedError, TerminalInteractionInputNotStartedError } from "./terminal-agent-bridge.js";
5
6
  import { isRecord, nonBlankString } from "./value-guards.js";
6
7
  export function createTerminalInteractionCliAdapter(dependencies) {
7
8
  return Object.freeze({
@@ -84,7 +85,9 @@ async function runRespondInteraction(dependencies, options) {
84
85
  const responseSha256 = createHash("sha256")
85
86
  .update(JSON.stringify(response), "utf8")
86
87
  .digest("hex");
87
- let reserved = false;
88
+ let reservationWriteStarted = false;
89
+ let reservationConfirmed = false;
90
+ let reservationAttemptId;
88
91
  let execution;
89
92
  try {
90
93
  execution = await bridge.respondInteraction(agent, currentControl, response, {
@@ -112,15 +115,11 @@ async function runRespondInteraction(dependencies, options) {
112
115
  return { approved: true };
113
116
  },
114
117
  beforeDispatch: ({ projection, fingerprint, terminalControl }) => {
115
- if (reserved) {
118
+ if (reservationWriteStarted) {
116
119
  throw new Error("terminal interaction response dispatch was already reserved");
117
120
  }
118
121
  const latest = dependencies.repository.loadState(loaded.statePath);
119
122
  current = latest;
120
- // Entering this hook consumes the caller's one-shot authority.
121
- // Any exception from here is conservatively persisted as
122
- // uncertain even when the provider has not yet received input.
123
- reserved = true;
124
123
  const latestTakeover = takeoverFor(latest);
125
124
  const latestControl = dependencies.selection.terminalControlFromTakeover(latestTakeover);
126
125
  if (turnIdForConversation(latest) !== turnSelector ||
@@ -128,8 +127,8 @@ async function runRespondInteraction(dependencies, options) {
128
127
  !dependencies.authority.sameTerminalIncarnation(latestControl, terminalControl) ||
129
128
  projection.interaction_id !== interactionId ||
130
129
  fingerprint !== expectedFingerprint ||
131
- Date.parse(expectedExpiresAt) <=
132
- dependencies.runtime.now().getTime()) {
130
+ latestTakeover?.terminal_bridge_message_id !==
131
+ currentTakeover?.terminal_bridge_message_id) {
133
132
  throw new Error("terminal interaction authority changed before dispatch; refresh status");
134
133
  }
135
134
  dependencies.authority.assertManagedTerminalDispatchOwner({
@@ -138,14 +137,20 @@ async function runRespondInteraction(dependencies, options) {
138
137
  terminalControl: latestControl,
139
138
  action: "respond-interaction"
140
139
  });
141
- const reservedAt = dependencies.runtime.now().toISOString();
140
+ const reservationTime = dependencies.runtime.now();
141
+ if (Date.parse(expectedExpiresAt) <= reservationTime.getTime()) {
142
+ throw new Error("terminal interaction authority expired before dispatch; refresh status");
143
+ }
144
+ const reservedAt = reservationTime.toISOString();
145
+ const attemptId = randomUUID();
146
+ reservationAttemptId = attemptId;
142
147
  current = {
143
148
  ...latest,
144
149
  native_session_takeover: {
145
150
  ...latestTakeover,
146
151
  terminal_bridge_interaction_dispatch: {
147
152
  state: "reserved",
148
- attempt_id: randomUUID(),
153
+ attempt_id: attemptId,
149
154
  interaction_id: interactionId,
150
155
  interaction_prompt_fingerprint: fingerprint,
151
156
  response_sha256: responseSha256,
@@ -156,12 +161,70 @@ async function runRespondInteraction(dependencies, options) {
156
161
  },
157
162
  updated_at: reservedAt
158
163
  };
164
+ // A save failure may have committed the one-shot receipt. From
165
+ // this point on, only an exact compensating clear can make the
166
+ // attempt safely retryable.
167
+ reservationWriteStarted = true;
159
168
  dependencies.repository.saveState(loaded.statePath, current);
169
+ reservationConfirmed = true;
160
170
  }
161
171
  });
162
172
  }
163
173
  catch (error) {
164
- if (reserved) {
174
+ if (error instanceof TerminalInteractionInputNotStartedError &&
175
+ reservationConfirmed &&
176
+ reservationAttemptId) {
177
+ try {
178
+ releaseInteractionResponseReservation(dependencies, {
179
+ loaded,
180
+ attemptId: reservationAttemptId,
181
+ interactionId,
182
+ expectedFingerprint,
183
+ responseSha256,
184
+ terminalTarget: currentControl.target,
185
+ terminalBridgeMessageId: currentTakeover?.terminal_bridge_message_id,
186
+ error
187
+ });
188
+ }
189
+ catch (releaseError) {
190
+ const uncertain = new TerminalInteractionDispatchReservedError("reservation_uncertain", "terminal interaction input did not start, but its dispatch reservation could not be safely released", { cause: releaseError });
191
+ // Never restore the stale pre-cleanup snapshot over a newer state.
192
+ // Only the still-current exact receipt may be promoted to
193
+ // uncertain; a missing or different receipt is left untouched.
194
+ let latest;
195
+ try {
196
+ latest = dependencies.repository.loadState(loaded.statePath);
197
+ }
198
+ catch {
199
+ // The existing durable receipt remains the fail-closed fence.
200
+ }
201
+ const latestDispatch = latest
202
+ ? interactionDispatchFor(latest)
203
+ : undefined;
204
+ if (latest &&
205
+ latestDispatch &&
206
+ terminalInteractionDispatchMatchesReservation(latestDispatch, {
207
+ attemptId: reservationAttemptId,
208
+ interactionId,
209
+ expectedFingerprint,
210
+ responseSha256,
211
+ terminalTarget: currentControl.target,
212
+ terminalBridgeMessageId: currentTakeover?.terminal_bridge_message_id
213
+ })) {
214
+ markInteractionResponseUncertain(dependencies, {
215
+ loaded,
216
+ conversation: latest,
217
+ interactionId,
218
+ expectedFingerprint,
219
+ responseSha256,
220
+ error: uncertain
221
+ });
222
+ }
223
+ throw uncertain;
224
+ }
225
+ throw new TerminalInteractionInputNotStartedError(`${error.message}; no terminal input was sent, refresh status before responding again`, { cause: error });
226
+ }
227
+ if (reservationWriteStarted) {
165
228
  markInteractionResponseUncertain(dependencies, {
166
229
  loaded,
167
230
  conversation: current,
@@ -184,23 +247,30 @@ async function runRespondInteraction(dependencies, options) {
184
247
  });
185
248
  return;
186
249
  }
187
- if (!reserved) {
250
+ if (!reservationConfirmed) {
188
251
  throw new TerminalInteractionDispatchReservedError("reservation_uncertain", "terminal interaction response was dispatched without a durable reservation");
189
252
  }
190
253
  const answeredAt = dependencies.runtime.now().toISOString();
191
- const latestTakeover = takeoverFor(current);
254
+ const callbackSafeConversation = supersedeMatchingInteractionCallbackDelivery(current, {
255
+ at: answeredAt,
256
+ interactionId,
257
+ fingerprint: expectedFingerprint
258
+ });
259
+ const latestTakeover = takeoverFor(callbackSafeConversation);
192
260
  const nextTakeover = {
193
261
  ...latestTakeover,
194
262
  terminal_bridge_last_interaction_id: interactionId,
195
263
  terminal_bridge_last_interaction_fingerprint: expectedFingerprint,
264
+ terminal_bridge_last_interaction_message_id: latestTakeover?.terminal_bridge_message_id,
196
265
  terminal_bridge_last_interaction_response_sha256: responseSha256,
197
266
  terminal_bridge_last_interaction_at: answeredAt,
198
267
  terminal_bridge_last_activity_at: answeredAt,
199
268
  terminal_bridge_last_activity_reason: "interactive response dispatched"
200
269
  };
201
270
  delete nextTakeover.terminal_bridge_interaction_dispatch;
271
+ delete nextTakeover.terminal_bridge_interaction_notification;
202
272
  const nextConversation = {
203
- ...current,
273
+ ...callbackSafeConversation,
204
274
  status: "waiting_for_agent",
205
275
  native_session_takeover: nextTakeover,
206
276
  updated_at: answeredAt
@@ -249,6 +319,59 @@ async function runRespondInteraction(dependencies, options) {
249
319
  }
250
320
  });
251
321
  }
322
+ function releaseInteractionResponseReservation(dependencies, input) {
323
+ const latest = dependencies.repository.loadState(input.loaded.statePath);
324
+ const takeover = takeoverFor(latest);
325
+ const dispatch = interactionDispatchFor(latest);
326
+ if (!dispatch ||
327
+ !terminalInteractionDispatchMatchesReservation(dispatch, input)) {
328
+ throw new Error("the durable terminal interaction reservation no longer matches this attempt");
329
+ }
330
+ const at = dependencies.runtime.now().toISOString();
331
+ const nextTakeover = { ...takeover };
332
+ delete nextTakeover.terminal_bridge_interaction_dispatch;
333
+ nextTakeover.terminal_bridge_last_activity_at = at;
334
+ nextTakeover.terminal_bridge_last_activity_reason =
335
+ "interactive response rejected before terminal input";
336
+ const released = {
337
+ ...latest,
338
+ native_session_takeover: nextTakeover,
339
+ updated_at: at
340
+ };
341
+ dependencies.repository.saveState(input.loaded.statePath, released);
342
+ dependencies.repository.appendEvent(input.loaded.logPath, {
343
+ ts: at,
344
+ conversation_id: released.conversation_id,
345
+ event: "terminal_interaction_response_not_started",
346
+ interaction_id: input.interactionId,
347
+ interaction_prompt_fingerprint: input.expectedFingerprint,
348
+ response_sha256: input.responseSha256,
349
+ attempt_id: input.attemptId,
350
+ reason: "terminal interaction response rejected before terminal input"
351
+ });
352
+ dependencies.runtime.log("warn", "terminal_interaction_response_not_started", {
353
+ conversation_id: released.conversation_id,
354
+ interaction_id: input.interactionId,
355
+ response_sha256: input.responseSha256,
356
+ attempt_id: input.attemptId,
357
+ error_name: input.error.name
358
+ });
359
+ }
360
+ function interactionDispatchFor(conversation) {
361
+ const takeover = takeoverFor(conversation);
362
+ return isRecord(takeover?.terminal_bridge_interaction_dispatch)
363
+ ? takeover.terminal_bridge_interaction_dispatch
364
+ : undefined;
365
+ }
366
+ function terminalInteractionDispatchMatchesReservation(dispatch, expected) {
367
+ return dispatch.state === "reserved" &&
368
+ dispatch.attempt_id === expected.attemptId &&
369
+ dispatch.interaction_id === expected.interactionId &&
370
+ dispatch.interaction_prompt_fingerprint === expected.expectedFingerprint &&
371
+ dispatch.response_sha256 === expected.responseSha256 &&
372
+ dispatch.terminal_target === expected.terminalTarget &&
373
+ dispatch.terminal_bridge_message_id === expected.terminalBridgeMessageId;
374
+ }
252
375
  function markInteractionResponseUncertain(dependencies, input) {
253
376
  const at = dependencies.runtime.now().toISOString();
254
377
  const takeover = takeoverFor(input.conversation);
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-interaction-cli-adapter.js","sourceRoot":"","sources":["../../src/terminal-interaction-cli-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-interaction-cli-adapter.js","sourceRoot":"","sources":["../../src/terminal-interaction-cli-adapter.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,17 @@ export type TerminalMonitorPresentation = {
52
52
  terminalControl: TerminalControlRef;
53
53
  terminalStatus: TerminalBridgeStatus;
54
54
  approvable: boolean;
55
+ } | {
56
+ kind: "interaction_duplicate";
57
+ conversation: Conversation;
58
+ terminalControl: TerminalControlRef;
59
+ interactionState: NonNullable<TerminalBridgeStatus["interaction_state"]>;
60
+ } | {
61
+ kind: "interaction_gateway_missing";
62
+ conversation: Conversation;
63
+ callbackMessage?: unknown;
64
+ terminalControl: TerminalControlRef;
65
+ interactionState: NonNullable<TerminalBridgeStatus["interaction_state"]>;
55
66
  } | {
56
67
  kind: "completion_duplicate";
57
68
  conversation: Conversation;
@@ -91,6 +102,7 @@ export interface MonitorApprovalNotificationResult {
91
102
  stale: boolean;
92
103
  recorded?: MonitorApprovalCallbackRecord;
93
104
  }
105
+ export type MonitorInteractionNotificationResult = MonitorApprovalNotificationResult;
94
106
  export type MonitorCompletionPreparation = {
95
107
  claimed: true;
96
108
  conversation: Conversation;
@@ -148,6 +160,16 @@ export interface TerminalMonitorServicePorts {
148
160
  kind: "question" | "error";
149
161
  reason?: string;
150
162
  }): MonitorApprovalNotificationResult;
163
+ recordInteractionNotification(input: {
164
+ conversation: Conversation;
165
+ executor: Executor;
166
+ terminalControl: TerminalControlRef;
167
+ terminalStatus: TerminalBridgeStatus;
168
+ currentMessageId?: string;
169
+ interactionId: string;
170
+ questionId: string;
171
+ fingerprint: string;
172
+ }): MonitorInteractionNotificationResult;
151
173
  };
152
174
  authority: {
153
175
  initialize(): void;
@@ -1,4 +1,4 @@
1
- import { executorForConversation } from "./protocol.js";
1
+ import { executorForConversation, turnIdForConversation } from "./protocol.js";
2
2
  import { terminalBridgeCompletionFingerprint } from "./callback-outbox-service.js";
3
3
  import { claudeTranscriptApprovalIdentity, decideTerminalMonitorAfterEffectsTimeout, decideTerminalMonitorApproval, reduceTerminalMonitorDecision, terminalMonitorActivityFingerprint, terminalMonitorApprovalEffectOrder, terminalMonitorApprovalFingerprint, terminalMonitorScreenFingerprint, validTerminalMonitorTimestampMs } from "./terminal-monitor-decision-policy.js";
4
4
  import { isRecord, nonBlankString as stringValue } from "./value-guards.js";
@@ -547,6 +547,13 @@ async function handleObservedPoll(input) {
547
547
  if (approval !== "proceed") {
548
548
  return approval;
549
549
  }
550
+ const interaction = handleInteractionObservation({
551
+ ...sampledApproval,
552
+ takeover: diagnostic.takeover
553
+ });
554
+ if (interaction !== "proceed") {
555
+ return interaction;
556
+ }
550
557
  const durable = input.poll.durableCompletion;
551
558
  const durableFingerprint = durable
552
559
  ? terminalMonitorActivityFingerprint(JSON.stringify({
@@ -574,6 +581,159 @@ async function handleObservedPoll(input) {
574
581
  completionFingerprint
575
582
  });
576
583
  }
584
+ function handleInteractionObservation(input) {
585
+ const projection = input.terminalStatus.interaction_state;
586
+ const fingerprint = stringValue(input.terminalStatus.interaction_prompt_fingerprint);
587
+ const observationMatches = interactionObservationMatchesMonitor(input, projection);
588
+ const takeover = takeoverFor(input.state.conversation) ?? input.takeover;
589
+ if (!projection) {
590
+ return "proceed";
591
+ }
592
+ const question = projection.questions[0];
593
+ const screenChangedSinceSend = input.state.preSendScreenFingerprint !== undefined &&
594
+ input.currentScreenFingerprint !== undefined &&
595
+ input.currentScreenFingerprint !== input.state.preSendScreenFingerprint;
596
+ if (projection.state !== "pending" ||
597
+ projection.capabilities.respond !== true ||
598
+ projection.questions.length !== 1 ||
599
+ !question ||
600
+ question.response_kind === "multi_select") {
601
+ return "proceed";
602
+ }
603
+ const actionable = observationMatches &&
604
+ input.state.conversation.status === "waiting_for_agent" &&
605
+ projection.turn_id === turnIdForConversation(input.state.conversation) &&
606
+ typeof fingerprint === "string" &&
607
+ /^[0-9a-f]{64}$/u.test(fingerprint) &&
608
+ screenChangedSinceSend;
609
+ if (!actionable || !fingerprint) {
610
+ input.ports.runtime.log("warn", "terminal_bridge_interaction_not_actionable", {
611
+ conversation_id: input.state.conversation.conversation_id,
612
+ terminal_target: input.terminalControl.target,
613
+ interaction_id: projection.interaction_id,
614
+ interaction_state: projection.state,
615
+ response_kind: question?.response_kind,
616
+ screen_changed_since_send: screenChangedSinceSend,
617
+ reason: "native questionnaire lacks a current executable monitor offer"
618
+ });
619
+ return "proceed";
620
+ }
621
+ if (stringValue(takeover?.terminal_bridge_last_interaction_message_id) ===
622
+ input.currentMessageId &&
623
+ stringValue(takeover?.terminal_bridge_last_interaction_fingerprint) ===
624
+ fingerprint) {
625
+ input.state.pollPolicyState = {
626
+ ...input.state.pollPolicyState,
627
+ previousScreenFingerprint: input.currentScreenFingerprint
628
+ };
629
+ input.ports.runtime.log("info", "terminal_bridge_consumed_interaction_screen_still_visible", {
630
+ conversation_id: input.state.conversation.conversation_id,
631
+ terminal_target: input.terminalControl.target,
632
+ interaction_id: projection.interaction_id,
633
+ question_id: question.question_id
634
+ });
635
+ return "proceed";
636
+ }
637
+ const notification = input.ports.state.recordInteractionNotification({
638
+ conversation: input.state.conversation,
639
+ executor: input.state.executor,
640
+ terminalControl: input.terminalControl,
641
+ terminalStatus: input.terminalStatus,
642
+ currentMessageId: input.currentMessageId,
643
+ interactionId: projection.interaction_id,
644
+ questionId: question.question_id,
645
+ fingerprint
646
+ });
647
+ if (notification.stale) {
648
+ input.state.pollPolicyState = {
649
+ ...input.state.pollPolicyState,
650
+ previousScreenFingerprint: input.currentScreenFingerprint
651
+ };
652
+ input.ports.runtime.sleep(input.configuration.pollIntervalMs);
653
+ return "continue";
654
+ }
655
+ if (notification.duplicate) {
656
+ input.ports.presentation.emit({
657
+ kind: "interaction_duplicate",
658
+ conversation: notification.conversation,
659
+ terminalControl: input.terminalControl,
660
+ interactionState: projection
661
+ });
662
+ return "finished";
663
+ }
664
+ input.ports.state.appendEvent({
665
+ ts: input.ports.runtime.now().toISOString(),
666
+ conversation_id: notification.conversation.conversation_id,
667
+ event: "terminal_bridge_interaction_detected",
668
+ terminal_control: input.terminalControl,
669
+ interaction_id: projection.interaction_id,
670
+ question_id: question.question_id,
671
+ response_kind: question.response_kind
672
+ });
673
+ const prepared = notification.recorded?.prepared;
674
+ if (!prepared) {
675
+ input.ports.presentation.emit({
676
+ kind: "interaction_gateway_missing",
677
+ conversation: notification.conversation,
678
+ callbackMessage: notification.recorded?.callbackMessage,
679
+ terminalControl: input.terminalControl,
680
+ interactionState: projection
681
+ });
682
+ return "finished";
683
+ }
684
+ const result = input.ports.callbacks.run(prepared, { emit: false });
685
+ const afterCallback = input.ports.state.load();
686
+ const afterTakeover = takeoverFor(afterCallback);
687
+ const consumed = input.ports.authority.isWaitingForAgent(afterCallback.status) &&
688
+ afterTakeover?.terminal_bridge_interaction_notification === undefined &&
689
+ stringValue(afterTakeover?.terminal_bridge_message_id) ===
690
+ input.currentMessageId &&
691
+ stringValue(afterTakeover?.terminal_bridge_last_interaction_message_id) ===
692
+ input.currentMessageId &&
693
+ stringValue(afterTakeover?.terminal_bridge_last_interaction_id) ===
694
+ projection.interaction_id &&
695
+ stringValue(afterTakeover?.terminal_bridge_last_interaction_fingerprint) ===
696
+ fingerprint;
697
+ if (!consumed) {
698
+ input.ports.callbacks.emit({
699
+ ...result,
700
+ conversation: interactionCallbackPublicConversation(result.conversation)
701
+ });
702
+ return "finished";
703
+ }
704
+ input.state.conversation = afterCallback;
705
+ input.state.pollPolicyState = {
706
+ previousScreenFingerprint: input.currentScreenFingerprint
707
+ };
708
+ input.state.lastActivityAtMs =
709
+ validTerminalMonitorTimestampMs(afterTakeover?.terminal_bridge_last_activity_at) ?? input.ports.runtime.nowMs();
710
+ input.state.lastPersistedActivityAtMs = input.state.lastActivityAtMs;
711
+ input.state.persistedActivityReason = stringValue(afterTakeover?.terminal_bridge_last_activity_reason);
712
+ input.ports.state.appendEvent({
713
+ ts: input.ports.runtime.now().toISOString(),
714
+ conversation_id: afterCallback.conversation_id,
715
+ event: "terminal_bridge_monitor_continued_after_interaction",
716
+ terminal_control: input.terminalControl,
717
+ interaction_id: projection.interaction_id,
718
+ question_id: question.question_id
719
+ });
720
+ input.ports.runtime.sleep(input.configuration.pollIntervalMs);
721
+ return "continue";
722
+ }
723
+ function interactionCallbackPublicConversation(conversation) {
724
+ const projected = { ...conversation };
725
+ delete projected.native_session_takeover;
726
+ delete projected.callback_delivery;
727
+ delete projected.callback_notification_delivery;
728
+ return projected;
729
+ }
730
+ function interactionObservationMatchesMonitor(input, projection) {
731
+ return input.terminalStatus.reachable &&
732
+ input.terminalStatus.provider === input.terminalControl.kind &&
733
+ input.terminalStatus.target === input.terminalControl.target &&
734
+ input.terminalStatus.agent === input.state.executor.kind &&
735
+ (projection === undefined || projection.agent === input.state.executor.kind);
736
+ }
577
737
  function persistDetectorDiagnostic(input) {
578
738
  const { state, configuration, ports, terminalControl, currentMessageId, terminalStatus } = input;
579
739
  const limitation = stringValue(terminalStatus.capability_limitation);