@dotcontext/cli 0.8.2 → 0.9.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 (414) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +234 -135
  3. package/dist/cli/index.d.ts +15 -0
  4. package/dist/cli/index.d.ts.map +1 -0
  5. package/dist/cli/index.js +27 -0
  6. package/dist/cli/index.js.map +1 -0
  7. package/dist/generators/documentation/codebaseMapGenerator.d.ts +29 -46
  8. package/dist/generators/documentation/codebaseMapGenerator.d.ts.map +1 -1
  9. package/dist/generators/documentation/codebaseMapGenerator.js +148 -244
  10. package/dist/generators/documentation/codebaseMapGenerator.js.map +1 -1
  11. package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -1
  12. package/dist/generators/documentation/documentationGenerator.js +13 -8
  13. package/dist/generators/documentation/documentationGenerator.js.map +1 -1
  14. package/dist/generators/documentation/index.d.ts +1 -1
  15. package/dist/generators/documentation/index.d.ts.map +1 -1
  16. package/dist/generators/shared/structures/documentation/architecture.d.ts.map +1 -1
  17. package/dist/generators/shared/structures/documentation/architecture.js +9 -9
  18. package/dist/generators/shared/structures/documentation/architecture.js.map +1 -1
  19. package/dist/generators/shared/structures/documentation/dataFlow.js +2 -2
  20. package/dist/generators/shared/structures/documentation/dataFlow.js.map +1 -1
  21. package/dist/generators/shared/structures/documentation/glossary.js +2 -2
  22. package/dist/generators/shared/structures/documentation/glossary.js.map +1 -1
  23. package/dist/generators/shared/structures/documentation/projectOverview.d.ts.map +1 -1
  24. package/dist/generators/shared/structures/documentation/projectOverview.js +10 -11
  25. package/dist/generators/shared/structures/documentation/projectOverview.js.map +1 -1
  26. package/dist/generators/shared/structures/skills/factory.d.ts.map +1 -1
  27. package/dist/generators/shared/structures/skills/factory.js +19 -15
  28. package/dist/generators/shared/structures/skills/factory.js.map +1 -1
  29. package/dist/generators/skills/skillGenerator.d.ts +2 -1
  30. package/dist/generators/skills/skillGenerator.d.ts.map +1 -1
  31. package/dist/generators/skills/skillGenerator.js +47 -6
  32. package/dist/generators/skills/skillGenerator.js.map +1 -1
  33. package/dist/generators/skills/templates/indexTemplate.d.ts.map +1 -1
  34. package/dist/generators/skills/templates/indexTemplate.js +22 -15
  35. package/dist/generators/skills/templates/indexTemplate.js.map +1 -1
  36. package/dist/harness/index.d.ts +11 -0
  37. package/dist/harness/index.d.ts.map +1 -0
  38. package/dist/harness/index.js +33 -0
  39. package/dist/harness/index.js.map +1 -0
  40. package/dist/index.js +365 -339
  41. package/dist/index.js.map +1 -1
  42. package/dist/mcp/bin.d.ts +19 -0
  43. package/dist/mcp/bin.d.ts.map +1 -0
  44. package/dist/mcp/bin.js +189 -0
  45. package/dist/mcp/bin.js.map +1 -0
  46. package/dist/mcp/index.d.ts +12 -0
  47. package/dist/mcp/index.d.ts.map +1 -0
  48. package/dist/mcp/index.js +28 -0
  49. package/dist/mcp/index.js.map +1 -0
  50. package/dist/services/autoFill/autoFillService.d.ts.map +1 -1
  51. package/dist/services/autoFill/autoFillService.js +7 -6
  52. package/dist/services/autoFill/autoFillService.js.map +1 -1
  53. package/dist/services/cli/index.d.ts +8 -0
  54. package/dist/services/cli/index.d.ts.map +1 -0
  55. package/dist/services/cli/index.js +17 -0
  56. package/dist/services/cli/index.js.map +1 -0
  57. package/dist/services/cli/mcpInstallService.d.ts +57 -0
  58. package/dist/services/cli/mcpInstallService.d.ts.map +1 -0
  59. package/dist/services/cli/mcpInstallService.js +607 -0
  60. package/dist/services/cli/mcpInstallService.js.map +1 -0
  61. package/dist/services/cli/stateDetector.d.ts +55 -0
  62. package/dist/services/cli/stateDetector.d.ts.map +1 -0
  63. package/dist/services/cli/stateDetector.js +191 -0
  64. package/dist/services/cli/stateDetector.js.map +1 -0
  65. package/dist/services/export/contextExportService.js +3 -3
  66. package/dist/services/export/contextExportService.js.map +1 -1
  67. package/dist/services/export/exportRulesService.d.ts +1 -0
  68. package/dist/services/export/exportRulesService.d.ts.map +1 -1
  69. package/dist/services/export/exportRulesService.js +20 -8
  70. package/dist/services/export/exportRulesService.js.map +1 -1
  71. package/dist/services/export/skillExportService.d.ts.map +1 -1
  72. package/dist/services/export/skillExportService.js +4 -1
  73. package/dist/services/export/skillExportService.js.map +1 -1
  74. package/dist/services/harness/agentsService.d.ts +31 -0
  75. package/dist/services/harness/agentsService.d.ts.map +1 -0
  76. package/dist/services/harness/agentsService.js +135 -0
  77. package/dist/services/harness/agentsService.js.map +1 -0
  78. package/dist/services/harness/contextService.d.ts +167 -0
  79. package/dist/services/harness/contextService.d.ts.map +1 -0
  80. package/dist/services/harness/contextService.js +403 -0
  81. package/dist/services/harness/contextService.js.map +1 -0
  82. package/dist/services/harness/contextTools.d.ts +95 -0
  83. package/dist/services/harness/contextTools.d.ts.map +1 -0
  84. package/dist/services/harness/contextTools.js +990 -0
  85. package/dist/services/harness/contextTools.js.map +1 -0
  86. package/dist/services/harness/datasetService.d.ts +63 -0
  87. package/dist/services/harness/datasetService.d.ts.map +1 -0
  88. package/dist/services/harness/datasetService.js +261 -0
  89. package/dist/services/harness/datasetService.js.map +1 -0
  90. package/dist/services/harness/executionService.d.ts +74 -0
  91. package/dist/services/harness/executionService.d.ts.map +1 -0
  92. package/dist/services/harness/executionService.js +213 -0
  93. package/dist/services/harness/executionService.js.map +1 -0
  94. package/dist/services/harness/index.d.ts +21 -0
  95. package/dist/services/harness/index.d.ts.map +1 -0
  96. package/dist/services/harness/index.js +52 -0
  97. package/dist/services/harness/index.js.map +1 -0
  98. package/dist/services/harness/plansService.d.ts +45 -0
  99. package/dist/services/harness/plansService.d.ts.map +1 -0
  100. package/dist/services/harness/plansService.js +251 -0
  101. package/dist/services/harness/plansService.js.map +1 -0
  102. package/dist/services/harness/policyService.d.ts +116 -0
  103. package/dist/services/harness/policyService.d.ts.map +1 -0
  104. package/dist/services/harness/policyService.js +510 -0
  105. package/dist/services/harness/policyService.js.map +1 -0
  106. package/dist/services/harness/replayService.d.ts +63 -0
  107. package/dist/services/harness/replayService.d.ts.map +1 -0
  108. package/dist/services/harness/replayService.js +242 -0
  109. package/dist/services/harness/replayService.js.map +1 -0
  110. package/dist/services/harness/runtimeStateService.d.ts +120 -0
  111. package/dist/services/harness/runtimeStateService.d.ts.map +1 -0
  112. package/dist/services/harness/runtimeStateService.js +316 -0
  113. package/dist/services/harness/runtimeStateService.js.map +1 -0
  114. package/dist/services/harness/sensorCatalogService.d.ts +50 -0
  115. package/dist/services/harness/sensorCatalogService.d.ts.map +1 -0
  116. package/dist/services/harness/sensorCatalogService.js +308 -0
  117. package/dist/services/harness/sensorCatalogService.js.map +1 -0
  118. package/dist/services/harness/sensorsService.d.ts +64 -0
  119. package/dist/services/harness/sensorsService.d.ts.map +1 -0
  120. package/dist/services/harness/sensorsService.js +88 -0
  121. package/dist/services/harness/sensorsService.js.map +1 -0
  122. package/dist/services/harness/skillsService.d.ts +31 -0
  123. package/dist/services/harness/skillsService.d.ts.map +1 -0
  124. package/dist/services/harness/skillsService.js +296 -0
  125. package/dist/services/harness/skillsService.js.map +1 -0
  126. package/dist/services/harness/taskContractsService.d.ts +88 -0
  127. package/dist/services/harness/taskContractsService.d.ts.map +1 -0
  128. package/dist/services/harness/taskContractsService.js +210 -0
  129. package/dist/services/harness/taskContractsService.js.map +1 -0
  130. package/dist/services/harness/workflowStateService.d.ts +51 -0
  131. package/dist/services/harness/workflowStateService.d.ts.map +1 -0
  132. package/dist/services/harness/workflowStateService.js +215 -0
  133. package/dist/services/harness/workflowStateService.js.map +1 -0
  134. package/dist/services/import/agentsDetector.d.ts.map +1 -1
  135. package/dist/services/import/agentsDetector.js +14 -8
  136. package/dist/services/import/agentsDetector.js.map +1 -1
  137. package/dist/services/import/importAgentsService.d.ts +2 -2
  138. package/dist/services/import/importAgentsService.d.ts.map +1 -1
  139. package/dist/services/import/importAgentsService.js +8 -1
  140. package/dist/services/import/importAgentsService.js.map +1 -1
  141. package/dist/services/import/importRulesService.d.ts +2 -2
  142. package/dist/services/import/importRulesService.d.ts.map +1 -1
  143. package/dist/services/import/importRulesService.js +8 -1
  144. package/dist/services/import/importRulesService.js.map +1 -1
  145. package/dist/services/import/presets.js +2 -2
  146. package/dist/services/import/presets.js.map +1 -1
  147. package/dist/services/import/rulesDetector.d.ts.map +1 -1
  148. package/dist/services/import/rulesDetector.js +16 -1
  149. package/dist/services/import/rulesDetector.js.map +1 -1
  150. package/dist/services/import/types.d.ts +1 -1
  151. package/dist/services/import/types.d.ts.map +1 -1
  152. package/dist/services/mcp/actionLogger.d.ts +2 -1
  153. package/dist/services/mcp/actionLogger.d.ts.map +1 -1
  154. package/dist/services/mcp/actionLogger.js +76 -15
  155. package/dist/services/mcp/actionLogger.js.map +1 -1
  156. package/dist/services/mcp/gateway/agent.d.ts.map +1 -1
  157. package/dist/services/mcp/gateway/agent.js +15 -104
  158. package/dist/services/mcp/gateway/agent.js.map +1 -1
  159. package/dist/services/mcp/gateway/context.d.ts.map +1 -1
  160. package/dist/services/mcp/gateway/context.js +60 -172
  161. package/dist/services/mcp/gateway/context.js.map +1 -1
  162. package/dist/services/mcp/gateway/explore.js +6 -6
  163. package/dist/services/mcp/gateway/explore.js.map +1 -1
  164. package/dist/services/mcp/gateway/harness.d.ts +7 -0
  165. package/dist/services/mcp/gateway/harness.d.ts.map +1 -0
  166. package/dist/services/mcp/gateway/harness.js +337 -0
  167. package/dist/services/mcp/gateway/harness.js.map +1 -0
  168. package/dist/services/mcp/gateway/index.d.ts +3 -2
  169. package/dist/services/mcp/gateway/index.d.ts.map +1 -1
  170. package/dist/services/mcp/gateway/index.js +4 -2
  171. package/dist/services/mcp/gateway/index.js.map +1 -1
  172. package/dist/services/mcp/gateway/metrics.d.ts.map +1 -1
  173. package/dist/services/mcp/gateway/metrics.js +8 -8
  174. package/dist/services/mcp/gateway/metrics.js.map +1 -1
  175. package/dist/services/mcp/gateway/plan.d.ts.map +1 -1
  176. package/dist/services/mcp/gateway/plan.js +23 -211
  177. package/dist/services/mcp/gateway/plan.js.map +1 -1
  178. package/dist/services/mcp/gateway/shared.d.ts +1 -32
  179. package/dist/services/mcp/gateway/shared.d.ts.map +1 -1
  180. package/dist/services/mcp/gateway/shared.js +4 -30
  181. package/dist/services/mcp/gateway/shared.js.map +1 -1
  182. package/dist/services/mcp/gateway/skill.d.ts.map +1 -1
  183. package/dist/services/mcp/gateway/skill.js +14 -281
  184. package/dist/services/mcp/gateway/skill.js.map +1 -1
  185. package/dist/services/mcp/gateway/types.d.ts +74 -3
  186. package/dist/services/mcp/gateway/types.d.ts.map +1 -1
  187. package/dist/services/mcp/gateway/workflowAdvance.d.ts.map +1 -1
  188. package/dist/services/mcp/gateway/workflowAdvance.js +37 -9
  189. package/dist/services/mcp/gateway/workflowAdvance.js.map +1 -1
  190. package/dist/services/mcp/gateway/workflowInit.d.ts.map +1 -1
  191. package/dist/services/mcp/gateway/workflowInit.js +8 -2
  192. package/dist/services/mcp/gateway/workflowInit.js.map +1 -1
  193. package/dist/services/mcp/gateway/workflowManage.d.ts +17 -1
  194. package/dist/services/mcp/gateway/workflowManage.d.ts.map +1 -1
  195. package/dist/services/mcp/gateway/workflowManage.js +155 -10
  196. package/dist/services/mcp/gateway/workflowManage.js.map +1 -1
  197. package/dist/services/mcp/gateway/workflowStatus.d.ts.map +1 -1
  198. package/dist/services/mcp/gateway/workflowStatus.js +5 -3
  199. package/dist/services/mcp/gateway/workflowStatus.js.map +1 -1
  200. package/dist/services/mcp/gatewayTools.d.ts +1 -1
  201. package/dist/services/mcp/gatewayTools.d.ts.map +1 -1
  202. package/dist/services/mcp/gatewayTools.js +2 -1
  203. package/dist/services/mcp/gatewayTools.js.map +1 -1
  204. package/dist/services/mcp/index.d.ts +10 -4
  205. package/dist/services/mcp/index.d.ts.map +1 -1
  206. package/dist/services/mcp/index.js +9 -3
  207. package/dist/services/mcp/index.js.map +1 -1
  208. package/dist/services/mcp/mcpInstallService.d.ts +4 -52
  209. package/dist/services/mcp/mcpInstallService.d.ts.map +1 -1
  210. package/dist/services/mcp/mcpInstallService.js +5 -596
  211. package/dist/services/mcp/mcpInstallService.js.map +1 -1
  212. package/dist/services/mcp/mcpServer.d.ts +5 -6
  213. package/dist/services/mcp/mcpServer.d.ts.map +1 -1
  214. package/dist/services/mcp/mcpServer.js +220 -28
  215. package/dist/services/mcp/mcpServer.js.map +1 -1
  216. package/dist/services/qa/patternInferer.d.ts +2 -31
  217. package/dist/services/qa/patternInferer.d.ts.map +1 -1
  218. package/dist/services/qa/patternInferer.js +4 -353
  219. package/dist/services/qa/patternInferer.js.map +1 -1
  220. package/dist/services/qa/qaService.d.ts +6 -10
  221. package/dist/services/qa/qaService.d.ts.map +1 -1
  222. package/dist/services/qa/qaService.js +17 -53
  223. package/dist/services/qa/qaService.js.map +1 -1
  224. package/dist/services/reverseSync/importSkillsService.d.ts.map +1 -1
  225. package/dist/services/reverseSync/importSkillsService.js +4 -1
  226. package/dist/services/reverseSync/importSkillsService.js.map +1 -1
  227. package/dist/services/reverseSync/reverseQuickSyncService.d.ts.map +1 -1
  228. package/dist/services/reverseSync/reverseQuickSyncService.js +10 -6
  229. package/dist/services/reverseSync/reverseQuickSyncService.js.map +1 -1
  230. package/dist/services/reverseSync/skillsDetector.js +2 -2
  231. package/dist/services/reverseSync/skillsDetector.js.map +1 -1
  232. package/dist/services/reverseSync/toolDetector.d.ts.map +1 -1
  233. package/dist/services/reverseSync/toolDetector.js +3 -0
  234. package/dist/services/reverseSync/toolDetector.js.map +1 -1
  235. package/dist/services/semantic/index.d.ts +1 -0
  236. package/dist/services/semantic/index.d.ts.map +1 -1
  237. package/dist/services/semantic/index.js +3 -1
  238. package/dist/services/semantic/index.js.map +1 -1
  239. package/dist/services/semantic/semanticSnapshotService.d.ts +86 -0
  240. package/dist/services/semantic/semanticSnapshotService.d.ts.map +1 -0
  241. package/dist/services/semantic/semanticSnapshotService.js +573 -0
  242. package/dist/services/semantic/semanticSnapshotService.js.map +1 -0
  243. package/dist/services/shared/contentTypeRegistry.d.ts.map +1 -1
  244. package/dist/services/shared/contentTypeRegistry.js +9 -0
  245. package/dist/services/shared/contentTypeRegistry.js.map +1 -1
  246. package/dist/services/shared/contextLayout.d.ts +18 -0
  247. package/dist/services/shared/contextLayout.d.ts.map +1 -0
  248. package/dist/services/shared/contextLayout.js +139 -0
  249. package/dist/services/shared/contextLayout.js.map +1 -0
  250. package/dist/services/shared/executionContext.d.ts +38 -0
  251. package/dist/services/shared/executionContext.d.ts.map +1 -0
  252. package/dist/services/shared/executionContext.js +39 -0
  253. package/dist/services/shared/executionContext.js.map +1 -0
  254. package/dist/services/shared/index.d.ts +2 -0
  255. package/dist/services/shared/index.d.ts.map +1 -1
  256. package/dist/services/shared/index.js +11 -1
  257. package/dist/services/shared/index.js.map +1 -1
  258. package/dist/services/shared/toolRegistry.d.ts +6 -0
  259. package/dist/services/shared/toolRegistry.d.ts.map +1 -1
  260. package/dist/services/shared/toolRegistry.js +34 -20
  261. package/dist/services/shared/toolRegistry.js.map +1 -1
  262. package/dist/services/stack/scaffoldFilter.d.ts +3 -3
  263. package/dist/services/state/stateDetector.d.ts +4 -49
  264. package/dist/services/state/stateDetector.d.ts.map +1 -1
  265. package/dist/services/state/stateDetector.js +9 -182
  266. package/dist/services/state/stateDetector.js.map +1 -1
  267. package/dist/services/sync/index.d.ts +1 -1
  268. package/dist/services/sync/index.d.ts.map +1 -1
  269. package/dist/services/sync/index.js.map +1 -1
  270. package/dist/services/sync/markdownReferenceHandler.d.ts.map +1 -1
  271. package/dist/services/sync/markdownReferenceHandler.js +7 -2
  272. package/dist/services/sync/markdownReferenceHandler.js.map +1 -1
  273. package/dist/services/sync/presets.d.ts.map +1 -1
  274. package/dist/services/sync/presets.js +1 -0
  275. package/dist/services/sync/presets.js.map +1 -1
  276. package/dist/services/sync/symlinkHandler.d.ts.map +1 -1
  277. package/dist/services/sync/symlinkHandler.js +7 -2
  278. package/dist/services/sync/symlinkHandler.js.map +1 -1
  279. package/dist/services/sync/syncService.d.ts +2 -2
  280. package/dist/services/sync/syncService.d.ts.map +1 -1
  281. package/dist/services/sync/syncService.js +17 -3
  282. package/dist/services/sync/syncService.js.map +1 -1
  283. package/dist/services/sync/types.d.ts +9 -1
  284. package/dist/services/sync/types.d.ts.map +1 -1
  285. package/dist/services/workflow/index.d.ts +1 -1
  286. package/dist/services/workflow/index.d.ts.map +1 -1
  287. package/dist/services/workflow/index.js +2 -1
  288. package/dist/services/workflow/index.js.map +1 -1
  289. package/dist/services/workflow/workflowService.d.ts +68 -0
  290. package/dist/services/workflow/workflowService.d.ts.map +1 -1
  291. package/dist/services/workflow/workflowService.js +416 -1
  292. package/dist/services/workflow/workflowService.js.map +1 -1
  293. package/dist/utils/gitignoreManager.d.ts +8 -0
  294. package/dist/utils/gitignoreManager.d.ts.map +1 -1
  295. package/dist/utils/gitignoreManager.js +40 -0
  296. package/dist/utils/gitignoreManager.js.map +1 -1
  297. package/dist/utils/i18n.d.ts +1 -1
  298. package/dist/utils/i18n.js +2 -2
  299. package/dist/utils/i18n.js.map +1 -1
  300. package/dist/utils/processShutdown.d.ts +20 -0
  301. package/dist/utils/processShutdown.d.ts.map +1 -0
  302. package/dist/utils/processShutdown.js +47 -0
  303. package/dist/utils/processShutdown.js.map +1 -0
  304. package/dist/utils/prompts/index.d.ts +1 -1
  305. package/dist/utils/prompts/index.d.ts.map +1 -1
  306. package/dist/utils/prompts/index.js +1 -3
  307. package/dist/utils/prompts/index.js.map +1 -1
  308. package/dist/utils/prompts/smartDefaults.d.ts +0 -9
  309. package/dist/utils/prompts/smartDefaults.d.ts.map +1 -1
  310. package/dist/utils/prompts/smartDefaults.js +0 -23
  311. package/dist/utils/prompts/smartDefaults.js.map +1 -1
  312. package/dist/utils/prompts/types.d.ts +0 -11
  313. package/dist/utils/prompts/types.d.ts.map +1 -1
  314. package/dist/workflow/index.d.ts +1 -1
  315. package/dist/workflow/index.d.ts.map +1 -1
  316. package/dist/workflow/index.js +6 -1
  317. package/dist/workflow/index.js.map +1 -1
  318. package/dist/workflow/orchestrator.d.ts.map +1 -1
  319. package/dist/workflow/orchestrator.js +3 -14
  320. package/dist/workflow/orchestrator.js.map +1 -1
  321. package/dist/workflow/plans/planLinker.d.ts +13 -0
  322. package/dist/workflow/plans/planLinker.d.ts.map +1 -1
  323. package/dist/workflow/plans/planLinker.js +77 -2
  324. package/dist/workflow/plans/planLinker.js.map +1 -1
  325. package/dist/workflow/plans/types.d.ts +6 -0
  326. package/dist/workflow/plans/types.d.ts.map +1 -1
  327. package/dist/workflow/skills/frontmatter.d.ts +9 -0
  328. package/dist/workflow/skills/frontmatter.d.ts.map +1 -1
  329. package/dist/workflow/skills/frontmatter.js +16 -0
  330. package/dist/workflow/skills/frontmatter.js.map +1 -1
  331. package/dist/workflow/skills/index.d.ts +1 -1
  332. package/dist/workflow/skills/index.d.ts.map +1 -1
  333. package/dist/workflow/skills/index.js +3 -1
  334. package/dist/workflow/skills/index.js.map +1 -1
  335. package/dist/workflow/skills/skillRegistry.d.ts.map +1 -1
  336. package/dist/workflow/skills/skillRegistry.js +4 -1
  337. package/dist/workflow/skills/skillRegistry.js.map +1 -1
  338. package/dist/workflow/skills/skillTemplates.d.ts.map +1 -1
  339. package/dist/workflow/skills/skillTemplates.js +69 -30
  340. package/dist/workflow/skills/skillTemplates.js.map +1 -1
  341. package/dist/workflow/status/statusManager.d.ts +8 -3
  342. package/dist/workflow/status/statusManager.d.ts.map +1 -1
  343. package/dist/workflow/status/statusManager.js +60 -21
  344. package/dist/workflow/status/statusManager.js.map +1 -1
  345. package/dist/workflow/types.d.ts +1 -1
  346. package/package.json +16 -7
  347. package/dist/services/ai/aiSdkClient.d.ts +0 -67
  348. package/dist/services/ai/aiSdkClient.d.ts.map +0 -1
  349. package/dist/services/ai/aiSdkClient.js +0 -143
  350. package/dist/services/ai/aiSdkClient.js.map +0 -1
  351. package/dist/services/ai/index.d.ts +0 -5
  352. package/dist/services/ai/index.d.ts.map +0 -1
  353. package/dist/services/ai/index.js +0 -40
  354. package/dist/services/ai/index.js.map +0 -1
  355. package/dist/services/ai/providerFactory.d.ts +0 -35
  356. package/dist/services/ai/providerFactory.d.ts.map +0 -1
  357. package/dist/services/ai/providerFactory.js +0 -107
  358. package/dist/services/ai/providerFactory.js.map +0 -1
  359. package/dist/services/ai/schemas.d.ts +0 -557
  360. package/dist/services/ai/schemas.d.ts.map +0 -1
  361. package/dist/services/ai/schemas.js +0 -357
  362. package/dist/services/ai/schemas.js.map +0 -1
  363. package/dist/services/ai/toolRegistry.d.ts +0 -27
  364. package/dist/services/ai/toolRegistry.d.ts.map +0 -1
  365. package/dist/services/ai/toolRegistry.js +0 -151
  366. package/dist/services/ai/toolRegistry.js.map +0 -1
  367. package/dist/services/ai/tools/analyzeSymbolsTool.d.ts +0 -33
  368. package/dist/services/ai/tools/analyzeSymbolsTool.d.ts.map +0 -1
  369. package/dist/services/ai/tools/analyzeSymbolsTool.js +0 -57
  370. package/dist/services/ai/tools/analyzeSymbolsTool.js.map +0 -1
  371. package/dist/services/ai/tools/checkScaffoldingTool.d.ts +0 -18
  372. package/dist/services/ai/tools/checkScaffoldingTool.d.ts.map +0 -1
  373. package/dist/services/ai/tools/checkScaffoldingTool.js +0 -89
  374. package/dist/services/ai/tools/checkScaffoldingTool.js.map +0 -1
  375. package/dist/services/ai/tools/fillScaffoldingTool.d.ts +0 -124
  376. package/dist/services/ai/tools/fillScaffoldingTool.d.ts.map +0 -1
  377. package/dist/services/ai/tools/fillScaffoldingTool.js +0 -397
  378. package/dist/services/ai/tools/fillScaffoldingTool.js.map +0 -1
  379. package/dist/services/ai/tools/getCodebaseMapTool.d.ts +0 -17
  380. package/dist/services/ai/tools/getCodebaseMapTool.d.ts.map +0 -1
  381. package/dist/services/ai/tools/getCodebaseMapTool.js +0 -122
  382. package/dist/services/ai/tools/getCodebaseMapTool.js.map +0 -1
  383. package/dist/services/ai/tools/getFileStructureTool.d.ts +0 -29
  384. package/dist/services/ai/tools/getFileStructureTool.d.ts.map +0 -1
  385. package/dist/services/ai/tools/getFileStructureTool.js +0 -48
  386. package/dist/services/ai/tools/getFileStructureTool.js.map +0 -1
  387. package/dist/services/ai/tools/index.d.ts +0 -21
  388. package/dist/services/ai/tools/index.d.ts.map +0 -1
  389. package/dist/services/ai/tools/index.js +0 -75
  390. package/dist/services/ai/tools/index.js.map +0 -1
  391. package/dist/services/ai/tools/initializeContextTool.d.ts +0 -135
  392. package/dist/services/ai/tools/initializeContextTool.d.ts.map +0 -1
  393. package/dist/services/ai/tools/initializeContextTool.js +0 -447
  394. package/dist/services/ai/tools/initializeContextTool.js.map +0 -1
  395. package/dist/services/ai/tools/listFilesTool.d.ts +0 -18
  396. package/dist/services/ai/tools/listFilesTool.d.ts.map +0 -1
  397. package/dist/services/ai/tools/listFilesTool.js +0 -34
  398. package/dist/services/ai/tools/listFilesTool.js.map +0 -1
  399. package/dist/services/ai/tools/readFileTool.d.ts +0 -17
  400. package/dist/services/ai/tools/readFileTool.d.ts.map +0 -1
  401. package/dist/services/ai/tools/readFileTool.js +0 -63
  402. package/dist/services/ai/tools/readFileTool.js.map +0 -1
  403. package/dist/services/ai/tools/scaffoldPlanTool.d.ts +0 -41
  404. package/dist/services/ai/tools/scaffoldPlanTool.d.ts.map +0 -1
  405. package/dist/services/ai/tools/scaffoldPlanTool.js +0 -183
  406. package/dist/services/ai/tools/scaffoldPlanTool.js.map +0 -1
  407. package/dist/services/ai/tools/searchCodeTool.d.ts +0 -25
  408. package/dist/services/ai/tools/searchCodeTool.d.ts.map +0 -1
  409. package/dist/services/ai/tools/searchCodeTool.js +0 -96
  410. package/dist/services/ai/tools/searchCodeTool.js.map +0 -1
  411. package/dist/services/baseLLMClient.d.ts +0 -12
  412. package/dist/services/baseLLMClient.d.ts.map +0 -1
  413. package/dist/services/baseLLMClient.js +0 -80
  414. package/dist/services/baseLLMClient.js.map +0 -1
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HarnessExecutionService = void 0;
4
+ const runtimeStateService_1 = require("./runtimeStateService");
5
+ const sensorsService_1 = require("./sensorsService");
6
+ const taskContractsService_1 = require("./taskContractsService");
7
+ const policyService_1 = require("./policyService");
8
+ const replayService_1 = require("./replayService");
9
+ const datasetService_1 = require("./datasetService");
10
+ class HarnessExecutionService {
11
+ constructor(options) {
12
+ this.options = options;
13
+ this.state = new runtimeStateService_1.HarnessRuntimeStateService({ repoPath: options.repoPath });
14
+ this.sensors = new sensorsService_1.HarnessSensorsService({ stateService: this.state });
15
+ this.contracts = new taskContractsService_1.HarnessTaskContractsService({
16
+ repoPath: options.repoPath,
17
+ stateService: this.state,
18
+ });
19
+ this.policy = new policyService_1.HarnessPolicyService({ repoPath: options.repoPath });
20
+ this.replay = new replayService_1.HarnessReplayService({
21
+ repoPath: options.repoPath,
22
+ dependencies: {
23
+ stateService: this.state,
24
+ sensorsService: this.sensors,
25
+ contractsService: this.contracts,
26
+ },
27
+ });
28
+ this.datasets = new datasetService_1.HarnessDatasetService({
29
+ repoPath: options.repoPath,
30
+ dependencies: {
31
+ stateService: this.state,
32
+ replayService: this.replay,
33
+ taskContractsService: this.contracts,
34
+ },
35
+ });
36
+ }
37
+ createSession(input) {
38
+ return this.state.createSession(input);
39
+ }
40
+ listSessions() {
41
+ return this.state.listSessions();
42
+ }
43
+ getSession(sessionId) {
44
+ return this.state.getSession(sessionId);
45
+ }
46
+ appendTrace(sessionId, input) {
47
+ return this.state.appendTrace(sessionId, input);
48
+ }
49
+ listTraces(sessionId) {
50
+ return this.state.listTraces(sessionId);
51
+ }
52
+ async addArtifact(sessionId, input) {
53
+ await this.policy.authorize({
54
+ tool: 'harness',
55
+ action: 'addArtifact',
56
+ paths: input.path ? [input.path] : undefined,
57
+ risk: 'medium',
58
+ metadata: input.metadata,
59
+ });
60
+ return this.state.addArtifact(sessionId, input);
61
+ }
62
+ listArtifacts(sessionId) {
63
+ return this.state.listArtifacts(sessionId);
64
+ }
65
+ async checkpointSession(sessionId, input = {}) {
66
+ await this.policy.authorize({
67
+ tool: 'harness',
68
+ action: 'checkpoint',
69
+ risk: input.pause ? 'high' : 'low',
70
+ metadata: { note: input.note },
71
+ });
72
+ return this.state.checkpointSession(sessionId, input);
73
+ }
74
+ resumeSession(sessionId) {
75
+ return this.state.resumeSession(sessionId);
76
+ }
77
+ async completeSession(sessionId, note) {
78
+ await this.policy.authorize({
79
+ tool: 'harness',
80
+ action: 'completeSession',
81
+ risk: 'high',
82
+ metadata: note ? { note } : undefined,
83
+ });
84
+ return this.state.completeSession(sessionId, note);
85
+ }
86
+ async failSession(sessionId, message) {
87
+ await this.policy.authorize({
88
+ tool: 'harness',
89
+ action: 'failSession',
90
+ risk: 'high',
91
+ metadata: { message },
92
+ });
93
+ return this.state.failSession(sessionId, message);
94
+ }
95
+ async runSensor(definition, input) {
96
+ await this.policy.authorize({
97
+ tool: 'harness',
98
+ action: 'runSensor',
99
+ risk: definition.blocking ? 'high' : definition.severity === 'critical' ? 'high' : 'medium',
100
+ metadata: {
101
+ sensorId: definition.id,
102
+ sensorName: definition.name,
103
+ sessionId: input.sessionId,
104
+ contractId: input.contractId,
105
+ ...(input.metadata ?? {}),
106
+ },
107
+ });
108
+ this.sensors.registerSensor(definition);
109
+ return this.sensors.runSensor(definition.id, input);
110
+ }
111
+ getSessionSensorRuns(sessionId) {
112
+ return this.sensors.getSessionSensorRuns(sessionId);
113
+ }
114
+ async createTaskContract(input) {
115
+ await this.policy.authorize({
116
+ tool: 'harness',
117
+ action: 'createTask',
118
+ risk: 'medium',
119
+ metadata: { title: input.title },
120
+ });
121
+ return this.contracts.createTaskContract(input);
122
+ }
123
+ listTaskContracts() {
124
+ return this.contracts.listTaskContracts();
125
+ }
126
+ evaluateTaskCompletion(taskId, sessionId) {
127
+ return this.contracts.evaluateTaskCompletion(taskId, sessionId);
128
+ }
129
+ async createHandoffContract(input) {
130
+ await this.policy.authorize({
131
+ tool: 'harness',
132
+ action: 'createHandoff',
133
+ risk: 'medium',
134
+ metadata: { from: input.from, to: input.to },
135
+ });
136
+ return this.contracts.createHandoffContract(input);
137
+ }
138
+ listHandoffContracts() {
139
+ return this.contracts.listHandoffContracts();
140
+ }
141
+ listPolicies() {
142
+ return this.policy.listRules();
143
+ }
144
+ registerPolicy(input) {
145
+ const target = input.target
146
+ ?? (input.pathPattern ? 'path' : input.scope === 'risk' ? 'risk' : 'action');
147
+ const pattern = input.pattern ?? input.pathPattern ?? input.scope ?? input.description ?? input.reason ?? 'harness';
148
+ return this.policy.registerRule({
149
+ id: input.id ?? `policy-${Date.now()}`,
150
+ effect: input.effect,
151
+ target,
152
+ pattern,
153
+ approvalRole: input.approvalRole,
154
+ reason: input.reason ?? input.description,
155
+ });
156
+ }
157
+ getPolicy() {
158
+ return this.policy.loadPolicy();
159
+ }
160
+ setPolicy(input) {
161
+ const policy = {
162
+ version: 1,
163
+ defaultEffect: input.defaultEffect ?? 'allow',
164
+ rules: input.rules ?? [],
165
+ };
166
+ return this.policy.setPolicy(policy);
167
+ }
168
+ async resetPolicy() {
169
+ return this.policy.setPolicy(await this.policy.createBootstrapPolicy());
170
+ }
171
+ evaluatePolicy(input) {
172
+ return this.policy.evaluate(input);
173
+ }
174
+ replaySession(sessionId) {
175
+ return this.replay.replaySession(sessionId);
176
+ }
177
+ listReplays(sessionId) {
178
+ return this.replay.listReplays(sessionId ? { sessionId } : undefined);
179
+ }
180
+ exportFailureDataset(sessionIds) {
181
+ return this.datasets.buildFailureDataset({
182
+ sessionIds,
183
+ includeSuccessfulSessions: true,
184
+ });
185
+ }
186
+ listDatasets() {
187
+ return this.datasets.listDatasets();
188
+ }
189
+ getDataset(datasetId) {
190
+ return this.datasets.getDataset(datasetId);
191
+ }
192
+ getFailureClusters(datasetId) {
193
+ return this.datasets.getFailureClusters(datasetId);
194
+ }
195
+ async getSessionQuality(sessionId, options = {}) {
196
+ const [session, sensorRuns, taskEvaluation] = await Promise.all([
197
+ this.state.getSession(sessionId),
198
+ this.sensors.getSessionSensorRuns(sessionId),
199
+ options.taskId
200
+ ? this.contracts.evaluateTaskCompletion(options.taskId, sessionId)
201
+ : Promise.resolve(null),
202
+ ]);
203
+ const backpressure = this.sensors.evaluateBackpressure(sensorRuns, options.policy);
204
+ return {
205
+ session,
206
+ sensorRuns,
207
+ backpressure,
208
+ taskEvaluation,
209
+ };
210
+ }
211
+ }
212
+ exports.HarnessExecutionService = HarnessExecutionService;
213
+ //# sourceMappingURL=executionService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executionService.js","sourceRoot":"","sources":["../../../src/services/harness/executionService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Harness service exports.
3
+ *
4
+ * These services hold transport-agnostic harness logic that can be consumed
5
+ * by MCP, CLI, or future adapters.
6
+ */
7
+ export { HarnessAgentsService, type HarnessAgentsServiceOptions } from './agentsService';
8
+ export { HarnessPlansService, type HarnessPlansServiceOptions } from './plansService';
9
+ export { HarnessContextService, type HarnessContextServiceOptions, type HarnessContextInitResult, type HarnessContextPlanScaffoldResult, type HarnessBootstrapStatusResult, } from './contextService';
10
+ export { readFileTool, listFilesTool, analyzeSymbolsTool, getFileStructureTool, searchCodeTool, checkScaffoldingTool, initializeContextTool, scaffoldPlanTool, fillScaffoldingTool, listFilesToFillTool, fillSingleFileTool, getCodebaseMapTool, getOrBuildContext, cleanupSharedContext, type ToolName, } from './contextTools';
11
+ export { HarnessSkillsService, type HarnessSkillsServiceOptions } from './skillsService';
12
+ export { HarnessRuntimeStateService, type HarnessRuntimeStateServiceOptions, type HarnessSessionStatus, type HarnessTraceLevel, type HarnessArtifactKind, type HarnessSessionRecord, type HarnessSessionCheckpoint, type HarnessTraceRecord, type HarnessArtifactRecord, type HarnessRuntimeStatePort, type CreateSessionInput, type AppendTraceInput, type AddArtifactInput, type CheckpointInput, } from './runtimeStateService';
13
+ export { HarnessSensorsService, type HarnessSensorsServiceOptions, type HarnessSensorSeverity, type HarnessSensorStatus, type HarnessSensorExecutionInput, type HarnessSensorExecutionResult, type HarnessSensorDefinition, type HarnessSensorRun, type HarnessBackpressurePolicy, type HarnessBackpressureResult, } from './sensorsService';
14
+ export { HarnessSensorCatalogService, type HarnessSensorCatalogServiceOptions, type HarnessShellSensorConfig, type HarnessSensorCatalogDocument, type HarnessSensorCatalogSeverity, } from './sensorCatalogService';
15
+ export { HarnessTaskContractsService, type HarnessTaskContractsServiceOptions, type HarnessTaskContractStatus, type HarnessTaskContract, type HarnessHandoffContract, type HarnessTaskCompletionResult, } from './taskContractsService';
16
+ export { HarnessExecutionService, type HarnessExecutionServiceOptions, type HarnessSessionQualitySnapshot, } from './executionService';
17
+ export { HarnessReplayService, type HarnessReplayServiceOptions, type HarnessReplayDependencies, type HarnessReplayEvent, type HarnessReplayEventSource, type HarnessReplayRecord, type ReplaySessionOptions, } from './replayService';
18
+ export { HarnessDatasetService, type HarnessDatasetServiceOptions, type HarnessDatasetDependencies, type BuildHarnessDatasetOptions, type HarnessFailureKind, type HarnessFailureRecord, type HarnessFailureCluster, type HarnessFailureDataset, } from './datasetService';
19
+ export { HarnessPolicyService, HarnessPolicyBlockedError, type HarnessPolicyServiceOptions, type HarnessPolicyTarget, type HarnessPolicyScope, type HarnessPolicyEffect, type HarnessPolicyRisk, type HarnessPolicyRule, type CreateHarnessPolicyRuleInput, type HarnessPolicyEvaluationInput, type HarnessPolicyEvaluationResult, } from './policyService';
20
+ export { HarnessWorkflowStateService, type HarnessWorkflowStateServiceOptions, type HarnessWorkflowRecord, type WorkflowHarnessBinding, } from './workflowStateService';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/harness/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ /**
3
+ * Harness service exports.
4
+ *
5
+ * These services hold transport-agnostic harness logic that can be consumed
6
+ * by MCP, CLI, or future adapters.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.HarnessWorkflowStateService = exports.HarnessPolicyBlockedError = exports.HarnessPolicyService = exports.HarnessDatasetService = exports.HarnessReplayService = exports.HarnessExecutionService = exports.HarnessTaskContractsService = exports.HarnessSensorCatalogService = exports.HarnessSensorsService = exports.HarnessRuntimeStateService = exports.HarnessSkillsService = exports.cleanupSharedContext = exports.getOrBuildContext = exports.getCodebaseMapTool = exports.fillSingleFileTool = exports.listFilesToFillTool = exports.fillScaffoldingTool = exports.scaffoldPlanTool = exports.initializeContextTool = exports.checkScaffoldingTool = exports.searchCodeTool = exports.getFileStructureTool = exports.analyzeSymbolsTool = exports.listFilesTool = exports.readFileTool = exports.HarnessContextService = exports.HarnessPlansService = exports.HarnessAgentsService = void 0;
10
+ var agentsService_1 = require("./agentsService");
11
+ Object.defineProperty(exports, "HarnessAgentsService", { enumerable: true, get: function () { return agentsService_1.HarnessAgentsService; } });
12
+ var plansService_1 = require("./plansService");
13
+ Object.defineProperty(exports, "HarnessPlansService", { enumerable: true, get: function () { return plansService_1.HarnessPlansService; } });
14
+ var contextService_1 = require("./contextService");
15
+ Object.defineProperty(exports, "HarnessContextService", { enumerable: true, get: function () { return contextService_1.HarnessContextService; } });
16
+ var contextTools_1 = require("./contextTools");
17
+ Object.defineProperty(exports, "readFileTool", { enumerable: true, get: function () { return contextTools_1.readFileTool; } });
18
+ Object.defineProperty(exports, "listFilesTool", { enumerable: true, get: function () { return contextTools_1.listFilesTool; } });
19
+ Object.defineProperty(exports, "analyzeSymbolsTool", { enumerable: true, get: function () { return contextTools_1.analyzeSymbolsTool; } });
20
+ Object.defineProperty(exports, "getFileStructureTool", { enumerable: true, get: function () { return contextTools_1.getFileStructureTool; } });
21
+ Object.defineProperty(exports, "searchCodeTool", { enumerable: true, get: function () { return contextTools_1.searchCodeTool; } });
22
+ Object.defineProperty(exports, "checkScaffoldingTool", { enumerable: true, get: function () { return contextTools_1.checkScaffoldingTool; } });
23
+ Object.defineProperty(exports, "initializeContextTool", { enumerable: true, get: function () { return contextTools_1.initializeContextTool; } });
24
+ Object.defineProperty(exports, "scaffoldPlanTool", { enumerable: true, get: function () { return contextTools_1.scaffoldPlanTool; } });
25
+ Object.defineProperty(exports, "fillScaffoldingTool", { enumerable: true, get: function () { return contextTools_1.fillScaffoldingTool; } });
26
+ Object.defineProperty(exports, "listFilesToFillTool", { enumerable: true, get: function () { return contextTools_1.listFilesToFillTool; } });
27
+ Object.defineProperty(exports, "fillSingleFileTool", { enumerable: true, get: function () { return contextTools_1.fillSingleFileTool; } });
28
+ Object.defineProperty(exports, "getCodebaseMapTool", { enumerable: true, get: function () { return contextTools_1.getCodebaseMapTool; } });
29
+ Object.defineProperty(exports, "getOrBuildContext", { enumerable: true, get: function () { return contextTools_1.getOrBuildContext; } });
30
+ Object.defineProperty(exports, "cleanupSharedContext", { enumerable: true, get: function () { return contextTools_1.cleanupSharedContext; } });
31
+ var skillsService_1 = require("./skillsService");
32
+ Object.defineProperty(exports, "HarnessSkillsService", { enumerable: true, get: function () { return skillsService_1.HarnessSkillsService; } });
33
+ var runtimeStateService_1 = require("./runtimeStateService");
34
+ Object.defineProperty(exports, "HarnessRuntimeStateService", { enumerable: true, get: function () { return runtimeStateService_1.HarnessRuntimeStateService; } });
35
+ var sensorsService_1 = require("./sensorsService");
36
+ Object.defineProperty(exports, "HarnessSensorsService", { enumerable: true, get: function () { return sensorsService_1.HarnessSensorsService; } });
37
+ var sensorCatalogService_1 = require("./sensorCatalogService");
38
+ Object.defineProperty(exports, "HarnessSensorCatalogService", { enumerable: true, get: function () { return sensorCatalogService_1.HarnessSensorCatalogService; } });
39
+ var taskContractsService_1 = require("./taskContractsService");
40
+ Object.defineProperty(exports, "HarnessTaskContractsService", { enumerable: true, get: function () { return taskContractsService_1.HarnessTaskContractsService; } });
41
+ var executionService_1 = require("./executionService");
42
+ Object.defineProperty(exports, "HarnessExecutionService", { enumerable: true, get: function () { return executionService_1.HarnessExecutionService; } });
43
+ var replayService_1 = require("./replayService");
44
+ Object.defineProperty(exports, "HarnessReplayService", { enumerable: true, get: function () { return replayService_1.HarnessReplayService; } });
45
+ var datasetService_1 = require("./datasetService");
46
+ Object.defineProperty(exports, "HarnessDatasetService", { enumerable: true, get: function () { return datasetService_1.HarnessDatasetService; } });
47
+ var policyService_1 = require("./policyService");
48
+ Object.defineProperty(exports, "HarnessPolicyService", { enumerable: true, get: function () { return policyService_1.HarnessPolicyService; } });
49
+ Object.defineProperty(exports, "HarnessPolicyBlockedError", { enumerable: true, get: function () { return policyService_1.HarnessPolicyBlockedError; } });
50
+ var workflowStateService_1 = require("./workflowStateService");
51
+ Object.defineProperty(exports, "HarnessWorkflowStateService", { enumerable: true, get: function () { return workflowStateService_1.HarnessWorkflowStateService; } });
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/harness/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,iDAAyF;AAAhF,qHAAA,oBAAoB,OAAA;AAC7B,+CAAsF;AAA7E,mHAAA,mBAAmB,OAAA;AAC5B,mDAM0B;AALxB,uHAAA,qBAAqB,OAAA;AAMvB,+CAgBwB;AAftB,4GAAA,YAAY,OAAA;AACZ,6GAAA,aAAa,OAAA;AACb,kHAAA,kBAAkB,OAAA;AAClB,oHAAA,oBAAoB,OAAA;AACpB,8GAAA,cAAc,OAAA;AACd,oHAAA,oBAAoB,OAAA;AACpB,qHAAA,qBAAqB,OAAA;AACrB,gHAAA,gBAAgB,OAAA;AAChB,mHAAA,mBAAmB,OAAA;AACnB,mHAAA,mBAAmB,OAAA;AACnB,kHAAA,kBAAkB,OAAA;AAClB,kHAAA,kBAAkB,OAAA;AAClB,iHAAA,iBAAiB,OAAA;AACjB,oHAAA,oBAAoB,OAAA;AAGtB,iDAAyF;AAAhF,qHAAA,oBAAoB,OAAA;AAC7B,6DAe+B;AAd7B,iIAAA,0BAA0B,OAAA;AAe5B,mDAW0B;AAVxB,uHAAA,qBAAqB,OAAA;AAWvB,+DAMgC;AAL9B,mIAAA,2BAA2B,OAAA;AAM7B,+DAOgC;AAN9B,mIAAA,2BAA2B,OAAA;AAO7B,uDAI4B;AAH1B,2HAAA,uBAAuB,OAAA;AAIzB,iDAQyB;AAPvB,qHAAA,oBAAoB,OAAA;AAQtB,mDAS0B;AARxB,uHAAA,qBAAqB,OAAA;AASvB,iDAYyB;AAXvB,qHAAA,oBAAoB,OAAA;AACpB,0HAAA,yBAAyB,OAAA;AAW3B,+DAKgC;AAJ9B,mIAAA,2BAA2B,OAAA"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Harness Plans Service
3
+ *
4
+ * Transport-agnostic plan management and execution tracking logic.
5
+ */
6
+ import { type PrevcPhase } from '../../workflow';
7
+ export interface HarnessPlansServiceOptions {
8
+ repoPath: string;
9
+ }
10
+ export declare class HarnessPlansService {
11
+ private readonly options;
12
+ private readonly linker;
13
+ constructor(options: HarnessPlansServiceOptions);
14
+ private get repoPath();
15
+ link(planSlug: string): Promise<Record<string, unknown>>;
16
+ getLinked(): Promise<Record<string, unknown>>;
17
+ getDetails(planSlug: string): Promise<Record<string, unknown>>;
18
+ getForPhase(phase: PrevcPhase): Promise<Record<string, unknown>>;
19
+ updatePhase(planSlug: string, phaseId: string, status: 'pending' | 'in_progress' | 'completed' | 'skipped'): Promise<Record<string, unknown>>;
20
+ recordDecision(params: {
21
+ planSlug: string;
22
+ title: string;
23
+ description: string;
24
+ phase?: PrevcPhase;
25
+ alternatives?: string[];
26
+ }): Promise<Record<string, unknown>>;
27
+ updateStep(params: {
28
+ planSlug: string;
29
+ phaseId: string;
30
+ stepIndex: number;
31
+ status: 'pending' | 'in_progress' | 'completed' | 'skipped';
32
+ output?: string;
33
+ notes?: string;
34
+ }): Promise<Record<string, unknown>>;
35
+ getStatus(planSlug: string): Promise<Record<string, unknown>>;
36
+ syncMarkdown(planSlug: string): Promise<Record<string, unknown>>;
37
+ commitPhase(params: {
38
+ planSlug: string;
39
+ phaseId: string;
40
+ coAuthor?: string;
41
+ stagePatterns?: string[];
42
+ dryRun?: boolean;
43
+ }): Promise<Record<string, unknown>>;
44
+ }
45
+ //# sourceMappingURL=plansService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plansService.d.ts","sourceRoot":"","sources":["../../../src/services/harness/plansService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,mBAAmB;IAGlB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAEK,OAAO,EAAE,0BAA0B;IAMhE,OAAO,KAAK,QAAQ,GAEnB;IAEK,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAiExD,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAK7C,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAsB9D,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAkBhE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAK7I,cAAc,CAAC,MAAM,EAAE;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAY9B,UAAU,CAAC,MAAM,EAAE;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;QAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAkB9B,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAa7D,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAUhE,WAAW,CAAC,MAAM,EAAE;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CA8DrC"}
@@ -0,0 +1,251 @@
1
+ "use strict";
2
+ /**
3
+ * Harness Plans Service
4
+ *
5
+ * Transport-agnostic plan management and execution tracking logic.
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.HarnessPlansService = void 0;
42
+ const path = __importStar(require("path"));
43
+ const workflow_1 = require("../workflow");
44
+ const workflow_2 = require("../../workflow");
45
+ const gitService_1 = require("../../utils/gitService");
46
+ class HarnessPlansService {
47
+ constructor(options) {
48
+ this.options = options;
49
+ const contextPath = path.join(this.repoPath, '.context');
50
+ const statusManager = new workflow_2.PrevcStatusManager(contextPath);
51
+ this.linker = (0, workflow_2.createPlanLinker)(this.repoPath, statusManager, true);
52
+ }
53
+ get repoPath() {
54
+ return this.options.repoPath;
55
+ }
56
+ async link(planSlug) {
57
+ const ref = await this.linker.linkPlan(planSlug);
58
+ if (!ref) {
59
+ return {
60
+ success: false,
61
+ error: `Plan not found: ${planSlug}`,
62
+ };
63
+ }
64
+ const service = new workflow_1.WorkflowService(this.repoPath);
65
+ const workflowActive = await service.hasWorkflow();
66
+ if (workflowActive) {
67
+ await service.markPlanCreated(planSlug);
68
+ }
69
+ let canAdvanceToReview = false;
70
+ if (workflowActive) {
71
+ const gateResult = await service.checkGates();
72
+ canAdvanceToReview = gateResult.gates.plan_required.passed;
73
+ }
74
+ const workflowStatePath = path.join(this.repoPath, '.context', 'harness', 'workflows', 'prevc.json');
75
+ const enhancementPrompt = workflowActive
76
+ ? `PLAN LINKED TO ACTIVE WORKFLOW
77
+
78
+ The linked plan is now attached to the harness-backed PREVC workflow.
79
+
80
+ Next:
81
+ 1. Use workflow-status() to confirm the active phase and harness binding
82
+ 2. Continue planning work
83
+ 3. Use workflow-advance() when the planning phase is complete`
84
+ : `PLAN LINKED - WORKFLOW NOT STARTED
85
+
86
+ The plan reference was created, but no PREVC workflow is active yet.
87
+ Until workflow-init runs, the harness does not have canonical workflow state and plan gates are not armed.
88
+
89
+ Next:
90
+ 1. Call workflow-init({ name: "${planSlug}" }) to create the harness-backed PREVC workflow
91
+ 2. Call plan({ action: "link", planSlug: "${planSlug}" }) again after workflow-init
92
+ 3. Use workflow-status() to verify the plan is bound to the harness workflow`;
93
+ const nextSteps = workflowActive
94
+ ? [
95
+ 'RECOMMENDED: Call workflow-status() to confirm the linked plan and harness binding',
96
+ 'THEN: Continue planning and call workflow-advance() when ready to leave phase P',
97
+ ]
98
+ : [
99
+ `REQUIRED: Call workflow-init({ name: "${planSlug}" }) to start the harness-backed PREVC workflow`,
100
+ `REQUIRED: Call plan({ action: "link", planSlug: "${planSlug}" }) again after workflow-init so gates see the plan`,
101
+ 'THEN: Call workflow-status() to confirm the workflow and harness binding are active',
102
+ ];
103
+ return {
104
+ success: true,
105
+ plan: ref,
106
+ workflowActive,
107
+ workflowStatePath,
108
+ planCreatedForGates: workflowActive,
109
+ canAdvanceToReview,
110
+ enhancementPrompt,
111
+ nextSteps,
112
+ };
113
+ }
114
+ async getLinked() {
115
+ const plans = await this.linker.getLinkedPlans();
116
+ return { success: true, plans };
117
+ }
118
+ async getDetails(planSlug) {
119
+ const plan = await this.linker.getLinkedPlan(planSlug);
120
+ if (!plan) {
121
+ return {
122
+ success: false,
123
+ error: `Plan not found or not linked: ${planSlug}`,
124
+ };
125
+ }
126
+ return {
127
+ success: true,
128
+ plan: {
129
+ ...plan,
130
+ phasesWithPrevc: plan.phases.map(p => ({
131
+ ...p,
132
+ prevcPhaseName: workflow_2.PHASE_NAMES_EN[p.prevcPhase],
133
+ })),
134
+ },
135
+ };
136
+ }
137
+ async getForPhase(phase) {
138
+ const plans = await this.linker.getPlansForPhase(phase);
139
+ return {
140
+ success: true,
141
+ phase,
142
+ phaseName: workflow_2.PHASE_NAMES_EN[phase],
143
+ plans: plans.map(p => ({
144
+ slug: p.ref.slug,
145
+ title: p.ref.title,
146
+ phasesInThisPrevc: p.phases
147
+ .filter(ph => ph.prevcPhase === phase)
148
+ .map(ph => ({ id: ph.id, name: ph.name, status: ph.status })),
149
+ hasPendingWork: this.linker.hasPendingWorkForPhase(p, phase),
150
+ })),
151
+ };
152
+ }
153
+ async updatePhase(planSlug, phaseId, status) {
154
+ const success = await this.linker.updatePlanPhase(planSlug, phaseId, status);
155
+ return { success, planSlug, phaseId, status };
156
+ }
157
+ async recordDecision(params) {
158
+ const decision = await this.linker.recordDecision(params.planSlug, {
159
+ title: params.title,
160
+ description: params.description,
161
+ phase: params.phase,
162
+ alternatives: params.alternatives,
163
+ status: 'accepted',
164
+ });
165
+ return { success: true, decision };
166
+ }
167
+ async updateStep(params) {
168
+ const success = await this.linker.updatePlanStep(params.planSlug, params.phaseId, params.stepIndex, params.status, { output: params.output, notes: params.notes });
169
+ return {
170
+ success,
171
+ planSlug: params.planSlug,
172
+ phaseId: params.phaseId,
173
+ stepIndex: params.stepIndex,
174
+ status: params.status,
175
+ };
176
+ }
177
+ async getStatus(planSlug) {
178
+ const status = await this.linker.getPlanExecutionStatus(planSlug);
179
+ if (!status) {
180
+ return {
181
+ success: false,
182
+ error: 'Plan tracking not found. The plan may not have any execution data yet.',
183
+ };
184
+ }
185
+ return { success: true, ...status };
186
+ }
187
+ async syncMarkdown(planSlug) {
188
+ const success = await this.linker.syncPlanMarkdown(planSlug);
189
+ return {
190
+ success,
191
+ planSlug,
192
+ message: success ? 'Plan markdown synced successfully' : 'Failed to sync - plan or tracking not found',
193
+ };
194
+ }
195
+ async commitPhase(params) {
196
+ const plan = await this.linker.getLinkedPlan(params.planSlug);
197
+ if (!plan) {
198
+ return { success: false, error: `Plan not found: ${params.planSlug}` };
199
+ }
200
+ const phase = plan.phases.find(p => p.id === params.phaseId);
201
+ if (!phase) {
202
+ return { success: false, error: `Phase not found: ${params.phaseId}` };
203
+ }
204
+ const commitMessage = phase.commitCheckpoint ||
205
+ `chore(plan): complete ${phase.name} for ${params.planSlug}`;
206
+ const stagePatterns = params.stagePatterns || ['.context/**'];
207
+ const gitService = new gitService_1.GitService(this.repoPath);
208
+ if (!gitService.isGitRepository()) {
209
+ return { success: false, error: 'Not a git repository' };
210
+ }
211
+ if (params.dryRun) {
212
+ const stagedFiles = gitService.stageFiles(stagePatterns);
213
+ return {
214
+ success: true,
215
+ dryRun: true,
216
+ planSlug: params.planSlug,
217
+ phaseId: params.phaseId,
218
+ commitMessage,
219
+ coAuthor: params.coAuthor,
220
+ filesWouldBeCommitted: stagedFiles,
221
+ };
222
+ }
223
+ const stagedFiles = gitService.stageFiles(stagePatterns);
224
+ if (stagedFiles.length === 0) {
225
+ return {
226
+ success: false,
227
+ error: 'Nothing to commit: no files match the stage patterns or all files are already committed',
228
+ };
229
+ }
230
+ const commitResult = gitService.commit(commitMessage, params.coAuthor);
231
+ await this.linker.recordPhaseCommit(params.planSlug, params.phaseId, {
232
+ hash: commitResult.hash,
233
+ shortHash: commitResult.shortHash,
234
+ committedBy: params.coAuthor,
235
+ });
236
+ return {
237
+ success: true,
238
+ planSlug: params.planSlug,
239
+ phaseId: params.phaseId,
240
+ commit: {
241
+ hash: commitResult.hash,
242
+ shortHash: commitResult.shortHash,
243
+ message: commitMessage,
244
+ filesCommitted: commitResult.filesCommitted,
245
+ coAuthor: params.coAuthor,
246
+ },
247
+ };
248
+ }
249
+ }
250
+ exports.HarnessPlansService = HarnessPlansService;
251
+ //# sourceMappingURL=plansService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plansService.js","sourceRoot":"","sources":["../../../src/services/harness/plansService.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,2CAA6B;AAC7B,0CAA8C;AAC9C,6CAKwB;AACxB,uDAAoD;AAMpD,MAAa,mBAAmB;IAG9B,YAA6B,OAAmC;QAAnC,YAAO,GAAP,OAAO,CAA4B;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACzD,MAAM,aAAa,GAAG,IAAI,6BAAkB,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,GAAG,IAAA,2BAAgB,EAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB;QACzB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEjD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,mBAAmB,QAAQ,EAAE;aACrC,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,0BAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;QACnD,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;YAC9C,kBAAkB,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;QAC7D,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QACrG,MAAM,iBAAiB,GAAG,cAAc;YACtC,CAAC,CAAC;;;;;;;8DAOsD;YACxD,CAAC,CAAC;;;;;;iCAMyB,QAAQ;4CACG,QAAQ;6EACyB,CAAC;QAE1E,MAAM,SAAS,GAAG,cAAc;YAC9B,CAAC,CAAC;gBACE,oFAAoF;gBACpF,iFAAiF;aAClF;YACH,CAAC,CAAC;gBACE,yCAAyC,QAAQ,iDAAiD;gBAClG,oDAAoD,QAAQ,sDAAsD;gBAClH,qFAAqF;aACtF,CAAC;QAEN,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,GAAG;YACT,cAAc;YACd,iBAAiB;YACjB,mBAAmB,EAAE,cAAc;YACnC,kBAAkB;YAClB,iBAAiB;YACjB,SAAS;SACV,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACjD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEvD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,iCAAiC,QAAQ,EAAE;aACnD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,GAAG,IAAI;gBACP,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACrC,GAAG,CAAC;oBACJ,cAAc,EAAE,yBAAc,CAAC,CAAC,CAAC,UAAU,CAAC;iBAC7C,CAAC,CAAC;aACJ;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAiB;QACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAExD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK;YACL,SAAS,EAAE,yBAAc,CAAC,KAAK,CAAC;YAChC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI;gBAChB,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK;gBAClB,iBAAiB,EAAE,CAAC,CAAC,MAAM;qBACxB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,KAAK,KAAK,CAAC;qBACrC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/D,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC;aAC7D,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,OAAe,EAAE,MAA2D;QAC9G,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7E,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAMpB;QACC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE;YACjE,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAOhB;QACC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAC9C,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,MAAM,EACb,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAC/C,CAAC;QAEF,OAAO;YACL,OAAO;YACP,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAElE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,wEAAwE;aAChF,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAE7D,OAAO;YACL,OAAO;YACP,QAAQ;YACR,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,6CAA6C;SACvG,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAMjB;QACC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QACzE,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACzE,CAAC;QAED,MAAM,aAAa,GAAG,KAAK,CAAC,gBAAgB;YAC1C,yBAAyB,KAAK,CAAC,IAAI,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QAE/D,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEjD,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,CAAC;YAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;QAC3D,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACzD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,aAAa;gBACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,qBAAqB,EAAE,WAAW;aACnC,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,yFAAyF;aACjG,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE;YACnE,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,WAAW,EAAE,MAAM,CAAC,QAAQ;SAC7B,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE;gBACN,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,SAAS,EAAE,YAAY,CAAC,SAAS;gBACjC,OAAO,EAAE,aAAa;gBACtB,cAAc,EAAE,YAAY,CAAC,cAAc;gBAC3C,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B;SACF,CAAC;IACJ,CAAC;CACF;AAtQD,kDAsQC"}