crewly 1.20.206 → 1.20.208

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 (151) hide show
  1. package/config/hooks/credential-guard/guard.sh +243 -0
  2. package/dist/backend/backend/src/constants.d.ts +63 -2
  3. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  4. package/dist/backend/backend/src/constants.js +67 -1
  5. package/dist/backend/backend/src/constants.js.map +1 -1
  6. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts.map +1 -1
  7. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js +17 -1
  8. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js.map +1 -1
  9. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts +19 -5
  10. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
  11. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +71 -5
  12. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
  13. package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts.map +1 -1
  14. package/dist/backend/backend/src/controllers/cloud/cloud.routes.js +4 -1
  15. package/dist/backend/backend/src/controllers/cloud/cloud.routes.js.map +1 -1
  16. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  17. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +4 -0
  18. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  19. package/dist/backend/backend/src/controllers/session/session.controller.d.ts.map +1 -1
  20. package/dist/backend/backend/src/controllers/session/session.controller.js +2 -0
  21. package/dist/backend/backend/src/controllers/session/session.controller.js.map +1 -1
  22. package/dist/backend/backend/src/controllers/workspace/workspace.routes.d.ts.map +1 -1
  23. package/dist/backend/backend/src/controllers/workspace/workspace.routes.js +10 -2
  24. package/dist/backend/backend/src/controllers/workspace/workspace.routes.js.map +1 -1
  25. package/dist/backend/backend/src/index.d.ts +8 -0
  26. package/dist/backend/backend/src/index.d.ts.map +1 -1
  27. package/dist/backend/backend/src/index.js +54 -2
  28. package/dist/backend/backend/src/index.js.map +1 -1
  29. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  30. package/dist/backend/backend/src/services/agent/agent-registration.service.js +16 -2
  31. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  32. package/dist/backend/backend/src/services/agent/codex-daemon.utils.d.ts +16 -0
  33. package/dist/backend/backend/src/services/agent/codex-daemon.utils.d.ts.map +1 -1
  34. package/dist/backend/backend/src/services/agent/codex-daemon.utils.js +44 -0
  35. package/dist/backend/backend/src/services/agent/codex-daemon.utils.js.map +1 -1
  36. package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts +14 -2
  37. package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -1
  38. package/dist/backend/backend/src/services/agent/control-plane-guard.service.js +18 -3
  39. package/dist/backend/backend/src/services/agent/control-plane-guard.service.js.map +1 -1
  40. package/dist/backend/backend/src/services/agent/credential-guard.service.d.ts +153 -0
  41. package/dist/backend/backend/src/services/agent/credential-guard.service.d.ts.map +1 -0
  42. package/dist/backend/backend/src/services/agent/credential-guard.service.js +314 -0
  43. package/dist/backend/backend/src/services/agent/credential-guard.service.js.map +1 -0
  44. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  45. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +5 -0
  46. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  47. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts +39 -0
  48. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  49. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +132 -3
  50. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  51. package/dist/backend/backend/src/services/core/credential-files.d.ts +26 -0
  52. package/dist/backend/backend/src/services/core/credential-files.d.ts.map +1 -0
  53. package/dist/backend/backend/src/services/core/credential-files.js +60 -0
  54. package/dist/backend/backend/src/services/core/credential-files.js.map +1 -0
  55. package/dist/backend/backend/src/services/google/docs.service.d.ts.map +1 -1
  56. package/dist/backend/backend/src/services/google/docs.service.js +14 -1
  57. package/dist/backend/backend/src/services/google/docs.service.js.map +1 -1
  58. package/dist/backend/backend/src/services/google/drive.service.d.ts.map +1 -1
  59. package/dist/backend/backend/src/services/google/drive.service.js +6 -4
  60. package/dist/backend/backend/src/services/google/drive.service.js.map +1 -1
  61. package/dist/backend/backend/src/services/google/google-api.client.d.ts +8 -3
  62. package/dist/backend/backend/src/services/google/google-api.client.d.ts.map +1 -1
  63. package/dist/backend/backend/src/services/google/google-api.client.js +5 -2
  64. package/dist/backend/backend/src/services/google/google-api.client.js.map +1 -1
  65. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.d.ts +10 -0
  66. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.d.ts.map +1 -1
  67. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.js +16 -0
  68. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.js.map +1 -1
  69. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +10 -0
  70. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  71. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js +21 -0
  72. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  73. package/dist/backend/backend/src/services/monitoring/credential-guard-alerts.d.ts +68 -0
  74. package/dist/backend/backend/src/services/monitoring/credential-guard-alerts.d.ts.map +1 -0
  75. package/dist/backend/backend/src/services/monitoring/credential-guard-alerts.js +95 -0
  76. package/dist/backend/backend/src/services/monitoring/credential-guard-alerts.js.map +1 -0
  77. package/dist/backend/backend/src/services/session/input-ledger.d.ts +115 -0
  78. package/dist/backend/backend/src/services/session/input-ledger.d.ts.map +1 -0
  79. package/dist/backend/backend/src/services/session/input-ledger.js +144 -0
  80. package/dist/backend/backend/src/services/session/input-ledger.js.map +1 -0
  81. package/dist/backend/backend/src/services/session/session-command-helper.d.ts +26 -0
  82. package/dist/backend/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  83. package/dist/backend/backend/src/services/session/session-command-helper.js +156 -37
  84. package/dist/backend/backend/src/services/session/session-command-helper.js.map +1 -1
  85. package/dist/backend/backend/src/services/session/tui-input-guard.d.ts +40 -0
  86. package/dist/backend/backend/src/services/session/tui-input-guard.d.ts.map +1 -1
  87. package/dist/backend/backend/src/services/session/tui-input-guard.js +95 -0
  88. package/dist/backend/backend/src/services/session/tui-input-guard.js.map +1 -1
  89. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  90. package/dist/backend/backend/src/websocket/terminal.gateway.js +4 -1
  91. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  92. package/dist/backend/build-info.json +2 -2
  93. package/dist/cli/backend/src/constants.d.ts +63 -2
  94. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  95. package/dist/cli/backend/src/constants.js +67 -1
  96. package/dist/cli/backend/src/constants.js.map +1 -1
  97. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  98. package/dist/cli/backend/src/services/agent/agent-registration.service.js +16 -2
  99. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  100. package/dist/cli/backend/src/services/agent/codex-daemon.utils.d.ts +16 -0
  101. package/dist/cli/backend/src/services/agent/codex-daemon.utils.d.ts.map +1 -1
  102. package/dist/cli/backend/src/services/agent/codex-daemon.utils.js +44 -0
  103. package/dist/cli/backend/src/services/agent/codex-daemon.utils.js.map +1 -1
  104. package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts +14 -2
  105. package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -1
  106. package/dist/cli/backend/src/services/agent/control-plane-guard.service.js +18 -3
  107. package/dist/cli/backend/src/services/agent/control-plane-guard.service.js.map +1 -1
  108. package/dist/cli/backend/src/services/agent/credential-guard.service.d.ts +153 -0
  109. package/dist/cli/backend/src/services/agent/credential-guard.service.d.ts.map +1 -0
  110. package/dist/cli/backend/src/services/agent/credential-guard.service.js +314 -0
  111. package/dist/cli/backend/src/services/agent/credential-guard.service.js.map +1 -0
  112. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  113. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +5 -0
  114. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  115. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts +39 -0
  116. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  117. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +132 -3
  118. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  119. package/dist/cli/backend/src/services/core/credential-files.d.ts +26 -0
  120. package/dist/cli/backend/src/services/core/credential-files.d.ts.map +1 -0
  121. package/dist/cli/backend/src/services/core/credential-files.js +60 -0
  122. package/dist/cli/backend/src/services/core/credential-files.js.map +1 -0
  123. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.d.ts +10 -0
  124. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.d.ts.map +1 -1
  125. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.js +16 -0
  126. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.js.map +1 -1
  127. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +10 -0
  128. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  129. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js +21 -0
  130. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  131. package/dist/cli/backend/src/services/session/input-ledger.d.ts +115 -0
  132. package/dist/cli/backend/src/services/session/input-ledger.d.ts.map +1 -0
  133. package/dist/cli/backend/src/services/session/input-ledger.js +144 -0
  134. package/dist/cli/backend/src/services/session/input-ledger.js.map +1 -0
  135. package/dist/cli/backend/src/services/session/session-command-helper.d.ts +26 -0
  136. package/dist/cli/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  137. package/dist/cli/backend/src/services/session/session-command-helper.js +156 -37
  138. package/dist/cli/backend/src/services/session/session-command-helper.js.map +1 -1
  139. package/dist/cli/backend/src/services/session/tui-input-guard.d.ts +40 -0
  140. package/dist/cli/backend/src/services/session/tui-input-guard.d.ts.map +1 -1
  141. package/dist/cli/backend/src/services/session/tui-input-guard.js +95 -0
  142. package/dist/cli/backend/src/services/session/tui-input-guard.js.map +1 -1
  143. package/dist/cli/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  144. package/dist/cli/backend/src/websocket/terminal.gateway.js +4 -1
  145. package/dist/cli/backend/src/websocket/terminal.gateway.js.map +1 -1
  146. package/package.json +1 -1
  147. package/packages/crewly-agent/src/runtime/credential-guard.test.ts +48 -0
  148. package/packages/crewly-agent/src/runtime/credential-guard.ts +56 -0
  149. package/packages/crewly-agent/src/runtime/tool-registry.ts +15 -0
  150. package/packages/crewly-agent/src/runtime/web-search.tool.test.ts +18 -0
  151. package/packages/crewly-agent/src/runtime/web-search.tool.ts +36 -14
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Input ledger — who last put input into each agent's terminal.
3
+ *
4
+ * Text reaches an agent's PTY input box from exactly two places:
5
+ * - the harness's guarded paste (`SessionCommandHelper.sendMessage`), which
6
+ * records each paste here with {@link noteHarnessPaste};
7
+ * - outside input: the dashboard / phone terminal (TerminalGateway) and the
8
+ * raw-input HTTP surfaces (`/terminal/:s/write` raw mode, `/input`,
9
+ * `/key`, `/sessions/:name/write` raw mode), which record it here with
10
+ * {@link noteOutsideInput}. These are the only writers of raw input a
11
+ * person (the owner, or another agent typing raw) can reach.
12
+ *
13
+ * So when the box holds text and no outside input arrived since the
14
+ * harness's own pastes, that text is the harness's — it cannot be the
15
+ * owner's (1.20.207 Ella: two of our pastes, concatenated, sat unsent for
16
+ * nine hours because the box no longer matched one recorded paste).
17
+ *
18
+ * Other harness writes (OAuth relogin, runtime-terms answers, `/clear`) are
19
+ * submitted at once and leave nothing in the box; they are neither.
20
+ *
21
+ * Module-level and dependency-free so the gateway, controllers and the
22
+ * session helper can share it without import cycles. In memory: a restart
23
+ * recreates every session, which starts a new ledger.
24
+ *
25
+ * @module services/session/input-ledger
26
+ */
27
+ /** Most pastes remembered per session */
28
+ const MAX_PASTES = 10;
29
+ const ledgers = new Map();
30
+ /**
31
+ * Record a harness paste into a session's input box.
32
+ *
33
+ * @param sessionName - The session
34
+ * @param message - What was pasted
35
+ * @param at - When (ms)
36
+ */
37
+ export function noteHarnessPaste(sessionName, message, at = Date.now()) {
38
+ const ledger = ledgers.get(sessionName) ?? { pastes: [], shown: [] };
39
+ ledger.pastes.push({ message, at });
40
+ if (ledger.pastes.length > MAX_PASTES)
41
+ ledger.pastes.splice(0, ledger.pastes.length - MAX_PASTES);
42
+ ledgers.set(sessionName, ledger);
43
+ }
44
+ /**
45
+ * Record outside input into a session (owner keystrokes / pastes from the
46
+ * dashboard or phone terminal, raw writes through the input API). The
47
+ * harness's earlier pastes can no longer be told apart from it.
48
+ *
49
+ * @param sessionName - The session
50
+ * @param at - When (ms)
51
+ */
52
+ export function noteOutsideInput(sessionName, at = Date.now()) {
53
+ const ledger = ledgers.get(sessionName) ?? { pastes: [], shown: [] };
54
+ ledger.lastOutsideInputAt = at;
55
+ ledger.pastes = [];
56
+ ledgers.set(sessionName, ledger);
57
+ }
58
+ /**
59
+ * The harness pastes made since the last outside input, oldest first.
60
+ *
61
+ * @param sessionName - The session
62
+ * @returns The pastes (a copy)
63
+ */
64
+ export function harnessPastesSinceOutsideInput(sessionName) {
65
+ return [...(ledgers.get(sessionName)?.pastes ?? [])];
66
+ }
67
+ /**
68
+ * When outside input last arrived, if ever.
69
+ *
70
+ * @param sessionName - The session
71
+ * @returns Epoch ms, or undefined
72
+ */
73
+ export function lastOutsideInputAt(sessionName) {
74
+ return ledgers.get(sessionName)?.lastOutsideInputAt;
75
+ }
76
+ /**
77
+ * Forget pastes the box no longer holds: those submitted (by our Enter),
78
+ * or older than `before` when the box reads empty.
79
+ *
80
+ * @param sessionName - The session
81
+ * @param keep - Pastes to keep
82
+ */
83
+ export function keepHarnessPastes(sessionName, keep) {
84
+ const ledger = ledgers.get(sessionName);
85
+ if (!ledger)
86
+ return;
87
+ ledger.pastes = ledger.pastes.filter(keep);
88
+ }
89
+ /**
90
+ * Record the exact marker the box showed for one of our pastes.
91
+ *
92
+ * @param sessionName - The session
93
+ * @param marker - The marker text ("[Pasted text #2 +5 lines]")
94
+ * @param message - The paste it stands for
95
+ */
96
+ export function noteShownMarker(sessionName, marker, message) {
97
+ const ledger = ledgers.get(sessionName) ?? { pastes: [], shown: [] };
98
+ if (!ledger.shown.some((m) => m.marker === marker))
99
+ ledger.shown.push({ marker, message });
100
+ if (ledger.shown.length > MAX_PASTES)
101
+ ledger.shown.splice(0, ledger.shown.length - MAX_PASTES);
102
+ ledgers.set(sessionName, ledger);
103
+ }
104
+ /**
105
+ * Markers the box showed for our pastes.
106
+ *
107
+ * @param sessionName - The session
108
+ * @returns Marker → message pairs (a copy)
109
+ */
110
+ export function shownMarkers(sessionName) {
111
+ return [...(ledgers.get(sessionName)?.shown ?? [])];
112
+ }
113
+ /**
114
+ * Forget shown markers (the box no longer holds them).
115
+ *
116
+ * @param sessionName - The session
117
+ * @param keep - Markers to keep
118
+ */
119
+ export function keepShownMarkers(sessionName, keep) {
120
+ const ledger = ledgers.get(sessionName);
121
+ if (ledger)
122
+ ledger.shown = ledger.shown.filter(keep);
123
+ }
124
+ /**
125
+ * Forget a session's ledger (session created, killed, runtime relaunched).
126
+ *
127
+ * @param sessionName - The session
128
+ */
129
+ export function forgetInputLedger(sessionName) {
130
+ ledgers.delete(sessionName);
131
+ }
132
+ /**
133
+ * Sessions with harness pastes on record.
134
+ *
135
+ * @returns Session names
136
+ */
137
+ export function sessionsWithHarnessPastes() {
138
+ return [...ledgers.entries()].filter(([, l]) => l.pastes.length > 0 || l.shown.length > 0).map(([s]) => s);
139
+ }
140
+ /** Clear every ledger (tests). */
141
+ export function resetInputLedgerForTesting() {
142
+ ledgers.clear();
143
+ }
144
+ //# sourceMappingURL=input-ledger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-ledger.js","sourceRoot":"","sources":["../../../../../../backend/src/services/session/input-ledger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAiBH,yCAAyC;AACzC,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB,EAAE,OAAe,EAAE,KAAa,IAAI,CAAC,GAAG,EAAE;IAC7F,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACrE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU;QAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAClG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB,EAAE,KAAa,IAAI,CAAC,GAAG,EAAE;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACrE,MAAM,CAAC,kBAAkB,GAAG,EAAE,CAAC;IAC/B,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,WAAmB;IACjE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACrD,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB,EAAE,IAAkC;IACxF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,MAAc,EAAE,OAAe;IACnF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACrE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;QAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3F,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU;QAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC/C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB,EAAE,IAAyD;IAC9G,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACxC,IAAI,MAAM;QAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACpD,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB;IACxC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5G,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,0BAA0B;IACzC,OAAO,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC"}
@@ -68,6 +68,32 @@ export declare class SessionCommandHelper {
68
68
  * @param sessionName - The session
69
69
  */
70
70
  static forgetOwnPaste(sessionName: string): void;
71
+ /**
72
+ * Forget everything about a session's input: its paste record and its
73
+ * input ledger (session created or killed, runtime relaunched).
74
+ *
75
+ * @param sessionName - The session
76
+ */
77
+ static resetSessionInput(sessionName: string): void;
78
+ /**
79
+ * Called with the messages our Enter just submitted from the box (a lost
80
+ * Enter, or a paste that rendered late). Wired to drop queued copies of
81
+ * them, so a held retry does not deliver them a second time.
82
+ */
83
+ static onOwnPasteSubmitted: ((sessionName: string, messages: string[]) => void) | null;
84
+ /**
85
+ * Called once when an idle agent's box has held text that is not ours
86
+ * and not provably anyone else's for STUCK_INPUT_NOTIFY_MS. Wired to the
87
+ * blocked-input notice.
88
+ */
89
+ static onStuckInput: ((sessionName: string, info: {
90
+ inputLength: number;
91
+ forMs: number;
92
+ }) => void) | null;
93
+ /** Per session: since when an idle agent's box held text we could not attribute, and whether it was reported */
94
+ private static readonly stuckSince;
95
+ /** The latest helper, for sessions the watcher only knows from the ledger */
96
+ private static lastHelper;
71
97
  /**
72
98
  * Whether a paste of ours is on record for a session (tests, diagnostics).
73
99
  *
@@ -1 +1 @@
1
- {"version":3,"file":"session-command-helper.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/session/session-command-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-command-helper.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/session/session-command-helper.ts"],"names":[],"mappings":"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"}
@@ -21,8 +21,9 @@ 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, pasteShowsAs, screenShowsTurnInProgress, TuiInputGuardError } from './tui-input-guard.js';
24
+ import { boxHoldsOnlyOwnPastes, classifyTuiInput, pasteShowsAs, screenShowsTurnInProgress, TuiInputGuardError, TuiPasteHoldError } from './tui-input-guard.js';
25
25
  import { noteHarnessWrite } from '../trace/turn-origin.js';
26
+ import { forgetInputLedger, harnessPastesSinceOutsideInput, resetInputLedgerForTesting as resetInputLedgerForTestingHook, keepHarnessPastes, keepShownMarkers, noteHarnessPaste, noteShownMarker, sessionsWithHarnessPastes, shownMarkers, } from './input-ledger.js';
26
27
  /**
27
28
  * Key code mappings for special keys
28
29
  */
@@ -109,6 +110,34 @@ export class SessionCommandHelper {
109
110
  SessionCommandHelper.ownPastes.delete(sessionName);
110
111
  SessionCommandHelper.stopWatchingIfIdle();
111
112
  }
113
+ /**
114
+ * Forget everything about a session's input: its paste record and its
115
+ * input ledger (session created or killed, runtime relaunched).
116
+ *
117
+ * @param sessionName - The session
118
+ */
119
+ static resetSessionInput(sessionName) {
120
+ SessionCommandHelper.ownPastes.delete(sessionName);
121
+ SessionCommandHelper.stuckSince.delete(sessionName);
122
+ forgetInputLedger(sessionName);
123
+ SessionCommandHelper.stopWatchingIfIdle();
124
+ }
125
+ /**
126
+ * Called with the messages our Enter just submitted from the box (a lost
127
+ * Enter, or a paste that rendered late). Wired to drop queued copies of
128
+ * them, so a held retry does not deliver them a second time.
129
+ */
130
+ static onOwnPasteSubmitted = null;
131
+ /**
132
+ * Called once when an idle agent's box has held text that is not ours
133
+ * and not provably anyone else's for STUCK_INPUT_NOTIFY_MS. Wired to the
134
+ * blocked-input notice.
135
+ */
136
+ static onStuckInput = null;
137
+ /** Per session: since when an idle agent's box held text we could not attribute, and whether it was reported */
138
+ static stuckSince = new Map();
139
+ /** The latest helper, for sessions the watcher only knows from the ledger */
140
+ static lastHelper = null;
112
141
  /**
113
142
  * Whether a paste of ours is on record for a session (tests, diagnostics).
114
143
  *
@@ -125,7 +154,10 @@ export class SessionCommandHelper {
125
154
  * @param message - What was pasted
126
155
  */
127
156
  recordOwnPaste(sessionName, message) {
128
- SessionCommandHelper.ownPastes.set(sessionName, { message, pastedAt: SessionCommandHelper.now(), helper: this });
157
+ const at = SessionCommandHelper.now();
158
+ SessionCommandHelper.ownPastes.set(sessionName, { message, pastedAt: at, helper: this });
159
+ noteHarnessPaste(sessionName, message, at);
160
+ SessionCommandHelper.lastHelper = this;
129
161
  SessionCommandHelper.startWatching();
130
162
  }
131
163
  /** Whether recording a paste starts the timed watcher (tests drive it by hand). */
@@ -141,7 +173,9 @@ export class SessionCommandHelper {
141
173
  }
142
174
  /** Stop the watcher once no paste is on record. */
143
175
  static stopWatchingIfIdle() {
144
- if (SessionCommandHelper.ownPastes.size > 0 || !SessionCommandHelper.watchTimer)
176
+ if (!SessionCommandHelper.watchTimer)
177
+ return;
178
+ if (SessionCommandHelper.ownPastes.size > 0 || sessionsWithHarnessPastes().length > 0)
145
179
  return;
146
180
  clearInterval(SessionCommandHelper.watchTimer);
147
181
  SessionCommandHelper.watchTimer = null;
@@ -155,18 +189,42 @@ export class SessionCommandHelper {
155
189
  * @returns Resolves when every session was looked at
156
190
  */
157
191
  static async watchOwnPastes() {
158
- for (const [sessionName, rec] of [...SessionCommandHelper.ownPastes]) {
192
+ const sessions = new Set([...SessionCommandHelper.ownPastes.keys(), ...sessionsWithHarnessPastes()]);
193
+ for (const sessionName of sessions) {
159
194
  if (SessionCommandHelper.inFlight.has(sessionName))
160
195
  continue;
196
+ const helper = SessionCommandHelper.ownPastes.get(sessionName)?.helper ?? SessionCommandHelper.lastHelper;
197
+ if (!helper)
198
+ continue;
161
199
  try {
162
- if (!rec.helper.backend.sessionExists(sessionName)) {
163
- SessionCommandHelper.ownPastes.delete(sessionName);
200
+ if (!helper.backend.sessionExists(sessionName)) {
201
+ SessionCommandHelper.resetSessionInput(sessionName);
202
+ continue;
203
+ }
204
+ const reading = helper.readInputBox(sessionName, '', 'recovery');
205
+ if (reading.state === 'empty' || reading.state === 'unknown') {
206
+ SessionCommandHelper.stuckSince.delete(sessionName);
164
207
  continue;
165
208
  }
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 });
209
+ if (!(await helper.isAgentIdle(sessionName)))
210
+ continue;
211
+ if (reading.ownPasteMarker) {
212
+ const outcome = await helper.ensureOwnPasteSubmitted(sessionName);
213
+ helper.logger.warn('Our earlier paste was still in the input box of an idle agent — pressed Enter on it once', { sessionName, outcome });
214
+ continue;
215
+ }
216
+ // An idle agent's box holds text we cannot attribute to our pastes,
217
+ // though no outside input arrived since them (else the ledger would
218
+ // be empty and we would not be here). Not submitted: text the harness
219
+ // cannot prove it wrote is never submitted (2026-10-03 incident).
220
+ // Reported once if it stays.
221
+ const now = SessionCommandHelper.now();
222
+ const stuck = SessionCommandHelper.stuckSince.get(sessionName) ?? { since: now, reported: false };
223
+ SessionCommandHelper.stuckSince.set(sessionName, stuck);
224
+ if (!stuck.reported && now - stuck.since >= TUI_INPUT_GUARD.STUCK_INPUT_NOTIFY_MS) {
225
+ stuck.reported = true;
226
+ helper.logger.warn('An idle agent\'s input box has held text Crewly cannot attribute for a long time', { sessionName, inputLength: reading.text.length });
227
+ SessionCommandHelper.onStuckInput?.(sessionName, { inputLength: reading.text.length, forMs: now - stuck.since });
170
228
  }
171
229
  }
172
230
  catch {
@@ -233,6 +291,9 @@ export class SessionCommandHelper {
233
291
  constructor(backend) {
234
292
  this.logger = LoggerService.getInstance().createComponentLogger('SessionCommandHelper');
235
293
  this.backend = backend;
294
+ // Any helper can read a box (they share the one backend): the watcher
295
+ // uses the latest for sessions it only knows from the input ledger.
296
+ SessionCommandHelper.lastHelper = this;
236
297
  }
237
298
  /**
238
299
  * Get a session by name, throwing an error if it doesn't exist.
@@ -315,16 +376,43 @@ export class SessionCommandHelper {
315
376
  });
316
377
  // Step 1: the box must be readable and empty before we type.
317
378
  let before = this.readInputBox(sessionName, message, 'before-write');
379
+ // Never paste while an earlier paste of ours may still land in the box
380
+ // (pasted, not yet seen — a busy Claude Code renders it seconds late):
381
+ // two pastes in one box are one prompt nobody can take apart
382
+ // (1.20.207 Ella). When it is this very message, wait for it a while
383
+ // and submit it — that is this delivery.
384
+ const pending = SessionCommandHelper.ownPastes.get(sessionName);
385
+ if (pending && pending.shown === undefined && !before.ownPasteMarker) {
386
+ if (pending.message === message) {
387
+ const deadline = pending.pastedAt + TUI_INPUT_GUARD.PASTE_PENDING_HOLD_MS;
388
+ const maxPolls = Math.ceil(TUI_INPUT_GUARD.PASTE_PENDING_HOLD_MS / TUI_INPUT_GUARD.PASTE_RENDER_POLL_MS);
389
+ for (let i = 0; i < maxPolls && SessionCommandHelper.now() < deadline && before.state === 'empty'; i++) {
390
+ await delay(TUI_INPUT_GUARD.PASTE_RENDER_POLL_MS);
391
+ before = this.readInputBox(sessionName, message, 'before-write');
392
+ }
393
+ }
394
+ if (!before.ownPasteMarker) {
395
+ this.logger.info('Not pasting: an earlier paste of ours may still render in the input box — holding this message', {
396
+ sessionName,
397
+ pendingForMs: SessionCommandHelper.now() - pending.pastedAt,
398
+ sameMessage: pending.message === message,
399
+ });
400
+ throw new TuiPasteHoldError('pending-paste');
401
+ }
402
+ }
318
403
  if (before.ownPasteMarker) {
319
404
  // 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
405
+ // or it rendered late): submit it first. When it holds this very
321
406
  // 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 });
407
+ const sameMessage = (before.ownPasteMessages ?? []).includes(message);
408
+ this.logger.warn('An earlier paste of ours is still in the input box — submitting it', { sessionName, sameMessage, pastes: before.ownPasteMessages?.length ?? 1 });
324
409
  const outcome = await this.ensureOwnPasteSubmitted(sessionName);
325
410
  if (sameMessage && outcome === 'submitted')
326
411
  return;
327
- before = this.readInputBox(sessionName, message, 'before-write');
412
+ // Do not paste on top of what we just submitted: hold this message
413
+ // until the box has settled (it may still be clearing, or our Enter
414
+ // may not have taken — 1.20.207 02:12).
415
+ throw new TuiPasteHoldError('just-submitted');
328
416
  }
329
417
  if (before.state === 'ours' && !before.ownPasteMarker) {
330
418
  // Our own earlier paste of this very message: safe to clear.
@@ -410,14 +498,26 @@ export class SessionCommandHelper {
410
498
  session.write('\r');
411
499
  await delay(TUI_INPUT_GUARD.OWN_MARKER_SUBMIT_SETTLE_MS);
412
500
  const after = this.readInputBox(sessionName, '', 'recovery');
413
- // One Enter on it, whatever happened: never press Enter on that marker
414
- // again from this record.
501
+ // One Enter on it, whatever happened: never press Enter on those
502
+ // pastes again — not from the record, not from the ledger.
503
+ const messages = reading.ownPasteMessages ?? [];
415
504
  SessionCommandHelper.forgetOwnPaste(sessionName);
416
- if (after.ownPasteMarker || (after.state === 'foreign' && after.text.trim() === reading.text.trim())) {
505
+ keepHarnessPastes(sessionName, (p) => !messages.includes(p.message));
506
+ keepShownMarkers(sessionName, (m) => !messages.includes(m.message));
507
+ if (after.state !== 'empty' && after.state !== 'unknown' && after.text.trim() === reading.text.trim()) {
417
508
  this.logger.warn('Our pasted message is still in the input box after Enter — not delivered', { sessionName });
418
509
  return 'stuck';
419
510
  }
420
- this.logger.info('Submitted our own paste whose Enter had been lost', { sessionName });
511
+ this.logger.info('Submitted our own paste whose Enter had been lost', { sessionName, pastes: messages.length });
512
+ SessionCommandHelper.stuckSince.delete(sessionName);
513
+ if (messages.length > 0) {
514
+ try {
515
+ SessionCommandHelper.onOwnPasteSubmitted?.(sessionName, messages);
516
+ }
517
+ catch {
518
+ // The hook only tidies queued copies; delivery already happened.
519
+ }
520
+ }
421
521
  return 'submitted';
422
522
  }
423
523
  /**
@@ -426,6 +526,8 @@ export class SessionCommandHelper {
426
526
  static resetOwnPasteMarkersForTesting() {
427
527
  SessionCommandHelper.ownPastes.clear();
428
528
  SessionCommandHelper.inFlight.clear();
529
+ SessionCommandHelper.stuckSince.clear();
530
+ resetInputLedgerForTestingHook();
429
531
  SessionCommandHelper.stopWatchingIfIdle();
430
532
  }
431
533
  /**
@@ -442,7 +544,7 @@ export class SessionCommandHelper {
442
544
  async sendShellLine(sessionName, line) {
443
545
  const session = this.getSessionOrThrow(sessionName);
444
546
  // A shell line means the runtime is (re)starting in this session.
445
- SessionCommandHelper.forgetOwnPaste(sessionName);
547
+ SessionCommandHelper.resetSessionInput(sessionName);
446
548
  session.write(`\x1b[200~${line}\x1b[201~`);
447
549
  await delay(Math.min(SESSION_COMMAND_DELAYS.MESSAGE_DELAY + Math.ceil(line.length / 10), 5000));
448
550
  session.write('\r');
@@ -509,26 +611,43 @@ export class SessionCommandHelper {
509
611
  * @returns The reading, marked `ownPasteMarker` when the box shows our paste
510
612
  */
511
613
  applyOwnPaste(sessionName, reading) {
512
- const rec = SessionCommandHelper.ownPastes.get(sessionName);
513
- if (!rec || reading.state === 'unknown')
614
+ if (reading.state === 'unknown')
514
615
  return reading;
515
616
  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;
617
+ if (reading.state === 'empty') {
618
+ // Nothing of ours in the box now. Pastes older than the render
619
+ // window were submitted (or lost); markers the box showed are gone.
620
+ keepHarnessPastes(sessionName, (p) => now - p.at < TUI_INPUT_GUARD.PASTE_PENDING_HOLD_MS);
621
+ keepShownMarkers(sessionName, () => false);
523
622
  }
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 };
623
+ const rec = SessionCommandHelper.ownPastes.get(sessionName);
624
+ if (rec) {
625
+ if (rec.shown !== undefined) {
626
+ if (reading.ownPasteMarker) {
627
+ rec.lastSeenAt = now;
628
+ return { ...reading, ownPasteMessages: [rec.message] };
629
+ }
630
+ SessionCommandHelper.forgetOwnPaste(sessionName);
631
+ }
632
+ else if (reading.state !== 'empty') {
633
+ if (pasteShowsAs(reading.text, rec.message)) {
634
+ rec.shown = reading.text.trim();
635
+ rec.lastSeenAt = now;
636
+ if (/^\[Pasted /i.test(rec.shown))
637
+ noteShownMarker(sessionName, rec.shown, rec.message);
638
+ return { ...reading, state: 'ours', ownPasteMarker: true, ownPasteMessages: [rec.message] };
639
+ }
640
+ SessionCommandHelper.forgetOwnPaste(sessionName);
641
+ }
530
642
  }
531
- SessionCommandHelper.forgetOwnPaste(sessionName);
643
+ if (reading.state === 'empty' || reading.ownPasteMarker)
644
+ return reading;
645
+ // No single recorded paste matches. The box may still be made up only
646
+ // of our pastes — several run together, or one whose record ended —
647
+ // with no outside input since (input-ledger).
648
+ const messages = boxHoldsOnlyOwnPastes(reading.text, harnessPastesSinceOutsideInput(sessionName).map((p) => p.message), shownMarkers(sessionName));
649
+ if (messages)
650
+ return { ...reading, state: 'ours', ownPasteMarker: true, ownPasteMessages: messages };
532
651
  return reading;
533
652
  }
534
653
  /**
@@ -740,7 +859,7 @@ export class SessionCommandHelper {
740
859
  * Kill a session
741
860
  */
742
861
  async killSession(sessionName) {
743
- SessionCommandHelper.forgetOwnPaste(sessionName);
862
+ SessionCommandHelper.resetSessionInput(sessionName);
744
863
  await this.backend.killSession(sessionName);
745
864
  this.logger.info('Session killed', { sessionName });
746
865
  }
@@ -754,7 +873,7 @@ export class SessionCommandHelper {
754
873
  */
755
874
  async createSession(sessionName, cwd, options) {
756
875
  this.logger.info('Creating session', { sessionName, cwd });
757
- SessionCommandHelper.forgetOwnPaste(sessionName);
876
+ SessionCommandHelper.resetSessionInput(sessionName);
758
877
  // Default to shell if no command specified
759
878
  const command = options?.command || process.env.SHELL || '/bin/bash';
760
879
  const session = await this.backend.createSession(sessionName, {
@@ -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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"}