crewly 1.12.1 → 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 (625) 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/chat/chat.controller.d.ts.map +1 -1
  27. package/dist/backend/backend/src/controllers/chat/chat.controller.js +29 -7
  28. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  29. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
  30. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +1 -1
  31. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
  32. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  33. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +18 -3
  34. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  35. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  36. package/dist/backend/backend/src/controllers/slack/slack.controller.js +18 -15
  37. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  38. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +6 -1
  39. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
  40. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +19 -10
  41. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
  42. package/dist/backend/backend/src/index.d.ts.map +1 -1
  43. package/dist/backend/backend/src/index.js +20 -0
  44. package/dist/backend/backend/src/index.js.map +1 -1
  45. package/dist/backend/backend/src/scripts/stamp-build.d.ts +25 -0
  46. package/dist/backend/backend/src/scripts/stamp-build.d.ts.map +1 -0
  47. package/dist/backend/backend/src/scripts/stamp-build.js +48 -0
  48. package/dist/backend/backend/src/scripts/stamp-build.js.map +1 -0
  49. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  50. package/dist/backend/backend/src/services/agent/agent-registration.service.js +33 -1
  51. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  52. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +78 -2
  53. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  54. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +248 -44
  55. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  56. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +51 -3
  57. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
  58. package/dist/backend/backend/src/services/agent/crewly-agent/types.js +31 -1
  59. package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
  60. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +5 -0
  61. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
  62. package/dist/backend/backend/src/services/cloud/cloud-client.service.js +7 -0
  63. package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
  64. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts +15 -0
  65. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
  66. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +40 -0
  67. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
  68. package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.d.ts.map +1 -1
  69. package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.js +26 -0
  70. package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.js.map +1 -1
  71. package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.d.ts.map +1 -1
  72. package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js +19 -3
  73. package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js.map +1 -1
  74. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts +28 -3
  75. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  76. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +65 -8
  77. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  78. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +214 -4
  79. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
  80. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +330 -48
  81. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
  82. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +13 -1
  83. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
  84. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +84 -5
  85. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
  86. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +14 -0
  87. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
  88. package/dist/backend/backend/src/services/reconciler/reconciler.service.js +77 -3
  89. package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
  90. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +152 -7
  91. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  92. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +268 -36
  93. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  94. package/dist/backend/backend/src/services/v3/escalation-router.service.js +2 -2
  95. package/dist/backend/backend/src/services/v3/escalation-router.service.js.map +1 -1
  96. package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -1
  97. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js +39 -2
  98. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js.map +1 -1
  99. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts +3 -0
  100. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts.map +1 -1
  101. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js +21 -10
  102. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js.map +1 -1
  103. package/dist/backend/backend/src/types/v2/index.d.ts +1 -1
  104. package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -1
  105. package/dist/backend/backend/src/types/v2/index.js +1 -1
  106. package/dist/backend/backend/src/types/v2/index.js.map +1 -1
  107. package/dist/backend/backend/src/types/v2/work-item.types.d.ts +181 -1
  108. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  109. package/dist/backend/backend/src/types/v2/work-item.types.js +104 -17
  110. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
  111. package/dist/backend/backend/src/utils/build-provenance.d.ts +150 -0
  112. package/dist/backend/backend/src/utils/build-provenance.d.ts.map +1 -0
  113. package/dist/backend/backend/src/utils/build-provenance.js +211 -0
  114. package/dist/backend/backend/src/utils/build-provenance.js.map +1 -0
  115. package/dist/backend/backend/src/websocket/chat.gateway.d.ts.map +1 -1
  116. package/dist/backend/backend/src/websocket/chat.gateway.js +7 -1
  117. package/dist/backend/backend/src/websocket/chat.gateway.js.map +1 -1
  118. package/dist/backend/build-info.json +4 -0
  119. package/dist/backend/config/vitest-exclude.constants.d.ts +53 -0
  120. package/dist/backend/config/vitest-exclude.constants.d.ts.map +1 -0
  121. package/dist/backend/config/vitest-exclude.constants.js +55 -0
  122. package/dist/backend/config/vitest-exclude.constants.js.map +1 -0
  123. package/dist/cli/backend/src/services/agent/active-work-briefing.service.d.ts +538 -0
  124. package/dist/cli/backend/src/services/agent/active-work-briefing.service.d.ts.map +1 -0
  125. package/dist/cli/backend/src/services/agent/active-work-briefing.service.js +802 -0
  126. package/dist/cli/backend/src/services/agent/active-work-briefing.service.js.map +1 -0
  127. package/dist/cli/backend/src/services/agent/agent-heartbeat.service.d.ts +240 -0
  128. package/dist/cli/backend/src/services/agent/agent-heartbeat.service.d.ts.map +1 -0
  129. package/dist/cli/backend/src/services/agent/agent-heartbeat.service.js +524 -0
  130. package/dist/cli/backend/src/services/agent/agent-heartbeat.service.js.map +1 -0
  131. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +629 -0
  132. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -0
  133. package/dist/cli/backend/src/services/agent/agent-registration.service.js +4548 -0
  134. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -0
  135. package/dist/cli/backend/src/services/agent/agent-suspend.service.d.ts +118 -0
  136. package/dist/cli/backend/src/services/agent/agent-suspend.service.d.ts.map +1 -0
  137. package/dist/cli/backend/src/services/agent/agent-suspend.service.js +304 -0
  138. package/dist/cli/backend/src/services/agent/agent-suspend.service.js.map +1 -0
  139. package/dist/cli/backend/src/services/agent/auditor-scheduler.service.d.ts +196 -0
  140. package/dist/cli/backend/src/services/agent/auditor-scheduler.service.d.ts.map +1 -0
  141. package/dist/cli/backend/src/services/agent/auditor-scheduler.service.js +504 -0
  142. package/dist/cli/backend/src/services/agent/auditor-scheduler.service.js.map +1 -0
  143. package/dist/cli/backend/src/services/agent/claude-runtime.service.d.ts +97 -0
  144. package/dist/cli/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -0
  145. package/dist/cli/backend/src/services/agent/claude-runtime.service.js +334 -0
  146. package/dist/cli/backend/src/services/agent/claude-runtime.service.js.map +1 -0
  147. package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts +47 -0
  148. package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts.map +1 -0
  149. package/dist/cli/backend/src/services/agent/codex-runtime.service.js +112 -0
  150. package/dist/cli/backend/src/services/agent/codex-runtime.service.js.map +1 -0
  151. package/dist/cli/backend/src/services/agent/context-window-monitor.service.d.ts +323 -0
  152. package/dist/cli/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -0
  153. package/dist/cli/backend/src/services/agent/context-window-monitor.service.js +1056 -0
  154. package/dist/cli/backend/src/services/agent/context-window-monitor.service.js.map +1 -0
  155. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +198 -0
  156. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -0
  157. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +816 -0
  158. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -0
  159. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts +155 -0
  160. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts.map +1 -0
  161. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.js +272 -0
  162. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.js.map +1 -0
  163. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.d.ts +91 -0
  164. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.d.ts.map +1 -0
  165. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.js +120 -0
  166. package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.js.map +1 -0
  167. package/dist/cli/backend/src/services/agent/crewly-agent/types.d.ts +536 -0
  168. package/dist/cli/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -0
  169. package/dist/cli/backend/src/services/agent/crewly-agent/types.js +282 -0
  170. package/dist/cli/backend/src/services/agent/crewly-agent/types.js.map +1 -0
  171. package/dist/cli/backend/src/services/agent/disk-cleanup.service.d.ts +100 -0
  172. package/dist/cli/backend/src/services/agent/disk-cleanup.service.d.ts.map +1 -0
  173. package/dist/cli/backend/src/services/agent/disk-cleanup.service.js +149 -0
  174. package/dist/cli/backend/src/services/agent/disk-cleanup.service.js.map +1 -0
  175. package/dist/cli/backend/src/services/agent/gemini-runtime.service.d.ts +130 -0
  176. package/dist/cli/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -0
  177. package/dist/cli/backend/src/services/agent/gemini-runtime.service.js +758 -0
  178. package/dist/cli/backend/src/services/agent/gemini-runtime.service.js.map +1 -0
  179. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +216 -0
  180. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -0
  181. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +508 -0
  182. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -0
  183. package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.d.ts +113 -0
  184. package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.d.ts.map +1 -0
  185. package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.js +161 -0
  186. package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.js.map +1 -0
  187. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts +156 -0
  188. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -0
  189. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +641 -0
  190. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -0
  191. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts +295 -0
  192. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -0
  193. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js +1166 -0
  194. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -0
  195. package/dist/cli/backend/src/services/agent/runtime-service.factory.d.ts +71 -0
  196. package/dist/cli/backend/src/services/agent/runtime-service.factory.d.ts.map +1 -0
  197. package/dist/cli/backend/src/services/agent/runtime-service.factory.js +174 -0
  198. package/dist/cli/backend/src/services/agent/runtime-service.factory.js.map +1 -0
  199. package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts +435 -0
  200. package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -0
  201. package/dist/cli/backend/src/services/ai/prompt-builder.service.js +1331 -0
  202. package/dist/cli/backend/src/services/ai/prompt-builder.service.js.map +1 -0
  203. package/dist/cli/backend/src/services/ai/prompt-modules/capability-overlay.module.d.ts +33 -0
  204. package/dist/cli/backend/src/services/ai/prompt-modules/capability-overlay.module.d.ts.map +1 -0
  205. package/dist/cli/backend/src/services/ai/prompt-modules/capability-overlay.module.js +70 -0
  206. package/dist/cli/backend/src/services/ai/prompt-modules/capability-overlay.module.js.map +1 -0
  207. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.d.ts +100 -0
  208. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.d.ts.map +1 -0
  209. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.js +296 -0
  210. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.js.map +1 -0
  211. package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.d.ts +59 -0
  212. package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.d.ts.map +1 -0
  213. package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.js +87 -0
  214. package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.js.map +1 -0
  215. package/dist/cli/backend/src/services/ai/prompt-modules/default-execution-loop.module.d.ts +67 -0
  216. package/dist/cli/backend/src/services/ai/prompt-modules/default-execution-loop.module.d.ts.map +1 -0
  217. package/dist/cli/backend/src/services/ai/prompt-modules/default-execution-loop.module.js +84 -0
  218. package/dist/cli/backend/src/services/ai/prompt-modules/default-execution-loop.module.js.map +1 -0
  219. package/dist/cli/backend/src/services/ai/prompt-modules/domain-sop.module.d.ts +35 -0
  220. package/dist/cli/backend/src/services/ai/prompt-modules/domain-sop.module.d.ts.map +1 -0
  221. package/dist/cli/backend/src/services/ai/prompt-modules/domain-sop.module.js +50 -0
  222. package/dist/cli/backend/src/services/ai/prompt-modules/domain-sop.module.js.map +1 -0
  223. package/dist/cli/backend/src/services/ai/prompt-modules/expert-profile.module.d.ts +41 -0
  224. package/dist/cli/backend/src/services/ai/prompt-modules/expert-profile.module.d.ts.map +1 -0
  225. package/dist/cli/backend/src/services/ai/prompt-modules/expert-profile.module.js +95 -0
  226. package/dist/cli/backend/src/services/ai/prompt-modules/expert-profile.module.js.map +1 -0
  227. package/dist/cli/backend/src/services/ai/prompt-modules/identity.module.d.ts +28 -0
  228. package/dist/cli/backend/src/services/ai/prompt-modules/identity.module.d.ts.map +1 -0
  229. package/dist/cli/backend/src/services/ai/prompt-modules/identity.module.js +47 -0
  230. package/dist/cli/backend/src/services/ai/prompt-modules/identity.module.js.map +1 -0
  231. package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts +65 -0
  232. package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts.map +1 -0
  233. package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js +79 -0
  234. package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js.map +1 -0
  235. package/dist/cli/backend/src/services/ai/prompt-modules/learning-reference.module.d.ts +28 -0
  236. package/dist/cli/backend/src/services/ai/prompt-modules/learning-reference.module.d.ts.map +1 -0
  237. package/dist/cli/backend/src/services/ai/prompt-modules/learning-reference.module.js +55 -0
  238. package/dist/cli/backend/src/services/ai/prompt-modules/learning-reference.module.js.map +1 -0
  239. package/dist/cli/backend/src/services/ai/prompt-modules/lifecycle.module.d.ts +44 -0
  240. package/dist/cli/backend/src/services/ai/prompt-modules/lifecycle.module.d.ts.map +1 -0
  241. package/dist/cli/backend/src/services/ai/prompt-modules/lifecycle.module.js +120 -0
  242. package/dist/cli/backend/src/services/ai/prompt-modules/lifecycle.module.js.map +1 -0
  243. package/dist/cli/backend/src/services/ai/prompt-modules/markdown-file-module.d.ts +46 -0
  244. package/dist/cli/backend/src/services/ai/prompt-modules/markdown-file-module.d.ts.map +1 -0
  245. package/dist/cli/backend/src/services/ai/prompt-modules/markdown-file-module.js +44 -0
  246. package/dist/cli/backend/src/services/ai/prompt-modules/markdown-file-module.js.map +1 -0
  247. package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.d.ts +28 -0
  248. package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.d.ts.map +1 -0
  249. package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.js +46 -0
  250. package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.js.map +1 -0
  251. package/dist/cli/backend/src/services/ai/prompt-modules/mission-context.module.d.ts +60 -0
  252. package/dist/cli/backend/src/services/ai/prompt-modules/mission-context.module.d.ts.map +1 -0
  253. package/dist/cli/backend/src/services/ai/prompt-modules/mission-context.module.js +104 -0
  254. package/dist/cli/backend/src/services/ai/prompt-modules/mission-context.module.js.map +1 -0
  255. package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.d.ts +29 -0
  256. package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.d.ts.map +1 -0
  257. package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.js +50 -0
  258. package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.js.map +1 -0
  259. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts +103 -0
  260. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -0
  261. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +383 -0
  262. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -0
  263. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.d.ts +34 -0
  264. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -0
  265. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js +96 -0
  266. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -0
  267. package/dist/cli/backend/src/services/ai/prompt-modules/request-contract.module.d.ts +106 -0
  268. package/dist/cli/backend/src/services/ai/prompt-modules/request-contract.module.d.ts.map +1 -0
  269. package/dist/cli/backend/src/services/ai/prompt-modules/request-contract.module.js +167 -0
  270. package/dist/cli/backend/src/services/ai/prompt-modules/request-contract.module.js.map +1 -0
  271. package/dist/cli/backend/src/services/ai/prompt-modules/risk-policy.module.d.ts +35 -0
  272. package/dist/cli/backend/src/services/ai/prompt-modules/risk-policy.module.d.ts.map +1 -0
  273. package/dist/cli/backend/src/services/ai/prompt-modules/risk-policy.module.js +50 -0
  274. package/dist/cli/backend/src/services/ai/prompt-modules/risk-policy.module.js.map +1 -0
  275. package/dist/cli/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts +91 -0
  276. package/dist/cli/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts.map +1 -0
  277. package/dist/cli/backend/src/services/ai/prompt-modules/role-boundary.module.js +411 -0
  278. package/dist/cli/backend/src/services/ai/prompt-modules/role-boundary.module.js.map +1 -0
  279. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts +62 -0
  280. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -0
  281. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +199 -0
  282. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -0
  283. package/dist/cli/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts +79 -0
  284. package/dist/cli/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts.map +1 -0
  285. package/dist/cli/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js +118 -0
  286. package/dist/cli/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js.map +1 -0
  287. package/dist/cli/backend/src/services/ai/prompt-modules/soul.module.d.ts +102 -0
  288. package/dist/cli/backend/src/services/ai/prompt-modules/soul.module.d.ts.map +1 -0
  289. package/dist/cli/backend/src/services/ai/prompt-modules/soul.module.js +229 -0
  290. package/dist/cli/backend/src/services/ai/prompt-modules/soul.module.js.map +1 -0
  291. package/dist/cli/backend/src/services/ai/prompt-modules/team-norms.module.d.ts +61 -0
  292. package/dist/cli/backend/src/services/ai/prompt-modules/team-norms.module.d.ts.map +1 -0
  293. package/dist/cli/backend/src/services/ai/prompt-modules/team-norms.module.js +197 -0
  294. package/dist/cli/backend/src/services/ai/prompt-modules/team-norms.module.js.map +1 -0
  295. package/dist/cli/backend/src/services/ai/prompt-modules/team-reference.module.d.ts +54 -0
  296. package/dist/cli/backend/src/services/ai/prompt-modules/team-reference.module.d.ts.map +1 -0
  297. package/dist/cli/backend/src/services/ai/prompt-modules/team-reference.module.js +149 -0
  298. package/dist/cli/backend/src/services/ai/prompt-modules/team-reference.module.js.map +1 -0
  299. package/dist/cli/backend/src/services/ai/prompt-modules/user-profile-reference.module.d.ts +32 -0
  300. package/dist/cli/backend/src/services/ai/prompt-modules/user-profile-reference.module.d.ts.map +1 -0
  301. package/dist/cli/backend/src/services/ai/prompt-modules/user-profile-reference.module.js +69 -0
  302. package/dist/cli/backend/src/services/ai/prompt-modules/user-profile-reference.module.js.map +1 -0
  303. package/dist/cli/backend/src/services/ai/prompt-modules/working-memory.module.d.ts +91 -0
  304. package/dist/cli/backend/src/services/ai/prompt-modules/working-memory.module.d.ts.map +1 -0
  305. package/dist/cli/backend/src/services/ai/prompt-modules/working-memory.module.js +136 -0
  306. package/dist/cli/backend/src/services/ai/prompt-modules/working-memory.module.js.map +1 -0
  307. package/dist/cli/backend/src/services/ai/self-improvement/growth-areas.service.d.ts +81 -0
  308. package/dist/cli/backend/src/services/ai/self-improvement/growth-areas.service.d.ts.map +1 -0
  309. package/dist/cli/backend/src/services/ai/self-improvement/growth-areas.service.js +135 -0
  310. package/dist/cli/backend/src/services/ai/self-improvement/growth-areas.service.js.map +1 -0
  311. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts +737 -0
  312. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -0
  313. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js +1213 -0
  314. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -0
  315. package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.d.ts +27 -0
  316. package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.d.ts.map +1 -0
  317. package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.js +57 -0
  318. package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.js.map +1 -0
  319. package/dist/cli/backend/src/services/chat-v2/config.d.ts +100 -0
  320. package/dist/cli/backend/src/services/chat-v2/config.d.ts.map +1 -0
  321. package/dist/cli/backend/src/services/chat-v2/config.js +174 -0
  322. package/dist/cli/backend/src/services/chat-v2/config.js.map +1 -0
  323. package/dist/cli/backend/src/services/chat-v2/legacy-dto.utils.d.ts +118 -0
  324. package/dist/cli/backend/src/services/chat-v2/legacy-dto.utils.d.ts.map +1 -0
  325. package/dist/cli/backend/src/services/chat-v2/legacy-dto.utils.js +171 -0
  326. package/dist/cli/backend/src/services/chat-v2/legacy-dto.utils.js.map +1 -0
  327. package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.d.ts +188 -0
  328. package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.d.ts.map +1 -0
  329. package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.js +317 -0
  330. package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.js.map +1 -0
  331. package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.d.ts +119 -0
  332. package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.d.ts.map +1 -0
  333. package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.js +551 -0
  334. package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.js.map +1 -0
  335. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +208 -0
  336. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -0
  337. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +405 -0
  338. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -0
  339. package/dist/cli/backend/src/services/chat-v2/types.d.ts +341 -0
  340. package/dist/cli/backend/src/services/chat-v2/types.d.ts.map +1 -0
  341. package/dist/cli/backend/src/services/chat-v2/types.js +61 -0
  342. package/dist/cli/backend/src/services/chat-v2/types.js.map +1 -0
  343. package/dist/cli/backend/src/services/cloud/cloud-client.service.d.ts +5 -0
  344. package/dist/cli/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
  345. package/dist/cli/backend/src/services/cloud/cloud-client.service.js +7 -0
  346. package/dist/cli/backend/src/services/cloud/cloud-client.service.js.map +1 -1
  347. package/dist/cli/backend/src/services/continuation/patterns/idle-patterns.d.ts +37 -0
  348. package/dist/cli/backend/src/services/continuation/patterns/idle-patterns.d.ts.map +1 -0
  349. package/dist/cli/backend/src/services/continuation/patterns/idle-patterns.js +63 -0
  350. package/dist/cli/backend/src/services/continuation/patterns/idle-patterns.js.map +1 -0
  351. package/dist/cli/backend/src/services/intent-task/intent-classifier.rules.d.ts +335 -0
  352. package/dist/cli/backend/src/services/intent-task/intent-classifier.rules.d.ts.map +1 -0
  353. package/dist/cli/backend/src/services/intent-task/intent-classifier.rules.js +421 -0
  354. package/dist/cli/backend/src/services/intent-task/intent-classifier.rules.js.map +1 -0
  355. package/dist/cli/backend/src/services/mcp-client.d.ts +233 -0
  356. package/dist/cli/backend/src/services/mcp-client.d.ts.map +1 -0
  357. package/dist/cli/backend/src/services/mcp-client.js +302 -0
  358. package/dist/cli/backend/src/services/mcp-client.js.map +1 -0
  359. package/dist/cli/backend/src/services/memory/mission-context.service.d.ts +168 -0
  360. package/dist/cli/backend/src/services/memory/mission-context.service.d.ts.map +1 -0
  361. package/dist/cli/backend/src/services/memory/mission-context.service.js +365 -0
  362. package/dist/cli/backend/src/services/memory/mission-context.service.js.map +1 -0
  363. package/dist/cli/backend/src/services/memory/session-memory.service.d.ts +197 -0
  364. package/dist/cli/backend/src/services/memory/session-memory.service.d.ts.map +1 -0
  365. package/dist/cli/backend/src/services/memory/session-memory.service.js +369 -0
  366. package/dist/cli/backend/src/services/memory/session-memory.service.js.map +1 -0
  367. package/dist/cli/backend/src/services/memory/user-profile.service.d.ts +77 -0
  368. package/dist/cli/backend/src/services/memory/user-profile.service.d.ts.map +1 -0
  369. package/dist/cli/backend/src/services/memory/user-profile.service.js +171 -0
  370. package/dist/cli/backend/src/services/memory/user-profile.service.js.map +1 -0
  371. package/dist/cli/backend/src/services/memory/working-memory.service.d.ts +232 -0
  372. package/dist/cli/backend/src/services/memory/working-memory.service.d.ts.map +1 -0
  373. package/dist/cli/backend/src/services/memory/working-memory.service.js +417 -0
  374. package/dist/cli/backend/src/services/memory/working-memory.service.js.map +1 -0
  375. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +84 -0
  376. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -0
  377. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js +136 -0
  378. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -0
  379. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts +358 -0
  380. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -0
  381. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js +755 -0
  382. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js.map +1 -0
  383. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts +269 -0
  384. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -0
  385. package/dist/cli/backend/src/services/monitoring/token-usage.service.js +391 -0
  386. package/dist/cli/backend/src/services/monitoring/token-usage.service.js.map +1 -0
  387. package/dist/cli/backend/src/services/observability/agent-behavior-log.service.d.ts +132 -0
  388. package/dist/cli/backend/src/services/observability/agent-behavior-log.service.d.ts.map +1 -0
  389. package/dist/cli/backend/src/services/observability/agent-behavior-log.service.js +284 -0
  390. package/dist/cli/backend/src/services/observability/agent-behavior-log.service.js.map +1 -0
  391. package/dist/cli/backend/src/services/observability/agent-behavior-log.singleton.d.ts +70 -0
  392. package/dist/cli/backend/src/services/observability/agent-behavior-log.singleton.d.ts.map +1 -0
  393. package/dist/cli/backend/src/services/observability/agent-behavior-log.singleton.js +121 -0
  394. package/dist/cli/backend/src/services/observability/agent-behavior-log.singleton.js.map +1 -0
  395. package/dist/cli/backend/src/services/observability/agent-behavior-log.types.d.ts +130 -0
  396. package/dist/cli/backend/src/services/observability/agent-behavior-log.types.d.ts.map +1 -0
  397. package/dist/cli/backend/src/services/observability/agent-behavior-log.types.js +48 -0
  398. package/dist/cli/backend/src/services/observability/agent-behavior-log.types.js.map +1 -0
  399. package/dist/cli/backend/src/services/observability/observability-db.d.ts +84 -0
  400. package/dist/cli/backend/src/services/observability/observability-db.d.ts.map +1 -0
  401. package/dist/cli/backend/src/services/observability/observability-db.js +165 -0
  402. package/dist/cli/backend/src/services/observability/observability-db.js.map +1 -0
  403. package/dist/cli/backend/src/services/onboarding/content-approval.service.d.ts +124 -0
  404. package/dist/cli/backend/src/services/onboarding/content-approval.service.d.ts.map +1 -0
  405. package/dist/cli/backend/src/services/onboarding/content-approval.service.js +256 -0
  406. package/dist/cli/backend/src/services/onboarding/content-approval.service.js.map +1 -0
  407. package/dist/cli/backend/src/services/onboarding/content-approval.types.d.ts +80 -0
  408. package/dist/cli/backend/src/services/onboarding/content-approval.types.d.ts.map +1 -0
  409. package/dist/cli/backend/src/services/onboarding/content-approval.types.js +16 -0
  410. package/dist/cli/backend/src/services/onboarding/content-approval.types.js.map +1 -0
  411. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts +142 -0
  412. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts.map +1 -0
  413. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js +265 -0
  414. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js.map +1 -0
  415. package/dist/cli/backend/src/services/orchestrator/improvement-marker.service.d.ts +231 -0
  416. package/dist/cli/backend/src/services/orchestrator/improvement-marker.service.d.ts.map +1 -0
  417. package/dist/cli/backend/src/services/orchestrator/improvement-marker.service.js +353 -0
  418. package/dist/cli/backend/src/services/orchestrator/improvement-marker.service.js.map +1 -0
  419. package/dist/cli/backend/src/services/orchestrator/improvement-startup.service.d.ts +157 -0
  420. package/dist/cli/backend/src/services/orchestrator/improvement-startup.service.d.ts.map +1 -0
  421. package/dist/cli/backend/src/services/orchestrator/improvement-startup.service.js +483 -0
  422. package/dist/cli/backend/src/services/orchestrator/improvement-startup.service.js.map +1 -0
  423. package/dist/cli/backend/src/services/orchestrator/index.d.ts +16 -0
  424. package/dist/cli/backend/src/services/orchestrator/index.d.ts.map +1 -0
  425. package/dist/cli/backend/src/services/orchestrator/index.js +16 -0
  426. package/dist/cli/backend/src/services/orchestrator/index.js.map +1 -0
  427. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts +117 -0
  428. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -0
  429. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js +300 -0
  430. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -0
  431. package/dist/cli/backend/src/services/orchestrator/orchestrator-setup.service.d.ts +114 -0
  432. package/dist/cli/backend/src/services/orchestrator/orchestrator-setup.service.d.ts.map +1 -0
  433. package/dist/cli/backend/src/services/orchestrator/orchestrator-setup.service.js +195 -0
  434. package/dist/cli/backend/src/services/orchestrator/orchestrator-setup.service.js.map +1 -0
  435. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts +94 -0
  436. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -0
  437. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js +279 -0
  438. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -0
  439. package/dist/cli/backend/src/services/orchestrator/safe-restart.service.d.ts +192 -0
  440. package/dist/cli/backend/src/services/orchestrator/safe-restart.service.d.ts.map +1 -0
  441. package/dist/cli/backend/src/services/orchestrator/safe-restart.service.js +395 -0
  442. package/dist/cli/backend/src/services/orchestrator/safe-restart.service.js.map +1 -0
  443. package/dist/cli/backend/src/services/orchestrator/self-improvement.service.d.ts +201 -0
  444. package/dist/cli/backend/src/services/orchestrator/self-improvement.service.d.ts.map +1 -0
  445. package/dist/cli/backend/src/services/orchestrator/self-improvement.service.js +396 -0
  446. package/dist/cli/backend/src/services/orchestrator/self-improvement.service.js.map +1 -0
  447. package/dist/cli/backend/src/services/orchestrator/slack-bridge-lazy.d.ts +17 -0
  448. package/dist/cli/backend/src/services/orchestrator/slack-bridge-lazy.d.ts.map +1 -0
  449. package/dist/cli/backend/src/services/orchestrator/slack-bridge-lazy.js +30 -0
  450. package/dist/cli/backend/src/services/orchestrator/slack-bridge-lazy.js.map +1 -0
  451. package/dist/cli/backend/src/services/orchestrator/state-persistence.service.d.ts +249 -0
  452. package/dist/cli/backend/src/services/orchestrator/state-persistence.service.d.ts.map +1 -0
  453. package/dist/cli/backend/src/services/orchestrator/state-persistence.service.js +569 -0
  454. package/dist/cli/backend/src/services/orchestrator/state-persistence.service.js.map +1 -0
  455. package/dist/cli/backend/src/services/session/index.d.ts +47 -0
  456. package/dist/cli/backend/src/services/session/index.d.ts.map +1 -0
  457. package/dist/cli/backend/src/services/session/index.js +50 -0
  458. package/dist/cli/backend/src/services/session/index.js.map +1 -0
  459. package/dist/cli/backend/src/services/session/log-rotation.service.d.ts +163 -0
  460. package/dist/cli/backend/src/services/session/log-rotation.service.d.ts.map +1 -0
  461. package/dist/cli/backend/src/services/session/log-rotation.service.js +362 -0
  462. package/dist/cli/backend/src/services/session/log-rotation.service.js.map +1 -0
  463. package/dist/cli/backend/src/services/session/pty/index.d.ts +11 -0
  464. package/dist/cli/backend/src/services/session/pty/index.d.ts.map +1 -0
  465. package/dist/cli/backend/src/services/session/pty/index.js +11 -0
  466. package/dist/cli/backend/src/services/session/pty/index.js.map +1 -0
  467. package/dist/cli/backend/src/services/session/pty/pty-session-backend.d.ts +445 -0
  468. package/dist/cli/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -0
  469. package/dist/cli/backend/src/services/session/pty/pty-session-backend.js +804 -0
  470. package/dist/cli/backend/src/services/session/pty/pty-session-backend.js.map +1 -0
  471. package/dist/cli/backend/src/services/session/pty/pty-session.d.ts +252 -0
  472. package/dist/cli/backend/src/services/session/pty/pty-session.d.ts.map +1 -0
  473. package/dist/cli/backend/src/services/session/pty/pty-session.js +611 -0
  474. package/dist/cli/backend/src/services/session/pty/pty-session.js.map +1 -0
  475. package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.d.ts +275 -0
  476. package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.d.ts.map +1 -0
  477. package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.js +403 -0
  478. package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.js.map +1 -0
  479. package/dist/cli/backend/src/services/session/runtime-pid-registry.service.d.ts +86 -0
  480. package/dist/cli/backend/src/services/session/runtime-pid-registry.service.d.ts.map +1 -0
  481. package/dist/cli/backend/src/services/session/runtime-pid-registry.service.js +214 -0
  482. package/dist/cli/backend/src/services/session/runtime-pid-registry.service.js.map +1 -0
  483. package/dist/cli/backend/src/services/session/session-backend.factory.d.ts +127 -0
  484. package/dist/cli/backend/src/services/session/session-backend.factory.d.ts.map +1 -0
  485. package/dist/cli/backend/src/services/session/session-backend.factory.js +226 -0
  486. package/dist/cli/backend/src/services/session/session-backend.factory.js.map +1 -0
  487. package/dist/cli/backend/src/services/session/session-backend.interface.d.ts +390 -0
  488. package/dist/cli/backend/src/services/session/session-backend.interface.d.ts.map +1 -0
  489. package/dist/cli/backend/src/services/session/session-backend.interface.js +19 -0
  490. package/dist/cli/backend/src/services/session/session-backend.interface.js.map +1 -0
  491. package/dist/cli/backend/src/services/session/session-command-helper.d.ts +350 -0
  492. package/dist/cli/backend/src/services/session/session-command-helper.d.ts.map +1 -0
  493. package/dist/cli/backend/src/services/session/session-command-helper.js +810 -0
  494. package/dist/cli/backend/src/services/session/session-command-helper.js.map +1 -0
  495. package/dist/cli/backend/src/services/session/session-handoff.service.d.ts +307 -0
  496. package/dist/cli/backend/src/services/session/session-handoff.service.d.ts.map +1 -0
  497. package/dist/cli/backend/src/services/session/session-handoff.service.js +742 -0
  498. package/dist/cli/backend/src/services/session/session-handoff.service.js.map +1 -0
  499. package/dist/cli/backend/src/services/session/session-state-persistence.d.ts +231 -0
  500. package/dist/cli/backend/src/services/session/session-state-persistence.d.ts.map +1 -0
  501. package/dist/cli/backend/src/services/session/session-state-persistence.js +407 -0
  502. package/dist/cli/backend/src/services/session/session-state-persistence.js.map +1 -0
  503. package/dist/cli/backend/src/services/settings/role.service.d.ts +277 -0
  504. package/dist/cli/backend/src/services/settings/role.service.d.ts.map +1 -0
  505. package/dist/cli/backend/src/services/settings/role.service.js +728 -0
  506. package/dist/cli/backend/src/services/settings/role.service.js.map +1 -0
  507. package/dist/cli/backend/src/services/slack/cross-machine-message.service.d.ts +152 -0
  508. package/dist/cli/backend/src/services/slack/cross-machine-message.service.d.ts.map +1 -0
  509. package/dist/cli/backend/src/services/slack/cross-machine-message.service.js +354 -0
  510. package/dist/cli/backend/src/services/slack/cross-machine-message.service.js.map +1 -0
  511. package/dist/cli/backend/src/services/slack/slack-image.service.d.ts +114 -0
  512. package/dist/cli/backend/src/services/slack/slack-image.service.d.ts.map +1 -0
  513. package/dist/cli/backend/src/services/slack/slack-image.service.js +331 -0
  514. package/dist/cli/backend/src/services/slack/slack-image.service.js.map +1 -0
  515. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +499 -0
  516. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -0
  517. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +1928 -0
  518. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -0
  519. package/dist/cli/backend/src/services/slack/slack.service.d.ts +315 -0
  520. package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -0
  521. package/dist/cli/backend/src/services/slack/slack.service.js +1094 -0
  522. package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -0
  523. package/dist/cli/backend/src/services/sop/sop.service.d.ts +364 -0
  524. package/dist/cli/backend/src/services/sop/sop.service.d.ts.map +1 -0
  525. package/dist/cli/backend/src/services/sop/sop.service.js +734 -0
  526. package/dist/cli/backend/src/services/sop/sop.service.js.map +1 -0
  527. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +152 -7
  528. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  529. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +268 -36
  530. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  531. package/dist/cli/backend/src/services/v3/escalation-router.service.d.ts +178 -0
  532. package/dist/cli/backend/src/services/v3/escalation-router.service.d.ts.map +1 -0
  533. package/dist/cli/backend/src/services/v3/escalation-router.service.js +692 -0
  534. package/dist/cli/backend/src/services/v3/escalation-router.service.js.map +1 -0
  535. package/dist/cli/backend/src/services/v3/kr-tracking.service.d.ts +200 -0
  536. package/dist/cli/backend/src/services/v3/kr-tracking.service.d.ts.map +1 -0
  537. package/dist/cli/backend/src/services/v3/kr-tracking.service.js +482 -0
  538. package/dist/cli/backend/src/services/v3/kr-tracking.service.js.map +1 -0
  539. package/dist/cli/backend/src/services/v3/mission-executor.service.d.ts +117 -0
  540. package/dist/cli/backend/src/services/v3/mission-executor.service.d.ts.map +1 -0
  541. package/dist/cli/backend/src/services/v3/mission-executor.service.js +321 -0
  542. package/dist/cli/backend/src/services/v3/mission-executor.service.js.map +1 -0
  543. package/dist/cli/backend/src/services/v3/request-sla.subscriber.d.ts +610 -0
  544. package/dist/cli/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -0
  545. package/dist/cli/backend/src/services/v3/request-sla.subscriber.js +1529 -0
  546. package/dist/cli/backend/src/services/v3/request-sla.subscriber.js.map +1 -0
  547. package/dist/cli/backend/src/services/v3/request-tracker.service.d.ts +78 -0
  548. package/dist/cli/backend/src/services/v3/request-tracker.service.d.ts.map +1 -0
  549. package/dist/cli/backend/src/services/v3/request-tracker.service.js +108 -0
  550. package/dist/cli/backend/src/services/v3/request-tracker.service.js.map +1 -0
  551. package/dist/cli/backend/src/services/v3/request.service.d.ts +295 -0
  552. package/dist/cli/backend/src/services/v3/request.service.d.ts.map +1 -0
  553. package/dist/cli/backend/src/services/v3/request.service.js +534 -0
  554. package/dist/cli/backend/src/services/v3/request.service.js.map +1 -0
  555. package/dist/cli/backend/src/services/v3/v3-data.service.d.ts +340 -0
  556. package/dist/cli/backend/src/services/v3/v3-data.service.d.ts.map +1 -0
  557. package/dist/cli/backend/src/services/v3/v3-data.service.js +1113 -0
  558. package/dist/cli/backend/src/services/v3/v3-data.service.js.map +1 -0
  559. package/dist/cli/backend/src/types/cross-machine.types.d.ts +103 -0
  560. package/dist/cli/backend/src/types/cross-machine.types.d.ts.map +1 -0
  561. package/dist/cli/backend/src/types/cross-machine.types.js +47 -0
  562. package/dist/cli/backend/src/types/cross-machine.types.js.map +1 -0
  563. package/dist/cli/backend/src/types/intent-task.types.d.ts +402 -0
  564. package/dist/cli/backend/src/types/intent-task.types.d.ts.map +1 -0
  565. package/dist/cli/backend/src/types/intent-task.types.js +403 -0
  566. package/dist/cli/backend/src/types/intent-task.types.js.map +1 -0
  567. package/dist/cli/backend/src/types/orchestrator-state.types.d.ts +531 -0
  568. package/dist/cli/backend/src/types/orchestrator-state.types.d.ts.map +1 -0
  569. package/dist/cli/backend/src/types/orchestrator-state.types.js +110 -0
  570. package/dist/cli/backend/src/types/orchestrator-state.types.js.map +1 -0
  571. package/dist/cli/backend/src/types/v2/index.d.ts +30 -0
  572. package/dist/cli/backend/src/types/v2/index.d.ts.map +1 -0
  573. package/dist/cli/backend/src/types/v2/index.js +22 -0
  574. package/dist/cli/backend/src/types/v2/index.js.map +1 -0
  575. package/dist/cli/backend/src/types/v2/key-result.types.d.ts +279 -0
  576. package/dist/cli/backend/src/types/v2/key-result.types.d.ts.map +1 -0
  577. package/dist/cli/backend/src/types/v2/key-result.types.js +264 -0
  578. package/dist/cli/backend/src/types/v2/key-result.types.js.map +1 -0
  579. package/dist/cli/backend/src/types/v2/mission.types.d.ts +661 -0
  580. package/dist/cli/backend/src/types/v2/mission.types.d.ts.map +1 -0
  581. package/dist/cli/backend/src/types/v2/mission.types.js +713 -0
  582. package/dist/cli/backend/src/types/v2/mission.types.js.map +1 -0
  583. package/dist/cli/backend/src/types/v2/reconcile.types.d.ts +204 -0
  584. package/dist/cli/backend/src/types/v2/reconcile.types.d.ts.map +1 -0
  585. package/dist/cli/backend/src/types/v2/reconcile.types.js +121 -0
  586. package/dist/cli/backend/src/types/v2/reconcile.types.js.map +1 -0
  587. package/dist/cli/backend/src/types/v2/request.types.d.ts +192 -0
  588. package/dist/cli/backend/src/types/v2/request.types.d.ts.map +1 -0
  589. package/dist/cli/backend/src/types/v2/request.types.js +179 -0
  590. package/dist/cli/backend/src/types/v2/request.types.js.map +1 -0
  591. package/dist/cli/backend/src/types/v2/work-item.types.d.ts +181 -1
  592. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  593. package/dist/cli/backend/src/types/v2/work-item.types.js +104 -17
  594. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
  595. package/dist/cli/backend/src/types/v2/workspace.types.d.ts +157 -0
  596. package/dist/cli/backend/src/types/v2/workspace.types.d.ts.map +1 -0
  597. package/dist/cli/backend/src/types/v2/workspace.types.js +173 -0
  598. package/dist/cli/backend/src/types/v2/workspace.types.js.map +1 -0
  599. package/dist/cli/backend/src/utils/async.utils.d.ts +68 -0
  600. package/dist/cli/backend/src/utils/async.utils.d.ts.map +1 -0
  601. package/dist/cli/backend/src/utils/async.utils.js +80 -0
  602. package/dist/cli/backend/src/utils/async.utils.js.map +1 -0
  603. package/dist/cli/backend/src/utils/native-binding.utils.d.ts +128 -0
  604. package/dist/cli/backend/src/utils/native-binding.utils.d.ts.map +1 -0
  605. package/dist/cli/backend/src/utils/native-binding.utils.js +206 -0
  606. package/dist/cli/backend/src/utils/native-binding.utils.js.map +1 -0
  607. package/dist/cli/backend/src/websocket/chat.gateway.d.ts +142 -0
  608. package/dist/cli/backend/src/websocket/chat.gateway.d.ts.map +1 -0
  609. package/dist/cli/backend/src/websocket/chat.gateway.js +327 -0
  610. package/dist/cli/backend/src/websocket/chat.gateway.js.map +1 -0
  611. package/dist/cli/backend/src/websocket/terminal.gateway.d.ts +341 -0
  612. package/dist/cli/backend/src/websocket/terminal.gateway.d.ts.map +1 -0
  613. package/dist/cli/backend/src/websocket/terminal.gateway.js +933 -0
  614. package/dist/cli/backend/src/websocket/terminal.gateway.js.map +1 -0
  615. package/dist/cli/config/vitest-exclude.constants.d.ts +53 -0
  616. package/dist/cli/config/vitest-exclude.constants.d.ts.map +1 -0
  617. package/dist/cli/config/vitest-exclude.constants.js +55 -0
  618. package/dist/cli/config/vitest-exclude.constants.js.map +1 -0
  619. package/package.json +2 -2
  620. package/packages/crewly-agent/src/cli.ts +16 -6
  621. package/packages/crewly-agent/src/runtime/agent-runner.service.test.ts +311 -33
  622. package/packages/crewly-agent/src/runtime/agent-runner.service.ts +221 -12
  623. package/packages/crewly-agent/src/runtime/tool-registry.test.ts +19 -0
  624. package/packages/crewly-agent/src/runtime/tool-registry.ts +4 -1
  625. package/packages/crewly-agent/src/runtime/types.ts +65 -5
