crewly 1.13.0 → 1.13.1

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 (597) hide show
  1. package/config/skills/_common/complete-body-shape.test.sh +113 -0
  2. package/config/skills/_common/no-dangling-symlinks.test.sh +63 -0
  3. package/config/skills/_common/task-pool-body-shape.test.sh +471 -0
  4. package/config/skills/agent/core/accept-task/execute.sh +30 -5
  5. package/config/skills/agent/core/block-task/execute.sh +59 -6
  6. package/config/skills/agent/core/complete-task/SKILL.md +37 -5
  7. package/config/skills/agent/core/complete-task/execute.sh +40 -9
  8. package/config/skills/agent/core/complete-task/execute.test.sh +213 -0
  9. package/config/skills/agent/core/create-task/SKILL.md +33 -0
  10. package/config/skills/agent/core/create-task/execute.sh +82 -23
  11. package/config/skills/agent/core/delegate-task/execute.sh +46 -0
  12. package/config/skills/agent/core/get-team-norms/SKILL.md +1 -1
  13. package/config/skills/agent/core/get-team-norms/execute.sh +73 -2
  14. package/config/skills/agent/core/handoff-task/execute.sh +8 -1
  15. package/config/skills/agent/core/report-status/SKILL.md +26 -0
  16. package/config/skills/agent/core/report-status/execute.sh +40 -5
  17. package/config/skills/orchestrator/delegate-task/SKILL.md +1 -1
  18. package/config/skills/orchestrator/delegate-task/execute.sh +45 -11
  19. package/config/skills/orchestrator/delegate-task/execute.test.sh +153 -1
  20. package/config/skills/team-leader/aggregate-results/SKILL.md +1 -1
  21. package/config/skills/team-leader/decompose-goal/execute.sh +11 -16
  22. package/config/skills/team-leader/delegate-task/SKILL.md +14 -1
  23. package/config/skills/team-leader/delegate-task/execute.sh +132 -43
  24. package/config/skills/team-leader/delegate-task/execute.test.sh +180 -27
  25. package/config/vitest-exclude.constants.ts +56 -0
  26. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  27. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +18 -3
  28. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  29. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  30. package/dist/backend/backend/src/controllers/slack/slack.controller.js +18 -15
  31. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  32. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +6 -1
  33. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
  34. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +19 -10
  35. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
  36. package/dist/backend/backend/src/index.d.ts.map +1 -1
  37. package/dist/backend/backend/src/index.js +20 -0
  38. package/dist/backend/backend/src/index.js.map +1 -1
  39. package/dist/backend/backend/src/scripts/stamp-build.d.ts +25 -0
  40. package/dist/backend/backend/src/scripts/stamp-build.d.ts.map +1 -0
  41. package/dist/backend/backend/src/scripts/stamp-build.js +48 -0
  42. package/dist/backend/backend/src/scripts/stamp-build.js.map +1 -0
  43. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  44. package/dist/backend/backend/src/services/agent/agent-registration.service.js +25 -0
  45. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  46. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  47. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +9 -1
  48. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  49. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +42 -3
  50. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
  51. package/dist/backend/backend/src/services/agent/crewly-agent/types.js +22 -1
  52. package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
  53. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts +15 -0
  54. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
  55. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +40 -0
  56. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
  57. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts +28 -3
  58. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  59. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +65 -8
  60. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  61. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +214 -4
  62. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
  63. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +330 -48
  64. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
  65. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +13 -1
  66. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
  67. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +84 -5
  68. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
  69. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +14 -0
  70. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
  71. package/dist/backend/backend/src/services/reconciler/reconciler.service.js +77 -3
  72. package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
  73. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +152 -7
  74. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  75. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +268 -36
  76. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  77. package/dist/backend/backend/src/services/v3/escalation-router.service.js +2 -2
  78. package/dist/backend/backend/src/services/v3/escalation-router.service.js.map +1 -1
  79. package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -1
  80. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js +39 -2
  81. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js.map +1 -1
  82. package/dist/backend/backend/src/types/v2/index.d.ts +1 -1
  83. package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -1
  84. package/dist/backend/backend/src/types/v2/index.js +1 -1
  85. package/dist/backend/backend/src/types/v2/index.js.map +1 -1
  86. package/dist/backend/backend/src/types/v2/work-item.types.d.ts +181 -1
  87. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  88. package/dist/backend/backend/src/types/v2/work-item.types.js +104 -17
  89. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
  90. package/dist/backend/backend/src/utils/build-provenance.d.ts +150 -0
  91. package/dist/backend/backend/src/utils/build-provenance.d.ts.map +1 -0
  92. package/dist/backend/backend/src/utils/build-provenance.js +211 -0
  93. package/dist/backend/backend/src/utils/build-provenance.js.map +1 -0
  94. package/dist/backend/build-info.json +4 -0
  95. package/dist/backend/config/vitest-exclude.constants.d.ts +53 -0
  96. package/dist/backend/config/vitest-exclude.constants.d.ts.map +1 -0
  97. package/dist/backend/config/vitest-exclude.constants.js +55 -0
  98. package/dist/backend/config/vitest-exclude.constants.js.map +1 -0
  99. package/dist/cli/backend/src/services/agent/active-work-briefing.service.d.ts +538 -0
  100. package/dist/cli/backend/src/services/agent/active-work-briefing.service.d.ts.map +1 -0
  101. package/dist/cli/backend/src/services/agent/active-work-briefing.service.js +802 -0
  102. package/dist/cli/backend/src/services/agent/active-work-briefing.service.js.map +1 -0
  103. package/dist/cli/backend/src/services/agent/agent-heartbeat.service.d.ts +240 -0
  104. package/dist/cli/backend/src/services/agent/agent-heartbeat.service.d.ts.map +1 -0
  105. package/dist/cli/backend/src/services/agent/agent-heartbeat.service.js +524 -0
  106. package/dist/cli/backend/src/services/agent/agent-heartbeat.service.js.map +1 -0
  107. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +629 -0
  108. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -0
  109. package/dist/cli/backend/src/services/agent/agent-registration.service.js +4548 -0
  110. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -0
  111. package/dist/cli/backend/src/services/agent/agent-suspend.service.d.ts +118 -0
  112. package/dist/cli/backend/src/services/agent/agent-suspend.service.d.ts.map +1 -0
  113. package/dist/cli/backend/src/services/agent/agent-suspend.service.js +304 -0
  114. package/dist/cli/backend/src/services/agent/agent-suspend.service.js.map +1 -0
  115. package/dist/cli/backend/src/services/agent/auditor-scheduler.service.d.ts +196 -0
  116. package/dist/cli/backend/src/services/agent/auditor-scheduler.service.d.ts.map +1 -0
  117. package/dist/cli/backend/src/services/agent/auditor-scheduler.service.js +504 -0
  118. package/dist/cli/backend/src/services/agent/auditor-scheduler.service.js.map +1 -0
  119. package/dist/cli/backend/src/services/agent/claude-runtime.service.d.ts +97 -0
  120. package/dist/cli/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -0
  121. package/dist/cli/backend/src/services/agent/claude-runtime.service.js +334 -0
  122. package/dist/cli/backend/src/services/agent/claude-runtime.service.js.map +1 -0
  123. package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts +47 -0
  124. package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts.map +1 -0
  125. package/dist/cli/backend/src/services/agent/codex-runtime.service.js +112 -0
  126. package/dist/cli/backend/src/services/agent/codex-runtime.service.js.map +1 -0
  127. package/dist/cli/backend/src/services/agent/context-window-monitor.service.d.ts +323 -0
  128. package/dist/cli/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -0
  129. package/dist/cli/backend/src/services/agent/context-window-monitor.service.js +1056 -0
  130. package/dist/cli/backend/src/services/agent/context-window-monitor.service.js.map +1 -0
  131. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +198 -0
  132. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -0
  133. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +816 -0
  134. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -0
  135. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts +155 -0
  136. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts.map +1 -0
  137. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.js +272 -0
  138. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.js.map +1 -0
  139. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.d.ts +91 -0
  140. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.d.ts.map +1 -0
  141. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.js +120 -0
  142. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.js.map +1 -0
  143. package/dist/cli/backend/src/services/agent/crewly-agent/types.d.ts +536 -0
  144. package/dist/cli/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -0
  145. package/dist/cli/backend/src/services/agent/crewly-agent/types.js +282 -0
  146. package/dist/cli/backend/src/services/agent/crewly-agent/types.js.map +1 -0
  147. package/dist/cli/backend/src/services/agent/disk-cleanup.service.d.ts +100 -0
  148. package/dist/cli/backend/src/services/agent/disk-cleanup.service.d.ts.map +1 -0
  149. package/dist/cli/backend/src/services/agent/disk-cleanup.service.js +149 -0
  150. package/dist/cli/backend/src/services/agent/disk-cleanup.service.js.map +1 -0
  151. package/dist/cli/backend/src/services/agent/gemini-runtime.service.d.ts +130 -0
  152. package/dist/cli/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -0
  153. package/dist/cli/backend/src/services/agent/gemini-runtime.service.js +758 -0
  154. package/dist/cli/backend/src/services/agent/gemini-runtime.service.js.map +1 -0
  155. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +216 -0
  156. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -0
  157. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +508 -0
  158. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -0
  159. package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.d.ts +113 -0
  160. package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.d.ts.map +1 -0
  161. package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.js +161 -0
  162. package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.js.map +1 -0
  163. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts +156 -0
  164. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -0
  165. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +641 -0
  166. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -0
  167. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts +295 -0
  168. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -0
  169. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js +1166 -0
  170. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -0
  171. package/dist/cli/backend/src/services/agent/runtime-service.factory.d.ts +71 -0
  172. package/dist/cli/backend/src/services/agent/runtime-service.factory.d.ts.map +1 -0
  173. package/dist/cli/backend/src/services/agent/runtime-service.factory.js +174 -0
  174. package/dist/cli/backend/src/services/agent/runtime-service.factory.js.map +1 -0
  175. package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts +435 -0
  176. package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -0
  177. package/dist/cli/backend/src/services/ai/prompt-builder.service.js +1331 -0
  178. package/dist/cli/backend/src/services/ai/prompt-builder.service.js.map +1 -0
  179. package/dist/cli/backend/src/services/ai/prompt-modules/capability-overlay.module.d.ts +33 -0
  180. package/dist/cli/backend/src/services/ai/prompt-modules/capability-overlay.module.d.ts.map +1 -0
  181. package/dist/cli/backend/src/services/ai/prompt-modules/capability-overlay.module.js +70 -0
  182. package/dist/cli/backend/src/services/ai/prompt-modules/capability-overlay.module.js.map +1 -0
  183. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.d.ts +100 -0
  184. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.d.ts.map +1 -0
  185. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.js +296 -0
  186. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.js.map +1 -0
  187. package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.d.ts +59 -0
  188. package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.d.ts.map +1 -0
  189. package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.js +87 -0
  190. package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.js.map +1 -0
  191. package/dist/cli/backend/src/services/ai/prompt-modules/default-execution-loop.module.d.ts +67 -0
  192. package/dist/cli/backend/src/services/ai/prompt-modules/default-execution-loop.module.d.ts.map +1 -0
  193. package/dist/cli/backend/src/services/ai/prompt-modules/default-execution-loop.module.js +84 -0
  194. package/dist/cli/backend/src/services/ai/prompt-modules/default-execution-loop.module.js.map +1 -0
  195. package/dist/cli/backend/src/services/ai/prompt-modules/domain-sop.module.d.ts +35 -0
  196. package/dist/cli/backend/src/services/ai/prompt-modules/domain-sop.module.d.ts.map +1 -0
  197. package/dist/cli/backend/src/services/ai/prompt-modules/domain-sop.module.js +50 -0
  198. package/dist/cli/backend/src/services/ai/prompt-modules/domain-sop.module.js.map +1 -0
  199. package/dist/cli/backend/src/services/ai/prompt-modules/expert-profile.module.d.ts +41 -0
  200. package/dist/cli/backend/src/services/ai/prompt-modules/expert-profile.module.d.ts.map +1 -0
  201. package/dist/cli/backend/src/services/ai/prompt-modules/expert-profile.module.js +95 -0
  202. package/dist/cli/backend/src/services/ai/prompt-modules/expert-profile.module.js.map +1 -0
  203. package/dist/cli/backend/src/services/ai/prompt-modules/identity.module.d.ts +28 -0
  204. package/dist/cli/backend/src/services/ai/prompt-modules/identity.module.d.ts.map +1 -0
  205. package/dist/cli/backend/src/services/ai/prompt-modules/identity.module.js +47 -0
  206. package/dist/cli/backend/src/services/ai/prompt-modules/identity.module.js.map +1 -0
  207. package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts +65 -0
  208. package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts.map +1 -0
  209. package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js +79 -0
  210. package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js.map +1 -0
  211. package/dist/cli/backend/src/services/ai/prompt-modules/learning-reference.module.d.ts +28 -0
  212. package/dist/cli/backend/src/services/ai/prompt-modules/learning-reference.module.d.ts.map +1 -0
  213. package/dist/cli/backend/src/services/ai/prompt-modules/learning-reference.module.js +55 -0
  214. package/dist/cli/backend/src/services/ai/prompt-modules/learning-reference.module.js.map +1 -0
  215. package/dist/cli/backend/src/services/ai/prompt-modules/lifecycle.module.d.ts +44 -0
  216. package/dist/cli/backend/src/services/ai/prompt-modules/lifecycle.module.d.ts.map +1 -0
  217. package/dist/cli/backend/src/services/ai/prompt-modules/lifecycle.module.js +120 -0
  218. package/dist/cli/backend/src/services/ai/prompt-modules/lifecycle.module.js.map +1 -0
  219. package/dist/cli/backend/src/services/ai/prompt-modules/markdown-file-module.d.ts +46 -0
  220. package/dist/cli/backend/src/services/ai/prompt-modules/markdown-file-module.d.ts.map +1 -0
  221. package/dist/cli/backend/src/services/ai/prompt-modules/markdown-file-module.js +44 -0
  222. package/dist/cli/backend/src/services/ai/prompt-modules/markdown-file-module.js.map +1 -0
  223. package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.d.ts +28 -0
  224. package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.d.ts.map +1 -0
  225. package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.js +46 -0
  226. package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.js.map +1 -0
  227. package/dist/cli/backend/src/services/ai/prompt-modules/mission-context.module.d.ts +60 -0
  228. package/dist/cli/backend/src/services/ai/prompt-modules/mission-context.module.d.ts.map +1 -0
  229. package/dist/cli/backend/src/services/ai/prompt-modules/mission-context.module.js +104 -0
  230. package/dist/cli/backend/src/services/ai/prompt-modules/mission-context.module.js.map +1 -0
  231. package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.d.ts +29 -0
  232. package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.d.ts.map +1 -0
  233. package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.js +50 -0
  234. package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.js.map +1 -0
  235. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts +103 -0
  236. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -0
  237. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +383 -0
  238. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -0
  239. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.d.ts +34 -0
  240. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -0
  241. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js +96 -0
  242. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -0
  243. package/dist/cli/backend/src/services/ai/prompt-modules/request-contract.module.d.ts +106 -0
  244. package/dist/cli/backend/src/services/ai/prompt-modules/request-contract.module.d.ts.map +1 -0
  245. package/dist/cli/backend/src/services/ai/prompt-modules/request-contract.module.js +167 -0
  246. package/dist/cli/backend/src/services/ai/prompt-modules/request-contract.module.js.map +1 -0
  247. package/dist/cli/backend/src/services/ai/prompt-modules/risk-policy.module.d.ts +35 -0
  248. package/dist/cli/backend/src/services/ai/prompt-modules/risk-policy.module.d.ts.map +1 -0
  249. package/dist/cli/backend/src/services/ai/prompt-modules/risk-policy.module.js +50 -0
  250. package/dist/cli/backend/src/services/ai/prompt-modules/risk-policy.module.js.map +1 -0
  251. package/dist/cli/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts +91 -0
  252. package/dist/cli/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts.map +1 -0
  253. package/dist/cli/backend/src/services/ai/prompt-modules/role-boundary.module.js +411 -0
  254. package/dist/cli/backend/src/services/ai/prompt-modules/role-boundary.module.js.map +1 -0
  255. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts +62 -0
  256. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -0
  257. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +199 -0
  258. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -0
  259. package/dist/cli/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts +79 -0
  260. package/dist/cli/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts.map +1 -0
  261. package/dist/cli/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js +118 -0
  262. package/dist/cli/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js.map +1 -0
  263. package/dist/cli/backend/src/services/ai/prompt-modules/soul.module.d.ts +102 -0
  264. package/dist/cli/backend/src/services/ai/prompt-modules/soul.module.d.ts.map +1 -0
  265. package/dist/cli/backend/src/services/ai/prompt-modules/soul.module.js +229 -0
  266. package/dist/cli/backend/src/services/ai/prompt-modules/soul.module.js.map +1 -0
  267. package/dist/cli/backend/src/services/ai/prompt-modules/team-norms.module.d.ts +61 -0
  268. package/dist/cli/backend/src/services/ai/prompt-modules/team-norms.module.d.ts.map +1 -0
  269. package/dist/cli/backend/src/services/ai/prompt-modules/team-norms.module.js +197 -0
  270. package/dist/cli/backend/src/services/ai/prompt-modules/team-norms.module.js.map +1 -0
  271. package/dist/cli/backend/src/services/ai/prompt-modules/team-reference.module.d.ts +54 -0
  272. package/dist/cli/backend/src/services/ai/prompt-modules/team-reference.module.d.ts.map +1 -0
  273. package/dist/cli/backend/src/services/ai/prompt-modules/team-reference.module.js +149 -0
  274. package/dist/cli/backend/src/services/ai/prompt-modules/team-reference.module.js.map +1 -0
  275. package/dist/cli/backend/src/services/ai/prompt-modules/user-profile-reference.module.d.ts +32 -0
  276. package/dist/cli/backend/src/services/ai/prompt-modules/user-profile-reference.module.d.ts.map +1 -0
  277. package/dist/cli/backend/src/services/ai/prompt-modules/user-profile-reference.module.js +69 -0
  278. package/dist/cli/backend/src/services/ai/prompt-modules/user-profile-reference.module.js.map +1 -0
  279. package/dist/cli/backend/src/services/ai/prompt-modules/working-memory.module.d.ts +91 -0
  280. package/dist/cli/backend/src/services/ai/prompt-modules/working-memory.module.d.ts.map +1 -0
  281. package/dist/cli/backend/src/services/ai/prompt-modules/working-memory.module.js +136 -0
  282. package/dist/cli/backend/src/services/ai/prompt-modules/working-memory.module.js.map +1 -0
  283. package/dist/cli/backend/src/services/ai/self-improvement/growth-areas.service.d.ts +81 -0
  284. package/dist/cli/backend/src/services/ai/self-improvement/growth-areas.service.d.ts.map +1 -0
  285. package/dist/cli/backend/src/services/ai/self-improvement/growth-areas.service.js +135 -0
  286. package/dist/cli/backend/src/services/ai/self-improvement/growth-areas.service.js.map +1 -0
  287. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts +737 -0
  288. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -0
  289. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js +1213 -0
  290. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -0
  291. package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.d.ts +27 -0
  292. package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.d.ts.map +1 -0
  293. package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.js +57 -0
  294. package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.js.map +1 -0
  295. package/dist/cli/backend/src/services/chat-v2/config.d.ts +100 -0
  296. package/dist/cli/backend/src/services/chat-v2/config.d.ts.map +1 -0
  297. package/dist/cli/backend/src/services/chat-v2/config.js +174 -0
  298. package/dist/cli/backend/src/services/chat-v2/config.js.map +1 -0
  299. package/dist/cli/backend/src/services/chat-v2/legacy-dto.utils.d.ts +118 -0
  300. package/dist/cli/backend/src/services/chat-v2/legacy-dto.utils.d.ts.map +1 -0
  301. package/dist/cli/backend/src/services/chat-v2/legacy-dto.utils.js +171 -0
  302. package/dist/cli/backend/src/services/chat-v2/legacy-dto.utils.js.map +1 -0
  303. package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.d.ts +188 -0
  304. package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.d.ts.map +1 -0
  305. package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.js +317 -0
  306. package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.js.map +1 -0
  307. package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.d.ts +119 -0
  308. package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.d.ts.map +1 -0
  309. package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.js +551 -0
  310. package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.js.map +1 -0
  311. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +208 -0
  312. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -0
  313. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +405 -0
  314. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -0
  315. package/dist/cli/backend/src/services/chat-v2/types.d.ts +341 -0
  316. package/dist/cli/backend/src/services/chat-v2/types.d.ts.map +1 -0
  317. package/dist/cli/backend/src/services/chat-v2/types.js +61 -0
  318. package/dist/cli/backend/src/services/chat-v2/types.js.map +1 -0
  319. package/dist/cli/backend/src/services/continuation/patterns/idle-patterns.d.ts +37 -0
  320. package/dist/cli/backend/src/services/continuation/patterns/idle-patterns.d.ts.map +1 -0
  321. package/dist/cli/backend/src/services/continuation/patterns/idle-patterns.js +63 -0
  322. package/dist/cli/backend/src/services/continuation/patterns/idle-patterns.js.map +1 -0
  323. package/dist/cli/backend/src/services/intent-task/intent-classifier.rules.d.ts +335 -0
  324. package/dist/cli/backend/src/services/intent-task/intent-classifier.rules.d.ts.map +1 -0
  325. package/dist/cli/backend/src/services/intent-task/intent-classifier.rules.js +421 -0
  326. package/dist/cli/backend/src/services/intent-task/intent-classifier.rules.js.map +1 -0
  327. package/dist/cli/backend/src/services/mcp-client.d.ts +233 -0
  328. package/dist/cli/backend/src/services/mcp-client.d.ts.map +1 -0
  329. package/dist/cli/backend/src/services/mcp-client.js +302 -0
  330. package/dist/cli/backend/src/services/mcp-client.js.map +1 -0
  331. package/dist/cli/backend/src/services/memory/mission-context.service.d.ts +168 -0
  332. package/dist/cli/backend/src/services/memory/mission-context.service.d.ts.map +1 -0
  333. package/dist/cli/backend/src/services/memory/mission-context.service.js +365 -0
  334. package/dist/cli/backend/src/services/memory/mission-context.service.js.map +1 -0
  335. package/dist/cli/backend/src/services/memory/session-memory.service.d.ts +197 -0
  336. package/dist/cli/backend/src/services/memory/session-memory.service.d.ts.map +1 -0
  337. package/dist/cli/backend/src/services/memory/session-memory.service.js +369 -0
  338. package/dist/cli/backend/src/services/memory/session-memory.service.js.map +1 -0
  339. package/dist/cli/backend/src/services/memory/user-profile.service.d.ts +77 -0
  340. package/dist/cli/backend/src/services/memory/user-profile.service.d.ts.map +1 -0
  341. package/dist/cli/backend/src/services/memory/user-profile.service.js +171 -0
  342. package/dist/cli/backend/src/services/memory/user-profile.service.js.map +1 -0
  343. package/dist/cli/backend/src/services/memory/working-memory.service.d.ts +232 -0
  344. package/dist/cli/backend/src/services/memory/working-memory.service.d.ts.map +1 -0
  345. package/dist/cli/backend/src/services/memory/working-memory.service.js +417 -0
  346. package/dist/cli/backend/src/services/memory/working-memory.service.js.map +1 -0
  347. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +84 -0
  348. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -0
  349. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js +136 -0
  350. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -0
  351. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts +358 -0
  352. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -0
  353. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js +755 -0
  354. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js.map +1 -0
  355. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts +269 -0
  356. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -0
  357. package/dist/cli/backend/src/services/monitoring/token-usage.service.js +391 -0
  358. package/dist/cli/backend/src/services/monitoring/token-usage.service.js.map +1 -0
  359. package/dist/cli/backend/src/services/observability/agent-behavior-log.service.d.ts +132 -0
  360. package/dist/cli/backend/src/services/observability/agent-behavior-log.service.d.ts.map +1 -0
  361. package/dist/cli/backend/src/services/observability/agent-behavior-log.service.js +284 -0
  362. package/dist/cli/backend/src/services/observability/agent-behavior-log.service.js.map +1 -0
  363. package/dist/cli/backend/src/services/observability/agent-behavior-log.singleton.d.ts +70 -0
  364. package/dist/cli/backend/src/services/observability/agent-behavior-log.singleton.d.ts.map +1 -0
  365. package/dist/cli/backend/src/services/observability/agent-behavior-log.singleton.js +121 -0
  366. package/dist/cli/backend/src/services/observability/agent-behavior-log.singleton.js.map +1 -0
  367. package/dist/cli/backend/src/services/observability/agent-behavior-log.types.d.ts +130 -0
  368. package/dist/cli/backend/src/services/observability/agent-behavior-log.types.d.ts.map +1 -0
  369. package/dist/cli/backend/src/services/observability/agent-behavior-log.types.js +48 -0
  370. package/dist/cli/backend/src/services/observability/agent-behavior-log.types.js.map +1 -0
  371. package/dist/cli/backend/src/services/observability/observability-db.d.ts +84 -0
  372. package/dist/cli/backend/src/services/observability/observability-db.d.ts.map +1 -0
  373. package/dist/cli/backend/src/services/observability/observability-db.js +165 -0
  374. package/dist/cli/backend/src/services/observability/observability-db.js.map +1 -0
  375. package/dist/cli/backend/src/services/onboarding/content-approval.service.d.ts +124 -0
  376. package/dist/cli/backend/src/services/onboarding/content-approval.service.d.ts.map +1 -0
  377. package/dist/cli/backend/src/services/onboarding/content-approval.service.js +256 -0
  378. package/dist/cli/backend/src/services/onboarding/content-approval.service.js.map +1 -0
  379. package/dist/cli/backend/src/services/onboarding/content-approval.types.d.ts +80 -0
  380. package/dist/cli/backend/src/services/onboarding/content-approval.types.d.ts.map +1 -0
  381. package/dist/cli/backend/src/services/onboarding/content-approval.types.js +16 -0
  382. package/dist/cli/backend/src/services/onboarding/content-approval.types.js.map +1 -0
  383. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts +142 -0
  384. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts.map +1 -0
  385. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js +265 -0
  386. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js.map +1 -0
  387. package/dist/cli/backend/src/services/orchestrator/improvement-marker.service.d.ts +231 -0
  388. package/dist/cli/backend/src/services/orchestrator/improvement-marker.service.d.ts.map +1 -0
  389. package/dist/cli/backend/src/services/orchestrator/improvement-marker.service.js +353 -0
  390. package/dist/cli/backend/src/services/orchestrator/improvement-marker.service.js.map +1 -0
  391. package/dist/cli/backend/src/services/orchestrator/improvement-startup.service.d.ts +157 -0
  392. package/dist/cli/backend/src/services/orchestrator/improvement-startup.service.d.ts.map +1 -0
  393. package/dist/cli/backend/src/services/orchestrator/improvement-startup.service.js +483 -0
  394. package/dist/cli/backend/src/services/orchestrator/improvement-startup.service.js.map +1 -0
  395. package/dist/cli/backend/src/services/orchestrator/index.d.ts +16 -0
  396. package/dist/cli/backend/src/services/orchestrator/index.d.ts.map +1 -0
  397. package/dist/cli/backend/src/services/orchestrator/index.js +16 -0
  398. package/dist/cli/backend/src/services/orchestrator/index.js.map +1 -0
  399. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts +117 -0
  400. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -0
  401. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js +300 -0
  402. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -0
  403. package/dist/cli/backend/src/services/orchestrator/orchestrator-setup.service.d.ts +114 -0
  404. package/dist/cli/backend/src/services/orchestrator/orchestrator-setup.service.d.ts.map +1 -0
  405. package/dist/cli/backend/src/services/orchestrator/orchestrator-setup.service.js +195 -0
  406. package/dist/cli/backend/src/services/orchestrator/orchestrator-setup.service.js.map +1 -0
  407. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts +94 -0
  408. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -0
  409. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js +279 -0
  410. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -0
  411. package/dist/cli/backend/src/services/orchestrator/safe-restart.service.d.ts +192 -0
  412. package/dist/cli/backend/src/services/orchestrator/safe-restart.service.d.ts.map +1 -0
  413. package/dist/cli/backend/src/services/orchestrator/safe-restart.service.js +395 -0
  414. package/dist/cli/backend/src/services/orchestrator/safe-restart.service.js.map +1 -0
  415. package/dist/cli/backend/src/services/orchestrator/self-improvement.service.d.ts +201 -0
  416. package/dist/cli/backend/src/services/orchestrator/self-improvement.service.d.ts.map +1 -0
  417. package/dist/cli/backend/src/services/orchestrator/self-improvement.service.js +396 -0
  418. package/dist/cli/backend/src/services/orchestrator/self-improvement.service.js.map +1 -0
  419. package/dist/cli/backend/src/services/orchestrator/slack-bridge-lazy.d.ts +17 -0
  420. package/dist/cli/backend/src/services/orchestrator/slack-bridge-lazy.d.ts.map +1 -0
  421. package/dist/cli/backend/src/services/orchestrator/slack-bridge-lazy.js +30 -0
  422. package/dist/cli/backend/src/services/orchestrator/slack-bridge-lazy.js.map +1 -0
  423. package/dist/cli/backend/src/services/orchestrator/state-persistence.service.d.ts +249 -0
  424. package/dist/cli/backend/src/services/orchestrator/state-persistence.service.d.ts.map +1 -0
  425. package/dist/cli/backend/src/services/orchestrator/state-persistence.service.js +569 -0
  426. package/dist/cli/backend/src/services/orchestrator/state-persistence.service.js.map +1 -0
  427. package/dist/cli/backend/src/services/session/index.d.ts +47 -0
  428. package/dist/cli/backend/src/services/session/index.d.ts.map +1 -0
  429. package/dist/cli/backend/src/services/session/index.js +50 -0
  430. package/dist/cli/backend/src/services/session/index.js.map +1 -0
  431. package/dist/cli/backend/src/services/session/log-rotation.service.d.ts +163 -0
  432. package/dist/cli/backend/src/services/session/log-rotation.service.d.ts.map +1 -0
  433. package/dist/cli/backend/src/services/session/log-rotation.service.js +362 -0
  434. package/dist/cli/backend/src/services/session/log-rotation.service.js.map +1 -0
  435. package/dist/cli/backend/src/services/session/pty/index.d.ts +11 -0
  436. package/dist/cli/backend/src/services/session/pty/index.d.ts.map +1 -0
  437. package/dist/cli/backend/src/services/session/pty/index.js +11 -0
  438. package/dist/cli/backend/src/services/session/pty/index.js.map +1 -0
  439. package/dist/cli/backend/src/services/session/pty/pty-session-backend.d.ts +445 -0
  440. package/dist/cli/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -0
  441. package/dist/cli/backend/src/services/session/pty/pty-session-backend.js +804 -0
  442. package/dist/cli/backend/src/services/session/pty/pty-session-backend.js.map +1 -0
  443. package/dist/cli/backend/src/services/session/pty/pty-session.d.ts +252 -0
  444. package/dist/cli/backend/src/services/session/pty/pty-session.d.ts.map +1 -0
  445. package/dist/cli/backend/src/services/session/pty/pty-session.js +611 -0
  446. package/dist/cli/backend/src/services/session/pty/pty-session.js.map +1 -0
  447. package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.d.ts +275 -0
  448. package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.d.ts.map +1 -0
  449. package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.js +403 -0
  450. package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.js.map +1 -0
  451. package/dist/cli/backend/src/services/session/runtime-pid-registry.service.d.ts +86 -0
  452. package/dist/cli/backend/src/services/session/runtime-pid-registry.service.d.ts.map +1 -0
  453. package/dist/cli/backend/src/services/session/runtime-pid-registry.service.js +214 -0
  454. package/dist/cli/backend/src/services/session/runtime-pid-registry.service.js.map +1 -0
  455. package/dist/cli/backend/src/services/session/session-backend.factory.d.ts +127 -0
  456. package/dist/cli/backend/src/services/session/session-backend.factory.d.ts.map +1 -0
  457. package/dist/cli/backend/src/services/session/session-backend.factory.js +226 -0
  458. package/dist/cli/backend/src/services/session/session-backend.factory.js.map +1 -0
  459. package/dist/cli/backend/src/services/session/session-backend.interface.d.ts +390 -0
  460. package/dist/cli/backend/src/services/session/session-backend.interface.d.ts.map +1 -0
  461. package/dist/cli/backend/src/services/session/session-backend.interface.js +19 -0
  462. package/dist/cli/backend/src/services/session/session-backend.interface.js.map +1 -0
  463. package/dist/cli/backend/src/services/session/session-command-helper.d.ts +350 -0
  464. package/dist/cli/backend/src/services/session/session-command-helper.d.ts.map +1 -0
  465. package/dist/cli/backend/src/services/session/session-command-helper.js +810 -0
  466. package/dist/cli/backend/src/services/session/session-command-helper.js.map +1 -0
  467. package/dist/cli/backend/src/services/session/session-handoff.service.d.ts +307 -0
  468. package/dist/cli/backend/src/services/session/session-handoff.service.d.ts.map +1 -0
  469. package/dist/cli/backend/src/services/session/session-handoff.service.js +742 -0
  470. package/dist/cli/backend/src/services/session/session-handoff.service.js.map +1 -0
  471. package/dist/cli/backend/src/services/session/session-state-persistence.d.ts +231 -0
  472. package/dist/cli/backend/src/services/session/session-state-persistence.d.ts.map +1 -0
  473. package/dist/cli/backend/src/services/session/session-state-persistence.js +407 -0
  474. package/dist/cli/backend/src/services/session/session-state-persistence.js.map +1 -0
  475. package/dist/cli/backend/src/services/settings/role.service.d.ts +277 -0
  476. package/dist/cli/backend/src/services/settings/role.service.d.ts.map +1 -0
  477. package/dist/cli/backend/src/services/settings/role.service.js +728 -0
  478. package/dist/cli/backend/src/services/settings/role.service.js.map +1 -0
  479. package/dist/cli/backend/src/services/slack/cross-machine-message.service.d.ts +152 -0
  480. package/dist/cli/backend/src/services/slack/cross-machine-message.service.d.ts.map +1 -0
  481. package/dist/cli/backend/src/services/slack/cross-machine-message.service.js +354 -0
  482. package/dist/cli/backend/src/services/slack/cross-machine-message.service.js.map +1 -0
  483. package/dist/cli/backend/src/services/slack/slack-image.service.d.ts +114 -0
  484. package/dist/cli/backend/src/services/slack/slack-image.service.d.ts.map +1 -0
  485. package/dist/cli/backend/src/services/slack/slack-image.service.js +331 -0
  486. package/dist/cli/backend/src/services/slack/slack-image.service.js.map +1 -0
  487. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +499 -0
  488. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -0
  489. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +1928 -0
  490. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -0
  491. package/dist/cli/backend/src/services/slack/slack.service.d.ts +315 -0
  492. package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -0
  493. package/dist/cli/backend/src/services/slack/slack.service.js +1094 -0
  494. package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -0
  495. package/dist/cli/backend/src/services/sop/sop.service.d.ts +364 -0
  496. package/dist/cli/backend/src/services/sop/sop.service.d.ts.map +1 -0
  497. package/dist/cli/backend/src/services/sop/sop.service.js +734 -0
  498. package/dist/cli/backend/src/services/sop/sop.service.js.map +1 -0
  499. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +152 -7
  500. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  501. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +268 -36
  502. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  503. package/dist/cli/backend/src/services/v3/escalation-router.service.d.ts +178 -0
  504. package/dist/cli/backend/src/services/v3/escalation-router.service.d.ts.map +1 -0
  505. package/dist/cli/backend/src/services/v3/escalation-router.service.js +692 -0
  506. package/dist/cli/backend/src/services/v3/escalation-router.service.js.map +1 -0
  507. package/dist/cli/backend/src/services/v3/kr-tracking.service.d.ts +200 -0
  508. package/dist/cli/backend/src/services/v3/kr-tracking.service.d.ts.map +1 -0
  509. package/dist/cli/backend/src/services/v3/kr-tracking.service.js +482 -0
  510. package/dist/cli/backend/src/services/v3/kr-tracking.service.js.map +1 -0
  511. package/dist/cli/backend/src/services/v3/mission-executor.service.d.ts +117 -0
  512. package/dist/cli/backend/src/services/v3/mission-executor.service.d.ts.map +1 -0
  513. package/dist/cli/backend/src/services/v3/mission-executor.service.js +321 -0
  514. package/dist/cli/backend/src/services/v3/mission-executor.service.js.map +1 -0
  515. package/dist/cli/backend/src/services/v3/request-sla.subscriber.d.ts +610 -0
  516. package/dist/cli/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -0
  517. package/dist/cli/backend/src/services/v3/request-sla.subscriber.js +1529 -0
  518. package/dist/cli/backend/src/services/v3/request-sla.subscriber.js.map +1 -0
  519. package/dist/cli/backend/src/services/v3/request-tracker.service.d.ts +78 -0
  520. package/dist/cli/backend/src/services/v3/request-tracker.service.d.ts.map +1 -0
  521. package/dist/cli/backend/src/services/v3/request-tracker.service.js +108 -0
  522. package/dist/cli/backend/src/services/v3/request-tracker.service.js.map +1 -0
  523. package/dist/cli/backend/src/services/v3/request.service.d.ts +295 -0
  524. package/dist/cli/backend/src/services/v3/request.service.d.ts.map +1 -0
  525. package/dist/cli/backend/src/services/v3/request.service.js +534 -0
  526. package/dist/cli/backend/src/services/v3/request.service.js.map +1 -0
  527. package/dist/cli/backend/src/services/v3/v3-data.service.d.ts +340 -0
  528. package/dist/cli/backend/src/services/v3/v3-data.service.d.ts.map +1 -0
  529. package/dist/cli/backend/src/services/v3/v3-data.service.js +1113 -0
  530. package/dist/cli/backend/src/services/v3/v3-data.service.js.map +1 -0
  531. package/dist/cli/backend/src/types/cross-machine.types.d.ts +103 -0
  532. package/dist/cli/backend/src/types/cross-machine.types.d.ts.map +1 -0
  533. package/dist/cli/backend/src/types/cross-machine.types.js +47 -0
  534. package/dist/cli/backend/src/types/cross-machine.types.js.map +1 -0
  535. package/dist/cli/backend/src/types/intent-task.types.d.ts +402 -0
  536. package/dist/cli/backend/src/types/intent-task.types.d.ts.map +1 -0
  537. package/dist/cli/backend/src/types/intent-task.types.js +403 -0
  538. package/dist/cli/backend/src/types/intent-task.types.js.map +1 -0
  539. package/dist/cli/backend/src/types/orchestrator-state.types.d.ts +531 -0
  540. package/dist/cli/backend/src/types/orchestrator-state.types.d.ts.map +1 -0
  541. package/dist/cli/backend/src/types/orchestrator-state.types.js +110 -0
  542. package/dist/cli/backend/src/types/orchestrator-state.types.js.map +1 -0
  543. package/dist/cli/backend/src/types/v2/index.d.ts +30 -0
  544. package/dist/cli/backend/src/types/v2/index.d.ts.map +1 -0
  545. package/dist/cli/backend/src/types/v2/index.js +22 -0
  546. package/dist/cli/backend/src/types/v2/index.js.map +1 -0
  547. package/dist/cli/backend/src/types/v2/key-result.types.d.ts +279 -0
  548. package/dist/cli/backend/src/types/v2/key-result.types.d.ts.map +1 -0
  549. package/dist/cli/backend/src/types/v2/key-result.types.js +264 -0
  550. package/dist/cli/backend/src/types/v2/key-result.types.js.map +1 -0
  551. package/dist/cli/backend/src/types/v2/mission.types.d.ts +661 -0
  552. package/dist/cli/backend/src/types/v2/mission.types.d.ts.map +1 -0
  553. package/dist/cli/backend/src/types/v2/mission.types.js +713 -0
  554. package/dist/cli/backend/src/types/v2/mission.types.js.map +1 -0
  555. package/dist/cli/backend/src/types/v2/reconcile.types.d.ts +204 -0
  556. package/dist/cli/backend/src/types/v2/reconcile.types.d.ts.map +1 -0
  557. package/dist/cli/backend/src/types/v2/reconcile.types.js +121 -0
  558. package/dist/cli/backend/src/types/v2/reconcile.types.js.map +1 -0
  559. package/dist/cli/backend/src/types/v2/request.types.d.ts +192 -0
  560. package/dist/cli/backend/src/types/v2/request.types.d.ts.map +1 -0
  561. package/dist/cli/backend/src/types/v2/request.types.js +179 -0
  562. package/dist/cli/backend/src/types/v2/request.types.js.map +1 -0
  563. package/dist/cli/backend/src/types/v2/work-item.types.d.ts +181 -1
  564. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  565. package/dist/cli/backend/src/types/v2/work-item.types.js +104 -17
  566. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
  567. package/dist/cli/backend/src/types/v2/workspace.types.d.ts +157 -0
  568. package/dist/cli/backend/src/types/v2/workspace.types.d.ts.map +1 -0
  569. package/dist/cli/backend/src/types/v2/workspace.types.js +173 -0
  570. package/dist/cli/backend/src/types/v2/workspace.types.js.map +1 -0
  571. package/dist/cli/backend/src/utils/async.utils.d.ts +68 -0
  572. package/dist/cli/backend/src/utils/async.utils.d.ts.map +1 -0
  573. package/dist/cli/backend/src/utils/async.utils.js +80 -0
  574. package/dist/cli/backend/src/utils/async.utils.js.map +1 -0
  575. package/dist/cli/backend/src/utils/native-binding.utils.d.ts +128 -0
  576. package/dist/cli/backend/src/utils/native-binding.utils.d.ts.map +1 -0
  577. package/dist/cli/backend/src/utils/native-binding.utils.js +206 -0
  578. package/dist/cli/backend/src/utils/native-binding.utils.js.map +1 -0
  579. package/dist/cli/backend/src/websocket/chat.gateway.d.ts +142 -0
  580. package/dist/cli/backend/src/websocket/chat.gateway.d.ts.map +1 -0
  581. package/dist/cli/backend/src/websocket/chat.gateway.js +327 -0
  582. package/dist/cli/backend/src/websocket/chat.gateway.js.map +1 -0
  583. package/dist/cli/backend/src/websocket/terminal.gateway.d.ts +341 -0
  584. package/dist/cli/backend/src/websocket/terminal.gateway.d.ts.map +1 -0
  585. package/dist/cli/backend/src/websocket/terminal.gateway.js +933 -0
  586. package/dist/cli/backend/src/websocket/terminal.gateway.js.map +1 -0
  587. package/dist/cli/config/vitest-exclude.constants.d.ts +53 -0
  588. package/dist/cli/config/vitest-exclude.constants.d.ts.map +1 -0
  589. package/dist/cli/config/vitest-exclude.constants.js +55 -0
  590. package/dist/cli/config/vitest-exclude.constants.js.map +1 -0
  591. package/frontend/dist/assets/index-890d3f9d.js +4961 -0
  592. package/frontend/dist/index.html +1 -1
  593. package/package.json +2 -2
  594. package/packages/crewly-agent/src/runtime/agent-runner.service.test.ts +174 -30
  595. package/packages/crewly-agent/src/runtime/agent-runner.service.ts +121 -6
  596. package/packages/crewly-agent/src/runtime/types.ts +56 -5
  597. package/frontend/dist/assets/index-aa737fd3.js +0 -5254
