@ai-coders/context 0.5.2 → 0.6.0

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 (325) hide show
  1. package/README.md +244 -12
  2. package/dist/generators/agents/agentGenerator.d.ts +3 -0
  3. package/dist/generators/agents/agentGenerator.d.ts.map +1 -1
  4. package/dist/generators/agents/agentGenerator.js +13 -7
  5. package/dist/generators/agents/agentGenerator.js.map +1 -1
  6. package/dist/generators/agents/templates/playbookTemplate.d.ts.map +1 -1
  7. package/dist/generators/agents/templates/playbookTemplate.js +3 -1
  8. package/dist/generators/agents/templates/playbookTemplate.js.map +1 -1
  9. package/dist/generators/documentation/codebaseMapGenerator.d.ts +98 -0
  10. package/dist/generators/documentation/codebaseMapGenerator.d.ts.map +1 -0
  11. package/dist/generators/documentation/codebaseMapGenerator.js +247 -0
  12. package/dist/generators/documentation/codebaseMapGenerator.js.map +1 -0
  13. package/dist/generators/documentation/documentationGenerator.d.ts +2 -0
  14. package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -1
  15. package/dist/generators/documentation/documentationGenerator.js +20 -1
  16. package/dist/generators/documentation/documentationGenerator.js.map +1 -1
  17. package/dist/generators/documentation/index.d.ts +2 -0
  18. package/dist/generators/documentation/index.d.ts.map +1 -1
  19. package/dist/generators/documentation/index.js +3 -1
  20. package/dist/generators/documentation/index.js.map +1 -1
  21. package/dist/generators/documentation/templates/architectureTemplate.d.ts.map +1 -1
  22. package/dist/generators/documentation/templates/architectureTemplate.js +2 -31
  23. package/dist/generators/documentation/templates/architectureTemplate.js.map +1 -1
  24. package/dist/generators/documentation/templates/common.d.ts +4 -1
  25. package/dist/generators/documentation/templates/common.d.ts.map +1 -1
  26. package/dist/generators/documentation/templates/common.js +4 -2
  27. package/dist/generators/documentation/templates/common.js.map +1 -1
  28. package/dist/generators/plans/templates/planTemplate.d.ts.map +1 -1
  29. package/dist/generators/plans/templates/planTemplate.js +46 -2
  30. package/dist/generators/plans/templates/planTemplate.js.map +1 -1
  31. package/dist/generators/skills/index.d.ts +7 -0
  32. package/dist/generators/skills/index.d.ts.map +1 -0
  33. package/dist/generators/skills/index.js +15 -0
  34. package/dist/generators/skills/index.js.map +1 -0
  35. package/dist/generators/skills/skillGenerator.d.ts +53 -0
  36. package/dist/generators/skills/skillGenerator.d.ts.map +1 -0
  37. package/dist/generators/skills/skillGenerator.js +149 -0
  38. package/dist/generators/skills/skillGenerator.js.map +1 -0
  39. package/dist/generators/skills/templates/indexTemplate.d.ts +13 -0
  40. package/dist/generators/skills/templates/indexTemplate.d.ts.map +1 -0
  41. package/dist/generators/skills/templates/indexTemplate.js +102 -0
  42. package/dist/generators/skills/templates/indexTemplate.js.map +1 -0
  43. package/dist/generators/skills/templates/skillTemplate.d.ts +20 -0
  44. package/dist/generators/skills/templates/skillTemplate.d.ts.map +1 -0
  45. package/dist/generators/skills/templates/skillTemplate.js +85 -0
  46. package/dist/generators/skills/templates/skillTemplate.js.map +1 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +1315 -43
  49. package/dist/index.js.map +1 -1
  50. package/dist/services/ai/agentEvents.d.ts +1 -1
  51. package/dist/services/ai/agentEvents.d.ts.map +1 -1
  52. package/dist/services/ai/agents/index.d.ts +2 -0
  53. package/dist/services/ai/agents/index.d.ts.map +1 -1
  54. package/dist/services/ai/agents/index.js +3 -1
  55. package/dist/services/ai/agents/index.js.map +1 -1
  56. package/dist/services/ai/agents/skillAgent.d.ts +49 -0
  57. package/dist/services/ai/agents/skillAgent.d.ts.map +1 -0
  58. package/dist/services/ai/agents/skillAgent.js +179 -0
  59. package/dist/services/ai/agents/skillAgent.js.map +1 -0
  60. package/dist/services/ai/prompts/index.d.ts +1 -1
  61. package/dist/services/ai/prompts/index.d.ts.map +1 -1
  62. package/dist/services/ai/prompts/index.js +2 -1
  63. package/dist/services/ai/prompts/index.js.map +1 -1
  64. package/dist/services/ai/prompts/sharedPrompts.d.ts +4 -0
  65. package/dist/services/ai/prompts/sharedPrompts.d.ts.map +1 -1
  66. package/dist/services/ai/prompts/sharedPrompts.js +33 -0
  67. package/dist/services/ai/prompts/sharedPrompts.js.map +1 -1
  68. package/dist/services/ai/schemas.d.ts +96 -1
  69. package/dist/services/ai/schemas.d.ts.map +1 -1
  70. package/dist/services/ai/schemas.js +56 -2
  71. package/dist/services/ai/schemas.js.map +1 -1
  72. package/dist/services/ai/toolRegistry.d.ts.map +1 -1
  73. package/dist/services/ai/toolRegistry.js +17 -0
  74. package/dist/services/ai/toolRegistry.js.map +1 -1
  75. package/dist/services/ai/tools/fillScaffoldingTool.d.ts +4 -4
  76. package/dist/services/ai/tools/getCodebaseMapTool.d.ts +17 -0
  77. package/dist/services/ai/tools/getCodebaseMapTool.d.ts.map +1 -0
  78. package/dist/services/ai/tools/getCodebaseMapTool.js +115 -0
  79. package/dist/services/ai/tools/getCodebaseMapTool.js.map +1 -0
  80. package/dist/services/ai/tools/index.d.ts +2 -1
  81. package/dist/services/ai/tools/index.d.ts.map +1 -1
  82. package/dist/services/ai/tools/index.js +8 -3
  83. package/dist/services/ai/tools/index.js.map +1 -1
  84. package/dist/services/ai/tools/initializeContextTool.d.ts +9 -1
  85. package/dist/services/ai/tools/initializeContextTool.d.ts.map +1 -1
  86. package/dist/services/ai/tools/initializeContextTool.js +33 -3
  87. package/dist/services/ai/tools/initializeContextTool.js.map +1 -1
  88. package/dist/services/ai/tools/scaffoldPlanTool.d.ts +6 -0
  89. package/dist/services/ai/tools/scaffoldPlanTool.d.ts.map +1 -1
  90. package/dist/services/ai/tools/scaffoldPlanTool.js +16 -3
  91. package/dist/services/ai/tools/scaffoldPlanTool.js.map +1 -1
  92. package/dist/services/export/exportRulesService.d.ts +62 -0
  93. package/dist/services/export/exportRulesService.d.ts.map +1 -0
  94. package/dist/services/export/exportRulesService.js +242 -0
  95. package/dist/services/export/exportRulesService.js.map +1 -0
  96. package/dist/services/export/index.d.ts +5 -0
  97. package/dist/services/export/index.d.ts.map +1 -0
  98. package/dist/services/export/index.js +10 -0
  99. package/dist/services/export/index.js.map +1 -0
  100. package/dist/services/export/skillExportService.d.ts +64 -0
  101. package/dist/services/export/skillExportService.d.ts.map +1 -0
  102. package/dist/services/export/skillExportService.js +238 -0
  103. package/dist/services/export/skillExportService.js.map +1 -0
  104. package/dist/services/fill/skillFillService.d.ts +50 -0
  105. package/dist/services/fill/skillFillService.d.ts.map +1 -0
  106. package/dist/services/fill/skillFillService.js +254 -0
  107. package/dist/services/fill/skillFillService.js.map +1 -0
  108. package/dist/services/import/agentsDetector.d.ts +12 -0
  109. package/dist/services/import/agentsDetector.d.ts.map +1 -0
  110. package/dist/services/import/agentsDetector.js +183 -0
  111. package/dist/services/import/agentsDetector.js.map +1 -0
  112. package/dist/services/import/importAgentsService.d.ts +14 -0
  113. package/dist/services/import/importAgentsService.d.ts.map +1 -0
  114. package/dist/services/import/importAgentsService.js +195 -0
  115. package/dist/services/import/importAgentsService.js.map +1 -0
  116. package/dist/services/import/importRulesService.d.ts +17 -0
  117. package/dist/services/import/importRulesService.d.ts.map +1 -0
  118. package/dist/services/import/importRulesService.js +222 -0
  119. package/dist/services/import/importRulesService.js.map +1 -0
  120. package/dist/services/import/index.d.ts +7 -0
  121. package/dist/services/import/index.d.ts.map +1 -0
  122. package/dist/services/import/index.js +28 -0
  123. package/dist/services/import/index.js.map +1 -0
  124. package/dist/services/import/presets.d.ts +8 -0
  125. package/dist/services/import/presets.d.ts.map +1 -0
  126. package/dist/services/import/presets.js +176 -0
  127. package/dist/services/import/presets.js.map +1 -0
  128. package/dist/services/import/rulesDetector.d.ts +16 -0
  129. package/dist/services/import/rulesDetector.d.ts.map +1 -0
  130. package/dist/services/import/rulesDetector.js +278 -0
  131. package/dist/services/import/rulesDetector.js.map +1 -0
  132. package/dist/services/import/types.d.ts +72 -0
  133. package/dist/services/import/types.d.ts.map +1 -0
  134. package/dist/services/import/types.js +3 -0
  135. package/dist/services/import/types.js.map +1 -0
  136. package/dist/services/mcp/mcpServer.d.ts +24 -0
  137. package/dist/services/mcp/mcpServer.d.ts.map +1 -1
  138. package/dist/services/mcp/mcpServer.js +1451 -1
  139. package/dist/services/mcp/mcpServer.js.map +1 -1
  140. package/dist/services/quickSync/index.d.ts +3 -0
  141. package/dist/services/quickSync/index.d.ts.map +1 -0
  142. package/dist/services/quickSync/index.js +7 -0
  143. package/dist/services/quickSync/index.js.map +1 -0
  144. package/dist/services/quickSync/quickSyncService.d.ts +72 -0
  145. package/dist/services/quickSync/quickSyncService.d.ts.map +1 -0
  146. package/dist/services/quickSync/quickSyncService.js +268 -0
  147. package/dist/services/quickSync/quickSyncService.js.map +1 -0
  148. package/dist/services/report/index.d.ts +3 -0
  149. package/dist/services/report/index.d.ts.map +1 -0
  150. package/dist/services/report/index.js +6 -0
  151. package/dist/services/report/index.js.map +1 -0
  152. package/dist/services/report/reportService.d.ts +131 -0
  153. package/dist/services/report/reportService.d.ts.map +1 -0
  154. package/dist/services/report/reportService.js +372 -0
  155. package/dist/services/report/reportService.js.map +1 -0
  156. package/dist/services/semantic/contextBuilder.d.ts +8 -1
  157. package/dist/services/semantic/contextBuilder.d.ts.map +1 -1
  158. package/dist/services/semantic/contextBuilder.js +107 -20
  159. package/dist/services/semantic/contextBuilder.js.map +1 -1
  160. package/dist/services/shared/globPatterns.d.ts +48 -0
  161. package/dist/services/shared/globPatterns.d.ts.map +1 -0
  162. package/dist/services/shared/globPatterns.js +110 -0
  163. package/dist/services/shared/globPatterns.js.map +1 -0
  164. package/dist/services/shared/index.d.ts +10 -0
  165. package/dist/services/shared/index.d.ts.map +1 -0
  166. package/dist/services/shared/index.js +46 -0
  167. package/dist/services/shared/index.js.map +1 -0
  168. package/dist/services/shared/pathHelpers.d.ts +71 -0
  169. package/dist/services/shared/pathHelpers.d.ts.map +1 -0
  170. package/dist/services/shared/pathHelpers.js +162 -0
  171. package/dist/services/shared/pathHelpers.js.map +1 -0
  172. package/dist/services/shared/types.d.ts +74 -0
  173. package/dist/services/shared/types.d.ts.map +1 -0
  174. package/dist/services/shared/types.js +44 -0
  175. package/dist/services/shared/types.js.map +1 -0
  176. package/dist/services/shared/uiHelpers.d.ts +70 -0
  177. package/dist/services/shared/uiHelpers.d.ts.map +1 -0
  178. package/dist/services/shared/uiHelpers.js +131 -0
  179. package/dist/services/shared/uiHelpers.js.map +1 -0
  180. package/dist/services/stack/index.d.ts +6 -0
  181. package/dist/services/stack/index.d.ts.map +1 -0
  182. package/dist/services/stack/index.js +25 -0
  183. package/dist/services/stack/index.js.map +1 -0
  184. package/dist/services/stack/projectTypeClassifier.d.ts +59 -0
  185. package/dist/services/stack/projectTypeClassifier.d.ts.map +1 -0
  186. package/dist/services/stack/projectTypeClassifier.js +242 -0
  187. package/dist/services/stack/projectTypeClassifier.js.map +1 -0
  188. package/dist/services/stack/scaffoldFilter.d.ts +75 -0
  189. package/dist/services/stack/scaffoldFilter.d.ts.map +1 -0
  190. package/dist/services/stack/scaffoldFilter.js +222 -0
  191. package/dist/services/stack/scaffoldFilter.js.map +1 -0
  192. package/dist/services/stack/stackDetector.d.ts +43 -0
  193. package/dist/services/stack/stackDetector.d.ts.map +1 -0
  194. package/dist/services/stack/stackDetector.js +406 -0
  195. package/dist/services/stack/stackDetector.js.map +1 -0
  196. package/dist/services/start/index.d.ts +3 -0
  197. package/dist/services/start/index.d.ts.map +1 -0
  198. package/dist/services/start/index.js +6 -0
  199. package/dist/services/start/index.js.map +1 -0
  200. package/dist/services/start/startService.d.ts +64 -0
  201. package/dist/services/start/startService.d.ts.map +1 -0
  202. package/dist/services/start/startService.js +180 -0
  203. package/dist/services/start/startService.js.map +1 -0
  204. package/dist/services/sync/presets.d.ts.map +1 -1
  205. package/dist/services/sync/presets.js +16 -1
  206. package/dist/services/sync/presets.js.map +1 -1
  207. package/dist/services/sync/types.d.ts +1 -1
  208. package/dist/services/sync/types.d.ts.map +1 -1
  209. package/dist/services/workflow/autoAdvance.d.ts +38 -0
  210. package/dist/services/workflow/autoAdvance.d.ts.map +1 -0
  211. package/dist/services/workflow/autoAdvance.js +219 -0
  212. package/dist/services/workflow/autoAdvance.js.map +1 -0
  213. package/dist/services/workflow/index.d.ts +6 -0
  214. package/dist/services/workflow/index.d.ts.map +1 -0
  215. package/dist/services/workflow/index.js +11 -0
  216. package/dist/services/workflow/index.js.map +1 -0
  217. package/dist/services/workflow/workflowService.d.ts +98 -0
  218. package/dist/services/workflow/workflowService.d.ts.map +1 -0
  219. package/dist/services/workflow/workflowService.js +210 -0
  220. package/dist/services/workflow/workflowService.js.map +1 -0
  221. package/dist/utils/cliUI.d.ts +4 -0
  222. package/dist/utils/cliUI.d.ts.map +1 -1
  223. package/dist/utils/cliUI.js +31 -1
  224. package/dist/utils/cliUI.js.map +1 -1
  225. package/dist/utils/i18n.d.ts +202 -0
  226. package/dist/utils/i18n.d.ts.map +1 -1
  227. package/dist/utils/i18n.js +438 -2
  228. package/dist/utils/i18n.js.map +1 -1
  229. package/dist/utils/theme.d.ts +1 -0
  230. package/dist/utils/theme.d.ts.map +1 -1
  231. package/dist/utils/theme.js +1 -0
  232. package/dist/utils/theme.js.map +1 -1
  233. package/dist/workflow/agents/agentRegistry.d.ts +82 -0
  234. package/dist/workflow/agents/agentRegistry.d.ts.map +1 -0
  235. package/dist/workflow/agents/agentRegistry.js +205 -0
  236. package/dist/workflow/agents/agentRegistry.js.map +1 -0
  237. package/dist/workflow/agents/index.d.ts +7 -0
  238. package/dist/workflow/agents/index.d.ts.map +1 -0
  239. package/dist/workflow/agents/index.js +14 -0
  240. package/dist/workflow/agents/index.js.map +1 -0
  241. package/dist/workflow/collaboration.d.ts +110 -0
  242. package/dist/workflow/collaboration.d.ts.map +1 -0
  243. package/dist/workflow/collaboration.js +301 -0
  244. package/dist/workflow/collaboration.js.map +1 -0
  245. package/dist/workflow/index.d.ts +25 -0
  246. package/dist/workflow/index.d.ts.map +1 -0
  247. package/dist/workflow/index.js +124 -0
  248. package/dist/workflow/index.js.map +1 -0
  249. package/dist/workflow/orchestration/agentOrchestrator.d.ts +68 -0
  250. package/dist/workflow/orchestration/agentOrchestrator.d.ts.map +1 -0
  251. package/dist/workflow/orchestration/agentOrchestrator.js +280 -0
  252. package/dist/workflow/orchestration/agentOrchestrator.js.map +1 -0
  253. package/dist/workflow/orchestration/documentLinker.d.ts +100 -0
  254. package/dist/workflow/orchestration/documentLinker.d.ts.map +1 -0
  255. package/dist/workflow/orchestration/documentLinker.js +266 -0
  256. package/dist/workflow/orchestration/documentLinker.js.map +1 -0
  257. package/dist/workflow/orchestration/index.d.ts +9 -0
  258. package/dist/workflow/orchestration/index.d.ts.map +1 -0
  259. package/dist/workflow/orchestration/index.js +25 -0
  260. package/dist/workflow/orchestration/index.js.map +1 -0
  261. package/dist/workflow/orchestrator.d.ts +99 -0
  262. package/dist/workflow/orchestrator.d.ts.map +1 -0
  263. package/dist/workflow/orchestrator.js +217 -0
  264. package/dist/workflow/orchestrator.js.map +1 -0
  265. package/dist/workflow/phases.d.ts +64 -0
  266. package/dist/workflow/phases.d.ts.map +1 -0
  267. package/dist/workflow/phases.js +151 -0
  268. package/dist/workflow/phases.js.map +1 -0
  269. package/dist/workflow/plans/index.d.ts +8 -0
  270. package/dist/workflow/plans/index.d.ts.map +1 -0
  271. package/dist/workflow/plans/index.js +27 -0
  272. package/dist/workflow/plans/index.js.map +1 -0
  273. package/dist/workflow/plans/planLinker.d.ts +119 -0
  274. package/dist/workflow/plans/planLinker.d.ts.map +1 -0
  275. package/dist/workflow/plans/planLinker.js +499 -0
  276. package/dist/workflow/plans/planLinker.js.map +1 -0
  277. package/dist/workflow/plans/types.d.ts +167 -0
  278. package/dist/workflow/plans/types.d.ts.map +1 -0
  279. package/dist/workflow/plans/types.js +25 -0
  280. package/dist/workflow/plans/types.js.map +1 -0
  281. package/dist/workflow/prevcConfig.d.ts +27 -0
  282. package/dist/workflow/prevcConfig.d.ts.map +1 -0
  283. package/dist/workflow/prevcConfig.js +153 -0
  284. package/dist/workflow/prevcConfig.js.map +1 -0
  285. package/dist/workflow/roles.d.ts +44 -0
  286. package/dist/workflow/roles.d.ts.map +1 -0
  287. package/dist/workflow/roles.js +112 -0
  288. package/dist/workflow/roles.js.map +1 -0
  289. package/dist/workflow/scaling.d.ts +44 -0
  290. package/dist/workflow/scaling.d.ts.map +1 -0
  291. package/dist/workflow/scaling.js +224 -0
  292. package/dist/workflow/scaling.js.map +1 -0
  293. package/dist/workflow/skills/frontmatter.d.ts +23 -0
  294. package/dist/workflow/skills/frontmatter.d.ts.map +1 -0
  295. package/dist/workflow/skills/frontmatter.js +100 -0
  296. package/dist/workflow/skills/frontmatter.js.map +1 -0
  297. package/dist/workflow/skills/index.d.ts +10 -0
  298. package/dist/workflow/skills/index.d.ts.map +1 -0
  299. package/dist/workflow/skills/index.js +22 -0
  300. package/dist/workflow/skills/index.js.map +1 -0
  301. package/dist/workflow/skills/skillRegistry.d.ts +60 -0
  302. package/dist/workflow/skills/skillRegistry.d.ts.map +1 -0
  303. package/dist/workflow/skills/skillRegistry.js +257 -0
  304. package/dist/workflow/skills/skillRegistry.js.map +1 -0
  305. package/dist/workflow/skills/skillTemplates.d.ts +16 -0
  306. package/dist/workflow/skills/skillTemplates.d.ts.map +1 -0
  307. package/dist/workflow/skills/skillTemplates.js +610 -0
  308. package/dist/workflow/skills/skillTemplates.js.map +1 -0
  309. package/dist/workflow/skills/types.d.ts +72 -0
  310. package/dist/workflow/skills/types.d.ts.map +1 -0
  311. package/dist/workflow/skills/types.js +48 -0
  312. package/dist/workflow/skills/types.js.map +1 -0
  313. package/dist/workflow/status/statusManager.d.ts +84 -0
  314. package/dist/workflow/status/statusManager.d.ts.map +1 -0
  315. package/dist/workflow/status/statusManager.js +402 -0
  316. package/dist/workflow/status/statusManager.js.map +1 -0
  317. package/dist/workflow/status/templates.d.ts +40 -0
  318. package/dist/workflow/status/templates.d.ts.map +1 -0
  319. package/dist/workflow/status/templates.js +148 -0
  320. package/dist/workflow/status/templates.js.map +1 -0
  321. package/dist/workflow/types.d.ts +178 -0
  322. package/dist/workflow/types.d.ts.map +1 -0
  323. package/dist/workflow/types.js +25 -0
  324. package/dist/workflow/types.js.map +1 -0
  325. package/package.json +1 -1
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ /**
3
+ * Unified Start Service
4
+ *
5
+ * Smart command that detects project state and executes the appropriate workflow.
6
+ * Combines init + fill + workflow init into a single intelligent command.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.StartService = void 0;
10
+ const shared_1 = require("../shared");
11
+ const initService_1 = require("../init/initService");
12
+ const fillService_1 = require("../fill/fillService");
13
+ const workflow_1 = require("../workflow");
14
+ const state_1 = require("../state");
15
+ const stackDetector_1 = require("../stack/stackDetector");
16
+ const workflow_2 = require("../../workflow");
17
+ /**
18
+ * Template to scale mapping
19
+ */
20
+ const TEMPLATE_TO_SCALE = {
21
+ hotfix: workflow_2.ProjectScale.QUICK,
22
+ feature: workflow_2.ProjectScale.MEDIUM,
23
+ mvp: workflow_2.ProjectScale.LARGE,
24
+ };
25
+ class StartService {
26
+ constructor(deps) {
27
+ this.deps = deps;
28
+ this.initService = new initService_1.InitService({
29
+ ui: deps.ui,
30
+ t: deps.t,
31
+ version: deps.version,
32
+ });
33
+ this.fillService = new fillService_1.FillService({
34
+ ui: deps.ui,
35
+ t: deps.t,
36
+ version: deps.version,
37
+ defaultModel: deps.defaultModel,
38
+ });
39
+ this.stackDetector = new stackDetector_1.StackDetector();
40
+ }
41
+ /**
42
+ * Run the unified start command
43
+ */
44
+ async run(repoPath, options = {}) {
45
+ const paths = (0, shared_1.resolveContextPaths)(repoPath);
46
+ const result = {
47
+ initialized: false,
48
+ filled: false,
49
+ workflowStarted: false,
50
+ };
51
+ // Step 1: Detect stack
52
+ const stackInfo = await this.detectStack(paths.absolutePath);
53
+ result.stackDetected = stackInfo;
54
+ // Step 2: Detect project state and initialize if needed
55
+ const detector = new state_1.StateDetector({ projectPath: paths.absolutePath });
56
+ const state = await detector.detect();
57
+ if (state.state === 'new') {
58
+ result.initialized = await this.initializeProject(paths.absolutePath, paths.contextPath, options);
59
+ }
60
+ // Step 3: Fill with LLM if needed
61
+ if (this.shouldFill(state.state, options)) {
62
+ result.filled = await this.fillDocs(paths.absolutePath, paths.contextPath, options);
63
+ }
64
+ // Step 4: Initialize workflow if feature name provided
65
+ if (!options.skipWorkflow && options.featureName) {
66
+ const workflowResult = await this.initializeWorkflow(paths.absolutePath, options.featureName, stackInfo, options);
67
+ result.workflowStarted = workflowResult.started;
68
+ result.scale = workflowResult.scale;
69
+ result.featureName = options.featureName;
70
+ }
71
+ return result;
72
+ }
73
+ /**
74
+ * Detect technology stack
75
+ */
76
+ async detectStack(repoPath) {
77
+ const { result } = await (0, shared_1.withSpinner)(this.deps.ui, this.deps.t('spinner.start.detectingStack'), () => this.stackDetector.detect(repoPath), {
78
+ successMessage: this.deps.t('spinner.start.stackDetected', {
79
+ stack: 'detected',
80
+ }),
81
+ });
82
+ return result || {
83
+ primaryLanguage: null,
84
+ languages: [],
85
+ frameworks: [],
86
+ testFrameworks: [],
87
+ buildTools: [],
88
+ files: [],
89
+ packageManager: null,
90
+ isMonorepo: false,
91
+ hasDocker: false,
92
+ hasCI: false,
93
+ };
94
+ }
95
+ /**
96
+ * Initialize project context
97
+ */
98
+ async initializeProject(repoPath, contextPath, options) {
99
+ const { success } = await (0, shared_1.withSpinner)(this.deps.ui, this.deps.t('spinner.start.initializing'), () => this.initService.run(repoPath, 'both', {
100
+ output: contextPath,
101
+ semantic: true,
102
+ verbose: options.verbose,
103
+ }), {
104
+ successMessage: this.deps.t('spinner.start.initialized'),
105
+ failMessage: this.deps.t('spinner.start.initFailed'),
106
+ });
107
+ return success;
108
+ }
109
+ /**
110
+ * Check if we should fill docs
111
+ */
112
+ shouldFill(state, options) {
113
+ if (options.skipFill)
114
+ return false;
115
+ if (!options.apiKey && !this.hasApiKeyInEnv())
116
+ return false;
117
+ return state === 'new' || state === 'unfilled';
118
+ }
119
+ /**
120
+ * Fill documentation with AI
121
+ */
122
+ async fillDocs(repoPath, contextPath, options) {
123
+ const { success } = await (0, shared_1.withSpinner)(this.deps.ui, this.deps.t('spinner.start.filling'), () => this.fillService.run(repoPath, {
124
+ output: contextPath,
125
+ model: options.model || this.deps.defaultModel,
126
+ provider: options.provider,
127
+ apiKey: options.apiKey,
128
+ verbose: options.verbose,
129
+ semantic: true,
130
+ }), {
131
+ successMessage: this.deps.t('spinner.start.filled'),
132
+ failMessage: this.deps.t('spinner.start.fillFailed'),
133
+ failStatus: 'warn',
134
+ });
135
+ return success;
136
+ }
137
+ /**
138
+ * Initialize workflow
139
+ */
140
+ async initializeWorkflow(repoPath, featureName, stackInfo, options) {
141
+ const workflowService = new workflow_1.WorkflowService(repoPath, {
142
+ ui: {
143
+ displaySuccess: (msg) => this.deps.ui.displaySuccess(msg),
144
+ displayError: (msg, err) => this.deps.ui.displayError(msg, err),
145
+ displayInfo: (title, detail) => this.deps.ui.displayInfo(title, detail || ''),
146
+ },
147
+ });
148
+ // Determine scale from template or auto-detect
149
+ const scale = options.template && options.template !== 'auto'
150
+ ? TEMPLATE_TO_SCALE[options.template]
151
+ : undefined;
152
+ try {
153
+ const status = await workflowService.init({
154
+ name: featureName,
155
+ description: `${featureName} - ${stackInfo.primaryLanguage || 'project'}`,
156
+ scale,
157
+ files: stackInfo.files,
158
+ });
159
+ return {
160
+ started: true,
161
+ scale: status.project.scale,
162
+ };
163
+ }
164
+ catch (error) {
165
+ this.deps.ui.displayError(this.deps.t('errors.start.workflowFailed'), error);
166
+ return { started: false };
167
+ }
168
+ }
169
+ /**
170
+ * Check if any API key is available in environment
171
+ */
172
+ hasApiKeyInEnv() {
173
+ return !!(process.env.OPENROUTER_API_KEY ||
174
+ process.env.OPENAI_API_KEY ||
175
+ process.env.ANTHROPIC_API_KEY ||
176
+ process.env.GOOGLE_API_KEY);
177
+ }
178
+ }
179
+ exports.StartService = StartService;
180
+ //# sourceMappingURL=startService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startService.js","sourceRoot":"","sources":["../../../src/services/start/startService.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/services/sync/presets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAExD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,YAAY,CAgB3E,CAAC;AAEF,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,YAAY,EAAE,CAOrE;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAa5E;AAED,wBAAgB,iBAAiB,IAAI,UAAU,EAAE,CAEhD"}
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/services/sync/presets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAExD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,YAAY,CA+B3E,CAAC;AAEF,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,YAAY,EAAE,CAOrE;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAa5E;AAED,wBAAgB,iBAAiB,IAAI,UAAU,EAAE,CAEhD"}
@@ -23,6 +23,21 @@ exports.TARGET_PRESETS = {
23
23
  name: 'cursor',
24
24
  path: '.cursor/agents',
25
25
  description: 'Cursor AI agents directory'
26
+ },
27
+ windsurf: {
28
+ name: 'windsurf',
29
+ path: '.windsurf/agents',
30
+ description: 'Windsurf (Codeium) agents directory'
31
+ },
32
+ cline: {
33
+ name: 'cline',
34
+ path: '.cline/agents',
35
+ description: 'Cline VS Code extension agents directory'
36
+ },
37
+ continue: {
38
+ name: 'continue',
39
+ path: '.continue/agents',
40
+ description: 'Continue.dev agents directory'
26
41
  }
