crewly 1.20.204 → 1.20.205

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 (190) hide show
  1. package/config/skills/_common/lib.sh +4 -3
  2. package/config/skills/agent/core/project-tickets/SKILL.md +13 -1
  3. package/config/skills/agent/core/project-tickets/execute.sh +20 -6
  4. package/config/skills/agent/core/project-tickets/execute.test.sh +8 -2
  5. package/dist/backend/backend/src/constants.d.ts +64 -0
  6. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  7. package/dist/backend/backend/src/constants.js +70 -0
  8. package/dist/backend/backend/src/constants.js.map +1 -1
  9. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts +1 -1
  10. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts.map +1 -1
  11. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js +9 -1
  12. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js.map +1 -1
  13. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.d.ts +1 -1
  14. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.js +1 -1
  15. package/dist/backend/backend/src/controllers/settings/role.controller.d.ts.map +1 -1
  16. package/dist/backend/backend/src/controllers/settings/role.controller.js +21 -7
  17. package/dist/backend/backend/src/controllers/settings/role.controller.js.map +1 -1
  18. package/dist/backend/backend/src/controllers/settings/settings.controller.d.ts.map +1 -1
  19. package/dist/backend/backend/src/controllers/settings/settings.controller.js +26 -20
  20. package/dist/backend/backend/src/controllers/settings/settings.controller.js.map +1 -1
  21. package/dist/backend/backend/src/controllers/skill/skill.controller.d.ts +13 -0
  22. package/dist/backend/backend/src/controllers/skill/skill.controller.d.ts.map +1 -1
  23. package/dist/backend/backend/src/controllers/skill/skill.controller.js +21 -0
  24. package/dist/backend/backend/src/controllers/skill/skill.controller.js.map +1 -1
  25. package/dist/backend/backend/src/controllers/system/system-control.controller.d.ts +11 -1
  26. package/dist/backend/backend/src/controllers/system/system-control.controller.d.ts.map +1 -1
  27. package/dist/backend/backend/src/controllers/system/system-control.controller.js +36 -2
  28. package/dist/backend/backend/src/controllers/system/system-control.controller.js.map +1 -1
  29. package/dist/backend/backend/src/index.d.ts +9 -0
  30. package/dist/backend/backend/src/index.d.ts.map +1 -1
  31. package/dist/backend/backend/src/index.js +28 -0
  32. package/dist/backend/backend/src/index.js.map +1 -1
  33. package/dist/backend/backend/src/middleware/agent-origin.middleware.d.ts +3 -2
  34. package/dist/backend/backend/src/middleware/agent-origin.middleware.d.ts.map +1 -1
  35. package/dist/backend/backend/src/middleware/agent-origin.middleware.js +5 -3
  36. package/dist/backend/backend/src/middleware/agent-origin.middleware.js.map +1 -1
  37. package/dist/backend/backend/src/middleware/caller-identity.middleware.d.ts +36 -0
  38. package/dist/backend/backend/src/middleware/caller-identity.middleware.d.ts.map +1 -1
  39. package/dist/backend/backend/src/middleware/caller-identity.middleware.js +97 -1
  40. package/dist/backend/backend/src/middleware/caller-identity.middleware.js.map +1 -1
  41. package/dist/backend/backend/src/routes/modules/terminal.routes.d.ts +4 -0
  42. package/dist/backend/backend/src/routes/modules/terminal.routes.d.ts.map +1 -1
  43. package/dist/backend/backend/src/routes/modules/terminal.routes.js +19 -5
  44. package/dist/backend/backend/src/routes/modules/terminal.routes.js.map +1 -1
  45. package/dist/backend/backend/src/scripts/input-guard-classify.d.ts +44 -0
  46. package/dist/backend/backend/src/scripts/input-guard-classify.d.ts.map +1 -0
  47. package/dist/backend/backend/src/scripts/input-guard-classify.js +116 -0
  48. package/dist/backend/backend/src/scripts/input-guard-classify.js.map +1 -0
  49. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +8 -0
  50. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  51. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +10 -0
  52. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  53. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-runtime-registry.d.ts +8 -0
  54. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-runtime-registry.d.ts.map +1 -1
  55. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-runtime-registry.js +21 -0
  56. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-runtime-registry.js.map +1 -1
  57. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  58. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +13 -27
  59. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  60. package/dist/backend/backend/src/services/messaging/forced-delivery.d.ts +75 -0
  61. package/dist/backend/backend/src/services/messaging/forced-delivery.d.ts.map +1 -0
  62. package/dist/backend/backend/src/services/messaging/forced-delivery.js +87 -0
  63. package/dist/backend/backend/src/services/messaging/forced-delivery.js.map +1 -0
  64. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.d.ts +130 -4
  65. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.d.ts.map +1 -1
  66. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.js +115 -3
  67. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.js.map +1 -1
  68. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-goal.d.ts +122 -0
  69. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-goal.d.ts.map +1 -0
  70. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-goal.js +274 -0
  71. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-goal.js.map +1 -0
  72. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.d.ts +34 -2
  73. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.d.ts.map +1 -1
  74. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.js +59 -2
  75. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.js.map +1 -1
  76. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-retro.js +1 -1
  77. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-retro.js.map +1 -1
  78. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.d.ts +6 -1
  79. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.d.ts.map +1 -1
  80. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.js +9 -1
  81. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.js.map +1 -1
  82. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.d.ts +13 -3
  83. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.d.ts.map +1 -1
  84. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.js +28 -2
  85. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.js.map +1 -1
  86. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts +92 -7
  87. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts.map +1 -1
  88. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js +316 -41
  89. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js.map +1 -1
  90. package/dist/backend/backend/src/services/settings/api-key-access.service.d.ts +126 -0
  91. package/dist/backend/backend/src/services/settings/api-key-access.service.d.ts.map +1 -0
  92. package/dist/backend/backend/src/services/settings/api-key-access.service.js +223 -0
  93. package/dist/backend/backend/src/services/settings/api-key-access.service.js.map +1 -0
  94. package/dist/backend/backend/src/services/skill/skill-executor.service.d.ts.map +1 -1
  95. package/dist/backend/backend/src/services/skill/skill-executor.service.js +17 -0
  96. package/dist/backend/backend/src/services/skill/skill-executor.service.js.map +1 -1
  97. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  98. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +29 -8
  99. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  100. package/dist/backend/backend/src/services/system/auto-update.service.d.ts +24 -0
  101. package/dist/backend/backend/src/services/system/auto-update.service.d.ts.map +1 -1
  102. package/dist/backend/backend/src/services/system/auto-update.service.js +78 -8
  103. package/dist/backend/backend/src/services/system/auto-update.service.js.map +1 -1
  104. package/dist/backend/backend/src/services/system/auto-update.utils.d.ts +1 -1
  105. package/dist/backend/backend/src/services/system/auto-update.utils.d.ts.map +1 -1
  106. package/dist/backend/backend/src/services/system/auto-update.utils.js.map +1 -1
  107. package/dist/backend/backend/src/services/system/input-guard-release-check.d.ts +162 -0
  108. package/dist/backend/backend/src/services/system/input-guard-release-check.d.ts.map +1 -0
  109. package/dist/backend/backend/src/services/system/input-guard-release-check.js +264 -0
  110. package/dist/backend/backend/src/services/system/input-guard-release-check.js.map +1 -0
  111. package/dist/backend/backend/src/services/system/system-control.service.d.ts +36 -0
  112. package/dist/backend/backend/src/services/system/system-control.service.d.ts.map +1 -1
  113. package/dist/backend/backend/src/services/system/system-control.service.js +109 -10
  114. package/dist/backend/backend/src/services/system/system-control.service.js.map +1 -1
  115. package/dist/backend/backend/src/types/skill.types.d.ts +16 -0
  116. package/dist/backend/backend/src/types/skill.types.d.ts.map +1 -1
  117. package/dist/backend/backend/src/types/skill.types.js.map +1 -1
  118. package/dist/backend/backend/src/types/ticket-autopilot.types.d.ts +21 -0
  119. package/dist/backend/backend/src/types/ticket-autopilot.types.d.ts.map +1 -1
  120. package/dist/backend/backend/src/types/ticket-autopilot.types.js +48 -0
  121. package/dist/backend/backend/src/types/ticket-autopilot.types.js.map +1 -1
  122. package/dist/backend/backend/src/types/v2/work-item.types.d.ts +1 -1
  123. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  124. package/dist/backend/backend/src/types/v2/work-item.types.js +1 -0
  125. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
  126. package/dist/backend/build-info.json +2 -2
  127. package/dist/cli/backend/src/constants.d.ts +64 -0
  128. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  129. package/dist/cli/backend/src/constants.js +70 -0
  130. package/dist/cli/backend/src/constants.js.map +1 -1
  131. package/dist/cli/backend/src/scripts/input-guard-classify.d.ts +44 -0
  132. package/dist/cli/backend/src/scripts/input-guard-classify.d.ts.map +1 -0
  133. package/dist/cli/backend/src/scripts/input-guard-classify.js +116 -0
  134. package/dist/cli/backend/src/scripts/input-guard-classify.js.map +1 -0
  135. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +8 -0
  136. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  137. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +10 -0
  138. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  139. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.d.ts +8 -0
  140. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.d.ts.map +1 -1
  141. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.js +21 -0
  142. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.js.map +1 -1
  143. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  144. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js +13 -27
  145. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  146. package/dist/cli/backend/src/services/messaging/drain-queued-delivery.d.ts +59 -0
  147. package/dist/cli/backend/src/services/messaging/drain-queued-delivery.d.ts.map +1 -0
  148. package/dist/cli/backend/src/services/messaging/drain-queued-delivery.js +70 -0
  149. package/dist/cli/backend/src/services/messaging/drain-queued-delivery.js.map +1 -0
  150. package/dist/cli/backend/src/services/messaging/forced-delivery.d.ts +75 -0
  151. package/dist/cli/backend/src/services/messaging/forced-delivery.d.ts.map +1 -0
  152. package/dist/cli/backend/src/services/messaging/forced-delivery.js +87 -0
  153. package/dist/cli/backend/src/services/messaging/forced-delivery.js.map +1 -0
  154. package/dist/cli/backend/src/services/messaging/spend-capped-delivery.d.ts +54 -0
  155. package/dist/cli/backend/src/services/messaging/spend-capped-delivery.d.ts.map +1 -0
  156. package/dist/cli/backend/src/services/messaging/spend-capped-delivery.js +65 -0
  157. package/dist/cli/backend/src/services/messaging/spend-capped-delivery.js.map +1 -0
  158. package/dist/cli/backend/src/services/skill/skill-executor.service.d.ts.map +1 -1
  159. package/dist/cli/backend/src/services/skill/skill-executor.service.js +17 -0
  160. package/dist/cli/backend/src/services/skill/skill-executor.service.js.map +1 -1
  161. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  162. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +29 -8
  163. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  164. package/dist/cli/backend/src/services/system/auto-update.utils.d.ts +1 -1
  165. package/dist/cli/backend/src/services/system/auto-update.utils.d.ts.map +1 -1
  166. package/dist/cli/backend/src/services/system/auto-update.utils.js.map +1 -1
  167. package/dist/cli/backend/src/services/system/input-guard-release-check.d.ts +162 -0
  168. package/dist/cli/backend/src/services/system/input-guard-release-check.d.ts.map +1 -0
  169. package/dist/cli/backend/src/services/system/input-guard-release-check.js +264 -0
  170. package/dist/cli/backend/src/services/system/input-guard-release-check.js.map +1 -0
  171. package/dist/cli/backend/src/types/skill.types.d.ts +16 -0
  172. package/dist/cli/backend/src/types/skill.types.d.ts.map +1 -1
  173. package/dist/cli/backend/src/types/skill.types.js.map +1 -1
  174. package/dist/cli/backend/src/types/ticket-autopilot.types.d.ts +21 -0
  175. package/dist/cli/backend/src/types/ticket-autopilot.types.d.ts.map +1 -1
  176. package/dist/cli/backend/src/types/ticket-autopilot.types.js +48 -0
  177. package/dist/cli/backend/src/types/ticket-autopilot.types.js.map +1 -1
  178. package/dist/cli/backend/src/types/v2/work-item.types.d.ts +1 -1
  179. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  180. package/dist/cli/backend/src/types/v2/work-item.types.js +1 -0
  181. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
  182. package/dist/cli/cli/src/commands/doctor.d.ts +20 -0
  183. package/dist/cli/cli/src/commands/doctor.d.ts.map +1 -1
  184. package/dist/cli/cli/src/commands/doctor.js +49 -0
  185. package/dist/cli/cli/src/commands/doctor.js.map +1 -1
  186. package/dist/cli/cli/src/index.js +9 -2
  187. package/dist/cli/cli/src/index.js.map +1 -1
  188. package/frontend/dist/assets/{index-63a33dbf.js → index-f64b333a.js} +258 -258
  189. package/frontend/dist/index.html +1 -1
  190. package/package.json +2 -1
