crewly 1.20.200 → 1.20.202

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 (125) hide show
  1. package/config/constants.ts +2 -0
  2. package/config/skills/agent/screenshot-compare/execute.sh +8 -2
  3. package/config/skills/agent/screenshot-compare/execute.test.sh +77 -0
  4. package/config/skills/agent/transcribe-audio/SKILL.md +1 -1
  5. package/config/skills/agent/transcribe-audio/execute.sh +13 -4
  6. package/config/skills/agent/transcribe-audio/execute.test.sh +39 -0
  7. package/config/skills/agent/transcribe-audio/instructions.md +1 -1
  8. package/config/skills/registry.json +3 -3
  9. package/dist/backend/backend/src/constants.d.ts +28 -4
  10. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  11. package/dist/backend/backend/src/constants.js +27 -4
  12. package/dist/backend/backend/src/constants.js.map +1 -1
  13. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  14. package/dist/backend/backend/src/controllers/chat/chat.controller.js +20 -7
  15. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  16. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts +32 -10
  17. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts.map +1 -1
  18. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +47 -16
  19. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -1
  20. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.d.ts.map +1 -1
  21. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.js +20 -7
  22. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.js.map +1 -1
  23. package/dist/backend/backend/src/controllers/session/session.controller.d.ts +3 -1
  24. package/dist/backend/backend/src/controllers/session/session.controller.d.ts.map +1 -1
  25. package/dist/backend/backend/src/controllers/session/session.controller.js +7 -2
  26. package/dist/backend/backend/src/controllers/session/session.controller.js.map +1 -1
  27. package/dist/backend/backend/src/controllers/session/session.routes.d.ts.map +1 -1
  28. package/dist/backend/backend/src/controllers/session/session.routes.js +15 -4
  29. package/dist/backend/backend/src/controllers/session/session.routes.js.map +1 -1
  30. package/dist/backend/backend/src/controllers/settings/settings.controller.d.ts.map +1 -1
  31. package/dist/backend/backend/src/controllers/settings/settings.controller.js +91 -16
  32. package/dist/backend/backend/src/controllers/settings/settings.controller.js.map +1 -1
  33. package/dist/backend/backend/src/index.d.ts.map +1 -1
  34. package/dist/backend/backend/src/index.js +4 -0
  35. package/dist/backend/backend/src/index.js.map +1 -1
  36. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +52 -0
  37. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  38. package/dist/backend/backend/src/services/agent/agent-registration.service.js +125 -11
  39. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  40. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -1
  41. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js +3 -2
  42. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
  43. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts +17 -0
  44. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts.map +1 -1
  45. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js +23 -0
  46. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js.map +1 -1
  47. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.d.ts +14 -1
  48. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.d.ts.map +1 -1
  49. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.js +23 -1
  50. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.js.map +1 -1
  51. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +8 -0
  52. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  53. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js +36 -6
  54. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  55. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
  56. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +1 -0
  57. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
  58. package/dist/backend/backend/src/services/session/pty/pty-session.d.ts +16 -0
  59. package/dist/backend/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
  60. package/dist/backend/backend/src/services/session/pty/pty-session.js +37 -0
  61. package/dist/backend/backend/src/services/session/pty/pty-session.js.map +1 -1
  62. package/dist/backend/backend/src/services/session/session-command-helper.d.ts +109 -15
  63. package/dist/backend/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  64. package/dist/backend/backend/src/services/session/session-command-helper.js +244 -41
  65. package/dist/backend/backend/src/services/session/session-command-helper.js.map +1 -1
  66. package/dist/backend/backend/src/services/session/tui-input-guard.d.ts +57 -0
  67. package/dist/backend/backend/src/services/session/tui-input-guard.d.ts.map +1 -1
  68. package/dist/backend/backend/src/services/session/tui-input-guard.js +104 -7
  69. package/dist/backend/backend/src/services/session/tui-input-guard.js.map +1 -1
  70. package/dist/backend/backend/src/types/settings.types.d.ts +24 -0
  71. package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
  72. package/dist/backend/backend/src/types/settings.types.js +65 -3
  73. package/dist/backend/backend/src/types/settings.types.js.map +1 -1
  74. package/dist/backend/build-info.json +2 -2
  75. package/dist/backend/config/constants.d.ts +2 -0
  76. package/dist/backend/config/constants.d.ts.map +1 -1
  77. package/dist/backend/config/constants.js +2 -0
  78. package/dist/backend/config/constants.js.map +1 -1
  79. package/dist/cli/backend/src/constants.d.ts +28 -4
  80. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  81. package/dist/cli/backend/src/constants.js +27 -4
  82. package/dist/cli/backend/src/constants.js.map +1 -1
  83. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +52 -0
  84. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  85. package/dist/cli/backend/src/services/agent/agent-registration.service.js +125 -11
  86. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  87. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -1
  88. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js +3 -2
  89. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
  90. package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.d.ts +17 -0
  91. package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.d.ts.map +1 -1
  92. package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.js +23 -0
  93. package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.js.map +1 -1
  94. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.d.ts +14 -1
  95. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.d.ts.map +1 -1
  96. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.js +23 -1
  97. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.js.map +1 -1
  98. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +8 -0
  99. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  100. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js +36 -6
  101. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  102. package/dist/cli/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
  103. package/dist/cli/backend/src/services/session/pty/pty-session-backend.js +1 -0
  104. package/dist/cli/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
  105. package/dist/cli/backend/src/services/session/pty/pty-session.d.ts +16 -0
  106. package/dist/cli/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
  107. package/dist/cli/backend/src/services/session/pty/pty-session.js +37 -0
  108. package/dist/cli/backend/src/services/session/pty/pty-session.js.map +1 -1
  109. package/dist/cli/backend/src/services/session/session-command-helper.d.ts +109 -15
  110. package/dist/cli/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  111. package/dist/cli/backend/src/services/session/session-command-helper.js +244 -41
  112. package/dist/cli/backend/src/services/session/session-command-helper.js.map +1 -1
  113. package/dist/cli/backend/src/services/session/tui-input-guard.d.ts +57 -0
  114. package/dist/cli/backend/src/services/session/tui-input-guard.d.ts.map +1 -1
  115. package/dist/cli/backend/src/services/session/tui-input-guard.js +104 -7
  116. package/dist/cli/backend/src/services/session/tui-input-guard.js.map +1 -1
  117. package/dist/cli/backend/src/types/settings.types.d.ts +24 -0
  118. package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
  119. package/dist/cli/backend/src/types/settings.types.js +65 -3
  120. package/dist/cli/backend/src/types/settings.types.js.map +1 -1
  121. package/dist/cli/config/constants.d.ts +2 -0
  122. package/dist/cli/config/constants.d.ts.map +1 -1
  123. package/dist/cli/config/constants.js +2 -0
  124. package/dist/cli/config/constants.js.map +1 -1
  125. package/package.json +1 -1