@@ -0,0 +1,611 @@
1
+ /**
2
+ * PTY Session Module
3
+ *
4
+ * Implements the ISession interface using node-pty for direct PTY access.
5
+ * This provides better input reliability and Windows support compared to tmux.
6
+ *
7
+ * @module pty-session
8
+ */
9
+ import * as pty from 'node-pty';
10
+ import { execSync } from 'child_process';
11
+ import { DEFAULT_TERMINAL_COLS, DEFAULT_TERMINAL_ROWS, } from '../session-backend.interface.js';
12
+ import { PTY_CONSTANTS } from '../../../constants.js';
13
+ import { LoggerService } from '../../core/logger.service.js';
14
+ /**
15
+ * Test affordance: lets `pty-session.test.ts` swap in a stub instead of
16
+ * calling the real `pty.spawn`. Production code path is identical.
17
+ */
18
+ let ptySpawnImpl = pty.spawn;
19
+ export function _setPtySpawnImplForTesting(impl) {
20
+ const previous = ptySpawnImpl;
21
+ ptySpawnImpl = impl;
22
+ return () => {
23
+ ptySpawnImpl = previous;
24
+ };
25
+ }
26
+ /**
27
+ * Retry policy for transient `pty.spawn` failures. The native node-pty
28
+ * binding throws a generic `Error("posix_spawnp failed.")` with no errno
29
+ * detail — on macOS this is usually EAGAIN (process table briefly
30
+ * saturated by Chrome helpers / VS Code extensions / build spawns) and
31
+ * retrying after a short pause succeeds. We give up after the 4th
32
+ * attempt and throw a richer diagnostic.
33
+ *
34
+ * Sync sleep uses `Atomics.wait` on an ephemeral SharedArrayBuffer —
35
+ * blocks the thread without spawning a `sleep(1)` subprocess (which
36
+ * would compound the very problem we're working around).
37
+ */
38
+ const PTY_SPAWN_RETRY_BACKOFFS_MS = [0, 150, 400, 1000];
39
+ const PTY_TRANSIENT_ERROR_MARKERS = [
40
+ 'posix_spawnp',
41
+ 'EAGAIN',
42
+ 'ENOMEM',
43
+ 'EMFILE',
44
+ 'ENFILE',
45
+ ];
46
+ function isTransientSpawnError(err) {
47
+ const msg = err instanceof Error ? err.message : String(err);
48
+ return PTY_TRANSIENT_ERROR_MARKERS.some((m) => msg.includes(m));
49
+ }
50
+ function syncSleepMs(ms) {
51
+ if (ms <= 0)
52
+ return;
53
+ const buf = new SharedArrayBuffer(4);
54
+ const view = new Int32Array(buf);
55
+ // Wait returns 'timed-out' after `ms` regardless of view[0] (which
56
+ // nobody writes to). This is the modern synchronous sleep pattern
57
+ // recommended for situations where a busy-wait would burn CPU.
58
+ Atomics.wait(view, 0, 0, ms);
59
+ }
60
+ /**
61
+ * Read current user process count cheaply. Used in the spawn-failure
62
+ * diagnostic to tell the user if they're near macOS `kern.maxprocperuid`.
63
+ */
64
+ function readUserProcessCount() {
65
+ try {
66
+ const out = execSync('ps -u "$(id -un)" 2>/dev/null | wc -l', {
67
+ encoding: 'utf8',
68
+ timeout: 800,
69
+ });
70
+ const n = parseInt(out.trim(), 10);
71
+ return Number.isFinite(n) ? n : null;
72
+ }
73
+ catch {
74
+ return null;
75
+ }
76
+ }
77
+ /** Read kern.maxprocperuid. macOS-specific; returns null on non-Darwin. */
78
+ function readMaxProcPerUid() {
79
+ if (process.platform !== 'darwin')
80
+ return null;
81
+ try {
82
+ const out = execSync('sysctl -n kern.maxprocperuid', {
83
+ encoding: 'utf8',
84
+ timeout: 500,
85
+ });
86
+ const n = parseInt(out.trim(), 10);
87
+ return Number.isFinite(n) ? n : null;
88
+ }
89
+ catch {
90
+ return null;
91
+ }
92
+ }
93
+ /**
94
+ * Wraps `pty.spawn` with retry-on-transient + actionable error.
95
+ *
96
+ * On the 4th and final failure, throws `PtySpawnExhaustedError` with a
97
+ * human-readable message + machine-readable diagnostics. Callers should
98
+ * surface the .message to the user (e.g. ORC → Slack).
99
+ */
100
+ class PtySpawnExhaustedError extends Error {
101
+ diagnostics;
102
+ constructor(message, diagnostics) {
103
+ super(message);
104
+ this.diagnostics = diagnostics;
105
+ this.name = 'PtySpawnExhaustedError';
106
+ }
107
+ }
108
+ function spawnPtyWithRetry(command, args, options, logger) {
109
+ let lastError = null;
110
+ for (let attempt = 0; attempt < PTY_SPAWN_RETRY_BACKOFFS_MS.length; attempt++) {
111
+ const backoffMs = PTY_SPAWN_RETRY_BACKOFFS_MS[attempt];
112
+ if (backoffMs > 0) {
113
+ logger.warn('PTY spawn retry — sleeping then retrying', {
114
+ attempt,
115
+ backoffMs,
116
+ command,
117
+ });
118
+ syncSleepMs(backoffMs);
119
+ }
120
+ try {
121
+ return ptySpawnImpl(command, args, options);
122
+ }
123
+ catch (err) {
124
+ lastError = err;
125
+ if (!isTransientSpawnError(err)) {
126
+ // Non-transient (e.g. ENOENT — command not found): fail fast.
127
+ throw err;
128
+ }
129
+ // Else loop — backoff already happened next iter.
130
+ }
131
+ }
132
+ // Exhausted retries — build an actionable message.
133
+ const userProcessCount = readUserProcessCount();
134
+ const maxProcPerUid = readMaxProcPerUid();
135
+ const errMsg = lastError instanceof Error ? lastError.message : String(lastError);
136
+ let humanHint = '';
137
+ if (userProcessCount !== null &&
138
+ maxProcPerUid !== null &&
139
+ userProcessCount > maxProcPerUid * 0.75) {
140
+ humanHint = ` Your user process count is ${userProcessCount} / ${maxProcPerUid} (>75% of limit). Close some Chrome tabs / VS Code windows / other agent sessions and retry.`;
141
+ }
142
+ else if (process.platform === 'darwin') {
143
+ humanHint =
144
+ ' Likely a transient kernel-level process-table spike (Chrome / VS Code / build tools spawning many helpers). Wait ~30 s and the next attempt should succeed; the OSS will auto-retry on the next user trigger.';
145
+ }
146
+ else {
147
+ humanHint = ' Transient spawn failure — retry shortly.';
148
+ }
149
+ const message = `PTY spawn failed after ${PTY_SPAWN_RETRY_BACKOFFS_MS.length} attempts (${errMsg}).${humanHint}`;
150
+ throw new PtySpawnExhaustedError(message, {
151
+ attempts: PTY_SPAWN_RETRY_BACKOFFS_MS.length,
152
+ lastError: errMsg,
153
+ userProcessCount,
154
+ maxProcPerUid,
155
+ command,
156
+ platform: process.platform,
157
+ });
158
+ }
159
+ export { PtySpawnExhaustedError };
160
+ /**
161
+ * PTY Session implementation using node-pty.
162
+ *
163
+ * Provides a direct PTY-based terminal session with the following capabilities:
164
+ * - Spawn shell processes with configurable environment
165
+ * - Write input and receive output via callbacks
166
+ * - Resize terminal dimensions
167
+ * - Graceful termination
168
+ *
169
+ * @example
170
+ * ```typescript
171
+ * const session = new PtySession('my-session', '/home/user', {
172
+ * cwd: '/home/user',
173
+ * command: '/bin/bash',
174
+ * cols: 120,
175
+ * rows: 40,
176
+ * });
177
+ *
178
+ * session.onData((data) => console.log(data));
179
+ * session.write('echo hello\n');
180
+ * session.kill();
181
+ * ```
182
+ */
183
+ export class PtySession {
184
+ name;
185
+ cwd;
186
+ /**
187
+ * The underlying node-pty process
188
+ */
189
+ ptyProcess;
190
+ /**
191
+ * Set of data listeners for output events (O(1) add/remove)
192
+ */
193
+ dataListeners = new Set();
194
+ /**
195
+ * Set of exit listeners for process termination events (O(1) add/remove)
196
+ */
197
+ exitListeners = new Set();
198
+ /**
199
+ * Flag indicating whether the session has been killed
200
+ */
201
+ killed = false;
202
+ /**
203
+ * Flag indicating whether the underlying PTY file descriptors have been
204
+ * released via {@link closePty}. Guards against double-close and makes
205
+ * teardown idempotent.
206
+ */
207
+ ptyClosed = false;
208
+ /**
209
+ * Logger for this session
210
+ */
211
+ logger;
212
+ /**
213
+ * Create a new PTY session.
214
+ *
215
+ * @param name - Unique name for this session
216
+ * @param cwd - Current working directory for the session
217
+ * @param options - Session configuration options
218
+ * @throws Error if PTY process spawn fails
219
+ *
220
+ * @example
221
+ * ```typescript
222
+ * const session = new PtySession('dev-session', '/home/user/project', {
223
+ * cwd: '/home/user/project',
224
+ * command: '/bin/bash',
225
+ * args: ['--login'],
226
+ * env: { NODE_ENV: 'development' },
227
+ * cols: 120,
228
+ * rows: 40,
229
+ * });
230
+ * ```
231
+ */
232
+ constructor(name, cwd, options) {
233
+ this.name = name;
234
+ this.cwd = cwd;
235
+ this.logger = LoggerService.getInstance().createComponentLogger(`PtySession:${name}`);
236
+ this.logger.info('Creating PTY session', {
237
+ name,
238
+ cwd,
239
+ command: options.command,
240
+ args: options.args,
241
+ cols: options.cols ?? DEFAULT_TERMINAL_COLS,
242
+ rows: options.rows ?? DEFAULT_TERMINAL_ROWS,
243
+ });
244
+ // Merge process environment with session-specific environment
245
+ const sessionEnv = {
246
+ ...this.sanitizeEnv(process.env),
247
+ ...options.env,
248
+ // Set TERM for proper terminal emulation
249
+ TERM: 'xterm-256color',
250
+ };
251
+ try {
252
+ // Spawn the PTY process — wrapped in retry-with-backoff so that
253
+ // transient `posix_spawnp failed` errors (typical on macOS when
254
+ // Chrome / VS Code briefly saturate the process table) don't
255
+ // turn into user-visible spawn failures. See spawnPtyWithRetry
256
+ // for the policy + sync sleep pattern.
257
+ this.ptyProcess = spawnPtyWithRetry(options.command, options.args ?? [], {
258
+ name: 'xterm-256color',
259
+ cols: options.cols ?? DEFAULT_TERMINAL_COLS,
260
+ rows: options.rows ?? DEFAULT_TERMINAL_ROWS,
261
+ cwd: options.cwd,
262
+ env: sessionEnv,
263
+ }, this.logger);
264
+ this.logger.info('PTY process spawned successfully', {
265
+ name,
266
+ pid: this.ptyProcess.pid,
267
+ command: options.command,
268
+ });
269
+ }
270
+ catch (spawnError) {
271
+ // `PtySpawnExhaustedError` carries the actionable hint already
272
+ // in its .message; other errors (e.g. ENOENT — command not
273
+ // found) propagate as-is. Either way we log richer context.
274
+ const errMsg = spawnError instanceof Error ? spawnError.message : String(spawnError);
275
+ const diagnostics = spawnError instanceof PtySpawnExhaustedError
276
+ ? spawnError.diagnostics
277
+ : undefined;
278
+ this.logger.error('Failed to spawn PTY process', {
279
+ name,
280
+ command: options.command,
281
+ cwd: options.cwd,
282
+ error: errMsg,
283
+ diagnostics,
284
+ stack: spawnError instanceof Error ? spawnError.stack : undefined,
285
+ });
286
+ throw spawnError;
287
+ }
288
+ // Set up event handlers
289
+ this.setupEventHandlers();
290
+ }
291
+ /**
292
+ * The process ID of the underlying PTY process.
293
+ */
294
+ get pid() {
295
+ return this.ptyProcess.pid;
296
+ }
297
+ /**
298
+ * Subscribe to data output from the session.
299
+ *
300
+ * @param callback - Function called when data is received
301
+ * @returns Unsubscribe function to remove the listener
302
+ * @throws Error if maximum listener count is exceeded
303
+ *
304
+ * @example
305
+ * ```typescript
306
+ * const unsubscribe = session.onData((data) => {
307
+ * process.stdout.write(data);
308
+ * });
309
+ * // Later: unsubscribe();
310
+ * ```
311
+ */
312
+ onData(callback) {
313
+ if (this.dataListeners.size >= PTY_CONSTANTS.MAX_DATA_LISTENERS) {
314
+ throw new Error(`Maximum data listener count (${PTY_CONSTANTS.MAX_DATA_LISTENERS}) exceeded for session ${this.name}`);
315
+ }
316
+ this.dataListeners.add(callback);
317
+ // Return O(1) unsubscribe function
318
+ return () => {
319
+ this.dataListeners.delete(callback);
320
+ };
321
+ }
322
+ /**
323
+ * Subscribe to the session exit event.
324
+ *
325
+ * @param callback - Function called when the process exits
326
+ * @returns Unsubscribe function to remove the listener
327
+ * @throws Error if maximum listener count is exceeded
328
+ *
329
+ * @example
330
+ * ```typescript
331
+ * const unsubscribe = session.onExit((code) => {
332
+ * console.log(`Session exited with code ${code}`);
333
+ * });
334
+ * ```
335
+ */
336
+ onExit(callback) {
337
+ if (this.exitListeners.size >= PTY_CONSTANTS.MAX_EXIT_LISTENERS) {
338
+ throw new Error(`Maximum exit listener count (${PTY_CONSTANTS.MAX_EXIT_LISTENERS}) exceeded for session ${this.name}`);
339
+ }
340
+ this.exitListeners.add(callback);
341
+ // Return O(1) unsubscribe function
342
+ return () => {
343
+ this.exitListeners.delete(callback);
344
+ };
345
+ }
346
+ /**
347
+ * Write data to the session's stdin.
348
+ *
349
+ * @param data - String data to write to the session
350
+ * @throws Error if session has been killed
351
+ *
352
+ * @example
353
+ * ```typescript
354
+ * session.write('ls -la\n');
355
+ * session.write('\x03'); // Send Ctrl+C
356
+ * ```
357
+ */
358
+ write(data) {
359
+ if (this.killed) {
360
+ throw new Error(`Cannot write to killed session ${this.name}`);
361
+ }
362
+ this.ptyProcess.write(data);
363
+ }
364
+ /**
365
+ * Resize the terminal dimensions.
366
+ *
367
+ * @param cols - Number of columns (width)
368
+ * @param rows - Number of rows (height)
369
+ * @throws Error if session has been killed
370
+ *
371
+ * @example
372
+ * ```typescript
373
+ * session.resize(120, 40);
374
+ * ```
375
+ */
376
+ resize(cols, rows) {
377
+ if (this.killed) {
378
+ throw new Error(`Cannot resize killed session ${this.name}`);
379
+ }
380
+ // Validate dimensions
381
+ if (cols <= 0 || rows <= 0 || !Number.isInteger(cols) || !Number.isInteger(rows)) {
382
+ throw new Error(`Invalid dimensions: cols=${cols}, rows=${rows}. Values must be positive integers.`);
383
+ }
384
+ // Cap at reasonable maximums to prevent resource exhaustion
385
+ if (cols > PTY_CONSTANTS.MAX_RESIZE_COLS || rows > PTY_CONSTANTS.MAX_RESIZE_ROWS) {
386
+ throw new Error(`Dimensions exceed maximum: cols=${cols} (max ${PTY_CONSTANTS.MAX_RESIZE_COLS}), ` +
387
+ `rows=${rows} (max ${PTY_CONSTANTS.MAX_RESIZE_ROWS})`);
388
+ }
389
+ this.ptyProcess.resize(cols, rows);
390
+ }
391
+ /**
392
+ * Kill the session and terminate the underlying process.
393
+ *
394
+ * After calling kill(), the session cannot be used anymore.
395
+ * All listeners will be cleared and subsequent write/resize calls will throw.
396
+ *
397
+ * @param signal - Optional signal to send (e.g. 'SIGTERM', 'SIGKILL'). Defaults to node-pty default (SIGHUP).
398
+ *
399
+ * @example
400
+ * ```typescript
401
+ * session.kill();
402
+ * session.kill('SIGKILL');
403
+ * ```
404
+ */
405
+ kill(signal) {
406
+ if (this.killed) {
407
+ return; // Already killed, no-op
408
+ }
409
+ this.killed = true;
410
+ this.ptyProcess.kill(signal);
411
+ // Release the underlying PTY master/slave file descriptors. `kill()` only
412
+ // signals the child shell — it does NOT close node-pty's master fd socket,
413
+ // which is the root cause of the /dev/ptmx + /dev/ttysNNN FD leak.
414
+ this.closePty();
415
+ // Clear all listeners to prevent memory leaks
416
+ this.dataListeners.clear();
417
+ this.exitListeners.clear();
418
+ }
419
+ /**
420
+ * Release the underlying node-pty file descriptors (PTY master + slave).
421
+ *
422
+ * This is the missing piece that fixes the FD leak. node-pty's `kill(signal)`
423
+ * only forwards a signal to the child shell process — it does NOT close the
424
+ * master fd that node-pty opened on `/dev/ptmx` (and the associated
425
+ * `/dev/ttysNNN` slave). On Unix, `node-pty`'s concrete `UnixTerminal` exposes
426
+ * a `destroy()` method that closes its internal read-stream socket (and thus
427
+ * the master fd) before SIGHUP-ing the shell. That method is intentionally
428
+ * absent from the public `IPty` typings, so we feature-detect it at runtime.
429
+ *
430
+ * Idempotent and exception-safe: safe to call multiple times and after the
431
+ * process has already exited. Any error (already-closed socket, missing
432
+ * `destroy` on a future node-pty, Windows ConPTY) is swallowed — the worst
433
+ * case is the pre-existing behaviour (no extra close), never a throw.
434
+ *
435
+ * @example
436
+ * ```typescript
437
+ * session.closePty(); // releases /dev/ptmx + /dev/ttysNNN FDs
438
+ * ```
439
+ */
440
+ closePty() {
441
+ if (this.ptyClosed) {
442
+ return; // Already released — idempotent no-op.
443
+ }
444
+ this.ptyClosed = true;
445
+ // node-pty's IPty typing omits `destroy()`, but UnixTerminal implements it
446
+ // and it is the only path that closes the master fd socket. Feature-detect.
447
+ const disposable = this.ptyProcess;
448
+ if (typeof disposable.destroy === 'function') {
449
+ try {
450
+ disposable.destroy();
451
+ }
452
+ catch (err) {
453
+ this.logger.debug('Error destroying PTY (fd may already be closed)', {
454
+ name: this.name,
455
+ error: err instanceof Error ? err.message : String(err),
456
+ });
457
+ }
458
+ }
459
+ }
460
+ /**
461
+ * Forcefully kill the session with SIGTERM → SIGKILL escalation.
462
+ *
463
+ * Sends SIGTERM first, then after a delay escalates to SIGKILL on both
464
+ * the process and its process group to ensure all child processes are terminated.
465
+ * This is necessary because Claude Code and Gemini CLI may catch/ignore SIGHUP and SIGTERM.
466
+ *
467
+ * @returns Promise that resolves after the kill sequence completes
468
+ *
469
+ * @example
470
+ * ```typescript
471
+ * await session.forceKill();
472
+ * ```
473
+ */
474
+ async forceKill() {
475
+ const pid = this.ptyProcess.pid;
476
+ this.logger.info('Force-killing session', { name: this.name, pid });
477
+ // Step 1: Send SIGTERM via node-pty
478
+ if (!this.killed) {
479
+ this.killed = true;
480
+ try {
481
+ this.ptyProcess.kill('SIGTERM');
482
+ }
483
+ catch (err) {
484
+ this.logger.debug('Error sending SIGTERM via node-pty (process may already be dead)', {
485
+ error: err instanceof Error ? err.message : String(err),
486
+ });
487
+ }
488
+ }
489
+ // Step 2: Wait, then escalate to SIGKILL
490
+ await new Promise((resolve) => setTimeout(resolve, PTY_CONSTANTS.FORCE_KILL_ESCALATION_DELAY));
491
+ // SIGKILL the process directly
492
+ try {
493
+ process.kill(pid, 'SIGKILL');
494
+ this.logger.debug('Sent SIGKILL to process', { pid });
495
+ }
496
+ catch {
497
+ // ESRCH = process already gone, which is fine
498
+ }
499
+ // SIGKILL the entire process group (negative PID)
500
+ try {
501
+ process.kill(-pid, 'SIGKILL');
502
+ this.logger.debug('Sent SIGKILL to process group', { pgid: -pid });
503
+ }
504
+ catch {
505
+ // ESRCH = process group already gone, which is fine
506
+ }
507
+ // Release the PTY master/slave FDs. Critical here: we SIGKILL the process
508
+ // directly via `process.kill`, bypassing node-pty's own exit handling, so
509
+ // node-pty never closes its master fd socket on its own — we must close it
510
+ // explicitly or the /dev/ptmx + /dev/ttysNNN FDs leak.
511
+ this.closePty();
512
+ // Clear all listeners to prevent memory leaks
513
+ this.dataListeners.clear();
514
+ this.exitListeners.clear();
515
+ }
516
+ /**
517
+ * Check if the session has been killed.
518
+ *
519
+ * @returns true if the session has been killed
520
+ */
521
+ isKilled() {
522
+ return this.killed;
523
+ }
524
+ /**
525
+ * Check if a child process (e.g. Claude Code) is alive inside this PTY shell.
526
+ *
527
+ * Uses `pgrep -P <shellPid>` to detect child processes of the shell.
528
+ * Returns false if the shell has no children (Claude Code exited) or if
529
+ * the check itself fails (shell already dead).
530
+ *
531
+ * @returns true if at least one child process is running inside the shell
532
+ */
533
+ isChildProcessAlive() {
534
+ if (this.killed) {
535
+ return false;
536
+ }
537
+ try {
538
+ const pid = this.ptyProcess.pid;
539
+ // pgrep -P <pid> lists child PIDs; exits 0 if found, 1 if none
540
+ execSync(`pgrep -P ${pid}`, { stdio: 'pipe', timeout: 3000 });
541
+ return true;
542
+ }
543
+ catch {
544
+ // pgrep exits with code 1 when no children found, or command fails
545
+ return false;
546
+ }
547
+ }
548
+ /**
549
+ * Set up event handlers for the PTY process.
550
+ */
551
+ setupEventHandlers() {
552
+ // Handle data output
553
+ this.ptyProcess.onData((data) => {
554
+ if (!this.killed) {
555
+ // Copy listeners set to avoid issues with modifications during iteration
556
+ const listeners = [...this.dataListeners];
557
+ for (const callback of listeners) {
558
+ try {
559
+ callback(data);
560
+ }
561
+ catch (error) {
562
+ // Log error but don't let one bad listener break others
563
+ this.logger.error('Error in data listener', {
564
+ error: error instanceof Error ? error.message : String(error),
565
+ });
566
+ }
567
+ }
568
+ }
569
+ });
570
+ // Handle process exit
571
+ this.ptyProcess.onExit(({ exitCode }) => {
572
+ // Copy listeners set to avoid issues with modifications during iteration
573
+ const listeners = [...this.exitListeners];
574
+ for (const callback of listeners) {
575
+ try {
576
+ callback(exitCode);
577
+ }
578
+ catch (error) {
579
+ // Log error but don't let one bad listener break others
580
+ this.logger.error('Error in exit listener', {
581
+ error: error instanceof Error ? error.message : String(error),
582
+ });
583
+ }
584
+ }
585
+ // Mark as killed after exit, and release the PTY FDs. When the shell
586
+ // exits on its own (idle-exit / crash / dropout / natural EOF), node-pty
587
+ // emits onExit but the master fd socket can linger until GC — closing it
588
+ // here makes the FD release deterministic on every end path.
589
+ this.killed = true;
590
+ this.closePty();
591
+ this.dataListeners.clear();
592
+ this.exitListeners.clear();
593
+ });
594
+ }
595
+ /**
596
+ * Sanitize environment variables, removing undefined values.
597
+ *
598
+ * @param env - Environment variables object
599
+ * @returns Sanitized environment object with string values only
600
+ */
601
+ sanitizeEnv(env) {
602
+ const result = {};
603
+ for (const [key, value] of Object.entries(env)) {
604
+ if (value !== undefined) {
605
+ result[key] = value;
606
+ }
607
+ }
608
+ return result;
609
+ }
610
+ }
611
+ //# sourceMappingURL=pty-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pty-session.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/session/pty/pty-session.ts"],"names":[],"mappings":"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"}