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,834 +0,0 @@
1
- /**
2
- * Session Manager Tool - Workflow session lifecycle management
3
- * Operations: init, list, read, write, update, archive, mkdir, delete, stats
4
- * Content routing via content_type + path_params
5
- */
6
- import { z } from 'zod';
7
- import { readFileSync, writeFileSync, existsSync, readdirSync, mkdirSync, renameSync, rmSync, } from 'fs';
8
- import { resolve, join, dirname } from 'path';
9
- // Base paths for session storage
10
- const WORKFLOW_BASE = '.workflow';
11
- const ACTIVE_BASE = '.workflow/active';
12
- const ARCHIVE_BASE = '.workflow/archives';
13
- const LITE_PLAN_BASE = '.workflow/.lite-plan';
14
- const LITE_FIX_BASE = '.workflow/.lite-fix';
15
- // Session ID validation pattern (alphanumeric, hyphen, underscore)
16
- const SESSION_ID_PATTERN = /^[a-zA-Z0-9_-]+$/;
17
- // Zod schemas - using tuple syntax for z.enum
18
- const ContentTypeEnum = z.enum([
19
- 'session', 'plan', 'task', 'summary', 'process', 'chat', 'brainstorm',
20
- 'review-dim', 'review-iter', 'review-fix', 'todo', 'context',
21
- // Lite-specific content types
22
- 'lite-plan', 'lite-fix-plan', 'exploration', 'explorations-manifest',
23
- 'diagnosis', 'diagnoses-manifest', 'clarifications', 'execution-context', 'session-metadata'
24
- ]);
25
- const OperationEnum = z.enum(['init', 'list', 'read', 'write', 'update', 'archive', 'mkdir', 'delete', 'stats']);
26
- const LocationEnum = z.enum([
27
- 'active', 'archived', 'both',
28
- 'lite-plan', 'lite-fix', 'all'
29
- ]);
30
- const ParamsSchema = z.object({
31
- operation: OperationEnum,
32
- session_id: z.string().optional(),
33
- content_type: ContentTypeEnum.optional(),
34
- content: z.union([z.string(), z.record(z.string(), z.any())]).optional(),
35
- path_params: z.record(z.string(), z.string()).optional(),
36
- metadata: z.record(z.string(), z.any()).optional(),
37
- location: LocationEnum.optional(),
38
- include_metadata: z.boolean().optional(),
39
- dirs: z.array(z.string()).optional(),
40
- update_status: z.boolean().optional(),
41
- file_path: z.string().optional(),
42
- });
43
- // Cached workflow root (computed once per execution)
44
- let cachedWorkflowRoot = null;
45
- /**
46
- * Find project root by traversing up looking for .workflow directory
47
- * Falls back to cwd if not found
48
- */
49
- function findWorkflowRoot() {
50
- if (cachedWorkflowRoot)
51
- return cachedWorkflowRoot;
52
- let dir = process.cwd();
53
- const root = dirname(dir) === dir ? dir : null; // filesystem root
54
- while (dir && dir !== root) {
55
- if (existsSync(join(dir, WORKFLOW_BASE))) {
56
- cachedWorkflowRoot = dir;
57
- return dir;
58
- }
59
- const parent = dirname(dir);
60
- if (parent === dir)
61
- break; // reached filesystem root
62
- dir = parent;
63
- }
64
- // Fallback to cwd (for init operation)
65
- cachedWorkflowRoot = process.cwd();
66
- return cachedWorkflowRoot;
67
- }
68
- /**
69
- * Validate session ID format
70
- */
71
- function validateSessionId(sessionId) {
72
- if (!sessionId || typeof sessionId !== 'string') {
73
- throw new Error('session_id must be a non-empty string');
74
- }
75
- if (!SESSION_ID_PATTERN.test(sessionId)) {
76
- throw new Error(`Invalid session_id format: "${sessionId}". Only alphanumeric, hyphen, and underscore allowed.`);
77
- }
78
- if (sessionId.length > 100) {
79
- throw new Error('session_id must be 100 characters or less');
80
- }
81
- }
82
- /**
83
- * Validate path params to prevent path traversal
84
- */
85
- function validatePathParams(pathParams) {
86
- for (const [key, value] of Object.entries(pathParams)) {
87
- if (typeof value !== 'string')
88
- continue;
89
- if (value.includes('..') || value.includes('/') || value.includes('\\')) {
90
- throw new Error(`Invalid path_params.${key}: path traversal characters not allowed`);
91
- }
92
- }
93
- }
94
- /**
95
- * Content type to file path routing
96
- * {base} is replaced with session base path
97
- * Dynamic params: {task_id}, {filename}, {dimension}, {iteration}
98
- */
99
- const PATH_ROUTES = {
100
- // Standard WFS content types
101
- session: '{base}/workflow-session.json',
102
- plan: '{base}/IMPL_PLAN.md',
103
- task: '{base}/.task/{task_id}.json',
104
- summary: '{base}/.summaries/{task_id}-summary.md',
105
- process: '{base}/.process/{filename}',
106
- chat: '{base}/.chat/{filename}',
107
- brainstorm: '{base}/.brainstorming/{filename}',
108
- 'review-dim': '{base}/.review/dimensions/{dimension}.json',
109
- 'review-iter': '{base}/.review/iterations/{iteration}.json',
110
- 'review-fix': '{base}/.review/fixes/{filename}',
111
- todo: '{base}/TODO_LIST.md',
112
- context: '{base}/context-package.json',
113
- // Lite-specific content types
114
- 'lite-plan': '{base}/plan.json',
115
- 'lite-fix-plan': '{base}/fix-plan.json',
116
- 'exploration': '{base}/exploration-{angle}.json',
117
- 'explorations-manifest': '{base}/explorations-manifest.json',
118
- 'diagnosis': '{base}/diagnosis-{angle}.json',
119
- 'diagnoses-manifest': '{base}/diagnoses-manifest.json',
120
- 'clarifications': '{base}/clarifications.json',
121
- 'execution-context': '{base}/execution-context.json',
122
- 'session-metadata': '{base}/session-metadata.json',
123
- };
124
- /**
125
- * Resolve path with base and parameters
126
- */
127
- function resolvePath(base, contentType, pathParams = {}) {
128
- const template = PATH_ROUTES[contentType];
129
- if (!template) {
130
- throw new Error(`Unknown content_type: ${contentType}. Valid types: ${Object.keys(PATH_ROUTES).join(', ')}`);
131
- }
132
- let path = template.replace('{base}', base);
133
- // Replace dynamic parameters
134
- for (const [key, value] of Object.entries(pathParams)) {
135
- path = path.replace(`{${key}}`, value);
136
- }
137
- // Check for unreplaced placeholders
138
- const unreplaced = path.match(/\{[^}]+\}/g);
139
- if (unreplaced) {
140
- throw new Error(`Missing path_params: ${unreplaced.join(', ')} for content_type "${contentType}"`);
141
- }
142
- return resolve(findWorkflowRoot(), path);
143
- }
144
- /**
145
- * Get session base path
146
- */
147
- function getSessionBase(sessionId, location = 'active') {
148
- const locationMap = {
149
- 'active': ACTIVE_BASE,
150
- 'archived': ARCHIVE_BASE,
151
- 'lite-plan': LITE_PLAN_BASE,
152
- 'lite-fix': LITE_FIX_BASE,
153
- };
154
- const basePath = locationMap[location] || ACTIVE_BASE;
155
- return resolve(findWorkflowRoot(), basePath, sessionId);
156
- }
157
- /**
158
- * Auto-detect session location by searching all known paths
159
- * Search order: active, archives, lite-plan, lite-fix
160
- */
161
- function findSession(sessionId) {
162
- const root = findWorkflowRoot();
163
- const searchPaths = [
164
- { path: resolve(root, ACTIVE_BASE, sessionId), location: 'active' },
165
- { path: resolve(root, ARCHIVE_BASE, sessionId), location: 'archived' },
166
- { path: resolve(root, LITE_PLAN_BASE, sessionId), location: 'lite-plan' },
167
- { path: resolve(root, LITE_FIX_BASE, sessionId), location: 'lite-fix' },
168
- ];
169
- for (const { path, location } of searchPaths) {
170
- if (existsSync(path)) {
171
- return { path, location };
172
- }
173
- }
174
- return null;
175
- }
176
- /**
177
- * Ensure directory exists
178
- */
179
- function ensureDir(dirPath) {
180
- if (!existsSync(dirPath)) {
181
- mkdirSync(dirPath, { recursive: true });
182
- }
183
- }
184
- /**
185
- * Read JSON file safely
186
- */
187
- function readJsonFile(filePath) {
188
- if (!existsSync(filePath)) {
189
- throw new Error(`File not found: ${filePath}`);
190
- }
191
- try {
192
- const content = readFileSync(filePath, 'utf8');
193
- return JSON.parse(content);
194
- }
195
- catch (error) {
196
- if (error instanceof SyntaxError) {
197
- throw new Error(`Invalid JSON in ${filePath}: ${error.message}`);
198
- }
199
- throw new Error(`Failed to read ${filePath}: ${error.message}`);
200
- }
201
- }
202
- /**
203
- * Write JSON file with formatting
204
- */
205
- function writeJsonFile(filePath, data) {
206
- ensureDir(dirname(filePath));
207
- const content = JSON.stringify(data, null, 2);
208
- writeFileSync(filePath, content, 'utf8');
209
- }
210
- /**
211
- * Write text file
212
- */
213
- function writeTextFile(filePath, content) {
214
- ensureDir(dirname(filePath));
215
- writeFileSync(filePath, content, 'utf8');
216
- }
217
- // ============================================================
218
- // Helper Functions
219
- // ============================================================
220
- /**
221
- * List sessions in a specific directory
222
- * @param dirPath - Directory to scan
223
- * @param location - Location identifier for returned sessions
224
- * @param prefix - Optional prefix filter (e.g., 'WFS-'), null means no filter
225
- * @param includeMetadata - Whether to load metadata for each session
226
- */
227
- function listSessionsInDir(dirPath, location, prefix, includeMetadata) {
228
- if (!existsSync(dirPath))
229
- return [];
230
- try {
231
- const entries = readdirSync(dirPath, { withFileTypes: true });
232
- return entries
233
- .filter(e => e.isDirectory() && (prefix === null || e.name.startsWith(prefix)))
234
- .map(e => {
235
- const sessionInfo = { session_id: e.name, location };
236
- if (includeMetadata) {
237
- // Try multiple metadata file locations
238
- const metaPaths = [
239
- join(dirPath, e.name, 'workflow-session.json'),
240
- join(dirPath, e.name, 'session-metadata.json'),
241
- join(dirPath, e.name, 'explorations-manifest.json'),
242
- join(dirPath, e.name, 'diagnoses-manifest.json'),
243
- ];
244
- for (const metaPath of metaPaths) {
245
- if (existsSync(metaPath)) {
246
- try {
247
- sessionInfo.metadata = readJsonFile(metaPath);
248
- break;
249
- }
250
- catch { /* continue */ }
251
- }
252
- }
253
- }
254
- return sessionInfo;
255
- });
256
- }
257
- catch {
258
- return [];
259
- }
260
- }
261
- // ============================================================
262
- // Operation Handlers
263
- // ============================================================
264
- /**
265
- * Operation: init
266
- * Create new session with directory structure
267
- * Supports both WFS sessions and lite sessions (lite-plan, lite-fix)
268
- */
269
- function executeInit(params) {
270
- const { session_id, metadata, location } = params;
271
- if (!session_id) {
272
- throw new Error('Parameter "session_id" is required for init');
273
- }
274
- // Validate session_id format
275
- validateSessionId(session_id);
276
- // Auto-infer location from metadata.type if location not explicitly provided
277
- // Priority: explicit location > metadata.type > default 'active'
278
- const sessionLocation = (location === 'active' || location === 'archived' || location === 'lite-plan' || location === 'lite-fix')
279
- ? location
280
- : (metadata?.type === 'lite-plan' ? 'lite-plan' :
281
- metadata?.type === 'lite-fix' ? 'lite-fix' :
282
- 'active');
283
- // Check if session already exists (auto-detect all locations)
284
- const existing = findSession(session_id);
285
- if (existing) {
286
- throw new Error(`Session "${session_id}" already exists in ${existing.location}`);
287
- }
288
- const sessionPath = getSessionBase(session_id, sessionLocation);
289
- // Create session directory structure based on type
290
- ensureDir(sessionPath);
291
- let directoriesCreated = [];
292
- if (sessionLocation === 'lite-plan' || sessionLocation === 'lite-fix') {
293
- // Lite sessions: minimal structure, files created by workflow
294
- // No subdirectories needed initially
295
- directoriesCreated = [];
296
- }
297
- else {
298
- // WFS sessions: standard structure
299
- ensureDir(join(sessionPath, '.task'));
300
- ensureDir(join(sessionPath, '.summaries'));
301
- ensureDir(join(sessionPath, '.process'));
302
- directoriesCreated = ['.task', '.summaries', '.process'];
303
- }
304
- // Create session metadata file if provided
305
- let sessionMetadata = null;
306
- if (metadata) {
307
- const sessionFile = sessionLocation.startsWith('lite-')
308
- ? join(sessionPath, 'session-metadata.json') // Lite sessions
309
- : join(sessionPath, 'workflow-session.json'); // WFS sessions
310
- const sessionData = {
311
- session_id,
312
- type: metadata?.type || sessionLocation, // Preserve user-specified type if provided
313
- status: 'initialized',
314
- created_at: new Date().toISOString(),
315
- ...metadata,
316
- };
317
- writeJsonFile(sessionFile, sessionData);
318
- sessionMetadata = sessionData;
319
- }
320
- return {
321
- operation: 'init',
322
- session_id,
323
- location: sessionLocation,
324
- path: sessionPath,
325
- directories_created: directoriesCreated,
326
- metadata: sessionMetadata,
327
- message: `Session "${session_id}" initialized in ${sessionLocation}`,
328
- };
329
- }
330
- /**
331
- * Operation: list
332
- * List sessions (active, archived, lite-plan, lite-fix, or all)
333
- */
334
- function executeList(params) {
335
- const { location = 'both', include_metadata = false } = params;
336
- const result = {
337
- operation: 'list',
338
- active: [],
339
- archived: [],
340
- litePlan: [],
341
- liteFix: [],
342
- total: 0,
343
- };
344
- const root = findWorkflowRoot();
345
- // Helper to check if location should be included
346
- const shouldInclude = (loc) => location === 'all' || location === 'both' || location === loc;
347
- // List active sessions (WFS-* prefix)
348
- if (shouldInclude('active')) {
349
- result.active = listSessionsInDir(resolve(root, ACTIVE_BASE), 'active', 'WFS-', include_metadata);
350
- }
351
- // List archived sessions (WFS-* prefix)
352
- if (shouldInclude('archived')) {
353
- result.archived = listSessionsInDir(resolve(root, ARCHIVE_BASE), 'archived', 'WFS-', include_metadata);
354
- }
355
- // List lite-plan sessions (no prefix filter)
356
- if (location === 'all' || location === 'lite-plan') {
357
- result.litePlan = listSessionsInDir(resolve(root, LITE_PLAN_BASE), 'lite-plan', null, include_metadata);
358
- }
359
- // List lite-fix sessions (no prefix filter)
360
- if (location === 'all' || location === 'lite-fix') {
361
- result.liteFix = listSessionsInDir(resolve(root, LITE_FIX_BASE), 'lite-fix', null, include_metadata);
362
- }
363
- result.total = result.active.length + result.archived.length +
364
- result.litePlan.length + result.liteFix.length;
365
- return result;
366
- }
367
- /**
368
- * Operation: read
369
- * Read file content by content_type
370
- */
371
- function executeRead(params) {
372
- const { session_id, content_type, path_params = {} } = params;
373
- if (!session_id) {
374
- throw new Error('Parameter "session_id" is required for read');
375
- }
376
- if (!content_type) {
377
- throw new Error('Parameter "content_type" is required for read');
378
- }
379
- // Validate inputs
380
- validateSessionId(session_id);
381
- validatePathParams(path_params);
382
- const session = findSession(session_id);
383
- if (!session) {
384
- throw new Error(`Session "${session_id}" not found`);
385
- }
386
- const filePath = resolvePath(session.path, content_type, path_params);
387
- if (!existsSync(filePath)) {
388
- throw new Error(`File not found: ${filePath}`);
389
- }
390
- // Read content
391
- const rawContent = readFileSync(filePath, 'utf8');
392
- // Parse JSON for JSON content types
393
- const isJson = filePath.endsWith('.json');
394
- const content = isJson ? JSON.parse(rawContent) : rawContent;
395
- return {
396
- operation: 'read',
397
- session_id,
398
- content_type,
399
- path: filePath,
400
- location: session.location,
401
- content,
402
- is_json: isJson,
403
- };
404
- }
405
- /**
406
- * Operation: write
407
- * Write content to file by content_type
408
- */
409
- function executeWrite(params) {
410
- const { session_id, content_type, content, path_params = {} } = params;
411
- if (!session_id) {
412
- throw new Error('Parameter "session_id" is required for write');
413
- }
414
- if (!content_type) {
415
- throw new Error('Parameter "content_type" is required for write');
416
- }
417
- if (content === undefined) {
418
- throw new Error('Parameter "content" is required for write');
419
- }
420
- // Validate inputs
421
- validateSessionId(session_id);
422
- validatePathParams(path_params);
423
- const session = findSession(session_id);
424
- if (!session) {
425
- throw new Error(`Session "${session_id}" not found. Use init operation first.`);
426
- }
427
- const filePath = resolvePath(session.path, content_type, path_params);
428
- const isJson = filePath.endsWith('.json');
429
- // Write content
430
- if (isJson) {
431
- writeJsonFile(filePath, content);
432
- }
433
- else {
434
- writeTextFile(filePath, typeof content === 'string' ? content : JSON.stringify(content, null, 2));
435
- }
436
- // Return written content for task/summary types
437
- const returnContent = content_type === 'task' || content_type === 'summary' ? content : undefined;
438
- return {
439
- operation: 'write',
440
- session_id,
441
- content_type,
442
- written_content: returnContent,
443
- path: filePath,
444
- location: session.location,
445
- message: `File written successfully`,
446
- };
447
- }
448
- /**
449
- * Operation: update
450
- * Update existing JSON file with shallow merge
451
- */
452
- function executeUpdate(params) {
453
- const { session_id, content_type, content, path_params = {} } = params;
454
- if (!session_id) {
455
- throw new Error('Parameter "session_id" is required for update');
456
- }
457
- if (!content_type) {
458
- throw new Error('Parameter "content_type" is required for update');
459
- }
460
- if (!content || typeof content !== 'object') {
461
- throw new Error('Parameter "content" must be an object for update');
462
- }
463
- const session = findSession(session_id);
464
- if (!session) {
465
- throw new Error(`Session "${session_id}" not found`);
466
- }
467
- const filePath = resolvePath(session.path, content_type, path_params);
468
- if (!filePath.endsWith('.json')) {
469
- throw new Error('Update operation only supports JSON files');
470
- }
471
- // Read existing content or start with empty object
472
- let existing = {};
473
- if (existsSync(filePath)) {
474
- existing = readJsonFile(filePath);
475
- }
476
- // Shallow merge
477
- const merged = { ...existing, ...content };
478
- writeJsonFile(filePath, merged);
479
- return {
480
- operation: 'update',
481
- session_id,
482
- content_type,
483
- path: filePath,
484
- location: session.location,
485
- fields_updated: Object.keys(content),
486
- merged_data: merged,
487
- message: `File updated successfully`,
488
- };
489
- }
490
- /**
491
- * Operation: archive
492
- * Move session from active to archives
493
- */
494
- function executeArchive(params) {
495
- const { session_id, update_status = true } = params;
496
- if (!session_id) {
497
- throw new Error('Parameter "session_id" is required for archive');
498
- }
499
- // Find session in any location
500
- const session = findSession(session_id);
501
- if (!session) {
502
- throw new Error(`Session "${session_id}" not found`);
503
- }
504
- // Lite sessions do not support archiving
505
- if (session.location === 'lite-plan' || session.location === 'lite-fix') {
506
- throw new Error(`Lite sessions (${session.location}) do not support archiving. Use delete operation instead.`);
507
- }
508
- // Determine archive destination based on source location
509
- let archivePath;
510
- if (session.location === 'active') {
511
- archivePath = getSessionBase(session_id, 'archived');
512
- }
513
- else {
514
- // Already archived
515
- return {
516
- operation: 'archive',
517
- session_id,
518
- status: 'already_archived',
519
- path: session.path,
520
- location: session.location,
521
- message: `Session "${session_id}" is already archived`,
522
- };
523
- }
524
- // Update status before archiving
525
- if (update_status) {
526
- const metadataFiles = [
527
- join(session.path, 'workflow-session.json'),
528
- join(session.path, 'session-metadata.json'),
529
- join(session.path, 'explorations-manifest.json'),
530
- ];
531
- for (const metaFile of metadataFiles) {
532
- if (existsSync(metaFile)) {
533
- try {
534
- const data = readJsonFile(metaFile);
535
- data.status = 'completed';
536
- data.archived_at = new Date().toISOString();
537
- writeJsonFile(metaFile, data);
538
- break;
539
- }
540
- catch { /* continue */ }
541
- }
542
- }
543
- }
544
- // Ensure archive directory exists
545
- ensureDir(dirname(archivePath));
546
- // Move session directory
547
- renameSync(session.path, archivePath);
548
- // Read session metadata after archiving
549
- let sessionMetadata = null;
550
- const metadataFiles = [
551
- join(archivePath, 'workflow-session.json'),
552
- join(archivePath, 'session-metadata.json'),
553
- join(archivePath, 'explorations-manifest.json'),
554
- ];
555
- for (const metaFile of metadataFiles) {
556
- if (existsSync(metaFile)) {
557
- try {
558
- sessionMetadata = readJsonFile(metaFile);
559
- break;
560
- }
561
- catch { /* continue */ }
562
- }
563
- }
564
- return {
565
- operation: 'archive',
566
- session_id,
567
- status: 'archived',
568
- source: session.path,
569
- source_location: session.location,
570
- destination: archivePath,
571
- metadata: sessionMetadata,
572
- message: `Session "${session_id}" archived from ${session.location}`,
573
- };
574
- }
575
- /**
576
- * Operation: mkdir
577
- * Create directory structure within session
578
- */
579
- function executeMkdir(params) {
580
- const { session_id, dirs } = params;
581
- if (!session_id) {
582
- throw new Error('Parameter "session_id" is required for mkdir');
583
- }
584
- if (!dirs || !Array.isArray(dirs) || dirs.length === 0) {
585
- throw new Error('Parameter "dirs" must be a non-empty array');
586
- }
587
- const session = findSession(session_id);
588
- if (!session) {
589
- throw new Error(`Session "${session_id}" not found`);
590
- }
591
- const created = [];
592
- for (const dir of dirs) {
593
- const dirPath = join(session.path, dir);
594
- ensureDir(dirPath);
595
- created.push(dir);
596
- }
597
- return {
598
- operation: 'mkdir',
599
- session_id,
600
- location: session.location,
601
- directories_created: created,
602
- message: `Created ${created.length} directories`,
603
- };
604
- }
605
- /**
606
- * Operation: delete
607
- * Delete a file within session (security: path traversal prevention)
608
- */
609
- function executeDelete(params) {
610
- const { session_id, file_path } = params;
611
- if (!session_id) {
612
- throw new Error('Parameter "session_id" is required for delete');
613
- }
614
- if (!file_path) {
615
- throw new Error('Parameter "file_path" is required for delete');
616
- }
617
- // Validate session exists
618
- const session = findSession(session_id);
619
- if (!session) {
620
- throw new Error(`Session "${session_id}" not found`);
621
- }
622
- // Security: Prevent path traversal
623
- if (file_path.includes('..') || file_path.includes('\\')) {
624
- throw new Error('Invalid file_path: path traversal characters not allowed');
625
- }
626
- // Construct absolute path
627
- const absolutePath = resolve(session.path, file_path);
628
- // Security: Verify path is within session directory
629
- if (!absolutePath.startsWith(session.path)) {
630
- throw new Error('Security error: file_path must be within session directory');
631
- }
632
- // Check file exists
633
- if (!existsSync(absolutePath)) {
634
- throw new Error(`File not found: ${file_path}`);
635
- }
636
- // Delete the file
637
- rmSync(absolutePath, { force: true });
638
- return {
639
- operation: 'delete',
640
- session_id,
641
- deleted: file_path,
642
- absolute_path: absolutePath,
643
- message: `File deleted successfully`,
644
- };
645
- }
646
- /**
647
- * Operation: stats
648
- * Get session statistics (tasks, summaries, plan)
649
- */
650
- function executeStats(params) {
651
- const { session_id } = params;
652
- if (!session_id) {
653
- throw new Error('Parameter "session_id" is required for stats');
654
- }
655
- // Validate session exists
656
- const session = findSession(session_id);
657
- if (!session) {
658
- throw new Error(`Session "${session_id}" not found`);
659
- }
660
- const taskDir = join(session.path, '.task');
661
- const summariesDir = join(session.path, '.summaries');
662
- const planFile = join(session.path, 'IMPL_PLAN.md');
663
- // Count tasks by status
664
- const taskStats = {
665
- total: 0,
666
- pending: 0,
667
- in_progress: 0,
668
- completed: 0,
669
- blocked: 0,
670
- cancelled: 0,
671
- };
672
- if (existsSync(taskDir)) {
673
- const taskFiles = readdirSync(taskDir).filter((f) => f.endsWith('.json'));
674
- taskStats.total = taskFiles.length;
675
- for (const taskFile of taskFiles) {
676
- try {
677
- const taskPath = join(taskDir, taskFile);
678
- const taskData = readJsonFile(taskPath);
679
- const status = taskData.status || 'unknown';
680
- if (status in taskStats) {
681
- taskStats[status]++;
682
- }
683
- }
684
- catch {
685
- // Skip invalid task files
686
- }
687
- }
688
- }
689
- // Count summaries
690
- let summariesCount = 0;
691
- if (existsSync(summariesDir)) {
692
- summariesCount = readdirSync(summariesDir).filter((f) => f.endsWith('.md')).length;
693
- }
694
- // Check for plan
695
- const hasPlan = existsSync(planFile);
696
- return {
697
- operation: 'stats',
698
- session_id,
699
- location: session.location,
700
- tasks: taskStats,
701
- summaries: summariesCount,
702
- has_plan: hasPlan,
703
- message: `Session statistics retrieved`,
704
- };
705
- }
706
- // ============================================================
707
- // Main Execute Function
708
- // ============================================================
709
- /**
710
- * Route to appropriate operation handler
711
- */
712
- async function execute(params) {
713
- const { operation } = params;
714
- if (!operation) {
715
- throw new Error('Parameter "operation" is required. Valid operations: init, list, read, write, update, archive, mkdir, delete, stats');
716
- }
717
- switch (operation) {
718
- case 'init':
719
- return executeInit(params);
720
- case 'list':
721
- return executeList(params);
722
- case 'read':
723
- return executeRead(params);
724
- case 'write':
725
- return executeWrite(params);
726
- case 'update':
727
- return executeUpdate(params);
728
- case 'archive':
729
- return executeArchive(params);
730
- case 'mkdir':
731
- return executeMkdir(params);
732
- case 'delete':
733
- return executeDelete(params);
734
- case 'stats':
735
- return executeStats(params);
736
- default:
737
- throw new Error(`Unknown operation: ${operation}. Valid operations: init, list, read, write, update, archive, mkdir, delete, stats`);
738
- }
739
- }
740
- // ============================================================
741
- // Tool Definition
742
- // ============================================================
743
- export const schema = {
744
- name: 'session_manager',
745
- description: `Workflow session management.
746
-
747
- Usage:
748
- session_manager(operation="init", type="workflow", description="...")
749
- session_manager(operation="list", location="active|archived|both")
750
- session_manager(operation="read", sessionId="WFS-xxx", contentType="plan|task|summary")
751
- session_manager(operation="write", sessionId="WFS-xxx", contentType="plan", content={...})
752
- session_manager(operation="archive", sessionId="WFS-xxx")
753
- session_manager(operation="stats", sessionId="WFS-xxx")`,
754
- inputSchema: {
755
- type: 'object',
756
- properties: {
757
- operation: {
758
- type: 'string',
759
- enum: ['init', 'list', 'read', 'write', 'update', 'archive', 'mkdir', 'delete', 'stats'],
760
- description: 'Operation to perform',
761
- },
762
- session_id: {
763
- type: 'string',
764
- description: 'Session identifier (e.g., WFS-my-session). Required for all operations except list.',
765
- },
766
- content_type: {
767
- type: 'string',
768
- enum: [
769
- 'session',
770
- 'plan',
771
- 'task',
772
- 'summary',
773
- 'process',
774
- 'chat',
775
- 'brainstorm',
776
- 'review-dim',
777
- 'review-iter',
778
- 'review-fix',
779
- 'todo',
780
- 'context',
781
- ],
782
- description: 'Content type for read/write/update operations',
783
- },
784
- content: {
785
- type: 'object',
786
- description: 'Content for write/update operations (object for JSON, string for text)',
787
- },
788
- path_params: {
789
- type: 'object',
790
- description: 'Dynamic path parameters: task_id, filename, dimension, iteration',
791
- },
792
- metadata: {
793
- type: 'object',
794
- description: 'Session metadata for init operation (project, type, description, etc.)',
795
- },
796
- location: {
797
- type: 'string',
798
- enum: ['active', 'archived', 'both'],
799
- description: 'Session location filter for list operation (default: both)',
800
- },
801
- include_metadata: {
802
- type: 'boolean',
803
- description: 'Include session metadata in list results (default: false)',
804
- },
805
- dirs: {
806
- type: 'array',
807
- description: 'Directory paths to create for mkdir operation',
808
- },
809
- update_status: {
810
- type: 'boolean',
811
- description: 'Update session status to completed when archiving (default: true)',
812
- },
813
- file_path: {
814
- type: 'string',
815
- description: 'Relative file path within session for delete operation',
816
- },
817
- },
818
- required: ['operation'],
819
- },
820
- };
821
- export async function handler(params) {
822
- const parsed = ParamsSchema.safeParse(params);
823
- if (!parsed.success) {
824
- return { success: false, error: `Invalid params: ${parsed.error.message}` };
825
- }
826
- try {
827
- const result = await execute(parsed.data);
828
- return { success: true, result };
829
- }
830
- catch (error) {
831
- return { success: false, error: error.message };
832
- }
833
- }
834
- //# sourceMappingURL=session-manager.js.map