@@ -0,0 +1,483 @@
1
+ /**
2
+ * Improvement Startup Service
3
+ *
4
+ * Handles self-improvement continuation after process restart.
5
+ * This is the critical hook that makes self-improvement work
6
+ * with hot-reload / nodemon.
7
+ *
8
+ * @module services/orchestrator/improvement-startup
9
+ */
10
+ import { spawn } from 'child_process';
11
+ import * as path from 'path';
12
+ import * as fs from 'fs/promises';
13
+ import { getImprovementMarkerService, } from './improvement-marker.service.js';
14
+ import { LoggerService } from '../core/logger.service.js';
15
+ /**
16
+ * Default validation checks
17
+ */
18
+ const DEFAULT_VALIDATIONS = [
19
+ {
20
+ name: 'build',
21
+ command: 'npm',
22
+ args: ['run', 'build'],
23
+ required: true,
24
+ timeoutMs: 120000,
25
+ },
26
+ {
27
+ name: 'lint',
28
+ command: 'npm',
29
+ args: ['run', 'lint'],
30
+ required: true,
31
+ timeoutMs: 60000,
32
+ },
33
+ {
34
+ name: 'test',
35
+ command: 'npm',
36
+ args: ['run', 'test'],
37
+ required: true,
38
+ timeoutMs: 300000,
39
+ },
40
+ ];
41
+ /**
42
+ * Maximum restart count before giving up
43
+ */
44
+ const MAX_RESTART_COUNT = 3;
45
+ /**
46
+ * ImprovementStartupService class
47
+ *
48
+ * Runs at application startup to check for and handle pending
49
+ * self-improvements that were interrupted by hot-reload.
50
+ */
51
+ export class ImprovementStartupService {
52
+ projectRoot;
53
+ logger = LoggerService.getInstance().createComponentLogger('ImprovementStartup');
54
+ /**
55
+ * Creates an instance of ImprovementStartupService.
56
+ *
57
+ * @param projectRoot - Project root directory
58
+ */
59
+ constructor(projectRoot) {
60
+ this.projectRoot = projectRoot || process.cwd();
61
+ }
62
+ /**
63
+ * Run the startup check.
64
+ *
65
+ * This should be called early in application startup,
66
+ * before normal operations begin.
67
+ *
68
+ * @returns Result of the startup check
69
+ */
70
+ async runStartupCheck() {
71
+ const markerService = getImprovementMarkerService();
72
+ await markerService.initialize();
73
+ // Check for pending improvement
74
+ const marker = await markerService.getPendingImprovement();
75
+ if (!marker) {
76
+ return { hadPendingImprovement: false };
77
+ }
78
+ this.logger.info('Found pending improvement', { id: marker.id });
79
+ this.logger.info('Improvement state', { phase: marker.phase, restartCount: marker.restartCount });
80
+ // Increment restart count
81
+ const restartCount = await markerService.incrementRestartCount();
82
+ // Check for too many restarts (possible infinite loop)
83
+ if (restartCount > MAX_RESTART_COUNT) {
84
+ this.logger.error('Too many restarts, forcing rollback', { restartCount });
85
+ return await this.handleTooManyRestarts(marker);
86
+ }
87
+ // Handle based on phase
88
+ switch (marker.phase) {
89
+ case 'planning':
90
+ case 'backing_up':
91
+ // Improvement was interrupted before changes were applied
92
+ // Safe to just clean up
93
+ return await this.handleInterruptedPlanning(marker);
94
+ case 'changes_applied':
95
+ // Changes were applied, need to validate
96
+ return await this.handleChangesApplied(marker);
97
+ case 'validating':
98
+ // Was in the middle of validation, continue
99
+ return await this.handleValidating(marker);
100
+ case 'rolling_back':
101
+ // Was rolling back, continue
102
+ return await this.handleRollingBack(marker);
103
+ case 'rolled_back':
104
+ // Rollback complete, just clean up
105
+ return await this.handleRolledBack(marker);
106
+ case 'complete':
107
+ // Shouldn't have a pending marker, clean up
108
+ await markerService.deleteMarker();
109
+ return { hadPendingImprovement: true, action: 'cleaned_up' };
110
+ default:
111
+ this.logger.warn('Unknown phase', { phase: marker.phase });
112
+ return { hadPendingImprovement: true, action: 'none' };
113
+ }
114
+ }
115
+ /**
116
+ * Handle interrupted planning phase.
117
+ *
118
+ * @param marker - The improvement marker
119
+ * @returns Startup result
120
+ */
121
+ async handleInterruptedPlanning(marker) {
122
+ this.logger.info('Improvement interrupted during planning, cleaning up');
123
+ const markerService = getImprovementMarkerService();
124
+ await markerService.deleteMarker();
125
+ await this.notifySlack(marker, ':warning: Self-improvement was interrupted during planning and has been cancelled.', 'normal');
126
+ return {
127
+ hadPendingImprovement: true,
128
+ improvementId: marker.id,
129
+ phase: marker.phase,
130
+ action: 'cleaned_up',
131
+ };
132
+ }
133
+ /**
134
+ * Handle changes_applied phase - run validation.
135
+ *
136
+ * @param marker - The improvement marker
137
+ * @returns Startup result
138
+ */
139
+ async handleChangesApplied(marker) {
140
+ this.logger.info('Changes applied, running validation...');
141
+ const markerService = getImprovementMarkerService();
142
+ await markerService.updatePhase('validating');
143
+ await this.notifySlack(marker, ':hourglass: Crewly restarted after self-improvement. Running validation...', 'normal');
144
+ // Run validation
145
+ const validationPassed = await this.runValidation(marker);
146
+ if (validationPassed) {
147
+ return await this.handleValidationSuccess(marker);
148
+ }
149
+ else {
150
+ return await this.handleValidationFailure(marker);
151
+ }
152
+ }
153
+ /**
154
+ * Handle validating phase - continue validation.
155
+ *
156
+ * @param marker - The improvement marker
157
+ * @returns Startup result
158
+ */
159
+ async handleValidating(marker) {
160
+ this.logger.info('Continuing validation...');
161
+ // Check which validations have already passed
162
+ const passedChecks = marker.validation.results
163
+ .filter(r => r.passed)
164
+ .map(r => r.check);
165
+ // Run remaining validations
166
+ const validationPassed = await this.runValidation(marker, passedChecks);
167
+ if (validationPassed) {
168
+ return await this.handleValidationSuccess(marker);
169
+ }
170
+ else {
171
+ return await this.handleValidationFailure(marker);
172
+ }
173
+ }
174
+ /**
175
+ * Run validation checks.
176
+ *
177
+ * @param marker - The improvement marker
178
+ * @param skipChecks - Checks to skip (already passed)
179
+ * @returns True if all required validations passed
180
+ */
181
+ async runValidation(marker, skipChecks = []) {
182
+ const markerService = getImprovementMarkerService();
183
+ let allPassed = true;
184
+ for (const check of DEFAULT_VALIDATIONS) {
185
+ if (skipChecks.includes(check.name)) {
186
+ this.logger.info('Skipping check (already passed)', { check: check.name });
187
+ continue;
188
+ }
189
+ this.logger.info('Running validation check', { check: check.name });
190
+ const startTime = Date.now();
191
+ try {
192
+ await this.runCommand(check.command, check.args, check.timeoutMs);
193
+ const result = {
194
+ check: check.name,
195
+ passed: true,
196
+ duration: Date.now() - startTime,
197
+ };
198
+ await markerService.recordValidationResult(result);
199
+ this.logger.info('Validation check passed', { check: check.name, duration: result.duration });
200
+ }
201
+ catch (error) {
202
+ const result = {
203
+ check: check.name,
204
+ passed: false,
205
+ output: error.message,
206
+ duration: Date.now() - startTime,
207
+ };
208
+ await markerService.recordValidationResult(result);
209
+ this.logger.error('Validation check FAILED', { check: check.name, output: result.output });
210
+ if (check.required) {
211
+ allPassed = false;
212
+ break; // Stop on first required failure
213
+ }
214
+ }
215
+ }
216
+ return allPassed;
217
+ }
218
+ /**
219
+ * Handle validation success.
220
+ *
221
+ * @param marker - The improvement marker
222
+ * @returns Startup result
223
+ */
224
+ async handleValidationSuccess(marker) {
225
+ this.logger.info('All validation passed!');
226
+ const markerService = getImprovementMarkerService();
227
+ await markerService.completeImprovement(true);
228
+ await this.notifySlack(marker, `:white_check_mark: *Self-improvement completed successfully!*\n\n*${marker.description}*\n\nAll validation checks passed. Changes are now active.`, 'normal');
229
+ return {
230
+ hadPendingImprovement: true,
231
+ improvementId: marker.id,
232
+ phase: 'complete',
233
+ action: 'validated',
234
+ validationPassed: true,
235
+ };
236
+ }
237
+ /**
238
+ * Handle validation failure - trigger rollback.
239
+ *
240
+ * @param marker - The improvement marker
241
+ * @returns Startup result
242
+ */
243
+ async handleValidationFailure(marker) {
244
+ this.logger.info('Validation failed, initiating rollback...');
245
+ const markerService = getImprovementMarkerService();
246
+ // Get fresh marker with updated validation results
247
+ const updatedMarker = await markerService.getPendingImprovement();
248
+ const currentMarker = updatedMarker || marker;
249
+ // Get failed checks
250
+ const failedChecks = currentMarker.validation.results
251
+ .filter(r => !r.passed)
252
+ .map(r => `${r.check}: ${r.output || 'failed'}`)
253
+ .join('\n');
254
+ await markerService.recordRollbackStarted(`Validation failed:\n${failedChecks}`);
255
+ await this.notifySlack(currentMarker, `:x: *Self-improvement validation failed!*\n\n*${currentMarker.description}*\n\nRolling back changes...\n\n\`\`\`\n${failedChecks}\n\`\`\``, 'high');
256
+ // Perform rollback
257
+ const rollbackResult = await this.performRollback(currentMarker);
258
+ if (rollbackResult.success) {
259
+ await markerService.recordRollbackCompleted(rollbackResult.filesRestored, rollbackResult.gitReset);
260
+ // Complete with failure status
261
+ await markerService.completeImprovement(false);
262
+ await this.notifySlack(currentMarker, `:rewind: *Rollback completed.* The codebase has been restored to its previous state.`, 'normal');
263
+ // Note: This may trigger another hot-reload from the rollback file changes
264
+ // The next startup will see phase='complete' and just clean up
265
+ }
266
+ return {
267
+ hadPendingImprovement: true,
268
+ improvementId: currentMarker.id,
269
+ phase: currentMarker.phase,
270
+ action: 'rolled_back',
271
+ validationPassed: false,
272
+ error: failedChecks,
273
+ };
274
+ }
275
+ /**
276
+ * Handle rolling_back phase - continue rollback.
277
+ *
278
+ * @param marker - The improvement marker
279
+ * @returns Startup result
280
+ */
281
+ async handleRollingBack(marker) {
282
+ this.logger.info('Continuing rollback...');
283
+ const markerService = getImprovementMarkerService();
284
+ const rollbackResult = await this.performRollback(marker);
285
+ await markerService.recordRollbackCompleted(rollbackResult.filesRestored, rollbackResult.gitReset);
286
+ await markerService.completeImprovement(false);
287
+ return {
288
+ hadPendingImprovement: true,
289
+ improvementId: marker.id,
290
+ phase: 'rolled_back',
291
+ action: 'rolled_back',
292
+ validationPassed: false,
293
+ };
294
+ }
295
+ /**
296
+ * Handle rolled_back phase - just clean up.
297
+ *
298
+ * @param marker - The improvement marker
299
+ * @returns Startup result
300
+ */
301
+ async handleRolledBack(marker) {
302
+ this.logger.info('Rollback already complete, cleaning up');
303
+ const markerService = getImprovementMarkerService();
304
+ await markerService.completeImprovement(false);
305
+ return {
306
+ hadPendingImprovement: true,
307
+ improvementId: marker.id,
308
+ phase: 'rolled_back',
309
+ action: 'cleaned_up',
310
+ };
311
+ }
312
+ /**
313
+ * Force a rollback of the current improvement.
314
+ * Used for manual rollback requests via the API.
315
+ *
316
+ * @param reason - Reason for the rollback
317
+ * @returns Rollback result with success status and files restored count
318
+ */
319
+ async forceRollback(reason) {
320
+ const markerService = getImprovementMarkerService();
321
+ await markerService.initialize();
322
+ const marker = await markerService.getPendingImprovement();
323
+ if (!marker) {
324
+ return {
325
+ success: false,
326
+ filesRestored: 0,
327
+ message: 'No pending improvement to rollback',
328
+ };
329
+ }
330
+ this.logger.info('Manual rollback requested', { reason });
331
+ await markerService.recordRollbackStarted(reason);
332
+ await this.notifySlack(marker, `:rewind: *Manual rollback requested*\n\n*${marker.description}*\n\nReason: ${reason}`, 'high');
333
+ const rollbackResult = await this.performRollback(marker);
334
+ await markerService.recordRollbackCompleted(rollbackResult.filesRestored, rollbackResult.gitReset);
335
+ await markerService.completeImprovement(false);
336
+ await this.notifySlack(marker, `:white_check_mark: *Rollback completed.* Restored ${rollbackResult.filesRestored.length} files.`, 'normal');
337
+ return {
338
+ success: true,
339
+ filesRestored: rollbackResult.filesRestored.length,
340
+ message: `Rollback completed. Restored ${rollbackResult.filesRestored.length} files.`,
341
+ };
342
+ }
343
+ /**
344
+ * Handle too many restarts.
345
+ *
346
+ * @param marker - The improvement marker
347
+ * @returns Startup result
348
+ */
349
+ async handleTooManyRestarts(marker) {
350
+ const markerService = getImprovementMarkerService();
351
+ await markerService.recordError(`Too many restarts (${marker.restartCount}), possible infinite loop`);
352
+ await this.notifySlack(marker, `:rotating_light: *Self-improvement stuck in restart loop!*\n\n*${marker.description}*\n\nForcing rollback after ${marker.restartCount} restarts.`, 'critical');
353
+ // Force rollback
354
+ await this.performRollback(marker);
355
+ await markerService.completeImprovement(false);
356
+ return {
357
+ hadPendingImprovement: true,
358
+ improvementId: marker.id,
359
+ action: 'rolled_back',
360
+ validationPassed: false,
361
+ error: 'Too many restarts, forced rollback',
362
+ };
363
+ }
364
+ /**
365
+ * Perform rollback of file changes.
366
+ *
367
+ * @param marker - The improvement marker with backup info
368
+ * @returns Rollback result
369
+ */
370
+ async performRollback(marker) {
371
+ const filesRestored = [];
372
+ let gitReset = false;
373
+ // Try git reset first
374
+ if (marker.backup.gitCommit) {
375
+ try {
376
+ await this.runCommand('git', ['reset', '--hard', marker.backup.gitCommit], 30000);
377
+ gitReset = true;
378
+ this.logger.info('Git reset successful', { commit: marker.backup.gitCommit });
379
+ return { success: true, filesRestored: marker.targetFiles, gitReset: true };
380
+ }
381
+ catch (error) {
382
+ this.logger.warn('Git reset failed, using file backups');
383
+ }
384
+ }
385
+ // Restore from file backups
386
+ for (const backup of marker.backup.files) {
387
+ try {
388
+ if (backup.existed) {
389
+ // Restore original file
390
+ const content = await fs.readFile(backup.backupPath, 'utf-8');
391
+ await fs.mkdir(path.dirname(backup.originalPath), { recursive: true });
392
+ await fs.writeFile(path.join(this.projectRoot, backup.originalPath), content);
393
+ }
394
+ else {
395
+ // Delete file that was created
396
+ await fs.unlink(path.join(this.projectRoot, backup.originalPath));
397
+ }
398
+ filesRestored.push(backup.originalPath);
399
+ this.logger.info('Restored file', { path: backup.originalPath });
400
+ }
401
+ catch (error) {
402
+ this.logger.error('Failed to restore file', { path: backup.originalPath, error: error instanceof Error ? error.message : String(error) });
403
+ }
404
+ }
405
+ return { success: true, filesRestored, gitReset };
406
+ }
407
+ /**
408
+ * Run a shell command.
409
+ *
410
+ * @param cmd - Command to run
411
+ * @param args - Command arguments
412
+ * @param timeoutMs - Timeout in milliseconds
413
+ * @returns Command output
414
+ */
415
+ runCommand(cmd, args, timeoutMs) {
416
+ return new Promise((resolve, reject) => {
417
+ const child = spawn(cmd, args, {
418
+ cwd: this.projectRoot,
419
+ stdio: ['pipe', 'pipe', 'pipe'],
420
+ timeout: timeoutMs,
421
+ });
422
+ let stdout = '';
423
+ let stderr = '';
424
+ child.stdout.on('data', (data) => { stdout += data; });
425
+ child.stderr.on('data', (data) => { stderr += data; });
426
+ child.on('close', (code) => {
427
+ if (code === 0) {
428
+ resolve(stdout);
429
+ }
430
+ else {
431
+ reject(new Error(stderr || stdout || `Exit code ${code}`));
432
+ }
433
+ });
434
+ child.on('error', reject);
435
+ });
436
+ }
437
+ /**
438
+ * Send Slack notification.
439
+ *
440
+ * @param marker - The improvement marker
441
+ * @param message - Message to send
442
+ * @param urgency - Message urgency level
443
+ */
444
+ async notifySlack(marker, message, urgency) {
445
+ try {
446
+ // Dynamic import to avoid circular dependency
447
+ const { getSlackOrchestratorBridge } = await import('../slack/slack-orchestrator-bridge.js');
448
+ const slackBridge = getSlackOrchestratorBridge();
449
+ await slackBridge.sendNotification({
450
+ type: 'alert',
451
+ title: 'Self-Improvement Update',
452
+ message,
453
+ urgency,
454
+ timestamp: new Date().toISOString(),
455
+ });
456
+ }
457
+ catch {
458
+ // Slack not available, silently ignore
459
+ }
460
+ }
461
+ }
462
+ /**
463
+ * Singleton instance
464
+ */
465
+ let startupServiceInstance = null;
466
+ /**
467
+ * Get singleton instance of ImprovementStartupService.
468
+ *
469
+ * @returns The singleton ImprovementStartupService instance
470
+ */
471
+ export function getImprovementStartupService() {
472
+ if (!startupServiceInstance) {
473
+ startupServiceInstance = new ImprovementStartupService();
474
+ }
475
+ return startupServiceInstance;
476
+ }
477
+ /**
478
+ * Reset singleton instance (for testing).
479
+ */
480
+ export function resetImprovementStartupService() {
481
+ startupServiceInstance = null;
482
+ }
483
+ //# sourceMappingURL=improvement-startup.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improvement-startup.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/improvement-startup.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Orchestrator Service Module
3
+ *
4
+ * Exports orchestrator-related services.
5
+ *
6
+ * @module services/orchestrator
7
+ */
8
+ export { StatePersistenceService, getStatePersistenceService, resetStatePersistenceService, } from './state-persistence.service.js';
9
+ export { SafeRestartService, getSafeRestartService, resetSafeRestartService, type RestartConfig, type RestartStatus, } from './safe-restart.service.js';
10
+ export { SelfImprovementService, getSelfImprovementService, resetSelfImprovementService, type ImprovementRequest, type ImprovementResult, type ImprovementPlan, } from './self-improvement.service.js';
11
+ export { ImprovementMarkerService, getImprovementMarkerService, resetImprovementMarkerService, type ImprovementMarker, type ImprovementPhase, type ValidationResult, type FileBackupRecord, } from './improvement-marker.service.js';
12
+ export { ImprovementStartupService, getImprovementStartupService, resetImprovementStartupService, type StartupResult, } from './improvement-startup.service.js';
13
+ export { isOrchestratorActive, isAgentActive, getOrchestratorStatus, getOrchestratorOfflineMessage, type OrchestratorStatusResult, } from './orchestrator-status.service.js';
14
+ export { OrchestratorRestartService, type RestartStats, } from './orchestrator-restart.service.js';
15
+ export { triggerOrchestratorSetup, setOrchestratorSetupDependencies, type OrchestratorSetupResult, type AgentRegistrationServiceLike, } from './orchestrator-setup.service.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,6BAA6B,EAC7B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,8BAA8B,EAC9B,KAAK,aAAa,GACnB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,6BAA6B,EAC7B,KAAK,wBAAwB,GAC9B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,0BAA0B,EAC1B,KAAK,YAAY,GAClB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,wBAAwB,EACxB,gCAAgC,EAChC,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,GAClC,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Orchestrator Service Module
3
+ *
4
+ * Exports orchestrator-related services.
5
+ *
6
+ * @module services/orchestrator
7
+ */
8
+ export { StatePersistenceService, getStatePersistenceService, resetStatePersistenceService, } from './state-persistence.service.js';
9
+ export { SafeRestartService, getSafeRestartService, resetSafeRestartService, } from './safe-restart.service.js';
10
+ export { SelfImprovementService, getSelfImprovementService, resetSelfImprovementService, } from './self-improvement.service.js';
11
+ export { ImprovementMarkerService, getImprovementMarkerService, resetImprovementMarkerService, } from './improvement-marker.service.js';
12
+ export { ImprovementStartupService, getImprovementStartupService, resetImprovementStartupService, } from './improvement-startup.service.js';
13
+ export { isOrchestratorActive, isAgentActive, getOrchestratorStatus, getOrchestratorOfflineMessage, } from './orchestrator-status.service.js';
14
+ export { OrchestratorRestartService, } from './orchestrator-restart.service.js';
15
+ export { triggerOrchestratorSetup, setOrchestratorSetupDependencies, } from './orchestrator-setup.service.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,GAGxB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,GAI5B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,6BAA6B,GAK9B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,8BAA8B,GAE/B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,6BAA6B,GAE9B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,0BAA0B,GAE3B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,wBAAwB,EACxB,gCAAgC,GAGjC,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Orchestrator Restart Service
3
+ *
4
+ * Automatically restarts the orchestrator when it becomes unresponsive
5
+ * (child process dies inside the PTY shell). Enforces a cooldown window
6
+ * to prevent restart loops.
7
+ *
8
+ * @module orchestrator-restart.service
9
+ */
10
+ import type { AgentRegistrationService } from '../agent/agent-registration.service.js';
11
+ import type { ISessionBackend } from '../session/session-backend.interface.js';
12
+ /**
13
+ * Restart statistics for monitoring
14
+ */
15
+ export interface RestartStats {
16
+ /** Total number of restarts since service creation */
17
+ totalRestarts: number;
18
+ /** Restarts within the current cooldown window */
19
+ restartsInWindow: number;
20
+ /** Whether a restart is currently in progress */
21
+ isRestarting: boolean;
22
+ /** Timestamp of the last successful restart */
23
+ lastRestartAt: string | null;
24
+ /** Whether further restarts are allowed under cooldown */
25
+ restartAllowed: boolean;
26
+ }
27
+ /**
28
+ * OrchestratorRestartService manages automatic restart of the orchestrator
29
+ * when the child process (Claude Code) dies inside the PTY shell.
30
+ *
31
+ * Features:
32
+ * - Kills the old PTY session before creating a new one
33
+ * - Initializes memory and starts chat monitoring
34
+ * - Notifies via Slack (if configured)
35
+ * - Broadcasts WebSocket event for UI updates
36
+ * - Enforces max 3 restarts per hour cooldown
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * const service = OrchestratorRestartService.getInstance();
41
+ * service.setDependencies(agentRegistrationService, sessionBackend, io);
42
+ * await service.attemptRestart();
43
+ * ```
44
+ */
45
+ export declare class OrchestratorRestartService {
46
+ private static instance;
47
+ private logger;
48
+ /** Timestamps of recent restarts for cooldown tracking */
49
+ private restartTimestamps;
50
+ /** Total restart count since service creation */
51
+ private totalRestarts;
52
+ /** Flag to prevent concurrent restart attempts */
53
+ private isRestarting;
54
+ /** External dependencies (injected via setDependencies) */
55
+ private agentRegistrationService;
56
+ private sessionBackend;
57
+ private socketIO;
58
+ private constructor();
59
+ /**
60
+ * Get the singleton instance.
61
+ *
62
+ * @returns The OrchestratorRestartService instance
63
+ */
64
+ static getInstance(): OrchestratorRestartService;
65
+ /**
66
+ * Reset the singleton instance (for testing).
67
+ */
68
+ static resetInstance(): void;
69
+ /**
70
+ * Inject external dependencies.
71
+ *
72
+ * @param agentRegistrationService - Service for creating agent sessions
73
+ * @param sessionBackend - Session backend for killing old sessions
74
+ * @param socketIO - Socket.IO server for broadcasting events
75
+ */
76
+ setDependencies(agentRegistrationService: AgentRegistrationService, sessionBackend: ISessionBackend, socketIO?: {
77
+ emit: (event: string, data: unknown) => void;
78
+ }): void;
79
+ /**
80
+ * Check if a restart is currently allowed under the cooldown window.
81
+ *
82
+ * @returns true if restart is allowed
83
+ */
84
+ isRestartAllowed(): boolean;
85
+ /**
86
+ * Attempt to restart the orchestrator.
87
+ *
88
+ * This method:
89
+ * 1. Checks cooldown limits
90
+ * 2. Kills the old PTY session
91
+ * 3. Creates a new agent session
92
+ * 4. Initializes memory
93
+ * 5. Starts chat monitoring
94
+ * 6. Notifies Slack (if configured)
95
+ * 7. Broadcasts WebSocket event
96
+ *
97
+ * @returns true if restart succeeded, false otherwise
98
+ */
99
+ attemptRestart(): Promise<boolean>;
100
+ /**
101
+ * Resolve orchestrator runtime type from persisted orchestrator status.
102
+ * Falls back to Claude Code if status is unavailable/invalid.
103
+ */
104
+ private resolveOrchestratorRuntimeType;
105
+ /**
106
+ * Get current restart statistics.
107
+ *
108
+ * @returns Restart statistics object
109
+ */
110
+ getRestartStats(): RestartStats;
111
+ /**
112
+ * Send a Slack notification about the orchestrator restart.
113
+ * Best-effort: silently ignores failures (Slack may not be configured).
114
+ */
115
+ private notifySlack;
116
+ }
117
+ //# sourceMappingURL=orchestrator-restart.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator-restart.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/orchestrator-restart.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAeH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAI/E;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,gBAAgB,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,YAAY,EAAE,OAAO,CAAC;IACtB,+CAA+C;IAC/C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,0DAA0D;IAC1D,cAAc,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,0BAA0B;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2C;IAClE,OAAO,CAAC,MAAM,CAAkB;IAEhC,0DAA0D;IAC1D,OAAO,CAAC,iBAAiB,CAAgB;IACzC,iDAAiD;IACjD,OAAO,CAAC,aAAa,CAAK;IAC1B,kDAAkD;IAClD,OAAO,CAAC,YAAY,CAAS;IAE7B,2DAA2D;IAC3D,OAAO,CAAC,wBAAwB,CAAyC;IACzE,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAiE;IAEjF,OAAO;IAIP;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,0BAA0B;IAOhD;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAW5B;;;;;;OAMG;IACH,eAAe,CACd,wBAAwB,EAAE,wBAAwB,EAClD,cAAc,EAAE,eAAe,EAC/B,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,GACzD,IAAI;IAMP;;;;OAIG;IACH,gBAAgB,IAAI,OAAO;IAU3B;;;;;;;;;;;;;OAaG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IA+IxC;;;OAGG;YACW,8BAA8B;IAgB5C;;;;OAIG;IACH,eAAe,IAAI,YAAY;IAiB/B;;;OAGG;YACW,WAAW;CAezB"}