claude-code-workflow 6.2.1 → 6.2.3

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/{bin → ccw/bin}/ccw-mcp.js +0 -0
  397. /package/{bin → ccw/bin}/ccw.js +0 -0
  398. /package/{dist → ccw/dist}/cli.d.ts +0 -0
  399. /package/{dist → ccw/dist}/cli.d.ts.map +0 -0
  400. /package/{dist → ccw/dist}/cli.js +0 -0
  401. /package/{dist → ccw/dist}/cli.js.map +0 -0
  402. /package/{dist → ccw/dist}/commands/cli.d.ts +0 -0
  403. /package/{dist → ccw/dist}/commands/cli.d.ts.map +0 -0
  404. /package/{dist → ccw/dist}/commands/cli.js +0 -0
  405. /package/{dist → ccw/dist}/commands/cli.js.map +0 -0
  406. /package/{dist → ccw/dist}/commands/core-memory.d.ts +0 -0
  407. /package/{dist → ccw/dist}/commands/core-memory.d.ts.map +0 -0
  408. /package/{dist → ccw/dist}/commands/core-memory.js +0 -0
  409. /package/{dist → ccw/dist}/commands/core-memory.js.map +0 -0
  410. /package/{dist → ccw/dist}/commands/hook.d.ts +0 -0
  411. /package/{dist → ccw/dist}/commands/hook.d.ts.map +0 -0
  412. /package/{dist → ccw/dist}/commands/hook.js +0 -0
  413. /package/{dist → ccw/dist}/commands/hook.js.map +0 -0
  414. /package/{dist → ccw/dist}/commands/install.d.ts +0 -0
  415. /package/{dist → ccw/dist}/commands/install.d.ts.map +0 -0
  416. /package/{dist → ccw/dist}/commands/install.js +0 -0
  417. /package/{dist → ccw/dist}/commands/install.js.map +0 -0
  418. /package/{dist → ccw/dist}/commands/list.d.ts +0 -0
  419. /package/{dist → ccw/dist}/commands/list.d.ts.map +0 -0
  420. /package/{dist → ccw/dist}/commands/list.js +0 -0
  421. /package/{dist → ccw/dist}/commands/list.js.map +0 -0
  422. /package/{dist → ccw/dist}/commands/memory.d.ts +0 -0
  423. /package/{dist → ccw/dist}/commands/memory.d.ts.map +0 -0
  424. /package/{dist → ccw/dist}/commands/memory.js +0 -0
  425. /package/{dist → ccw/dist}/commands/memory.js.map +0 -0
  426. /package/{dist → ccw/dist}/commands/serve.d.ts +0 -0
  427. /package/{dist → ccw/dist}/commands/serve.d.ts.map +0 -0
  428. /package/{dist → ccw/dist}/commands/serve.js +0 -0
  429. /package/{dist → ccw/dist}/commands/serve.js.map +0 -0
  430. /package/{dist → ccw/dist}/commands/session-path-resolver.d.ts +0 -0
  431. /package/{dist → ccw/dist}/commands/session-path-resolver.d.ts.map +0 -0
  432. /package/{dist → ccw/dist}/commands/session-path-resolver.js +0 -0
  433. /package/{dist → ccw/dist}/commands/session-path-resolver.js.map +0 -0
  434. /package/{dist → ccw/dist}/commands/session.d.ts +0 -0
  435. /package/{dist → ccw/dist}/commands/session.d.ts.map +0 -0
  436. /package/{dist → ccw/dist}/commands/session.js +0 -0
  437. /package/{dist → ccw/dist}/commands/session.js.map +0 -0
  438. /package/{dist → ccw/dist}/commands/stop.d.ts +0 -0
  439. /package/{dist → ccw/dist}/commands/stop.d.ts.map +0 -0
  440. /package/{dist → ccw/dist}/commands/stop.js +0 -0
  441. /package/{dist → ccw/dist}/commands/stop.js.map +0 -0
  442. /package/{dist → ccw/dist}/commands/tool.d.ts +0 -0
  443. /package/{dist → ccw/dist}/commands/tool.d.ts.map +0 -0
  444. /package/{dist → ccw/dist}/commands/tool.js +0 -0
  445. /package/{dist → ccw/dist}/commands/tool.js.map +0 -0
  446. /package/{dist → ccw/dist}/commands/uninstall.d.ts +0 -0
  447. /package/{dist → ccw/dist}/commands/uninstall.d.ts.map +0 -0
  448. /package/{dist → ccw/dist}/commands/uninstall.js +0 -0
  449. /package/{dist → ccw/dist}/commands/uninstall.js.map +0 -0
  450. /package/{dist → ccw/dist}/commands/upgrade.d.ts +0 -0
  451. /package/{dist → ccw/dist}/commands/upgrade.d.ts.map +0 -0
  452. /package/{dist → ccw/dist}/commands/upgrade.js +0 -0
  453. /package/{dist → ccw/dist}/commands/upgrade.js.map +0 -0
  454. /package/{dist → ccw/dist}/commands/view.d.ts +0 -0
  455. /package/{dist → ccw/dist}/commands/view.d.ts.map +0 -0
  456. /package/{dist → ccw/dist}/commands/view.js +0 -0
  457. /package/{dist → ccw/dist}/commands/view.js.map +0 -0
  458. /package/{dist → ccw/dist}/config/storage-paths.d.ts +0 -0
  459. /package/{dist → ccw/dist}/config/storage-paths.d.ts.map +0 -0
  460. /package/{dist → ccw/dist}/config/storage-paths.js +0 -0
  461. /package/{dist → ccw/dist}/config/storage-paths.js.map +0 -0
  462. /package/{dist → ccw/dist}/core/cache-manager.d.ts +0 -0
  463. /package/{dist → ccw/dist}/core/cache-manager.d.ts.map +0 -0
  464. /package/{dist → ccw/dist}/core/cache-manager.js +0 -0
  465. /package/{dist → ccw/dist}/core/cache-manager.js.map +0 -0
  466. /package/{dist → ccw/dist}/core/claude-freshness.d.ts +0 -0
  467. /package/{dist → ccw/dist}/core/claude-freshness.d.ts.map +0 -0
  468. /package/{dist → ccw/dist}/core/claude-freshness.js +0 -0
  469. /package/{dist → ccw/dist}/core/claude-freshness.js.map +0 -0
  470. /package/{dist → ccw/dist}/core/core-memory-store.d.ts +0 -0
  471. /package/{dist → ccw/dist}/core/core-memory-store.d.ts.map +0 -0
  472. /package/{dist → ccw/dist}/core/core-memory-store.js +0 -0
  473. /package/{dist → ccw/dist}/core/core-memory-store.js.map +0 -0
  474. /package/{dist → ccw/dist}/core/dashboard-generator-patch.d.ts +0 -0
  475. /package/{dist → ccw/dist}/core/dashboard-generator-patch.d.ts.map +0 -0
  476. /package/{dist → ccw/dist}/core/dashboard-generator-patch.js +0 -0
  477. /package/{dist → ccw/dist}/core/dashboard-generator-patch.js.map +0 -0
  478. /package/{dist → ccw/dist}/core/dashboard-generator.d.ts +0 -0
  479. /package/{dist → ccw/dist}/core/dashboard-generator.d.ts.map +0 -0
  480. /package/{dist → ccw/dist}/core/dashboard-generator.js +0 -0
  481. /package/{dist → ccw/dist}/core/dashboard-generator.js.map +0 -0
  482. /package/{dist → ccw/dist}/core/data-aggregator.d.ts +0 -0
  483. /package/{dist → ccw/dist}/core/data-aggregator.d.ts.map +0 -0
  484. /package/{dist → ccw/dist}/core/data-aggregator.js +0 -0
  485. /package/{dist → ccw/dist}/core/data-aggregator.js.map +0 -0
  486. /package/{dist → ccw/dist}/core/history-importer.d.ts +0 -0
  487. /package/{dist → ccw/dist}/core/history-importer.d.ts.map +0 -0
  488. /package/{dist → ccw/dist}/core/history-importer.js +0 -0
  489. /package/{dist → ccw/dist}/core/history-importer.js.map +0 -0
  490. /package/{dist → ccw/dist}/core/lite-scanner-complete.d.ts +0 -0
  491. /package/{dist → ccw/dist}/core/lite-scanner-complete.d.ts.map +0 -0
  492. /package/{dist → ccw/dist}/core/lite-scanner-complete.js +0 -0
  493. /package/{dist → ccw/dist}/core/lite-scanner-complete.js.map +0 -0
  494. /package/{dist → ccw/dist}/core/lite-scanner.d.ts +0 -0
  495. /package/{dist → ccw/dist}/core/lite-scanner.d.ts.map +0 -0
  496. /package/{dist → ccw/dist}/core/lite-scanner.js +0 -0
  497. /package/{dist → ccw/dist}/core/lite-scanner.js.map +0 -0
  498. /package/{dist → ccw/dist}/core/manifest.d.ts +0 -0
  499. /package/{dist → ccw/dist}/core/manifest.d.ts.map +0 -0
  500. /package/{dist → ccw/dist}/core/manifest.js +0 -0
  501. /package/{dist → ccw/dist}/core/manifest.js.map +0 -0
  502. /package/{dist → ccw/dist}/core/memory-embedder-bridge.d.ts +0 -0
  503. /package/{dist → ccw/dist}/core/memory-embedder-bridge.d.ts.map +0 -0
  504. /package/{dist → ccw/dist}/core/memory-embedder-bridge.js +0 -0
  505. /package/{dist → ccw/dist}/core/memory-embedder-bridge.js.map +0 -0
  506. /package/{dist → ccw/dist}/core/memory-store.d.ts +0 -0
  507. /package/{dist → ccw/dist}/core/memory-store.d.ts.map +0 -0
  508. /package/{dist → ccw/dist}/core/memory-store.js +0 -0
  509. /package/{dist → ccw/dist}/core/memory-store.js.map +0 -0
  510. /package/{dist → ccw/dist}/core/routes/ccw-routes.d.ts +0 -0
  511. /package/{dist → ccw/dist}/core/routes/ccw-routes.d.ts.map +0 -0
  512. /package/{dist → ccw/dist}/core/routes/ccw-routes.js +0 -0
  513. /package/{dist → ccw/dist}/core/routes/ccw-routes.js.map +0 -0
  514. /package/{dist → ccw/dist}/core/routes/claude-routes.d.ts +0 -0
  515. /package/{dist → ccw/dist}/core/routes/claude-routes.d.ts.map +0 -0
  516. /package/{dist → ccw/dist}/core/routes/claude-routes.js +0 -0
  517. /package/{dist → ccw/dist}/core/routes/claude-routes.js.map +0 -0
  518. /package/{dist → ccw/dist}/core/routes/cli-routes.d.ts +0 -0
  519. /package/{dist → ccw/dist}/core/routes/cli-routes.d.ts.map +0 -0
  520. /package/{dist → ccw/dist}/core/routes/cli-routes.js +0 -0
  521. /package/{dist → ccw/dist}/core/routes/cli-routes.js.map +0 -0
  522. /package/{dist → ccw/dist}/core/routes/codexlens-routes.d.ts +0 -0
  523. /package/{dist → ccw/dist}/core/routes/codexlens-routes.d.ts.map +0 -0
  524. /package/{dist → ccw/dist}/core/routes/codexlens-routes.js +0 -0
  525. /package/{dist → ccw/dist}/core/routes/codexlens-routes.js.map +0 -0
  526. /package/{dist → ccw/dist}/core/routes/core-memory-routes.d.ts +0 -0
  527. /package/{dist → ccw/dist}/core/routes/core-memory-routes.d.ts.map +0 -0
  528. /package/{dist → ccw/dist}/core/routes/core-memory-routes.js +0 -0
  529. /package/{dist → ccw/dist}/core/routes/core-memory-routes.js.map +0 -0
  530. /package/{dist → ccw/dist}/core/routes/files-routes.d.ts +0 -0
  531. /package/{dist → ccw/dist}/core/routes/files-routes.d.ts.map +0 -0
  532. /package/{dist → ccw/dist}/core/routes/files-routes.js +0 -0
  533. /package/{dist → ccw/dist}/core/routes/files-routes.js.map +0 -0
  534. /package/{dist → ccw/dist}/core/routes/graph-routes.d.ts +0 -0
  535. /package/{dist → ccw/dist}/core/routes/graph-routes.d.ts.map +0 -0
  536. /package/{dist → ccw/dist}/core/routes/graph-routes.js +0 -0
  537. /package/{dist → ccw/dist}/core/routes/graph-routes.js.map +0 -0
  538. /package/{dist → ccw/dist}/core/routes/help-routes.d.ts +0 -0
  539. /package/{dist → ccw/dist}/core/routes/help-routes.d.ts.map +0 -0
  540. /package/{dist → ccw/dist}/core/routes/help-routes.js +0 -0
  541. /package/{dist → ccw/dist}/core/routes/help-routes.js.map +0 -0
  542. /package/{dist → ccw/dist}/core/routes/hooks-routes.d.ts +0 -0
  543. /package/{dist → ccw/dist}/core/routes/hooks-routes.d.ts.map +0 -0
  544. /package/{dist → ccw/dist}/core/routes/hooks-routes.js +0 -0
  545. /package/{dist → ccw/dist}/core/routes/hooks-routes.js.map +0 -0
  546. /package/{dist → ccw/dist}/core/routes/mcp-routes.d.ts +0 -0
  547. /package/{dist → ccw/dist}/core/routes/mcp-routes.d.ts.map +0 -0
  548. /package/{dist → ccw/dist}/core/routes/mcp-routes.js +0 -0
  549. /package/{dist → ccw/dist}/core/routes/mcp-routes.js.map +0 -0
  550. /package/{dist → ccw/dist}/core/routes/mcp-templates-db.d.ts +0 -0
  551. /package/{dist → ccw/dist}/core/routes/mcp-templates-db.d.ts.map +0 -0
  552. /package/{dist → ccw/dist}/core/routes/mcp-templates-db.js +0 -0
  553. /package/{dist → ccw/dist}/core/routes/mcp-templates-db.js.map +0 -0
  554. /package/{dist → ccw/dist}/core/routes/memory-routes.d.ts +0 -0
  555. /package/{dist → ccw/dist}/core/routes/memory-routes.d.ts.map +0 -0
  556. /package/{dist → ccw/dist}/core/routes/memory-routes.js +0 -0
  557. /package/{dist → ccw/dist}/core/routes/memory-routes.js.map +0 -0
  558. /package/{dist → ccw/dist}/core/routes/rules-routes.d.ts +0 -0
  559. /package/{dist → ccw/dist}/core/routes/rules-routes.d.ts.map +0 -0
  560. /package/{dist → ccw/dist}/core/routes/rules-routes.js +0 -0
  561. /package/{dist → ccw/dist}/core/routes/rules-routes.js.map +0 -0
  562. /package/{dist → ccw/dist}/core/routes/session-routes.d.ts +0 -0
  563. /package/{dist → ccw/dist}/core/routes/session-routes.d.ts.map +0 -0
  564. /package/{dist → ccw/dist}/core/routes/session-routes.js +0 -0
  565. /package/{dist → ccw/dist}/core/routes/session-routes.js.map +0 -0
  566. /package/{dist → ccw/dist}/core/routes/skills-routes.d.ts +0 -0
  567. /package/{dist → ccw/dist}/core/routes/skills-routes.d.ts.map +0 -0
  568. /package/{dist → ccw/dist}/core/routes/skills-routes.js +0 -0
  569. /package/{dist → ccw/dist}/core/routes/skills-routes.js.map +0 -0
  570. /package/{dist → ccw/dist}/core/routes/status-routes.d.ts +0 -0
  571. /package/{dist → ccw/dist}/core/routes/status-routes.d.ts.map +0 -0
  572. /package/{dist → ccw/dist}/core/routes/status-routes.js +0 -0
  573. /package/{dist → ccw/dist}/core/routes/status-routes.js.map +0 -0
  574. /package/{dist → ccw/dist}/core/routes/system-routes.d.ts +0 -0
  575. /package/{dist → ccw/dist}/core/routes/system-routes.d.ts.map +0 -0
  576. /package/{dist → ccw/dist}/core/routes/system-routes.js +0 -0
  577. /package/{dist → ccw/dist}/core/routes/system-routes.js.map +0 -0
  578. /package/{dist → ccw/dist}/core/server.d.ts +0 -0
  579. /package/{dist → ccw/dist}/core/server.d.ts.map +0 -0
  580. /package/{dist → ccw/dist}/core/server.js +0 -0
  581. /package/{dist → ccw/dist}/core/server.js.map +0 -0
  582. /package/{dist → ccw/dist}/core/session-clustering-service.d.ts +0 -0
  583. /package/{dist → ccw/dist}/core/session-clustering-service.d.ts.map +0 -0
  584. /package/{dist → ccw/dist}/core/session-clustering-service.js +0 -0
  585. /package/{dist → ccw/dist}/core/session-clustering-service.js.map +0 -0
  586. /package/{dist → ccw/dist}/core/session-scanner.d.ts +0 -0
  587. /package/{dist → ccw/dist}/core/session-scanner.d.ts.map +0 -0
  588. /package/{dist → ccw/dist}/core/session-scanner.js +0 -0
  589. /package/{dist → ccw/dist}/core/session-scanner.js.map +0 -0
  590. /package/{dist → ccw/dist}/core/websocket.d.ts +0 -0
  591. /package/{dist → ccw/dist}/core/websocket.d.ts.map +0 -0
  592. /package/{dist → ccw/dist}/core/websocket.js +0 -0
  593. /package/{dist → ccw/dist}/core/websocket.js.map +0 -0
  594. /package/{dist → ccw/dist}/index.d.ts +0 -0
  595. /package/{dist → ccw/dist}/index.d.ts.map +0 -0
  596. /package/{dist → ccw/dist}/index.js +0 -0
  597. /package/{dist → ccw/dist}/index.js.map +0 -0
  598. /package/{dist → ccw/dist}/mcp-server/index.d.ts +0 -0
  599. /package/{dist → ccw/dist}/mcp-server/index.d.ts.map +0 -0
  600. /package/{dist → ccw/dist}/mcp-server/index.js +0 -0
  601. /package/{dist → ccw/dist}/mcp-server/index.js.map +0 -0
  602. /package/{dist → ccw/dist}/tools/classify-folders.d.ts +0 -0
  603. /package/{dist → ccw/dist}/tools/classify-folders.d.ts.map +0 -0
  604. /package/{dist → ccw/dist}/tools/classify-folders.js +0 -0
  605. /package/{dist → ccw/dist}/tools/classify-folders.js.map +0 -0
  606. /package/{dist → ccw/dist}/tools/cli-config-manager.d.ts +0 -0
  607. /package/{dist → ccw/dist}/tools/cli-config-manager.d.ts.map +0 -0
  608. /package/{dist → ccw/dist}/tools/cli-config-manager.js +0 -0
  609. /package/{dist → ccw/dist}/tools/cli-config-manager.js.map +0 -0
  610. /package/{dist → ccw/dist}/tools/cli-executor.d.ts +0 -0
  611. /package/{dist → ccw/dist}/tools/cli-executor.d.ts.map +0 -0
  612. /package/{dist → ccw/dist}/tools/cli-executor.js +0 -0
  613. /package/{dist → ccw/dist}/tools/cli-executor.js.map +0 -0
  614. /package/{dist → ccw/dist}/tools/cli-history-store.d.ts +0 -0
  615. /package/{dist → ccw/dist}/tools/cli-history-store.d.ts.map +0 -0
  616. /package/{dist → ccw/dist}/tools/cli-history-store.js +0 -0
  617. /package/{dist → ccw/dist}/tools/cli-history-store.js.map +0 -0
  618. /package/{dist → ccw/dist}/tools/codex-lens.d.ts +0 -0
  619. /package/{dist → ccw/dist}/tools/codex-lens.d.ts.map +0 -0
  620. /package/{dist → ccw/dist}/tools/codex-lens.js +0 -0
  621. /package/{dist → ccw/dist}/tools/codex-lens.js.map +0 -0
  622. /package/{dist → ccw/dist}/tools/convert-tokens-to-css.d.ts +0 -0
  623. /package/{dist → ccw/dist}/tools/convert-tokens-to-css.d.ts.map +0 -0
  624. /package/{dist → ccw/dist}/tools/convert-tokens-to-css.js +0 -0
  625. /package/{dist → ccw/dist}/tools/convert-tokens-to-css.js.map +0 -0
  626. /package/{dist → ccw/dist}/tools/core-memory.d.ts +0 -0
  627. /package/{dist → ccw/dist}/tools/core-memory.d.ts.map +0 -0
  628. /package/{dist → ccw/dist}/tools/core-memory.js +0 -0
  629. /package/{dist → ccw/dist}/tools/core-memory.js.map +0 -0
  630. /package/{dist → ccw/dist}/tools/detect-changed-modules.d.ts +0 -0
  631. /package/{dist → ccw/dist}/tools/detect-changed-modules.d.ts.map +0 -0
  632. /package/{dist → ccw/dist}/tools/detect-changed-modules.js +0 -0
  633. /package/{dist → ccw/dist}/tools/detect-changed-modules.js.map +0 -0
  634. /package/{dist → ccw/dist}/tools/discover-design-files.d.ts +0 -0
  635. /package/{dist → ccw/dist}/tools/discover-design-files.d.ts.map +0 -0
  636. /package/{dist → ccw/dist}/tools/discover-design-files.js +0 -0
  637. /package/{dist → ccw/dist}/tools/discover-design-files.js.map +0 -0
  638. /package/{dist → ccw/dist}/tools/edit-file.d.ts +0 -0
  639. /package/{dist → ccw/dist}/tools/edit-file.d.ts.map +0 -0
  640. /package/{dist → ccw/dist}/tools/edit-file.js +0 -0
  641. /package/{dist → ccw/dist}/tools/edit-file.js.map +0 -0
  642. /package/{dist → ccw/dist}/tools/generate-module-docs.d.ts +0 -0
  643. /package/{dist → ccw/dist}/tools/generate-module-docs.d.ts.map +0 -0
  644. /package/{dist → ccw/dist}/tools/generate-module-docs.js +0 -0
  645. /package/{dist → ccw/dist}/tools/generate-module-docs.js.map +0 -0
  646. /package/{dist → ccw/dist}/tools/get-modules-by-depth.d.ts +0 -0
  647. /package/{dist → ccw/dist}/tools/get-modules-by-depth.d.ts.map +0 -0
  648. /package/{dist → ccw/dist}/tools/get-modules-by-depth.js +0 -0
  649. /package/{dist → ccw/dist}/tools/get-modules-by-depth.js.map +0 -0
  650. /package/{dist → ccw/dist}/tools/index.d.ts +0 -0
  651. /package/{dist → ccw/dist}/tools/index.d.ts.map +0 -0
  652. /package/{dist → ccw/dist}/tools/index.js +0 -0
  653. /package/{dist → ccw/dist}/tools/index.js.map +0 -0
  654. /package/{dist → ccw/dist}/tools/native-session-discovery.d.ts +0 -0
  655. /package/{dist → ccw/dist}/tools/native-session-discovery.d.ts.map +0 -0
  656. /package/{dist → ccw/dist}/tools/native-session-discovery.js +0 -0
  657. /package/{dist → ccw/dist}/tools/native-session-discovery.js.map +0 -0
  658. /package/{dist → ccw/dist}/tools/notifier.d.ts +0 -0
  659. /package/{dist → ccw/dist}/tools/notifier.d.ts.map +0 -0
  660. /package/{dist → ccw/dist}/tools/notifier.js +0 -0
  661. /package/{dist → ccw/dist}/tools/notifier.js.map +0 -0
  662. /package/{dist → ccw/dist}/tools/read-file.d.ts +0 -0
  663. /package/{dist → ccw/dist}/tools/read-file.d.ts.map +0 -0
  664. /package/{dist → ccw/dist}/tools/read-file.js +0 -0
  665. /package/{dist → ccw/dist}/tools/read-file.js.map +0 -0
  666. /package/{dist → ccw/dist}/tools/resume-strategy.d.ts +0 -0
  667. /package/{dist → ccw/dist}/tools/resume-strategy.d.ts.map +0 -0
  668. /package/{dist → ccw/dist}/tools/resume-strategy.js +0 -0
  669. /package/{dist → ccw/dist}/tools/resume-strategy.js.map +0 -0
  670. /package/{dist → ccw/dist}/tools/session-content-parser.d.ts +0 -0
  671. /package/{dist → ccw/dist}/tools/session-content-parser.d.ts.map +0 -0
  672. /package/{dist → ccw/dist}/tools/session-content-parser.js +0 -0
  673. /package/{dist → ccw/dist}/tools/session-content-parser.js.map +0 -0
  674. /package/{dist → ccw/dist}/tools/session-manager.d.ts +0 -0
  675. /package/{dist → ccw/dist}/tools/session-manager.d.ts.map +0 -0
  676. /package/{dist → ccw/dist}/tools/session-manager.js +0 -0
  677. /package/{dist → ccw/dist}/tools/session-manager.js.map +0 -0
  678. /package/{dist → ccw/dist}/tools/smart-context.d.ts +0 -0
  679. /package/{dist → ccw/dist}/tools/smart-context.d.ts.map +0 -0
  680. /package/{dist → ccw/dist}/tools/smart-context.js +0 -0
  681. /package/{dist → ccw/dist}/tools/smart-context.js.map +0 -0
  682. /package/{dist → ccw/dist}/tools/smart-search.d.ts +0 -0
  683. /package/{dist → ccw/dist}/tools/smart-search.d.ts.map +0 -0
  684. /package/{dist → ccw/dist}/tools/smart-search.js +0 -0
  685. /package/{dist → ccw/dist}/tools/smart-search.js.map +0 -0
  686. /package/{dist → ccw/dist}/tools/storage-manager.d.ts +0 -0
  687. /package/{dist → ccw/dist}/tools/storage-manager.d.ts.map +0 -0
  688. /package/{dist → ccw/dist}/tools/storage-manager.js +0 -0
  689. /package/{dist → ccw/dist}/tools/storage-manager.js.map +0 -0
  690. /package/{dist → ccw/dist}/tools/ui-generate-preview.d.ts +0 -0
  691. /package/{dist → ccw/dist}/tools/ui-generate-preview.d.ts.map +0 -0
  692. /package/{dist → ccw/dist}/tools/ui-generate-preview.js +0 -0
  693. /package/{dist → ccw/dist}/tools/ui-generate-preview.js.map +0 -0
  694. /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.d.ts +0 -0
  695. /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.d.ts.map +0 -0
  696. /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.js +0 -0
  697. /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.js.map +0 -0
  698. /package/{dist → ccw/dist}/tools/update-module-claude.d.ts +0 -0
  699. /package/{dist → ccw/dist}/tools/update-module-claude.d.ts.map +0 -0
  700. /package/{dist → ccw/dist}/tools/update-module-claude.js +0 -0
  701. /package/{dist → ccw/dist}/tools/update-module-claude.js.map +0 -0
  702. /package/{dist → ccw/dist}/tools/write-file.d.ts +0 -0
  703. /package/{dist → ccw/dist}/tools/write-file.d.ts.map +0 -0
  704. /package/{dist → ccw/dist}/tools/write-file.js +0 -0
  705. /package/{dist → ccw/dist}/tools/write-file.js.map +0 -0
  706. /package/{dist → ccw/dist}/types/config.d.ts +0 -0
  707. /package/{dist → ccw/dist}/types/config.d.ts.map +0 -0
  708. /package/{dist → ccw/dist}/types/config.js +0 -0
  709. /package/{dist → ccw/dist}/types/config.js.map +0 -0
  710. /package/{dist → ccw/dist}/types/index.d.ts +0 -0
  711. /package/{dist → ccw/dist}/types/index.d.ts.map +0 -0
  712. /package/{dist → ccw/dist}/types/index.js +0 -0
  713. /package/{dist → ccw/dist}/types/index.js.map +0 -0
  714. /package/{dist → ccw/dist}/types/session.d.ts +0 -0
  715. /package/{dist → ccw/dist}/types/session.d.ts.map +0 -0
  716. /package/{dist → ccw/dist}/types/session.js +0 -0
  717. /package/{dist → ccw/dist}/types/session.js.map +0 -0
  718. /package/{dist → ccw/dist}/types/tool.d.ts +0 -0
  719. /package/{dist → ccw/dist}/types/tool.d.ts.map +0 -0
  720. /package/{dist → ccw/dist}/types/tool.js +0 -0
  721. /package/{dist → ccw/dist}/types/tool.js.map +0 -0
  722. /package/{dist → ccw/dist}/utils/browser-launcher.d.ts +0 -0
  723. /package/{dist → ccw/dist}/utils/browser-launcher.d.ts.map +0 -0
  724. /package/{dist → ccw/dist}/utils/browser-launcher.js +0 -0
  725. /package/{dist → ccw/dist}/utils/browser-launcher.js.map +0 -0
  726. /package/{dist → ccw/dist}/utils/file-utils.d.ts +0 -0
  727. /package/{dist → ccw/dist}/utils/file-utils.d.ts.map +0 -0
  728. /package/{dist → ccw/dist}/utils/file-utils.js +0 -0
  729. /package/{dist → ccw/dist}/utils/file-utils.js.map +0 -0
  730. /package/{dist → ccw/dist}/utils/path-resolver.d.ts +0 -0
  731. /package/{dist → ccw/dist}/utils/path-resolver.d.ts.map +0 -0
  732. /package/{dist → ccw/dist}/utils/path-resolver.js +0 -0
  733. /package/{dist → ccw/dist}/utils/path-resolver.js.map +0 -0
  734. /package/{dist → ccw/dist}/utils/path-validator.d.ts +0 -0
  735. /package/{dist → ccw/dist}/utils/path-validator.d.ts.map +0 -0
  736. /package/{dist → ccw/dist}/utils/path-validator.js +0 -0
  737. /package/{dist → ccw/dist}/utils/path-validator.js.map +0 -0
  738. /package/{dist → ccw/dist}/utils/ui.d.ts +0 -0
  739. /package/{dist → ccw/dist}/utils/ui.d.ts.map +0 -0
  740. /package/{dist → ccw/dist}/utils/ui.js +0 -0
  741. /package/{dist → ccw/dist}/utils/ui.js.map +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
