claude-code-workflow 6.2.1 → 6.2.2

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 (927) hide show
  1. package/.claude/CLAUDE.md +10 -0
  2. package/.claude/agents/action-planning-agent.md +857 -0
  3. package/.claude/agents/cli-execution-agent.md +267 -0
  4. package/.claude/agents/cli-explore-agent.md +182 -0
  5. package/.claude/agents/cli-lite-planning-agent.md +446 -0
  6. package/.claude/agents/cli-planning-agent.md +558 -0
  7. package/.claude/agents/code-developer.md +311 -0
  8. package/.claude/agents/conceptual-planning-agent.md +308 -0
  9. package/.claude/agents/context-search-agent.md +581 -0
  10. package/.claude/agents/doc-generator.md +330 -0
  11. package/.claude/agents/memory-bridge.md +94 -0
  12. package/.claude/agents/test-context-search-agent.md +400 -0
  13. package/.claude/agents/test-fix-agent.md +344 -0
  14. package/.claude/agents/ui-design-agent.md +593 -0
  15. package/.claude/agents/universal-executor.md +131 -0
  16. package/.claude/commands/clean.md +516 -0
  17. package/.claude/commands/cli/cli-init.md +440 -0
  18. package/.claude/commands/enhance-prompt.md +93 -0
  19. package/.claude/commands/memory/code-map-memory.md +687 -0
  20. package/.claude/commands/memory/compact.md +383 -0
  21. package/.claude/commands/memory/docs-full-cli.md +471 -0
  22. package/.claude/commands/memory/docs-related-cli.md +386 -0
  23. package/.claude/commands/memory/docs.md +615 -0
  24. package/.claude/commands/memory/load-skill-memory.md +182 -0
  25. package/.claude/commands/memory/load.md +240 -0
  26. package/.claude/commands/memory/skill-memory.md +525 -0
  27. package/.claude/commands/memory/style-skill-memory.md +396 -0
  28. package/.claude/commands/memory/tech-research-rules.md +310 -0
  29. package/.claude/commands/memory/update-full.md +332 -0
  30. package/.claude/commands/memory/update-related.md +332 -0
  31. package/.claude/commands/memory/workflow-skill-memory.md +517 -0
  32. package/.claude/commands/task/breakdown.md +204 -0
  33. package/.claude/commands/task/create.md +152 -0
  34. package/.claude/commands/task/execute.md +270 -0
  35. package/.claude/commands/task/replan.md +437 -0
  36. package/.claude/commands/version.md +254 -0
  37. package/.claude/commands/workflow/action-plan-verify.md +447 -0
  38. package/.claude/commands/workflow/brainstorm/api-designer.md +587 -0
  39. package/.claude/commands/workflow/brainstorm/artifacts.md +453 -0
  40. package/.claude/commands/workflow/brainstorm/auto-parallel.md +443 -0
  41. package/.claude/commands/workflow/brainstorm/data-architect.md +220 -0
  42. package/.claude/commands/workflow/brainstorm/product-manager.md +200 -0
  43. package/.claude/commands/workflow/brainstorm/product-owner.md +200 -0
  44. package/.claude/commands/workflow/brainstorm/scrum-master.md +200 -0
  45. package/.claude/commands/workflow/brainstorm/subject-matter-expert.md +200 -0
  46. package/.claude/commands/workflow/brainstorm/synthesis.md +398 -0
  47. package/.claude/commands/workflow/brainstorm/system-architect.md +389 -0
  48. package/.claude/commands/workflow/brainstorm/ui-designer.md +221 -0
  49. package/.claude/commands/workflow/brainstorm/ux-expert.md +221 -0
  50. package/.claude/commands/workflow/debug.md +321 -0
  51. package/.claude/commands/workflow/execute.md +475 -0
  52. package/.claude/commands/workflow/init.md +165 -0
  53. package/.claude/commands/workflow/lite-execute.md +792 -0
  54. package/.claude/commands/workflow/lite-fix.md +623 -0
  55. package/.claude/commands/workflow/lite-plan.md +610 -0
  56. package/.claude/commands/workflow/plan.md +551 -0
  57. package/.claude/commands/workflow/replan.md +515 -0
  58. package/.claude/commands/workflow/review-fix.md +606 -0
  59. package/.claude/commands/workflow/review-module-cycle.md +767 -0
  60. package/.claude/commands/workflow/review-session-cycle.md +778 -0
  61. package/.claude/commands/workflow/review.md +297 -0
  62. package/.claude/commands/workflow/session/complete.md +153 -0
  63. package/.claude/commands/workflow/session/list.md +96 -0
  64. package/.claude/commands/workflow/session/resume.md +61 -0
  65. package/.claude/commands/workflow/session/start.md +200 -0
  66. package/.claude/commands/workflow/tdd-plan.md +460 -0
  67. package/.claude/commands/workflow/tdd-verify.md +400 -0
  68. package/.claude/commands/workflow/test-cycle-execute.md +500 -0
  69. package/.claude/commands/workflow/test-fix-gen.md +699 -0
  70. package/.claude/commands/workflow/test-gen.md +529 -0
  71. package/.claude/commands/workflow/tools/conflict-resolution.md +766 -0
  72. package/.claude/commands/workflow/tools/context-gather.md +436 -0
  73. package/.claude/commands/workflow/tools/task-generate-agent.md +490 -0
  74. package/.claude/commands/workflow/tools/task-generate-tdd.md +526 -0
  75. package/.claude/commands/workflow/tools/tdd-coverage-analysis.md +309 -0
  76. package/.claude/commands/workflow/tools/test-concept-enhanced.md +164 -0
  77. package/.claude/commands/workflow/tools/test-context-gather.md +236 -0
  78. package/.claude/commands/workflow/tools/test-task-generate.md +257 -0
  79. package/.claude/commands/workflow/ui-design/animation-extract.md +1150 -0
  80. package/.claude/commands/workflow/ui-design/codify-style.md +652 -0
  81. package/.claude/commands/workflow/ui-design/design-sync.md +454 -0
  82. package/.claude/commands/workflow/ui-design/explore-auto.md +678 -0
  83. package/.claude/commands/workflow/ui-design/generate.md +504 -0
  84. package/.claude/commands/workflow/ui-design/imitate-auto.md +745 -0
  85. package/.claude/commands/workflow/ui-design/import-from-code.md +540 -0
  86. package/.claude/commands/workflow/ui-design/layout-extract.md +788 -0
  87. package/.claude/commands/workflow/ui-design/reference-page-generator.md +356 -0
  88. package/.claude/commands/workflow/ui-design/style-extract.md +773 -0
  89. package/.claude/skills/command-guide/SKILL.md +388 -0
  90. package/.claude/skills/command-guide/UPDATE-GUIDELINE.md +592 -0
  91. package/.claude/skills/command-guide/guides/cli-tools-guide.md +410 -0
  92. package/.claude/skills/command-guide/guides/examples.md +537 -0
  93. package/.claude/skills/command-guide/guides/getting-started.md +242 -0
  94. package/.claude/skills/command-guide/guides/implementation-details.md +1010 -0
  95. package/.claude/skills/command-guide/guides/index-structure.md +326 -0
  96. package/.claude/skills/command-guide/guides/troubleshooting.md +92 -0
  97. package/.claude/skills/command-guide/guides/ui-design-workflow-guide.md +316 -0
  98. package/.claude/skills/command-guide/guides/workflow-patterns.md +662 -0
  99. package/.claude/skills/command-guide/index/all-commands.json +772 -0
  100. package/.claude/skills/command-guide/index/by-category.json +800 -0
  101. package/.claude/skills/command-guide/index/by-use-case.json +786 -0
  102. package/.claude/skills/command-guide/index/command-relationships.json +307 -0
  103. package/.claude/skills/command-guide/index/essential-commands.json +112 -0
  104. package/.claude/skills/command-guide/reference/agents/action-planning-agent.md +857 -0
  105. package/.claude/skills/command-guide/reference/agents/cli-execution-agent.md +267 -0
  106. package/.claude/skills/command-guide/reference/agents/cli-explore-agent.md +182 -0
  107. package/.claude/skills/command-guide/reference/agents/cli-lite-planning-agent.md +446 -0
  108. package/.claude/skills/command-guide/reference/agents/cli-planning-agent.md +558 -0
  109. package/.claude/skills/command-guide/reference/agents/code-developer.md +311 -0
  110. package/.claude/skills/command-guide/reference/agents/conceptual-planning-agent.md +308 -0
  111. package/.claude/skills/command-guide/reference/agents/context-search-agent.md +581 -0
  112. package/.claude/skills/command-guide/reference/agents/doc-generator.md +330 -0
  113. package/.claude/skills/command-guide/reference/agents/memory-bridge.md +94 -0
  114. package/.claude/skills/command-guide/reference/agents/test-context-search-agent.md +400 -0
  115. package/.claude/skills/command-guide/reference/agents/test-fix-agent.md +344 -0
  116. package/.claude/skills/command-guide/reference/agents/ui-design-agent.md +593 -0
  117. package/.claude/skills/command-guide/reference/agents/universal-executor.md +131 -0
  118. package/.claude/skills/command-guide/reference/commands/cli/cli-init.md +440 -0
  119. package/.claude/skills/command-guide/reference/commands/enhance-prompt.md +93 -0
  120. package/.claude/skills/command-guide/reference/commands/memory/code-map-memory.md +687 -0
  121. package/.claude/skills/command-guide/reference/commands/memory/docs-full-cli.md +471 -0
  122. package/.claude/skills/command-guide/reference/commands/memory/docs-related-cli.md +386 -0
  123. package/.claude/skills/command-guide/reference/commands/memory/docs.md +616 -0
  124. package/.claude/skills/command-guide/reference/commands/memory/load-skill-memory.md +182 -0
  125. package/.claude/skills/command-guide/reference/commands/memory/load.md +240 -0
  126. package/.claude/skills/command-guide/reference/commands/memory/skill-memory.md +525 -0
  127. package/.claude/skills/command-guide/reference/commands/memory/style-skill-memory.md +396 -0
  128. package/.claude/skills/command-guide/reference/commands/memory/tech-research.md +314 -0
  129. package/.claude/skills/command-guide/reference/commands/memory/update-full.md +332 -0
  130. package/.claude/skills/command-guide/reference/commands/memory/update-related.md +332 -0
  131. package/.claude/skills/command-guide/reference/commands/memory/workflow-skill-memory.md +517 -0
  132. package/.claude/skills/command-guide/reference/commands/task/breakdown.md +204 -0
  133. package/.claude/skills/command-guide/reference/commands/task/create.md +152 -0
  134. package/.claude/skills/command-guide/reference/commands/task/execute.md +270 -0
  135. package/.claude/skills/command-guide/reference/commands/task/replan.md +437 -0
  136. package/.claude/skills/command-guide/reference/commands/version.md +254 -0
  137. package/.claude/skills/command-guide/reference/commands/workflow/action-plan-verify.md +447 -0
  138. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/api-designer.md +585 -0
  139. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/artifacts.md +452 -0
  140. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/auto-parallel.md +443 -0
  141. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/data-architect.md +220 -0
  142. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-manager.md +200 -0
  143. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-owner.md +200 -0
  144. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/scrum-master.md +200 -0
  145. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/subject-matter-expert.md +200 -0
  146. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/synthesis.md +398 -0
  147. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/system-architect.md +387 -0
  148. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ui-designer.md +221 -0
  149. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ux-expert.md +221 -0
  150. package/.claude/skills/command-guide/reference/commands/workflow/execute.md +465 -0
  151. package/.claude/skills/command-guide/reference/commands/workflow/init.md +164 -0
  152. package/.claude/skills/command-guide/reference/commands/workflow/lite-execute.md +748 -0
  153. package/.claude/skills/command-guide/reference/commands/workflow/lite-fix.md +664 -0
  154. package/.claude/skills/command-guide/reference/commands/workflow/lite-plan.md +645 -0
  155. package/.claude/skills/command-guide/reference/commands/workflow/plan.md +551 -0
  156. package/.claude/skills/command-guide/reference/commands/workflow/replan.md +515 -0
  157. package/.claude/skills/command-guide/reference/commands/workflow/review-fix.md +606 -0
  158. package/.claude/skills/command-guide/reference/commands/workflow/review-module-cycle.md +765 -0
  159. package/.claude/skills/command-guide/reference/commands/workflow/review-session-cycle.md +776 -0
  160. package/.claude/skills/command-guide/reference/commands/workflow/review.md +298 -0
  161. package/.claude/skills/command-guide/reference/commands/workflow/session/complete.md +547 -0
  162. package/.claude/skills/command-guide/reference/commands/workflow/session/list.md +114 -0
  163. package/.claude/skills/command-guide/reference/commands/workflow/session/resume.md +77 -0
  164. package/.claude/skills/command-guide/reference/commands/workflow/session/start.md +257 -0
  165. package/.claude/skills/command-guide/reference/commands/workflow/tdd-plan.md +460 -0
  166. package/.claude/skills/command-guide/reference/commands/workflow/tdd-verify.md +400 -0
  167. package/.claude/skills/command-guide/reference/commands/workflow/test-cycle-execute.md +498 -0
  168. package/.claude/skills/command-guide/reference/commands/workflow/test-fix-gen.md +699 -0
  169. package/.claude/skills/command-guide/reference/commands/workflow/test-gen.md +529 -0
  170. package/.claude/skills/command-guide/reference/commands/workflow/tools/conflict-resolution.md +766 -0
  171. package/.claude/skills/command-guide/reference/commands/workflow/tools/context-gather.md +434 -0
  172. package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-agent.md +487 -0
  173. package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-tdd.md +525 -0
  174. package/.claude/skills/command-guide/reference/commands/workflow/tools/tdd-coverage-analysis.md +309 -0
  175. package/.claude/skills/command-guide/reference/commands/workflow/tools/test-concept-enhanced.md +163 -0
  176. package/.claude/skills/command-guide/reference/commands/workflow/tools/test-context-gather.md +235 -0
  177. package/.claude/skills/command-guide/reference/commands/workflow/tools/test-task-generate.md +256 -0
  178. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/animation-extract.md +1150 -0
  179. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/codify-style.md +652 -0
  180. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/design-sync.md +454 -0
  181. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/explore-auto.md +678 -0
  182. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/generate.md +504 -0
  183. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/imitate-auto.md +745 -0
  184. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/import-from-code.md +537 -0
  185. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/layout-extract.md +788 -0
  186. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/reference-page-generator.md +356 -0
  187. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/style-extract.md +773 -0
  188. package/.claude/skills/command-guide/scripts/analyze_commands.py +502 -0
  189. package/.claude/skills/command-guide/scripts/update-index.sh +130 -0
  190. package/.claude/skills/command-guide/templates/issue-bug.md +104 -0
  191. package/.claude/skills/command-guide/templates/issue-diagnosis.md +275 -0
  192. package/.claude/skills/command-guide/templates/issue-feature.md +97 -0
  193. package/.claude/skills/command-guide/templates/issue-question.md +141 -0
  194. package/.claude/skills/prompt-enhancer/SKILL.md +124 -0
  195. package/.claude/workflows/_template-compare-matrix.html +692 -0
  196. package/.claude/workflows/chinese-response.md +38 -0
  197. package/.claude/workflows/cli-templates/fix-plan-template.json +75 -0
  198. package/.claude/workflows/cli-templates/fix-progress-template.json +48 -0
  199. package/.claude/workflows/cli-templates/memory/style-skill-memory/skill-md-template.md +299 -0
  200. package/.claude/workflows/cli-templates/planning-roles/data-architect.md +120 -0
  201. package/.claude/workflows/cli-templates/planning-roles/product-manager.md +119 -0
  202. package/.claude/workflows/cli-templates/planning-roles/product-owner.md +261 -0
  203. package/.claude/workflows/cli-templates/planning-roles/scrum-master.md +186 -0
  204. package/.claude/workflows/cli-templates/planning-roles/subject-matter-expert.md +281 -0
  205. package/.claude/workflows/cli-templates/planning-roles/synthesis-role.md +414 -0
  206. package/.claude/workflows/cli-templates/planning-roles/system-architect.md +106 -0
  207. package/.claude/workflows/cli-templates/planning-roles/test-strategist.md +124 -0
  208. package/.claude/workflows/cli-templates/planning-roles/ui-designer.md +379 -0
  209. package/.claude/workflows/cli-templates/planning-roles/ux-expert.md +240 -0
  210. package/.claude/workflows/cli-templates/prompts/analysis/01-diagnose-bug-root-cause.txt +127 -0
  211. package/.claude/workflows/cli-templates/prompts/analysis/01-trace-code-execution.txt +115 -0
  212. package/.claude/workflows/cli-templates/prompts/analysis/02-analyze-code-patterns.txt +37 -0
  213. package/.claude/workflows/cli-templates/prompts/analysis/02-analyze-technical-document.txt +33 -0
  214. package/.claude/workflows/cli-templates/prompts/analysis/02-review-architecture.txt +29 -0
  215. package/.claude/workflows/cli-templates/prompts/analysis/02-review-code-quality.txt +28 -0
  216. package/.claude/workflows/cli-templates/prompts/analysis/03-analyze-performance.txt +29 -0
  217. package/.claude/workflows/cli-templates/prompts/analysis/03-assess-security-risks.txt +29 -0
  218. package/.claude/workflows/cli-templates/prompts/analysis/03-review-quality-standards.txt +29 -0
  219. package/.claude/workflows/cli-templates/prompts/development/02-generate-tests.txt +70 -0
  220. package/.claude/workflows/cli-templates/prompts/development/02-implement-component-ui.txt +55 -0
  221. package/.claude/workflows/cli-templates/prompts/development/02-implement-feature.txt +58 -0
  222. package/.claude/workflows/cli-templates/prompts/development/02-refactor-codebase.txt +55 -0
  223. package/.claude/workflows/cli-templates/prompts/development/03-debug-runtime-issues.txt +55 -0
  224. package/.claude/workflows/cli-templates/prompts/documentation/api.txt +15 -0
  225. package/.claude/workflows/cli-templates/prompts/documentation/folder-navigation.txt +27 -0
  226. package/.claude/workflows/cli-templates/prompts/documentation/module-readme.txt +49 -0
  227. package/.claude/workflows/cli-templates/prompts/documentation/project-architecture.txt +41 -0
  228. package/.claude/workflows/cli-templates/prompts/documentation/project-examples.txt +35 -0
  229. package/.claude/workflows/cli-templates/prompts/documentation/project-readme.txt +35 -0
  230. package/.claude/workflows/cli-templates/prompts/memory/02-document-module-structure.txt +165 -0
  231. package/.claude/workflows/cli-templates/prompts/planning/01-plan-architecture-design.txt +109 -0
  232. package/.claude/workflows/cli-templates/prompts/planning/02-breakdown-task-steps.txt +30 -0
  233. package/.claude/workflows/cli-templates/prompts/planning/02-design-component-spec.txt +28 -0
  234. package/.claude/workflows/cli-templates/prompts/planning/03-evaluate-concept-feasibility.txt +127 -0
  235. package/.claude/workflows/cli-templates/prompts/planning/03-plan-migration-strategy.txt +30 -0
  236. package/.claude/workflows/cli-templates/prompts/rules/rule-api.txt +122 -0
  237. package/.claude/workflows/cli-templates/prompts/rules/rule-components.txt +122 -0
  238. package/.claude/workflows/cli-templates/prompts/rules/rule-config.txt +89 -0
  239. package/.claude/workflows/cli-templates/prompts/rules/rule-core.txt +60 -0
  240. package/.claude/workflows/cli-templates/prompts/rules/rule-patterns.txt +70 -0
  241. package/.claude/workflows/cli-templates/prompts/rules/rule-testing.txt +81 -0
  242. package/.claude/workflows/cli-templates/prompts/rules/tech-rules-agent-prompt.txt +89 -0
  243. package/.claude/workflows/cli-templates/prompts/tech/tech-module-format.txt +359 -0
  244. package/.claude/workflows/cli-templates/prompts/tech/tech-skill-index.txt +185 -0
  245. package/.claude/workflows/cli-templates/prompts/test/test-concept-analysis.txt +179 -0
  246. package/.claude/workflows/cli-templates/prompts/universal/00-universal-creative-style.txt +95 -0
  247. package/.claude/workflows/cli-templates/prompts/universal/00-universal-rigorous-style.txt +92 -0
  248. package/.claude/workflows/cli-templates/prompts/verification/codex-technical.txt +28 -0
  249. package/.claude/workflows/cli-templates/prompts/verification/cross-validation.txt +28 -0
  250. package/.claude/workflows/cli-templates/prompts/verification/gemini-strategic.txt +27 -0
  251. package/.claude/workflows/cli-templates/prompts/workflow/analysis-results-structure.txt +224 -0
  252. package/.claude/workflows/cli-templates/prompts/workflow/codex-feasibility-validation.txt +176 -0
  253. package/.claude/workflows/cli-templates/prompts/workflow/gemini-solution-design.txt +131 -0
  254. package/.claude/workflows/cli-templates/prompts/workflow/impl-plan-template.txt +286 -0
  255. package/.claude/workflows/cli-templates/prompts/workflow/skill-aggregation.txt +172 -0
  256. package/.claude/workflows/cli-templates/prompts/workflow/skill-conflict-patterns.txt +94 -0
  257. package/.claude/workflows/cli-templates/prompts/workflow/skill-index.txt +224 -0
  258. package/.claude/workflows/cli-templates/prompts/workflow/skill-lessons-learned.txt +94 -0
  259. package/.claude/workflows/cli-templates/prompts/workflow/skill-sessions-timeline.txt +53 -0
  260. package/.claude/workflows/cli-templates/prompts/workflow/task-json-agent-mode.txt +123 -0
  261. package/.claude/workflows/cli-templates/prompts/workflow/task-json-cli-mode.txt +182 -0
  262. package/.claude/workflows/cli-templates/protocols/analysis-protocol.md +112 -0
  263. package/.claude/workflows/cli-templates/protocols/write-protocol.md +201 -0
  264. package/.claude/workflows/cli-templates/schemas/conflict-resolution-schema.json +137 -0
  265. package/.claude/workflows/cli-templates/schemas/debug-log-json-schema.json +127 -0
  266. package/.claude/workflows/cli-templates/schemas/diagnosis-json-schema.json +234 -0
  267. package/.claude/workflows/cli-templates/schemas/explore-json-schema.json +124 -0
  268. package/.claude/workflows/cli-templates/schemas/fix-plan-json-schema.json +298 -0
  269. package/.claude/workflows/cli-templates/schemas/plan-json-schema.json +244 -0
  270. package/.claude/workflows/cli-templates/schemas/project-json-schema.json +221 -0
  271. package/.claude/workflows/cli-templates/schemas/review-deep-dive-results-schema.json +82 -0
  272. package/.claude/workflows/cli-templates/schemas/review-dimension-results-schema.json +51 -0
  273. package/.claude/workflows/cli-templates/tech-stacks/go-dev.md +91 -0
  274. package/.claude/workflows/cli-templates/tech-stacks/java-dev.md +107 -0
  275. package/.claude/workflows/cli-templates/tech-stacks/javascript-dev.md +58 -0
  276. package/.claude/workflows/cli-templates/tech-stacks/python-dev.md +79 -0
  277. package/.claude/workflows/cli-templates/tech-stacks/react-dev.md +103 -0
  278. package/.claude/workflows/cli-templates/tech-stacks/typescript-dev.md +83 -0
  279. package/.claude/workflows/cli-templates/ui-design/systems/animation-tokens.json +247 -0
  280. package/.claude/workflows/cli-templates/ui-design/systems/design-tokens.json +342 -0
  281. package/.claude/workflows/cli-templates/ui-design/systems/layout-templates.json +145 -0
  282. package/.claude/workflows/cli-tools-usage.md +526 -0
  283. package/.claude/workflows/coding-philosophy.md +70 -0
  284. package/.claude/workflows/context-tools.md +84 -0
  285. package/.claude/workflows/file-modification.md +64 -0
  286. package/.claude/workflows/review-directory-specification.md +336 -0
  287. package/.claude/workflows/task-core.md +214 -0
  288. package/.claude/workflows/tool-strategy.md +216 -0
  289. package/.claude/workflows/windows-platform.md +16 -0
  290. package/.claude/workflows/workflow-architecture.md +942 -0
  291. package/.codex/AGENTS.md +63 -0
  292. package/.codex/prompts/debug.md +318 -0
  293. package/.codex/prompts/execute.md +273 -0
  294. package/.codex/prompts/lite-execute.md +164 -0
  295. package/.codex/prompts/lite-plan.md +469 -0
  296. package/.codex/prompts.zip +0 -0
  297. package/.gemini/GEMINI.md +25 -0
  298. package/.qwen/QWEN.md +25 -0
  299. package/LICENSE +21 -0
  300. package/README.md +294 -145
  301. package/ccw/README.md +145 -0
  302. package/ccw/package.json +65 -0
  303. package/codex-lens/pyproject.toml +48 -0
  304. package/codex-lens/src/codexlens/.workflow/.cli-history/history.db +0 -0
  305. package/codex-lens/src/codexlens/__init__.py +28 -0
  306. package/codex-lens/src/codexlens/__main__.py +14 -0
  307. package/codex-lens/src/codexlens/__pycache__/__init__.cpython-313.pyc +0 -0
  308. package/codex-lens/src/codexlens/__pycache__/__main__.cpython-313.pyc +0 -0
  309. package/codex-lens/src/codexlens/__pycache__/config.cpython-313.pyc +0 -0
  310. package/codex-lens/src/codexlens/__pycache__/entities.cpython-313.pyc +0 -0
  311. package/codex-lens/src/codexlens/__pycache__/errors.cpython-313.pyc +0 -0
  312. package/codex-lens/src/codexlens/cli/__init__.py +27 -0
  313. package/codex-lens/src/codexlens/cli/__pycache__/__init__.cpython-313.pyc +0 -0
  314. package/codex-lens/src/codexlens/cli/__pycache__/commands.cpython-313.pyc +0 -0
  315. package/codex-lens/src/codexlens/cli/__pycache__/embedding_manager.cpython-313.pyc +0 -0
  316. package/codex-lens/src/codexlens/cli/__pycache__/model_manager.cpython-313.pyc +0 -0
  317. package/codex-lens/src/codexlens/cli/__pycache__/output.cpython-313.pyc +0 -0
  318. package/codex-lens/src/codexlens/cli/commands.py +1931 -0
  319. package/codex-lens/src/codexlens/cli/embedding_manager.py +620 -0
  320. package/codex-lens/src/codexlens/cli/model_manager.py +289 -0
  321. package/codex-lens/src/codexlens/cli/output.py +124 -0
  322. package/codex-lens/src/codexlens/config.py +201 -0
  323. package/codex-lens/src/codexlens/entities.py +121 -0
  324. package/codex-lens/src/codexlens/errors.py +55 -0
  325. package/codex-lens/src/codexlens/indexing/README.md +77 -0
  326. package/codex-lens/src/codexlens/indexing/__init__.py +4 -0
  327. package/codex-lens/src/codexlens/indexing/__pycache__/__init__.cpython-313.pyc +0 -0
  328. package/codex-lens/src/codexlens/indexing/__pycache__/symbol_extractor.cpython-313.pyc +0 -0
  329. package/codex-lens/src/codexlens/indexing/symbol_extractor.py +243 -0
  330. package/codex-lens/src/codexlens/parsers/__init__.py +8 -0
  331. package/codex-lens/src/codexlens/parsers/__pycache__/__init__.cpython-313.pyc +0 -0
  332. package/codex-lens/src/codexlens/parsers/__pycache__/encoding.cpython-313.pyc +0 -0
  333. package/codex-lens/src/codexlens/parsers/__pycache__/factory.cpython-313.pyc +0 -0
  334. package/codex-lens/src/codexlens/parsers/__pycache__/tokenizer.cpython-313.pyc +0 -0
  335. package/codex-lens/src/codexlens/parsers/__pycache__/treesitter_parser.cpython-313.pyc +0 -0
  336. package/codex-lens/src/codexlens/parsers/encoding.py +202 -0
  337. package/codex-lens/src/codexlens/parsers/factory.py +256 -0
  338. package/codex-lens/src/codexlens/parsers/tokenizer.py +98 -0
  339. package/codex-lens/src/codexlens/parsers/treesitter_parser.py +335 -0
  340. package/codex-lens/src/codexlens/search/__init__.py +15 -0
  341. package/codex-lens/src/codexlens/search/__pycache__/__init__.cpython-313.pyc +0 -0
  342. package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-313.pyc +0 -0
  343. package/codex-lens/src/codexlens/search/__pycache__/enrichment.cpython-313.pyc +0 -0
  344. package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-313.pyc +0 -0
  345. package/codex-lens/src/codexlens/search/__pycache__/query_parser.cpython-313.pyc +0 -0
  346. package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-313.pyc +0 -0
  347. package/codex-lens/src/codexlens/search/chain_search.py +647 -0
  348. package/codex-lens/src/codexlens/search/enrichment.py +150 -0
  349. package/codex-lens/src/codexlens/search/hybrid_search.py +313 -0
  350. package/codex-lens/src/codexlens/search/query_parser.py +242 -0
  351. package/codex-lens/src/codexlens/search/ranking.py +274 -0
  352. package/codex-lens/src/codexlens/semantic/__init__.py +39 -0
  353. package/codex-lens/src/codexlens/semantic/__pycache__/__init__.cpython-313.pyc +0 -0
  354. package/codex-lens/src/codexlens/semantic/__pycache__/ann_index.cpython-313.pyc +0 -0
  355. package/codex-lens/src/codexlens/semantic/__pycache__/chunker.cpython-313.pyc +0 -0
  356. package/codex-lens/src/codexlens/semantic/__pycache__/code_extractor.cpython-313.pyc +0 -0
  357. package/codex-lens/src/codexlens/semantic/__pycache__/embedder.cpython-313.pyc +0 -0
  358. package/codex-lens/src/codexlens/semantic/__pycache__/graph_analyzer.cpython-313.pyc +0 -0
  359. package/codex-lens/src/codexlens/semantic/__pycache__/llm_enhancer.cpython-313.pyc +0 -0
  360. package/codex-lens/src/codexlens/semantic/__pycache__/vector_store.cpython-313.pyc +0 -0
  361. package/codex-lens/src/codexlens/semantic/ann_index.py +414 -0
  362. package/codex-lens/src/codexlens/semantic/chunker.py +448 -0
  363. package/codex-lens/src/codexlens/semantic/code_extractor.py +274 -0
  364. package/codex-lens/src/codexlens/semantic/embedder.py +185 -0
  365. package/codex-lens/src/codexlens/semantic/vector_store.py +955 -0
  366. package/codex-lens/src/codexlens/storage/__init__.py +29 -0
  367. package/codex-lens/src/codexlens/storage/__pycache__/__init__.cpython-313.pyc +0 -0
  368. package/codex-lens/src/codexlens/storage/__pycache__/dir_index.cpython-313.pyc +0 -0
  369. package/codex-lens/src/codexlens/storage/__pycache__/file_cache.cpython-313.pyc +0 -0
  370. package/codex-lens/src/codexlens/storage/__pycache__/index_tree.cpython-313.pyc +0 -0
  371. package/codex-lens/src/codexlens/storage/__pycache__/migration_manager.cpython-313.pyc +0 -0
  372. package/codex-lens/src/codexlens/storage/__pycache__/path_mapper.cpython-313.pyc +0 -0
  373. package/codex-lens/src/codexlens/storage/__pycache__/registry.cpython-313.pyc +0 -0
  374. package/codex-lens/src/codexlens/storage/__pycache__/sqlite_store.cpython-313.pyc +0 -0
  375. package/codex-lens/src/codexlens/storage/__pycache__/sqlite_utils.cpython-313.pyc +0 -0
  376. package/codex-lens/src/codexlens/storage/dir_index.py +1850 -0
  377. package/codex-lens/src/codexlens/storage/file_cache.py +32 -0
  378. package/codex-lens/src/codexlens/storage/index_tree.py +776 -0
  379. package/codex-lens/src/codexlens/storage/migration_manager.py +154 -0
  380. package/codex-lens/src/codexlens/storage/migrations/__init__.py +1 -0
  381. package/codex-lens/src/codexlens/storage/migrations/__pycache__/__init__.cpython-313.pyc +0 -0
  382. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_001_normalize_keywords.cpython-313.pyc +0 -0
  383. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_002_add_token_metadata.cpython-313.pyc +0 -0
  384. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_003_code_relationships.cpython-313.pyc +0 -0
  385. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_004_dual_fts.cpython-313.pyc +0 -0
  386. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_005_cleanup_unused_fields.cpython-313.pyc +0 -0
  387. package/codex-lens/src/codexlens/storage/migrations/migration_001_normalize_keywords.py +123 -0
  388. package/codex-lens/src/codexlens/storage/migrations/migration_002_add_token_metadata.py +48 -0
  389. package/codex-lens/src/codexlens/storage/migrations/migration_004_dual_fts.py +232 -0
  390. package/codex-lens/src/codexlens/storage/migrations/migration_005_cleanup_unused_fields.py +196 -0
  391. package/codex-lens/src/codexlens/storage/path_mapper.py +274 -0
  392. package/codex-lens/src/codexlens/storage/registry.py +670 -0
  393. package/codex-lens/src/codexlens/storage/sqlite_store.py +576 -0
  394. package/codex-lens/src/codexlens/storage/sqlite_utils.py +64 -0
  395. package/package.json +37 -32
  396. package/dist/cli.d.ts +0 -2
  397. package/dist/cli.d.ts.map +0 -1
  398. package/dist/cli.js +0 -219
  399. package/dist/cli.js.map +0 -1
  400. package/dist/commands/cli.d.ts +0 -32
  401. package/dist/commands/cli.d.ts.map +0 -1
  402. package/dist/commands/cli.js +0 -619
  403. package/dist/commands/cli.js.map +0 -1
  404. package/dist/commands/core-memory.d.ts +0 -32
  405. package/dist/commands/core-memory.d.ts.map +0 -1
  406. package/dist/commands/core-memory.js +0 -640
  407. package/dist/commands/core-memory.js.map +0 -1
  408. package/dist/commands/hook.d.ts +0 -16
  409. package/dist/commands/hook.d.ts.map +0 -1
  410. package/dist/commands/hook.js +0 -276
  411. package/dist/commands/hook.js.map +0 -1
  412. package/dist/commands/install.d.ts +0 -12
  413. package/dist/commands/install.d.ts.map +0 -1
  414. package/dist/commands/install.js +0 -443
  415. package/dist/commands/install.js.map +0 -1
  416. package/dist/commands/list.d.ts +0 -5
  417. package/dist/commands/list.d.ts.map +0 -1
  418. package/dist/commands/list.js +0 -32
  419. package/dist/commands/list.js.map +0 -1
  420. package/dist/commands/memory.d.ts +0 -57
  421. package/dist/commands/memory.d.ts.map +0 -1
  422. package/dist/commands/memory.js +0 -890
  423. package/dist/commands/memory.js.map +0 -1
  424. package/dist/commands/serve.d.ts +0 -12
  425. package/dist/commands/serve.d.ts.map +0 -1
  426. package/dist/commands/serve.js +0 -63
  427. package/dist/commands/serve.js.map +0 -1
  428. package/dist/commands/session-path-resolver.d.ts +0 -45
  429. package/dist/commands/session-path-resolver.d.ts.map +0 -1
  430. package/dist/commands/session-path-resolver.js +0 -302
  431. package/dist/commands/session-path-resolver.js.map +0 -1
  432. package/dist/commands/session.d.ts +0 -12
  433. package/dist/commands/session.d.ts.map +0 -1
  434. package/dist/commands/session.js +0 -954
  435. package/dist/commands/session.js.map +0 -1
  436. package/dist/commands/stop.d.ts +0 -11
  437. package/dist/commands/stop.d.ts.map +0 -1
  438. package/dist/commands/stop.js +0 -96
  439. package/dist/commands/stop.js.map +0 -1
  440. package/dist/commands/tool.d.ts +0 -29
  441. package/dist/commands/tool.d.ts.map +0 -1
  442. package/dist/commands/tool.js +0 -173
  443. package/dist/commands/tool.js.map +0 -1
  444. package/dist/commands/uninstall.d.ts +0 -9
  445. package/dist/commands/uninstall.d.ts.map +0 -1
  446. package/dist/commands/uninstall.js +0 -239
  447. package/dist/commands/uninstall.js.map +0 -1
  448. package/dist/commands/upgrade.d.ts +0 -10
  449. package/dist/commands/upgrade.d.ts.map +0 -1
  450. package/dist/commands/upgrade.js +0 -288
  451. package/dist/commands/upgrade.js.map +0 -1
  452. package/dist/commands/view.d.ts +0 -14
  453. package/dist/commands/view.d.ts.map +0 -1
  454. package/dist/commands/view.js +0 -100
  455. package/dist/commands/view.js.map +0 -1
  456. package/dist/config/storage-paths.d.ts +0 -184
  457. package/dist/config/storage-paths.d.ts.map +0 -1
  458. package/dist/config/storage-paths.js +0 -536
  459. package/dist/config/storage-paths.js.map +0 -1
  460. package/dist/core/cache-manager.d.ts +0 -80
  461. package/dist/core/cache-manager.d.ts.map +0 -1
  462. package/dist/core/cache-manager.js +0 -260
  463. package/dist/core/cache-manager.js.map +0 -1
  464. package/dist/core/claude-freshness.d.ts +0 -53
  465. package/dist/core/claude-freshness.d.ts.map +0 -1
  466. package/dist/core/claude-freshness.js +0 -232
  467. package/dist/core/claude-freshness.js.map +0 -1
  468. package/dist/core/core-memory-store.d.ts +0 -320
  469. package/dist/core/core-memory-store.d.ts.map +0 -1
  470. package/dist/core/core-memory-store.js +0 -1177
  471. package/dist/core/core-memory-store.js.map +0 -1
  472. package/dist/core/dashboard-generator-patch.d.ts +0 -2
  473. package/dist/core/dashboard-generator-patch.d.ts.map +0 -1
  474. package/dist/core/dashboard-generator-patch.js +0 -48
  475. package/dist/core/dashboard-generator-patch.js.map +0 -1
  476. package/dist/core/dashboard-generator.d.ts +0 -8
  477. package/dist/core/dashboard-generator.d.ts.map +0 -1
  478. package/dist/core/dashboard-generator.js +0 -695
  479. package/dist/core/dashboard-generator.js.map +0 -1
  480. package/dist/core/data-aggregator.d.ts +0 -145
  481. package/dist/core/data-aggregator.d.ts.map +0 -1
  482. package/dist/core/data-aggregator.js +0 -416
  483. package/dist/core/data-aggregator.js.map +0 -1
  484. package/dist/core/history-importer.d.ts +0 -102
  485. package/dist/core/history-importer.d.ts.map +0 -1
  486. package/dist/core/history-importer.js +0 -493
  487. package/dist/core/history-importer.js.map +0 -1
  488. package/dist/core/lite-scanner-complete.d.ts +0 -81
  489. package/dist/core/lite-scanner-complete.d.ts.map +0 -1
  490. package/dist/core/lite-scanner-complete.js +0 -368
  491. package/dist/core/lite-scanner-complete.js.map +0 -1
  492. package/dist/core/lite-scanner.d.ts +0 -81
  493. package/dist/core/lite-scanner.d.ts.map +0 -1
  494. package/dist/core/lite-scanner.js +0 -368
  495. package/dist/core/lite-scanner.js.map +0 -1
  496. package/dist/core/manifest.d.ts +0 -88
  497. package/dist/core/manifest.d.ts.map +0 -1
  498. package/dist/core/manifest.js +0 -214
  499. package/dist/core/manifest.js.map +0 -1
  500. package/dist/core/memory-embedder-bridge.d.ts +0 -83
  501. package/dist/core/memory-embedder-bridge.d.ts.map +0 -1
  502. package/dist/core/memory-embedder-bridge.js +0 -181
  503. package/dist/core/memory-embedder-bridge.js.map +0 -1
  504. package/dist/core/memory-store.d.ts +0 -249
  505. package/dist/core/memory-store.d.ts.map +0 -1
  506. package/dist/core/memory-store.js +0 -781
  507. package/dist/core/memory-store.js.map +0 -1
  508. package/dist/core/routes/ccw-routes.d.ts +0 -20
  509. package/dist/core/routes/ccw-routes.d.ts.map +0 -1
  510. package/dist/core/routes/ccw-routes.js +0 -70
  511. package/dist/core/routes/ccw-routes.js.map +0 -1
  512. package/dist/core/routes/claude-routes.d.ts +0 -19
  513. package/dist/core/routes/claude-routes.d.ts.map +0 -1
  514. package/dist/core/routes/claude-routes.js +0 -1017
  515. package/dist/core/routes/claude-routes.js.map +0 -1
  516. package/dist/core/routes/cli-routes.d.ts +0 -20
  517. package/dist/core/routes/cli-routes.d.ts.map +0 -1
  518. package/dist/core/routes/cli-routes.js +0 -468
  519. package/dist/core/routes/cli-routes.js.map +0 -1
  520. package/dist/core/routes/codexlens-routes.d.ts +0 -20
  521. package/dist/core/routes/codexlens-routes.d.ts.map +0 -1
  522. package/dist/core/routes/codexlens-routes.js +0 -754
  523. package/dist/core/routes/codexlens-routes.js.map +0 -1
  524. package/dist/core/routes/core-memory-routes.d.ts +0 -21
  525. package/dist/core/routes/core-memory-routes.d.ts.map +0 -1
  526. package/dist/core/routes/core-memory-routes.js +0 -520
  527. package/dist/core/routes/core-memory-routes.js.map +0 -1
  528. package/dist/core/routes/files-routes.d.ts +0 -20
  529. package/dist/core/routes/files-routes.d.ts.map +0 -1
  530. package/dist/core/routes/files-routes.js +0 -374
  531. package/dist/core/routes/files-routes.js.map +0 -1
  532. package/dist/core/routes/graph-routes.d.ts +0 -20
  533. package/dist/core/routes/graph-routes.d.ts.map +0 -1
  534. package/dist/core/routes/graph-routes.js +0 -517
  535. package/dist/core/routes/graph-routes.js.map +0 -1
  536. package/dist/core/routes/help-routes.d.ts +0 -20
  537. package/dist/core/routes/help-routes.d.ts.map +0 -1
  538. package/dist/core/routes/help-routes.js +0 -250
  539. package/dist/core/routes/help-routes.js.map +0 -1
  540. package/dist/core/routes/hooks-routes.d.ts +0 -21
  541. package/dist/core/routes/hooks-routes.d.ts.map +0 -1
  542. package/dist/core/routes/hooks-routes.js +0 -346
  543. package/dist/core/routes/hooks-routes.js.map +0 -1
  544. package/dist/core/routes/mcp-routes.d.ts +0 -20
  545. package/dist/core/routes/mcp-routes.d.ts.map +0 -1
  546. package/dist/core/routes/mcp-routes.js +0 -1129
  547. package/dist/core/routes/mcp-routes.js.map +0 -1
  548. package/dist/core/routes/mcp-templates-db.d.ts +0 -54
  549. package/dist/core/routes/mcp-templates-db.d.ts.map +0 -1
  550. package/dist/core/routes/mcp-templates-db.js +0 -226
  551. package/dist/core/routes/mcp-templates-db.js.map +0 -1
  552. package/dist/core/routes/memory-routes.d.ts +0 -21
  553. package/dist/core/routes/memory-routes.d.ts.map +0 -1
  554. package/dist/core/routes/memory-routes.js +0 -1095
  555. package/dist/core/routes/memory-routes.js.map +0 -1
  556. package/dist/core/routes/rules-routes.d.ts +0 -20
  557. package/dist/core/routes/rules-routes.d.ts.map +0 -1
  558. package/dist/core/routes/rules-routes.js +0 -442
  559. package/dist/core/routes/rules-routes.js.map +0 -1
  560. package/dist/core/routes/session-routes.d.ts +0 -20
  561. package/dist/core/routes/session-routes.d.ts.map +0 -1
  562. package/dist/core/routes/session-routes.js +0 -423
  563. package/dist/core/routes/session-routes.js.map +0 -1
  564. package/dist/core/routes/skills-routes.d.ts +0 -20
  565. package/dist/core/routes/skills-routes.d.ts.map +0 -1
  566. package/dist/core/routes/skills-routes.js +0 -533
  567. package/dist/core/routes/skills-routes.js.map +0 -1
  568. package/dist/core/routes/status-routes.d.ts +0 -20
  569. package/dist/core/routes/status-routes.d.ts.map +0 -1
  570. package/dist/core/routes/status-routes.js +0 -38
  571. package/dist/core/routes/status-routes.js.map +0 -1
  572. package/dist/core/routes/system-routes.d.ts +0 -22
  573. package/dist/core/routes/system-routes.d.ts.map +0 -1
  574. package/dist/core/routes/system-routes.js +0 -354
  575. package/dist/core/routes/system-routes.js.map +0 -1
  576. package/dist/core/server.d.ts +0 -17
  577. package/dist/core/server.d.ts.map +0 -1
  578. package/dist/core/server.js +0 -386
  579. package/dist/core/server.js.map +0 -1
  580. package/dist/core/session-clustering-service.d.ts +0 -153
  581. package/dist/core/session-clustering-service.d.ts.map +0 -1
  582. package/dist/core/session-clustering-service.js +0 -1065
  583. package/dist/core/session-clustering-service.js.map +0 -1
  584. package/dist/core/session-scanner.d.ts +0 -32
  585. package/dist/core/session-scanner.d.ts.map +0 -1
  586. package/dist/core/session-scanner.js +0 -253
  587. package/dist/core/session-scanner.js.map +0 -1
  588. package/dist/core/websocket.d.ts +0 -23
  589. package/dist/core/websocket.d.ts.map +0 -1
  590. package/dist/core/websocket.js +0 -168
  591. package/dist/core/websocket.js.map +0 -1
  592. package/dist/index.d.ts +0 -10
  593. package/dist/index.d.ts.map +0 -1
  594. package/dist/index.js +0 -10
  595. package/dist/index.js.map +0 -1
  596. package/dist/mcp-server/index.d.ts +0 -7
  597. package/dist/mcp-server/index.d.ts.map +0 -1
  598. package/dist/mcp-server/index.js +0 -157
  599. package/dist/mcp-server/index.js.map +0 -1
  600. package/dist/tools/classify-folders.d.ts +0 -26
  601. package/dist/tools/classify-folders.d.ts.map +0 -1
  602. package/dist/tools/classify-folders.js +0 -201
  603. package/dist/tools/classify-folders.js.map +0 -1
  604. package/dist/tools/cli-config-manager.d.ts +0 -62
  605. package/dist/tools/cli-config-manager.d.ts.map +0 -1
  606. package/dist/tools/cli-config-manager.js +0 -221
  607. package/dist/tools/cli-config-manager.js.map +0 -1
  608. package/dist/tools/cli-executor.d.ts +0 -373
  609. package/dist/tools/cli-executor.d.ts.map +0 -1
  610. package/dist/tools/cli-executor.js +0 -1625
  611. package/dist/tools/cli-executor.js.map +0 -1
  612. package/dist/tools/cli-history-store.d.ts +0 -330
  613. package/dist/tools/cli-history-store.d.ts.map +0 -1
  614. package/dist/tools/cli-history-store.js +0 -916
  615. package/dist/tools/cli-history-store.js.map +0 -1
  616. package/dist/tools/codex-lens.d.ts +0 -118
  617. package/dist/tools/codex-lens.d.ts.map +0 -1
  618. package/dist/tools/codex-lens.js +0 -962
  619. package/dist/tools/codex-lens.js.map +0 -1
  620. package/dist/tools/convert-tokens-to-css.d.ts +0 -14
  621. package/dist/tools/convert-tokens-to-css.d.ts.map +0 -1
  622. package/dist/tools/convert-tokens-to-css.js +0 -244
  623. package/dist/tools/convert-tokens-to-css.js.map +0 -1
  624. package/dist/tools/core-memory.d.ts +0 -66
  625. package/dist/tools/core-memory.d.ts.map +0 -1
  626. package/dist/tools/core-memory.js +0 -324
  627. package/dist/tools/core-memory.js.map +0 -1
  628. package/dist/tools/detect-changed-modules.d.ts +0 -24
  629. package/dist/tools/detect-changed-modules.d.ts.map +0 -1
  630. package/dist/tools/detect-changed-modules.js +0 -277
  631. package/dist/tools/detect-changed-modules.js.map +0 -1
  632. package/dist/tools/discover-design-files.d.ts +0 -36
  633. package/dist/tools/discover-design-files.d.ts.map +0 -1
  634. package/dist/tools/discover-design-files.js +0 -147
  635. package/dist/tools/discover-design-files.js.map +0 -1
  636. package/dist/tools/edit-file.d.ts +0 -28
  637. package/dist/tools/edit-file.d.ts.map +0 -1
  638. package/dist/tools/edit-file.js +0 -479
  639. package/dist/tools/edit-file.js.map +0 -1
  640. package/dist/tools/generate-module-docs.d.ts +0 -22
  641. package/dist/tools/generate-module-docs.d.ts.map +0 -1
  642. package/dist/tools/generate-module-docs.js +0 -379
  643. package/dist/tools/generate-module-docs.js.map +0 -1
  644. package/dist/tools/get-modules-by-depth.d.ts +0 -15
  645. package/dist/tools/get-modules-by-depth.d.ts.map +0 -1
  646. package/dist/tools/get-modules-by-depth.js +0 -296
  647. package/dist/tools/get-modules-by-depth.js.map +0 -1
  648. package/dist/tools/index.d.ts +0 -55
  649. package/dist/tools/index.d.ts.map +0 -1
  650. package/dist/tools/index.js +0 -304
  651. package/dist/tools/index.js.map +0 -1
  652. package/dist/tools/native-session-discovery.d.ts +0 -97
  653. package/dist/tools/native-session-discovery.d.ts.map +0 -1
  654. package/dist/tools/native-session-discovery.js +0 -700
  655. package/dist/tools/native-session-discovery.js.map +0 -1
  656. package/dist/tools/notifier.d.ts +0 -50
  657. package/dist/tools/notifier.d.ts.map +0 -1
  658. package/dist/tools/notifier.js +0 -90
  659. package/dist/tools/notifier.js.map +0 -1
  660. package/dist/tools/read-file.d.ts +0 -32
  661. package/dist/tools/read-file.d.ts.map +0 -1
  662. package/dist/tools/read-file.js +0 -329
  663. package/dist/tools/read-file.js.map +0 -1
  664. package/dist/tools/resume-strategy.d.ts +0 -48
  665. package/dist/tools/resume-strategy.d.ts.map +0 -1
  666. package/dist/tools/resume-strategy.js +0 -248
  667. package/dist/tools/resume-strategy.js.map +0 -1
  668. package/dist/tools/session-content-parser.d.ts +0 -58
  669. package/dist/tools/session-content-parser.d.ts.map +0 -1
  670. package/dist/tools/session-content-parser.js +0 -420
  671. package/dist/tools/session-content-parser.js.map +0 -1
  672. package/dist/tools/session-manager.d.ts +0 -9
  673. package/dist/tools/session-manager.d.ts.map +0 -1
  674. package/dist/tools/session-manager.js +0 -834
  675. package/dist/tools/session-manager.js.map +0 -1
  676. package/dist/tools/smart-context.d.ts +0 -35
  677. package/dist/tools/smart-context.d.ts.map +0 -1
  678. package/dist/tools/smart-context.js +0 -182
  679. package/dist/tools/smart-context.js.map +0 -1
  680. package/dist/tools/smart-search.d.ts +0 -105
  681. package/dist/tools/smart-search.d.ts.map +0 -1
  682. package/dist/tools/smart-search.js +0 -1753
  683. package/dist/tools/smart-search.js.map +0 -1
  684. package/dist/tools/storage-manager.d.ts +0 -114
  685. package/dist/tools/storage-manager.d.ts.map +0 -1
  686. package/dist/tools/storage-manager.js +0 -392
  687. package/dist/tools/storage-manager.js.map +0 -1
  688. package/dist/tools/ui-generate-preview.d.ts +0 -39
  689. package/dist/tools/ui-generate-preview.d.ts.map +0 -1
  690. package/dist/tools/ui-generate-preview.js +0 -300
  691. package/dist/tools/ui-generate-preview.js.map +0 -1
  692. package/dist/tools/ui-instantiate-prototypes.d.ts +0 -75
  693. package/dist/tools/ui-instantiate-prototypes.d.ts.map +0 -1
  694. package/dist/tools/ui-instantiate-prototypes.js +0 -256
  695. package/dist/tools/ui-instantiate-prototypes.js.map +0 -1
  696. package/dist/tools/update-module-claude.d.ts +0 -80
  697. package/dist/tools/update-module-claude.d.ts.map +0 -1
  698. package/dist/tools/update-module-claude.js +0 -351
  699. package/dist/tools/update-module-claude.js.map +0 -1
  700. package/dist/tools/write-file.d.ts +0 -19
  701. package/dist/tools/write-file.d.ts.map +0 -1
  702. package/dist/tools/write-file.js +0 -193
  703. package/dist/tools/write-file.js.map +0 -1
  704. package/dist/types/config.d.ts +0 -11
  705. package/dist/types/config.d.ts.map +0 -1
  706. package/dist/types/config.js +0 -2
  707. package/dist/types/config.js.map +0 -1
  708. package/dist/types/index.d.ts +0 -4
  709. package/dist/types/index.d.ts.map +0 -1
  710. package/dist/types/index.js +0 -4
  711. package/dist/types/index.js.map +0 -1
  712. package/dist/types/session.d.ts +0 -20
  713. package/dist/types/session.d.ts.map +0 -1
  714. package/dist/types/session.js +0 -2
  715. package/dist/types/session.js.map +0 -1
  716. package/dist/types/tool.d.ts +0 -36
  717. package/dist/types/tool.d.ts.map +0 -1
  718. package/dist/types/tool.js +0 -11
  719. package/dist/types/tool.js.map +0 -1
  720. package/dist/utils/browser-launcher.d.ts +0 -13
  721. package/dist/utils/browser-launcher.d.ts.map +0 -1
  722. package/dist/utils/browser-launcher.js +0 -60
  723. package/dist/utils/browser-launcher.js.map +0 -1
  724. package/dist/utils/file-utils.d.ts +0 -25
  725. package/dist/utils/file-utils.d.ts.map +0 -1
  726. package/dist/utils/file-utils.js +0 -48
  727. package/dist/utils/file-utils.js.map +0 -1
  728. package/dist/utils/path-resolver.d.ts +0 -80
  729. package/dist/utils/path-resolver.d.ts.map +0 -1
  730. package/dist/utils/path-resolver.js +0 -260
  731. package/dist/utils/path-resolver.js.map +0 -1
  732. package/dist/utils/path-validator.d.ts +0 -49
  733. package/dist/utils/path-validator.d.ts.map +0 -1
  734. package/dist/utils/path-validator.js +0 -123
  735. package/dist/utils/path-validator.js.map +0 -1
  736. package/dist/utils/ui.d.ts +0 -62
  737. package/dist/utils/ui.d.ts.map +0 -1
  738. package/dist/utils/ui.js +0 -129
  739. package/dist/utils/ui.js.map +0 -1
  740. /package/{bin → ccw/bin}/ccw-mcp.js +0 -0
  741. /package/{bin → ccw/bin}/ccw.js +0 -0
  742. /package/{src → ccw/src}/.workflow/.cli-history/history.db +0 -0
  743. /package/{src → ccw/src}/.workflow/.cli-history/history.db-shm +0 -0
  744. /package/{src → ccw/src}/.workflow/.cli-history/history.db-wal +0 -0
  745. /package/{src → ccw/src}/cli.ts +0 -0
  746. /package/{src → ccw/src}/commands/cli.ts +0 -0
  747. /package/{src → ccw/src}/commands/core-memory.ts +0 -0
  748. /package/{src → ccw/src}/commands/hook.ts +0 -0
  749. /package/{src → ccw/src}/commands/install.ts +0 -0
  750. /package/{src → ccw/src}/commands/list.ts +0 -0
  751. /package/{src → ccw/src}/commands/memory.ts +0 -0
  752. /package/{src → ccw/src}/commands/serve.ts +0 -0
  753. /package/{src → ccw/src}/commands/session-path-resolver.ts +0 -0
  754. /package/{src → ccw/src}/commands/session.ts +0 -0
  755. /package/{src → ccw/src}/commands/stop.ts +0 -0
  756. /package/{src → ccw/src}/commands/tool.ts +0 -0
  757. /package/{src → ccw/src}/commands/uninstall.ts +0 -0
  758. /package/{src → ccw/src}/commands/upgrade.ts +0 -0
  759. /package/{src → ccw/src}/commands/view.ts +0 -0
  760. /package/{src → ccw/src}/config/storage-paths.ts +0 -0
  761. /package/{src → ccw/src}/core/cache-manager.ts +0 -0
  762. /package/{src → ccw/src}/core/claude-freshness.ts +0 -0
  763. /package/{src → ccw/src}/core/core-memory-store.ts +0 -0
  764. /package/{src → ccw/src}/core/dashboard-generator-patch.ts +0 -0
  765. /package/{src → ccw/src}/core/dashboard-generator.ts +0 -0
  766. /package/{src → ccw/src}/core/data-aggregator.ts +0 -0
  767. /package/{src → ccw/src}/core/history-importer.ts +0 -0
  768. /package/{src → ccw/src}/core/lite-scanner-complete.ts +0 -0
  769. /package/{src → ccw/src}/core/lite-scanner.ts +0 -0
  770. /package/{src → ccw/src}/core/manifest.ts +0 -0
  771. /package/{src → ccw/src}/core/memory-embedder-bridge.ts +0 -0
  772. /package/{src → ccw/src}/core/memory-store.ts +0 -0
  773. /package/{src → ccw/src}/core/routes/ccw-routes.ts +0 -0
  774. /package/{src → ccw/src}/core/routes/claude-routes.ts +0 -0
  775. /package/{src → ccw/src}/core/routes/cli-routes.ts +0 -0
  776. /package/{src → ccw/src}/core/routes/codexlens-routes.ts +0 -0
  777. /package/{src → ccw/src}/core/routes/core-memory-routes.ts +0 -0
  778. /package/{src → ccw/src}/core/routes/files-routes.ts +0 -0
  779. /package/{src → ccw/src}/core/routes/graph-routes.md +0 -0
  780. /package/{src → ccw/src}/core/routes/graph-routes.ts +0 -0
  781. /package/{src → ccw/src}/core/routes/help-routes.ts +0 -0
  782. /package/{src → ccw/src}/core/routes/hooks-routes.ts +0 -0
  783. /package/{src → ccw/src}/core/routes/mcp-routes.ts +0 -0
  784. /package/{src → ccw/src}/core/routes/mcp-routes.ts.backup +0 -0
  785. /package/{src → ccw/src}/core/routes/mcp-templates-db.ts +0 -0
  786. /package/{src → ccw/src}/core/routes/memory-routes.ts +0 -0
  787. /package/{src → ccw/src}/core/routes/rules-routes.ts +0 -0
  788. /package/{src → ccw/src}/core/routes/session-routes.ts +0 -0
  789. /package/{src → ccw/src}/core/routes/skills-routes.ts +0 -0
  790. /package/{src → ccw/src}/core/routes/status-routes.ts +0 -0
  791. /package/{src → ccw/src}/core/routes/system-routes.ts +0 -0
  792. /package/{src → ccw/src}/core/server.ts +0 -0
  793. /package/{src → ccw/src}/core/session-clustering-service.ts +0 -0
  794. /package/{src → ccw/src}/core/session-scanner.ts +0 -0
  795. /package/{src → ccw/src}/core/websocket.ts +0 -0
  796. /package/{src → ccw/src}/index.ts +0 -0
  797. /package/{src → ccw/src}/mcp-server/index.ts +0 -0
  798. /package/{src → ccw/src}/templates/assets/css/github-dark.min.css +0 -0
  799. /package/{src → ccw/src}/templates/assets/css/github.min.css +0 -0
  800. /package/{src → ccw/src}/templates/assets/js/cytoscape.min.js +0 -0
  801. /package/{src → ccw/src}/templates/assets/js/d3.min.js +0 -0
  802. /package/{src → ccw/src}/templates/assets/js/highlight.min.js +0 -0
  803. /package/{src → ccw/src}/templates/assets/js/lucide.min.js +0 -0
  804. /package/{src → ccw/src}/templates/assets/js/marked.min.js +0 -0
  805. /package/{src → ccw/src}/templates/assets/js/tailwind.js +0 -0
  806. /package/{src → ccw/src}/templates/dashboard-css/01-base.css +0 -0
  807. /package/{src → ccw/src}/templates/dashboard-css/02-session.css +0 -0
  808. /package/{src → ccw/src}/templates/dashboard-css/03-tasks.css +0 -0
  809. /package/{src → ccw/src}/templates/dashboard-css/04-lite-tasks.css +0 -0
  810. /package/{src → ccw/src}/templates/dashboard-css/05-context.css +0 -0
  811. /package/{src → ccw/src}/templates/dashboard-css/06-cards.css +0 -0
  812. /package/{src → ccw/src}/templates/dashboard-css/07-managers.css +0 -0
  813. /package/{src → ccw/src}/templates/dashboard-css/08-review.css +0 -0
  814. /package/{src → ccw/src}/templates/dashboard-css/09-explorer.css +0 -0
  815. /package/{src → ccw/src}/templates/dashboard-css/10-cli-status.css +0 -0
  816. /package/{src → ccw/src}/templates/dashboard-css/11-cli-history.css +0 -0
  817. /package/{src → ccw/src}/templates/dashboard-css/12-cli-legacy.css +0 -0
  818. /package/{src → ccw/src}/templates/dashboard-css/13-cli-ccw.css +0 -0
  819. /package/{src → ccw/src}/templates/dashboard-css/14-cli-modals.css +0 -0
  820. /package/{src → ccw/src}/templates/dashboard-css/15-cli-endpoints.css +0 -0
  821. /package/{src → ccw/src}/templates/dashboard-css/16-cli-session.css +0 -0
  822. /package/{src → ccw/src}/templates/dashboard-css/17-cli-conversation.css +0 -0
  823. /package/{src → ccw/src}/templates/dashboard-css/18-cli-settings.css +0 -0
  824. /package/{src → ccw/src}/templates/dashboard-css/19-cli-native-session.css +0 -0
  825. /package/{src → ccw/src}/templates/dashboard-css/20-cli-taskqueue.css +0 -0
  826. /package/{src → ccw/src}/templates/dashboard-css/21-cli-toolmgmt.css +0 -0
  827. /package/{src → ccw/src}/templates/dashboard-css/22-cli-semantic.css +0 -0
  828. /package/{src → ccw/src}/templates/dashboard-css/23-memory.css +0 -0
  829. /package/{src → ccw/src}/templates/dashboard-css/24-prompt-history.css +0 -0
  830. /package/{src → ccw/src}/templates/dashboard-css/25-skills-rules.css +0 -0
  831. /package/{src → ccw/src}/templates/dashboard-css/26-claude-manager.css +0 -0
  832. /package/{src → ccw/src}/templates/dashboard-css/27-graph-explorer.css +0 -0
  833. /package/{src → ccw/src}/templates/dashboard-css/28-mcp-manager.css +0 -0
  834. /package/{src → ccw/src}/templates/dashboard-css/29-help.css +0 -0
  835. /package/{src → ccw/src}/templates/dashboard-css/30-core-memory.css +0 -0
  836. /package/{src → ccw/src}/templates/dashboard-js/api.js +0 -0
  837. /package/{src → ccw/src}/templates/dashboard-js/components/_conflict_tab.js +0 -0
  838. /package/{src → ccw/src}/templates/dashboard-js/components/_exp_helpers.js +0 -0
  839. /package/{src → ccw/src}/templates/dashboard-js/components/_review_tab.js +0 -0
  840. /package/{src → ccw/src}/templates/dashboard-js/components/carousel.js +0 -0
  841. /package/{src → ccw/src}/templates/dashboard-js/components/cli-history.js +0 -0
  842. /package/{src → ccw/src}/templates/dashboard-js/components/cli-status.js +0 -0
  843. /package/{src → ccw/src}/templates/dashboard-js/components/flowchart.js +0 -0
  844. /package/{src → ccw/src}/templates/dashboard-js/components/global-notifications.js +0 -0
  845. /package/{src → ccw/src}/templates/dashboard-js/components/hook-manager.js +0 -0
  846. /package/{src → ccw/src}/templates/dashboard-js/components/index-manager.js +0 -0
  847. /package/{src → ccw/src}/templates/dashboard-js/components/mcp-manager.js +0 -0
  848. /package/{src → ccw/src}/templates/dashboard-js/components/modals.js +0 -0
  849. /package/{src → ccw/src}/templates/dashboard-js/components/navigation.js +0 -0
  850. /package/{src → ccw/src}/templates/dashboard-js/components/notifications.js +0 -0
  851. /package/{src → ccw/src}/templates/dashboard-js/components/sidebar.js +0 -0
  852. /package/{src → ccw/src}/templates/dashboard-js/components/storage-manager.js +0 -0
  853. /package/{src → ccw/src}/templates/dashboard-js/components/tabs-context.js +0 -0
  854. /package/{src → ccw/src}/templates/dashboard-js/components/tabs-other.js +0 -0
  855. /package/{src → ccw/src}/templates/dashboard-js/components/task-drawer-core.js +0 -0
  856. /package/{src → ccw/src}/templates/dashboard-js/components/task-drawer-renderers.js +0 -0
  857. /package/{src → ccw/src}/templates/dashboard-js/components/task-queue-sidebar.js +0 -0
  858. /package/{src → ccw/src}/templates/dashboard-js/components/theme.js +0 -0
  859. /package/{src → ccw/src}/templates/dashboard-js/components/version-check.js +0 -0
  860. /package/{src → ccw/src}/templates/dashboard-js/help-i18n.js +0 -0
  861. /package/{src → ccw/src}/templates/dashboard-js/i18n.js +0 -0
  862. /package/{src → ccw/src}/templates/dashboard-js/main.js +0 -0
  863. /package/{src → ccw/src}/templates/dashboard-js/state.js +0 -0
  864. /package/{src → ccw/src}/templates/dashboard-js/utils.js +0 -0
  865. /package/{src → ccw/src}/templates/dashboard-js/views/claude-manager.js +0 -0
  866. /package/{src → ccw/src}/templates/dashboard-js/views/cli-manager.js +0 -0
  867. /package/{src → ccw/src}/templates/dashboard-js/views/codexlens-manager.js +0 -0
  868. /package/{src → ccw/src}/templates/dashboard-js/views/core-memory-clusters.js +0 -0
  869. /package/{src → ccw/src}/templates/dashboard-js/views/core-memory.js +0 -0
  870. /package/{src → ccw/src}/templates/dashboard-js/views/explorer.js +0 -0
  871. /package/{src → ccw/src}/templates/dashboard-js/views/fix-session.js +0 -0
  872. /package/{src → ccw/src}/templates/dashboard-js/views/graph-explorer.js +0 -0
  873. /package/{src → ccw/src}/templates/dashboard-js/views/help.js +0 -0
  874. /package/{src → ccw/src}/templates/dashboard-js/views/history.js +0 -0
  875. /package/{src → ccw/src}/templates/dashboard-js/views/home.js +0 -0
  876. /package/{src → ccw/src}/templates/dashboard-js/views/hook-manager.js +0 -0
  877. /package/{src → ccw/src}/templates/dashboard-js/views/lite-tasks.js +0 -0
  878. /package/{src → ccw/src}/templates/dashboard-js/views/mcp-manager.js +0 -0
  879. /package/{src → ccw/src}/templates/dashboard-js/views/mcp-manager.js.backup +0 -0
  880. /package/{src → ccw/src}/templates/dashboard-js/views/mcp-manager.js.new +0 -0
  881. /package/{src → ccw/src}/templates/dashboard-js/views/memory.js +0 -0
  882. /package/{src → ccw/src}/templates/dashboard-js/views/project-overview.js +0 -0
  883. /package/{src → ccw/src}/templates/dashboard-js/views/prompt-history.js +0 -0
  884. /package/{src → ccw/src}/templates/dashboard-js/views/review-session.js +0 -0
  885. /package/{src → ccw/src}/templates/dashboard-js/views/rules-manager.js +0 -0
  886. /package/{src → ccw/src}/templates/dashboard-js/views/session-detail.js +0 -0
  887. /package/{src → ccw/src}/templates/dashboard-js/views/skills-manager.js +0 -0
  888. /package/{src → ccw/src}/templates/dashboard.html +0 -0
  889. /package/{src → ccw/src}/templates/hooks-config-example.json +0 -0
  890. /package/{src → ccw/src}/templates/review-cycle-dashboard.html +0 -0
  891. /package/{src → ccw/src}/templates/workflow-dashboard.html +0 -0
  892. /package/{src → ccw/src}/tools/classify-folders.ts +0 -0
  893. /package/{src → ccw/src}/tools/cli-config-manager.ts +0 -0
  894. /package/{src → ccw/src}/tools/cli-executor.ts +0 -0
  895. /package/{src → ccw/src}/tools/cli-history-store.ts +0 -0
  896. /package/{src → ccw/src}/tools/codex-lens.ts +0 -0
  897. /package/{src → ccw/src}/tools/convert-tokens-to-css.ts +0 -0
  898. /package/{src → ccw/src}/tools/core-memory.ts +0 -0
  899. /package/{src → ccw/src}/tools/detect-changed-modules.ts +0 -0
  900. /package/{src → ccw/src}/tools/discover-design-files.ts +0 -0
  901. /package/{src → ccw/src}/tools/edit-file.ts +0 -0
  902. /package/{src → ccw/src}/tools/generate-module-docs.ts +0 -0
  903. /package/{src → ccw/src}/tools/get-modules-by-depth.ts +0 -0
  904. /package/{src → ccw/src}/tools/index.ts +0 -0
  905. /package/{src → ccw/src}/tools/native-session-discovery.ts +0 -0
  906. /package/{src → ccw/src}/tools/notifier.ts +0 -0
  907. /package/{src → ccw/src}/tools/read-file.ts +0 -0
  908. /package/{src → ccw/src}/tools/resume-strategy.ts +0 -0
  909. /package/{src → ccw/src}/tools/session-content-parser.ts +0 -0
  910. /package/{src → ccw/src}/tools/session-manager.ts +0 -0
  911. /package/{src → ccw/src}/tools/smart-context.ts +0 -0
  912. /package/{src → ccw/src}/tools/smart-search.ts +0 -0
  913. /package/{src → ccw/src}/tools/smart-search.ts.backup +0 -0
  914. /package/{src → ccw/src}/tools/storage-manager.ts +0 -0
  915. /package/{src → ccw/src}/tools/ui-generate-preview.js +0 -0
  916. /package/{src → ccw/src}/tools/ui-instantiate-prototypes.js +0 -0
  917. /package/{src → ccw/src}/tools/update-module-claude.js +0 -0
  918. /package/{src → ccw/src}/tools/write-file.ts +0 -0
  919. /package/{src → ccw/src}/types/config.ts +0 -0
  920. /package/{src → ccw/src}/types/index.ts +0 -0
  921. /package/{src → ccw/src}/types/session.ts +0 -0
  922. /package/{src → ccw/src}/types/tool.ts +0 -0
  923. /package/{src → ccw/src}/utils/browser-launcher.ts +0 -0
  924. /package/{src → ccw/src}/utils/file-utils.ts +0 -0
  925. /package/{src → ccw/src}/utils/path-resolver.ts +0 -0
  926. /package/{src → ccw/src}/utils/path-validator.ts +0 -0
  927. /package/{src → ccw/src}/utils/ui.ts +0 -0