@@ -18,9 +18,10 @@
18
18
  import type { Request, Response, NextFunction } from 'express';
19
19
  import { AgentProcessOriginService, type ProcessOrigin } from '../services/agent/agent-process-origin.service.js';
20
20
  /**
21
- * PTY shell pid → session name for the live sessions.
21
+ * PTY shell pid → session name for the live sessions, plus each Crewly Agent
22
+ * child process (#1024), which has no PTY.
22
23
  *
23
- * @returns Map (empty when no session backend is up)
24
+ * @returns Map (empty when nothing is running)
24
25
  */
25
26
  export declare function liveSessionPids(): Map<number, string>;
26
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"agent-origin.middleware.d.ts","sourceRoot":"","sources":["../../../../../backend/src/middleware/agent-origin.middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI/D,OAAO,EAAE,yBAAyB,EAAE,KAAK,aAAa,EAAE,MAAM,mDAAmD,CAAC;AAMlH;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CASrD;AA4CD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAoB3F;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAuB5F;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI,GAAG,IAAI,CAG/F"}
1
+ {"version":3,"file":"agent-origin.middleware.d.ts","sourceRoot":"","sources":["../../../../../backend/src/middleware/agent-origin.middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI/D,OAAO,EAAE,yBAAyB,EAAE,KAAK,aAAa,EAAE,MAAM,mDAAmD,CAAC;AAOlH;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CASrD;AA4CD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAoB3F;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAuB5F;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI,GAAG,IAAI,CAG/F"}
@@ -21,14 +21,16 @@ import { getSessionBackendSync } from '../services/session/session-backend.facto
21
21
  import { AgentProcessOriginService } from '../services/agent/agent-process-origin.service.js';
22
22
  import { isLoopbackAddress, isLoopbackRequest } from './api-token.middleware.js';
23
23
  import { setAgentOriginCorrection } from './agent-origin-correction.js';
24
+ import { inProcessRuntimePids } from '../services/agent/crewly-agent/in-process-runtime-registry.js';
24
25
  const logger = LoggerService.getInstance().createComponentLogger('AgentOriginMiddleware');
25
26
  /**
26
- * PTY shell pid → session name for the live sessions.
27
+ * PTY shell pid → session name for the live sessions, plus each Crewly Agent
28
+ * child process (#1024), which has no PTY.
27
29
  *
28
- * @returns Map (empty when no session backend is up)
30
+ * @returns Map (empty when nothing is running)
29
31
  */
30
32
  export function liveSessionPids() {
31
- const out = new Map();
33
+ const out = inProcessRuntimePids();
32
34
  const backend = getSessionBackendSync();
33
35
  if (!backend)
34
36
  return out;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-origin.middleware.js","sourceRoot":"","sources":["../../../../../backend/src/middleware/agent-origin.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-origin.middleware.js","sourceRoot":"","sources":["../../../../../backend/src/middleware/agent-origin.middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAAsB,MAAM,mDAAmD,CAAC;AAClH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+DAA+D,CAAC;AAErG,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;AAE1F;;;;;GAKG;AACH,MAAM,UAAU,eAAe;IAC9B,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;QAC1C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,GAAG,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,IAAI,aAAa,GAAqC,IAAI,CAAC;AAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;AAG7C;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,OAAe,EAAE,IAA6B;IACjF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,SAAS,IAAI,GAAG,GAAG,IAAI,GAAG,sBAAsB,CAAC,gBAAgB;QAAE,OAAO;IACvF,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACzB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,WAAW,CAAI,OAAmB,EAAE,EAAU;IACtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CACX,CAAC,KAAK,EAAE,EAAE;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,EACD,GAAG,EAAE;YACJ,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CACD,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAY,EAAE,OAAe,EAAE,MAAqB;IACpF,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAClD,uFAAuF;QACvF,wBAAwB,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC;QACrE,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;QACpE,aAAa,CAAC,YAAY,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,sMAAsM,EAAE;YAC9P,cAAc,EAAE,OAAO;YACvB,aAAa,EAAE,MAAM,CAAC,OAAO;YAC7B,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,IAAI,EAAE,GAAG,CAAC,IAAI;SACd,CAAC,CAAC;QACH,OAAO;IACR,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC/C,aAAa,CAAC,UAAU,OAAO,EAAE,EAAE,0MAA0M,EAAE;YAC9O,cAAc,EAAE,OAAO;YACvB,IAAI,EAAE,GAAG,CAAC,IAAI;SACd,CAAC,CAAC;IACJ,CAAC;AACF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY,EAAE,IAAc,EAAE,IAAkB;IACrF,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAC9D,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACpG,IAAI,EAAE,CAAC;QACP,OAAO;IACR,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,IAAI,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAChG,IAAI,EAAE,CAAC;QACP,OAAO;IACR,CAAC;IACD,aAAa,KAAK,IAAI,yBAAyB,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC;IACtF,KAAK,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACtG,IAAI,CAAC;YACJ,IAAI,MAAM;gBAAE,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,kDAAkD,EAAE;gBAChE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC7D,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,CAAC;IACR,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAAC,OAAyC;IACxF,aAAa,GAAG,OAAO,CAAC;IACxB,UAAU,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC"}
@@ -77,6 +77,8 @@ export declare function classifyCallerSync(req: IdentifiableRequest): CallerIden
77
77
  * @returns The identity
78
78
  */
79
79
  export declare function classifyCaller(req: IdentifiableRequest, peers: PeerProcessService): Promise<CallerIdentity>;
80
+ /** Note on a legacy-header call the process tree confirmed. */
81
+ export declare const LEGACY_CONFIRMED_NOTE = "session header confirmed by the process tree";
80
82
  /**
81
83
  * Store a request's identity (the middleware; tests).
82
84
  *
@@ -200,6 +202,40 @@ export declare const requireOwnerToken: RequestHandler;
200
202
  * @returns Express middleware
201
203
  */
202
204
  export declare function ownerOnly(agentBody: Record<string, unknown>): RequestHandler;
205
+ /**
206
+ * Whether an identity is an agent proven by a credential: its badge, or the
207
+ * process tree (an agent PTY's process presented the owner token). The
208
+ * legacy `X-Agent-Session` header alone is not proof — any local process can
209
+ * set it.
210
+ *
211
+ * @param identity - Caller identity
212
+ * @returns True for a badge or process-tree agent with a known session
213
+ */
214
+ export declare function isVerifiedAgent(identity: CallerIdentity): boolean;
215
+ /**
216
+ * Refuse a caller that is neither the owner nor a verified agent
217
+ * ({@link isVerifiedAgent}). An agent with only the legacy header gets 403
218
+ * `agent_badge_required`; everyone else without a credential gets 401.
219
+ *
220
+ * @param req - Request
221
+ * @param res - Response
222
+ * @param action - What the caller tried, for the 403 message (e.g. "Writing into an agent's terminal")
223
+ * @returns True when refused (response written)
224
+ */
225
+ export declare function rejectUnverifiedCaller(req: Request, res: Response, action: string): boolean;
226
+ /**
227
+ * Express middleware form of {@link rejectUnverifiedCaller}: the owner, or an
228
+ * agent identified by its badge (or the process tree).
229
+ *
230
+ * @param action - What the route does, for the 403 message
231
+ * @returns Express middleware
232
+ *
233
+ * @example
234
+ * ```ts
235
+ * router.post('/terminal/:s/write', ownerOrVerifiedAgent("Writing into an agent's terminal"), handler);
236
+ * ```
237
+ */
238
+ export declare function ownerOrVerifiedAgent(action: string): RequestHandler;
203
239
  /**
204
240
  * Build the `/api` middleware.
205
241
  *
@@ -1 +1 @@
1
- {"version":3,"file":"caller-identity.middleware.d.ts","sourceRoot":"","sources":["../../../../../backend/src/middleware/caller-identity.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"caller-identity.middleware.d.ts","sourceRoot":"","sources":["../../../../../backend/src/middleware/caller-identity.middleware.ts"],"names":[],"mappings":"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"}
@@ -195,12 +195,45 @@ export function classifyCallerSync(req) {
195
195
  */
196
196
  export async function classifyCaller(req, peers) {
197
197
  const first = classify(req);
198
+ if (first !== NEEDS_PEER && first.via === 'legacy-header')
199
+ return confirmLegacyAgent(req, first, peers);
198
200
  if (first !== NEEDS_PEER)
199
201
  return first;
200
202
  const verdict = await peers.classify(req.socket ?? null);
201
203
  const second = classify(req, verdict);
202
204
  return second === NEEDS_PEER ? { kind: 'anonymous', via: 'none' } : second;
203
205
  }
206
+ /** Note on a legacy-header call the process tree confirmed. */
207
+ export const LEGACY_CONFIRMED_NOTE = 'session header confirmed by the process tree';
208
+ /**
209
+ * A call with `X-Agent-Session` but no valid badge (none sent, or one minted
210
+ * by an earlier backend process — the secret is per process) is that agent
211
+ * only when the process tree says so (#1024 review): the client process on
212
+ * the other end of THIS connection (lsof / ss, never the self-reported
213
+ * `X-Agent-Pid`) must run under that same session's agent PTY (or be that
214
+ * session's Crewly Agent child). Then it counts as verified (`process-tree`);
215
+ * otherwise it stays `legacy-header`, which the routes that need proof
216
+ * (terminal writes, key reads) refuse with 403.
217
+ *
218
+ * @param req - Request
219
+ * @param legacy - The legacy-header identity
220
+ * @param peers - Process classifier
221
+ * @returns The confirmed identity, or `legacy` unchanged
222
+ */
223
+ async function confirmLegacyAgent(req, legacy, peers) {
224
+ if (!legacy.session)
225
+ return legacy;
226
+ try {
227
+ const verdict = await peers.classify(req.socket ?? null);
228
+ if (verdict.kind === 'agent' && verdict.session === legacy.session) {
229
+ return { kind: 'agent', via: 'process-tree', session: legacy.session, note: LEGACY_CONFIRMED_NOTE };
230
+ }
231
+ }
232
+ catch {
233
+ /* no verdict: stays unconfirmed */
234
+ }
235
+ return legacy;
236
+ }
204
237
  /**
205
238
  * Store a request's identity (the middleware; tests).
206
239
  *
@@ -398,6 +431,63 @@ export function ownerOnly(agentBody) {
398
431
  next();
399
432
  };
400
433
  }
434
+ /**
435
+ * Whether an identity is an agent proven by a credential: its badge, or the
436
+ * process tree (an agent PTY's process presented the owner token). The
437
+ * legacy `X-Agent-Session` header alone is not proof — any local process can
438
+ * set it.
439
+ *
440
+ * @param identity - Caller identity
441
+ * @returns True for a badge or process-tree agent with a known session
442
+ */
443
+ export function isVerifiedAgent(identity) {
444
+ return identity.kind === 'agent' && Boolean(identity.session) && (identity.via === 'agent-badge' || identity.via === 'process-tree');
445
+ }
446
+ /**
447
+ * Refuse a caller that is neither the owner nor a verified agent
448
+ * ({@link isVerifiedAgent}). An agent with only the legacy header gets 403
449
+ * `agent_badge_required`; everyone else without a credential gets 401.
450
+ *
451
+ * @param req - Request
452
+ * @param res - Response
453
+ * @param action - What the caller tried, for the 403 message (e.g. "Writing into an agent's terminal")
454
+ * @returns True when refused (response written)
455
+ */
456
+ export function rejectUnverifiedCaller(req, res, action) {
457
+ const id = getCallerIdentity(req);
458
+ if (id.kind === 'owner' || id.kind === 'relay-owner' || isVerifiedAgent(id))
459
+ return false;
460
+ if (id.kind === 'agent') {
461
+ res.status(403).json({
462
+ success: false,
463
+ error: OWNER_AUTH_CONSTANTS.ERRORS.AGENT_BADGE_REQUIRED,
464
+ code: OWNER_AUTH_CONSTANTS.ERRORS.AGENT_BADGE_REQUIRED,
465
+ message: `${action} needs the agent badge (CREWLY_AGENT_BADGE). Restart the agent so it gets one.`,
466
+ });
467
+ return true;
468
+ }
469
+ sendOwnerAuthRequired(res, req);
470
+ return true;
471
+ }
472
+ /**
473
+ * Express middleware form of {@link rejectUnverifiedCaller}: the owner, or an
474
+ * agent identified by its badge (or the process tree).
475
+ *
476
+ * @param action - What the route does, for the 403 message
477
+ * @returns Express middleware
478
+ *
479
+ * @example
480
+ * ```ts
481
+ * router.post('/terminal/:s/write', ownerOrVerifiedAgent("Writing into an agent's terminal"), handler);
482
+ * ```
483
+ */
484
+ export function ownerOrVerifiedAgent(action) {
485
+ return (req, res, next) => {
486
+ if (rejectUnverifiedCaller(req, res, action))
487
+ return;
488
+ next();
489
+ };
490
+ }
401
491
  const lastWarned = new Map();
402
492
  /**
403
493
  * Warn at most once per LEGACY_WARN_THROTTLE_MS per key.
@@ -449,7 +539,13 @@ export function createCallerIdentityMiddleware(peers = new PeerProcessService())
449
539
  identities.set(req, identity);
450
540
  normaliseSessionHeader(req, identity);
451
541
  if (identity.via === 'legacy-header') {
452
- warnThrottled(`legacy:${identity.session}`, 'Agent call without an agent badge — accepted as that agent for this release only. Restart the agent so it gets CREWLY_AGENT_BADGE.', {
542
+ warnThrottled(`legacy:${identity.session}`, 'Agent call without a valid agent badge, and the process tree did not confirm the session — treated as that agent only where a bare session header is still accepted; terminal writes and API-key reads refuse it (403 agent_badge_required). Restart the agent so it gets CREWLY_AGENT_BADGE.', {
543
+ session: identity.session,
544
+ path: req.path,
545
+ });
546
+ }
547
+ else if (identity.note === LEGACY_CONFIRMED_NOTE) {
548
+ warnThrottled(`legacy-ok:${identity.session}`, 'Agent call without a valid agent badge — accepted because its process runs under that agent\'s PTY. Restart the agent so it gets a current CREWLY_AGENT_BADGE.', {
453
549
  session: identity.session,
454
550
  path: req.path,
455
551
  });
@@ -1 +1 @@
1
- {"version":3,"file":"caller-identity.middleware.js","sourceRoot":"","sources":["../../../../../backend/src/middleware/caller-identity.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"caller-identity.middleware.js","sourceRoot":"","sources":["../../../../../backend/src/middleware/caller-identity.middleware.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,10 @@ import { ApiController } from '../../controllers/api.controller.js';
22
22
  * - POST /terminal/:sessionName/key - Send key to session
23
23
  * - DELETE /terminal/:sessionName - Kill session
24
24
  *
25
+ * The writes (write, deliver, input, key, DELETE) need the owner or a
26
+ * badge-identified agent: anonymous callers get 401, an agent with only the
27
+ * legacy `X-Agent-Session` header 403 `agent_badge_required`. Reads stay open.
28
+ *
25
29
  * @param router - Express router to register routes on
26
30
  * @param apiController - Optional ApiController for endpoints that need AgentRegistrationService
27
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.routes.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/routes/modules/terminal.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAGpE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAyC1F"}
1
+ {"version":3,"file":"terminal.routes.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/routes/modules/terminal.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAcpE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAyC1F"}
@@ -7,6 +7,16 @@
7
7
  * @module terminal-routes
8
8
  */
9
9
  import * as terminalHandlers from '../../controllers/monitoring/terminal.controller.js';
10
+ import { ownerOrVerifiedAgent } from '../../middleware/caller-identity.middleware.js';
11
+ /**
12
+ * Writes into an agent's terminal (and killing it) need the owner or an agent
13
+ * identified by its badge (#1024). Before, any local process could type into
14
+ * the orchestrator's Claude Code — which runs with skip-permissions — with a
15
+ * bare `curl`. Agents keep messaging each other (send-message, delegate-task,
16
+ * broadcast, send-key, terminate-agent …): `api_call` sends the badge.
17
+ * Backend services deliver in process or with `internalAgentHeaders`.
18
+ */
19
+ const terminalWriter = ownerOrVerifiedAgent("Writing into an agent's terminal");
10
20
  /**
11
21
  * Register terminal routes on the router.
12
22
  *
@@ -21,6 +31,10 @@ import * as terminalHandlers from '../../controllers/monitoring/terminal.control
21
31
  * - POST /terminal/:sessionName/key - Send key to session
22
32
  * - DELETE /terminal/:sessionName - Kill session
23
33
  *
34
+ * The writes (write, deliver, input, key, DELETE) need the owner or a
35
+ * badge-identified agent: anonymous callers get 401, an agent with only the
36
+ * legacy `X-Agent-Session` header 403 `agent_badge_required`. Reads stay open.
37
+ *
24
38
  * @param router - Express router to register routes on
25
39
  * @param apiController - Optional ApiController for endpoints that need AgentRegistrationService
26
40
  */
@@ -34,17 +48,17 @@ export function registerTerminalRoutes(router, apiController) {
34
48
  // Capture terminal output (legacy endpoint, same as output)
35
49
  router.get('/terminal/:sessionName/capture', terminalHandlers.captureTerminal);
36
50
  // Write data to session (new PTY-based endpoint)
37
- router.post('/terminal/:sessionName/write', terminalHandlers.writeToSession);
51
+ router.post('/terminal/:sessionName/write', terminalWriter, terminalHandlers.writeToSession);
38
52
  // Reliable message delivery with retry and verification (requires ApiController)
39
53
  if (apiController) {
40
- router.post('/terminal/:sessionName/deliver', (req, res) => terminalHandlers.deliverMessage.call(apiController, req, res));
54
+ router.post('/terminal/:sessionName/deliver', terminalWriter, (req, res) => terminalHandlers.deliverMessage.call(apiController, req, res));
41
55
  }
42
56
  // Send input to session (legacy endpoint)
43
- router.post('/terminal/:sessionName/input', terminalHandlers.sendTerminalInput);
57
+ router.post('/terminal/:sessionName/input', terminalWriter, terminalHandlers.sendTerminalInput);
44
58
  // Send key to session
45
- router.post('/terminal/:sessionName/key', terminalHandlers.sendTerminalKey);
59
+ router.post('/terminal/:sessionName/key', terminalWriter, terminalHandlers.sendTerminalKey);
46
60
  // Kill session
47
- router.delete('/terminal/:sessionName', terminalHandlers.killSession);
61
+ router.delete('/terminal/:sessionName', terminalWriter, terminalHandlers.killSession);
48
62
  // Get persistent session log file (ANSI-stripped, includes pre-restart output)
49
63
  router.get('/sessions/:sessionName/logs', terminalHandlers.getSessionLogs);
50
64
  // Adaptive heartbeat: pending work check (#172)
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.routes.js","sourceRoot":"","sources":["../../../../../../backend/src/routes/modules/terminal.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,gBAAgB,MAAM,qDAAqD,CAAC;AAExF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAc,EAAE,aAA6B;IACnF,oBAAoB;IACpB,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;IAExE,0BAA0B;IAC1B,MAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAE5E,8CAA8C;IAC9C,MAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAE9E,4DAA4D;IAC5D,MAAM,CAAC,GAAG,CAAC,gCAAgC,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAE/E,iDAAiD;IACjD,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAE7E,iFAAiF;IACjF,IAAI,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAC1D,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAC7D,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAEhF,sBAAsB;IACtB,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAE5E,eAAe;IACf,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEtE,+EAA+E;IAC/E,MAAM,CAAC,GAAG,CAAC,6BAA6B,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAE3E,gDAAgD;IAChD,IAAI,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,CAAC,mCAAmC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAC5D,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAC7D,CAAC;IACH,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"terminal.routes.js","sourceRoot":"","sources":["../../../../../../backend/src/routes/modules/terminal.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,gBAAgB,MAAM,qDAAqD,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAEtF;;;;;;;GAOG;AACH,MAAM,cAAc,GAAG,oBAAoB,CAAC,kCAAkC,CAAC,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAc,EAAE,aAA6B;IACnF,oBAAoB;IACpB,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;IAExE,0BAA0B;IAC1B,MAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAE5E,8CAA8C;IAC9C,MAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAE9E,4DAA4D;IAC5D,MAAM,CAAC,GAAG,CAAC,gCAAgC,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAE/E,iDAAiD;IACjD,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,cAAc,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAE7F,iFAAiF;IACjF,IAAI,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAC1E,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAC7D,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,cAAc,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAEhG,sBAAsB;IACtB,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,cAAc,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAE5F,eAAe;IACf,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,cAAc,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEtF,+EAA+E;IAC/E,MAAM,CAAC,GAAG,CAAC,6BAA6B,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAE3E,gDAAgD;IAChD,IAAI,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,CAAC,mCAAmC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAC5D,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAC7D,CAAC;IACH,CAAC;AACF,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Child process of the release input-guard check
3
+ * (specs/2026-10-04-release-input-guard-check.md).
4
+ *
5
+ * The running backend pipes the live input views of its agent sessions
6
+ * (real terminal buffers, faint text already blanked) to this script on
7
+ * stdin; this script — loaded from the NEW build, in a fresh process so the
8
+ * new classifier and constants are what run — classifies each one and
9
+ * prints the verdicts as JSON on stdout. It only calls the classifier.
10
+ *
11
+ * @module backend/scripts/input-guard-classify
12
+ */
13
+ import { type TuiInputView } from '../services/session/tui-input-guard.js';
14
+ /** The message used as the probe: it is never in a box, so only empty / ours-by-marker pass. */
15
+ export declare const PROBE_MESSAGE = "__probe__";
16
+ /** One agent's live view, as the backend sends it. */
17
+ export interface InputGuardViewInput {
18
+ session: string;
19
+ runtime: string;
20
+ /** Null when the backend has no styled capture for the session */
21
+ view: TuiInputView | null;
22
+ }
23
+ /** Verdict for one agent. */
24
+ export type InputGuardVerdict = 'ok' | 'warn' | 'fail' | 'skip';
25
+ /** The new build's reading of one agent. */
26
+ export interface InputGuardClassification {
27
+ session: string;
28
+ runtime: string;
29
+ state: 'empty' | 'ours' | 'foreign' | 'unknown';
30
+ layout?: string;
31
+ /** No spinner / busy bar on screen */
32
+ idle: boolean;
33
+ verdict: InputGuardVerdict;
34
+ /** Short English reason */
35
+ reason: string;
36
+ }
37
+ /**
38
+ * Classify live views with this build's guard.
39
+ *
40
+ * @param inputs - One view per agent session
41
+ * @returns One classification per input, in order
42
+ */
43
+ export declare function classifyViews(inputs: readonly InputGuardViewInput[]): InputGuardClassification[];
44
+ //# sourceMappingURL=input-guard-classify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-guard-classify.d.ts","sourceRoot":"","sources":["../../../../../backend/src/scripts/input-guard-classify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAA+C,KAAK,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAExH,gGAAgG;AAChG,eAAO,MAAM,aAAa,cAAc,CAAC;AAEzC,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;CAC1B;AAED,6BAA6B;AAC7B,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhE,4CAA4C;AAC5C,MAAM,WAAW,wBAAwB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,iBAAiB,CAAC;IAC3B,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;CACf;AAmCD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,GAAG,wBAAwB,EAAE,CAkChG"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Child process of the release input-guard check
3
+ * (specs/2026-10-04-release-input-guard-check.md).
4
+ *
5
+ * The running backend pipes the live input views of its agent sessions
6
+ * (real terminal buffers, faint text already blanked) to this script on
7
+ * stdin; this script — loaded from the NEW build, in a fresh process so the
8
+ * new classifier and constants are what run — classifies each one and
9
+ * prints the verdicts as JSON on stdout. It only calls the classifier.
10
+ *
11
+ * @module backend/scripts/input-guard-classify
12
+ */
13
+ import { INPUT_GUARD_CHECK_CONSTANTS, RUNTIME_INPUT_READY_PATTERNS } from '../constants.js';
14
+ import { classifyTuiInput, screenShowsTurnInProgress } from '../services/session/tui-input-guard.js';
15
+ /** The message used as the probe: it is never in a box, so only empty / ours-by-marker pass. */
16
+ export const PROBE_MESSAGE = '__probe__';
17
+ /**
18
+ * First marker (lower-case) found in the bottom rows of a screen.
19
+ *
20
+ * @param lines - Screen rows
21
+ * @param markers - Lower-case markers
22
+ * @returns The marker found, or null
23
+ */
24
+ function findInTail(lines, markers) {
25
+ const tail = lines.filter((l) => l.trim() !== '').slice(-INPUT_GUARD_CHECK_CONSTANTS.TAIL_LINES).join('\n').toLowerCase().replace(/\s+/g, ' ');
26
+ return markers.find((m) => tail.includes(m)) ?? null;
27
+ }
28
+ /** Every runtime's "not ready" marker (booting, sign-in, approval dialogs). */
29
+ const NOT_READY_MARKERS = Object.values(RUNTIME_INPUT_READY_PATTERNS)
30
+ .flatMap((v) => (v && typeof v === 'object' && 'NOT_READY_MARKERS' in v ? v.NOT_READY_MARKERS : []));
31
+ /**
32
+ * Why a screen with no input box is not a failure, or null when it is one:
33
+ * a failure needs a known READY footer on screen. Dialogs, login screens,
34
+ * startup banners and a bare shell prompt are reported, not blocked on.
35
+ *
36
+ * @param lines - Screen rows
37
+ * @returns A warn reason, or null for a real failure
38
+ */
39
+ function explainMissingBox(lines) {
40
+ const notReady = findInTail(lines, NOT_READY_MARKERS);
41
+ if (notReady)
42
+ return `no input box: runtime not ready ("${notReady}": sign-in, trust or approval screen)`;
43
+ if (findInTail(lines, INPUT_GUARD_CHECK_CONSTANTS.READY_MARKERS))
44
+ return null;
45
+ const dialog = findInTail(lines, INPUT_GUARD_CHECK_CONSTANTS.DIALOG_MARKERS);
46
+ if (dialog)
47
+ return `no input box: dialog, login or picker screen ("${dialog}")`;
48
+ return 'no input box and no ready footer (startup screen, shell prompt or unknown screen)';
49
+ }
50
+ /**
51
+ * Classify live views with this build's guard.
52
+ *
53
+ * @param inputs - One view per agent session
54
+ * @returns One classification per input, in order
55
+ */
56
+ export function classifyViews(inputs) {
57
+ return inputs.map((input) => {
58
+ const { session, runtime, view } = input;
59
+ if (!view) {
60
+ return { session, runtime, state: 'unknown', idle: true, verdict: 'skip', reason: 'no styled capture for this session (not checked)' };
61
+ }
62
+ const screen = (view.lines ?? []).join('\n');
63
+ if (screen.trim() === '') {
64
+ return { session, runtime, state: 'unknown', idle: true, verdict: 'skip', reason: 'blank screen (session still starting?)' };
65
+ }
66
+ const idle = !screenShowsTurnInProgress(screen);
67
+ const reading = classifyTuiInput(view, PROBE_MESSAGE, 'before-write');
68
+ const base = { session, runtime, state: reading.state, layout: reading.layout, idle };
69
+ switch (reading.state) {
70
+ case 'empty':
71
+ return { ...base, verdict: 'ok', reason: `empty ${reading.layout} input box` };
72
+ case 'ours':
73
+ return { ...base, verdict: 'ok', reason: `${reading.layout} box holds the harness's own paste` };
74
+ case 'foreign':
75
+ return {
76
+ ...base,
77
+ verdict: idle ? 'warn' : 'ok',
78
+ reason: idle
79
+ ? `${reading.layout} box holds text (${reading.text.length} chars) while idle`
80
+ : `${reading.layout} box holds text while mid-turn`,
81
+ };
82
+ default: {
83
+ if (!idle)
84
+ return { ...base, verdict: 'warn', reason: 'mid-turn and no input box of a known layout was found' };
85
+ const why = explainMissingBox(view.lines);
86
+ if (why)
87
+ return { ...base, verdict: 'warn', reason: why };
88
+ return { ...base, verdict: 'fail', reason: 'idle with the runtime\'s ready footer on screen, but no input box of a known layout was found' };
89
+ }
90
+ }
91
+ });
92
+ }
93
+ /**
94
+ * Read all of stdin as text.
95
+ *
96
+ * @returns The text
97
+ */
98
+ async function readStdin() {
99
+ const chunks = [];
100
+ for await (const chunk of process.stdin)
101
+ chunks.push(Buffer.from(chunk));
102
+ return Buffer.concat(chunks).toString('utf8');
103
+ }
104
+ /** stdin `{ sessions: InputGuardViewInput[] }` → stdout `{ results: InputGuardClassification[] }`. */
105
+ async function main() {
106
+ const parsed = JSON.parse(await readStdin());
107
+ process.stdout.write(JSON.stringify({ results: classifyViews(parsed.sessions ?? []) }));
108
+ }
109
+ // Run only when started as a script (also true for the compiled .js).
110
+ if (/input-guard-classify\.(js|ts)$/.test(process.argv[1] ?? '')) {
111
+ main().catch((error) => {
112
+ process.stderr.write(`input-guard-classify failed: ${error instanceof Error ? error.message : String(error)}\n`);
113
+ process.exit(2);
114
+ });
115
+ }
116
+ //# sourceMappingURL=input-guard-classify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-guard-classify.js","sourceRoot":"","sources":["../../../../../backend/src/scripts/input-guard-classify.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,14 @@ export declare class CrewlyAgentExternalRuntimeService extends RuntimeAgentServi
33
33
  private currentRoleName;
34
34
  private currentModelString;
35
35
  private child;
36
+ /**
37
+ * Pid of the running agent child process, if any. The caller-identity
38
+ * check maps it to this session (a call from the child or its tools is
39
+ * this agent's; #1024).
40
+ *
41
+ * @returns Pid or undefined
42
+ */
43
+ get childPid(): number | undefined;
36
44
  private logBuffer;
37
45
  private heartbeatTimer;
38
46
  private stdoutBuffer;
@@ -1 +1 @@
1
- {"version":3,"file":"crewly-agent-external-runtime.service.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crewly-agent-external-runtime.service.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,16 @@ export class CrewlyAgentExternalRuntimeService extends RuntimeAgentService {
54
54
  currentRoleName = 'orchestrator';
55
55
  currentModelString = 'unknown';
56
56
  child = null;
57
+ /**
58
+ * Pid of the running agent child process, if any. The caller-identity
59
+ * check maps it to this session (a call from the child or its tools is
60
+ * this agent's; #1024).
61
+ *
62
+ * @returns Pid or undefined
63
+ */
64
+ get childPid() {
65
+ return this.child && !this.child.killed ? this.child.pid : undefined;
66
+ }
57
67
  logBuffer;
58
68
  heartbeatTimer = null;
59
69
  stdoutBuffer = '';