@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,1032 @@
1
+ /**
2
+ * Processing Feedback - Shows user feedback during LLM processing
3
+ *
4
+ * Listens to pipeline events and displays an animated spinner
5
+ * so users know what's happening while the system is "thinking".
6
+ */
7
+ import { CONTEXT_THRESHOLD_WARNING, HIGH_CONFIDENCE_THRESHOLD } from '../config/constants.js';
8
+ import { getModelContextWindow } from '../config/providers.config.js';
9
+ import { PipelineEventType } from '../types/pipeline.types.js';
10
+ import { formatNumber } from '../utils/number-format.js';
11
+ import { getColorAdapter } from './color-adapter.interface.js';
12
+ import { getPipelineEmitter } from './pipeline-emitter.js';
13
+ import { ANSI, SPINNER_FRAMES, truncateToWidth } from './terminal-utils.js';
14
+ /**
15
+ * Thinking phrases to cycle through during processing
16
+ */
17
+ const THINKING_PHRASES = ['Thinking', 'Analyzing', 'Processing', 'Reasoning', 'Considering', 'Evaluating', 'Working'];
18
+ /**
19
+ * Maximum length for tools list in output
20
+ */
21
+ const MAX_TOOLS_LIST_LENGTH = 60;
22
+ export class ProcessingFeedback {
23
+ activeLLMRequests = 0;
24
+ activeParallelStages = new Map();
25
+ /** Context window usage tracking */
26
+ contextWindow = null;
27
+ currentActivity = '';
28
+ currentGroup = null;
29
+ currentModel = null;
30
+ currentStage = null;
31
+ emitter;
32
+ enabled;
33
+ eventHandler = null;
34
+ groupDepth = 0;
35
+ options;
36
+ phraseIndex = 0;
37
+ phraseInterval = null;
38
+ /** Session info for displaying execution mode */
39
+ sessionInfo = null;
40
+ spinnerFrame = 0;
41
+ startTime = null;
42
+ statusBarInterval = null;
43
+ statusBarVisible = false;
44
+ constructor(options = {}) {
45
+ this.options = {
46
+ enabled: true,
47
+ showModel: true,
48
+ showStage: true,
49
+ ...options
50
+ };
51
+ this.enabled = this.options.enabled ?? true;
52
+ this.emitter = getPipelineEmitter();
53
+ }
54
+ /**
55
+ * Start listening for pipeline events and showing feedback
56
+ */
57
+ start() {
58
+ if (!this.enabled)
59
+ return;
60
+ this.eventHandler = this.handleEvent.bind(this);
61
+ this.emitter.onAny(this.eventHandler);
62
+ }
63
+ /**
64
+ * Stop listening and clean up
65
+ */
66
+ stop() {
67
+ if (this.eventHandler) {
68
+ this.emitter.offAny(this.eventHandler);
69
+ this.eventHandler = null;
70
+ }
71
+ this.hideStatusBar();
72
+ this.stopPhraseRotation();
73
+ this.reset();
74
+ }
75
+ /**
76
+ * Handle pipeline events
77
+ */
78
+ handleEvent(event) {
79
+ const eventHandlers = {
80
+ [PipelineEventType.LLM_REQUEST]: (e) => this.handleLLMRequest(e),
81
+ [PipelineEventType.LLM_RESPONSE]: (e) => this.handleLLMResponse(e),
82
+ [PipelineEventType.PIPELINE_COMPLETE]: () => this.handlePipelineComplete(),
83
+ [PipelineEventType.PIPELINE_ERROR]: (e) => this.handlePipelineError(e),
84
+ [PipelineEventType.PIPELINE_START]: (e) => this.handlePipelineStart(e),
85
+ [PipelineEventType.STAGE_COMPLETE]: (e) => this.handleStageComplete(e),
86
+ [PipelineEventType.STAGE_ERROR]: (e) => this.handleStageError(e),
87
+ [PipelineEventType.STAGE_START]: (e) => this.handleStageStart(e)
88
+ };
89
+ eventHandlers[event.type]?.(event);
90
+ }
91
+ /**
92
+ * Handle pipeline start - capture initial context and session info
93
+ */
94
+ handlePipelineStart(event) {
95
+ this.currentModel = event.model ?? null;
96
+ this.startTime = Date.now();
97
+ this.sessionInfo = event.sessionInfo ?? null;
98
+ }
99
+ /**
100
+ * Handle stage start - print group header with active indicator
101
+ */
102
+ handleStageStart(event) {
103
+ this.currentStage = event.stage ?? null;
104
+ if (!this.currentStage) {
105
+ return;
106
+ }
107
+ const stageName = this.currentStage.includes('.') ? this.currentStage.split('.').pop() : this.currentStage;
108
+ const isParallel = event.isParallel ?? false;
109
+ // Register the stage with active state
110
+ this.activeParallelStages.set(this.currentStage, {
111
+ childCount: 0,
112
+ isParallel,
113
+ messageBuffer: [],
114
+ name: stageName ?? 'Stage',
115
+ startTime: Date.now(),
116
+ state: 'active',
117
+ tokenCount: 0,
118
+ worktreeInfo: event.worktreeInfo
119
+ });
120
+ // Print initial group header (will be animated by drawStatusBar)
121
+ this.printGroupHeaderDirect(stageName ?? 'Stage', event.worktreeInfo, isParallel);
122
+ // Start status bar if not already showing
123
+ if (!this.statusBarVisible) {
124
+ this.showStatusBar();
125
+ }
126
+ }
127
+ /**
128
+ * Print initial group header directly (for active states, will be animated by drawStatusBar)
129
+ */
130
+ printGroupHeaderDirect(name, worktreeInfo, isParallel) {
131
+ if (this.isMcpMode())
132
+ return;
133
+ const color = getColorAdapter();
134
+ const frame = SPINNER_FRAMES[this.spinnerFrame % SPINNER_FRAMES.length] ?? '⠋';
135
+ const spinnerChar = color.cyan(frame);
136
+ const worktreeSuffix = worktreeInfo ? color.dim(` [${worktreeInfo.branch}]`) : '';
137
+ const executionMode = isParallel ? 'Parallel' : 'Sequential';
138
+ const headerText = `${spinnerChar} ${name} ${color.dim(`| ${executionMode}`)}${worktreeSuffix}`;
139
+ if (this.statusBarVisible) {
140
+ // Move to start of margin line (3 lines up from context insights line)
141
+ process.stderr.write(`${ANSI.moveToCol(1)}${ANSI.cursorUp(3)}`);
142
+ // Clear all 4 lines of status bar area
143
+ process.stderr.write(`${ANSI.CLEAR_LINE}`);
144
+ process.stderr.write(`${ANSI.cursorDown(1)}${ANSI.moveToCol(1)}${ANSI.CLEAR_LINE}`);
145
+ process.stderr.write(`${ANSI.cursorDown(1)}${ANSI.moveToCol(1)}${ANSI.CLEAR_LINE}`);
146
+ process.stderr.write(`${ANSI.cursorDown(1)}${ANSI.moveToCol(1)}${ANSI.CLEAR_LINE}`);
147
+ // Move back to margin position
148
+ process.stderr.write(`${ANSI.cursorUp(3)}${ANSI.moveToCol(1)}`);
149
+ // Print margin before group + header
150
+ process.stderr.write(`\n${headerText}\n`);
151
+ // Print margin before separator
152
+ process.stderr.write('\n');
153
+ // Redraw separator and status bar (with context insights)
154
+ this.drawSeparatorLine(); // separator + \n, cursor on status bar line
155
+ // Reserve both lines by writing content then clear
156
+ process.stderr.write(' \n'); // status bar line placeholder
157
+ process.stderr.write(' '); // context insights line placeholder
158
+ process.stderr.write(`${ANSI.moveToCol(1)}`); // move to start of context insights line
159
+ this.drawStatusBarOnly(); // cursor remains on context insights line
160
+ }
161
+ else {
162
+ process.stderr.write(`\n${headerText}\n`); // Margin before group + header
163
+ }
164
+ }
165
+ /**
166
+ * Draw horizontal separator line before status bar
167
+ */
168
+ drawSeparatorLine() {
169
+ if (this.isMcpMode())
170
+ return;
171
+ const color = getColorAdapter();
172
+ const termWidth = process.stderr.columns || 120;
173
+ const separatorLine = '─'.repeat(termWidth);
174
+ process.stderr.write(`${color.dim(separatorLine)}\n`);
175
+ }
176
+ /**
177
+ * Check if any parallel stages are currently active
178
+ * Buffer messages when any parallel stage is active to prevent interleaved output
179
+ */
180
+ isInParallelMode() {
181
+ return Array.from(this.activeParallelStages.values()).some((s) => s.state === 'active' && s.isParallel);
182
+ }
183
+ /**
184
+ * Print content above the status bar, routing to the correct stage
185
+ */
186
+ printAboveStatusBar(content, isFirstChild, stagePath) {
187
+ if (this.isMcpMode()) {
188
+ return;
189
+ }
190
+ // Add tree branch for first child message
191
+ const color = getColorAdapter();
192
+ const treePrefix = isFirstChild ? ` ${color.dim('└')} ` : ' ';
193
+ const formattedContent = content.startsWith(' ') ? `${treePrefix}${content.slice(2)}` : content;
194
+ // In parallel mode, buffer messages for their respective stages
195
+ if (this.isInParallelMode() && stagePath) {
196
+ const stage = this.activeParallelStages.get(stagePath);
197
+ if (stage) {
198
+ stage.messageBuffer.push(formattedContent);
199
+ return; // Don't print immediately, will flush on stage completion
200
+ }
201
+ }
202
+ // Sequential mode or fallback: print immediately
203
+ this.printLineAboveStatusBar(formattedContent);
204
+ }
205
+ /**
206
+ * Print a single line above the status bar (immediate output)
207
+ */
208
+ printLineAboveStatusBar(formattedContent) {
209
+ if (this.statusBarVisible) {
210
+ // Save cursor, move up past status bar area, clear and print content, restore status bar
211
+ // Status bar area = margin (1 line) + separator (1 line) + status bar (1 line) + context insights (1 line) = 4 lines
212
+ // Move to start of margin line (3 lines up from context insights line)
213
+ process.stderr.write(`${ANSI.moveToCol(1)}${ANSI.cursorUp(3)}`);
214
+ // Clear all 4 lines of status bar area
215
+ process.stderr.write(`${ANSI.CLEAR_LINE}`);
216
+ process.stderr.write(`${ANSI.cursorDown(1)}${ANSI.moveToCol(1)}${ANSI.CLEAR_LINE}`);
217
+ process.stderr.write(`${ANSI.cursorDown(1)}${ANSI.moveToCol(1)}${ANSI.CLEAR_LINE}`);
218
+ process.stderr.write(`${ANSI.cursorDown(1)}${ANSI.moveToCol(1)}${ANSI.CLEAR_LINE}`);
219
+ // Move back to margin position
220
+ process.stderr.write(`${ANSI.cursorUp(3)}${ANSI.moveToCol(1)}`);
221
+ // Print content
222
+ process.stderr.write(`${formattedContent}\n`);
223
+ // Print margin before separator
224
+ process.stderr.write('\n');
225
+ // Redraw separator and status bar (with context insights)
226
+ this.drawSeparatorLine(); // separator + \n, cursor on status bar line
227
+ // Reserve both lines by writing content then clear
228
+ process.stderr.write(' \n'); // status bar line placeholder
229
+ process.stderr.write(' '); // context insights line placeholder
230
+ process.stderr.write(`${ANSI.moveToCol(1)}`); // move to start of context insights line
231
+ this.drawStatusBarOnly(); // cursor remains on context insights line
232
+ }
233
+ else {
234
+ process.stderr.write(`${formattedContent}\n`);
235
+ }
236
+ }
237
+ /**
238
+ * Flush buffered messages for a stage (prints all messages as a block)
239
+ */
240
+ flushStageMessages(stage) {
241
+ if (stage.messageBuffer.length === 0)
242
+ return;
243
+ for (const message of stage.messageBuffer) {
244
+ this.printLineAboveStatusBar(message);
245
+ }
246
+ stage.messageBuffer = [];
247
+ }
248
+ /**
249
+ * Show the fixed status bar at the bottom
250
+ */
251
+ showStatusBar() {
252
+ if (this.isMcpMode() || this.statusBarVisible)
253
+ return;
254
+ this.statusBarVisible = true;
255
+ // Reserve margin + separator + status bar + context insights lines
256
+ // Use \n to create lines (which causes terminal to scroll if needed)
257
+ process.stderr.write('\n'); // margin
258
+ this.drawSeparatorLine(); // separator + \n, cursor on status bar line
259
+ // Reserve both status bar and context insights lines by writing content
260
+ // Writing actual characters ensures the terminal allocates these lines
261
+ process.stderr.write(' \n'); // status bar line placeholder
262
+ process.stderr.write(' '); // context insights line placeholder
263
+ // Move back to start of context insights line
264
+ process.stderr.write(`${ANSI.moveToCol(1)}`);
265
+ // Now cursor is on context insights line, draw both lines
266
+ this.drawStatusBarOnly(); // draws status (moves up) and context (stays on context line)
267
+ // Start status bar update interval
268
+ // Use unref() to allow process to exit even if interval is active
269
+ this.statusBarInterval = setInterval(() => {
270
+ this.spinnerFrame++;
271
+ this.drawStatusBar();
272
+ }, 80);
273
+ this.statusBarInterval.unref();
274
+ }
275
+ /**
276
+ * Hide the status bar
277
+ */
278
+ hideStatusBar() {
279
+ if (!this.statusBarVisible)
280
+ return;
281
+ if (this.statusBarInterval) {
282
+ clearInterval(this.statusBarInterval);
283
+ this.statusBarInterval = null;
284
+ }
285
+ // Move to start of margin line and clear all 4 lines (margin + separator + status bar + context insights)
286
+ process.stderr.write(`${ANSI.moveToCol(1)}${ANSI.cursorUp(3)}`);
287
+ process.stderr.write(`${ANSI.CLEAR_LINE}`);
288
+ process.stderr.write(`${ANSI.cursorDown(1)}${ANSI.moveToCol(1)}${ANSI.CLEAR_LINE}`);
289
+ process.stderr.write(`${ANSI.cursorDown(1)}${ANSI.moveToCol(1)}${ANSI.CLEAR_LINE}`);
290
+ process.stderr.write(`${ANSI.cursorDown(1)}${ANSI.moveToCol(1)}${ANSI.CLEAR_LINE}`);
291
+ // Move back to where content should continue
292
+ process.stderr.write(`${ANSI.cursorUp(3)}${ANSI.moveToCol(1)}`);
293
+ this.statusBarVisible = false;
294
+ }
295
+ /**
296
+ * Draw/update the status bar
297
+ */
298
+ drawStatusBar() {
299
+ this.drawStatusBarOnly();
300
+ }
301
+ /**
302
+ * Draw only the status bar text (without updating group headers)
303
+ * Draws 2 lines: status bar (line 1) and context insights (line 2)
304
+ * Cursor is expected to be on context insights line and remains there after drawing
305
+ */
306
+ drawStatusBarOnly() {
307
+ if (!this.statusBarVisible || this.isMcpMode())
308
+ return;
309
+ const color = getColorAdapter();
310
+ const frame = SPINNER_FRAMES[this.spinnerFrame % SPINNER_FRAMES.length] ?? '⠋';
311
+ const spinnerChar = color.cyan(frame);
312
+ const termWidth = process.stderr.columns || 120;
313
+ const phrase = THINKING_PHRASES[this.phraseIndex % THINKING_PHRASES.length] ?? 'Processing';
314
+ const activity = this.currentActivity || phrase;
315
+ const sessionModeIndicator = this.getSessionModeIndicator();
316
+ const parts = this.buildStatusBarParts();
317
+ let statusText = parts.length > 0
318
+ ? `${sessionModeIndicator}${spinnerChar} ${color.cyan(activity)} ${color.dim(`| ${parts.join(' | ')}`)}`
319
+ : `${sessionModeIndicator}${spinnerChar} ${color.cyan(activity)}`;
320
+ statusText = truncateToWidth(statusText, termWidth - 1);
321
+ // Build context insights line
322
+ const contextInsights = this.buildContextInsightsLine();
323
+ const contextLine = contextInsights ? truncateToWidth(contextInsights, termWidth - 1) : '';
324
+ // Cursor is on context insights line (line 2)
325
+ // Move up to status bar line (line 1), clear and write status
326
+ process.stderr.write(`${ANSI.cursorUp(1)}${ANSI.moveToCol(1)}${ANSI.CLEAR_LINE}${statusText}`);
327
+ // Move down to context insights line (line 2) using ANSI cursor movement (not \n to avoid scroll)
328
+ // Clear and write context
329
+ process.stderr.write(`${ANSI.cursorDown(1)}${ANSI.moveToCol(1)}${ANSI.CLEAR_LINE}${contextLine}`);
330
+ // Cursor remains on context insights line for consistent positioning
331
+ }
332
+ /**
333
+ * Build the status bar parts array
334
+ * Note: Token count and context indicator are shown in the context insights line below
335
+ */
336
+ buildStatusBarParts() {
337
+ const parts = [];
338
+ const activeStages = Array.from(this.activeParallelStages.values()).filter((s) => s.state === 'active');
339
+ const stageInfo = activeStages.map((s) => s.name).join(', ');
340
+ const elapsed = this.getElapsedSeconds();
341
+ if (this.options.showModel && this.currentModel) {
342
+ parts.push(this.currentModel);
343
+ }
344
+ if (stageInfo) {
345
+ parts.push(stageInfo);
346
+ }
347
+ if (elapsed > 0) {
348
+ parts.push(this.formatElapsedTime(elapsed));
349
+ }
350
+ return parts;
351
+ }
352
+ /**
353
+ * Build the context insights line showing detailed token usage
354
+ * Format: Context: 48,880/200,000 tokens (24% used) | In: 29,817 | Out: 19,063 | Remaining: 151,120
355
+ */
356
+ buildContextInsightsLine() {
357
+ if (!this.contextWindow) {
358
+ const color = getColorAdapter();
359
+ return color.dim('Context: Awaiting token usage data...');
360
+ }
361
+ const color = getColorAdapter();
362
+ const { contextWindowSize, outputTokensTotal, promptTokensUsed, utilizationPercent } = this.contextWindow;
363
+ const remaining = Math.max(0, contextWindowSize - promptTokensUsed);
364
+ // Colour-code the percentage based on utilisation using object lookup
365
+ const percentText = `${utilizationPercent.toFixed(0)}% used`;
366
+ const utilizationLevel = this.getUtilizationLevel(utilizationPercent);
367
+ const utilizationColors = {
368
+ high: color.red,
369
+ normal: color.green,
370
+ warning: color.yellow
371
+ };
372
+ const coloredPercent = utilizationColors[utilizationLevel](percentText);
373
+ // Build parts with dim separators but colored values
374
+ const separator = color.dim(' | ');
375
+ const parts = [
376
+ `${color.dim('Context:')} ${color.cyan(formatNumber(promptTokensUsed))}${color.dim('/')}${color.dim(formatNumber(contextWindowSize))} ${color.dim('tokens')} (${coloredPercent})`,
377
+ `${color.dim('In:')} ${color.cyan(formatNumber(promptTokensUsed))}`,
378
+ `${color.dim('Out:')} ${color.cyan(formatNumber(outputTokensTotal))}`,
379
+ `${color.dim('Remaining:')} ${color.cyan(formatNumber(remaining))}`
380
+ ];
381
+ return parts.join(separator);
382
+ }
383
+ /**
384
+ * Determine utilisation level based on percentage thresholds
385
+ */
386
+ getUtilizationLevel(percent) {
387
+ if (percent > HIGH_CONFIDENCE_THRESHOLD)
388
+ return 'high';
389
+ if (percent > CONTEXT_THRESHOLD_WARNING)
390
+ return 'warning';
391
+ return 'normal';
392
+ }
393
+ /**
394
+ * Get the session mode indicator for the status bar
395
+ * Returns a colored indicator showing whether running live or from session
396
+ */
397
+ getSessionModeIndicator() {
398
+ if (!this.sessionInfo) {
399
+ return '';
400
+ }
401
+ const color = getColorAdapter();
402
+ if (this.sessionInfo.isResumed) {
403
+ // Session resumed - show "Session" indicator in green
404
+ return `${color.green('⟳')} ${color.dim('Session')} `;
405
+ }
406
+ else {
407
+ // Fresh session - show "Live" indicator in cyan
408
+ return `${color.cyan('●')} ${color.dim('Live')} `;
409
+ }
410
+ }
411
+ /**
412
+ * Update the current activity shown in status bar
413
+ */
414
+ setActivity(activity) {
415
+ this.currentActivity = activity;
416
+ if (this.statusBarVisible) {
417
+ this.drawStatusBar();
418
+ }
419
+ }
420
+ /**
421
+ * Handle LLM request - update status bar
422
+ */
423
+ handleLLMRequest(event) {
424
+ if (event.model) {
425
+ this.currentModel = event.model;
426
+ }
427
+ this.currentStage = event.stage ?? this.currentStage;
428
+ this.activeLLMRequests++;
429
+ this.setActivity('Calling LLM');
430
+ }
431
+ /**
432
+ * Handle LLM response - update token count and context window usage
433
+ */
434
+ handleLLMResponse(event) {
435
+ this.activeLLMRequests = Math.max(0, this.activeLLMRequests - 1);
436
+ const stageName = event.stage ?? this.currentStage;
437
+ this.updateStageTokenCount(stageName, event.tokenCount);
438
+ // Update context window usage if we have prompt tokens
439
+ if (event.promptTokens && event.model) {
440
+ this.updateContextWindowUsage(event.model, event.promptTokens, event.outputTokens);
441
+ }
442
+ if (this.activeLLMRequests > 0) {
443
+ this.setActivity('Processing');
444
+ }
445
+ }
446
+ /**
447
+ * Update context window usage tracking
448
+ */
449
+ updateContextWindowUsage(model, promptTokens, outputTokens) {
450
+ const contextWindowSize = getModelContextWindow(model);
451
+ const utilizationPercent = Math.min(100, (promptTokens / contextWindowSize) * 100);
452
+ // Accumulate output tokens across calls
453
+ const previousOutputTokens = this.contextWindow?.outputTokensTotal ?? 0;
454
+ const newOutputTokens = previousOutputTokens + (outputTokens ?? 0);
455
+ this.contextWindow = {
456
+ contextWindowSize,
457
+ model,
458
+ outputTokensTotal: newOutputTokens,
459
+ promptTokensUsed: promptTokens,
460
+ utilizationPercent: Math.round(utilizationPercent * 10) / 10
461
+ };
462
+ }
463
+ /**
464
+ * Update token count for a stage
465
+ */
466
+ updateStageTokenCount(stageName, tokenCount) {
467
+ if (!stageName || !tokenCount)
468
+ return;
469
+ const stage = this.activeParallelStages.get(stageName);
470
+ if (stage) {
471
+ stage.tokenCount += tokenCount;
472
+ }
473
+ }
474
+ /**
475
+ * Handle stage complete - update state and clean up
476
+ */
477
+ handleStageComplete(event) {
478
+ const stageName = event.stage;
479
+ if (stageName && this.activeParallelStages.has(stageName)) {
480
+ const stageGroup = this.activeParallelStages.get(stageName);
481
+ if (stageGroup) {
482
+ // Update state to success
483
+ stageGroup.state = 'success';
484
+ // For parallel stages with buffered messages, print them as a complete block
485
+ if (stageGroup.isParallel && stageGroup.messageBuffer.length > 0) {
486
+ // Print stage header for the completed block
487
+ const color = getColorAdapter();
488
+ const executionMode = stageGroup.isParallel ? 'Parallel' : 'Sequential';
489
+ const worktreeSuffix = stageGroup.worktreeInfo ? color.dim(` [${stageGroup.worktreeInfo.branch}]`) : '';
490
+ const headerText = `${color.green('✓')} ${stageGroup.name} ${color.dim(`| ${executionMode}`)}${worktreeSuffix}`;
491
+ this.printLineAboveStatusBar(`\n${headerText}`);
492
+ // Flush all buffered messages for this stage
493
+ this.flushStageMessages(stageGroup);
494
+ }
495
+ // Calculate duration
496
+ const duration = ((Date.now() - stageGroup.startTime) / 1000).toFixed(1);
497
+ const tokens = stageGroup.tokenCount > 0 ? `, ${formatNumber(stageGroup.tokenCount)} tokens` : '';
498
+ // Print stage completion summary (indented inside the stage group)
499
+ const color = getColorAdapter();
500
+ const completionMessage = ` ${color.green('✓')} ${color.gray(`Done (${stageGroup.name}, ${duration}s${tokens})`)}`;
501
+ // Print completion above status bar (indented as part of the stage group)
502
+ this.printLineAboveStatusBar(completionMessage);
503
+ }
504
+ // Remove the stage from active stages
505
+ this.activeParallelStages.delete(stageName);
506
+ // If no more active stages, hide status bar
507
+ if (this.activeParallelStages.size === 0) {
508
+ this.hideStatusBar();
509
+ }
510
+ }
511
+ }
512
+ /**
513
+ * Handle stage error
514
+ */
515
+ handleStageError(event) {
516
+ this.stopPhraseRotation();
517
+ const stagePath = event.stage;
518
+ const stageName = stagePath ?? 'Stage';
519
+ const error = event.error ?? 'Unknown error';
520
+ const color = getColorAdapter();
521
+ // Update stage state to error and flush buffered messages
522
+ if (stagePath && this.activeParallelStages.has(stagePath)) {
523
+ const stageGroup = this.activeParallelStages.get(stagePath);
524
+ if (stageGroup) {
525
+ stageGroup.state = 'error';
526
+ // For parallel stages, flush buffered messages first
527
+ if (stageGroup.isParallel && stageGroup.messageBuffer.length > 0) {
528
+ const executionMode = stageGroup.isParallel ? 'Parallel' : 'Sequential';
529
+ const worktreeSuffix = stageGroup.worktreeInfo ? color.dim(` [${stageGroup.worktreeInfo.branch}]`) : '';
530
+ const headerText = `${color.red('✗')} ${stageGroup.name} ${color.dim(`| ${executionMode}`)}${worktreeSuffix}`;
531
+ this.printLineAboveStatusBar(`\n${headerText}`);
532
+ this.flushStageMessages(stageGroup);
533
+ }
534
+ }
535
+ }
536
+ const indent = this.getIndent();
537
+ const errorMessage = `${indent} ${color.red('✗')} ${color.red(`${stageName} failed: ${error}`)}`;
538
+ this.printLineAboveStatusBar(errorMessage);
539
+ }
540
+ /**
541
+ * Handle pipeline complete
542
+ */
543
+ handlePipelineComplete() {
544
+ this.stopPhraseRotation();
545
+ // End any remaining stage group
546
+ if (this.groupDepth > 0) {
547
+ this.endGroup();
548
+ }
549
+ this.reset();
550
+ }
551
+ /**
552
+ * Handle pipeline error
553
+ */
554
+ handlePipelineError(event) {
555
+ this.stopPhraseRotation();
556
+ const color = getColorAdapter();
557
+ const indent = this.getIndent();
558
+ const isFirstChild = this.isFirstChildMessage();
559
+ this.printAboveStatusBar(`${indent}${color.red('✗')} ${color.red(`Pipeline failed: ${event.error ?? 'Unknown error'}`)}`, isFirstChild);
560
+ this.reset();
561
+ }
562
+ /**
563
+ * Stop phrase rotation
564
+ */
565
+ stopPhraseRotation() {
566
+ if (this.phraseInterval) {
567
+ clearInterval(this.phraseInterval);
568
+ this.phraseInterval = null;
569
+ }
570
+ }
571
+ /**
572
+ * Get elapsed seconds since start
573
+ */
574
+ getElapsedSeconds() {
575
+ if (!this.startTime)
576
+ return 0;
577
+ return Math.floor((Date.now() - this.startTime) / 1000);
578
+ }
579
+ /**
580
+ * Format elapsed time as "1h 5m 30s" or "5m 30s" or "30s"
581
+ */
582
+ formatElapsedTime(totalSeconds) {
583
+ const hours = Math.floor(totalSeconds / 3600);
584
+ const minutes = Math.floor((totalSeconds % 3600) / 60);
585
+ const seconds = totalSeconds % 60;
586
+ const parts = [];
587
+ if (hours > 0) {
588
+ parts.push(`${hours}h`);
589
+ }
590
+ if (minutes > 0 || hours > 0) {
591
+ parts.push(`${minutes}m`);
592
+ }
593
+ parts.push(`${seconds}s`);
594
+ return parts.join(' ');
595
+ }
596
+ /**
597
+ * Reset internal state
598
+ */
599
+ reset() {
600
+ this.contextWindow = null;
601
+ this.currentModel = null;
602
+ this.currentStage = null;
603
+ this.currentActivity = '';
604
+ this.startTime = null;
605
+ this.phraseIndex = 0;
606
+ this.spinnerFrame = 0;
607
+ this.activeParallelStages.clear();
608
+ this.activeLLMRequests = 0;
609
+ this.sessionInfo = null;
610
+ this.hideStatusBar();
611
+ }
612
+ /**
613
+ * Enable or disable feedback
614
+ */
615
+ setEnabled(enabled) {
616
+ this.enabled = enabled;
617
+ if (!enabled) {
618
+ this.stop();
619
+ }
620
+ }
621
+ /**
622
+ * Check if feedback is enabled
623
+ */
624
+ isEnabled() {
625
+ return this.enabled;
626
+ }
627
+ /**
628
+ * Check if spinner is currently active
629
+ */
630
+ isSpinnerActive() {
631
+ return this.statusBarVisible;
632
+ }
633
+ /**
634
+ * Check if currently inside a group (stage)
635
+ */
636
+ isInsideGroup() {
637
+ return this.activeParallelStages.size > 0;
638
+ }
639
+ /**
640
+ * Get indent string - only indent if inside a group
641
+ */
642
+ getIndent() {
643
+ return this.isInsideGroup() ? ' ' : '';
644
+ }
645
+ /**
646
+ * Get the current active stage (most recently started)
647
+ */
648
+ getCurrentActiveStage() {
649
+ if (!this.currentStage)
650
+ return null;
651
+ return this.activeParallelStages.get(this.currentStage) ?? null;
652
+ }
653
+ /**
654
+ * Check if this is the first child message for a stage
655
+ * and increment the child count.
656
+ * In parallel execution, the stagePath should be provided to track correctly.
657
+ */
658
+ isFirstChildMessage(stagePath) {
659
+ let stage = null;
660
+ // Try to find the stage by the provided path first (for parallel execution)
661
+ if (stagePath) {
662
+ stage = this.activeParallelStages.get(stagePath) ?? null;
663
+ // If no exact match, try to find a stage that ends with the short name
664
+ if (!stage) {
665
+ const shortName = stagePath.includes('.') ? stagePath.split('.').pop() : stagePath;
666
+ for (const [, value] of this.activeParallelStages) {
667
+ if (value.name === shortName) {
668
+ stage = value;
669
+ break;
670
+ }
671
+ }
672
+ }
673
+ }
674
+ // Fall back to current stage if no match found
675
+ stage ??= this.getCurrentActiveStage();
676
+ if (!stage)
677
+ return false;
678
+ const isFirst = stage.childCount === 0;
679
+ stage.childCount++;
680
+ return isFirst;
681
+ }
682
+ /**
683
+ * Show a status message - updates the status bar activity
684
+ */
685
+ showStatus(message) {
686
+ if (!this.enabled)
687
+ return;
688
+ if (this.isMcpMode())
689
+ return;
690
+ // Update status bar with current activity
691
+ this.setActivity(message);
692
+ }
693
+ /**
694
+ * Show an info message (gray indicator, white text, dim metadata)
695
+ */
696
+ showInfo(message, data) {
697
+ if (!this.enabled)
698
+ return;
699
+ if (this.isMcpMode())
700
+ return;
701
+ const color = getColorAdapter();
702
+ const details = this.formatDataDetails(data);
703
+ const indent = this.getIndent();
704
+ const stagePath = data?.['stage'];
705
+ const isFirstChild = this.isFirstChildMessage(stagePath);
706
+ this.printAboveStatusBar(`${indent}${color.gray('●')} ${message}${details ? ` ${color.dim(`(${details})`)}` : ''}`, isFirstChild, stagePath);
707
+ // Update activity without triggering a redraw (printAboveStatusBar already redraws)
708
+ this.currentActivity = message;
709
+ }
710
+ /**
711
+ * Show a warning message (yellow indicator, white text, dim metadata)
712
+ */
713
+ showWarn(message, data) {
714
+ if (!this.enabled)
715
+ return;
716
+ if (this.isMcpMode())
717
+ return;
718
+ const color = getColorAdapter();
719
+ const details = this.formatDataDetails(data);
720
+ const indent = this.getIndent();
721
+ const stagePath = data?.['stage'];
722
+ const isFirstChild = this.isFirstChildMessage(stagePath);
723
+ this.printAboveStatusBar(`${indent}${color.yellow('⚠')} ${message}${details ? ` ${color.dim(`(${details})`)}` : ''}`, isFirstChild, stagePath);
724
+ }
725
+ /**
726
+ * Show an error message (red indicator, red text, dim context)
727
+ */
728
+ showError(message, data) {
729
+ if (!this.enabled)
730
+ return;
731
+ if (this.isMcpMode())
732
+ return;
733
+ const color = getColorAdapter();
734
+ const details = this.formatDataDetails(data);
735
+ const indent = this.getIndent();
736
+ const stagePath = data?.['stage'];
737
+ const isFirstChild = this.isFirstChildMessage(stagePath);
738
+ this.printAboveStatusBar(`${indent}${color.red('✗')} ${color.red(message)}${details ? ` ${color.dim(`(${details})`)}` : ''}`, isFirstChild, stagePath);
739
+ }
740
+ /**
741
+ * Show a success message (green indicator, grey text)
742
+ */
743
+ showSuccess(message) {
744
+ if (!this.enabled)
745
+ return;
746
+ if (this.isMcpMode())
747
+ return;
748
+ const color = getColorAdapter();
749
+ const indent = this.getIndent();
750
+ const isFirstChild = this.isFirstChildMessage();
751
+ this.printAboveStatusBar(`${indent}${color.green('✓')} ${color.gray(message)}`, isFirstChild);
752
+ }
753
+ /**
754
+ * Show a completed/done message (grey text)
755
+ */
756
+ showDone(message) {
757
+ if (!this.enabled)
758
+ return;
759
+ if (this.isMcpMode())
760
+ return;
761
+ const color = getColorAdapter();
762
+ const indent = this.getIndent();
763
+ const isFirstChild = this.isFirstChildMessage();
764
+ this.printAboveStatusBar(`${indent}${color.dim(message)}`, isFirstChild);
765
+ }
766
+ /**
767
+ * Show an action being performed (white indicator, grey text)
768
+ */
769
+ showAction(action, target) {
770
+ if (!this.enabled)
771
+ return;
772
+ if (this.isMcpMode())
773
+ return;
774
+ const color = getColorAdapter();
775
+ const message = target ? `${action}: ${target}` : action;
776
+ const indent = this.getIndent();
777
+ const isFirstChild = this.isFirstChildMessage();
778
+ this.printAboveStatusBar(`${indent}${color.gray('●')} ${message}`, isFirstChild);
779
+ // Update activity without triggering a redraw (printAboveStatusBar already redraws)
780
+ this.currentActivity = action;
781
+ }
782
+ /**
783
+ * Start a new message group (e.g., for a pipeline or stage)
784
+ */
785
+ startGroup(name) {
786
+ if (!this.enabled)
787
+ return;
788
+ if (this.isMcpMode())
789
+ return;
790
+ const color = getColorAdapter();
791
+ // End any existing group at the same level
792
+ if (this.currentGroup && this.groupDepth > 0) {
793
+ // Don't print anything, just reset
794
+ }
795
+ this.currentGroup = name;
796
+ this.groupDepth = 1;
797
+ // Print group header
798
+ process.stderr.write(`\n${color.bold(color.cyan(`▸ ${name}`))}\n`);
799
+ }
800
+ /**
801
+ * End the current message group
802
+ */
803
+ endGroup() {
804
+ if (this.groupDepth > 0) {
805
+ this.groupDepth--;
806
+ }
807
+ if (this.groupDepth === 0) {
808
+ this.currentGroup = null;
809
+ }
810
+ }
811
+ /**
812
+ * Priority fields to show in data details (in order of preference)
813
+ */
814
+ static PRIORITY_FIELDS = [
815
+ 'sessionId',
816
+ 'agent',
817
+ 'selectedAgent',
818
+ 'command',
819
+ 'stage',
820
+ 'model',
821
+ 'confidence',
822
+ 'stageCount',
823
+ 'toolNames',
824
+ 'toolCount',
825
+ 'duration',
826
+ 'tokenCount',
827
+ 'error',
828
+ 'reason',
829
+ 'path',
830
+ 'file',
831
+ 'status'
832
+ ];
833
+ /**
834
+ * Format data details for display
835
+ * Extracts the most relevant fields from the data object
836
+ */
837
+ formatDataDetails(data) {
838
+ if (!data || Object.keys(data).length === 0) {
839
+ return '';
840
+ }
841
+ const details = this.extractPriorityFields(data);
842
+ if (details.length === 0) {
843
+ return this.extractFallbackFields(data).join(', ');
844
+ }
845
+ return details.join(', ');
846
+ }
847
+ /**
848
+ * Extract formatted values for priority fields
849
+ */
850
+ extractPriorityFields(data) {
851
+ const details = [];
852
+ for (const field of ProcessingFeedback.PRIORITY_FIELDS) {
853
+ if (details.length >= 3)
854
+ break;
855
+ const value = data[field];
856
+ if (value === undefined || value === null)
857
+ continue;
858
+ const formattedValue = this.formatValue(field, value);
859
+ if (formattedValue) {
860
+ details.push(formattedValue);
861
+ }
862
+ }
863
+ return details;
864
+ }
865
+ /**
866
+ * Extract formatted values for non-priority fields as fallback
867
+ */
868
+ extractFallbackFields(data) {
869
+ const details = [];
870
+ for (const [key, value] of Object.entries(data)) {
871
+ if (details.length >= 2)
872
+ break;
873
+ if (typeof value === 'object' || value === undefined || value === null)
874
+ continue;
875
+ const formattedValue = this.formatValue(key, value);
876
+ if (formattedValue) {
877
+ details.push(formattedValue);
878
+ }
879
+ }
880
+ return details;
881
+ }
882
+ /**
883
+ * Format a single value for display
884
+ */
885
+ formatValue(key, value) {
886
+ if (value === undefined || value === null) {
887
+ return '';
888
+ }
889
+ const formatters = {
890
+ agent: (v) => `agent: ${v}`,
891
+ command: (v) => `cmd: ${v}`,
892
+ confidence: (v) => `confidence: ${(Number(v) * 100).toFixed(0)}%`,
893
+ duration: (v) => `${(Number(v) / 1000).toFixed(1)}s`,
894
+ error: (v) => String(v),
895
+ model: (v) => `model: ${v}`,
896
+ reason: (v) => String(v),
897
+ selectedAgent: (v) => `agent: ${v}`,
898
+ sessionId: (v) => `session: ${String(v).slice(0, 12)}`,
899
+ stage: (v) => `stage: ${v}`,
900
+ stageCount: (v) => `${v} stages`,
901
+ tokenCount: (v) => `${v} tokens`,
902
+ toolCount: (v) => `${v} tools`,
903
+ toolNames: (v) => this.formatToolsList(v),
904
+ tools: (v) => this.formatToolsList(v)
905
+ };
906
+ const formatter = formatters[key];
907
+ if (formatter) {
908
+ return formatter(value);
909
+ }
910
+ // Default: show key: value, truncating if needed
911
+ const strValue = String(value);
912
+ if (strValue.length <= 30) {
913
+ return `${key}: ${strValue}`;
914
+ }
915
+ return `${key}: ${strValue.slice(0, 27)}...`;
916
+ }
917
+ /**
918
+ * Format a list of tool names, truncating to MAX_TOOLS_LIST_LENGTH characters
919
+ */
920
+ formatToolsList(value) {
921
+ if (!Array.isArray(value)) {
922
+ return '';
923
+ }
924
+ const tools = value;
925
+ if (tools.length === 0) {
926
+ return '';
927
+ }
928
+ // Build truncated list
929
+ let result = '';
930
+ let includedCount = 0;
931
+ for (const tool of tools) {
932
+ const separator = result ? ', ' : '';
933
+ const nextPart = separator + tool;
934
+ // Check if adding this tool would exceed the limit
935
+ if (result.length + nextPart.length + '...'.length > MAX_TOOLS_LIST_LENGTH && includedCount > 0) {
936
+ result += '...';
937
+ break;
938
+ }
939
+ result += nextPart;
940
+ includedCount++;
941
+ }
942
+ return result;
943
+ }
944
+ /**
945
+ * Check if running in MCP mode
946
+ */
947
+ isMcpMode() {
948
+ return process.env['AI_MCP_ENABLED'] === 'true';
949
+ }
950
+ /**
951
+ * Show MCP availability status
952
+ * Displays a summary of available and unavailable MCP servers
953
+ */
954
+ showMCPStatus(results) {
955
+ if (!this.enabled || results.length === 0)
956
+ return;
957
+ if (this.isMcpMode())
958
+ return;
959
+ const color = getColorAdapter();
960
+ // Group by status
961
+ const ready = results.filter((r) => r.status === 'ready');
962
+ const unavailable = results.filter((r) => r.status !== 'ready');
963
+ // Print header
964
+ process.stderr.write(`\n${color.bold(color.cyan('External MCP Status'))}\n`);
965
+ // Print ready servers
966
+ for (const result of ready) {
967
+ const tools = result.toolCount !== undefined ? ` (${result.toolCount} tools)` : '';
968
+ const risk = result.riskLevel ? color.dim(` [${result.riskLevel}]`) : '';
969
+ process.stderr.write(` ${color.green('✓')} ${result.name}${tools}${risk}\n`);
970
+ }
971
+ // Print unavailable servers
972
+ for (const result of unavailable) {
973
+ const reason = this.getMCPStatusReason(result.status, result.error);
974
+ process.stderr.write(` ${color.yellow('○')} ${result.name}: ${color.dim(reason)}\n`);
975
+ }
976
+ // Print summary
977
+ if (ready.length > 0 && unavailable.length > 0) {
978
+ process.stderr.write(` ${color.dim(`${ready.length} ready, ${unavailable.length} unavailable`)}\n`);
979
+ }
980
+ process.stderr.write('\n');
981
+ }
982
+ /**
983
+ * Get human-readable reason for MCP status
984
+ */
985
+ getMCPStatusReason(status, error) {
986
+ switch (status) {
987
+ case 'connection_failed':
988
+ return error ?? 'connection failed';
989
+ case 'disabled':
990
+ return 'disabled';
991
+ case 'not_configured':
992
+ return error ?? 'not configured';
993
+ case 'not_installed':
994
+ return 'not installed';
995
+ case 'ready':
996
+ return 'ready';
997
+ default:
998
+ return 'unknown';
999
+ }
1000
+ }
1001
+ /**
1002
+ * Show MCP tool call result
1003
+ */
1004
+ showMCPToolCall(serverId, toolName, success, durationMs) {
1005
+ if (!this.enabled)
1006
+ return;
1007
+ if (this.isMcpMode())
1008
+ return;
1009
+ const color = getColorAdapter();
1010
+ const icon = success ? color.green('✓') : color.red('✗');
1011
+ const duration = durationMs !== undefined ? ` ${color.dim(`(${durationMs}ms)`)}` : '';
1012
+ const indent = this.getIndent();
1013
+ const isFirstChild = this.isFirstChildMessage();
1014
+ this.printAboveStatusBar(`${indent}${icon} ${color.cyan('MCP')} ${serverId}.${toolName}${duration}`, isFirstChild);
1015
+ }
1016
+ }
1017
+ // Singleton instance
1018
+ let feedbackInstance = null;
1019
+ /**
1020
+ * Get the singleton processing feedback instance
1021
+ */
1022
+ export function getProcessingFeedback() {
1023
+ feedbackInstance ??= new ProcessingFeedback();
1024
+ return feedbackInstance;
1025
+ }
1026
+ /**
1027
+ * Set a custom processing feedback instance
1028
+ */
1029
+ export function setProcessingFeedback(feedback) {
1030
+ feedbackInstance = feedback;
1031
+ }
1032
+ //# sourceMappingURL=processing-feedback.js.map