@@ -21,7 +21,7 @@ import { delay } from '../../utils/async.utils.js';
21
21
  import { assertNotSecretEnvKey } from '../../utils/secret-env.js';
22
22
  import { quietShellLine } from '../../utils/shell-history.js';
23
23
  import { PtyActivityTrackerService } from '../agent/pty-activity-tracker.service.js';
24
- import { classifyTuiInput, isPasteMarker, TuiInputGuardError } from './tui-input-guard.js';
24
+ import { classifyTuiInput, pasteShowsAs, screenShowsTurnInProgress, TuiInputGuardError } from './tui-input-guard.js';
25
25
  import { noteHarnessWrite } from '../trace/turn-origin.js';
26
26
  /**
27
27
  * Key code mappings for special keys
@@ -69,16 +69,36 @@ export class SessionCommandHelper {
69
69
  logger;
70
70
  backend;
71
71
  /**
72
- * Per session: the collapsed paste marker ("[Pasted text #1 +29 lines]",
73
- * "[Pasted Content 1234 chars]") the runtime showed right after the
74
- * harness pasted `message`. Proof that a marker still in the box later is
75
- * ours, so a lost Enter can be recovered. Shared across helper instances.
76
- */
77
- static ownPasteMarkers = new Map();
78
- /** Clock for the marker record (tests). */
72
+ * Per session: the harness's own latest paste into a box it had proven
73
+ * empty. While the box keeps showing it (the collapsed marker "[Pasted
74
+ * text #4 +5 lines]" / "[Pasted Content 1234 chars]", or the text itself)
75
+ * it is ours — whatever message is sent next — so a lost or never-pressed
76
+ * Enter can be recovered. Written by every paste path; shared across
77
+ * helper instances.
78
+ *
79
+ * - `pending`: pasted, not yet seen in the box (a busy Claude Code renders
80
+ * a paste seconds late). The first readable box that is not empty must
81
+ * show the paste's shape, or the record ends; it also ends unseen after
82
+ * OWN_PASTE_PENDING_MAX_MS.
83
+ * - `seen`: the box showed `shown`. Every readable box since must show
84
+ * exactly that; the first that does not ends the record. Unreadable
85
+ * screens (a dialog) do not count as seen: unseen for
86
+ * OWN_PASTE_UNSEEN_MAX_MS ends it too. While busy the watcher re-reads
87
+ * the box, so a long turn keeps it alive.
88
+ *
89
+ * Also ended by our one Enter on it, and by session/runtime (re)start.
90
+ */
91
+ static ownPastes = new Map();
92
+ /** Sessions a sendMessage is typing into right now (the watcher keeps off) */
93
+ static inFlight = new Set();
94
+ /** The watcher re-reading boxes that hold a paste of ours */
95
+ static watchTimer = null;
96
+ /** Clock for the paste record (tests). */
79
97
  static now = Date.now;
98
+ /** How long sendMessage waits for a late paste to render (tests shorten it). */
99
+ static pasteRenderMaxWaitMs = TUI_INPUT_GUARD.PASTE_RENDER_MAX_WAIT_MS;
80
100
  /**
81
- * Forget the recorded paste marker of a session: its runtime is being
101
+ * Forget the recorded paste of a session: its runtime is being
82
102
  * (re)started, a shell line is typed, or the session is created/killed —
83
103
  * Claude Code's paste counter restarts at #1, and Codex markers carry only
84
104
  * a character count, so an old record could match the owner's paste.
@@ -86,24 +106,129 @@ export class SessionCommandHelper {
86
106
  * @param sessionName - The session
87
107
  */
88
108
  static forgetOwnPaste(sessionName) {
89
- SessionCommandHelper.ownPasteMarkers.delete(sessionName);
109
+ SessionCommandHelper.ownPastes.delete(sessionName);
110
+ SessionCommandHelper.stopWatchingIfIdle();
90
111
  }
91
112
  /**
92
- * The recorded marker, while it may still be ours: at most
93
- * OWN_MARKER_TTL_MS after our paste.
113
+ * Whether a paste of ours is on record for a session (tests, diagnostics).
94
114
  *
95
115
  * @param sessionName - The session
96
- * @returns The marker, or undefined
116
+ * @returns True while the record stands
97
117
  */
98
- static ownMarkerFor(sessionName) {
99
- const rec = SessionCommandHelper.ownPasteMarkers.get(sessionName);
100
- if (!rec)
101
- return undefined;
102
- if (SessionCommandHelper.now() - rec.at > TUI_INPUT_GUARD.OWN_MARKER_TTL_MS) {
103
- SessionCommandHelper.ownPasteMarkers.delete(sessionName);
104
- return undefined;
118
+ static hasOwnPaste(sessionName) {
119
+ return SessionCommandHelper.ownPastes.has(sessionName);
120
+ }
121
+ /**
122
+ * Record our paste of `message` into a box proven empty.
123
+ *
124
+ * @param sessionName - The session
125
+ * @param message - What was pasted
126
+ */
127
+ recordOwnPaste(sessionName, message) {
128
+ SessionCommandHelper.ownPastes.set(sessionName, { message, pastedAt: SessionCommandHelper.now(), helper: this });
129
+ SessionCommandHelper.startWatching();
130
+ }
131
+ /** Whether recording a paste starts the timed watcher (tests drive it by hand). */
132
+ static autoWatch = true;
133
+ /** Start the watcher (no-op when running). */
134
+ static startWatching() {
135
+ if (SessionCommandHelper.watchTimer || !SessionCommandHelper.autoWatch)
136
+ return;
137
+ SessionCommandHelper.watchTimer = setInterval(() => {
138
+ void SessionCommandHelper.watchOwnPastes();
139
+ }, TUI_INPUT_GUARD.OWN_PASTE_WATCH_MS);
140
+ SessionCommandHelper.watchTimer.unref?.();
141
+ }
142
+ /** Stop the watcher once no paste is on record. */
143
+ static stopWatchingIfIdle() {
144
+ if (SessionCommandHelper.ownPastes.size > 0 || !SessionCommandHelper.watchTimer)
145
+ return;
146
+ clearInterval(SessionCommandHelper.watchTimer);
147
+ SessionCommandHelper.watchTimer = null;
148
+ }
149
+ /**
150
+ * One watcher pass: re-read every box holding a paste of ours (keeping
151
+ * the "seen continuously" record alive through a long turn, ending it the
152
+ * moment the box shows anything else), and once the agent is idle with
153
+ * our paste still sitting there, press Enter on it once.
154
+ *
155
+ * @returns Resolves when every session was looked at
156
+ */
157
+ static async watchOwnPastes() {
158
+ for (const [sessionName, rec] of [...SessionCommandHelper.ownPastes]) {
159
+ if (SessionCommandHelper.inFlight.has(sessionName))
160
+ continue;
161
+ try {
162
+ if (!rec.helper.backend.sessionExists(sessionName)) {
163
+ SessionCommandHelper.ownPastes.delete(sessionName);
164
+ continue;
165
+ }
166
+ const reading = rec.helper.readInputBox(sessionName, '', 'recovery');
167
+ if (reading.ownPasteMarker && await rec.helper.isAgentIdle(sessionName)) {
168
+ const outcome = await rec.helper.ensureOwnPasteSubmitted(sessionName);
169
+ rec.helper.logger.warn('Our earlier paste was still in the input box of an idle agent — pressed Enter on it once', { sessionName, outcome });
170
+ }
171
+ }
172
+ catch {
173
+ // A session that vanished mid-pass: the next pass drops it.
174
+ }
105
175
  }
106
- return rec.marker;
176
+ SessionCommandHelper.stopWatchingIfIdle();
177
+ }
178
+ /** Pause between screen samples when checking that a busy screen repaints (tests shorten it). */
179
+ static repaintSampleMs = TUI_INPUT_GUARD.BUSY_REPAINT_SAMPLE_MS;
180
+ /**
181
+ * Whether the agent in a session is mid-turn. All three must hold:
182
+ * - a turn signal where the runtime paints it (see readTurnSignals): the
183
+ * busy bar in the footer below the box, or the spinner line directly
184
+ * above it — never text in the transcript;
185
+ * - the screen is repainting: it changes within a few short samples (a
186
+ * live spinner animates its glyph and counter several times a second);
187
+ * - the PTY produced output within BUSY_FROZEN_MS: a screen that stopped
188
+ * repainting is frozen, not busy, and a held message must go out.
189
+ *
190
+ * @param sessionName - The session
191
+ * @returns True when busy
192
+ */
193
+ async isAgentBusy(sessionName) {
194
+ const read = () => {
195
+ try {
196
+ return this.backend.captureOutput(sessionName, TUI_INPUT_GUARD.BUSY_BAR_TAIL_LINES) ?? '';
197
+ }
198
+ catch {
199
+ return '';
200
+ }
201
+ };
202
+ const first = read();
203
+ if (!screenShowsTurnInProgress(first))
204
+ return false;
205
+ const tracker = PtyActivityTrackerService.getInstance();
206
+ const quietMs = typeof tracker.getRawOutputIdleMs === 'function' ? tracker.getRawOutputIdleMs(sessionName) : null;
207
+ if (quietMs !== null && quietMs >= TUI_INPUT_GUARD.BUSY_FROZEN_MS) {
208
+ this.logger.warn('Screen shows a turn but the PTY has been silent — treating the agent as idle', { sessionName, quietMs });
209
+ return false;
210
+ }
211
+ for (let i = 0; i < TUI_INPUT_GUARD.BUSY_REPAINT_SAMPLES; i++) {
212
+ await delay(SessionCommandHelper.repaintSampleMs);
213
+ const next = read();
214
+ if (!screenShowsTurnInProgress(next))
215
+ return false;
216
+ if (next !== first)
217
+ return true;
218
+ }
219
+ return false;
220
+ }
221
+ /**
222
+ * Whether the agent in a session is resting: not busy (see
223
+ * {@link isAgentBusy}) and no meaningful output for a few seconds.
224
+ *
225
+ * @param sessionName - The session
226
+ * @returns True when idle
227
+ */
228
+ async isAgentIdle(sessionName) {
229
+ if (await this.isAgentBusy(sessionName))
230
+ return false;
231
+ return PtyActivityTrackerService.getInstance().getIdleTimeMs(sessionName) >= SESSION_COMMAND_DELAYS.AGENT_BUSY_IDLE_THRESHOLD_MS;
107
232
  }
108
233
  constructor(backend) {
109
234
  this.logger = LoggerService.getInstance().createComponentLogger('SessionCommandHelper');
@@ -152,6 +277,11 @@ export class SessionCommandHelper {
152
277
  * submitted and nothing is cleared: text we cannot prove is ours is
153
278
  * never wiped.
154
279
  *
280
+ * Every paste is recorded (see `ownPastes`): if its Enter is lost, or it
281
+ * renders only after we stopped looking (a busy Claude Code), it stays
282
+ * ours while the box keeps showing it, and is submitted once the agent
283
+ * is idle — by the next delivery or by the watcher.
284
+ *
155
285
  * A refusal throws `TuiInputGuardError`; agent delivery keeps the message
156
286
  * queued and retries (AgentRegistrationService). Shell command lines
157
287
  * typed before a runtime starts use {@link sendShellLine} instead.
@@ -161,7 +291,22 @@ export class SessionCommandHelper {
161
291
  * @throws Error if session does not exist
162
292
  * @throws TuiInputGuardError when the box is unreadable or not ours
163
293
  */
164
- async sendMessage(sessionName, message, options = {}) {
294
+ async sendMessage(sessionName, message) {
295
+ SessionCommandHelper.inFlight.add(sessionName);
296
+ try {
297
+ await this.sendMessageGuarded(sessionName, message);
298
+ }
299
+ finally {
300
+ SessionCommandHelper.inFlight.delete(sessionName);
301
+ }
302
+ }
303
+ /**
304
+ * The body of {@link sendMessage}, run while the watcher keeps off.
305
+ *
306
+ * @param sessionName - The session to send to
307
+ * @param message - The message to send
308
+ */
309
+ async sendMessageGuarded(sessionName, message) {
165
310
  const session = this.getSessionOrThrow(sessionName);
166
311
  this.logger.debug('Sending message to session', {
167
312
  sessionName,
@@ -171,10 +316,14 @@ export class SessionCommandHelper {
171
316
  // Step 1: the box must be readable and empty before we type.
172
317
  let before = this.readInputBox(sessionName, message, 'before-write');
173
318
  if (before.ownPasteMarker) {
174
- // An earlier delivery of ours is still in the box (its Enter was
175
- // lost): submit it first, then deliver this one.
176
- this.logger.warn('An earlier paste of ours is still in the input box — submitting it before this message', { sessionName });
177
- await this.ensureOwnPasteSubmitted(sessionName);
319
+ // An earlier paste of ours is still in the box (its Enter was lost,
320
+ // or it rendered late): submit it first. When it is this very
321
+ // message, submitting it IS this delivery — never paste it twice.
322
+ const sameMessage = SessionCommandHelper.ownPastes.get(sessionName)?.message === message;
323
+ this.logger.warn('An earlier paste of ours is still in the input box — submitting it', { sessionName, sameMessage });
324
+ const outcome = await this.ensureOwnPasteSubmitted(sessionName);
325
+ if (sameMessage && outcome === 'submitted')
326
+ return;
178
327
  before = this.readInputBox(sessionName, message, 'before-write');
179
328
  }
180
329
  if (before.state === 'ours' && !before.ownPasteMarker) {
@@ -196,6 +345,7 @@ export class SessionCommandHelper {
196
345
  // Without this, special characters like (), $, `, and " can trigger
197
346
  // shell mode or be read as key sequences in Gemini CLI (#292, #293).
198
347
  session.write(`\x1b[200~${message}\x1b[201~`);
348
+ this.recordOwnPaste(sessionName, message);
199
349
  // Scale delay based on message size: large prompts (e.g. 409-line registration
200
350
  // prompts) need more time for Claude Code to process the bracketed paste.
201
351
  // Base delay + 1ms per 10 characters, capped at 5 seconds.
@@ -209,11 +359,13 @@ export class SessionCommandHelper {
209
359
  await delay(waitMs); // the paste may not have rendered yet
210
360
  after = this.readInputBox(sessionName, message, 'after-paste');
211
361
  }
212
- // Remember the collapsed marker only for callers that check the box
213
- // after delivery (sendMessageWithRetry → ensureOwnPasteSubmitted);
214
- // other paths leave no record that could outlive the paste.
215
- if (options.recordPasteMarker && after.state === 'ours' && isPasteMarker(after.text)) {
216
- SessionCommandHelper.ownPasteMarkers.set(sessionName, { marker: after.text.trim(), message, at: SessionCommandHelper.now() });
362
+ // A busy agent renders a paste late (Claude Code: ~10 s mid-turn,
363
+ // 2026-10-03 Ella). Keep looking a while before giving up; if it shows
364
+ // up later anyway, the record makes it ours and it is submitted then.
365
+ const renderDeadline = SessionCommandHelper.now() + SessionCommandHelper.pasteRenderMaxWaitMs;
366
+ while (after.state === 'empty' && SessionCommandHelper.now() < renderDeadline) {
367
+ await delay(TUI_INPUT_GUARD.PASTE_RENDER_POLL_MS);
368
+ after = this.readInputBox(sessionName, message, 'after-paste');
217
369
  }
218
370
  if (after.state !== 'ours') {
219
371
  this.logger.warn('Input box does not hold exactly our text after the paste — not pressing Enter, not clearing', {
@@ -260,7 +412,7 @@ export class SessionCommandHelper {
260
412
  const after = this.readInputBox(sessionName, '', 'recovery');
261
413
  // One Enter on it, whatever happened: never press Enter on that marker
262
414
  // again from this record.
263
- SessionCommandHelper.ownPasteMarkers.delete(sessionName);
415
+ SessionCommandHelper.forgetOwnPaste(sessionName);
264
416
  if (after.ownPasteMarker || (after.state === 'foreign' && after.text.trim() === reading.text.trim())) {
265
417
  this.logger.warn('Our pasted message is still in the input box after Enter — not delivered', { sessionName });
266
418
  return 'stuck';
@@ -272,7 +424,9 @@ export class SessionCommandHelper {
272
424
  * Forget recorded paste markers (tests).
273
425
  */
274
426
  static resetOwnPasteMarkersForTesting() {
275
- SessionCommandHelper.ownPasteMarkers.clear();
427
+ SessionCommandHelper.ownPastes.clear();
428
+ SessionCommandHelper.inFlight.clear();
429
+ SessionCommandHelper.stopWatchingIfIdle();
276
430
  }
277
431
  /**
278
432
  * Type a command line into a plain shell and run it (paste + Enter).
@@ -308,6 +462,9 @@ export class SessionCommandHelper {
308
462
  * @returns The reading
309
463
  */
310
464
  readInputBox(sessionName, message, stage = 'recovery') {
465
+ // First: a paste record that has gone unseen too long ends here, even
466
+ // when the box cannot be read now.
467
+ const shown = this.ownPasteShown(sessionName);
311
468
  const capture = this.backend.captureInputView;
312
469
  if (typeof capture !== 'function')
313
470
  return { state: 'unknown', text: '', lineCount: 0 };
@@ -315,19 +472,65 @@ export class SessionCommandHelper {
315
472
  const view = capture.call(this.backend, sessionName);
316
473
  if (!view)
317
474
  return { state: 'unknown', text: '', lineCount: 0 };
318
- // The marker of our own recent paste is ours whatever we send next —
319
- // and the record ends the moment the box shows anything else.
320
- const own = SessionCommandHelper.ownMarkerFor(sessionName);
321
- const reading = classifyTuiInput(view, message, stage, own);
322
- if (own && reading.state !== 'unknown' && !reading.ownPasteMarker) {
323
- SessionCommandHelper.ownPasteMarkers.delete(sessionName);
324
- }
325
- return reading;
475
+ return this.applyOwnPaste(sessionName, classifyTuiInput(view, message, stage, shown));
326
476
  }
327
477
  catch {
328
478
  return { state: 'unknown', text: '', lineCount: 0 };
329
479
  }
330
480
  }
481
+ /**
482
+ * What the box showed for our recorded paste, while the record stands.
483
+ * Ends the record when it has gone unseen too long.
484
+ *
485
+ * @param sessionName - The session
486
+ * @returns The text the box showed, or undefined (none seen / no record)
487
+ */
488
+ ownPasteShown(sessionName) {
489
+ const rec = SessionCommandHelper.ownPastes.get(sessionName);
490
+ if (!rec)
491
+ return undefined;
492
+ const now = SessionCommandHelper.now();
493
+ const unseenFor = now - (rec.lastSeenAt ?? rec.pastedAt);
494
+ const limit = rec.shown === undefined ? TUI_INPUT_GUARD.OWN_PASTE_PENDING_MAX_MS : TUI_INPUT_GUARD.OWN_PASTE_UNSEEN_MAX_MS;
495
+ if (unseenFor > limit) {
496
+ SessionCommandHelper.forgetOwnPaste(sessionName);
497
+ return undefined;
498
+ }
499
+ return rec.shown;
500
+ }
501
+ /**
502
+ * Keep the paste record in step with a reading: the record stands only
503
+ * while every readable box shows our paste. A pending paste (not seen
504
+ * yet) is adopted when the box first shows its shape; an empty box keeps
505
+ * it pending; anything else ends it.
506
+ *
507
+ * @param sessionName - The session
508
+ * @param reading - The classification just made
509
+ * @returns The reading, marked `ownPasteMarker` when the box shows our paste
510
+ */
511
+ applyOwnPaste(sessionName, reading) {
512
+ const rec = SessionCommandHelper.ownPastes.get(sessionName);
513
+ if (!rec || reading.state === 'unknown')
514
+ return reading;
515
+ const now = SessionCommandHelper.now();
516
+ if (rec.shown !== undefined) {
517
+ if (reading.ownPasteMarker) {
518
+ rec.lastSeenAt = now;
519
+ return reading;
520
+ }
521
+ SessionCommandHelper.forgetOwnPaste(sessionName);
522
+ return reading;
523
+ }
524
+ if (reading.state === 'empty')
525
+ return reading; // not rendered yet
526
+ if (pasteShowsAs(reading.text, rec.message)) {
527
+ rec.shown = reading.text.trim();
528
+ rec.lastSeenAt = now;
529
+ return { ...reading, state: 'ours', ownPasteMarker: true };
530
+ }
531
+ SessionCommandHelper.forgetOwnPaste(sessionName);
532
+ return reading;
533
+ }
331
534
  /**
332
535
  * Empty the input box — only call it for text proven to be the harness's
333
536
  * own. Sends Ctrl+U then Backspace (clear the line, join the empty line to
@@ -1 +1 @@
1
- {"version":3,"file":"session-command-helper.js","sourceRoot":"","sources":["../../../../../../backend/src/services/session/session-command-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-command-helper.js","sourceRoot":"","sources":["../../../../../../backend/src/services/session/session-command-helper.ts"],"names":[],"mappings":"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"}
@@ -89,6 +89,17 @@ interface FoundBox {
89
89
  layout: TuiInputLayout;
90
90
  lines: string[];
91
91
  }
92
+ /**
93
+ * Whether a line is an input box's horizontal rule (Claude Code /
94
+ * Antigravity box edge), bare (`────`) or labelled: Claude Code prints the
95
+ * agent/session name inside the top rule (`──── crewly-orc ─`) on every
96
+ * live machine. Every rule detector should use this, not `/^─+$/`.
97
+ *
98
+ * @param line - Screen line
99
+ * @param minChars - Fewest `─` that make a rule
100
+ * @returns True for a rule
101
+ */
102
+ export declare function isInputBoxRule(line: string, minChars?: number): boolean;
92
103
  /**
93
104
  * Find the input box on a screen.
94
105
  *
@@ -106,6 +117,52 @@ export declare function findTuiInputBox(view: TuiInputView): FoundBox | null;
106
117
  * @returns True for a lone paste marker
107
118
  */
108
119
  export declare function isPasteMarker(text: string): boolean;
120
+ /** What a screen says about a turn in progress, read from its structure. */
121
+ export interface TurnScreenSignals {
122
+ /** A Claude Code / Antigravity input box (two rules) was found */
123
+ box: boolean;
124
+ /** "esc to interrupt" in the footer rows below the box (or, without a box, in the bottom rows) */
125
+ busyBar: boolean;
126
+ /** The spinner line directly above the box's top rule, if any */
127
+ spinner: string | null;
128
+ }
129
+ /**
130
+ * Read a screen's turn-in-progress signals from where the runtime paints
131
+ * them — never from the transcript, which can quote anything (an agent
132
+ * working on Crewly prints "esc to interrupt"; a reply can end "Understood…"):
133
+ * - the busy bar only in the footer rows below the box's bottom rule
134
+ * (at most FOOTER_MAX_LINES); without a box (Codex), only in the bottom
135
+ * FOOTER_MAX_LINES non-empty rows;
136
+ * - the spinner only as the single non-empty line directly above the box's
137
+ * top rule, in Claude Code's spinner shape.
138
+ *
139
+ * @param screen - Plain screen text (bottom of the screen)
140
+ * @returns The signals
141
+ */
142
+ export declare function readTurnSignals(screen: string): TurnScreenSignals;
143
+ /**
144
+ * Whether a screen shows a turn in progress (see {@link readTurnSignals}).
145
+ * Structure only: callers that act on "busy" for long also check that the
146
+ * screen is repainting (SessionCommandHelper.isAgentBusy).
147
+ *
148
+ * @param screen - Plain screen text (bottom of the screen)
149
+ * @returns True when the busy bar or the spinner line is in place
150
+ */
151
+ export declare function screenShowsTurnInProgress(screen: string): boolean;
152
+ /**
153
+ * Whether input-box text is how the runtime shows a paste of `message`:
154
+ * the message itself (whitespace-insensitive), or a collapsed marker of its
155
+ * shape — Claude Code "[Pasted text #N +L lines]" where L is the number of
156
+ * line breaks (a single long line shows as "[Pasted text #N]"), Codex
157
+ * "[Pasted Content C chars]" where C is its length. Used to recognise a
158
+ * paste of ours that rendered only after we stopped looking (a busy Claude
159
+ * Code renders a paste seconds late).
160
+ *
161
+ * @param text - The input box text
162
+ * @param message - The message the harness pasted
163
+ * @returns True when the text is what that paste looks like
164
+ */
165
+ export declare function pasteShowsAs(text: string, message: string): boolean;
109
166
  /**
110
167
  * Classify what an input box holds relative to the message the harness
111
168
  * wants to send (or has just pasted).
@@ -1 +1 @@
1
- {"version":3,"file":"tui-input-guard.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/session/tui-input-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAIH;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAErE,kDAAkD;AAClD,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,eAAe,CAAC;AAElG;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,+CAA+C;IAC/C,KAAK,EAAE,aAAa,CAAC;IACrB,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,aAAa,GAAG,UAAU,CAAC;AAExE,wDAAwD;AACxD,UAAU,QAAQ;IACjB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;CAChB;AA6JD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,IAAI,CAMnE;AAaD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,aAA6B,EACpC,SAAS,CAAC,EAAE,MAAM,GAChB,eAAe,CAkCjB;AAED;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC5C,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAAC;IAEjD;;;OAGG;gBACS,KAAK,EAAE,cAAc,GAAG,eAAe,EAAE,OAAO,EAAE,eAAe;CAU7E"}
1
+ {"version":3,"file":"tui-input-guard.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/session/tui-input-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAIH;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAErE,kDAAkD;AAClD,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,eAAe,CAAC;AAElG;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,+CAA+C;IAC/C,KAAK,EAAE,aAAa,CAAC;IACrB,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,aAAa,GAAG,UAAU,CAAC;AAExE,wDAAwD;AACxD,UAAU,QAAQ;IACjB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;CAChB;AAaD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAuC,GAAG,OAAO,CAKvG;AAwID;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,IAAI,CAMnE;AAaD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAWD,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IACjC,kEAAkE;IAClE,GAAG,EAAE,OAAO,CAAC;IACb,kGAAkG;IAClG,OAAO,EAAE,OAAO,CAAC;IACjB,iEAAiE;IACjE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAmBjE;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGjE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAkBnE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,aAA6B,EACpC,SAAS,CAAC,EAAE,MAAM,GAChB,eAAe,CAkCjB;AAED;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC5C,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAAC;IAEjD;;;OAGG;gBACS,KAAK,EAAE,cAAc,GAAG,eAAe,EAAE,OAAO,EAAE,eAAe;CAU7E"}