@windagency/valora 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1223) hide show
  1. package/README.md +505 -0
  2. package/bin/mcp.js +10 -0
  3. package/bin/valora.js +10 -0
  4. package/data/agents/.gitkeep +0 -0
  5. package/data/agents/_meta/.gitkeep +0 -0
  6. package/data/agents/_meta/schema.json +352 -0
  7. package/data/agents/_template.md +72 -0
  8. package/data/agents/asserter.md +821 -0
  9. package/data/agents/expertises/.gitkeep +0 -0
  10. package/data/agents/expertises/_template/.gitkeep +0 -0
  11. package/data/agents/expertises/_template/registry.json +14 -0
  12. package/data/agents/lead.md +566 -0
  13. package/data/agents/platform-engineer.md +486 -0
  14. package/data/agents/product-manager.md +557 -0
  15. package/data/agents/qa.md +593 -0
  16. package/data/agents/registry.json +766 -0
  17. package/data/agents/secops-engineer.md +693 -0
  18. package/data/agents/software-engineer-typescript-backend.md +698 -0
  19. package/data/agents/software-engineer-typescript-frontend-react.md +512 -0
  20. package/data/agents/software-engineer-typescript-frontend.md +460 -0
  21. package/data/agents/software-engineer-typescript.md +371 -0
  22. package/data/agents/ui-ux-designer.md +534 -0
  23. package/data/commands/.gitkeep +0 -0
  24. package/data/commands/_meta/.gitkeep +0 -0
  25. package/data/commands/_meta/schema.json +317 -0
  26. package/data/commands/_template.md +65 -0
  27. package/data/commands/assert.md +895 -0
  28. package/data/commands/commit.md +1078 -0
  29. package/data/commands/create-backlog.md +402 -0
  30. package/data/commands/create-pr.md +401 -0
  31. package/data/commands/create-prd.md +242 -0
  32. package/data/commands/feedback.md +600 -0
  33. package/data/commands/fetch-task.md +665 -0
  34. package/data/commands/gather-knowledge.md +856 -0
  35. package/data/commands/generate-all-documentation.md +550 -0
  36. package/data/commands/generate-docs.md +738 -0
  37. package/data/commands/implement.md +511 -0
  38. package/data/commands/plan-architecture.md +269 -0
  39. package/data/commands/plan-implementation.md +312 -0
  40. package/data/commands/plan.md +582 -0
  41. package/data/commands/pre-check.md +553 -0
  42. package/data/commands/refine-specs.md +271 -0
  43. package/data/commands/refine-task.md +957 -0
  44. package/data/commands/registry.json +283 -0
  45. package/data/commands/review-code.md +680 -0
  46. package/data/commands/review-functional.md +235 -0
  47. package/data/commands/review-plan.md +546 -0
  48. package/data/commands/test.md +263 -0
  49. package/data/commands/validate-coverage.md +424 -0
  50. package/data/commands/validate-parallel.md +281 -0
  51. package/data/commands/validate-plan.md +367 -0
  52. package/data/config.default.json +40 -0
  53. package/data/external-mcp.default.json +326 -0
  54. package/data/hooks/enforce-modern-cli.sh +123 -0
  55. package/data/hooks/tests/enforce-modern-cli.test.sh +135 -0
  56. package/data/hooks.default.json +17 -0
  57. package/data/prompts/.gitkeep +0 -0
  58. package/data/prompts/00_generator/.gitkeep +0 -0
  59. package/data/prompts/00_generator/_template.md +25 -0
  60. package/data/prompts/00_generator/create_agent.md +97 -0
  61. package/data/prompts/00_generator/create_command.md +53 -0
  62. package/data/prompts/01_onboard/.gitkeep +0 -0
  63. package/data/prompts/01_onboard/analyze-clarity.md +413 -0
  64. package/data/prompts/01_onboard/analyze-documentation-requirements.md +543 -0
  65. package/data/prompts/01_onboard/analyze-patterns.md +288 -0
  66. package/data/prompts/01_onboard/analyze-requirements.md +809 -0
  67. package/data/prompts/01_onboard/collect-clarifications.md +374 -0
  68. package/data/prompts/01_onboard/fetch-task.md +409 -0
  69. package/data/prompts/01_onboard/map-dependencies.md +326 -0
  70. package/data/prompts/01_onboard/refine-requirements.md +638 -0
  71. package/data/prompts/01_onboard/refine-specifications.md +456 -0
  72. package/data/prompts/02_context/.gitkeep +0 -0
  73. package/data/prompts/02_context/analyze-change-scope.md +306 -0
  74. package/data/prompts/02_context/analyze-changes-for-review.md +292 -0
  75. package/data/prompts/02_context/analyze-codebase-changes.md +265 -0
  76. package/data/prompts/02_context/analyze-command-execution.md +231 -0
  77. package/data/prompts/02_context/analyze-commits-for-pr.md +258 -0
  78. package/data/prompts/02_context/analyze-functional-scope.md +380 -0
  79. package/data/prompts/02_context/analyze-git-branch.md +137 -0
  80. package/data/prompts/02_context/analyze-git-status.md +184 -0
  81. package/data/prompts/02_context/analyze-task-context.md +397 -0
  82. package/data/prompts/02_context/check-dependencies.md +394 -0
  83. package/data/prompts/02_context/extract-ticket-info.md +201 -0
  84. package/data/prompts/02_context/extract-ticket-references.md +157 -0
  85. package/data/prompts/02_context/gather-git-metrics.md +237 -0
  86. package/data/prompts/02_context/gather-validation-context.md +281 -0
  87. package/data/prompts/02_context/identify-completed-workflow.md +203 -0
  88. package/data/prompts/02_context/load-and-analyze-parallel.md +441 -0
  89. package/data/prompts/02_context/load-backlog.md +395 -0
  90. package/data/prompts/02_context/load-commit-template.md +186 -0
  91. package/data/prompts/02_context/load-documentation-context.md +382 -0
  92. package/data/prompts/02_context/load-implementation-context.md +360 -0
  93. package/data/prompts/02_context/load-plan-context.md +371 -0
  94. package/data/prompts/02_context/load-pr-template.md +198 -0
  95. package/data/prompts/02_context/load-prd.md +385 -0
  96. package/data/prompts/02_context/load-specifications.md +354 -0
  97. package/data/prompts/02_context/load-task.md +311 -0
  98. package/data/prompts/02_context/scan-codebase.md +270 -0
  99. package/data/prompts/02_context/understand-intent.md +145 -0
  100. package/data/prompts/02_context/use-modern-cli-tools.md +403 -0
  101. package/data/prompts/03_plan/.gitkeep +0 -0
  102. package/data/prompts/03_plan/assess-complexity.md +508 -0
  103. package/data/prompts/03_plan/assess-risks.md +677 -0
  104. package/data/prompts/03_plan/breakdown-implementation.md +895 -0
  105. package/data/prompts/03_plan/decompose-tasks.md +584 -0
  106. package/data/prompts/03_plan/define-architecture.md +347 -0
  107. package/data/prompts/03_plan/identify-dependencies.md +703 -0
  108. package/data/prompts/04_code/.gitkeep +0 -0
  109. package/data/prompts/04_code/calculate-version-bump.md +260 -0
  110. package/data/prompts/04_code/create-version-tag.md +321 -0
  111. package/data/prompts/04_code/determine-commit-strategy.md +300 -0
  112. package/data/prompts/04_code/determine-labels.md +380 -0
  113. package/data/prompts/04_code/determine-reviewers.md +324 -0
  114. package/data/prompts/04_code/generate-commit-messages.md +355 -0
  115. package/data/prompts/04_code/generate-pr-description.md +507 -0
  116. package/data/prompts/04_code/generate-pr-title.md +310 -0
  117. package/data/prompts/04_code/implement-changes.md +861 -0
  118. package/data/prompts/04_code/implement-tests.md +672 -0
  119. package/data/prompts/04_code/interactive-review.md +330 -0
  120. package/data/prompts/04_code/push-and-create-pr.md +435 -0
  121. package/data/prompts/04_code/stage-and-commit.md +424 -0
  122. package/data/prompts/04_code/validate-prerequisites.md +345 -0
  123. package/data/prompts/04_code/verify-implementation.md +705 -0
  124. package/data/prompts/05_review/.gitkeep +0 -0
  125. package/data/prompts/05_review/assess-code-quality.md +473 -0
  126. package/data/prompts/05_review/assess-constraints.md +368 -0
  127. package/data/prompts/05_review/calculate-performance-metrics.md +213 -0
  128. package/data/prompts/05_review/collect-user-feedback.md +236 -0
  129. package/data/prompts/05_review/evaluate-quality-outcomes.md +239 -0
  130. package/data/prompts/05_review/generate-commit-insights.md +344 -0
  131. package/data/prompts/05_review/identify-improvement-areas.md +275 -0
  132. package/data/prompts/05_review/synthesize-plan-assessment.md +778 -0
  133. package/data/prompts/05_review/synthesize-validation-report.md +369 -0
  134. package/data/prompts/05_review/validate-accessibility.md +303 -0
  135. package/data/prompts/05_review/validate-architecture.md +274 -0
  136. package/data/prompts/05_review/validate-backlog.md +620 -0
  137. package/data/prompts/05_review/validate-completeness.md +819 -0
  138. package/data/prompts/05_review/validate-documentation.md +453 -0
  139. package/data/prompts/05_review/validate-functional-requirements.md +432 -0
  140. package/data/prompts/05_review/validate-implementation-completeness.md +281 -0
  141. package/data/prompts/05_review/validate-maintainability.md +515 -0
  142. package/data/prompts/05_review/validate-performance.md +351 -0
  143. package/data/prompts/05_review/validate-pr-creation.md +260 -0
  144. package/data/prompts/05_review/validate-pr-readiness.md +315 -0
  145. package/data/prompts/05_review/validate-readiness.md +429 -0
  146. package/data/prompts/05_review/validate-risk-coverage.md +484 -0
  147. package/data/prompts/05_review/validate-security.md +260 -0
  148. package/data/prompts/05_review/validate-standards-compliance.md +204 -0
  149. package/data/prompts/05_review/validate-step-quality.md +445 -0
  150. package/data/prompts/05_review/validate-technical-feasibility.md +469 -0
  151. package/data/prompts/05_review/validate-test-strategy.md +556 -0
  152. package/data/prompts/05_review/validate-testability.md +532 -0
  153. package/data/prompts/05_review/validate-type-safety.md +200 -0
  154. package/data/prompts/05_review/verify-commits.md +388 -0
  155. package/data/prompts/06_test/.gitkeep +0 -0
  156. package/data/prompts/06_test/analyze-results.md +581 -0
  157. package/data/prompts/06_test/analyze-test-infrastructure.md +360 -0
  158. package/data/prompts/06_test/execute-tests.md +534 -0
  159. package/data/prompts/07_documentation/.gitkeep +0 -0
  160. package/data/prompts/07_documentation/apply-specification-refinement.md +304 -0
  161. package/data/prompts/07_documentation/apply-task-refinement.md +389 -0
  162. package/data/prompts/07_documentation/export-metrics.md +271 -0
  163. package/data/prompts/07_documentation/generate-all-domains-parallel.md +469 -0
  164. package/data/prompts/07_documentation/generate-backend-docs.md +322 -0
  165. package/data/prompts/07_documentation/generate-backlog-artifacts.md +720 -0
  166. package/data/prompts/07_documentation/generate-code-review-report.md +385 -0
  167. package/data/prompts/07_documentation/generate-feedback-report.md +299 -0
  168. package/data/prompts/07_documentation/generate-feedback-summary.md +164 -0
  169. package/data/prompts/07_documentation/generate-frontend-docs.md +309 -0
  170. package/data/prompts/07_documentation/generate-functional-review-report.md +410 -0
  171. package/data/prompts/07_documentation/generate-infrastructure-docs.md +630 -0
  172. package/data/prompts/07_documentation/generate-prd.md +197 -0
  173. package/data/prompts/07_documentation/persist-documentation.md +245 -0
  174. package/data/prompts/07_documentation/review-and-persist-parallel.md +459 -0
  175. package/data/prompts/07_documentation/update-changelog.md +399 -0
  176. package/data/prompts/07_documentation/update-inline-docs.md +574 -0
  177. package/data/prompts/07_documentation/update-knowledge-base.md +352 -0
  178. package/data/prompts/08_deployment/.gitkeep +0 -0
  179. package/data/prompts/09_refactor/.gitkeep +0 -0
  180. package/data/prompts/10_maintenance/.gitkeep +0 -0
  181. package/data/prompts/_meta/.gitkeep +0 -0
  182. package/data/prompts/_meta/schema.json +411 -0
  183. package/data/prompts/_template.md +56 -0
  184. package/data/prompts/registry.json +2227 -0
  185. package/data/templates/.gitkeep +0 -0
  186. package/data/templates/ASSERT_COMPLETENESS.md +121 -0
  187. package/data/templates/ASSERT_SECURITY.md +186 -0
  188. package/data/templates/ASSERT_TYPESCRIPT.md +195 -0
  189. package/data/templates/BACKEND_DOC.md +241 -0
  190. package/data/templates/CHANGELOG.md +38 -0
  191. package/data/templates/DOC_API_QUICK.md +273 -0
  192. package/data/templates/DOC_COMPONENT_QUICK.md +180 -0
  193. package/data/templates/DOC_EXTRACTION_CHECKLIST.md +284 -0
  194. package/data/templates/FRONTEND_DOC.md +253 -0
  195. package/data/templates/GUIDED_COMPLETION.md +38 -0
  196. package/data/templates/INFRASTRUCTURE_DOC.md +138 -0
  197. package/data/templates/PLAN_ARCHITECTURE.md +190 -0
  198. package/data/templates/PLAN_IMPLEMENTATION.md +302 -0
  199. package/data/templates/PLAN_PATTERN_AUTH.md +366 -0
  200. package/data/templates/PLAN_PATTERN_BACKGROUND_JOB.md +403 -0
  201. package/data/templates/PLAN_PATTERN_DATABASE.md +287 -0
  202. package/data/templates/PLAN_PATTERN_REACT_FEATURE.md +303 -0
  203. package/data/templates/PLAN_PATTERN_REST_API.md +322 -0
  204. package/data/templates/PLAN_QUALITY_CHECKLIST.md +167 -0
  205. package/data/templates/PRD.md +110 -0
  206. package/data/templates/PULL_REQUEST.md +30 -0
  207. package/data/templates/REVIEW_CODE_CHECKLIST.md +227 -0
  208. package/data/templates/TEST_COVERAGE_GATE.md +265 -0
  209. package/data/templates/TEST_GENERATION_REQUIREMENTS.md +437 -0
  210. package/data/templates/TROUBLESHOOTING.md +170 -0
  211. package/data/templates/USER_STORY.md +43 -0
  212. package/data/templates/plans/PATTERN_DATABASE_MIGRATION.md +551 -0
  213. package/data/templates/plans/PATTERN_REACT_COMPONENT.md +483 -0
  214. package/data/templates/plans/PATTERN_REST_API.md +428 -0
  215. package/data/templates/plans/README.md +174 -0
  216. package/data/templates/standards/TECHNICAL_DEFAULTS.md +724 -0
  217. package/dist/cleanup/coordinator.d.ts +26 -0
  218. package/dist/cleanup/coordinator.d.ts.map +1 -0
  219. package/dist/cleanup/coordinator.js +167 -0
  220. package/dist/cleanup/coordinator.js.map +1 -0
  221. package/dist/cleanup/index.d.ts +5 -0
  222. package/dist/cleanup/index.d.ts.map +1 -0
  223. package/dist/cleanup/index.js +5 -0
  224. package/dist/cleanup/index.js.map +1 -0
  225. package/dist/cli/autocomplete.d.ts +65 -0
  226. package/dist/cli/autocomplete.d.ts.map +1 -0
  227. package/dist/cli/autocomplete.js +422 -0
  228. package/dist/cli/autocomplete.js.map +1 -0
  229. package/dist/cli/command-adapter.interface.d.ts +98 -0
  230. package/dist/cli/command-adapter.interface.d.ts.map +1 -0
  231. package/dist/cli/command-adapter.interface.js +13 -0
  232. package/dist/cli/command-adapter.interface.js.map +1 -0
  233. package/dist/cli/command-error-handler.d.ts +69 -0
  234. package/dist/cli/command-error-handler.d.ts.map +1 -0
  235. package/dist/cli/command-error-handler.js +239 -0
  236. package/dist/cli/command-error-handler.js.map +1 -0
  237. package/dist/cli/command-executor.d.ts +146 -0
  238. package/dist/cli/command-executor.d.ts.map +1 -0
  239. package/dist/cli/command-executor.js +479 -0
  240. package/dist/cli/command-executor.js.map +1 -0
  241. package/dist/cli/command-palette.d.ts +56 -0
  242. package/dist/cli/command-palette.d.ts.map +1 -0
  243. package/dist/cli/command-palette.js +246 -0
  244. package/dist/cli/command-palette.js.map +1 -0
  245. package/dist/cli/command-resolver.d.ts +42 -0
  246. package/dist/cli/command-resolver.d.ts.map +1 -0
  247. package/dist/cli/command-resolver.js +140 -0
  248. package/dist/cli/command-resolver.js.map +1 -0
  249. package/dist/cli/command-suggestions.d.ts +49 -0
  250. package/dist/cli/command-suggestions.d.ts.map +1 -0
  251. package/dist/cli/command-suggestions.js +209 -0
  252. package/dist/cli/command-suggestions.js.map +1 -0
  253. package/dist/cli/command-templates.d.ts +83 -0
  254. package/dist/cli/command-templates.d.ts.map +1 -0
  255. package/dist/cli/command-templates.js +457 -0
  256. package/dist/cli/command-templates.js.map +1 -0
  257. package/dist/cli/command-validator.d.ts +78 -0
  258. package/dist/cli/command-validator.d.ts.map +1 -0
  259. package/dist/cli/command-validator.js +197 -0
  260. package/dist/cli/command-validator.js.map +1 -0
  261. package/dist/cli/command-wizard.d.ts +42 -0
  262. package/dist/cli/command-wizard.d.ts.map +1 -0
  263. package/dist/cli/command-wizard.js +328 -0
  264. package/dist/cli/command-wizard.js.map +1 -0
  265. package/dist/cli/commander-adapter.d.ts +91 -0
  266. package/dist/cli/commander-adapter.d.ts.map +1 -0
  267. package/dist/cli/commander-adapter.js +142 -0
  268. package/dist/cli/commander-adapter.js.map +1 -0
  269. package/dist/cli/commands/config.d.ts +9 -0
  270. package/dist/cli/commands/config.d.ts.map +1 -0
  271. package/dist/cli/commands/config.js +62 -0
  272. package/dist/cli/commands/config.js.map +1 -0
  273. package/dist/cli/commands/dashboard.d.ts +9 -0
  274. package/dist/cli/commands/dashboard.d.ts.map +1 -0
  275. package/dist/cli/commands/dashboard.js +31 -0
  276. package/dist/cli/commands/dashboard.js.map +1 -0
  277. package/dist/cli/commands/doctor.d.ts +9 -0
  278. package/dist/cli/commands/doctor.d.ts.map +1 -0
  279. package/dist/cli/commands/doctor.js +103 -0
  280. package/dist/cli/commands/doctor.js.map +1 -0
  281. package/dist/cli/commands/dynamic.d.ts +21 -0
  282. package/dist/cli/commands/dynamic.d.ts.map +1 -0
  283. package/dist/cli/commands/dynamic.js +516 -0
  284. package/dist/cli/commands/dynamic.js.map +1 -0
  285. package/dist/cli/commands/explore.d.ts +11 -0
  286. package/dist/cli/commands/explore.d.ts.map +1 -0
  287. package/dist/cli/commands/explore.js +815 -0
  288. package/dist/cli/commands/explore.js.map +1 -0
  289. package/dist/cli/commands/help.d.ts +9 -0
  290. package/dist/cli/commands/help.d.ts.map +1 -0
  291. package/dist/cli/commands/help.js +52 -0
  292. package/dist/cli/commands/help.js.map +1 -0
  293. package/dist/cli/commands/init.d.ts +9 -0
  294. package/dist/cli/commands/init.d.ts.map +1 -0
  295. package/dist/cli/commands/init.js +71 -0
  296. package/dist/cli/commands/init.js.map +1 -0
  297. package/dist/cli/commands/monitoring.d.ts +11 -0
  298. package/dist/cli/commands/monitoring.d.ts.map +1 -0
  299. package/dist/cli/commands/monitoring.js +358 -0
  300. package/dist/cli/commands/monitoring.js.map +1 -0
  301. package/dist/cli/commands/session.d.ts +9 -0
  302. package/dist/cli/commands/session.d.ts.map +1 -0
  303. package/dist/cli/commands/session.js +521 -0
  304. package/dist/cli/commands/session.js.map +1 -0
  305. package/dist/cli/config-builder.d.ts +53 -0
  306. package/dist/cli/config-builder.d.ts.map +1 -0
  307. package/dist/cli/config-builder.js +150 -0
  308. package/dist/cli/config-builder.js.map +1 -0
  309. package/dist/cli/document-approval.d.ts +71 -0
  310. package/dist/cli/document-approval.d.ts.map +1 -0
  311. package/dist/cli/document-approval.js +328 -0
  312. package/dist/cli/document-approval.js.map +1 -0
  313. package/dist/cli/document-output-processor.d.ts +125 -0
  314. package/dist/cli/document-output-processor.d.ts.map +1 -0
  315. package/dist/cli/document-output-processor.js +496 -0
  316. package/dist/cli/document-output-processor.js.map +1 -0
  317. package/dist/cli/execution-coordinator.d.ts +97 -0
  318. package/dist/cli/execution-coordinator.d.ts.map +1 -0
  319. package/dist/cli/execution-coordinator.js +489 -0
  320. package/dist/cli/execution-coordinator.js.map +1 -0
  321. package/dist/cli/first-run-setup.d.ts +12 -0
  322. package/dist/cli/first-run-setup.d.ts.map +1 -0
  323. package/dist/cli/first-run-setup.js +63 -0
  324. package/dist/cli/first-run-setup.js.map +1 -0
  325. package/dist/cli/flags.d.ts +53 -0
  326. package/dist/cli/flags.d.ts.map +1 -0
  327. package/dist/cli/flags.js +60 -0
  328. package/dist/cli/flags.js.map +1 -0
  329. package/dist/cli/index.d.ts +11 -0
  330. package/dist/cli/index.d.ts.map +1 -0
  331. package/dist/cli/index.js +182 -0
  332. package/dist/cli/index.js.map +1 -0
  333. package/dist/cli/presenters/assert-presenter.d.ts +29 -0
  334. package/dist/cli/presenters/assert-presenter.d.ts.map +1 -0
  335. package/dist/cli/presenters/assert-presenter.js +224 -0
  336. package/dist/cli/presenters/assert-presenter.js.map +1 -0
  337. package/dist/cli/presenters/base-presenter.d.ts +80 -0
  338. package/dist/cli/presenters/base-presenter.d.ts.map +1 -0
  339. package/dist/cli/presenters/base-presenter.js +124 -0
  340. package/dist/cli/presenters/base-presenter.js.map +1 -0
  341. package/dist/cli/presenters/feedback-presenter.d.ts +24 -0
  342. package/dist/cli/presenters/feedback-presenter.d.ts.map +1 -0
  343. package/dist/cli/presenters/feedback-presenter.js +144 -0
  344. package/dist/cli/presenters/feedback-presenter.js.map +1 -0
  345. package/dist/cli/presenters/fetch-task-presenter.d.ts +26 -0
  346. package/dist/cli/presenters/fetch-task-presenter.d.ts.map +1 -0
  347. package/dist/cli/presenters/fetch-task-presenter.js +122 -0
  348. package/dist/cli/presenters/fetch-task-presenter.js.map +1 -0
  349. package/dist/cli/presenters/implementation-presenter.d.ts +28 -0
  350. package/dist/cli/presenters/implementation-presenter.d.ts.map +1 -0
  351. package/dist/cli/presenters/implementation-presenter.js +148 -0
  352. package/dist/cli/presenters/implementation-presenter.js.map +1 -0
  353. package/dist/cli/presenters/index.d.ts +14 -0
  354. package/dist/cli/presenters/index.d.ts.map +1 -0
  355. package/dist/cli/presenters/index.js +14 -0
  356. package/dist/cli/presenters/index.js.map +1 -0
  357. package/dist/cli/presenters/presenter-registry.d.ts +51 -0
  358. package/dist/cli/presenters/presenter-registry.d.ts.map +1 -0
  359. package/dist/cli/presenters/presenter-registry.js +89 -0
  360. package/dist/cli/presenters/presenter-registry.js.map +1 -0
  361. package/dist/cli/presenters/review-code-presenter.d.ts +34 -0
  362. package/dist/cli/presenters/review-code-presenter.d.ts.map +1 -0
  363. package/dist/cli/presenters/review-code-presenter.js +197 -0
  364. package/dist/cli/presenters/review-code-presenter.js.map +1 -0
  365. package/dist/cli/presenters/review-plan-presenter.d.ts +26 -0
  366. package/dist/cli/presenters/review-plan-presenter.d.ts.map +1 -0
  367. package/dist/cli/presenters/review-plan-presenter.js +130 -0
  368. package/dist/cli/presenters/review-plan-presenter.js.map +1 -0
  369. package/dist/cli/provider-fallback-service.d.ts +52 -0
  370. package/dist/cli/provider-fallback-service.d.ts.map +1 -0
  371. package/dist/cli/provider-fallback-service.js +134 -0
  372. package/dist/cli/provider-fallback-service.js.map +1 -0
  373. package/dist/cli/provider-mismatch-handler.d.ts +35 -0
  374. package/dist/cli/provider-mismatch-handler.d.ts.map +1 -0
  375. package/dist/cli/provider-mismatch-handler.js +133 -0
  376. package/dist/cli/provider-mismatch-handler.js.map +1 -0
  377. package/dist/cli/provider-resolver.d.ts +84 -0
  378. package/dist/cli/provider-resolver.d.ts.map +1 -0
  379. package/dist/cli/provider-resolver.js +360 -0
  380. package/dist/cli/provider-resolver.js.map +1 -0
  381. package/dist/cli/result-presenter.d.ts +68 -0
  382. package/dist/cli/result-presenter.d.ts.map +1 -0
  383. package/dist/cli/result-presenter.js +186 -0
  384. package/dist/cli/result-presenter.js.map +1 -0
  385. package/dist/cli/session-browser.d.ts +46 -0
  386. package/dist/cli/session-browser.d.ts.map +1 -0
  387. package/dist/cli/session-browser.js +343 -0
  388. package/dist/cli/session-browser.js.map +1 -0
  389. package/dist/cli/session-cleanup-adapter.d.ts +25 -0
  390. package/dist/cli/session-cleanup-adapter.d.ts.map +1 -0
  391. package/dist/cli/session-cleanup-adapter.js +95 -0
  392. package/dist/cli/session-cleanup-adapter.js.map +1 -0
  393. package/dist/cli/session-formatter.d.ts +107 -0
  394. package/dist/cli/session-formatter.d.ts.map +1 -0
  395. package/dist/cli/session-formatter.js +411 -0
  396. package/dist/cli/session-formatter.js.map +1 -0
  397. package/dist/cli/session-manager.d.ts +68 -0
  398. package/dist/cli/session-manager.d.ts.map +1 -0
  399. package/dist/cli/session-manager.js +153 -0
  400. package/dist/cli/session-manager.js.map +1 -0
  401. package/dist/cli/session-resume.d.ts +70 -0
  402. package/dist/cli/session-resume.d.ts.map +1 -0
  403. package/dist/cli/session-resume.js +322 -0
  404. package/dist/cli/session-resume.js.map +1 -0
  405. package/dist/cli/types/cli-options.types.d.ts +54 -0
  406. package/dist/cli/types/cli-options.types.d.ts.map +1 -0
  407. package/dist/cli/types/cli-options.types.js +8 -0
  408. package/dist/cli/types/cli-options.types.js.map +1 -0
  409. package/dist/cli/types/wizard.types.d.ts +51 -0
  410. package/dist/cli/types/wizard.types.d.ts.map +1 -0
  411. package/dist/cli/types/wizard.types.js +8 -0
  412. package/dist/cli/types/wizard.types.js.map +1 -0
  413. package/dist/config/constants.d.ts +192 -0
  414. package/dist/config/constants.d.ts.map +1 -0
  415. package/dist/config/constants.js +196 -0
  416. package/dist/config/constants.js.map +1 -0
  417. package/dist/config/index.d.ts +8 -0
  418. package/dist/config/index.d.ts.map +1 -0
  419. package/dist/config/index.js +8 -0
  420. package/dist/config/index.js.map +1 -0
  421. package/dist/config/interactive-wizard.d.ts +67 -0
  422. package/dist/config/interactive-wizard.d.ts.map +1 -0
  423. package/dist/config/interactive-wizard.js +325 -0
  424. package/dist/config/interactive-wizard.js.map +1 -0
  425. package/dist/config/loader.d.ts +113 -0
  426. package/dist/config/loader.d.ts.map +1 -0
  427. package/dist/config/loader.js +433 -0
  428. package/dist/config/loader.js.map +1 -0
  429. package/dist/config/providers.config.d.ts +90 -0
  430. package/dist/config/providers.config.d.ts.map +1 -0
  431. package/dist/config/providers.config.js +249 -0
  432. package/dist/config/providers.config.js.map +1 -0
  433. package/dist/config/schema.d.ts +1848 -0
  434. package/dist/config/schema.d.ts.map +1 -0
  435. package/dist/config/schema.js +167 -0
  436. package/dist/config/schema.js.map +1 -0
  437. package/dist/config/validation-helpers.d.ts +44 -0
  438. package/dist/config/validation-helpers.d.ts.map +1 -0
  439. package/dist/config/validation-helpers.js +239 -0
  440. package/dist/config/validation-helpers.js.map +1 -0
  441. package/dist/config/wizard.d.ts +10 -0
  442. package/dist/config/wizard.d.ts.map +1 -0
  443. package/dist/config/wizard.js +11 -0
  444. package/dist/config/wizard.js.map +1 -0
  445. package/dist/di/container.d.ts +92 -0
  446. package/dist/di/container.d.ts.map +1 -0
  447. package/dist/di/container.js +349 -0
  448. package/dist/di/container.js.map +1 -0
  449. package/dist/executor/agent-loader.d.ts +62 -0
  450. package/dist/executor/agent-loader.d.ts.map +1 -0
  451. package/dist/executor/agent-loader.js +172 -0
  452. package/dist/executor/agent-loader.js.map +1 -0
  453. package/dist/executor/command-discovery.d.ts +72 -0
  454. package/dist/executor/command-discovery.d.ts.map +1 -0
  455. package/dist/executor/command-discovery.js +248 -0
  456. package/dist/executor/command-discovery.js.map +1 -0
  457. package/dist/executor/command-isolation.executor.d.ts +53 -0
  458. package/dist/executor/command-isolation.executor.d.ts.map +1 -0
  459. package/dist/executor/command-isolation.executor.js +183 -0
  460. package/dist/executor/command-isolation.executor.js.map +1 -0
  461. package/dist/executor/command-loader.d.ts +34 -0
  462. package/dist/executor/command-loader.d.ts.map +1 -0
  463. package/dist/executor/command-loader.js +93 -0
  464. package/dist/executor/command-loader.js.map +1 -0
  465. package/dist/executor/command-validation.d.ts +21 -0
  466. package/dist/executor/command-validation.d.ts.map +1 -0
  467. package/dist/executor/command-validation.js +79 -0
  468. package/dist/executor/command-validation.js.map +1 -0
  469. package/dist/executor/dry-run-cache.d.ts +155 -0
  470. package/dist/executor/dry-run-cache.d.ts.map +1 -0
  471. package/dist/executor/dry-run-cache.js +191 -0
  472. package/dist/executor/dry-run-cache.js.map +1 -0
  473. package/dist/executor/dry-run-preview.service.d.ts +101 -0
  474. package/dist/executor/dry-run-preview.service.d.ts.map +1 -0
  475. package/dist/executor/dry-run-preview.service.js +250 -0
  476. package/dist/executor/dry-run-preview.service.js.map +1 -0
  477. package/dist/executor/dry-run-strategy.d.ts +137 -0
  478. package/dist/executor/dry-run-strategy.d.ts.map +1 -0
  479. package/dist/executor/dry-run-strategy.js +511 -0
  480. package/dist/executor/dry-run-strategy.js.map +1 -0
  481. package/dist/executor/escalation-detection.service.d.ts +48 -0
  482. package/dist/executor/escalation-detection.service.d.ts.map +1 -0
  483. package/dist/executor/escalation-detection.service.js +219 -0
  484. package/dist/executor/escalation-detection.service.js.map +1 -0
  485. package/dist/executor/escalation-handler.service.d.ts +57 -0
  486. package/dist/executor/escalation-handler.service.d.ts.map +1 -0
  487. package/dist/executor/escalation-handler.service.js +265 -0
  488. package/dist/executor/escalation-handler.service.js.map +1 -0
  489. package/dist/executor/execution-context.d.ts +107 -0
  490. package/dist/executor/execution-context.d.ts.map +1 -0
  491. package/dist/executor/execution-context.js +158 -0
  492. package/dist/executor/execution-context.js.map +1 -0
  493. package/dist/executor/execution-strategy.d.ts +104 -0
  494. package/dist/executor/execution-strategy.d.ts.map +1 -0
  495. package/dist/executor/execution-strategy.js +259 -0
  496. package/dist/executor/execution-strategy.js.map +1 -0
  497. package/dist/executor/hook-execution.service.d.ts +95 -0
  498. package/dist/executor/hook-execution.service.d.ts.map +1 -0
  499. package/dist/executor/hook-execution.service.js +371 -0
  500. package/dist/executor/hook-execution.service.js.map +1 -0
  501. package/dist/executor/index.d.ts +16 -0
  502. package/dist/executor/index.d.ts.map +1 -0
  503. package/dist/executor/index.js +16 -0
  504. package/dist/executor/index.js.map +1 -0
  505. package/dist/executor/input-pre-resolver.d.ts +61 -0
  506. package/dist/executor/input-pre-resolver.d.ts.map +1 -0
  507. package/dist/executor/input-pre-resolver.js +172 -0
  508. package/dist/executor/input-pre-resolver.js.map +1 -0
  509. package/dist/executor/interactive-question-handler.service.d.ts +79 -0
  510. package/dist/executor/interactive-question-handler.service.d.ts.map +1 -0
  511. package/dist/executor/interactive-question-handler.service.js +250 -0
  512. package/dist/executor/interactive-question-handler.service.js.map +1 -0
  513. package/dist/executor/message-builder.service.d.ts +83 -0
  514. package/dist/executor/message-builder.service.d.ts.map +1 -0
  515. package/dist/executor/message-builder.service.js +211 -0
  516. package/dist/executor/message-builder.service.js.map +1 -0
  517. package/dist/executor/output-parsing.service.d.ts +169 -0
  518. package/dist/executor/output-parsing.service.d.ts.map +1 -0
  519. package/dist/executor/output-parsing.service.js +566 -0
  520. package/dist/executor/output-parsing.service.js.map +1 -0
  521. package/dist/executor/pipeline-events.d.ts +15 -0
  522. package/dist/executor/pipeline-events.d.ts.map +1 -0
  523. package/dist/executor/pipeline-events.js +15 -0
  524. package/dist/executor/pipeline-events.js.map +1 -0
  525. package/dist/executor/pipeline-validator.d.ts +29 -0
  526. package/dist/executor/pipeline-validator.d.ts.map +1 -0
  527. package/dist/executor/pipeline-validator.js +105 -0
  528. package/dist/executor/pipeline-validator.js.map +1 -0
  529. package/dist/executor/pipeline.d.ts +55 -0
  530. package/dist/executor/pipeline.d.ts.map +1 -0
  531. package/dist/executor/pipeline.js +360 -0
  532. package/dist/executor/pipeline.js.map +1 -0
  533. package/dist/executor/project-guidance-loader.d.ts +69 -0
  534. package/dist/executor/project-guidance-loader.d.ts.map +1 -0
  535. package/dist/executor/project-guidance-loader.js +528 -0
  536. package/dist/executor/project-guidance-loader.js.map +1 -0
  537. package/dist/executor/prompt-loader.d.ts +39 -0
  538. package/dist/executor/prompt-loader.d.ts.map +1 -0
  539. package/dist/executor/prompt-loader.js +172 -0
  540. package/dist/executor/prompt-loader.js.map +1 -0
  541. package/dist/executor/stage-executor.d.ts +192 -0
  542. package/dist/executor/stage-executor.d.ts.map +1 -0
  543. package/dist/executor/stage-executor.js +790 -0
  544. package/dist/executor/stage-executor.js.map +1 -0
  545. package/dist/executor/stage-output-cache.d.ts +152 -0
  546. package/dist/executor/stage-output-cache.d.ts.map +1 -0
  547. package/dist/executor/stage-output-cache.js +426 -0
  548. package/dist/executor/stage-output-cache.js.map +1 -0
  549. package/dist/executor/stage-scheduler.d.ts +20 -0
  550. package/dist/executor/stage-scheduler.d.ts.map +1 -0
  551. package/dist/executor/stage-scheduler.js +59 -0
  552. package/dist/executor/stage-scheduler.js.map +1 -0
  553. package/dist/executor/stage-validation.service.d.ts +122 -0
  554. package/dist/executor/stage-validation.service.d.ts.map +1 -0
  555. package/dist/executor/stage-validation.service.js +377 -0
  556. package/dist/executor/stage-validation.service.js.map +1 -0
  557. package/dist/executor/tool-execution.service.d.ts +289 -0
  558. package/dist/executor/tool-execution.service.d.ts.map +1 -0
  559. package/dist/executor/tool-execution.service.js +1124 -0
  560. package/dist/executor/tool-execution.service.js.map +1 -0
  561. package/dist/executor/tools/dry-run-simulator.service.d.ts +107 -0
  562. package/dist/executor/tools/dry-run-simulator.service.d.ts.map +1 -0
  563. package/dist/executor/tools/dry-run-simulator.service.js +284 -0
  564. package/dist/executor/tools/dry-run-simulator.service.js.map +1 -0
  565. package/dist/executor/tools/pending-write-approver.service.d.ts +84 -0
  566. package/dist/executor/tools/pending-write-approver.service.d.ts.map +1 -0
  567. package/dist/executor/tools/pending-write-approver.service.js +197 -0
  568. package/dist/executor/tools/pending-write-approver.service.js.map +1 -0
  569. package/dist/executor/tools/search-tools.service.d.ts +44 -0
  570. package/dist/executor/tools/search-tools.service.d.ts.map +1 -0
  571. package/dist/executor/tools/search-tools.service.js +109 -0
  572. package/dist/executor/tools/search-tools.service.js.map +1 -0
  573. package/dist/executor/tools/session-tools.service.d.ts +74 -0
  574. package/dist/executor/tools/session-tools.service.d.ts.map +1 -0
  575. package/dist/executor/tools/session-tools.service.js +278 -0
  576. package/dist/executor/tools/session-tools.service.js.map +1 -0
  577. package/dist/executor/variable-resolution.service.d.ts +77 -0
  578. package/dist/executor/variable-resolution.service.d.ts.map +1 -0
  579. package/dist/executor/variable-resolution.service.js +115 -0
  580. package/dist/executor/variable-resolution.service.js.map +1 -0
  581. package/dist/executor/variables.d.ts +89 -0
  582. package/dist/executor/variables.d.ts.map +1 -0
  583. package/dist/executor/variables.js +306 -0
  584. package/dist/executor/variables.js.map +1 -0
  585. package/dist/exploration/collaboration-coordinator.d.ts +130 -0
  586. package/dist/exploration/collaboration-coordinator.d.ts.map +1 -0
  587. package/dist/exploration/collaboration-coordinator.js +332 -0
  588. package/dist/exploration/collaboration-coordinator.js.map +1 -0
  589. package/dist/exploration/container-manager.d.ts +121 -0
  590. package/dist/exploration/container-manager.d.ts.map +1 -0
  591. package/dist/exploration/container-manager.js +390 -0
  592. package/dist/exploration/container-manager.js.map +1 -0
  593. package/dist/exploration/dashboard-controls.d.ts +24 -0
  594. package/dist/exploration/dashboard-controls.d.ts.map +1 -0
  595. package/dist/exploration/dashboard-controls.js +221 -0
  596. package/dist/exploration/dashboard-controls.js.map +1 -0
  597. package/dist/exploration/dashboard-metrics.d.ts +62 -0
  598. package/dist/exploration/dashboard-metrics.d.ts.map +1 -0
  599. package/dist/exploration/dashboard-metrics.js +154 -0
  600. package/dist/exploration/dashboard-metrics.js.map +1 -0
  601. package/dist/exploration/dashboard-ui.d.ts +22 -0
  602. package/dist/exploration/dashboard-ui.d.ts.map +1 -0
  603. package/dist/exploration/dashboard-ui.js +206 -0
  604. package/dist/exploration/dashboard-ui.js.map +1 -0
  605. package/dist/exploration/execution-modes.d.ts +120 -0
  606. package/dist/exploration/execution-modes.d.ts.map +1 -0
  607. package/dist/exploration/execution-modes.js +388 -0
  608. package/dist/exploration/execution-modes.js.map +1 -0
  609. package/dist/exploration/exploration-events.d.ts +139 -0
  610. package/dist/exploration/exploration-events.d.ts.map +1 -0
  611. package/dist/exploration/exploration-events.js +261 -0
  612. package/dist/exploration/exploration-events.js.map +1 -0
  613. package/dist/exploration/exploration-state.d.ts +102 -0
  614. package/dist/exploration/exploration-state.d.ts.map +1 -0
  615. package/dist/exploration/exploration-state.js +307 -0
  616. package/dist/exploration/exploration-state.js.map +1 -0
  617. package/dist/exploration/merge-orchestrator.d.ts +175 -0
  618. package/dist/exploration/merge-orchestrator.d.ts.map +1 -0
  619. package/dist/exploration/merge-orchestrator.js +615 -0
  620. package/dist/exploration/merge-orchestrator.js.map +1 -0
  621. package/dist/exploration/orchestrator.d.ts +95 -0
  622. package/dist/exploration/orchestrator.d.ts.map +1 -0
  623. package/dist/exploration/orchestrator.js +404 -0
  624. package/dist/exploration/orchestrator.js.map +1 -0
  625. package/dist/exploration/resource-allocator.d.ts +108 -0
  626. package/dist/exploration/resource-allocator.d.ts.map +1 -0
  627. package/dist/exploration/resource-allocator.js +244 -0
  628. package/dist/exploration/resource-allocator.js.map +1 -0
  629. package/dist/exploration/result-comparator.d.ts +110 -0
  630. package/dist/exploration/result-comparator.d.ts.map +1 -0
  631. package/dist/exploration/result-comparator.js +363 -0
  632. package/dist/exploration/result-comparator.js.map +1 -0
  633. package/dist/exploration/safety-validator.d.ts +59 -0
  634. package/dist/exploration/safety-validator.d.ts.map +1 -0
  635. package/dist/exploration/safety-validator.js +339 -0
  636. package/dist/exploration/safety-validator.js.map +1 -0
  637. package/dist/exploration/shared-volume-manager.d.ts +72 -0
  638. package/dist/exploration/shared-volume-manager.d.ts.map +1 -0
  639. package/dist/exploration/shared-volume-manager.js +303 -0
  640. package/dist/exploration/shared-volume-manager.js.map +1 -0
  641. package/dist/exploration/worktree-manager-secure.d.ts +110 -0
  642. package/dist/exploration/worktree-manager-secure.d.ts.map +1 -0
  643. package/dist/exploration/worktree-manager-secure.js +347 -0
  644. package/dist/exploration/worktree-manager-secure.js.map +1 -0
  645. package/dist/exploration/worktree-manager.d.ts +97 -0
  646. package/dist/exploration/worktree-manager.d.ts.map +1 -0
  647. package/dist/exploration/worktree-manager.js +298 -0
  648. package/dist/exploration/worktree-manager.js.map +1 -0
  649. package/dist/llm/index.d.ts +10 -0
  650. package/dist/llm/index.d.ts.map +1 -0
  651. package/dist/llm/index.js +10 -0
  652. package/dist/llm/index.js.map +1 -0
  653. package/dist/llm/model-mapping-registry.d.ts +73 -0
  654. package/dist/llm/model-mapping-registry.d.ts.map +1 -0
  655. package/dist/llm/model-mapping-registry.js +197 -0
  656. package/dist/llm/model-mapping-registry.js.map +1 -0
  657. package/dist/llm/provider.interface.d.ts +60 -0
  658. package/dist/llm/provider.interface.d.ts.map +1 -0
  659. package/dist/llm/provider.interface.js +79 -0
  660. package/dist/llm/provider.interface.js.map +1 -0
  661. package/dist/llm/providers/anthropic.provider.d.ts +78 -0
  662. package/dist/llm/providers/anthropic.provider.d.ts.map +1 -0
  663. package/dist/llm/providers/anthropic.provider.js +456 -0
  664. package/dist/llm/providers/anthropic.provider.js.map +1 -0
  665. package/dist/llm/providers/cursor.provider.d.ts +61 -0
  666. package/dist/llm/providers/cursor.provider.d.ts.map +1 -0
  667. package/dist/llm/providers/cursor.provider.js +273 -0
  668. package/dist/llm/providers/cursor.provider.js.map +1 -0
  669. package/dist/llm/providers/google.provider.d.ts +43 -0
  670. package/dist/llm/providers/google.provider.d.ts.map +1 -0
  671. package/dist/llm/providers/google.provider.js +179 -0
  672. package/dist/llm/providers/google.provider.js.map +1 -0
  673. package/dist/llm/providers/index.d.ts +25 -0
  674. package/dist/llm/providers/index.d.ts.map +1 -0
  675. package/dist/llm/providers/index.js +28 -0
  676. package/dist/llm/providers/index.js.map +1 -0
  677. package/dist/llm/providers/openai.provider.d.ts +23 -0
  678. package/dist/llm/providers/openai.provider.d.ts.map +1 -0
  679. package/dist/llm/providers/openai.provider.js +193 -0
  680. package/dist/llm/providers/openai.provider.js.map +1 -0
  681. package/dist/llm/registry.d.ts +41 -0
  682. package/dist/llm/registry.d.ts.map +1 -0
  683. package/dist/llm/registry.js +88 -0
  684. package/dist/llm/registry.js.map +1 -0
  685. package/dist/mcp/command-discovery.service.d.ts +26 -0
  686. package/dist/mcp/command-discovery.service.d.ts.map +1 -0
  687. package/dist/mcp/command-discovery.service.js +65 -0
  688. package/dist/mcp/command-discovery.service.js.map +1 -0
  689. package/dist/mcp/context.d.ts +28 -0
  690. package/dist/mcp/context.d.ts.map +1 -0
  691. package/dist/mcp/context.js +34 -0
  692. package/dist/mcp/context.js.map +1 -0
  693. package/dist/mcp/external-client/tool-proxy.d.ts +103 -0
  694. package/dist/mcp/external-client/tool-proxy.d.ts.map +1 -0
  695. package/dist/mcp/external-client/tool-proxy.js +291 -0
  696. package/dist/mcp/external-client/tool-proxy.js.map +1 -0
  697. package/dist/mcp/external-mcp-integrator.d.ts +70 -0
  698. package/dist/mcp/external-mcp-integrator.d.ts.map +1 -0
  699. package/dist/mcp/external-mcp-integrator.js +161 -0
  700. package/dist/mcp/external-mcp-integrator.js.map +1 -0
  701. package/dist/mcp/mcp-approval-cache.service.d.ts +88 -0
  702. package/dist/mcp/mcp-approval-cache.service.d.ts.map +1 -0
  703. package/dist/mcp/mcp-approval-cache.service.js +257 -0
  704. package/dist/mcp/mcp-approval-cache.service.js.map +1 -0
  705. package/dist/mcp/mcp-approval-workflow.d.ts +92 -0
  706. package/dist/mcp/mcp-approval-workflow.d.ts.map +1 -0
  707. package/dist/mcp/mcp-approval-workflow.js +346 -0
  708. package/dist/mcp/mcp-approval-workflow.js.map +1 -0
  709. package/dist/mcp/mcp-audit-logger.service.d.ts +90 -0
  710. package/dist/mcp/mcp-audit-logger.service.d.ts.map +1 -0
  711. package/dist/mcp/mcp-audit-logger.service.js +264 -0
  712. package/dist/mcp/mcp-audit-logger.service.js.map +1 -0
  713. package/dist/mcp/mcp-availability.service.d.ts +84 -0
  714. package/dist/mcp/mcp-availability.service.d.ts.map +1 -0
  715. package/dist/mcp/mcp-availability.service.js +177 -0
  716. package/dist/mcp/mcp-availability.service.js.map +1 -0
  717. package/dist/mcp/mcp-client-manager.service.d.ts +103 -0
  718. package/dist/mcp/mcp-client-manager.service.d.ts.map +1 -0
  719. package/dist/mcp/mcp-client-manager.service.js +380 -0
  720. package/dist/mcp/mcp-client-manager.service.js.map +1 -0
  721. package/dist/mcp/mcp-tool-handler.d.ts +88 -0
  722. package/dist/mcp/mcp-tool-handler.d.ts.map +1 -0
  723. package/dist/mcp/mcp-tool-handler.js +207 -0
  724. package/dist/mcp/mcp-tool-handler.js.map +1 -0
  725. package/dist/mcp/request-handler.d.ts +44 -0
  726. package/dist/mcp/request-handler.d.ts.map +1 -0
  727. package/dist/mcp/request-handler.js +282 -0
  728. package/dist/mcp/request-handler.js.map +1 -0
  729. package/dist/mcp/sampling-service.d.ts +36 -0
  730. package/dist/mcp/sampling-service.d.ts.map +1 -0
  731. package/dist/mcp/sampling-service.js +147 -0
  732. package/dist/mcp/sampling-service.js.map +1 -0
  733. package/dist/mcp/server-manager.d.ts +36 -0
  734. package/dist/mcp/server-manager.d.ts.map +1 -0
  735. package/dist/mcp/server-manager.js +113 -0
  736. package/dist/mcp/server-manager.js.map +1 -0
  737. package/dist/mcp/server.d.ts +45 -0
  738. package/dist/mcp/server.d.ts.map +1 -0
  739. package/dist/mcp/server.js +269 -0
  740. package/dist/mcp/server.js.map +1 -0
  741. package/dist/mcp/shutdown-manager.d.ts +24 -0
  742. package/dist/mcp/shutdown-manager.d.ts.map +1 -0
  743. package/dist/mcp/shutdown-manager.js +59 -0
  744. package/dist/mcp/shutdown-manager.js.map +1 -0
  745. package/dist/mcp/system-monitor.d.ts +38 -0
  746. package/dist/mcp/system-monitor.d.ts.map +1 -0
  747. package/dist/mcp/system-monitor.js +80 -0
  748. package/dist/mcp/system-monitor.js.map +1 -0
  749. package/dist/mcp/tool-mapping.service.d.ts +35 -0
  750. package/dist/mcp/tool-mapping.service.d.ts.map +1 -0
  751. package/dist/mcp/tool-mapping.service.js +91 -0
  752. package/dist/mcp/tool-mapping.service.js.map +1 -0
  753. package/dist/mcp/tool-registry.d.ts +29 -0
  754. package/dist/mcp/tool-registry.d.ts.map +1 -0
  755. package/dist/mcp/tool-registry.js +52 -0
  756. package/dist/mcp/tool-registry.js.map +1 -0
  757. package/dist/mcp/types.d.ts +33 -0
  758. package/dist/mcp/types.d.ts.map +1 -0
  759. package/dist/mcp/types.js +7 -0
  760. package/dist/mcp/types.js.map +1 -0
  761. package/dist/output/activity-feed.d.ts +62 -0
  762. package/dist/output/activity-feed.d.ts.map +1 -0
  763. package/dist/output/activity-feed.js +170 -0
  764. package/dist/output/activity-feed.js.map +1 -0
  765. package/dist/output/box-formatter.d.ts +149 -0
  766. package/dist/output/box-formatter.d.ts.map +1 -0
  767. package/dist/output/box-formatter.js +239 -0
  768. package/dist/output/box-formatter.js.map +1 -0
  769. package/dist/output/cleanup-scheduler.d.ts +26 -0
  770. package/dist/output/cleanup-scheduler.d.ts.map +1 -0
  771. package/dist/output/cleanup-scheduler.js +115 -0
  772. package/dist/output/cleanup-scheduler.js.map +1 -0
  773. package/dist/output/color-adapter.d.ts +56 -0
  774. package/dist/output/color-adapter.d.ts.map +1 -0
  775. package/dist/output/color-adapter.interface.d.ts +139 -0
  776. package/dist/output/color-adapter.interface.d.ts.map +1 -0
  777. package/dist/output/color-adapter.interface.js +49 -0
  778. package/dist/output/color-adapter.interface.js.map +1 -0
  779. package/dist/output/color-adapter.js +163 -0
  780. package/dist/output/color-adapter.js.map +1 -0
  781. package/dist/output/console-output.d.ts +156 -0
  782. package/dist/output/console-output.d.ts.map +1 -0
  783. package/dist/output/console-output.js +264 -0
  784. package/dist/output/console-output.js.map +1 -0
  785. package/dist/output/diagnostic-formatter.d.ts +62 -0
  786. package/dist/output/diagnostic-formatter.d.ts.map +1 -0
  787. package/dist/output/diagnostic-formatter.js +186 -0
  788. package/dist/output/diagnostic-formatter.js.map +1 -0
  789. package/dist/output/header-formatter.d.ts +147 -0
  790. package/dist/output/header-formatter.d.ts.map +1 -0
  791. package/dist/output/header-formatter.js +232 -0
  792. package/dist/output/header-formatter.js.map +1 -0
  793. package/dist/output/help-formatter.d.ts +79 -0
  794. package/dist/output/help-formatter.d.ts.map +1 -0
  795. package/dist/output/help-formatter.js +358 -0
  796. package/dist/output/help-formatter.js.map +1 -0
  797. package/dist/output/index.d.ts +12 -0
  798. package/dist/output/index.d.ts.map +1 -0
  799. package/dist/output/index.js +12 -0
  800. package/dist/output/index.js.map +1 -0
  801. package/dist/output/logger.d.ts +113 -0
  802. package/dist/output/logger.d.ts.map +1 -0
  803. package/dist/output/logger.js +461 -0
  804. package/dist/output/logger.js.map +1 -0
  805. package/dist/output/markdown.d.ts +35 -0
  806. package/dist/output/markdown.d.ts.map +1 -0
  807. package/dist/output/markdown.js +188 -0
  808. package/dist/output/markdown.js.map +1 -0
  809. package/dist/output/multi-stage-progress.d.ts +77 -0
  810. package/dist/output/multi-stage-progress.d.ts.map +1 -0
  811. package/dist/output/multi-stage-progress.js +173 -0
  812. package/dist/output/multi-stage-progress.js.map +1 -0
  813. package/dist/output/pipeline-emitter.d.ts +85 -0
  814. package/dist/output/pipeline-emitter.d.ts.map +1 -0
  815. package/dist/output/pipeline-emitter.js +202 -0
  816. package/dist/output/pipeline-emitter.js.map +1 -0
  817. package/dist/output/processing-feedback.d.ts +299 -0
  818. package/dist/output/processing-feedback.d.ts.map +1 -0
  819. package/dist/output/processing-feedback.js +1032 -0
  820. package/dist/output/processing-feedback.js.map +1 -0
  821. package/dist/output/progress-formatter.d.ts +68 -0
  822. package/dist/output/progress-formatter.d.ts.map +1 -0
  823. package/dist/output/progress-formatter.js +210 -0
  824. package/dist/output/progress-formatter.js.map +1 -0
  825. package/dist/output/progress.d.ts +92 -0
  826. package/dist/output/progress.d.ts.map +1 -0
  827. package/dist/output/progress.js +256 -0
  828. package/dist/output/progress.js.map +1 -0
  829. package/dist/output/retention-manager.d.ts +62 -0
  830. package/dist/output/retention-manager.d.ts.map +1 -0
  831. package/dist/output/retention-manager.js +401 -0
  832. package/dist/output/retention-manager.js.map +1 -0
  833. package/dist/output/terminal-utils.d.ts +50 -0
  834. package/dist/output/terminal-utils.d.ts.map +1 -0
  835. package/dist/output/terminal-utils.js +103 -0
  836. package/dist/output/terminal-utils.js.map +1 -0
  837. package/dist/output/verbose-formatter.d.ts +91 -0
  838. package/dist/output/verbose-formatter.d.ts.map +1 -0
  839. package/dist/output/verbose-formatter.js +182 -0
  840. package/dist/output/verbose-formatter.js.map +1 -0
  841. package/dist/output/welcome-banner.d.ts +16 -0
  842. package/dist/output/welcome-banner.d.ts.map +1 -0
  843. package/dist/output/welcome-banner.js +80 -0
  844. package/dist/output/welcome-banner.js.map +1 -0
  845. package/dist/package.json +166 -0
  846. package/dist/services/agent-capability-matcher.service.d.ts +89 -0
  847. package/dist/services/agent-capability-matcher.service.d.ts.map +1 -0
  848. package/dist/services/agent-capability-matcher.service.js +310 -0
  849. package/dist/services/agent-capability-matcher.service.js.map +1 -0
  850. package/dist/services/agent-capability-registry.service.d.ts +93 -0
  851. package/dist/services/agent-capability-registry.service.d.ts.map +1 -0
  852. package/dist/services/agent-capability-registry.service.js +242 -0
  853. package/dist/services/agent-capability-registry.service.js.map +1 -0
  854. package/dist/services/agent-selection-analytics.service.d.ts +89 -0
  855. package/dist/services/agent-selection-analytics.service.d.ts.map +1 -0
  856. package/dist/services/agent-selection-analytics.service.js +180 -0
  857. package/dist/services/agent-selection-analytics.service.js.map +1 -0
  858. package/dist/services/context-analyzer.service.d.ts +56 -0
  859. package/dist/services/context-analyzer.service.d.ts.map +1 -0
  860. package/dist/services/context-analyzer.service.js +323 -0
  861. package/dist/services/context-analyzer.service.js.map +1 -0
  862. package/dist/services/diagnostics.service.d.ts +40 -0
  863. package/dist/services/diagnostics.service.d.ts.map +1 -0
  864. package/dist/services/diagnostics.service.js +245 -0
  865. package/dist/services/diagnostics.service.js.map +1 -0
  866. package/dist/services/document-detector.service.d.ts +89 -0
  867. package/dist/services/document-detector.service.d.ts.map +1 -0
  868. package/dist/services/document-detector.service.js +500 -0
  869. package/dist/services/document-detector.service.js.map +1 -0
  870. package/dist/services/document-path-resolver.service.d.ts +68 -0
  871. package/dist/services/document-path-resolver.service.d.ts.map +1 -0
  872. package/dist/services/document-path-resolver.service.js +155 -0
  873. package/dist/services/document-path-resolver.service.js.map +1 -0
  874. package/dist/services/document-template.service.d.ts +83 -0
  875. package/dist/services/document-template.service.d.ts.map +1 -0
  876. package/dist/services/document-template.service.js +317 -0
  877. package/dist/services/document-template.service.js.map +1 -0
  878. package/dist/services/document-writer.service.d.ts +42 -0
  879. package/dist/services/document-writer.service.d.ts.map +1 -0
  880. package/dist/services/document-writer.service.js +155 -0
  881. package/dist/services/document-writer.service.js.map +1 -0
  882. package/dist/services/dynamic-agent-resolver.service.d.ts +81 -0
  883. package/dist/services/dynamic-agent-resolver.service.d.ts.map +1 -0
  884. package/dist/services/dynamic-agent-resolver.service.js +267 -0
  885. package/dist/services/dynamic-agent-resolver.service.js.map +1 -0
  886. package/dist/services/git-stash-protection.service.d.ts +76 -0
  887. package/dist/services/git-stash-protection.service.d.ts.map +1 -0
  888. package/dist/services/git-stash-protection.service.js +190 -0
  889. package/dist/services/git-stash-protection.service.js.map +1 -0
  890. package/dist/services/idempotency-store.service.d.ts +101 -0
  891. package/dist/services/idempotency-store.service.d.ts.map +1 -0
  892. package/dist/services/idempotency-store.service.js +418 -0
  893. package/dist/services/idempotency-store.service.js.map +1 -0
  894. package/dist/services/index.d.ts +17 -0
  895. package/dist/services/index.d.ts.map +1 -0
  896. package/dist/services/index.js +17 -0
  897. package/dist/services/index.js.map +1 -0
  898. package/dist/services/task-classifier.service.d.ts +42 -0
  899. package/dist/services/task-classifier.service.d.ts.map +1 -0
  900. package/dist/services/task-classifier.service.js +211 -0
  901. package/dist/services/task-classifier.service.js.map +1 -0
  902. package/dist/session/archive-adapter.d.ts +26 -0
  903. package/dist/session/archive-adapter.d.ts.map +1 -0
  904. package/dist/session/archive-adapter.interface.d.ts +59 -0
  905. package/dist/session/archive-adapter.interface.d.ts.map +1 -0
  906. package/dist/session/archive-adapter.interface.js +11 -0
  907. package/dist/session/archive-adapter.interface.js.map +1 -0
  908. package/dist/session/archive-adapter.js +72 -0
  909. package/dist/session/archive-adapter.js.map +1 -0
  910. package/dist/session/cleanup-scheduler.d.ts +22 -0
  911. package/dist/session/cleanup-scheduler.d.ts.map +1 -0
  912. package/dist/session/cleanup-scheduler.js +96 -0
  913. package/dist/session/cleanup-scheduler.js.map +1 -0
  914. package/dist/session/context.d.ts +109 -0
  915. package/dist/session/context.d.ts.map +1 -0
  916. package/dist/session/context.js +253 -0
  917. package/dist/session/context.js.map +1 -0
  918. package/dist/session/index.d.ts +9 -0
  919. package/dist/session/index.d.ts.map +1 -0
  920. package/dist/session/index.js +9 -0
  921. package/dist/session/index.js.map +1 -0
  922. package/dist/session/lifecycle.d.ts +87 -0
  923. package/dist/session/lifecycle.d.ts.map +1 -0
  924. package/dist/session/lifecycle.js +301 -0
  925. package/dist/session/lifecycle.js.map +1 -0
  926. package/dist/session/retention-manager.d.ts +55 -0
  927. package/dist/session/retention-manager.d.ts.map +1 -0
  928. package/dist/session/retention-manager.js +299 -0
  929. package/dist/session/retention-manager.js.map +1 -0
  930. package/dist/session/retention-policy-runner.d.ts +19 -0
  931. package/dist/session/retention-policy-runner.d.ts.map +1 -0
  932. package/dist/session/retention-policy-runner.js +103 -0
  933. package/dist/session/retention-policy-runner.js.map +1 -0
  934. package/dist/session/session-cleanup-ui.d.ts +101 -0
  935. package/dist/session/session-cleanup-ui.d.ts.map +1 -0
  936. package/dist/session/session-cleanup-ui.js +339 -0
  937. package/dist/session/session-cleanup-ui.js.map +1 -0
  938. package/dist/session/session-exporter.d.ts +61 -0
  939. package/dist/session/session-exporter.d.ts.map +1 -0
  940. package/dist/session/session-exporter.js +274 -0
  941. package/dist/session/session-exporter.js.map +1 -0
  942. package/dist/session/store.d.ts +138 -0
  943. package/dist/session/store.d.ts.map +1 -0
  944. package/dist/session/store.js +430 -0
  945. package/dist/session/store.js.map +1 -0
  946. package/dist/session/types.d.ts +22 -0
  947. package/dist/session/types.d.ts.map +1 -0
  948. package/dist/session/types.js +7 -0
  949. package/dist/session/types.js.map +1 -0
  950. package/dist/tsconfig.json +18 -0
  951. package/dist/types/agent.types.d.ts +110 -0
  952. package/dist/types/agent.types.d.ts.map +1 -0
  953. package/dist/types/agent.types.js +5 -0
  954. package/dist/types/agent.types.js.map +1 -0
  955. package/dist/types/cli.types.d.ts +86 -0
  956. package/dist/types/cli.types.d.ts.map +1 -0
  957. package/dist/types/cli.types.js +5 -0
  958. package/dist/types/cli.types.js.map +1 -0
  959. package/dist/types/command.types.d.ts +176 -0
  960. package/dist/types/command.types.d.ts.map +1 -0
  961. package/dist/types/command.types.js +19 -0
  962. package/dist/types/command.types.js.map +1 -0
  963. package/dist/types/common.types.d.ts +31 -0
  964. package/dist/types/common.types.d.ts.map +1 -0
  965. package/dist/types/common.types.js +8 -0
  966. package/dist/types/common.types.js.map +1 -0
  967. package/dist/types/config.types.d.ts +104 -0
  968. package/dist/types/config.types.d.ts.map +1 -0
  969. package/dist/types/config.types.js +5 -0
  970. package/dist/types/config.types.js.map +1 -0
  971. package/dist/types/diagnostics.types.d.ts +18 -0
  972. package/dist/types/diagnostics.types.d.ts.map +1 -0
  973. package/dist/types/diagnostics.types.js +8 -0
  974. package/dist/types/diagnostics.types.js.map +1 -0
  975. package/dist/types/document.types.d.ts +127 -0
  976. package/dist/types/document.types.d.ts.map +1 -0
  977. package/dist/types/document.types.js +73 -0
  978. package/dist/types/document.types.js.map +1 -0
  979. package/dist/types/error.types.d.ts +48 -0
  980. package/dist/types/error.types.d.ts.map +1 -0
  981. package/dist/types/error.types.js +16 -0
  982. package/dist/types/error.types.js.map +1 -0
  983. package/dist/types/escalation.types.d.ts +76 -0
  984. package/dist/types/escalation.types.d.ts.map +1 -0
  985. package/dist/types/escalation.types.js +15 -0
  986. package/dist/types/escalation.types.js.map +1 -0
  987. package/dist/types/exploration.types.d.ts +298 -0
  988. package/dist/types/exploration.types.d.ts.map +1 -0
  989. package/dist/types/exploration.types.js +5 -0
  990. package/dist/types/exploration.types.js.map +1 -0
  991. package/dist/types/hook.types.d.ts +47 -0
  992. package/dist/types/hook.types.d.ts.map +1 -0
  993. package/dist/types/hook.types.js +8 -0
  994. package/dist/types/hook.types.js.map +1 -0
  995. package/dist/types/idempotency.types.d.ts +80 -0
  996. package/dist/types/idempotency.types.d.ts.map +1 -0
  997. package/dist/types/idempotency.types.js +16 -0
  998. package/dist/types/idempotency.types.js.map +1 -0
  999. package/dist/types/index.d.ts +25 -0
  1000. package/dist/types/index.d.ts.map +1 -0
  1001. package/dist/types/index.js +25 -0
  1002. package/dist/types/index.js.map +1 -0
  1003. package/dist/types/llm.types.d.ts +73 -0
  1004. package/dist/types/llm.types.d.ts.map +1 -0
  1005. package/dist/types/llm.types.js +5 -0
  1006. package/dist/types/llm.types.js.map +1 -0
  1007. package/dist/types/logger.types.d.ts +21 -0
  1008. package/dist/types/logger.types.d.ts.map +1 -0
  1009. package/dist/types/logger.types.js +9 -0
  1010. package/dist/types/logger.types.js.map +1 -0
  1011. package/dist/types/mcp-client.types.d.ts +232 -0
  1012. package/dist/types/mcp-client.types.d.ts.map +1 -0
  1013. package/dist/types/mcp-client.types.js +8 -0
  1014. package/dist/types/mcp-client.types.js.map +1 -0
  1015. package/dist/types/mcp-registry.types.d.ts +49 -0
  1016. package/dist/types/mcp-registry.types.d.ts.map +1 -0
  1017. package/dist/types/mcp-registry.types.js +70 -0
  1018. package/dist/types/mcp-registry.types.js.map +1 -0
  1019. package/dist/types/mcp.types.d.ts +127 -0
  1020. package/dist/types/mcp.types.d.ts.map +1 -0
  1021. package/dist/types/mcp.types.js +5 -0
  1022. package/dist/types/mcp.types.js.map +1 -0
  1023. package/dist/types/pipeline.types.d.ts +139 -0
  1024. package/dist/types/pipeline.types.d.ts.map +1 -0
  1025. package/dist/types/pipeline.types.js +26 -0
  1026. package/dist/types/pipeline.types.js.map +1 -0
  1027. package/dist/types/prompt.types.d.ts +66 -0
  1028. package/dist/types/prompt.types.d.ts.map +1 -0
  1029. package/dist/types/prompt.types.js +5 -0
  1030. package/dist/types/prompt.types.js.map +1 -0
  1031. package/dist/types/provider-names.types.d.ts +56 -0
  1032. package/dist/types/provider-names.types.d.ts.map +1 -0
  1033. package/dist/types/provider-names.types.js +63 -0
  1034. package/dist/types/provider-names.types.js.map +1 -0
  1035. package/dist/types/provider.types.d.ts +22 -0
  1036. package/dist/types/provider.types.d.ts.map +1 -0
  1037. package/dist/types/provider.types.js +21 -0
  1038. package/dist/types/provider.types.js.map +1 -0
  1039. package/dist/types/session.types.d.ts +121 -0
  1040. package/dist/types/session.types.d.ts.map +1 -0
  1041. package/dist/types/session.types.js +5 -0
  1042. package/dist/types/session.types.js.map +1 -0
  1043. package/dist/types/tracing.types.d.ts +176 -0
  1044. package/dist/types/tracing.types.d.ts.map +1 -0
  1045. package/dist/types/tracing.types.js +77 -0
  1046. package/dist/types/tracing.types.js.map +1 -0
  1047. package/dist/types/ui.types.d.ts +88 -0
  1048. package/dist/types/ui.types.d.ts.map +1 -0
  1049. package/dist/types/ui.types.js +8 -0
  1050. package/dist/types/ui.types.js.map +1 -0
  1051. package/dist/types/workflow.types.d.ts +63 -0
  1052. package/dist/types/workflow.types.d.ts.map +1 -0
  1053. package/dist/types/workflow.types.js +5 -0
  1054. package/dist/types/workflow.types.js.map +1 -0
  1055. package/dist/ui/dashboard-tui.d.ts +38 -0
  1056. package/dist/ui/dashboard-tui.d.ts.map +1 -0
  1057. package/dist/ui/dashboard-tui.js +422 -0
  1058. package/dist/ui/dashboard-tui.js.map +1 -0
  1059. package/dist/ui/prompt-adapter.d.ts +37 -0
  1060. package/dist/ui/prompt-adapter.d.ts.map +1 -0
  1061. package/dist/ui/prompt-adapter.interface.d.ts +175 -0
  1062. package/dist/ui/prompt-adapter.interface.d.ts.map +1 -0
  1063. package/dist/ui/prompt-adapter.interface.js +54 -0
  1064. package/dist/ui/prompt-adapter.interface.js.map +1 -0
  1065. package/dist/ui/prompt-adapter.js +45 -0
  1066. package/dist/ui/prompt-adapter.js.map +1 -0
  1067. package/dist/ui/spinner-adapter.d.ts +29 -0
  1068. package/dist/ui/spinner-adapter.d.ts.map +1 -0
  1069. package/dist/ui/spinner-adapter.interface.d.ts +200 -0
  1070. package/dist/ui/spinner-adapter.interface.d.ts.map +1 -0
  1071. package/dist/ui/spinner-adapter.interface.js +53 -0
  1072. package/dist/ui/spinner-adapter.interface.js.map +1 -0
  1073. package/dist/ui/spinner-adapter.js +40 -0
  1074. package/dist/ui/spinner-adapter.js.map +1 -0
  1075. package/dist/ui/tui-adapter.d.ts +52 -0
  1076. package/dist/ui/tui-adapter.d.ts.map +1 -0
  1077. package/dist/ui/tui-adapter.interface.d.ts +197 -0
  1078. package/dist/ui/tui-adapter.interface.d.ts.map +1 -0
  1079. package/dist/ui/tui-adapter.interface.js +62 -0
  1080. package/dist/ui/tui-adapter.interface.js.map +1 -0
  1081. package/dist/ui/tui-adapter.js +58 -0
  1082. package/dist/ui/tui-adapter.js.map +1 -0
  1083. package/dist/utils/base-cleanup-scheduler.d.ts +60 -0
  1084. package/dist/utils/base-cleanup-scheduler.d.ts.map +1 -0
  1085. package/dist/utils/base-cleanup-scheduler.js +110 -0
  1086. package/dist/utils/base-cleanup-scheduler.js.map +1 -0
  1087. package/dist/utils/base-retention-manager.d.ts +136 -0
  1088. package/dist/utils/base-retention-manager.d.ts.map +1 -0
  1089. package/dist/utils/base-retention-manager.js +234 -0
  1090. package/dist/utils/base-retention-manager.js.map +1 -0
  1091. package/dist/utils/console-interceptor.d.ts +52 -0
  1092. package/dist/utils/console-interceptor.d.ts.map +1 -0
  1093. package/dist/utils/console-interceptor.js +92 -0
  1094. package/dist/utils/console-interceptor.js.map +1 -0
  1095. package/dist/utils/data-sanitizer.d.ts +106 -0
  1096. package/dist/utils/data-sanitizer.d.ts.map +1 -0
  1097. package/dist/utils/data-sanitizer.js +295 -0
  1098. package/dist/utils/data-sanitizer.js.map +1 -0
  1099. package/dist/utils/diff-generator.d.ts +42 -0
  1100. package/dist/utils/diff-generator.d.ts.map +1 -0
  1101. package/dist/utils/diff-generator.js +286 -0
  1102. package/dist/utils/diff-generator.js.map +1 -0
  1103. package/dist/utils/docs-linter.d.ts +178 -0
  1104. package/dist/utils/docs-linter.d.ts.map +1 -0
  1105. package/dist/utils/docs-linter.js +623 -0
  1106. package/dist/utils/docs-linter.js.map +1 -0
  1107. package/dist/utils/domain-keyword-registry.d.ts +57 -0
  1108. package/dist/utils/domain-keyword-registry.d.ts.map +1 -0
  1109. package/dist/utils/domain-keyword-registry.js +253 -0
  1110. package/dist/utils/domain-keyword-registry.js.map +1 -0
  1111. package/dist/utils/encryption.d.ts +111 -0
  1112. package/dist/utils/encryption.d.ts.map +1 -0
  1113. package/dist/utils/encryption.js +304 -0
  1114. package/dist/utils/encryption.js.map +1 -0
  1115. package/dist/utils/environment.d.ts +37 -0
  1116. package/dist/utils/environment.d.ts.map +1 -0
  1117. package/dist/utils/environment.js +87 -0
  1118. package/dist/utils/environment.js.map +1 -0
  1119. package/dist/utils/error-handler.d.ts +130 -0
  1120. package/dist/utils/error-handler.d.ts.map +1 -0
  1121. package/dist/utils/error-handler.js +319 -0
  1122. package/dist/utils/error-handler.js.map +1 -0
  1123. package/dist/utils/error-messages.d.ts +23 -0
  1124. package/dist/utils/error-messages.d.ts.map +1 -0
  1125. package/dist/utils/error-messages.js +160 -0
  1126. package/dist/utils/error-messages.js.map +1 -0
  1127. package/dist/utils/error-utils.d.ts +26 -0
  1128. package/dist/utils/error-utils.d.ts.map +1 -0
  1129. package/dist/utils/error-utils.js +33 -0
  1130. package/dist/utils/error-utils.js.map +1 -0
  1131. package/dist/utils/file-lock.d.ts +77 -0
  1132. package/dist/utils/file-lock.d.ts.map +1 -0
  1133. package/dist/utils/file-lock.js +355 -0
  1134. package/dist/utils/file-lock.js.map +1 -0
  1135. package/dist/utils/file-utils.d.ts +71 -0
  1136. package/dist/utils/file-utils.d.ts.map +1 -0
  1137. package/dist/utils/file-utils.js +235 -0
  1138. package/dist/utils/file-utils.js.map +1 -0
  1139. package/dist/utils/heap-profiler.d.ts +20 -0
  1140. package/dist/utils/heap-profiler.d.ts.map +1 -0
  1141. package/dist/utils/heap-profiler.js +60 -0
  1142. package/dist/utils/heap-profiler.js.map +1 -0
  1143. package/dist/utils/help-content.d.ts +117 -0
  1144. package/dist/utils/help-content.d.ts.map +1 -0
  1145. package/dist/utils/help-content.js +1512 -0
  1146. package/dist/utils/help-content.js.map +1 -0
  1147. package/dist/utils/id-generator.d.ts +45 -0
  1148. package/dist/utils/id-generator.d.ts.map +1 -0
  1149. package/dist/utils/id-generator.js +62 -0
  1150. package/dist/utils/id-generator.js.map +1 -0
  1151. package/dist/utils/index.d.ts +17 -0
  1152. package/dist/utils/index.d.ts.map +1 -0
  1153. package/dist/utils/index.js +18 -0
  1154. package/dist/utils/index.js.map +1 -0
  1155. package/dist/utils/input-validator.d.ts +152 -0
  1156. package/dist/utils/input-validator.d.ts.map +1 -0
  1157. package/dist/utils/input-validator.js +494 -0
  1158. package/dist/utils/input-validator.js.map +1 -0
  1159. package/dist/utils/markdown-parser.d.ts +32 -0
  1160. package/dist/utils/markdown-parser.d.ts.map +1 -0
  1161. package/dist/utils/markdown-parser.js +85 -0
  1162. package/dist/utils/markdown-parser.js.map +1 -0
  1163. package/dist/utils/metrics-collector.d.ts +165 -0
  1164. package/dist/utils/metrics-collector.d.ts.map +1 -0
  1165. package/dist/utils/metrics-collector.js +392 -0
  1166. package/dist/utils/metrics-collector.js.map +1 -0
  1167. package/dist/utils/number-format.d.ts +29 -0
  1168. package/dist/utils/number-format.d.ts.map +1 -0
  1169. package/dist/utils/number-format.js +72 -0
  1170. package/dist/utils/number-format.js.map +1 -0
  1171. package/dist/utils/paths.d.ts +37 -0
  1172. package/dist/utils/paths.d.ts.map +1 -0
  1173. package/dist/utils/paths.js +91 -0
  1174. package/dist/utils/paths.js.map +1 -0
  1175. package/dist/utils/performance-profiler.d.ts +155 -0
  1176. package/dist/utils/performance-profiler.d.ts.map +1 -0
  1177. package/dist/utils/performance-profiler.js +429 -0
  1178. package/dist/utils/performance-profiler.js.map +1 -0
  1179. package/dist/utils/prompt-handler.d.ts +18 -0
  1180. package/dist/utils/prompt-handler.d.ts.map +1 -0
  1181. package/dist/utils/prompt-handler.js +66 -0
  1182. package/dist/utils/prompt-handler.js.map +1 -0
  1183. package/dist/utils/rate-limiter.d.ts +99 -0
  1184. package/dist/utils/rate-limiter.d.ts.map +1 -0
  1185. package/dist/utils/rate-limiter.js +214 -0
  1186. package/dist/utils/rate-limiter.js.map +1 -0
  1187. package/dist/utils/resource-monitor.d.ts +203 -0
  1188. package/dist/utils/resource-monitor.d.ts.map +1 -0
  1189. package/dist/utils/resource-monitor.js +521 -0
  1190. package/dist/utils/resource-monitor.js.map +1 -0
  1191. package/dist/utils/resource-resolver.d.ts +58 -0
  1192. package/dist/utils/resource-resolver.d.ts.map +1 -0
  1193. package/dist/utils/resource-resolver.js +150 -0
  1194. package/dist/utils/resource-resolver.js.map +1 -0
  1195. package/dist/utils/safe-exec.d.ts +90 -0
  1196. package/dist/utils/safe-exec.d.ts.map +1 -0
  1197. package/dist/utils/safe-exec.js +210 -0
  1198. package/dist/utils/safe-exec.js.map +1 -0
  1199. package/dist/utils/safe-regex.d.ts +49 -0
  1200. package/dist/utils/safe-regex.d.ts.map +1 -0
  1201. package/dist/utils/safe-regex.js +96 -0
  1202. package/dist/utils/safe-regex.js.map +1 -0
  1203. package/dist/utils/template-loader.d.ts +39 -0
  1204. package/dist/utils/template-loader.d.ts.map +1 -0
  1205. package/dist/utils/template-loader.js +75 -0
  1206. package/dist/utils/template-loader.js.map +1 -0
  1207. package/dist/utils/token-estimator.d.ts +60 -0
  1208. package/dist/utils/token-estimator.d.ts.map +1 -0
  1209. package/dist/utils/token-estimator.js +114 -0
  1210. package/dist/utils/token-estimator.js.map +1 -0
  1211. package/dist/utils/tracing.d.ts +166 -0
  1212. package/dist/utils/tracing.d.ts.map +1 -0
  1213. package/dist/utils/tracing.js +645 -0
  1214. package/dist/utils/tracing.js.map +1 -0
  1215. package/dist/utils/type-guards.d.ts +58 -0
  1216. package/dist/utils/type-guards.d.ts.map +1 -0
  1217. package/dist/utils/type-guards.js +103 -0
  1218. package/dist/utils/type-guards.js.map +1 -0
  1219. package/dist/utils/yaml-parser.d.ts +38 -0
  1220. package/dist/utils/yaml-parser.d.ts.map +1 -0
  1221. package/dist/utils/yaml-parser.js +71 -0
  1222. package/dist/utils/yaml-parser.js.map +1 -0
  1223. package/package.json +166 -0
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Resource Resolver - Dual-source resource resolution
3
+ *
4
+ * Resolves resources (agents, commands, prompts, templates) from two sources:
5
+ * 1. Project overrides: .valora/{type}/ (highest priority)
6
+ * 2. Package built-ins: data/{type}/ (fallback)
7
+ *
8
+ * Project-level resources override built-in ones when they share the same name.
9
+ */
10
+ import * as fs from 'fs';
11
+ import * as path from 'path';
12
+ import { getPackageDataDir, getProjectConfigDir } from './paths.js';
13
+ export class ResourceResolver {
14
+ packageDataDir;
15
+ projectConfigDir;
16
+ constructor() {
17
+ this.packageDataDir = getPackageDataDir();
18
+ this.projectConfigDir = getProjectConfigDir();
19
+ }
20
+ /**
21
+ * Get ordered list of directories to search for a resource type.
22
+ * Project directory comes first (higher priority), then package directory.
23
+ */
24
+ getSources(resourceType) {
25
+ const sources = [];
26
+ // Project override directory (highest priority)
27
+ if (this.projectConfigDir) {
28
+ const projectDir = path.join(this.projectConfigDir, resourceType);
29
+ if (fs.existsSync(projectDir)) {
30
+ sources.push(projectDir);
31
+ }
32
+ }
33
+ // Package built-in directory (fallback)
34
+ const packageDir = path.join(this.packageDataDir, resourceType);
35
+ if (fs.existsSync(packageDir)) {
36
+ sources.push(packageDir);
37
+ }
38
+ return sources;
39
+ }
40
+ /**
41
+ * Resolve the path to a single resource file.
42
+ * Project override wins over built-in.
43
+ */
44
+ resolveResource(resourceType, name) {
45
+ // Check project override first
46
+ if (this.projectConfigDir) {
47
+ const projectPath = path.join(this.projectConfigDir, resourceType, name);
48
+ if (fs.existsSync(projectPath)) {
49
+ return projectPath;
50
+ }
51
+ }
52
+ // Fall back to package built-in
53
+ const packagePath = path.join(this.packageDataDir, resourceType, name);
54
+ if (fs.existsSync(packagePath)) {
55
+ return packagePath;
56
+ }
57
+ return null;
58
+ }
59
+ /**
60
+ * Resolve a resource directory path.
61
+ * Returns the first existing directory: project override, then package built-in.
62
+ * For loaders that need a single directory path.
63
+ */
64
+ resolveResourceDir(resourceType) {
65
+ // If project override directory exists, prefer it
66
+ if (this.projectConfigDir) {
67
+ const projectDir = path.join(this.projectConfigDir, resourceType);
68
+ if (fs.existsSync(projectDir)) {
69
+ return projectDir;
70
+ }
71
+ }
72
+ // Fall back to package built-in
73
+ return path.join(this.packageDataDir, resourceType);
74
+ }
75
+ /**
76
+ * List all resources from both sources, merged with deduplication.
77
+ * Project overrides take precedence when names collide.
78
+ */
79
+ listResources(resourceType, extension) {
80
+ const resources = new Map();
81
+ // Load package built-ins first
82
+ const packageDir = path.join(this.packageDataDir, resourceType);
83
+ this.addResourcesFromDir(packageDir, 'builtin', resources, extension);
84
+ // Override with project resources (higher priority)
85
+ if (this.projectConfigDir) {
86
+ const projectDir = path.join(this.projectConfigDir, resourceType);
87
+ this.addResourcesFromDir(projectDir, 'project', resources, extension);
88
+ }
89
+ return Array.from(resources.values());
90
+ }
91
+ /**
92
+ * Get the package data directory path.
93
+ */
94
+ getPackageDataDir() {
95
+ return this.packageDataDir;
96
+ }
97
+ /**
98
+ * Get the project config directory path, or null if not in a project.
99
+ */
100
+ getProjectConfigDir() {
101
+ return this.projectConfigDir;
102
+ }
103
+ /**
104
+ * Check if a directory is within the package data dir or project config dir.
105
+ * Used for security validation.
106
+ */
107
+ isAllowedDirectory(dirPath) {
108
+ const resolvedPath = path.resolve(dirPath);
109
+ // Allow package data directory
110
+ if (resolvedPath.startsWith(path.resolve(this.packageDataDir))) {
111
+ return true;
112
+ }
113
+ // Allow project config directory
114
+ if (this.projectConfigDir && resolvedPath.startsWith(path.resolve(this.projectConfigDir))) {
115
+ return true;
116
+ }
117
+ return false;
118
+ }
119
+ addResourcesFromDir(dirPath, source, resources, extension) {
120
+ if (!fs.existsSync(dirPath))
121
+ return;
122
+ try {
123
+ const entries = fs.readdirSync(dirPath, { withFileTypes: true });
124
+ for (const entry of entries) {
125
+ if (!entry.isFile())
126
+ continue;
127
+ if (extension && !entry.name.endsWith(extension))
128
+ continue;
129
+ resources.set(entry.name, {
130
+ name: entry.name,
131
+ path: path.join(dirPath, entry.name),
132
+ source
133
+ });
134
+ }
135
+ }
136
+ catch {
137
+ // Directory unreadable, skip
138
+ }
139
+ }
140
+ }
141
+ // Singleton instance
142
+ let resolverInstance = null;
143
+ export function getResourceResolver() {
144
+ resolverInstance ??= new ResourceResolver();
145
+ return resolverInstance;
146
+ }
147
+ export function resetResourceResolver() {
148
+ resolverInstance = null;
149
+ }
150
+ //# sourceMappingURL=resource-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-resolver.js","sourceRoot":"","sources":["../../src/utils/resource-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Safe Execution Utilities - Prevent command injection
3
+ *
4
+ * Provides safe wrappers for executing git commands without shell injection risks
5
+ */
6
+ export interface ExecResult {
7
+ exitCode: number;
8
+ stderr: string;
9
+ stdout: string;
10
+ }
11
+ export interface SpawnOptions {
12
+ cwd?: string;
13
+ env?: NodeJS.ProcessEnv;
14
+ timeout?: number;
15
+ }
16
+ /**
17
+ * Custom error class for command execution failures
18
+ */
19
+ export declare class CommandExecutionError extends Error {
20
+ readonly exitCode: number;
21
+ readonly stdout: string;
22
+ readonly stderr: string;
23
+ constructor(message: string, exitCode: number, stdout: string, stderr: string);
24
+ }
25
+ /**
26
+ * Safe command execution without shell
27
+ *
28
+ * Uses spawn with argument array instead of shell interpolation
29
+ * to prevent command injection attacks
30
+ */
31
+ export declare class SafeExecutor {
32
+ /**
33
+ * Default timeout for git operations (30 seconds)
34
+ */
35
+ private static readonly DEFAULT_TIMEOUT;
36
+ /**
37
+ * Maximum buffer size for stdout/stderr (10MB)
38
+ */
39
+ private static readonly MAX_BUFFER_SIZE;
40
+ /**
41
+ * Execute git command safely
42
+ *
43
+ * @param args - Command arguments (e.g., ['worktree', 'add', '-b', branch])
44
+ * @param options - Spawn options
45
+ * @returns Command output
46
+ */
47
+ static executeGit(args: string[], options?: SpawnOptions): Promise<ExecResult>;
48
+ /**
49
+ * Execute command safely using spawn
50
+ *
51
+ * @param command - Command to execute (e.g., 'git')
52
+ * @param args - Command arguments
53
+ * @param options - Spawn options
54
+ * @returns Command output
55
+ */
56
+ static execute(command: string, args: string[], options?: SpawnOptions): Promise<ExecResult>;
57
+ /**
58
+ * Execute git command and return stdout only
59
+ *
60
+ * Convenience method for common case
61
+ */
62
+ static executeGitSimple(args: string[], options?: SpawnOptions): Promise<string>;
63
+ /**
64
+ * Check if command exists
65
+ */
66
+ static commandExists(command: string): Promise<boolean>;
67
+ }
68
+ /**
69
+ * Retry wrapper for transient failures
70
+ */
71
+ export declare class RetryExecutor {
72
+ /**
73
+ * Execute with exponential backoff retry
74
+ *
75
+ * @param fn - Function to execute
76
+ * @param maxRetries - Maximum retry attempts
77
+ * @param baseDelay - Base delay in milliseconds
78
+ * @returns Function result
79
+ */
80
+ static withRetry<T>(fn: () => Promise<T>, maxRetries?: number, baseDelay?: number): Promise<T>;
81
+ /**
82
+ * Check if error is retriable
83
+ */
84
+ private static isNonRetriableError;
85
+ /**
86
+ * Sleep for specified milliseconds
87
+ */
88
+ private static sleep;
89
+ }
90
+ //# sourceMappingURL=safe-exec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-exec.d.ts","sourceRoot":"","sources":["../../src/utils/safe-exec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,WAAW,UAAU;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;aAG9B,QAAQ,EAAE,MAAM;aAChB,MAAM,EAAE,MAAM;aACd,MAAM,EAAE,MAAM;gBAH9B,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM;CAK/B;AAED;;;;;GAKG;AACH,qBAAa,YAAY;IACxB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAS;IAEhD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAoB;IAE3D;;;;;;OAMG;WACU,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAIxF;;;;;;;OAOG;WACU,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAyFtG;;;;OAIG;WACU,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAK1F;;OAEG;WACU,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ7D;AAED;;GAEG;AACH,qBAAa,aAAa;IACzB;;;;;;;OAOG;WACU,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,GAAE,MAAU,EAAE,SAAS,GAAE,MAAa,GAAG,OAAO,CAAC,CAAC,CAAC;IA4B7G;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAqBlC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,KAAK;CAGpB"}
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Safe Execution Utilities - Prevent command injection
3
+ *
4
+ * Provides safe wrappers for executing git commands without shell injection risks
5
+ */
6
+ import { spawn } from 'child_process';
7
+ import { COMMAND_EXISTENCE_CHECK_TIMEOUT_MS, HEALTH_CHECK_INTERVAL_MS } from '../config/constants.js';
8
+ /**
9
+ * Custom error class for command execution failures
10
+ */
11
+ export class CommandExecutionError extends Error {
12
+ exitCode;
13
+ stdout;
14
+ stderr;
15
+ constructor(message, exitCode, stdout, stderr) {
16
+ super(message);
17
+ this.exitCode = exitCode;
18
+ this.stdout = stdout;
19
+ this.stderr = stderr;
20
+ this.name = 'CommandExecutionError';
21
+ }
22
+ }
23
+ /**
24
+ * Safe command execution without shell
25
+ *
26
+ * Uses spawn with argument array instead of shell interpolation
27
+ * to prevent command injection attacks
28
+ */
29
+ export class SafeExecutor {
30
+ /**
31
+ * Default timeout for git operations (30 seconds)
32
+ */
33
+ static DEFAULT_TIMEOUT = 30000;
34
+ /**
35
+ * Maximum buffer size for stdout/stderr (10MB)
36
+ */
37
+ static MAX_BUFFER_SIZE = 10 * 1024 * 1024;
38
+ /**
39
+ * Execute git command safely
40
+ *
41
+ * @param args - Command arguments (e.g., ['worktree', 'add', '-b', branch])
42
+ * @param options - Spawn options
43
+ * @returns Command output
44
+ */
45
+ static async executeGit(args, options = {}) {
46
+ return this.execute('git', args, options);
47
+ }
48
+ /**
49
+ * Execute command safely using spawn
50
+ *
51
+ * @param command - Command to execute (e.g., 'git')
52
+ * @param args - Command arguments
53
+ * @param options - Spawn options
54
+ * @returns Command output
55
+ */
56
+ static async execute(command, args, options = {}) {
57
+ return new Promise((resolve, reject) => {
58
+ const timeout = options.timeout ?? this.DEFAULT_TIMEOUT;
59
+ let stdout = '';
60
+ let stderr = '';
61
+ let timedOut = false;
62
+ // Spawn process without shell
63
+ const child = spawn(command, args, {
64
+ cwd: options.cwd,
65
+ env: options.env,
66
+ shell: false, // CRITICAL: Never use shell
67
+ stdio: ['ignore', 'pipe', 'pipe']
68
+ });
69
+ // Set timeout
70
+ const timer = setTimeout(() => {
71
+ timedOut = true;
72
+ child.kill('SIGTERM');
73
+ // Force kill after interval if still running
74
+ setTimeout(() => {
75
+ if (!child.killed) {
76
+ child.kill('SIGKILL');
77
+ }
78
+ }, HEALTH_CHECK_INTERVAL_MS);
79
+ }, timeout);
80
+ // Collect stdout
81
+ child.stdout?.on('data', (data) => {
82
+ stdout += data.toString();
83
+ // Prevent memory exhaustion
84
+ if (stdout.length > this.MAX_BUFFER_SIZE) {
85
+ child.kill('SIGTERM');
86
+ reject(new Error('Command output exceeded maximum buffer size'));
87
+ }
88
+ });
89
+ // Collect stderr
90
+ child.stderr?.on('data', (data) => {
91
+ stderr += data.toString();
92
+ // Prevent memory exhaustion
93
+ if (stderr.length > this.MAX_BUFFER_SIZE) {
94
+ child.kill('SIGTERM');
95
+ reject(new Error('Command error output exceeded maximum buffer size'));
96
+ }
97
+ });
98
+ // Handle completion
99
+ child.on('close', (code) => {
100
+ clearTimeout(timer);
101
+ if (timedOut) {
102
+ reject(new Error(`Command timed out after ${timeout}ms`));
103
+ return;
104
+ }
105
+ const exitCode = code ?? -1;
106
+ // Git commands that write to stderr even on success
107
+ const successWithStderr = stderr && (stderr.includes('Preparing worktree') || stderr.includes('Switched to'));
108
+ if (exitCode === 0 || successWithStderr) {
109
+ resolve({
110
+ exitCode,
111
+ stderr,
112
+ stdout
113
+ });
114
+ }
115
+ else {
116
+ const error = new CommandExecutionError(`Command failed with exit code ${exitCode}: ${stderr || stdout}`, exitCode, stdout, stderr);
117
+ reject(error);
118
+ }
119
+ });
120
+ // Handle errors
121
+ child.on('error', (error) => {
122
+ clearTimeout(timer);
123
+ reject(new Error(`Failed to execute ${command}: ${error.message}`));
124
+ });
125
+ });
126
+ }
127
+ /**
128
+ * Execute git command and return stdout only
129
+ *
130
+ * Convenience method for common case
131
+ */
132
+ static async executeGitSimple(args, options = {}) {
133
+ const result = await this.executeGit(args, options);
134
+ return result.stdout;
135
+ }
136
+ /**
137
+ * Check if command exists
138
+ */
139
+ static async commandExists(command) {
140
+ try {
141
+ await this.execute('which', [command], { timeout: COMMAND_EXISTENCE_CHECK_TIMEOUT_MS });
142
+ return true;
143
+ }
144
+ catch {
145
+ return false;
146
+ }
147
+ }
148
+ }
149
+ /**
150
+ * Retry wrapper for transient failures
151
+ */
152
+ export class RetryExecutor {
153
+ /**
154
+ * Execute with exponential backoff retry
155
+ *
156
+ * @param fn - Function to execute
157
+ * @param maxRetries - Maximum retry attempts
158
+ * @param baseDelay - Base delay in milliseconds
159
+ * @returns Function result
160
+ */
161
+ static async withRetry(fn, maxRetries = 3, baseDelay = 1000) {
162
+ let lastError = null;
163
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
164
+ try {
165
+ return await fn();
166
+ }
167
+ catch (error) {
168
+ lastError = error;
169
+ // Don't retry on validation errors or non-transient errors
170
+ if (this.isNonRetriableError(error)) {
171
+ throw error;
172
+ }
173
+ // Don't retry on last attempt
174
+ if (attempt === maxRetries) {
175
+ break;
176
+ }
177
+ // Exponential backoff with jitter
178
+ const delay = baseDelay * Math.pow(2, attempt) + Math.random() * 1000;
179
+ await this.sleep(delay);
180
+ }
181
+ }
182
+ throw new Error(`Operation failed after ${maxRetries} retries: ${lastError?.message}`);
183
+ }
184
+ /**
185
+ * Check if error is retriable
186
+ */
187
+ static isNonRetriableError(error) {
188
+ const message = error.message.toLowerCase();
189
+ // Validation errors - don't retry
190
+ if (message.includes('validation') || message.includes('invalid')) {
191
+ return true;
192
+ }
193
+ // Path/branch already exists - don't retry
194
+ if (message.includes('already exists') || message.includes('not found')) {
195
+ return true;
196
+ }
197
+ // Permission errors - don't retry
198
+ if (message.includes('permission denied') || message.includes('access denied')) {
199
+ return true;
200
+ }
201
+ return false;
202
+ }
203
+ /**
204
+ * Sleep for specified milliseconds
205
+ */
206
+ static sleep(ms) {
207
+ return new Promise((resolve) => setTimeout(resolve, ms));
208
+ }
209
+ }
210
+ //# sourceMappingURL=safe-exec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-exec.js","sourceRoot":"","sources":["../../src/utils/safe-exec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Safe Regex Utilities
3
+ *
4
+ * Mitigates ReDoS (Regular Expression Denial of Service) risks when
5
+ * constructing RegExp from user-provided patterns (e.g. hook matchers
6
+ * in config). Since patterns are user-authored and local, the risk is
7
+ * low, but these guards prevent accidental catastrophic backtracking.
8
+ *
9
+ * Provides:
10
+ * - Static detection of patterns prone to catastrophic backtracking
11
+ * - Bounded regex test that limits input length
12
+ * - Regex-special-character escaping for safe interpolation
13
+ */
14
+ /**
15
+ * Check whether a regex pattern string is likely vulnerable to ReDoS
16
+ * via catastrophic backtracking.
17
+ *
18
+ * This is a heuristic check — it will not catch every possible ReDoS
19
+ * pattern, but it reliably detects the most common dangerous structures
20
+ * (nested quantifiers, overlapping alternations with quantifiers).
21
+ *
22
+ * @param pattern - The regex source string to analyse
23
+ * @returns Object with `safe` boolean and optional `reason` string
24
+ */
25
+ export declare function checkReDoSRisk(pattern: string): {
26
+ reason?: string;
27
+ safe: boolean;
28
+ };
29
+ /**
30
+ * Test a regex against an input string with ReDoS safeguards:
31
+ * 1. Input length is capped to prevent long-input amplification.
32
+ * 2. Returns false (no match) if input exceeds the cap — tool names
33
+ * and similar identifiers should always be short.
34
+ *
35
+ * @param regex - The compiled RegExp to test
36
+ * @param input - The string to test against
37
+ * @param maxLen - Maximum allowed input length (default 1024)
38
+ * @returns true if the regex matches the (bounded) input
39
+ */
40
+ export declare function safeRegexTest(regex: RegExp, input: string, maxLen?: number): boolean;
41
+ /**
42
+ * Escape all regex-special characters in a string so it can be safely
43
+ * interpolated into a RegExp pattern as a literal.
44
+ *
45
+ * @param str - The string to escape
46
+ * @returns The escaped string safe for `new RegExp(...)` interpolation
47
+ */
48
+ export declare function escapeRegExp(str: string): string;
49
+ //# sourceMappingURL=safe-regex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-regex.d.ts","sourceRoot":"","sources":["../../src/utils/safe-regex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAqCH;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAUlF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAiC,GAAG,OAAO,CAK9G;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Safe Regex Utilities
3
+ *
4
+ * Mitigates ReDoS (Regular Expression Denial of Service) risks when
5
+ * constructing RegExp from user-provided patterns (e.g. hook matchers
6
+ * in config). Since patterns are user-authored and local, the risk is
7
+ * low, but these guards prevent accidental catastrophic backtracking.
8
+ *
9
+ * Provides:
10
+ * - Static detection of patterns prone to catastrophic backtracking
11
+ * - Bounded regex test that limits input length
12
+ * - Regex-special-character escaping for safe interpolation
13
+ */
14
+ /**
15
+ * Maximum input length for safeRegexTest.
16
+ * Tool names and similar identifiers should never approach this limit.
17
+ */
18
+ const DEFAULT_MAX_INPUT_LENGTH = 1024;
19
+ /**
20
+ * Heuristic patterns that indicate a regex may be vulnerable to
21
+ * catastrophic backtracking (ReDoS). These detect the most common
22
+ * problematic structures:
23
+ *
24
+ * 1. Nested quantifiers: (a+)+, (a*)+, (a+)*, (a*)*, (a+)?, (a*)?
25
+ * 2. Overlapping alternation with quantifier: (a|a)+
26
+ * 3. Quantified groups containing quantified alternations
27
+ */
28
+ const REDOS_HEURISTICS = [
29
+ {
30
+ name: 'nested_quantifier',
31
+ // A quantifier (+, *, {n,}) immediately after a group close that itself
32
+ // contains a quantifier. Catches (x+)+, (x*)+, (x+)*, etc.
33
+ pattern: /([+*]|\{\d+,\d*\})\)([+*?]|\{\d+,\d*\})/
34
+ },
35
+ {
36
+ name: 'nested_quantifier_noncapturing',
37
+ // Same but for non-capturing groups: (?:x+)+
38
+ pattern: /([+*]|\{\d+,\d*\})\)([+*?]|\{\d+,\d*\})/
39
+ },
40
+ {
41
+ name: 'overlapping_alternation_quantified',
42
+ // Alternation of overlapping patterns inside a quantified group:
43
+ // (a|a)+, (\w|\d)+, (.|x)+ etc.
44
+ pattern: /\((?:[^)]*\|[^)]*)\)[+*]/
45
+ }
46
+ ];
47
+ /**
48
+ * Check whether a regex pattern string is likely vulnerable to ReDoS
49
+ * via catastrophic backtracking.
50
+ *
51
+ * This is a heuristic check — it will not catch every possible ReDoS
52
+ * pattern, but it reliably detects the most common dangerous structures
53
+ * (nested quantifiers, overlapping alternations with quantifiers).
54
+ *
55
+ * @param pattern - The regex source string to analyse
56
+ * @returns Object with `safe` boolean and optional `reason` string
57
+ */
58
+ export function checkReDoSRisk(pattern) {
59
+ for (const { name, pattern: heuristic } of REDOS_HEURISTICS) {
60
+ if (heuristic.test(pattern)) {
61
+ return {
62
+ reason: `Pattern may cause catastrophic backtracking (${name}): "${pattern}"`,
63
+ safe: false
64
+ };
65
+ }
66
+ }
67
+ return { safe: true };
68
+ }
69
+ /**
70
+ * Test a regex against an input string with ReDoS safeguards:
71
+ * 1. Input length is capped to prevent long-input amplification.
72
+ * 2. Returns false (no match) if input exceeds the cap — tool names
73
+ * and similar identifiers should always be short.
74
+ *
75
+ * @param regex - The compiled RegExp to test
76
+ * @param input - The string to test against
77
+ * @param maxLen - Maximum allowed input length (default 1024)
78
+ * @returns true if the regex matches the (bounded) input
79
+ */
80
+ export function safeRegexTest(regex, input, maxLen = DEFAULT_MAX_INPUT_LENGTH) {
81
+ if (input.length > maxLen) {
82
+ return false;
83
+ }
84
+ return regex.test(input);
85
+ }
86
+ /**
87
+ * Escape all regex-special characters in a string so it can be safely
88
+ * interpolated into a RegExp pattern as a literal.
89
+ *
90
+ * @param str - The string to escape
91
+ * @returns The escaped string safe for `new RegExp(...)` interpolation
92
+ */
93
+ export function escapeRegExp(str) {
94
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
95
+ }
96
+ //# sourceMappingURL=safe-regex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-regex.js","sourceRoot":"","sources":["../../src/utils/safe-regex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;GAGG;AACH,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAEtC;;;;;;;;GAQG;AACH,MAAM,gBAAgB,GAA6C;IAClE;QACC,IAAI,EAAE,mBAAmB;QACzB,wEAAwE;QACxE,2DAA2D;QAC3D,OAAO,EAAE,yCAAyC;KAClD;IACD;QACC,IAAI,EAAE,gCAAgC;QACtC,6CAA6C;QAC7C,OAAO,EAAE,yCAAyC;KAClD;IACD;QACC,IAAI,EAAE,oCAAoC;QAC1C,iEAAiE;QACjE,gCAAgC;QAChC,OAAO,EAAE,0BAA0B;KACnC;CACD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC7C,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,gBAAgB,EAAE,CAAC;QAC7D,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACN,MAAM,EAAE,gDAAgD,IAAI,OAAO,OAAO,GAAG;gBAC7E,IAAI,EAAE,KAAK;aACX,CAAC;QACH,CAAC;IACF,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACvB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,KAAa,EAAE,SAAiB,wBAAwB;IACpG,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACvC,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Template Loader - Loads and populates template files with variables
3
+ *
4
+ * Provides caching and variable substitution for markdown templates
5
+ */
6
+ export interface TemplateVariables {
7
+ [key: string]: number | string | undefined;
8
+ }
9
+ export declare class TemplateLoader {
10
+ private templateCache;
11
+ /**
12
+ * Load a template file from data/templates/
13
+ * Results are cached for performance
14
+ */
15
+ loadTemplate(templateName: string): Promise<string>;
16
+ /**
17
+ * Populate template with variable values
18
+ * Replaces {{variableName}} placeholders with actual values
19
+ */
20
+ populateTemplate(template: string, variables: TemplateVariables): string;
21
+ /**
22
+ * Load a template and populate it with variables in one call
23
+ */
24
+ renderTemplate(templateName: string, variables: TemplateVariables): Promise<string>;
25
+ /**
26
+ * Clear the template cache
27
+ * Useful for testing or if templates are modified at runtime
28
+ */
29
+ clearCache(): void;
30
+ }
31
+ /**
32
+ * Get the singleton TemplateLoader instance
33
+ */
34
+ export declare function getTemplateLoader(): TemplateLoader;
35
+ /**
36
+ * Reset the singleton instance (useful for testing)
37
+ */
38
+ export declare function resetTemplateLoader(): void;
39
+ //# sourceMappingURL=template-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-loader.d.ts","sourceRoot":"","sources":["../../src/utils/template-loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,iBAAiB;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,qBAAa,cAAc;IAC1B,OAAO,CAAC,aAAa,CAAkC;IAEvD;;;OAGG;IACG,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBzD;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,MAAM;IAexE;;OAEG;IACG,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAKzF;;;OAGG;IACH,UAAU,IAAI,IAAI;CAGlB;AAKD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAGlD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}