@@ -1,954 +0,0 @@
1
- /**
2
- * Session Command - Workflow session lifecycle management
3
- * Adapter for session_manager tool providing direct CLI access
4
- */
5
- import chalk from 'chalk';
6
- import http from 'http';
7
- import { executeTool } from '../tools/index.js';
8
- import { resolveFilePath, PathResolutionError } from './session-path-resolver.js';
9
- // Handle EPIPE errors gracefully (occurs when piping to head/jq that closes early)
10
- process.stdout.on('error', (err) => {
11
- if (err.code === 'EPIPE') {
12
- process.exit(0);
13
- }
14
- throw err;
15
- });
16
- /**
17
- * Notify dashboard of granular events (fire and forget)
18
- * @param {Object} data - Event data
19
- */
20
- function notifyDashboard(data) {
21
- const DASHBOARD_PORT = process.env.CCW_PORT || 3456;
22
- const payload = JSON.stringify({
23
- ...data,
24
- timestamp: new Date().toISOString()
25
- });
26
- const req = http.request({
27
- hostname: 'localhost',
28
- port: DASHBOARD_PORT,
29
- path: '/api/hook',
30
- method: 'POST',
31
- headers: {
32
- 'Content-Type': 'application/json',
33
- 'Content-Length': Buffer.byteLength(payload)
34
- }
35
- });
36
- // Fire and forget - log errors only in debug mode
37
- req.on('error', (err) => {
38
- if (process.env.DEBUG)
39
- console.error('[Dashboard] Notification failed:', err.message);
40
- });
41
- req.write(payload);
42
- req.end();
43
- }
44
- /**
45
- * List sessions
46
- * @param {Object} options - CLI options
47
- */
48
- async function listAction(options) {
49
- const params = {
50
- operation: 'list',
51
- location: options.location || 'both',
52
- include_metadata: options.metadata !== false
53
- };
54
- const result = await executeTool('session_manager', params);
55
- if (!result.success) {
56
- console.error(chalk.red(`Error: ${result.error}`));
57
- process.exit(1);
58
- }
59
- const { active = [], archived = [], total } = result.result;
60
- console.log(chalk.bold.cyan('\nWorkflow Sessions\n'));
61
- if (active.length > 0) {
62
- console.log(chalk.bold.white('Active Sessions:'));
63
- for (const session of active) {
64
- const meta = session.metadata || {};
65
- console.log(chalk.green(` [ACTIVE] ${session.session_id}`));
66
- if (meta.description)
67
- console.log(chalk.gray(` ${meta.description}`));
68
- if (meta.status)
69
- console.log(chalk.gray(` Status: ${meta.status}`));
70
- }
71
- console.log();
72
- }
73
- if (archived.length > 0) {
74
- console.log(chalk.bold.white('Archived Sessions:'));
75
- for (const session of archived) {
76
- const meta = session.metadata || {};
77
- console.log(chalk.blue(` [ARCHIVED] ${session.session_id}`));
78
- if (meta.description)
79
- console.log(chalk.gray(` ${meta.description}`));
80
- }
81
- console.log();
82
- }
83
- if (total === 0) {
84
- console.log(chalk.yellow('No sessions found'));
85
- }
86
- else {
87
- console.log(chalk.gray(`Total: ${total} session(s)`));
88
- }
89
- }
90
- /**
91
- * Initialize a new session
92
- * @param {string} sessionId - Session ID
93
- * @param {Object} options - CLI options
94
- */
95
- async function initAction(sessionId, options) {
96
- if (!sessionId) {
97
- console.error(chalk.red('Session ID is required'));
98
- console.error(chalk.gray('Usage: ccw session init <session_id> [--location <location>] [--type <type>] [--content <json>]'));
99
- process.exit(1);
100
- }
101
- // Auto-infer location from type if not explicitly provided
102
- // When type is 'lite-plan' or 'lite-fix', default location should match the type
103
- const sessionLocation = options.location ||
104
- (options.type === 'lite-plan' ? 'lite-plan' :
105
- options.type === 'lite-fix' ? 'lite-fix' :
106
- 'active');
107
- // Infer type from location if not explicitly provided
108
- const sessionType = options.type || (sessionLocation === 'active' ? 'workflow' : sessionLocation);
109
- // Parse custom metadata from --content if provided
110
- let customMetadata = {};
111
- if (options.content) {
112
- try {
113
- customMetadata = JSON.parse(options.content);
114
- }
115
- catch (e) {
116
- const error = e;
117
- console.error(chalk.red('Invalid JSON in --content parameter'));
118
- console.error(chalk.gray(`Parse error: ${error.message}`));
119
- process.exit(1);
120
- }
121
- }
122
- // Filter custom metadata: only allow safe fields, block system-critical fields
123
- const blockedFields = ['session_id', 'type', 'status', 'created_at', 'updated_at', 'archived_at'];
124
- const filteredCustomMetadata = {};
125
- for (const key in customMetadata) {
126
- if (!blockedFields.includes(key)) {
127
- filteredCustomMetadata[key] = customMetadata[key];
128
- }
129
- else {
130
- console.warn(chalk.yellow(`⚠ WARNING: Field '${key}' in --content is reserved and will be ignored`));
131
- }
132
- }
133
- // Merge metadata: defaults < custom (filtered) < required fields
134
- const metadata = Object.assign({
135
- session_id: sessionId,
136
- type: sessionType,
137
- status: 'planning',
138
- created_at: new Date().toISOString()
139
- }, filteredCustomMetadata, // User custom fields (filtered)
140
- {
141
- session_id: sessionId, // Force override - always use CLI param
142
- type: sessionType // Force override - always use --type or default
143
- });
144
- const params = {
145
- operation: 'init',
146
- session_id: sessionId,
147
- metadata: metadata,
148
- location: sessionLocation // Always pass location to session_manager
149
- };
150
- const result = await executeTool('session_manager', params);
151
- if (!result.success) {
152
- console.error(chalk.red(`Error: ${result.error}`));
153
- process.exit(1);
154
- }
155
- // Emit SESSION_CREATED event
156
- notifyDashboard({
157
- type: 'SESSION_CREATED',
158
- sessionId: sessionId,
159
- payload: result.result
160
- });
161
- // Lite sessions (lite-plan, lite-fix) use session-metadata.json, others use workflow-session.json
162
- const metadataFile = sessionLocation.startsWith('lite-') ? 'session-metadata.json' : 'workflow-session.json';
163
- console.log(chalk.green(`✓ Session "${sessionId}" initialized`));
164
- console.log(chalk.gray(` Location: ${result.result.path}`));
165
- console.log(chalk.gray(` Metadata: ${metadataFile} created`));
166
- }
167
- /**
168
- * Get session information (location and path)
169
- * Helper function for path resolution
170
- */
171
- async function getSessionInfo(sessionId) {
172
- // Use session_manager to find the session
173
- const findParams = {
174
- operation: 'list',
175
- location: 'all',
176
- include_metadata: false
177
- };
178
- const result = await executeTool('session_manager', findParams);
179
- if (!result.success) {
180
- throw new Error(`Failed to list sessions: ${result.error}`);
181
- }
182
- const resultData = result.result;
183
- const allSessions = [
184
- ...(resultData.active || []).map((s) => ({ ...s, location: 'active' })),
185
- ...(resultData.archived || []).map((s) => ({ ...s, location: 'archived' })),
186
- ...(resultData.litePlan || []).map((s) => ({ ...s, location: 'lite-plan' })),
187
- ...(resultData.liteFix || []).map((s) => ({ ...s, location: 'lite-fix' })),
188
- ];
189
- const session = allSessions.find((s) => s.session_id === sessionId || s.id === sessionId);
190
- if (!session) {
191
- throw new Error(`Session "${sessionId}" not found in active, archived, lite-plan, or lite-fix locations`);
192
- }
193
- // Return actual session path from the session object
194
- return {
195
- path: session.path || '',
196
- location: session.location
197
- };
198
- }
199
- /**
200
- * Read session content (NEW - with path resolution)
201
- * @param {string} sessionId - Session ID
202
- * @param {string} filename - Filename or relative path
203
- * @param {Object} options - CLI options
204
- */
205
- async function readAction(sessionId, filename, options) {
206
- if (!sessionId) {
207
- console.error(chalk.red('Session ID is required'));
208
- console.error(chalk.gray('Usage: ccw session <session-id> read <filename|path>'));
209
- process.exit(1);
210
- }
211
- // Backward compatibility: if --type is provided, use legacy implementation
212
- if (options.type) {
213
- console.warn(chalk.yellow('⚠ WARNING: --type parameter is deprecated'));
214
- console.warn(chalk.gray(' Old: ccw session read WFS-001 --type task --task-id IMPL-001'));
215
- console.warn(chalk.gray(' New: ccw session WFS-001 read IMPL-001.json'));
216
- console.log();
217
- return readActionLegacy(sessionId, options);
218
- }
219
- if (!filename) {
220
- console.error(chalk.red('Filename is required'));
221
- console.error(chalk.gray('Usage: ccw session <session-id> read <filename|path>'));
222
- console.error(chalk.gray(''));
223
- console.error(chalk.gray('Examples:'));
224
- console.error(chalk.gray(' ccw session WFS-001 read IMPL-001.json'));
225
- console.error(chalk.gray(' ccw session WFS-001 read IMPL_PLAN.md'));
226
- console.error(chalk.gray(' ccw session WFS-001 read .task/IMPL-001.json'));
227
- process.exit(1);
228
- }
229
- try {
230
- // Get session context
231
- const session = await getSessionInfo(sessionId);
232
- const context = {
233
- sessionPath: session.path,
234
- sessionLocation: session.location
235
- };
236
- // Resolve filename to content_type
237
- const resolved = resolveFilePath(filename, context);
238
- // Call session_manager tool
239
- const params = {
240
- operation: 'read',
241
- session_id: sessionId,
242
- content_type: resolved.contentType,
243
- };
244
- if (resolved.pathParams) {
245
- params.path_params = resolved.pathParams;
246
- }
247
- const result = await executeTool('session_manager', params);
248
- if (!result.success) {
249
- console.error(chalk.red(`Error: ${result.error}`));
250
- process.exit(1);
251
- }
252
- // Output raw content for piping
253
- if (options.raw) {
254
- console.log(typeof result.result.content === 'string'
255
- ? result.result.content
256
- : JSON.stringify(result.result.content, null, 2));
257
- }
258
- else {
259
- console.log(JSON.stringify(result, null, 2));
260
- }
261
- }
262
- catch (error) {
263
- if (error instanceof PathResolutionError) {
264
- console.error(chalk.red(`Error: ${error.message}`));
265
- if (error.suggestions.length > 0) {
266
- console.log(chalk.yellow('\nSuggestions:'));
267
- error.suggestions.forEach(s => console.log(chalk.gray(` ${s}`)));
268
- }
269
- process.exit(1);
270
- }
271
- throw error;
272
- }
273
- }
274
- /**
275
- * Read session content (LEGACY - with --type parameter)
276
- * @param {string} sessionId - Session ID
277
- * @param {Object} options - CLI options
278
- */
279
- async function readActionLegacy(sessionId, options) {
280
- if (!sessionId) {
281
- console.error(chalk.red('Session ID is required'));
282
- console.error(chalk.gray('Usage: ccw session read <session_id> --type <content_type>'));
283
- process.exit(1);
284
- }
285
- const params = {
286
- operation: 'read',
287
- session_id: sessionId,
288
- content_type: options.type || 'session'
289
- };
290
- // Add path_params if provided
291
- if (options.taskId)
292
- params.path_params = { ...(params.path_params || {}), task_id: options.taskId };
293
- if (options.filename)
294
- params.path_params = { ...(params.path_params || {}), filename: options.filename };
295
- if (options.dimension)
296
- params.path_params = { ...(params.path_params || {}), dimension: options.dimension };
297
- if (options.iteration)
298
- params.path_params = { ...(params.path_params || {}), iteration: options.iteration };
299
- const result = await executeTool('session_manager', params);
300
- if (!result.success) {
301
- console.error(chalk.red(`Error: ${result.error}`));
302
- process.exit(1);
303
- }
304
- // Output raw content for piping
305
- if (options.raw) {
306
- console.log(typeof result.result.content === 'string'
307
- ? result.result.content
308
- : JSON.stringify(result.result.content, null, 2));
309
- }
310
- else {
311
- console.log(JSON.stringify(result, null, 2));
312
- }
313
- }
314
- /**
315
- * Write session content (NEW - with path resolution)
316
- * @param {string} sessionId - Session ID
317
- * @param {string} filename - Filename or relative path
318
- * @param {string} contentString - Content to write
319
- * @param {Object} options - CLI options
320
- */
321
- async function writeAction(sessionId, filename, contentString, options) {
322
- if (!sessionId) {
323
- console.error(chalk.red('Session ID is required'));
324
- console.error(chalk.gray('Usage: ccw session <session-id> write <filename|path> <content>'));
325
- process.exit(1);
326
- }
327
- // Backward compatibility: if --type is provided, use legacy implementation
328
- if (options.type) {
329
- console.warn(chalk.yellow('⚠ WARNING: --type parameter is deprecated'));
330
- console.warn(chalk.gray(' Old: ccw session write WFS-001 --type plan --content "# Plan"'));
331
- console.warn(chalk.gray(' New: ccw session WFS-001 write IMPL_PLAN.md "# Plan"'));
332
- console.log();
333
- return writeActionLegacy(sessionId, options);
334
- }
335
- if (!filename || !contentString) {
336
- console.error(chalk.red('Filename and content are required'));
337
- console.error(chalk.gray('Usage: ccw session <session-id> write <filename|path> <content>'));
338
- console.error(chalk.gray(''));
339
- console.error(chalk.gray('Examples:'));
340
- console.error(chalk.gray(' ccw session WFS-001 write IMPL_PLAN.md "# Implementation Plan"'));
341
- console.error(chalk.gray(' ccw session WFS-001 write IMPL-001.json \'{"id":"IMPL-001","status":"pending"}\''));
342
- console.error(chalk.gray(' ccw session WFS-001 write .task/IMPL-001.json \'{"status":"completed"}\''));
343
- process.exit(1);
344
- }
345
- try {
346
- // Get session context
347
- const session = await getSessionInfo(sessionId);
348
- const context = {
349
- sessionPath: session.path,
350
- sessionLocation: session.location
351
- };
352
- // Resolve filename to content_type
353
- const resolved = resolveFilePath(filename, context);
354
- // Parse content (try JSON first, fallback to string)
355
- let content;
356
- try {
357
- content = JSON.parse(contentString);
358
- }
359
- catch {
360
- content = contentString;
361
- }
362
- // Call session_manager tool
363
- const params = {
364
- operation: 'write',
365
- session_id: sessionId,
366
- content_type: resolved.contentType,
367
- content,
368
- };
369
- if (resolved.pathParams) {
370
- params.path_params = resolved.pathParams;
371
- }
372
- const result = await executeTool('session_manager', params);
373
- if (!result.success) {
374
- console.error(chalk.red(`Error: ${result.error}`));
375
- process.exit(1);
376
- }
377
- // Emit granular event based on content_type
378
- const contentType = resolved.contentType;
379
- let eventType = 'CONTENT_WRITTEN';
380
- let entityId = null;
381
- switch (contentType) {
382
- case 'task':
383
- eventType = 'TASK_CREATED';
384
- entityId = resolved.pathParams?.task_id || content.task_id;
385
- break;
386
- case 'summary':
387
- eventType = 'SUMMARY_WRITTEN';
388
- entityId = resolved.pathParams?.task_id;
389
- break;
390
- case 'plan':
391
- eventType = 'PLAN_UPDATED';
392
- break;
393
- case 'review-dim':
394
- eventType = 'REVIEW_UPDATED';
395
- entityId = resolved.pathParams?.dimension;
396
- break;
397
- case 'review-iter':
398
- eventType = 'REVIEW_UPDATED';
399
- entityId = resolved.pathParams?.iteration;
400
- break;
401
- case 'review-fix':
402
- eventType = 'REVIEW_UPDATED';
403
- entityId = resolved.pathParams?.filename;
404
- break;
405
- case 'session':
406
- eventType = 'SESSION_UPDATED';
407
- break;
408
- }
409
- notifyDashboard({
410
- type: eventType,
411
- sessionId: sessionId,
412
- entityId: entityId,
413
- contentType: contentType,
414
- payload: result.result.written_content || content
415
- });
416
- console.log(chalk.green(`✓ Content written to ${resolved.resolvedPath}`));
417
- }
418
- catch (error) {
419
- if (error instanceof PathResolutionError) {
420
- console.error(chalk.red(`Error: ${error.message}`));
421
- if (error.suggestions.length > 0) {
422
- console.log(chalk.yellow('\nSuggestions:'));
423
- error.suggestions.forEach(s => console.log(chalk.gray(` ${s}`)));
424
- }
425
- process.exit(1);
426
- }
427
- throw error;
428
- }
429
- }
430
- /**
431
- * Write session content (LEGACY - with --type parameter)
432
- * @param {string} sessionId - Session ID
433
- * @param {Object} options - CLI options
434
- */
435
- async function writeActionLegacy(sessionId, options) {
436
- if (!sessionId) {
437
- console.error(chalk.red('Session ID is required'));
438
- console.error(chalk.gray('Usage: ccw session write <session_id> --type <content_type> --content <json>'));
439
- process.exit(1);
440
- }
441
- if (!options.content) {
442
- console.error(chalk.red('Content is required (--content)'));
443
- process.exit(1);
444
- }
445
- let content;
446
- try {
447
- content = JSON.parse(options.content);
448
- }
449
- catch {
450
- // If not JSON, treat as string content
451
- content = options.content;
452
- }
453
- const params = {
454
- operation: 'write',
455
- session_id: sessionId,
456
- content_type: options.type || 'session',
457
- content
458
- };
459
- // Add path_params if provided
460
- if (options.taskId)
461
- params.path_params = { ...(params.path_params || {}), task_id: options.taskId };
462
- if (options.filename)
463
- params.path_params = { ...(params.path_params || {}), filename: options.filename };
464
- const result = await executeTool('session_manager', params);
465
- if (!result.success) {
466
- console.error(chalk.red(`Error: ${result.error}`));
467
- process.exit(1);
468
- }
469
- // Emit granular event based on content_type
470
- const contentType = params.content_type;
471
- let eventType = 'CONTENT_WRITTEN';
472
- let entityId = null;
473
- switch (contentType) {
474
- case 'task':
475
- eventType = 'TASK_CREATED';
476
- entityId = options.taskId || content.task_id;
477
- break;
478
- case 'summary':
479
- eventType = 'SUMMARY_WRITTEN';
480
- entityId = options.taskId;
481
- break;
482
- case 'plan':
483
- eventType = 'PLAN_UPDATED';
484
- break;
485
- case 'review-dim':
486
- eventType = 'REVIEW_UPDATED';
487
- entityId = options.dimension;
488
- break;
489
- case 'review-iter':
490
- eventType = 'REVIEW_UPDATED';
491
- entityId = options.iteration;
492
- break;
493
- case 'review-fix':
494
- eventType = 'REVIEW_UPDATED';
495
- entityId = options.filename;
496
- break;
497
- case 'session':
498
- eventType = 'SESSION_UPDATED';
499
- break;
500
- }
501
- notifyDashboard({
502
- type: eventType,
503
- sessionId: sessionId,
504
- entityId: entityId,
505
- contentType: contentType,
506
- payload: result.result.written_content || content
507
- });
508
- console.log(chalk.green(`✓ Content written to ${result.result.path}`));
509
- }
510
- /**
511
- * Update session content (merge)
512
- * @param {string} sessionId - Session ID
513
- * @param {Object} options - CLI options
514
- */
515
- async function updateAction(sessionId, options) {
516
- if (!sessionId) {
517
- console.error(chalk.red('Session ID is required'));
518
- console.error(chalk.gray('Usage: ccw session update <session_id> --content <json>'));
519
- process.exit(1);
520
- }
521
- if (!options.content) {
522
- console.error(chalk.red('Content is required (--content)'));
523
- process.exit(1);
524
- }
525
- let content;
526
- try {
527
- content = JSON.parse(options.content);
528
- }
529
- catch (e) {
530
- const error = e;
531
- console.error(chalk.red('Content must be valid JSON for update operation'));
532
- console.error(chalk.gray(`Parse error: ${error.message}`));
533
- process.exit(1);
534
- }
535
- const params = {
536
- operation: 'update',
537
- session_id: sessionId,
538
- content_type: options.type || 'session',
539
- content
540
- };
541
- // Add path_params if task update
542
- if (options.taskId)
543
- params.path_params = { task_id: options.taskId };
544
- const result = await executeTool('session_manager', params);
545
- if (!result.success) {
546
- console.error(chalk.red(`Error: ${result.error}`));
547
- process.exit(1);
548
- }
549
- // Emit granular event based on content_type
550
- const eventType = params.content_type === 'task' ? 'TASK_UPDATED' : 'SESSION_UPDATED';
551
- notifyDashboard({
552
- type: eventType,
553
- sessionId: sessionId,
554
- entityId: options.taskId || null,
555
- payload: result.result.merged_data || content
556
- });
557
- console.log(chalk.green(`✓ Session "${sessionId}" updated`));
558
- }
559
- /**
560
- * Archive a session
561
- * @param {string} sessionId - Session ID
562
- * @param {Object} options - CLI options
563
- */
564
- async function archiveAction(sessionId, options) {
565
- if (!sessionId) {
566
- console.error(chalk.red('Session ID is required'));
567
- console.error(chalk.gray('Usage: ccw session archive <session_id>'));
568
- process.exit(1);
569
- }
570
- const params = {
571
- operation: 'archive',
572
- session_id: sessionId,
573
- update_status: options.updateStatus !== false
574
- };
575
- const result = await executeTool('session_manager', params);
576
- if (!result.success) {
577
- console.error(chalk.red(`Error: ${result.error}`));
578
- process.exit(1);
579
- }
580
- // Emit SESSION_ARCHIVED event
581
- notifyDashboard({
582
- type: 'SESSION_ARCHIVED',
583
- sessionId: sessionId,
584
- payload: result.result
585
- });
586
- console.log(chalk.green(`✓ Session "${sessionId}" archived`));
587
- console.log(chalk.gray(` Location: ${result.result.destination}`));
588
- }
589
- /**
590
- * Update session status (shortcut)
591
- * @param {string} sessionId - Session ID
592
- * @param {string} newStatus - New status value
593
- */
594
- async function statusAction(sessionId, newStatus) {
595
- if (!sessionId) {
596
- console.error(chalk.red('Session ID is required'));
597
- console.error(chalk.gray('Usage: ccw session status <session_id> <status>'));
598
- process.exit(1);
599
- }
600
- if (!newStatus) {
601
- console.error(chalk.red('Status is required'));
602
- console.error(chalk.gray('Valid statuses: planning, active, implementing, reviewing, completed, paused'));
603
- process.exit(1);
604
- }
605
- const validStatuses = ['planning', 'active', 'implementing', 'reviewing', 'completed', 'paused'];
606
- if (!validStatuses.includes(newStatus)) {
607
- console.error(chalk.red(`Invalid status: ${newStatus}`));
608
- console.error(chalk.gray(`Valid statuses: ${validStatuses.join(', ')}`));
609
- process.exit(1);
610
- }
611
- const params = {
612
- operation: 'update',
613
- session_id: sessionId,
614
- content_type: 'session',
615
- content: { status: newStatus, updated_at: new Date().toISOString() }
616
- };
617
- const result = await executeTool('session_manager', params);
618
- if (!result.success) {
619
- console.error(chalk.red(`Error: ${result.error}`));
620
- process.exit(1);
621
- }
622
- // Emit SESSION_UPDATED event
623
- notifyDashboard({
624
- type: 'SESSION_UPDATED',
625
- sessionId: sessionId,
626
- payload: { status: newStatus }
627
- });
628
- console.log(chalk.green(`✓ Session "${sessionId}" status → ${newStatus}`));
629
- }
630
- /**
631
- * Update task status (shortcut)
632
- * @param {string} sessionId - Session ID
633
- * @param {string} taskId - Task ID
634
- * @param {string} newStatus - New status value
635
- */
636
- async function taskAction(sessionId, taskId, newStatus) {
637
- if (!sessionId) {
638
- console.error(chalk.red('Session ID is required'));
639
- console.error(chalk.gray('Usage: ccw session task <session_id> <task_id> <status>'));
640
- process.exit(1);
641
- }
642
- if (!taskId) {
643
- console.error(chalk.red('Task ID is required'));
644
- console.error(chalk.gray('Usage: ccw session task <session_id> <task_id> <status>'));
645
- process.exit(1);
646
- }
647
- if (!newStatus) {
648
- console.error(chalk.red('Status is required'));
649
- console.error(chalk.gray('Valid statuses: pending, in_progress, completed, blocked, cancelled'));
650
- process.exit(1);
651
- }
652
- const validStatuses = ['pending', 'in_progress', 'completed', 'blocked', 'cancelled'];
653
- if (!validStatuses.includes(newStatus)) {
654
- console.error(chalk.red(`Invalid status: ${newStatus}`));
655
- console.error(chalk.gray(`Valid statuses: ${validStatuses.join(', ')}`));
656
- process.exit(1);
657
- }
658
- // First, read the current task to get existing status
659
- const readParams = {
660
- operation: 'read',
661
- session_id: sessionId,
662
- content_type: 'task',
663
- path_params: { task_id: taskId }
664
- };
665
- const readResult = await executeTool('session_manager', readParams);
666
- let currentTask = {};
667
- let oldStatus = 'unknown';
668
- if (readResult.success) {
669
- currentTask = readResult.result.content || {};
670
- oldStatus = currentTask.status || 'unknown';
671
- }
672
- // Build status history entry
673
- const historyEntry = {
674
- from: oldStatus,
675
- to: newStatus,
676
- changed_at: new Date().toISOString()
677
- };
678
- // Update task with new status and appended history
679
- const params = {
680
- operation: 'update',
681
- session_id: sessionId,
682
- content_type: 'task',
683
- path_params: { task_id: taskId },
684
- content: {
685
- status: newStatus,
686
- updated_at: new Date().toISOString(),
687
- status_history: [...(currentTask.status_history || []), historyEntry]
688
- }
689
- };
690
- const result = await executeTool('session_manager', params);
691
- if (!result.success) {
692
- console.error(chalk.red(`Error: ${result.error}`));
693
- process.exit(1);
694
- }
695
- // Emit TASK_UPDATED event
696
- notifyDashboard({
697
- type: 'TASK_UPDATED',
698
- sessionId: sessionId,
699
- entityId: taskId,
700
- payload: { status: newStatus }
701
- });
702
- console.log(chalk.green(`✓ Task "${taskId}" status → ${newStatus}`));
703
- }
704
- /**
705
- * Create directory within session
706
- * @param {string} sessionId - Session ID
707
- * @param {Object} options - CLI options
708
- */
709
- async function mkdirAction(sessionId, options) {
710
- if (!sessionId) {
711
- console.error(chalk.red('Session ID is required'));
712
- console.error(chalk.gray('Usage: ccw session mkdir <session_id> --subdir <subdir>'));
713
- process.exit(1);
714
- }
715
- if (!options.subdir) {
716
- console.error(chalk.red('Subdirectory is required (--subdir)'));
717
- process.exit(1);
718
- }
719
- const params = {
720
- operation: 'mkdir',
721
- session_id: sessionId,
722
- dirs: [options.subdir] // Convert single subdir to array
723
- };
724
- const result = await executeTool('session_manager', params);
725
- if (!result.success) {
726
- console.error(chalk.red(`Error: ${result.error}`));
727
- process.exit(1);
728
- }
729
- // Emit DIRECTORY_CREATED event
730
- notifyDashboard({
731
- type: 'DIRECTORY_CREATED',
732
- sessionId: sessionId,
733
- payload: { directories: result.result.directories_created }
734
- });
735
- console.log(chalk.green(`✓ Directory created: ${result.result.directories_created.join(', ')}`));
736
- }
737
- /**
738
- * Delete file within session
739
- * @param {string} sessionId - Session ID
740
- * @param {string} filePath - Relative file path
741
- */
742
- async function deleteAction(sessionId, filePath) {
743
- if (!sessionId) {
744
- console.error(chalk.red('Session ID is required'));
745
- console.error(chalk.gray('Usage: ccw session delete <session_id> <file_path>'));
746
- process.exit(1);
747
- }
748
- if (!filePath) {
749
- console.error(chalk.red('File path is required'));
750
- console.error(chalk.gray('Usage: ccw session delete <session_id> <file_path>'));
751
- process.exit(1);
752
- }
753
- const params = {
754
- operation: 'delete',
755
- session_id: sessionId,
756
- file_path: filePath
757
- };
758
- const result = await executeTool('session_manager', params);
759
- if (!result.success) {
760
- console.error(chalk.red(`Error: ${result.error}`));
761
- process.exit(1);
762
- }
763
- // Emit FILE_DELETED event
764
- notifyDashboard({
765
- type: 'FILE_DELETED',
766
- sessionId: sessionId,
767
- payload: { file_path: filePath }
768
- });
769
- console.log(chalk.green(`✓ File deleted: ${result.result.deleted}`));
770
- }
771
- /**
772
- * Get session statistics
773
- * @param {string} sessionId - Session ID
774
- */
775
- async function statsAction(sessionId, options = {}) {
776
- if (!sessionId) {
777
- console.error(chalk.red('Session ID is required'));
778
- console.error(chalk.gray('Usage: ccw session stats <session_id>'));
779
- process.exit(1);
780
- }
781
- const params = {
782
- operation: 'stats',
783
- session_id: sessionId
784
- };
785
- const result = await executeTool('session_manager', params);
786
- if (!result.success) {
787
- console.error(chalk.red(`Error: ${result.error}`));
788
- process.exit(1);
789
- }
790
- const { tasks, summaries, has_plan, location } = result.result;
791
- console.log(chalk.bold.cyan(`\nSession Statistics: ${sessionId}`));
792
- console.log(chalk.gray(`Location: ${location}\n`));
793
- console.log(chalk.bold.white('Tasks:'));
794
- console.log(chalk.gray(` Total: ${tasks.total}`));
795
- console.log(chalk.green(` Completed: ${tasks.completed}`));
796
- console.log(chalk.yellow(` In Progress: ${tasks.in_progress}`));
797
- console.log(chalk.blue(` Pending: ${tasks.pending}`));
798
- console.log(chalk.red(` Blocked: ${tasks.blocked}`));
799
- console.log(chalk.gray(` Cancelled: ${tasks.cancelled}\n`));
800
- console.log(chalk.bold.white('Documentation:'));
801
- console.log(chalk.gray(` Summaries: ${summaries}`));
802
- console.log(chalk.gray(` Plan: ${has_plan ? 'Yes' : 'No'}`));
803
- }
804
- async function execAction(jsonParams) {
805
- if (!jsonParams) {
806
- console.error(chalk.red('JSON parameters required'));
807
- console.error(chalk.gray('Usage: ccw session exec \'{"operation":"list","location":"active"}\''));
808
- process.exit(1);
809
- }
810
- let params;
811
- try {
812
- params = JSON.parse(jsonParams);
813
- }
814
- catch (e) {
815
- const error = e;
816
- console.error(chalk.red('Invalid JSON'));
817
- console.error(chalk.gray(`Parse error: ${error.message}`));
818
- process.exit(1);
819
- }
820
- const result = await executeTool('session_manager', params);
821
- // Emit notification for write operations
822
- if (result.success && params.operation) {
823
- const writeOps = ['init', 'write', 'update', 'archive', 'mkdir', 'delete'];
824
- if (writeOps.includes(params.operation)) {
825
- const eventMap = {
826
- init: 'SESSION_CREATED',
827
- write: 'CONTENT_WRITTEN',
828
- update: 'SESSION_UPDATED',
829
- archive: 'SESSION_ARCHIVED',
830
- mkdir: 'DIRECTORY_CREATED',
831
- delete: 'FILE_DELETED'
832
- };
833
- notifyDashboard({
834
- type: eventMap[params.operation] || 'SESSION_UPDATED',
835
- sessionId: params.session_id,
836
- operation: params.operation,
837
- payload: result.result
838
- });
839
- }
840
- }
841
- console.log(JSON.stringify(result, null, 2));
842
- }
843
- /**
844
- * Session command entry point
845
- * @param {string} subcommand - Subcommand
846
- * @param {string[]} args - Arguments
847
- * @param {Object} options - CLI options
848
- */
849
- export async function sessionCommand(subcommand, args, options) {
850
- let argsArray = Array.isArray(args) ? args : (args ? [args] : []);
851
- // Detect new format: ccw session WFS-xxx <operation> <args>
852
- // If subcommand looks like a session ID, rearrange parameters
853
- // Exception: 'init' should always use traditional format (ccw session init WFS-xxx)
854
- const isSessionId = subcommand && (subcommand.startsWith('WFS-') ||
855
- subcommand === 'manifest' ||
856
- subcommand === 'project' ||
857
- /^[A-Z][A-Z0-9]*-[A-Z0-9]+/.test(subcommand) // Generic session ID pattern (uppercase prefix + dash + alphanumeric)
858
- );
859
- if (isSessionId && argsArray.length > 0) {
860
- const operation = argsArray[0];
861
- // Reject new format for init operation (semantic error)
862
- if (operation === 'init') {
863
- console.error(chalk.red('Error: Invalid format for init operation'));
864
- console.error(chalk.gray('Correct: ccw session init <session-id>'));
865
- console.error(chalk.gray(`Wrong: ccw session <session-id> init`));
866
- console.error(chalk.yellow('\nReason: Session must be initialized before it can be referenced'));
867
- process.exit(1);
868
- }
869
- // New format detected: session-id comes first
870
- const sessionId = subcommand;
871
- const operationArgs = argsArray.slice(1);
872
- // Rearrange: operation becomes subcommand, session-id goes into args
873
- subcommand = operation;
874
- argsArray = [sessionId, ...operationArgs];
875
- }
876
- switch (subcommand) {
877
- case 'list':
878
- await listAction(options);
879
- break;
880
- case 'init':
881
- await initAction(argsArray[0], options);
882
- break;
883
- case 'read':
884
- // args[0] = session-id, args[1] = filename (optional for backward compat)
885
- await readAction(argsArray[0], argsArray[1], options);
886
- break;
887
- case 'write':
888
- // args[0] = session-id, args[1] = filename, args[2] = content
889
- await writeAction(argsArray[0], argsArray[1], argsArray[2], options);
890
- break;
891
- case 'update':
892
- await updateAction(argsArray[0], options);
893
- break;
894
- case 'archive':
895
- await archiveAction(argsArray[0], options);
896
- break;
897
- case 'status':
898
- await statusAction(argsArray[0], argsArray[1]);
899
- break;
900
- case 'task':
901
- await taskAction(argsArray[0], argsArray[1], argsArray[2]);
902
- break;
903
- case 'mkdir':
904
- await mkdirAction(argsArray[0], options);
905
- break;
906
- case 'delete':
907
- await deleteAction(argsArray[0], argsArray[1]);
908
- break;
909
- case 'stats':
910
- await statsAction(argsArray[0], options);
911
- break;
912
- case 'exec':
913
- await execAction(argsArray[0]);
914
- break;
915
- default:
916
- console.log(chalk.bold.cyan('\nCCW Session Management\n'));
917
- console.log('Subcommands:');
918
- console.log(chalk.gray(' list List all sessions'));
919
- console.log(chalk.gray(' <session-id> init [metadata] Initialize new session'));
920
- console.log(chalk.gray(' <session-id> read <filename|path> Read session content'));
921
- console.log(chalk.gray(' <session-id> write <filename> <content> Write session content'));
922
- console.log(chalk.gray(' <session-id> stats Get session statistics'));
923
- console.log(chalk.gray(' <session-id> archive Archive session'));
924
- console.log(chalk.gray(' <session-id> status <status> Update session status'));
925
- console.log(chalk.gray(' <session-id> task <task-id> <status> Update task status'));
926
- console.log(chalk.gray(' <session-id> delete <file-path> Delete file within session'));
927
- console.log(chalk.gray(' <session-id> update Update session (merge)'));
928
- console.log(chalk.gray(' <session-id> mkdir Create subdirectory'));
929
- console.log(chalk.gray(' exec <json> Execute raw operation'));
930
- console.log();
931
- console.log('Filename/Path Examples:');
932
- console.log(chalk.gray(' IMPL-001.json Task file (auto: .task/)'));
933
- console.log(chalk.gray(' .task/IMPL-001.json Task file (explicit path)'));
934
- console.log(chalk.gray(' IMPL_PLAN.md Implementation plan'));
935
- console.log(chalk.gray(' TODO_LIST.md TODO list'));
936
- console.log(chalk.gray(' workflow-session.json Session metadata'));
937
- console.log(chalk.gray(' .review/dimensions/security.json Review dimension'));
938
- console.log();
939
- console.log('Status Values:');
940
- console.log(chalk.gray(' Session: planning, active, implementing, reviewing, completed, paused'));
941
- console.log(chalk.gray(' Task: pending, in_progress, completed, blocked, cancelled'));
942
- console.log();
943
- console.log('Examples:');
944
- console.log(chalk.gray(' ccw session list'));
945
- console.log(chalk.gray(' ccw session WFS-001 init'));
946
- console.log(chalk.gray(' ccw session WFS-001 read IMPL_PLAN.md'));
947
- console.log(chalk.gray(' ccw session WFS-001 read IMPL-001.json'));
948
- console.log(chalk.gray(' ccw session WFS-001 write IMPL_PLAN.md "# Plan"'));
949
- console.log(chalk.gray(' ccw session WFS-001 write IMPL-001.json \'{"status":"pending"}\''));
950
- console.log(chalk.gray(' ccw session WFS-001 stats'));
951
- console.log(chalk.gray(' ccw session WFS-001 archive'));
952
- }
953
- }
954
- //# sourceMappingURL=session.js.map