@@ -0,0 +1,289 @@
1
+ """Model Manager - Manage fastembed models for semantic search."""
2
+
3
+ import json
4
+ import os
5
+ import shutil
6
+ from pathlib import Path
7
+ from typing import Dict, List, Optional
8
+
9
+ try:
10
+ from fastembed import TextEmbedding
11
+ FASTEMBED_AVAILABLE = True
12
+ except ImportError:
13
+ FASTEMBED_AVAILABLE = False
14
+
15
+
16
+ # Model profiles with metadata
17
+ MODEL_PROFILES = {
18
+ "fast": {
19
+ "model_name": "BAAI/bge-small-en-v1.5",
20
+ "dimensions": 384,
21
+ "size_mb": 80,
22
+ "description": "Fast, lightweight, English-optimized",
23
+ "use_case": "Quick prototyping, resource-constrained environments",
24
+ },
25
+ "code": {
26
+ "model_name": "jinaai/jina-embeddings-v2-base-code",
27
+ "dimensions": 768,
28
+ "size_mb": 150,
29
+ "description": "Code-optimized, best for programming languages",
30
+ "use_case": "Open source projects, code semantic search",
31
+ },
32
+ "multilingual": {
33
+ "model_name": "intfloat/multilingual-e5-large",
34
+ "dimensions": 1024,
35
+ "size_mb": 1000,
36
+ "description": "Multilingual + code support",
37
+ "use_case": "Enterprise multilingual projects",
38
+ },
39
+ "balanced": {
40
+ "model_name": "mixedbread-ai/mxbai-embed-large-v1",
41
+ "dimensions": 1024,
42
+ "size_mb": 600,
43
+ "description": "High accuracy, general purpose",
44
+ "use_case": "High-quality semantic search, balanced performance",
45
+ },
46
+ }
47
+
48
+
49
+ def get_cache_dir() -> Path:
50
+ """Get fastembed cache directory.
51
+
52
+ Returns:
53
+ Path to cache directory (usually ~/.cache/fastembed or %LOCALAPPDATA%\\Temp\\fastembed_cache)
54
+ """
55
+ # Check HF_HOME environment variable first
56
+ if "HF_HOME" in os.environ:
57
+ return Path(os.environ["HF_HOME"])
58
+
59
+ # Default cache locations
60
+ if os.name == "nt": # Windows
61
+ cache_dir = Path(os.environ.get("LOCALAPPDATA", Path.home() / "AppData" / "Local")) / "Temp" / "fastembed_cache"
62
+ else: # Unix-like
63
+ cache_dir = Path.home() / ".cache" / "fastembed"
64
+
65
+ return cache_dir
66
+
67
+
68
+ def list_models() -> Dict[str, any]:
69
+ """List available model profiles and their installation status.
70
+
71
+ Returns:
72
+ Dictionary with model profiles, installed status, and cache info
73
+ """
74
+ if not FASTEMBED_AVAILABLE:
75
+ return {
76
+ "success": False,
77
+ "error": "fastembed not installed. Install with: pip install codexlens[semantic]",
78
+ }
79
+
80
+ cache_dir = get_cache_dir()
81
+ cache_exists = cache_dir.exists()
82
+
83
+ models = []
84
+ for profile, info in MODEL_PROFILES.items():
85
+ model_name = info["model_name"]
86
+
87
+ # Check if model is cached
88
+ installed = False
89
+ cache_size_mb = 0
90
+
91
+ if cache_exists:
92
+ # Check for model directory in cache
93
+ model_cache_path = cache_dir / f"models--{model_name.replace('/', '--')}"
94
+ if model_cache_path.exists():
95
+ installed = True
96
+ # Calculate cache size
97
+ total_size = sum(
98
+ f.stat().st_size
99
+ for f in model_cache_path.rglob("*")
100
+ if f.is_file()
101
+ )
102
+ cache_size_mb = round(total_size / (1024 * 1024), 1)
103
+
104
+ models.append({
105
+ "profile": profile,
106
+ "model_name": model_name,
107
+ "dimensions": info["dimensions"],
108
+ "estimated_size_mb": info["size_mb"],
109
+ "actual_size_mb": cache_size_mb if installed else None,
110
+ "description": info["description"],
111
+ "use_case": info["use_case"],
112
+ "installed": installed,
113
+ })
114
+
115
+ return {
116
+ "success": True,
117
+ "result": {
118
+ "models": models,
119
+ "cache_dir": str(cache_dir),
120
+ "cache_exists": cache_exists,
121
+ },
122
+ }
123
+
124
+
125
+ def download_model(profile: str, progress_callback: Optional[callable] = None) -> Dict[str, any]:
126
+ """Download a model by profile name.
127
+
128
+ Args:
129
+ profile: Model profile name (fast, code, multilingual, balanced)
130
+ progress_callback: Optional callback function to report progress
131
+
132
+ Returns:
133
+ Result dictionary with success status
134
+ """
135
+ if not FASTEMBED_AVAILABLE:
136
+ return {
137
+ "success": False,
138
+ "error": "fastembed not installed. Install with: pip install codexlens[semantic]",
139
+ }
140
+
141
+ if profile not in MODEL_PROFILES:
142
+ return {
143
+ "success": False,
144
+ "error": f"Unknown profile: {profile}. Available: {', '.join(MODEL_PROFILES.keys())}",
145
+ }
146
+
147
+ model_name = MODEL_PROFILES[profile]["model_name"]
148
+
149
+ try:
150
+ # Download model by instantiating TextEmbedding
151
+ # This will automatically download to cache if not present
152
+ if progress_callback:
153
+ progress_callback(f"Downloading {model_name}...")
154
+
155
+ embedder = TextEmbedding(model_name=model_name)
156
+
157
+ if progress_callback:
158
+ progress_callback(f"Model {model_name} downloaded successfully")
159
+
160
+ # Get cache info
161
+ cache_dir = get_cache_dir()
162
+ model_cache_path = cache_dir / f"models--{model_name.replace('/', '--')}"
163
+
164
+ cache_size = 0
165
+ if model_cache_path.exists():
166
+ total_size = sum(
167
+ f.stat().st_size
168
+ for f in model_cache_path.rglob("*")
169
+ if f.is_file()
170
+ )
171
+ cache_size = round(total_size / (1024 * 1024), 1)
172
+
173
+ return {
174
+ "success": True,
175
+ "result": {
176
+ "profile": profile,
177
+ "model_name": model_name,
178
+ "cache_size_mb": cache_size,
179
+ "cache_path": str(model_cache_path),
180
+ },
181
+ }
182
+
183
+ except Exception as e:
184
+ return {
185
+ "success": False,
186
+ "error": f"Failed to download model: {str(e)}",
187
+ }
188
+
189
+
190
+ def delete_model(profile: str) -> Dict[str, any]:
191
+ """Delete a downloaded model from cache.
192
+
193
+ Args:
194
+ profile: Model profile name to delete
195
+
196
+ Returns:
197
+ Result dictionary with success status
198
+ """
199
+ if profile not in MODEL_PROFILES:
200
+ return {
201
+ "success": False,
202
+ "error": f"Unknown profile: {profile}. Available: {', '.join(MODEL_PROFILES.keys())}",
203
+ }
204
+
205
+ model_name = MODEL_PROFILES[profile]["model_name"]
206
+ cache_dir = get_cache_dir()
207
+ model_cache_path = cache_dir / f"models--{model_name.replace('/', '--')}"
208
+
209
+ if not model_cache_path.exists():
210
+ return {
211
+ "success": False,
212
+ "error": f"Model {profile} ({model_name}) is not installed",
213
+ }
214
+
215
+ try:
216
+ # Calculate size before deletion
217
+ total_size = sum(
218
+ f.stat().st_size
219
+ for f in model_cache_path.rglob("*")
220
+ if f.is_file()
221
+ )
222
+ size_mb = round(total_size / (1024 * 1024), 1)
223
+
224
+ # Delete model directory
225
+ shutil.rmtree(model_cache_path)
226
+
227
+ return {
228
+ "success": True,
229
+ "result": {
230
+ "profile": profile,
231
+ "model_name": model_name,
232
+ "deleted_size_mb": size_mb,
233
+ "cache_path": str(model_cache_path),
234
+ },
235
+ }
236
+
237
+ except Exception as e:
238
+ return {
239
+ "success": False,
240
+ "error": f"Failed to delete model: {str(e)}",
241
+ }
242
+
243
+
244
+ def get_model_info(profile: str) -> Dict[str, any]:
245
+ """Get detailed information about a model profile.
246
+
247
+ Args:
248
+ profile: Model profile name
249
+
250
+ Returns:
251
+ Result dictionary with model information
252
+ """
253
+ if profile not in MODEL_PROFILES:
254
+ return {
255
+ "success": False,
256
+ "error": f"Unknown profile: {profile}. Available: {', '.join(MODEL_PROFILES.keys())}",
257
+ }
258
+
259
+ info = MODEL_PROFILES[profile]
260
+ model_name = info["model_name"]
261
+
262
+ # Check installation status
263
+ cache_dir = get_cache_dir()
264
+ model_cache_path = cache_dir / f"models--{model_name.replace('/', '--')}"
265
+ installed = model_cache_path.exists()
266
+
267
+ cache_size_mb = None
268
+ if installed:
269
+ total_size = sum(
270
+ f.stat().st_size
271
+ for f in model_cache_path.rglob("*")
272
+ if f.is_file()
273
+ )
274
+ cache_size_mb = round(total_size / (1024 * 1024), 1)
275
+
276
+ return {
277
+ "success": True,
278
+ "result": {
279
+ "profile": profile,
280
+ "model_name": model_name,
281
+ "dimensions": info["dimensions"],
282
+ "estimated_size_mb": info["size_mb"],
283
+ "actual_size_mb": cache_size_mb,
284
+ "description": info["description"],
285
+ "use_case": info["use_case"],
286
+ "installed": installed,
287
+ "cache_path": str(model_cache_path) if installed else None,
288
+ },
289
+ }
@@ -0,0 +1,124 @@
1
+ """Rich and JSON output helpers for CodexLens CLI."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ import sys
7
+ from dataclasses import asdict, is_dataclass
8
+ from pathlib import Path
9
+ from typing import Any, Iterable, Mapping, Sequence
10
+
11
+ from rich.console import Console
12
+ from rich.table import Table
13
+ from rich.text import Text
14
+
15
+ from codexlens.entities import SearchResult, Symbol
16
+
17
+ # Force UTF-8 encoding for Windows console to properly display Chinese text
18
+ # Use force_terminal=True and legacy_windows=False to avoid GBK encoding issues
19
+ console = Console(force_terminal=True, legacy_windows=False)
20
+
21
+
22
+ def _to_jsonable(value: Any) -> Any:
23
+ if value is None:
24
+ return None
25
+ if hasattr(value, "model_dump"):
26
+ return value.model_dump()
27
+ if is_dataclass(value):
28
+ return asdict(value)
29
+ if isinstance(value, Path):
30
+ return str(value)
31
+ if isinstance(value, Mapping):
32
+ return {k: _to_jsonable(v) for k, v in value.items()}
33
+ if isinstance(value, (list, tuple, set)):
34
+ return [_to_jsonable(v) for v in value]
35
+ return value
36
+
37
+
38
+ def print_json(*, success: bool, result: Any = None, error: str | None = None) -> None:
39
+ payload: dict[str, Any] = {"success": success}
40
+ if success:
41
+ payload["result"] = _to_jsonable(result)
42
+ else:
43
+ payload["error"] = error or "Unknown error"
44
+ console.print_json(json.dumps(payload, ensure_ascii=False))
45
+
46
+
47
+ def render_search_results(
48
+ results: Sequence[SearchResult], *, title: str = "Search Results", verbose: bool = False
49
+ ) -> None:
50
+ """Render search results with optional source tags in verbose mode.
51
+
52
+ Args:
53
+ results: Search results to display
54
+ title: Table title
55
+ verbose: If True, show search source tags ([E], [F], [V]) and fusion scores
56
+ """
57
+ table = Table(title=title, show_lines=False)
58
+
59
+ if verbose:
60
+ # Verbose mode: show source tags
61
+ table.add_column("Source", style="dim", width=6, justify="center")
62
+
63
+ table.add_column("Path", style="cyan", no_wrap=True)
64
+ table.add_column("Score", style="magenta", justify="right")
65
+ table.add_column("Excerpt", style="white")
66
+
67
+ for res in results:
68
+ excerpt = res.excerpt or ""
69
+ score_str = f"{res.score:.3f}"
70
+
71
+ if verbose:
72
+ # Extract search source tag if available
73
+ source = getattr(res, "search_source", None)
74
+ source_tag = ""
75
+ if source == "exact":
76
+ source_tag = "[E]"
77
+ elif source == "fuzzy":
78
+ source_tag = "[F]"
79
+ elif source == "vector":
80
+ source_tag = "[V]"
81
+ elif source == "fusion":
82
+ source_tag = "[RRF]"
83
+ table.add_row(source_tag, res.path, score_str, excerpt)
84
+ else:
85
+ table.add_row(res.path, score_str, excerpt)
86
+
87
+ console.print(table)
88
+
89
+
90
+ def render_symbols(symbols: Sequence[Symbol], *, title: str = "Symbols") -> None:
91
+ table = Table(title=title)
92
+ table.add_column("Name", style="green")
93
+ table.add_column("Kind", style="yellow")
94
+ table.add_column("Range", style="white", justify="right")
95
+
96
+ for sym in symbols:
97
+ start, end = sym.range
98
+ table.add_row(sym.name, sym.kind, f"{start}-{end}")
99
+
100
+ console.print(table)
101
+
102
+
103
+ def render_status(stats: Mapping[str, Any]) -> None:
104
+ table = Table(title="Index Status")
105
+ table.add_column("Metric", style="cyan")
106
+ table.add_column("Value", style="white")
107
+
108
+ for key, value in stats.items():
109
+ if isinstance(value, Mapping):
110
+ value_text = ", ".join(f"{k}:{v}" for k, v in value.items())
111
+ elif isinstance(value, (list, tuple)):
112
+ value_text = ", ".join(str(v) for v in value)
113
+ else:
114
+ value_text = str(value)
115
+ table.add_row(str(key), value_text)
116
+
117
+ console.print(table)
118
+
119
+
120
+ def render_file_inspect(path: str, language: str, symbols: Iterable[Symbol]) -> None:
121
+ header = Text.assemble(("File: ", "bold"), (path, "cyan"), (" Language: ", "bold"), (language, "green"))
122
+ console.print(header)
123
+ render_symbols(list(symbols), title="Discovered Symbols")
124
+
@@ -0,0 +1,201 @@
1
+ """Configuration system for CodexLens."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import os
6
+ from dataclasses import dataclass, field
7
+ from functools import cached_property
8
+ from pathlib import Path
9
+ from typing import Any, Dict, List, Optional
10
+
11
+ from .errors import ConfigError
12
+
13
+
14
+ # Workspace-local directory name
15
+ WORKSPACE_DIR_NAME = ".codexlens"
16
+
17
+
18
+ def _default_global_dir() -> Path:
19
+ """Get global CodexLens data directory."""
20
+ env_override = os.getenv("CODEXLENS_DATA_DIR")
21
+ if env_override:
22
+ return Path(env_override).expanduser().resolve()
23
+ return (Path.home() / ".codexlens").resolve()
24
+
25
+
26
+ def find_workspace_root(start_path: Path) -> Optional[Path]:
27
+ """Find the workspace root by looking for .codexlens directory.
28
+
29
+ Searches from start_path upward to find an existing .codexlens directory.
30
+ Returns None if not found.
31
+ """
32
+ current = start_path.resolve()
33
+
34
+ # Search up to filesystem root
35
+ while current != current.parent:
36
+ workspace_dir = current / WORKSPACE_DIR_NAME
37
+ if workspace_dir.is_dir():
38
+ return current
39
+ current = current.parent
40
+
41
+ # Check root as well
42
+ workspace_dir = current / WORKSPACE_DIR_NAME
43
+ if workspace_dir.is_dir():
44
+ return current
45
+
46
+ return None
47
+
48
+
49
+ @dataclass
50
+ class Config:
51
+ """Runtime configuration for CodexLens.
52
+
53
+ - data_dir: Base directory for all persistent CodexLens data.
54
+ - venv_path: Optional virtualenv used for language tooling.
55
+ - supported_languages: Language IDs and their associated file extensions.
56
+ - parsing_rules: Per-language parsing and chunking hints.
57
+ """
58
+
59
+ data_dir: Path = field(default_factory=_default_global_dir)
60
+ venv_path: Path = field(default_factory=lambda: _default_global_dir() / "venv")
61
+ supported_languages: Dict[str, Dict[str, Any]] = field(
62
+ default_factory=lambda: {
63
+ "python": {"extensions": [".py"], "tree_sitter_language": "python"},
64
+ "javascript": {"extensions": [".js", ".jsx"], "tree_sitter_language": "javascript"},
65
+ "typescript": {"extensions": [".ts", ".tsx"], "tree_sitter_language": "typescript"},
66
+ "java": {"extensions": [".java"], "tree_sitter_language": "java"},
67
+ "go": {"extensions": [".go"], "tree_sitter_language": "go"},
68
+ "zig": {"extensions": [".zig"], "tree_sitter_language": "zig"},
69
+ "objective-c": {"extensions": [".m", ".mm"], "tree_sitter_language": "objc"},
70
+ "markdown": {"extensions": [".md", ".mdx"], "tree_sitter_language": None},
71
+ "text": {"extensions": [".txt"], "tree_sitter_language": None},
72
+ }
73
+ )
74
+ parsing_rules: Dict[str, Dict[str, Any]] = field(
75
+ default_factory=lambda: {
76
+ "default": {
77
+ "max_chunk_chars": 4000,
78
+ "max_chunk_lines": 200,
79
+ "overlap_lines": 20,
80
+ }
81
+ }
82
+ )
83
+
84
+ llm_enabled: bool = False
85
+ llm_tool: str = "gemini"
86
+ llm_timeout_ms: int = 300000
87
+ llm_batch_size: int = 5
88
+
89
+ # Hybrid chunker configuration
90
+ hybrid_max_chunk_size: int = 2000 # Max characters per chunk before LLM refinement
91
+ hybrid_llm_refinement: bool = False # Enable LLM-based semantic boundary refinement
92
+ def __post_init__(self) -> None:
93
+ try:
94
+ self.data_dir = self.data_dir.expanduser().resolve()
95
+ self.venv_path = self.venv_path.expanduser().resolve()
96
+ self.data_dir.mkdir(parents=True, exist_ok=True)
97
+ except Exception as exc:
98
+ raise ConfigError(f"Failed to initialize data_dir at {self.data_dir}: {exc}") from exc
99
+
100
+ @cached_property
101
+ def cache_dir(self) -> Path:
102
+ """Directory for transient caches."""
103
+ return self.data_dir / "cache"
104
+
105
+ @cached_property
106
+ def index_dir(self) -> Path:
107
+ """Directory where index artifacts are stored."""
108
+ return self.data_dir / "index"
109
+
110
+ @cached_property
111
+ def db_path(self) -> Path:
112
+ """Default SQLite index path."""
113
+ return self.index_dir / "codexlens.db"
114
+
115
+ def ensure_runtime_dirs(self) -> None:
116
+ """Create standard runtime directories if missing."""
117
+ for directory in (self.cache_dir, self.index_dir):
118
+ try:
119
+ directory.mkdir(parents=True, exist_ok=True)
120
+ except Exception as exc:
121
+ raise ConfigError(f"Failed to create directory {directory}: {exc}") from exc
122
+
123
+ def language_for_path(self, path: str | Path) -> str | None:
124
+ """Infer a supported language ID from a file path."""
125
+ extension = Path(path).suffix.lower()
126
+ for language_id, spec in self.supported_languages.items():
127
+ extensions: List[str] = spec.get("extensions", [])
128
+ if extension in extensions:
129
+ return language_id
130
+ return None
131
+
132
+ def rules_for_language(self, language_id: str) -> Dict[str, Any]:
133
+ """Get parsing rules for a specific language, falling back to defaults."""
134
+ return {**self.parsing_rules.get("default", {}), **self.parsing_rules.get(language_id, {})}
135
+
136
+
137
+ @dataclass
138
+ class WorkspaceConfig:
139
+ """Workspace-local configuration for CodexLens.
140
+
141
+ Stores index data in project/.codexlens/ directory.
142
+ """
143
+
144
+ workspace_root: Path
145
+
146
+ def __post_init__(self) -> None:
147
+ self.workspace_root = Path(self.workspace_root).resolve()
148
+
149
+ @property
150
+ def codexlens_dir(self) -> Path:
151
+ """The .codexlens directory in workspace root."""
152
+ return self.workspace_root / WORKSPACE_DIR_NAME
153
+
154
+ @property
155
+ def db_path(self) -> Path:
156
+ """SQLite index path for this workspace."""
157
+ return self.codexlens_dir / "index.db"
158
+
159
+ @property
160
+ def cache_dir(self) -> Path:
161
+ """Cache directory for this workspace."""
162
+ return self.codexlens_dir / "cache"
163
+
164
+ def initialize(self) -> None:
165
+ """Create the .codexlens directory structure."""
166
+ try:
167
+ self.codexlens_dir.mkdir(parents=True, exist_ok=True)
168
+ self.cache_dir.mkdir(parents=True, exist_ok=True)
169
+
170
+ # Create .gitignore to exclude cache but keep index
171
+ gitignore_path = self.codexlens_dir / ".gitignore"
172
+ if not gitignore_path.exists():
173
+ gitignore_path.write_text(
174
+ "# CodexLens workspace data\n"
175
+ "cache/\n"
176
+ "*.log\n"
177
+ )
178
+ except Exception as exc:
179
+ raise ConfigError(f"Failed to initialize workspace at {self.codexlens_dir}: {exc}") from exc
180
+
181
+ def exists(self) -> bool:
182
+ """Check if workspace is already initialized."""
183
+ return self.codexlens_dir.is_dir() and self.db_path.exists()
184
+
185
+ @classmethod
186
+ def from_path(cls, path: Path) -> Optional["WorkspaceConfig"]:
187
+ """Create WorkspaceConfig from a path by finding workspace root.
188
+
189
+ Returns None if no workspace found.
190
+ """
191
+ root = find_workspace_root(path)
192
+ if root is None:
193
+ return None
194
+ return cls(workspace_root=root)
195
+
196
+ @classmethod
197
+ def create_at(cls, path: Path) -> "WorkspaceConfig":
198
+ """Create a new workspace at the given path."""
199
+ config = cls(workspace_root=path)
200
+ config.initialize()
201
+ return config