27
42
  };
28
43
  function resolvePresets(presetName) {
@@ -44,6 +59,6 @@ function getPresetByPath(targetPath) {
44
59
  return undefined;
45
60
  }
46
61
  function getAllPresetNames() {
47
- return ['claude', 'github', 'cursor', 'all'];
62
+ return ['claude', 'github', 'cursor', 'windsurf', 'cline', 'continue', 'all'];
48
63
  }
49
64
  //# sourceMappingURL=presets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/services/sync/presets.ts"],"names":[],"mappings":";;;;;;AAqBA,wCAOC;AAED,0CAaC;AAED,8CAEC;AA/CD,0DAA6B;AAGhB,QAAA,cAAc,GAAqD;IAC9E,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,8BAA8B;KAC5C;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,iCAAiC;KAC/C;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,4BAA4B;KAC1C;CACF,CAAC;AAEF,SAAgB,cAAc,CAAC,UAAsB;IACnD,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,sBAAc,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,MAAM,GAAG,sBAAc,CAAC,UAAU,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,CAAC;AAED,SAAgB,eAAe,CAAC,UAAkB;IAChD,MAAM,gBAAgB,GAAG,mBAAI,CAAC,SAAS,CAAC,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAElE,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,sBAAc,CAAC,EAAE,CAAC;QACnD,MAAM,gBAAgB,GAAG,mBAAI,CAAC,SAAS,CAAC,mBAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnE,IAAI,gBAAgB,KAAK,gBAAgB;YACrC,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,GAAG,mBAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7D,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,iBAAiB;IAC/B,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/services/sync/presets.ts"],"names":[],"mappings":";;;;;;AAoCA,wCAOC;AAED,0CAaC;AAED,8CAEC;AA9DD,0DAA6B;AAGhB,QAAA,cAAc,GAAqD;IAC9E,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,8BAA8B;KAC5C;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,iCAAiC;KAC/C;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,4BAA4B;KAC1C;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,qCAAqC;KACnD;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,0CAA0C;KACxD;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,+BAA+B;KAC7C;CACF,CAAC;AAEF,SAAgB,cAAc,CAAC,UAAsB;IACnD,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,sBAAc,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,MAAM,GAAG,sBAAc,CAAC,UAAU,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,CAAC;AAED,SAAgB,eAAe,CAAC,UAAkB;IAChD,MAAM,gBAAgB,GAAG,mBAAI,CAAC,SAAS,CAAC,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAElE,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,sBAAc,CAAC,EAAE,CAAC;QACnD,MAAM,gBAAgB,GAAG,mBAAI,CAAC,SAAS,CAAC,mBAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnE,IAAI,gBAAgB,KAAK,gBAAgB;YACrC,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,GAAG,mBAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7D,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,iBAAiB;IAC/B,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAChF,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { CLIInterface } from '../../utils/cliUI';
2
2
  import type { TranslateFn } from '../../utils/i18n';
3
3
  export type SyncMode = 'symlink' | 'markdown';
4
- export type PresetName = 'claude' | 'github' | 'cursor' | 'all';
4
+ export type PresetName = 'claude' | 'github' | 'cursor' | 'windsurf' | 'cline' | 'continue' | 'all';
5
5
  export interface TargetPreset {
6
6
  name: PresetName;
7
7
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/sync/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE9C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,YAAY,CAAC;IACjB,CAAC,EAAE,WAAW,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/sync/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE9C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,CAAC;AAEpG,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,YAAY,CAAC;IACjB,CAAC,EAAE,WAAW,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Auto-Advance Service
3
+ *
4
+ * Automatically detects when phase outputs are complete and advances the workflow.
5
+ */
6
+ import { PrevcPhase, PrevcStatus } from '../../workflow';
7
+ export interface AutoAdvanceResult {
8
+ shouldAdvance: boolean;
9
+ reason?: string;
10
+ detectedOutputs: string[];
11
+ missingOutputs: string[];
12
+ }
13
+ export declare class AutoAdvanceDetector {
14
+ private contextPath;
15
+ private repoPath;
16
+ constructor(repoPath: string);
17
+ /**
18
+ * Check if the current phase should auto-advance
19
+ */
20
+ checkAutoAdvance(currentPhase: PrevcPhase, status: PrevcStatus): Promise<AutoAdvanceResult>;
21
+ /**
22
+ * Get human-readable expected output types for a phase
23
+ */
24
+ private getExpectedOutputTypes;
25
+ /**
26
+ * Watch for file changes and trigger callback when outputs detected
27
+ */
28
+ watchForOutputs(currentPhase: PrevcPhase, status: PrevcStatus, onOutputsDetected: (outputs: string[]) => void, intervalMs?: number): Promise<() => void>;
29
+ /**
30
+ * Validate outputs for a phase
31
+ */
32
+ validatePhaseOutputs(phase: PrevcPhase, outputs: string[]): Promise<{
33
+ valid: boolean;
34
+ errors: string[];
35
+ }>;
36
+ }
37
+ export { AutoAdvanceDetector as default };
38
+ //# sourceMappingURL=autoAdvance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoAdvance.d.ts","sourceRoot":"","sources":["../../../src/services/workflow/autoAdvance.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EACL,UAAU,EACV,WAAW,EAEZ,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAyDD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM;IAK5B;;OAEG;IACG,gBAAgB,CACpB,YAAY,EAAE,UAAU,EACxB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,iBAAiB,CAAC;IAwD7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;OAEG;IACG,eAAe,CACnB,YAAY,EAAE,UAAU,EACxB,MAAM,EAAE,WAAW,EACnB,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,EAC9C,UAAU,GAAE,MAAa,GACxB,OAAO,CAAC,MAAM,IAAI,CAAC;IAiCtB;;OAEG;IACG,oBAAoB,CACxB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAkBjD;AAED,OAAO,EAAE,mBAAmB,IAAI,OAAO,EAAE,CAAC"}
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+ /**
3
+ * Auto-Advance Service
4
+ *
5
+ * Automatically detects when phase outputs are complete and advances the workflow.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.default = exports.AutoAdvanceDetector = void 0;
42
+ const path = __importStar(require("path"));
43
+ const fs = __importStar(require("fs-extra"));
44
+ const glob_1 = require("glob");
45
+ /**
46
+ * Expected outputs for each phase (file patterns)
47
+ */
48
+ const PHASE_OUTPUT_PATTERNS = {
49
+ P: [
50
+ '**/PRD.md',
51
+ '**/requirements*.md',
52
+ '**/specs*.md',
53
+ '**/user-stories*.md',
54
+ '**/*planning*.md',
55
+ ],
56
+ R: [
57
+ '**/architecture*.md',
58
+ '**/design*.md',
59
+ '**/ADR*.md',
60
+ '**/tech-spec*.md',
61
+ '**/*review*.md',
62
+ ],
63
+ E: [
64
+ '**/*.ts',
65
+ '**/*.tsx',
66
+ '**/*.js',
67
+ '**/*.jsx',
68
+ '**/*.py',
69
+ '**/*.go',
70
+ '**/*.rs',
71
+ '**/*.java',
72
+ ],
73
+ V: [
74
+ '**/*.test.*',
75
+ '**/*.spec.*',
76
+ '**/test_*.py',
77
+ '**/*_test.go',
78
+ '**/tests/**',
79
+ '**/__tests__/**',
80
+ ],
81
+ C: [
82
+ '**/CHANGELOG*.md',
83
+ '**/RELEASE*.md',
84
+ '**/deployment*.md',
85
+ '**/*confirmation*.md',
86
+ ],
87
+ };
88
+ /**
89
+ * Minimum number of new files to consider phase complete
90
+ */
91
+ const PHASE_MIN_FILES = {
92
+ P: 1,
93
+ R: 1,
94
+ E: 1,
95
+ V: 1,
96
+ C: 1,
97
+ };
98
+ class AutoAdvanceDetector {
99
+ constructor(repoPath) {
100
+ this.repoPath = path.resolve(repoPath);
101
+ this.contextPath = path.join(this.repoPath, '.context');
102
+ }
103
+ /**
104
+ * Check if the current phase should auto-advance
105
+ */
106
+ async checkAutoAdvance(currentPhase, status) {
107
+ const result = {
108
+ shouldAdvance: false,
109
+ detectedOutputs: [],
110
+ missingOutputs: [],
111
+ };
112
+ const patterns = PHASE_OUTPUT_PATTERNS[currentPhase];
113
+ const minFiles = PHASE_MIN_FILES[currentPhase];
114
+ // Get phase start time
115
+ const phaseStatus = status.phases[currentPhase];
116
+ const phaseStartTime = phaseStatus?.started_at
117
+ ? new Date(phaseStatus.started_at)
118
+ : new Date(0);
119
+ // Search for new files matching the patterns
120
+ for (const pattern of patterns) {
121
+ try {
122
+ const matches = await (0, glob_1.glob)(pattern, {
123
+ cwd: this.repoPath,
124
+ ignore: ['node_modules/**', '.git/**', 'dist/**', 'build/**'],
125
+ absolute: true,
126
+ });
127
+ for (const match of matches) {
128
+ try {
129
+ const stats = await fs.stat(match);
130
+ // File was modified after phase started
131
+ if (stats.mtime > phaseStartTime) {
132
+ const relativePath = path.relative(this.repoPath, match);
133
+ if (!result.detectedOutputs.includes(relativePath)) {
134
+ result.detectedOutputs.push(relativePath);
135
+ }
136
+ }
137
+ }
138
+ catch {
139
+ // File stat failed, skip
140
+ }
141
+ }
142
+ }
143
+ catch {
144
+ // Glob failed, skip pattern
145
+ }
146
+ }
147
+ // Check if we have enough outputs
148
+ if (result.detectedOutputs.length >= minFiles) {
149
+ result.shouldAdvance = true;
150
+ result.reason = `Detected ${result.detectedOutputs.length} output(s) for phase ${currentPhase}`;
151
+ }
152
+ else {
153
+ result.missingOutputs = this.getExpectedOutputTypes(currentPhase);
154
+ result.reason = `Waiting for outputs: ${result.missingOutputs.join(', ')}`;
155
+ }
156
+ return result;
157
+ }
158
+ /**
159
+ * Get human-readable expected output types for a phase
160
+ */
161
+ getExpectedOutputTypes(phase) {
162
+ const outputMap = {
163
+ P: ['PRD document', 'Requirements specification', 'User stories'],
164
+ R: ['Architecture document', 'Design decisions', 'Technical spec'],
165
+ E: ['Implementation code', 'Source files'],
166
+ V: ['Test files', 'Test results'],
167
+ C: ['Changelog', 'Release notes', 'Documentation updates'],
168
+ };
169
+ return outputMap[phase] || [];
170
+ }
171
+ /**
172
+ * Watch for file changes and trigger callback when outputs detected
173
+ */
174
+ async watchForOutputs(currentPhase, status, onOutputsDetected, intervalMs = 5000) {
175
+ let running = true;
176
+ let previousOutputs = new Set();
177
+ const check = async () => {
178
+ if (!running)
179
+ return;
180
+ const result = await this.checkAutoAdvance(currentPhase, status);
181
+ // Find new outputs
182
+ const newOutputs = result.detectedOutputs.filter((o) => !previousOutputs.has(o));
183
+ if (newOutputs.length > 0) {
184
+ newOutputs.forEach((o) => previousOutputs.add(o));
185
+ onOutputsDetected(newOutputs);
186
+ }
187
+ if (running) {
188
+ setTimeout(check, intervalMs);
189
+ }
190
+ };
191
+ // Start checking
192
+ check();
193
+ // Return stop function
194
+ return () => {
195
+ running = false;
196
+ };
197
+ }
198
+ /**
199
+ * Validate outputs for a phase
200
+ */
201
+ async validatePhaseOutputs(phase, outputs) {
202
+ const errors = [];
203
+ for (const output of outputs) {
204
+ const fullPath = path.isAbsolute(output)
205
+ ? output
206
+ : path.join(this.repoPath, output);
207
+ if (!(await fs.pathExists(fullPath))) {
208
+ errors.push(`Output file not found: ${output}`);
209
+ }
210
+ }
211
+ return {
212
+ valid: errors.length === 0,
213
+ errors,
214
+ };
215
+ }
216
+ }
217
+ exports.AutoAdvanceDetector = AutoAdvanceDetector;
218
+ exports.default = AutoAdvanceDetector;
219
+ //# sourceMappingURL=autoAdvance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoAdvance.js","sourceRoot":"","sources":["../../../src/services/workflow/autoAdvance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Workflow Service Exports
3
+ */
4
+ export { WorkflowService, WorkflowServiceDependencies, WorkflowInitOptions } from './workflowService';
5
+ export { AutoAdvanceDetector, AutoAdvanceResult } from './autoAdvance';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/workflow/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACtG,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ /**
3
+ * Workflow Service Exports
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AutoAdvanceDetector = exports.WorkflowService = void 0;
7
+ var workflowService_1 = require("./workflowService");
8
+ Object.defineProperty(exports, "WorkflowService", { enumerable: true, get: function () { return workflowService_1.WorkflowService; } });
9
+ var autoAdvance_1 = require("./autoAdvance");
10
+ Object.defineProperty(exports, "AutoAdvanceDetector", { enumerable: true, get: function () { return autoAdvance_1.AutoAdvanceDetector; } });
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/workflow/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,qDAAsG;AAA7F,kHAAA,eAAe,OAAA;AACxB,6CAAuE;AAA9D,kHAAA,mBAAmB,OAAA"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * PREVC Workflow Service
3
+ *
4
+ * High-level service for managing PREVC workflows via CLI and MCP.
5
+ */
6
+ import { WorkflowSummary, PrevcStatus, PrevcPhase, PrevcRole, ProjectScale, CollaborationSession, CollaborationSynthesis } from '../../workflow';
7
+ /**
8
+ * Workflow service dependencies
9
+ * Uses loose typing to be compatible with CLI and MCP contexts
10
+ */
11
+ export interface WorkflowServiceDependencies {
12
+ ui?: {
13
+ displaySuccess: (message: string) => void;
14
+ displayError: (message: string, error?: Error) => void;
15
+ displayInfo: (message: string, detail?: string) => void;
16
+ };
17
+ t?: (key: string, params?: Record<string, unknown>) => string;
18
+ }
19
+ /**
20
+ * Options for initializing a workflow
21
+ */
22
+ export interface WorkflowInitOptions {
23
+ name: string;
24
+ description?: string;
25
+ scale?: string | ProjectScale;
26
+ files?: string[];
27
+ }
28
+ /**
29
+ * PREVC Workflow Service
30
+ */
31
+ export declare class WorkflowService {
32
+ private contextPath;
33
+ private orchestrator;
34
+ private collaborationManager;
35
+ private deps;
36
+ constructor(repoPath: string, deps?: WorkflowServiceDependencies);
37
+ /**
38
+ * Check if a workflow exists
39
+ */
40
+ hasWorkflow(): Promise<boolean>;
41
+ /**
42
+ * Initialize a new workflow
43
+ */
44
+ init(options: WorkflowInitOptions): Promise<PrevcStatus>;
45
+ /**
46
+ * Get current workflow status
47
+ */
48
+ getStatus(): Promise<PrevcStatus>;
49
+ /**
50
+ * Get workflow summary for display
51
+ */
52
+ getSummary(): Promise<WorkflowSummary>;
53
+ /**
54
+ * Get formatted status for CLI display
55
+ */
56
+ getFormattedStatus(): Promise<string>;
57
+ /**
58
+ * Advance to the next phase
59
+ */
60
+ advance(outputs?: string[]): Promise<PrevcPhase | null>;
61
+ /**
62
+ * Perform a handoff between roles
63
+ */
64
+ handoff(from: PrevcRole, to: PrevcRole, artifacts: string[]): Promise<void>;
65
+ /**
66
+ * Start a collaboration session
67
+ */
68
+ startCollaboration(topic: string, participants?: PrevcRole[]): Promise<CollaborationSession>;
69
+ /**
70
+ * Add a contribution to a collaboration session
71
+ */
72
+ contributeToCollaboration(sessionId: string, role: PrevcRole, message: string): void;
73
+ /**
74
+ * End a collaboration session and get synthesis
75
+ */
76
+ endCollaboration(sessionId: string): Promise<CollaborationSynthesis | null>;
77
+ /**
78
+ * Get recommended next actions
79
+ */
80
+ getRecommendedActions(): Promise<string[]>;
81
+ /**
82
+ * Check if workflow is complete
83
+ */
84
+ isComplete(): Promise<boolean>;
85
+ /**
86
+ * Update the current task
87
+ */
88
+ updateTask(task: string): Promise<void>;
89
+ /**
90
+ * Start a role in the current phase
91
+ */
92
+ startRole(role: PrevcRole): Promise<void>;
93
+ /**
94
+ * Complete a role's work
95
+ */
96
+ completeRole(role: PrevcRole, outputs: string[]): Promise<void>;
97
+ }
98
+ //# sourceMappingURL=workflowService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflowService.d.ts","sourceRoot":"","sources":["../../../src/services/workflow/workflowService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAEL,eAAe,EACf,WAAW,EACX,UAAU,EACV,SAAS,EACT,YAAY,EAEZ,oBAAoB,EAEpB,sBAAsB,EAKvB,MAAM,gBAAgB,CAAC;AAExB;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,EAAE,CAAC,EAAE;QACH,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QAC1C,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;QACvD,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;KACzD,CAAC;IACF,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,IAAI,CAA8B;gBAGxC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,2BAAgC;IAQxC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IAmC9D;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC;IAIvC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,eAAe,CAAC;IAI5C;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IA6B3C;;OAEG;IACG,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAe7D;;OAEG;IACG,OAAO,CACX,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,SAAS,EACb,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACG,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,SAAS,EAAE,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAchC;;OAEG;IACH,yBAAyB,CACvB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,GACd,IAAI;IASP;;OAEG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAIjF;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIhD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAIpC;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAMtE"}