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,421 @@
1
+ /**
2
+ * Intent classifier rules — code-of-record per Mia spec §5 Q4.
3
+ *
4
+ * **Purpose**
5
+ *
6
+ * Centralises every keyword set and structural pattern the L0/L1/L2/L3
7
+ * classifier consumes. Both production classifier paths
8
+ * (`backend/src/types/intent-task.types.ts:classifyIntentLevel/Category`
9
+ * and `backend/src/services/v3/v3-data.service.ts:classifyIntent`) read
10
+ * from this file so a rule update lands in exactly one place.
11
+ *
12
+ * **Why a separate file?**
13
+ *
14
+ * Per Mia: "Easier review than buried regex." A reviewer auditing rule
15
+ * coverage scans this file's exports rather than walking the classifier's
16
+ * inline regex. Adding ZH parity to a category is a single-edit operation
17
+ * here; in the inline shape it would be a ~10-line walk.
18
+ *
19
+ * **Spec source-of-truth**
20
+ *
21
+ * `specs/2026-05-06-intent-classifier-rules.md` (Mia, 2026-05-06).
22
+ * Section references (§2.1, §2.2, etc.) below correspond to that doc.
23
+ *
24
+ * @module services/intent-task/intent-classifier.rules
25
+ */
26
+ // ---------------------------------------------------------------------------
27
+ // §2.1 — Plurality / quantifier (HIGHEST PRECISION)
28
+ // ---------------------------------------------------------------------------
29
+ /**
30
+ * Quantifier tokens that, when paired with a state-changing verb AND a
31
+ * plural deliverable noun, force L1 → L2 promotion (§2.1).
32
+ *
33
+ * Anti-pattern guard (§3 last paragraph): quantifier alone is NOT enough.
34
+ * "Show me all 3 statuses" stays L0 because the verb is read-only.
35
+ * Promotion requires quantifier + state-changing verb + plural deliverable
36
+ * noun — see {@link L2_QUANTIFIER_PROMOTERS_TRIGRAM}.
37
+ */
38
+ export const QUANTIFIER_TOKENS = {
39
+ /** EN: both/all/every/each + numeric + numeric-words. */
40
+ en: /\b(both|all|every|each|two|three|four|five|six|seven|eight|nine|ten|\d+)\b/i,
41
+ /** ZH: 这两/三/四/五/.../多个/所有/全部/每个/几个. */
42
+ zh: /(两|三|四|五|六|七|八|九|十|这两|这三|多个|所有|全部|每个|几个)/,
43
+ };
44
+ /**
45
+ * Plural deliverable noun tokens that, paired with a quantifier + state-
46
+ * changing verb, force L2 promotion (§2.1).
47
+ *
48
+ * The ZH measure-words (份/个/张/篇/段/章/项/条) double as deliverable-noun
49
+ * proxies because Chinese uses measure-words in lieu of pluralisation.
50
+ */
51
+ export const DELIVERABLE_NOUN_TOKENS = {
52
+ en: /\b(docs?|specs?|files?|reports?|tasks?|prs?|tickets?|issues?|services?|modules?|components?|features?|tests?|migrations?|scripts?)\b/i,
53
+ /**
54
+ * ZH: 文档/文件/规范 + measure-words (份/个/张/篇/段/章/项/条). Combined
55
+ * because Chinese parses noun + measure-word as the deliverable proxy.
56
+ */
57
+ zh: /(文档|文件|规范|份|个|张|篇|段|章|项|条|条目|笔记)/,
58
+ };
59
+ /**
60
+ * Quantifier-trigram tokens (§2.1 + §3 anti-pattern guard).
61
+ *
62
+ * **Implementation note:** rather than constraining token order in a
63
+ * single regex, the classifier checks all three axes (quantifier +
64
+ * state-change verb + deliverable noun) for presence within the same
65
+ * input. This handles all natural orderings (VERB-QUANT-NOUN as in
66
+ * "create three reports" / "做这两份 md 文档"; QUANT-NOUN-VERB as in
67
+ * "three reports to make" / "三份报告要做"; QUANT-VERB-NOUN; etc.)
68
+ * without explosion of permutations.
69
+ *
70
+ * The anti-promotion guard in `classifyIntentLevel` ensures
71
+ * "Show me all 3 statuses" stays L0 by checking that the verb axis is
72
+ * NOT exclusively read-only ({@link L0_READ_VERB_PATTERN}) before
73
+ * promoting on this trigram.
74
+ */
75
+ export const L2_QUANTIFIER_TRIGRAM = {
76
+ /**
77
+ * EN: requires all three axes — quantifier + state-change verb +
78
+ * deliverable noun — present in the input. Order-agnostic.
79
+ *
80
+ * The exposed regex matches the QUANTIFIER axis only; the consumer
81
+ * checks the other two axes via the helper below.
82
+ */
83
+ en: /\b(both|all|every|two|three|four|five|six|seven|eight|nine|ten|\d+)\b/i,
84
+ /** ZH quantifier axis. */
85
+ zh: /(两|三|四|五|六|七|八|九|十|这两|这三|多个|所有|全部|每个|几个)/,
86
+ };
87
+ /**
88
+ * State-change verb axis for the quantifier-trigram. Distinct from
89
+ * {@link ACTION_VERB_EN}/{@link ACTION_VERB_ZH} because the trigram
90
+ * specifically excludes ambiguous-shape verbs (e.g. `run`, `check`)
91
+ * that are common in read-only contexts.
92
+ */
93
+ export const L2_TRIGRAM_STATE_CHANGE_VERB = {
94
+ en: /\b(make|build|create|implement|add|write|update|delete|deploy|migrate|refactor|design|review|fix|configure|prepare|draft|publish|release|ship|launch|generate)\b/i,
95
+ zh: /(做(?!了|过|得|的|出|不到|不了|不下|不来|不出)|写|搞定|做完|完成|实现|添加|创建|构建|搭建|设计|部署|发布|上线|分析|审查|评审|编排|调研|规划|优化|重构|修复|改写|编写|起草|拆分|准备)/,
96
+ };
97
+ /**
98
+ * Plural-deliverable axis for the quantifier-trigram. Mirrors
99
+ * {@link DELIVERABLE_NOUN_TOKENS} but kept distinct so a future tuning
100
+ * of "what counts as deliverable in a trigram context" doesn't drift.
101
+ */
102
+ export const L2_TRIGRAM_DELIVERABLE = {
103
+ en: /\b(docs?|specs?|files?|reports?|tasks?|prs?|tickets?|issues?|services?|modules?|components?|features?|tests?|migrations?|scripts?)\b/i,
104
+ zh: /(份|个|张|篇|段|章|项|条|条目|文档|文件|规范|报告|任务|md|md\s*文档|计划|spec)/i,
105
+ };
106
+ // ---------------------------------------------------------------------------
107
+ // §2.2 — Multi-artifact / file-creation triggers
108
+ // ---------------------------------------------------------------------------
109
+ /**
110
+ * Doc/spec creation triggers (§2.2 row 1). These promote to L2 even with
111
+ * a tiny verb because authoring a doc is multi-step by nature.
112
+ */
113
+ export const L2_DOC_CREATION_TRIGGER = {
114
+ en: /\b(spec|specification|design\s+doc|rfc|brief|writeup|whitepaper|markdown\s+doc|md\s+doc)\b/i,
115
+ zh: /(规范|设计文档|草稿|说明文档|md\s*文档|markdown\s*文档|笔记|白皮书|说明书)/,
116
+ };
117
+ /**
118
+ * File-with-extension reference (§2.2 row 2). Any path with extension
119
+ * promotes to L2 unless the verb is read-only — the read-only guard is
120
+ * applied at the classifier level, not here, because read-only verbs are
121
+ * a separate axis (see {@link L0_READ_VERB_PATTERN}).
122
+ */
123
+ export const L2_FILE_EXTENSION_TRIGGER = /\b\w+\.(md|markdown|ts|tsx|js|jsx|py|sql|json|yml|yaml|sh|tf|java|go|rb|rs|cpp|c|h|toml|ini|conf|css|scss|html|xml|csv)\b/i;
124
+ /**
125
+ * PR / commit / branch artifact (§2.2 row 3). Order-agnostic — both
126
+ * "open a PR" (VERB-NOUN) and "PR to open" (NOUN-VERB) match, with the
127
+ * VERB-NOUN form being far more common.
128
+ */
129
+ export const L2_PR_ARTIFACT_TRIGGER = {
130
+ en: /\b(?:(pr|pull\s+request|commit|branch|merge)\b.{0,30}?\b(open|create|raise|file|prepare|draft|push|cut|land)|(open|create|raise|file|prepare|draft|push|cut|land)\b.{0,30}?\b(pr|pull\s+request|commit|branch|merge))\b/i,
131
+ zh: /(pr|pull\s+request|提交|分支|合并|merge).{0,12}?(开|提|准备|起草|推送|落地|创建|发起)|(开|提|准备|起草|推送|落地|创建|发起).{0,12}?(pr|pull\s+request|提交|分支|合并|merge)/i,
132
+ };
133
+ /**
134
+ * Migration / schema (§2.2 row 4).
135
+ */
136
+ export const L2_MIGRATION_TRIGGER = {
137
+ en: /\b(migration|schema|seed|fixture|backfill)\b/i,
138
+ zh: /(迁移|建表|改表|回填|数据迁移|表结构)/,
139
+ };
140
+ // ---------------------------------------------------------------------------
141
+ // §2.3 — Verb–noun pair signaling system-level work
142
+ // ---------------------------------------------------------------------------
143
+ /**
144
+ * Build/implement + system-noun (§2.3 row 1). The canonical L2 shape —
145
+ * pre-existing in the EN classifier; ZH parity is the new contribution.
146
+ */
147
+ export const L2_BUILD_SYSTEM_NOUN = {
148
+ en: /\b(implement|build|create|develop|design|architect|refactor)\b.{0,40}?\b(feature|system|service|module|component|pipeline|workflow|framework|infrastructure)\b/i,
149
+ zh: /(实现|构建|创建|搭建|设计|架构|重构|开发|编写|做).{0,15}?(功能|系统|服务|模块|组件|流水线|工作流|框架|基础设施|架构|平台|工具)/,
150
+ };
151
+ /**
152
+ * Deploy/migrate + env-noun (§2.3 row 2).
153
+ */
154
+ export const L2_DEPLOY_ENV_NOUN = {
155
+ en: /\b(deploy|migrate|upgrade|provision)\b.{0,40}?\b(to|from|environment|server|cluster|staging|production)\b/i,
156
+ zh: /(部署|迁移|升级|发布|上线).{0,15}?(到|从|环境|服务器|集群|预发|生产|测试环境|正式环境)/,
157
+ };
158
+ /**
159
+ * End-to-end / full-stack scope (§2.3 row 3).
160
+ */
161
+ export const L2_E2E_SCOPE = {
162
+ en: /\b(end[- ]?to[- ]?end|full[- ]?stack|e2e|integration)\b.{0,30}?\b(test|setup|implementation|implement)\b/i,
163
+ zh: /(端到端|全栈|完整|整套|完整链路).{0,12}?(测试|搭建|实现|实施|部署)/,
164
+ };
165
+ /**
166
+ * Coordinate / orchestrate (§2.3 row 4). Single-token signal — by the
167
+ * time someone says "coordinate", the work is multi-agent by definition.
168
+ */
169
+ export const L2_COORDINATE = {
170
+ en: /\b(coordinate|orchestrate|delegate|parallelize|fan\s*out)\b/i,
171
+ zh: /(协调|编排|分发|拆分|并行|分派|分配|统筹)/,
172
+ };
173
+ // ---------------------------------------------------------------------------
174
+ // §2.4 — Conjunction of distinct verbs / numbered list
175
+ // ---------------------------------------------------------------------------
176
+ /**
177
+ * Sequenced verbs (§2.4 row 1). "X then Y" / "X 然后 Y".
178
+ */
179
+ export const L2_SEQUENCED_VERBS = {
180
+ en: /\b(then|and\s+then|after\s+that|next|followed\s+by|subsequently)\b/i,
181
+ zh: /(然后|接着|之后|再|随后|继而|紧接着)/,
182
+ };
183
+ /**
184
+ * Numbered/bulleted list (§2.4 row 3). Two or more numbered items in the
185
+ * same input is structurally L2.
186
+ */
187
+ /**
188
+ * Numbered list trigger. Matches "1. … 2. …" / "(1) … (2) …" / "① … ②".
189
+ * The `\s?` after the marker is OPTIONAL because Chinese-encoded numbered
190
+ * lists ("①修复 ②测试") have no whitespace between the marker and the
191
+ * content.
192
+ */
193
+ export const L2_NUMBERED_LIST = /(?:^|\s)(?:1\.|\(1\)|①)\s?.{0,200}?(?:^|\s)(?:2\.|\(2\)|②)/s;
194
+ // ---------------------------------------------------------------------------
195
+ // §2.5 — Cross-system context-pivot (catches "oss重启了 你现在再做这个")
196
+ // ---------------------------------------------------------------------------
197
+ /**
198
+ * Restart/recovery + redirect (§2.5). Status-update clause followed by a
199
+ * directive that references prior multi-step context. The "this/这个"
200
+ * referent points to a prior plan the classifier can't resolve, but the
201
+ * SHAPE is reliable enough to promote.
202
+ */
203
+ export const L2_CROSS_SYSTEM_PIVOT = {
204
+ en: /\b(restart(ed)?|back|up|live|running|recovered)\b.{0,40}?\b(now|then|so|please)?\s*(do|run|continue|resume|proceed|kick\s+off|pick\s+up)\b/i,
205
+ /**
206
+ * ZH: status-clause (重启/回来/上线/跑起来/好了/恢复) + ≤16-char gap +
207
+ * directive prefix (现在/那/你?) + (再/继续/接着/开始) + verb (做/搞/跑/继续).
208
+ */
209
+ zh: /(重启|回来|上线|跑起来|好了|恢复|恢复了|起来了|连上).{0,16}?(现在|那|你)?\s*(再|继续|接着|开始|重新).{0,8}?(做|搞|跑|继续|执行|开始|处理|完成)/,
210
+ };
211
+ // ---------------------------------------------------------------------------
212
+ // §2.6 — Sprint / OKR / time-budget markers (L3 candidates)
213
+ // ---------------------------------------------------------------------------
214
+ /**
215
+ * Sprint / milestone / epic markers (§2.6 row 1). These are L3 CANDIDATES
216
+ * — combined with §2.3 they classify L3; alone they classify L2.
217
+ */
218
+ export const L3_SPRINT_OKR_MARKERS = {
219
+ en: /\b(sprint|milestone|epic|okr|kr\d?)\b/i,
220
+ zh: /(冲刺|迭代|里程碑|目标|kr\d?|季度目标|年度目标)/i,
221
+ };
222
+ /**
223
+ * Multi-day timebox (§2.6 row 2). Time markers like "this week" /
224
+ * "by Friday" / "这周" / "下周" combined with a verb suggest sprint-level
225
+ * scope.
226
+ */
227
+ export const L3_TIMEBOX_MARKERS = {
228
+ en: /\b(this\s+week|by\s+(eod|friday|monday|tuesday|wednesday|thursday|sunday|saturday|tomorrow|tonight)|next\s+sprint|tonight|overnight|by\s+end\s+of\s+(day|week|sprint))\b/i,
229
+ zh: /(这周|本周|今天|今晚|过夜|周末|下周|明天前|月底|季度内|本季度|这个月|下个月)/,
230
+ };
231
+ /**
232
+ * Deliver / ship verbs (§2.6 row 3). Distinct from §2.3 deploy axis —
233
+ * "ship" / "上线" carry a sprint-completion semantic.
234
+ */
235
+ export const L3_DELIVER_SHIP_VERBS = {
236
+ en: /\b(ship|deliver|launch|release|land|execute)\b/i,
237
+ zh: /(发布|上线|交付|搞定|完成|拿下|落地|执行)/,
238
+ };
239
+ // ---------------------------------------------------------------------------
240
+ // §1.2 — Read verbs (anti-promotion guard for §2.1)
241
+ // ---------------------------------------------------------------------------
242
+ /**
243
+ * Read-only / status-lookup verbs. If the only verb in the input is a
244
+ * read verb, do NOT promote even if a quantifier is present
245
+ * (§3 last paragraph: "Show me all 3 statuses" stays L0).
246
+ */
247
+ export const L0_READ_VERB_PATTERN = {
248
+ en: /\b(show|list|get|check|find|count|describe|explain|view|see|look\s+at|what|where|when|who|which|how|is|are|does|do|status|version|health|uptime)\b/i,
249
+ zh: /(查看|查询|展示|列出|看一下|看看|多少|什么|哪|是否|有没有|状态|版本|健康|启动时间)/,
250
+ };
251
+ // ---------------------------------------------------------------------------
252
+ // Action verb pattern (used by isActionableIntent)
253
+ // ---------------------------------------------------------------------------
254
+ /**
255
+ * EN action verb pattern. Used as a positive signal for actionability
256
+ * when no non-actionable pattern matches. Pre-existing — kept here to
257
+ * keep all classifier inputs in one file.
258
+ */
259
+ export const ACTION_VERB_EN = /\b(fix|build|create|deploy|implement|add|update|delete|remove|write|read|check|test|run|make|send|set\s+up|configure|install|download|upload|convert|transform|generate|export|import|refactor|migrate|upgrade|optimize|search|find|move|copy|rename|clean\s*up|set|start|stop|restart|enable|disable|schedule|assign|delegate|review|audit|analyze|investigate|research|explore|design|plan|document|monitor|track|debug|trace|patch|revert|rollback|merge|push|pull|commit|release|publish|integrate|connect|disconnect|setup|tear\s*down|provision|scale|backup|restore)\b/i;
260
+ /**
261
+ * ZH action verb pattern. Mirrors §2.3 + §2.6 verb sets plus the canonical
262
+ * Chinese imperatives Mia called out in the spec preamble (§0 root cause
263
+ * 1): 做/写/搞/搞定/重启/检查 etc.
264
+ *
265
+ * **Strictness on dual-use verbs (Mia 2026-05-06):** the bare imperatives
266
+ * 做 and 搞 are conversational-filler-ambiguous (做了 = "did already",
267
+ * 搞砸 = "messed up", 搞不定 = "can't do"). To follow Mia's
268
+ * stricter-promotion default ("false-negative is fixable; false-positive
269
+ * over-decomposes"), we use negative lookaheads on those two so the
270
+ * completed/denial forms don't match. Other actionable forms (做完, 搞定,
271
+ * 做+deliverable) are explicit fall-through tokens further in the pattern.
272
+ *
273
+ * The companion {@link NON_ACTIONABLE_PATTERNS_ZH} set includes
274
+ * sentence-shape filters for "I just did X" / "I can't do X" cases that
275
+ * the lookahead alone cannot catch — both layers together produce the
276
+ * stricter behaviour Mia asked for.
277
+ */
278
+ // Issue #472 (Arch nit on PR #471): symmetry fix on the bare-做
279
+ // negative-lookahead list. 搞 already excluded its mistake/botched
280
+ // suffixes (砸|错|乱|糊涂); 做 only excluded completed/denial suffixes
281
+ // (了|过|得|的|出|不到|不了|不下|不来|不出) and missed the parallel
282
+ // mistake suffixes (错|坏|废). Operational risk: a user typing
283
+ // "做错了" / "做坏了" / "做废了" matched the bare 做 token and reached
284
+ // the L2 promoter. Symmetric coverage closes the gap.
285
+ export const ACTION_VERB_ZH = /(做(?!了|过|得|的|出|错|坏|废|不到|不了|不下|不来|不出)|写(?!不出|不来)|搞(?!砸|错|不定|不动|不了|乱|糊涂)|搞定|做完|完成|重启|启动|停止|关闭|检查|查看|查询|修复|修\b|改|改写|编写|起草|添加|删除|移除|部署|上线|发布|创建|实现|构建|搭建|设计|分析|审查|评审|编排|调研|规划|计划|制定|优化|重构|拆分|分发|分派|协调|分配|统筹|集成|配置|安装|更新|升级|迁移|回填|监控|跟踪|追踪|调试|跑|执行|处理|准备|提交|合并|推送|拉取|发版|交付|落地|拿下|测试|审计|评估|排查|审核|审定)/;
286
+ // ---------------------------------------------------------------------------
287
+ // Non-actionable patterns — ZH parity additions
288
+ // ---------------------------------------------------------------------------
289
+ /**
290
+ * Non-actionable ZH patterns that should be filtered out by
291
+ * `isActionableIntent` before classification (§3 filtered rows).
292
+ *
293
+ * Exported as an array for composition with the existing EN
294
+ * NON_ACTIONABLE_PATTERNS in `intent-task.types.ts`.
295
+ */
296
+ export const NON_ACTIONABLE_PATTERNS_ZH = [
297
+ // Greetings / pleasantries (§3 row 12)
298
+ /^(你好|您好|嗨|早上好|下午好|晚上好|早|晚安|再见|拜拜|多谢|谢谢|感谢)\s*[。!!]?$/,
299
+ // Pure acknowledgements (§3 row 7)
300
+ /^(好的|好|知道了|收到|嗯|嗯嗯|哦|哦哦|明白|明白了|可以|行|对|没问题|稍等|马上|马上来|好啊|好哒)\s*[。!!]?$/,
301
+ // Opinion / discussion (§3 row 8: 我觉得 / 也许)
302
+ /^(我觉得|我认为|我感觉|也许|可能|可能我|或许|大概|应该|觉得)/,
303
+ // FYI / status-share (§3 row 9: 我刚 push 了)
304
+ // Allow optional whitespace between 我刚/已经 and the past-tense verb so
305
+ // "我刚 push 了" / "我已经 merge 完了" etc. all match.
306
+ /^我\s*(刚|已经|已|刚刚)\s*(做了|完成|搞定|push|merge|提交|推送|部署|更新|修复|发布)/i,
307
+ /^(做完了|完成了|已完成|刚完成|刚刚搞定)/,
308
+ // Apology / confirmation (§3 row 10)
309
+ /^(抱歉|不好意思|对不起|确认|确认了|没事|没关系|没什么)/,
310
+ // Mia stricter-default 2026-05-06: dual-use verb conversational-filler
311
+ // forms. These run BEFORE classification so a message like "做了" /
312
+ // "搞砸了" / "做不到" cannot reach the L2 promoter. Catches the cases
313
+ // the verb-level negative lookahead alone misses (e.g. when the
314
+ // problematic form is mid-sentence rather than verb-tail).
315
+ //
316
+ // (a) "I/we did X already" — completed action, not a directive.
317
+ /^(?:我们?\s*)?(?:刚|已经|已|刚刚|早就)?\s*(?:做了|搞了|做完了|搞完了|搞定了|完成了|弄完了|弄好了|做过了|搞过了)/,
318
+ // (b) "(I) can't do X" — capability denial, not a directive.
319
+ /^.{0,20}?(做不到|做不了|做不下来|做不出来|搞不定|搞不动|搞不了|完不成|弄不了|没做完|没搞定)/,
320
+ // (c) Short message ending in a botched/error verb (搞砸/搞错).
321
+ // Issue #472: parallel mistake-form coverage. 搞 had 砸|错|乱|糊涂;
322
+ // 做 needs the parallel 错|坏|废 forms so a user message like "做错了" /
323
+ // "做坏了" / "做废了" is filtered before the L2 promoter sees it.
324
+ /^.{0,30}?(搞砸|搞错|搞乱|搞糊涂|做错|做坏|做废|做糟)(?:了|过)?\s*[。!?!?]?$/,
325
+ ];
326
+ // ---------------------------------------------------------------------------
327
+ // Length floors
328
+ // ---------------------------------------------------------------------------
329
+ /**
330
+ * Length floors for L2 promotion when no rule fires. ZH has no spaces, so
331
+ * word-count alone under-estimates message density — char-count is the
332
+ * complementary axis.
333
+ */
334
+ export const L2_LENGTH_FLOORS = {
335
+ /** EN/space-tokenised word count above which the message is L2. */
336
+ wordCount: 35,
337
+ /** Total character count above which the message is L2 (catches ZH). */
338
+ charCount: 80,
339
+ };
340
+ // ---------------------------------------------------------------------------
341
+ // Category — ZH parity extensions (§2.3 lookup tables)
342
+ // ---------------------------------------------------------------------------
343
+ /**
344
+ * Category-specific keyword sets. Each category combines an EN pattern
345
+ * with a ZH pattern; the classifier matches if EITHER fires.
346
+ *
347
+ * Exported as a structured object so the consumer code reads
348
+ * `CATEGORY_KEYWORDS.debugging.zh.test(input)` rather than digging into
349
+ * nested ternaries.
350
+ *
351
+ * Order is significant — see `classifyIntentCategory` in
352
+ * `intent-task.types.ts`. The most-specific categories run first.
353
+ */
354
+ export const CATEGORY_KEYWORDS = {
355
+ debugging: {
356
+ en: /\b(fix|bug|error|crash|broken|issue|debug|trace|stack\s*trace|exception|segfault|panic|hang|leak|regression|flaky)\b/i,
357
+ zh: /(修复|修\b|改bug|bug|报错|崩溃|出错|故障|异常|挂了|内存泄漏|泄漏|不工作|有问题|错了|挂死|死循环|跑不起来)/i,
358
+ },
359
+ deployment: {
360
+ // Bug A v0 (2026-05-06): added `ship|publish` for backward
361
+ // compatibility with v3-data.service.test.ts which pins
362
+ // "Ship the new feature" → deployment. Pre-Bug-A the v3-data
363
+ // classifier had its own deploy regex with these tokens; the
364
+ // delegation rolls them in here so the pre-existing assertion
365
+ // still passes after consolidation.
366
+ en: /\b(deploy|ship|publish|staging|production|docker|kubernetes|k8s|helm|terraform|ansible|nginx|container|image|rollback|rollout)\b/i,
367
+ zh: /(部署|上线|发布|发版|预发|生产|生产环境|预发环境|镜像|容器|回滚|灰度|滚动发布)/,
368
+ },
369
+ release: {
370
+ en: /\b(release)\b/i,
371
+ zh: /(发版|release)/i,
372
+ },
373
+ ciCdContext: {
374
+ en: /\b(ci|cd)\b/i,
375
+ zh: /(持续集成|持续交付|流水线|ci|cd)/i,
376
+ },
377
+ ciCdAction: {
378
+ en: /\b(pipeline|build|run|trigger|fix)\b/i,
379
+ zh: /(流水线|构建|运行|触发|修复)/,
380
+ },
381
+ review: {
382
+ en: /\b(review|pr\b|pull\s+request|code\s+review|audit|approve|reject|lgtm)\b/i,
383
+ zh: /(审查|评审|审核|review|代码审查|代码评审|pr\b|拉取请求|批准|驳回|通过)/i,
384
+ },
385
+ research: {
386
+ en: /\b(research|investigate|explore|analyze|compare|evaluate|benchmark|measure|profile|survey|study)\b/i,
387
+ zh: /(研究|调查|分析|评估|对比|评测|基准测试|测量|画像|调研|考察|学习|探索)/,
388
+ },
389
+ planning: {
390
+ en: /\b(plan|roadmap|strategy|design|architect|spec|specification|rfc|proposal|estimate|prioritize|schedule|timeline|milestone)\b/i,
391
+ zh: /(规划|路线图|战略|策略|设计|架构|规范|提案|估算|优先级|时间表|时间线|里程碑|计划|方案|蓝图)/,
392
+ },
393
+ communication: {
394
+ en: /\b(message|notify|slack|email|communicate|tell\s|announce|broadcast|ping|alert|report\s+to|inform|update\s+the\s+team)\b/i,
395
+ zh: /(告诉|问|通知|发消息|转告|通报|告知|联系|沟通|喊一下|跟.{0,4}说|@|私信|群发)/,
396
+ },
397
+ codeChange: {
398
+ en: /\b(implement|code|write|add|update|modify|refactor|create|build|develop|rename|move|copy|delete|remove|clean\s*up|optimize|improve|enhance|extend|extract|inline|merge|split|convert|transform|generate|scaffold|bootstrap|set\s*up|configure|install|integrate|connect|wire|hook\s*up|enable|disable|restart|reboot)\b/i,
399
+ // CJK note: \b doesn't behave correctly between two CJK chars in JS,
400
+ // so the bare-verb tokens (做/写/改/加) use negative lookaheads to
401
+ // exclude their non-imperative suffixes rather than relying on \b.
402
+ // Mia stricter-default: 做(?!了|过|得|的|出) excludes 做了/做过/做得/
403
+ // 做的/做出 — the conversational/completed forms.
404
+ // Issue #472: parallel symmetry fix — 做(?!...|错|坏|废|...) so the
405
+ // codeChange category doesn't fire on "做错" / "做坏" / "做废" forms.
406
+ zh: /(实现|添加|创建|开发|编写|搭建|新增|修改|更新|更改|重构|删除|移除|优化|增强|扩展|抽取|内联|合并|拆分|转换|生成|脚手架|配置|安装|集成|连接|启用|禁用|改成|改名|改完|改造|改一下|改个|做(?!了|过|得|的|出|错|坏|废|不到|不了)|写(?!不出|不来)|搞(?!砸|错|不定|不动|不了|乱|糊涂)|去掉|去除|加上|加入|加进|重启|启动)/,
407
+ },
408
+ query: {
409
+ en: /\b(what|where|when|who|which|how|show|list|get|status|check|find|search|look\s*up|count|describe|explain)\b/i,
410
+ zh: /(什么|哪里|哪|何时|谁|哪个|怎么|怎样|展示|列出|看|看看|查看|查询|状态|检查|查找|搜索|查阅|多少|描述|解释|说明)/,
411
+ },
412
+ // Growth / money / marketing — non-software business goals (make money, grow
413
+ // an audience, run marketing). Keywords are deliberately SPECIFIC phrases to
414
+ // avoid colliding with software intents ("build" stays code_change; only the
415
+ // domain phrases below route here).
416
+ growth: {
417
+ en: /\b(monetize|monetise|make\s+money|earn\s+money|revenue|profit|sales\s+funnel|lead\s+gen(eration)?|conversion\s+rate|go[- ]to[- ]market|gtm|social\s+media|marketing\s+campaign|ad\s+campaign|grow\s+(the\s+)?(audience|following|account|subscribers|userbase)|gain\s+(followers|subscribers)|acquire\s+(customers|users)|seo\s+strategy|content\s+marketing|influencer)\b/i,
418
+ zh: /(变现|挣钱|赚钱|盈利|营收|获客|拉新|涨粉|增粉|涨粉丝|加粉|社媒|社交媒体|营销|推广|引流|带货|卖货|销售额|转化率|增长黑客|私域|公域|投放|起号|做号|运营.{0,2}(账号|社媒|抖音|小红书|公众号))/,
419
+ },
420
+ };
421
+ //# sourceMappingURL=intent-classifier.rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-classifier.rules.js","sourceRoot":"","sources":["../../../../../../backend/src/services/intent-task/intent-classifier.rules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,233 @@
1
+ /**
2
+ * MCP Client Service
3
+ *
4
+ * Enables Crewly agents to connect to external MCP (Model Context Protocol)
5
+ * servers and use their tools. This is the client-side counterpart to our
6
+ * existing MCP server — it lets agents consume tools from any MCP-compatible
7
+ * server (filesystem, GitHub, database, etc.).
8
+ *
9
+ * Supports stdio-based MCP servers (child process spawning) which is the
10
+ * standard transport for local MCP servers.
11
+ *
12
+ * @module services/mcp-client
13
+ */
14
+ /**
15
+ * MCP Client configuration constants
16
+ */
17
+ export declare const MCP_CLIENT_CONSTANTS: {
18
+ /** Client identification sent during MCP handshake */
19
+ readonly CLIENT_INFO: {
20
+ readonly NAME: "crewly-agent";
21
+ readonly VERSION: "1.0.0";
22
+ };
23
+ /** Default timeout for tool calls (30 seconds) */
24
+ readonly TOOL_CALL_TIMEOUT_MS: 30000;
25
+ /** Default timeout for server connection (15 seconds) */
26
+ readonly CONNECTION_TIMEOUT_MS: 15000;
27
+ };
28
+ /**
29
+ * Configuration for an external MCP server.
30
+ *
31
+ * Matches the format used in `crewly.config.ts`:
32
+ * ```typescript
33
+ * mcpServers: {
34
+ * filesystem: { command: 'npx', args: ['-y', '@anthropic/mcp-filesystem'] },
35
+ * github: { command: 'npx', args: ['-y', '@anthropic/mcp-github'] },
36
+ * }
37
+ * ```
38
+ */
39
+ export interface McpServerConfig {
40
+ /** The executable command to run (e.g., 'npx', 'node', 'python') */
41
+ command: string;
42
+ /** Command-line arguments for the executable */
43
+ args?: string[];
44
+ /** Environment variables to set for the server process */
45
+ env?: Record<string, string>;
46
+ }
47
+ /**
48
+ * Normalized tool information from an MCP server.
49
+ */
50
+ export interface McpToolInfo {
51
+ /** Tool name as registered on the MCP server */
52
+ name: string;
53
+ /** Human-readable description of the tool */
54
+ description?: string;
55
+ /** JSON Schema describing the tool's input parameters */
56
+ inputSchema: Record<string, unknown>;
57
+ /** Name of the MCP server that provides this tool */
58
+ serverName: string;
59
+ }
60
+ /**
61
+ * Result from calling an MCP tool.
62
+ */
63
+ export interface McpToolResult {
64
+ /** Content blocks returned by the tool */
65
+ content: McpContentBlock[];
66
+ /** Whether the tool call resulted in an error */
67
+ isError: boolean;
68
+ }
69
+ /**
70
+ * A single content block in a tool result.
71
+ */
72
+ export interface McpContentBlock {
73
+ /** Content type: 'text', 'image', or 'resource' */
74
+ type: string;
75
+ /** Text content (when type is 'text') */
76
+ text?: string;
77
+ /** Base64-encoded data (when type is 'image') */
78
+ data?: string;
79
+ /** MIME type (when type is 'image') */
80
+ mimeType?: string;
81
+ }
82
+ /**
83
+ * Status information for a connected MCP server.
84
+ */
85
+ export interface McpServerStatus {
86
+ /** Server identifier */
87
+ name: string;
88
+ /** Whether the server is currently connected */
89
+ connected: boolean;
90
+ /** Number of tools available from this server */
91
+ toolCount: number;
92
+ /** Server name reported during handshake */
93
+ serverName?: string;
94
+ /** Server version reported during handshake */
95
+ serverVersion?: string;
96
+ }
97
+ /**
98
+ * Manages connections to external MCP servers and provides a unified
99
+ * interface for discovering and calling tools across all connected servers.
100
+ *
101
+ * Agents use this service to:
102
+ * 1. Connect to configured MCP servers at startup
103
+ * 2. Discover available tools across all servers
104
+ * 3. Call tools by name with type-safe arguments
105
+ * 4. Gracefully disconnect on shutdown
106
+ *
107
+ * @example
108
+ * ```typescript
109
+ * const mcpClient = new McpClientService();
110
+ *
111
+ * // Connect to a filesystem MCP server
112
+ * await mcpClient.connectServer('filesystem', {
113
+ * command: 'npx',
114
+ * args: ['-y', '@anthropic/mcp-filesystem', '/home/user'],
115
+ * });
116
+ *
117
+ * // List all available tools
118
+ * const tools = mcpClient.listTools();
119
+ *
120
+ * // Call a tool
121
+ * const result = await mcpClient.callTool('filesystem', 'read_file', {
122
+ * path: '/home/user/file.txt',
123
+ * });
124
+ *
125
+ * // Disconnect all servers
126
+ * await mcpClient.disconnectAll();
127
+ * ```
128
+ */
129
+ export declare class McpClientService {
130
+ /** Map of server name -> active connection */
131
+ private connections;
132
+ /**
133
+ * Connect to an external MCP server via stdio transport.
134
+ *
135
+ * Spawns the server as a child process, performs the MCP handshake,
136
+ * and caches the list of available tools.
137
+ *
138
+ * @param name - Unique identifier for this server connection
139
+ * @param config - Server configuration (command, args, env)
140
+ * @throws Error if already connected to a server with this name
141
+ * @throws Error if the connection or handshake fails
142
+ */
143
+ connectServer(name: string, config: McpServerConfig): Promise<void>;
144
+ /**
145
+ * Disconnect from a specific MCP server.
146
+ *
147
+ * Closes the transport and cleans up the child process.
148
+ *
149
+ * @param name - Name of the server to disconnect
150
+ * @throws Error if the server is not connected
151
+ */
152
+ disconnectServer(name: string): Promise<void>;
153
+ /**
154
+ * Disconnect from all connected MCP servers.
155
+ *
156
+ * Closes all transports and cleans up child processes. Errors from
157
+ * individual disconnections are caught and do not prevent other
158
+ * servers from being disconnected. Connections are always removed
159
+ * from the internal map, even if `close()` fails.
160
+ */
161
+ disconnectAll(): Promise<void>;
162
+ /**
163
+ * List all available tools across connected MCP servers.
164
+ *
165
+ * @param serverName - Optional: filter tools to a specific server
166
+ * @returns Array of tool information objects
167
+ */
168
+ listTools(serverName?: string): McpToolInfo[];
169
+ /**
170
+ * Call a tool on a specific MCP server.
171
+ *
172
+ * @param serverName - Name of the server that provides the tool
173
+ * @param toolName - Name of the tool to call
174
+ * @param args - Arguments to pass to the tool
175
+ * @returns The tool's result containing content blocks and error status
176
+ * @throws Error if the server is not connected
177
+ * @throws Error if the tool is not found on the server
178
+ * @throws Error if the tool call fails
179
+ */
180
+ callTool(serverName: string, toolName: string, args?: Record<string, unknown>): Promise<McpToolResult>;
181
+ /**
182
+ * Refresh the tool list for a specific server.
183
+ *
184
+ * Useful when a server's tools may have changed since the initial connection.
185
+ *
186
+ * @param serverName - Name of the server to refresh
187
+ * @throws Error if the server is not connected
188
+ */
189
+ refreshTools(serverName: string): Promise<void>;
190
+ /**
191
+ * Get the names of all currently connected MCP servers.
192
+ *
193
+ * @returns Array of server names
194
+ */
195
+ getConnectedServers(): string[];
196
+ /**
197
+ * Check if a specific MCP server is currently connected.
198
+ *
199
+ * @param name - Server name to check
200
+ * @returns True if the server is connected
201
+ */
202
+ isServerConnected(name: string): boolean;
203
+ /**
204
+ * Get status information for all connected servers.
205
+ *
206
+ * @returns Array of server status objects including tool counts
207
+ */
208
+ getServerStatuses(): McpServerStatus[];
209
+ /**
210
+ * Connect to multiple MCP servers from a configuration map.
211
+ *
212
+ * This is the primary entrypoint for agent startup. Errors from
213
+ * individual connections are caught — failing servers do not prevent
214
+ * other servers from connecting.
215
+ *
216
+ * @param configs - Map of server name -> server config
217
+ * @returns Map of server name -> error (only for servers that failed to connect)
218
+ *
219
+ * @example
220
+ * ```typescript
221
+ * const errors = await mcpClient.connectAll({
222
+ * filesystem: { command: 'npx', args: ['-y', '@anthropic/mcp-filesystem', '/tmp'] },
223
+ * github: { command: 'npx', args: ['-y', '@anthropic/mcp-github'] },
224
+ * });
225
+ *
226
+ * if (errors.size > 0) {
227
+ * console.warn('Some MCP servers failed to connect:', errors);
228
+ * }
229
+ * ```
230
+ */
231
+ connectAll(configs: Record<string, McpServerConfig>): Promise<Map<string, Error>>;
232
+ }
233
+ //# sourceMappingURL=mcp-client.d.ts.map