claude-code-workflow 6.2.5 → 6.2.6

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 (964) 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/dist/core/lite-scanner-complete.d.ts.map +1 -0
  303. package/ccw/dist/core/lite-scanner-complete.js +371 -0
  304. package/ccw/dist/core/lite-scanner-complete.js.map +1 -0
  305. package/ccw/dist/core/lite-scanner.d.ts.map +1 -0
  306. package/ccw/dist/core/lite-scanner.js +371 -0
  307. package/ccw/dist/core/lite-scanner.js.map +1 -0
  308. package/ccw/dist/core/routes/claude-routes.d.ts.map +1 -0
  309. package/ccw/dist/core/routes/claude-routes.js +1015 -0
  310. package/ccw/dist/core/routes/claude-routes.js.map +1 -0
  311. package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -0
  312. package/ccw/dist/core/routes/cli-routes.js +469 -0
  313. package/ccw/dist/core/routes/cli-routes.js.map +1 -0
  314. package/ccw/dist/core/routes/rules-routes.d.ts.map +1 -0
  315. package/ccw/dist/core/routes/rules-routes.js +443 -0
  316. package/ccw/dist/core/routes/rules-routes.js.map +1 -0
  317. package/ccw/dist/core/routes/skills-routes.d.ts.map +1 -0
  318. package/ccw/dist/core/routes/skills-routes.js +651 -0
  319. package/ccw/dist/core/routes/skills-routes.js.map +1 -0
  320. package/ccw/dist/tools/cli-executor.d.ts +376 -0
  321. package/ccw/dist/tools/cli-executor.d.ts.map +1 -0
  322. package/ccw/dist/tools/cli-executor.js +1677 -0
  323. package/ccw/dist/tools/cli-executor.js.map +1 -0
  324. package/ccw/package.json +65 -0
  325. package/ccw/src/core/lite-scanner-complete.ts +473 -0
  326. package/ccw/src/core/lite-scanner.ts +473 -0
  327. package/ccw/src/core/routes/claude-routes.ts +1181 -0
  328. package/ccw/src/core/routes/cli-routes.ts +562 -0
  329. package/ccw/src/core/routes/rules-routes.ts +527 -0
  330. package/ccw/src/core/routes/skills-routes.ts +737 -0
  331. package/ccw/src/templates/dashboard-js/i18n.js +2969 -0
  332. package/ccw/src/templates/dashboard-js/views/claude-manager.js +926 -0
  333. package/ccw/src/templates/dashboard-js/views/cli-manager.js +2274 -0
  334. package/ccw/src/templates/dashboard-js/views/rules-manager.js +857 -0
  335. package/ccw/src/templates/dashboard-js/views/skills-manager.js +1183 -0
  336. package/ccw/src/tools/cli-executor.ts +2082 -0
  337. package/codex-lens/pyproject.toml +66 -0
  338. package/codex-lens/src/codexlens/.workflow/.cli-history/history.db +0 -0
  339. package/codex-lens/src/codexlens/__init__.py +28 -0
  340. package/codex-lens/src/codexlens/__main__.py +14 -0
  341. package/codex-lens/src/codexlens/__pycache__/__init__.cpython-313.pyc +0 -0
  342. package/codex-lens/src/codexlens/__pycache__/__main__.cpython-313.pyc +0 -0
  343. package/codex-lens/src/codexlens/__pycache__/config.cpython-313.pyc +0 -0
  344. package/codex-lens/src/codexlens/__pycache__/entities.cpython-313.pyc +0 -0
  345. package/codex-lens/src/codexlens/__pycache__/errors.cpython-313.pyc +0 -0
  346. package/codex-lens/src/codexlens/cli/__init__.py +27 -0
  347. package/codex-lens/src/codexlens/cli/__pycache__/__init__.cpython-313.pyc +0 -0
  348. package/codex-lens/src/codexlens/cli/__pycache__/commands.cpython-313.pyc +0 -0
  349. package/codex-lens/src/codexlens/cli/__pycache__/embedding_manager.cpython-313.pyc +0 -0
  350. package/codex-lens/src/codexlens/cli/__pycache__/model_manager.cpython-313.pyc +0 -0
  351. package/codex-lens/src/codexlens/cli/__pycache__/output.cpython-313.pyc +0 -0
  352. package/codex-lens/src/codexlens/cli/commands.py +1931 -0
  353. package/codex-lens/src/codexlens/cli/embedding_manager.py +620 -0
  354. package/codex-lens/src/codexlens/cli/model_manager.py +311 -0
  355. package/codex-lens/src/codexlens/cli/output.py +124 -0
  356. package/codex-lens/src/codexlens/config.py +201 -0
  357. package/codex-lens/src/codexlens/entities.py +121 -0
  358. package/codex-lens/src/codexlens/errors.py +55 -0
  359. package/codex-lens/src/codexlens/indexing/README.md +77 -0
  360. package/codex-lens/src/codexlens/indexing/__init__.py +4 -0
  361. package/codex-lens/src/codexlens/indexing/__pycache__/__init__.cpython-313.pyc +0 -0
  362. package/codex-lens/src/codexlens/indexing/__pycache__/symbol_extractor.cpython-313.pyc +0 -0
  363. package/codex-lens/src/codexlens/indexing/symbol_extractor.py +243 -0
  364. package/codex-lens/src/codexlens/parsers/__init__.py +8 -0
  365. package/codex-lens/src/codexlens/parsers/__pycache__/__init__.cpython-313.pyc +0 -0
  366. package/codex-lens/src/codexlens/parsers/__pycache__/encoding.cpython-313.pyc +0 -0
  367. package/codex-lens/src/codexlens/parsers/__pycache__/factory.cpython-313.pyc +0 -0
  368. package/codex-lens/src/codexlens/parsers/__pycache__/tokenizer.cpython-313.pyc +0 -0
  369. package/codex-lens/src/codexlens/parsers/__pycache__/treesitter_parser.cpython-313.pyc +0 -0
  370. package/codex-lens/src/codexlens/parsers/encoding.py +202 -0
  371. package/codex-lens/src/codexlens/parsers/factory.py +256 -0
  372. package/codex-lens/src/codexlens/parsers/tokenizer.py +98 -0
  373. package/codex-lens/src/codexlens/parsers/treesitter_parser.py +335 -0
  374. package/codex-lens/src/codexlens/search/__init__.py +15 -0
  375. package/codex-lens/src/codexlens/search/__pycache__/__init__.cpython-313.pyc +0 -0
  376. package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-313.pyc +0 -0
  377. package/codex-lens/src/codexlens/search/__pycache__/enrichment.cpython-313.pyc +0 -0
  378. package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-313.pyc +0 -0
  379. package/codex-lens/src/codexlens/search/__pycache__/query_parser.cpython-313.pyc +0 -0
  380. package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-313.pyc +0 -0
  381. package/codex-lens/src/codexlens/search/chain_search.py +647 -0
  382. package/codex-lens/src/codexlens/search/enrichment.py +150 -0
  383. package/codex-lens/src/codexlens/search/hybrid_search.py +313 -0
  384. package/codex-lens/src/codexlens/search/query_parser.py +242 -0
  385. package/codex-lens/src/codexlens/search/ranking.py +274 -0
  386. package/codex-lens/src/codexlens/semantic/__init__.py +76 -0
  387. package/codex-lens/src/codexlens/semantic/__pycache__/__init__.cpython-313.pyc +0 -0
  388. package/codex-lens/src/codexlens/semantic/__pycache__/ann_index.cpython-313.pyc +0 -0
  389. package/codex-lens/src/codexlens/semantic/__pycache__/chunker.cpython-313.pyc +0 -0
  390. package/codex-lens/src/codexlens/semantic/__pycache__/code_extractor.cpython-313.pyc +0 -0
  391. package/codex-lens/src/codexlens/semantic/__pycache__/embedder.cpython-313.pyc +0 -0
  392. package/codex-lens/src/codexlens/semantic/__pycache__/gpu_support.cpython-313.pyc +0 -0
  393. package/codex-lens/src/codexlens/semantic/__pycache__/graph_analyzer.cpython-313.pyc +0 -0
  394. package/codex-lens/src/codexlens/semantic/__pycache__/llm_enhancer.cpython-313.pyc +0 -0
  395. package/codex-lens/src/codexlens/semantic/__pycache__/ollama_backend.cpython-313.pyc +0 -0
  396. package/codex-lens/src/codexlens/semantic/__pycache__/vector_store.cpython-313.pyc +0 -0
  397. package/codex-lens/src/codexlens/semantic/ann_index.py +414 -0
  398. package/codex-lens/src/codexlens/semantic/chunker.py +448 -0
  399. package/codex-lens/src/codexlens/semantic/code_extractor.py +274 -0
  400. package/codex-lens/src/codexlens/semantic/embedder.py +244 -0
  401. package/codex-lens/src/codexlens/semantic/gpu_support.py +192 -0
  402. package/codex-lens/src/codexlens/semantic/vector_store.py +955 -0
  403. package/codex-lens/src/codexlens/storage/__init__.py +29 -0
  404. package/codex-lens/src/codexlens/storage/__pycache__/__init__.cpython-313.pyc +0 -0
  405. package/codex-lens/src/codexlens/storage/__pycache__/dir_index.cpython-313.pyc +0 -0
  406. package/codex-lens/src/codexlens/storage/__pycache__/file_cache.cpython-313.pyc +0 -0
  407. package/codex-lens/src/codexlens/storage/__pycache__/index_tree.cpython-313.pyc +0 -0
  408. package/codex-lens/src/codexlens/storage/__pycache__/migration_manager.cpython-313.pyc +0 -0
  409. package/codex-lens/src/codexlens/storage/__pycache__/path_mapper.cpython-313.pyc +0 -0
  410. package/codex-lens/src/codexlens/storage/__pycache__/registry.cpython-313.pyc +0 -0
  411. package/codex-lens/src/codexlens/storage/__pycache__/sqlite_store.cpython-313.pyc +0 -0
  412. package/codex-lens/src/codexlens/storage/__pycache__/sqlite_utils.cpython-313.pyc +0 -0
  413. package/codex-lens/src/codexlens/storage/dir_index.py +1850 -0
  414. package/codex-lens/src/codexlens/storage/file_cache.py +32 -0
  415. package/codex-lens/src/codexlens/storage/index_tree.py +776 -0
  416. package/codex-lens/src/codexlens/storage/migration_manager.py +154 -0
  417. package/codex-lens/src/codexlens/storage/migrations/__init__.py +1 -0
  418. package/codex-lens/src/codexlens/storage/migrations/__pycache__/__init__.cpython-313.pyc +0 -0
  419. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_001_normalize_keywords.cpython-313.pyc +0 -0
  420. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_002_add_token_metadata.cpython-313.pyc +0 -0
  421. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_003_code_relationships.cpython-313.pyc +0 -0
  422. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_004_dual_fts.cpython-313.pyc +0 -0
  423. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_005_cleanup_unused_fields.cpython-313.pyc +0 -0
  424. package/codex-lens/src/codexlens/storage/migrations/migration_001_normalize_keywords.py +123 -0
  425. package/codex-lens/src/codexlens/storage/migrations/migration_002_add_token_metadata.py +48 -0
  426. package/codex-lens/src/codexlens/storage/migrations/migration_004_dual_fts.py +232 -0
  427. package/codex-lens/src/codexlens/storage/migrations/migration_005_cleanup_unused_fields.py +196 -0
  428. package/codex-lens/src/codexlens/storage/path_mapper.py +274 -0
  429. package/codex-lens/src/codexlens/storage/registry.py +670 -0
  430. package/codex-lens/src/codexlens/storage/sqlite_store.py +576 -0
  431. package/codex-lens/src/codexlens/storage/sqlite_utils.py +64 -0
  432. package/package.json +36 -28
  433. package/dist/core/lite-scanner-complete.d.ts.map +0 -1
  434. package/dist/core/lite-scanner-complete.js +0 -368
  435. package/dist/core/lite-scanner-complete.js.map +0 -1
  436. package/dist/core/lite-scanner.d.ts.map +0 -1
  437. package/dist/core/lite-scanner.js +0 -368
  438. package/dist/core/lite-scanner.js.map +0 -1
  439. package/dist/core/routes/claude-routes.d.ts.map +0 -1
  440. package/dist/core/routes/claude-routes.js +0 -1017
  441. package/dist/core/routes/claude-routes.js.map +0 -1
  442. package/dist/core/routes/cli-routes.d.ts.map +0 -1
  443. package/dist/core/routes/cli-routes.js +0 -468
  444. package/dist/core/routes/cli-routes.js.map +0 -1
  445. package/dist/core/routes/rules-routes.d.ts.map +0 -1
  446. package/dist/core/routes/rules-routes.js +0 -442
  447. package/dist/core/routes/rules-routes.js.map +0 -1
  448. package/dist/core/routes/skills-routes.d.ts.map +0 -1
  449. package/dist/core/routes/skills-routes.js +0 -533
  450. package/dist/core/routes/skills-routes.js.map +0 -1
  451. package/dist/tools/cli-executor.d.ts +0 -373
  452. package/dist/tools/cli-executor.d.ts.map +0 -1
  453. package/dist/tools/cli-executor.js +0 -1625
  454. package/dist/tools/cli-executor.js.map +0 -1
  455. package/src/core/lite-scanner-complete.ts +0 -469
  456. package/src/core/lite-scanner.ts +0 -469
  457. package/src/core/routes/claude-routes.ts +0 -1183
  458. package/src/core/routes/cli-routes.ts +0 -561
  459. package/src/core/routes/rules-routes.ts +0 -526
  460. package/src/core/routes/skills-routes.ts +0 -599
  461. package/src/templates/dashboard-js/i18n.js +0 -2963
  462. package/src/templates/dashboard-js/views/claude-manager.js +0 -912
  463. package/src/templates/dashboard-js/views/cli-manager.js +0 -2272
  464. package/src/templates/dashboard-js/views/rules-manager.js +0 -828
  465. package/src/templates/dashboard-js/views/skills-manager.js +0 -819
  466. package/src/tools/cli-executor.ts +0 -2014
  467. /package/{bin → ccw/bin}/ccw-mcp.js +0 -0
  468. /package/{bin → ccw/bin}/ccw.js +0 -0
  469. /package/{dist → ccw/dist}/cli.d.ts +0 -0
  470. /package/{dist → ccw/dist}/cli.d.ts.map +0 -0
  471. /package/{dist → ccw/dist}/cli.js +0 -0
  472. /package/{dist → ccw/dist}/cli.js.map +0 -0
  473. /package/{dist → ccw/dist}/commands/cli.d.ts +0 -0
  474. /package/{dist → ccw/dist}/commands/cli.d.ts.map +0 -0
  475. /package/{dist → ccw/dist}/commands/cli.js +0 -0
  476. /package/{dist → ccw/dist}/commands/cli.js.map +0 -0
  477. /package/{dist → ccw/dist}/commands/core-memory.d.ts +0 -0
  478. /package/{dist → ccw/dist}/commands/core-memory.d.ts.map +0 -0
  479. /package/{dist → ccw/dist}/commands/core-memory.js +0 -0
  480. /package/{dist → ccw/dist}/commands/core-memory.js.map +0 -0
  481. /package/{dist → ccw/dist}/commands/hook.d.ts +0 -0
  482. /package/{dist → ccw/dist}/commands/hook.d.ts.map +0 -0
  483. /package/{dist → ccw/dist}/commands/hook.js +0 -0
  484. /package/{dist → ccw/dist}/commands/hook.js.map +0 -0
  485. /package/{dist → ccw/dist}/commands/install.d.ts +0 -0
  486. /package/{dist → ccw/dist}/commands/install.d.ts.map +0 -0
  487. /package/{dist → ccw/dist}/commands/install.js +0 -0
  488. /package/{dist → ccw/dist}/commands/install.js.map +0 -0
  489. /package/{dist → ccw/dist}/commands/list.d.ts +0 -0
  490. /package/{dist → ccw/dist}/commands/list.d.ts.map +0 -0
  491. /package/{dist → ccw/dist}/commands/list.js +0 -0
  492. /package/{dist → ccw/dist}/commands/list.js.map +0 -0
  493. /package/{dist → ccw/dist}/commands/memory.d.ts +0 -0
  494. /package/{dist → ccw/dist}/commands/memory.d.ts.map +0 -0
  495. /package/{dist → ccw/dist}/commands/memory.js +0 -0
  496. /package/{dist → ccw/dist}/commands/memory.js.map +0 -0
  497. /package/{dist → ccw/dist}/commands/serve.d.ts +0 -0
  498. /package/{dist → ccw/dist}/commands/serve.d.ts.map +0 -0
  499. /package/{dist → ccw/dist}/commands/serve.js +0 -0
  500. /package/{dist → ccw/dist}/commands/serve.js.map +0 -0
  501. /package/{dist → ccw/dist}/commands/session-path-resolver.d.ts +0 -0
  502. /package/{dist → ccw/dist}/commands/session-path-resolver.d.ts.map +0 -0
  503. /package/{dist → ccw/dist}/commands/session-path-resolver.js +0 -0
  504. /package/{dist → ccw/dist}/commands/session-path-resolver.js.map +0 -0
  505. /package/{dist → ccw/dist}/commands/session.d.ts +0 -0
  506. /package/{dist → ccw/dist}/commands/session.d.ts.map +0 -0
  507. /package/{dist → ccw/dist}/commands/session.js +0 -0
  508. /package/{dist → ccw/dist}/commands/session.js.map +0 -0
  509. /package/{dist → ccw/dist}/commands/stop.d.ts +0 -0
  510. /package/{dist → ccw/dist}/commands/stop.d.ts.map +0 -0
  511. /package/{dist → ccw/dist}/commands/stop.js +0 -0
  512. /package/{dist → ccw/dist}/commands/stop.js.map +0 -0
  513. /package/{dist → ccw/dist}/commands/tool.d.ts +0 -0
  514. /package/{dist → ccw/dist}/commands/tool.d.ts.map +0 -0
  515. /package/{dist → ccw/dist}/commands/tool.js +0 -0
  516. /package/{dist → ccw/dist}/commands/tool.js.map +0 -0
  517. /package/{dist → ccw/dist}/commands/uninstall.d.ts +0 -0
  518. /package/{dist → ccw/dist}/commands/uninstall.d.ts.map +0 -0
  519. /package/{dist → ccw/dist}/commands/uninstall.js +0 -0
  520. /package/{dist → ccw/dist}/commands/uninstall.js.map +0 -0
  521. /package/{dist → ccw/dist}/commands/upgrade.d.ts +0 -0
  522. /package/{dist → ccw/dist}/commands/upgrade.d.ts.map +0 -0
  523. /package/{dist → ccw/dist}/commands/upgrade.js +0 -0
  524. /package/{dist → ccw/dist}/commands/upgrade.js.map +0 -0
  525. /package/{dist → ccw/dist}/commands/view.d.ts +0 -0
  526. /package/{dist → ccw/dist}/commands/view.d.ts.map +0 -0
  527. /package/{dist → ccw/dist}/commands/view.js +0 -0
  528. /package/{dist → ccw/dist}/commands/view.js.map +0 -0
  529. /package/{dist → ccw/dist}/config/storage-paths.d.ts +0 -0
  530. /package/{dist → ccw/dist}/config/storage-paths.d.ts.map +0 -0
  531. /package/{dist → ccw/dist}/config/storage-paths.js +0 -0
  532. /package/{dist → ccw/dist}/config/storage-paths.js.map +0 -0
  533. /package/{dist → ccw/dist}/core/cache-manager.d.ts +0 -0
  534. /package/{dist → ccw/dist}/core/cache-manager.d.ts.map +0 -0
  535. /package/{dist → ccw/dist}/core/cache-manager.js +0 -0
  536. /package/{dist → ccw/dist}/core/cache-manager.js.map +0 -0
  537. /package/{dist → ccw/dist}/core/claude-freshness.d.ts +0 -0
  538. /package/{dist → ccw/dist}/core/claude-freshness.d.ts.map +0 -0
  539. /package/{dist → ccw/dist}/core/claude-freshness.js +0 -0
  540. /package/{dist → ccw/dist}/core/claude-freshness.js.map +0 -0
  541. /package/{dist → ccw/dist}/core/core-memory-store.d.ts +0 -0
  542. /package/{dist → ccw/dist}/core/core-memory-store.d.ts.map +0 -0
  543. /package/{dist → ccw/dist}/core/core-memory-store.js +0 -0
  544. /package/{dist → ccw/dist}/core/core-memory-store.js.map +0 -0
  545. /package/{dist → ccw/dist}/core/dashboard-generator-patch.d.ts +0 -0
  546. /package/{dist → ccw/dist}/core/dashboard-generator-patch.d.ts.map +0 -0
  547. /package/{dist → ccw/dist}/core/dashboard-generator-patch.js +0 -0
  548. /package/{dist → ccw/dist}/core/dashboard-generator-patch.js.map +0 -0
  549. /package/{dist → ccw/dist}/core/dashboard-generator.d.ts +0 -0
  550. /package/{dist → ccw/dist}/core/dashboard-generator.d.ts.map +0 -0
  551. /package/{dist → ccw/dist}/core/dashboard-generator.js +0 -0
  552. /package/{dist → ccw/dist}/core/dashboard-generator.js.map +0 -0
  553. /package/{dist → ccw/dist}/core/data-aggregator.d.ts +0 -0
  554. /package/{dist → ccw/dist}/core/data-aggregator.d.ts.map +0 -0
  555. /package/{dist → ccw/dist}/core/data-aggregator.js +0 -0
  556. /package/{dist → ccw/dist}/core/data-aggregator.js.map +0 -0
  557. /package/{dist → ccw/dist}/core/history-importer.d.ts +0 -0
  558. /package/{dist → ccw/dist}/core/history-importer.d.ts.map +0 -0
  559. /package/{dist → ccw/dist}/core/history-importer.js +0 -0
  560. /package/{dist → ccw/dist}/core/history-importer.js.map +0 -0
  561. /package/{dist → ccw/dist}/core/lite-scanner-complete.d.ts +0 -0
  562. /package/{dist → ccw/dist}/core/lite-scanner.d.ts +0 -0
  563. /package/{dist → ccw/dist}/core/manifest.d.ts +0 -0
  564. /package/{dist → ccw/dist}/core/manifest.d.ts.map +0 -0
  565. /package/{dist → ccw/dist}/core/manifest.js +0 -0
  566. /package/{dist → ccw/dist}/core/manifest.js.map +0 -0
  567. /package/{dist → ccw/dist}/core/memory-embedder-bridge.d.ts +0 -0
  568. /package/{dist → ccw/dist}/core/memory-embedder-bridge.d.ts.map +0 -0
  569. /package/{dist → ccw/dist}/core/memory-embedder-bridge.js +0 -0
  570. /package/{dist → ccw/dist}/core/memory-embedder-bridge.js.map +0 -0
  571. /package/{dist → ccw/dist}/core/memory-store.d.ts +0 -0
  572. /package/{dist → ccw/dist}/core/memory-store.d.ts.map +0 -0
  573. /package/{dist → ccw/dist}/core/memory-store.js +0 -0
  574. /package/{dist → ccw/dist}/core/memory-store.js.map +0 -0
  575. /package/{dist → ccw/dist}/core/routes/ccw-routes.d.ts +0 -0
  576. /package/{dist → ccw/dist}/core/routes/ccw-routes.d.ts.map +0 -0
  577. /package/{dist → ccw/dist}/core/routes/ccw-routes.js +0 -0
  578. /package/{dist → ccw/dist}/core/routes/ccw-routes.js.map +0 -0
  579. /package/{dist → ccw/dist}/core/routes/claude-routes.d.ts +0 -0
  580. /package/{dist → ccw/dist}/core/routes/cli-routes.d.ts +0 -0
  581. /package/{dist → ccw/dist}/core/routes/codexlens-routes.d.ts +0 -0
  582. /package/{dist → ccw/dist}/core/routes/codexlens-routes.d.ts.map +0 -0
  583. /package/{dist → ccw/dist}/core/routes/codexlens-routes.js +0 -0
  584. /package/{dist → ccw/dist}/core/routes/codexlens-routes.js.map +0 -0
  585. /package/{dist → ccw/dist}/core/routes/core-memory-routes.d.ts +0 -0
  586. /package/{dist → ccw/dist}/core/routes/core-memory-routes.d.ts.map +0 -0
  587. /package/{dist → ccw/dist}/core/routes/core-memory-routes.js +0 -0
  588. /package/{dist → ccw/dist}/core/routes/core-memory-routes.js.map +0 -0
  589. /package/{dist → ccw/dist}/core/routes/files-routes.d.ts +0 -0
  590. /package/{dist → ccw/dist}/core/routes/files-routes.d.ts.map +0 -0
  591. /package/{dist → ccw/dist}/core/routes/files-routes.js +0 -0
  592. /package/{dist → ccw/dist}/core/routes/files-routes.js.map +0 -0
  593. /package/{dist → ccw/dist}/core/routes/graph-routes.d.ts +0 -0
  594. /package/{dist → ccw/dist}/core/routes/graph-routes.d.ts.map +0 -0
  595. /package/{dist → ccw/dist}/core/routes/graph-routes.js +0 -0
  596. /package/{dist → ccw/dist}/core/routes/graph-routes.js.map +0 -0
  597. /package/{dist → ccw/dist}/core/routes/help-routes.d.ts +0 -0
  598. /package/{dist → ccw/dist}/core/routes/help-routes.d.ts.map +0 -0
  599. /package/{dist → ccw/dist}/core/routes/help-routes.js +0 -0
  600. /package/{dist → ccw/dist}/core/routes/help-routes.js.map +0 -0
  601. /package/{dist → ccw/dist}/core/routes/hooks-routes.d.ts +0 -0
  602. /package/{dist → ccw/dist}/core/routes/hooks-routes.d.ts.map +0 -0
  603. /package/{dist → ccw/dist}/core/routes/hooks-routes.js +0 -0
  604. /package/{dist → ccw/dist}/core/routes/hooks-routes.js.map +0 -0
  605. /package/{dist → ccw/dist}/core/routes/mcp-routes.d.ts +0 -0
  606. /package/{dist → ccw/dist}/core/routes/mcp-routes.d.ts.map +0 -0
  607. /package/{dist → ccw/dist}/core/routes/mcp-routes.js +0 -0
  608. /package/{dist → ccw/dist}/core/routes/mcp-routes.js.map +0 -0
  609. /package/{dist → ccw/dist}/core/routes/mcp-templates-db.d.ts +0 -0
  610. /package/{dist → ccw/dist}/core/routes/mcp-templates-db.d.ts.map +0 -0
  611. /package/{dist → ccw/dist}/core/routes/mcp-templates-db.js +0 -0
  612. /package/{dist → ccw/dist}/core/routes/mcp-templates-db.js.map +0 -0
  613. /package/{dist → ccw/dist}/core/routes/memory-routes.d.ts +0 -0
  614. /package/{dist → ccw/dist}/core/routes/memory-routes.d.ts.map +0 -0
  615. /package/{dist → ccw/dist}/core/routes/memory-routes.js +0 -0
  616. /package/{dist → ccw/dist}/core/routes/memory-routes.js.map +0 -0
  617. /package/{dist → ccw/dist}/core/routes/rules-routes.d.ts +0 -0
  618. /package/{dist → ccw/dist}/core/routes/session-routes.d.ts +0 -0
  619. /package/{dist → ccw/dist}/core/routes/session-routes.d.ts.map +0 -0
  620. /package/{dist → ccw/dist}/core/routes/session-routes.js +0 -0
  621. /package/{dist → ccw/dist}/core/routes/session-routes.js.map +0 -0
  622. /package/{dist → ccw/dist}/core/routes/skills-routes.d.ts +0 -0
  623. /package/{dist → ccw/dist}/core/routes/status-routes.d.ts +0 -0
  624. /package/{dist → ccw/dist}/core/routes/status-routes.d.ts.map +0 -0
  625. /package/{dist → ccw/dist}/core/routes/status-routes.js +0 -0
  626. /package/{dist → ccw/dist}/core/routes/status-routes.js.map +0 -0
  627. /package/{dist → ccw/dist}/core/routes/system-routes.d.ts +0 -0
  628. /package/{dist → ccw/dist}/core/routes/system-routes.d.ts.map +0 -0
  629. /package/{dist → ccw/dist}/core/routes/system-routes.js +0 -0
  630. /package/{dist → ccw/dist}/core/routes/system-routes.js.map +0 -0
  631. /package/{dist → ccw/dist}/core/server.d.ts +0 -0
  632. /package/{dist → ccw/dist}/core/server.d.ts.map +0 -0
  633. /package/{dist → ccw/dist}/core/server.js +0 -0
  634. /package/{dist → ccw/dist}/core/server.js.map +0 -0
  635. /package/{dist → ccw/dist}/core/session-clustering-service.d.ts +0 -0
  636. /package/{dist → ccw/dist}/core/session-clustering-service.d.ts.map +0 -0
  637. /package/{dist → ccw/dist}/core/session-clustering-service.js +0 -0
  638. /package/{dist → ccw/dist}/core/session-clustering-service.js.map +0 -0
  639. /package/{dist → ccw/dist}/core/session-scanner.d.ts +0 -0
  640. /package/{dist → ccw/dist}/core/session-scanner.d.ts.map +0 -0
  641. /package/{dist → ccw/dist}/core/session-scanner.js +0 -0
  642. /package/{dist → ccw/dist}/core/session-scanner.js.map +0 -0
  643. /package/{dist → ccw/dist}/core/websocket.d.ts +0 -0
  644. /package/{dist → ccw/dist}/core/websocket.d.ts.map +0 -0
  645. /package/{dist → ccw/dist}/core/websocket.js +0 -0
  646. /package/{dist → ccw/dist}/core/websocket.js.map +0 -0
  647. /package/{dist → ccw/dist}/index.d.ts +0 -0
  648. /package/{dist → ccw/dist}/index.d.ts.map +0 -0
  649. /package/{dist → ccw/dist}/index.js +0 -0
  650. /package/{dist → ccw/dist}/index.js.map +0 -0
  651. /package/{dist → ccw/dist}/mcp-server/index.d.ts +0 -0
  652. /package/{dist → ccw/dist}/mcp-server/index.d.ts.map +0 -0
  653. /package/{dist → ccw/dist}/mcp-server/index.js +0 -0
  654. /package/{dist → ccw/dist}/mcp-server/index.js.map +0 -0
  655. /package/{dist → ccw/dist}/tools/classify-folders.d.ts +0 -0
  656. /package/{dist → ccw/dist}/tools/classify-folders.d.ts.map +0 -0
  657. /package/{dist → ccw/dist}/tools/classify-folders.js +0 -0
  658. /package/{dist → ccw/dist}/tools/classify-folders.js.map +0 -0
  659. /package/{dist → ccw/dist}/tools/cli-config-manager.d.ts +0 -0
  660. /package/{dist → ccw/dist}/tools/cli-config-manager.d.ts.map +0 -0
  661. /package/{dist → ccw/dist}/tools/cli-config-manager.js +0 -0
  662. /package/{dist → ccw/dist}/tools/cli-config-manager.js.map +0 -0
  663. /package/{dist → ccw/dist}/tools/cli-history-store.d.ts +0 -0
  664. /package/{dist → ccw/dist}/tools/cli-history-store.d.ts.map +0 -0
  665. /package/{dist → ccw/dist}/tools/cli-history-store.js +0 -0
  666. /package/{dist → ccw/dist}/tools/cli-history-store.js.map +0 -0
  667. /package/{dist → ccw/dist}/tools/codex-lens.d.ts +0 -0
  668. /package/{dist → ccw/dist}/tools/codex-lens.d.ts.map +0 -0
  669. /package/{dist → ccw/dist}/tools/codex-lens.js +0 -0
  670. /package/{dist → ccw/dist}/tools/codex-lens.js.map +0 -0
  671. /package/{dist → ccw/dist}/tools/convert-tokens-to-css.d.ts +0 -0
  672. /package/{dist → ccw/dist}/tools/convert-tokens-to-css.d.ts.map +0 -0
  673. /package/{dist → ccw/dist}/tools/convert-tokens-to-css.js +0 -0
  674. /package/{dist → ccw/dist}/tools/convert-tokens-to-css.js.map +0 -0
  675. /package/{dist → ccw/dist}/tools/core-memory.d.ts +0 -0
  676. /package/{dist → ccw/dist}/tools/core-memory.d.ts.map +0 -0
  677. /package/{dist → ccw/dist}/tools/core-memory.js +0 -0
  678. /package/{dist → ccw/dist}/tools/core-memory.js.map +0 -0
  679. /package/{dist → ccw/dist}/tools/detect-changed-modules.d.ts +0 -0
  680. /package/{dist → ccw/dist}/tools/detect-changed-modules.d.ts.map +0 -0
  681. /package/{dist → ccw/dist}/tools/detect-changed-modules.js +0 -0
  682. /package/{dist → ccw/dist}/tools/detect-changed-modules.js.map +0 -0
  683. /package/{dist → ccw/dist}/tools/discover-design-files.d.ts +0 -0
  684. /package/{dist → ccw/dist}/tools/discover-design-files.d.ts.map +0 -0
  685. /package/{dist → ccw/dist}/tools/discover-design-files.js +0 -0
  686. /package/{dist → ccw/dist}/tools/discover-design-files.js.map +0 -0
  687. /package/{dist → ccw/dist}/tools/edit-file.d.ts +0 -0
  688. /package/{dist → ccw/dist}/tools/edit-file.d.ts.map +0 -0
  689. /package/{dist → ccw/dist}/tools/edit-file.js +0 -0
  690. /package/{dist → ccw/dist}/tools/edit-file.js.map +0 -0
  691. /package/{dist → ccw/dist}/tools/generate-module-docs.d.ts +0 -0
  692. /package/{dist → ccw/dist}/tools/generate-module-docs.d.ts.map +0 -0
  693. /package/{dist → ccw/dist}/tools/generate-module-docs.js +0 -0
  694. /package/{dist → ccw/dist}/tools/generate-module-docs.js.map +0 -0
  695. /package/{dist → ccw/dist}/tools/get-modules-by-depth.d.ts +0 -0
  696. /package/{dist → ccw/dist}/tools/get-modules-by-depth.d.ts.map +0 -0
  697. /package/{dist → ccw/dist}/tools/get-modules-by-depth.js +0 -0
  698. /package/{dist → ccw/dist}/tools/get-modules-by-depth.js.map +0 -0
  699. /package/{dist → ccw/dist}/tools/index.d.ts +0 -0
  700. /package/{dist → ccw/dist}/tools/index.d.ts.map +0 -0
  701. /package/{dist → ccw/dist}/tools/index.js +0 -0
  702. /package/{dist → ccw/dist}/tools/index.js.map +0 -0
  703. /package/{dist → ccw/dist}/tools/native-session-discovery.d.ts +0 -0
  704. /package/{dist → ccw/dist}/tools/native-session-discovery.d.ts.map +0 -0
  705. /package/{dist → ccw/dist}/tools/native-session-discovery.js +0 -0
  706. /package/{dist → ccw/dist}/tools/native-session-discovery.js.map +0 -0
  707. /package/{dist → ccw/dist}/tools/notifier.d.ts +0 -0
  708. /package/{dist → ccw/dist}/tools/notifier.d.ts.map +0 -0
  709. /package/{dist → ccw/dist}/tools/notifier.js +0 -0
  710. /package/{dist → ccw/dist}/tools/notifier.js.map +0 -0
  711. /package/{dist → ccw/dist}/tools/read-file.d.ts +0 -0
  712. /package/{dist → ccw/dist}/tools/read-file.d.ts.map +0 -0
  713. /package/{dist → ccw/dist}/tools/read-file.js +0 -0
  714. /package/{dist → ccw/dist}/tools/read-file.js.map +0 -0
  715. /package/{dist → ccw/dist}/tools/resume-strategy.d.ts +0 -0
  716. /package/{dist → ccw/dist}/tools/resume-strategy.d.ts.map +0 -0
  717. /package/{dist → ccw/dist}/tools/resume-strategy.js +0 -0
  718. /package/{dist → ccw/dist}/tools/resume-strategy.js.map +0 -0
  719. /package/{dist → ccw/dist}/tools/session-content-parser.d.ts +0 -0
  720. /package/{dist → ccw/dist}/tools/session-content-parser.d.ts.map +0 -0
  721. /package/{dist → ccw/dist}/tools/session-content-parser.js +0 -0
  722. /package/{dist → ccw/dist}/tools/session-content-parser.js.map +0 -0
  723. /package/{dist → ccw/dist}/tools/session-manager.d.ts +0 -0
  724. /package/{dist → ccw/dist}/tools/session-manager.d.ts.map +0 -0
  725. /package/{dist → ccw/dist}/tools/session-manager.js +0 -0
  726. /package/{dist → ccw/dist}/tools/session-manager.js.map +0 -0
  727. /package/{dist → ccw/dist}/tools/smart-context.d.ts +0 -0
  728. /package/{dist → ccw/dist}/tools/smart-context.d.ts.map +0 -0
  729. /package/{dist → ccw/dist}/tools/smart-context.js +0 -0
  730. /package/{dist → ccw/dist}/tools/smart-context.js.map +0 -0
  731. /package/{dist → ccw/dist}/tools/smart-search.d.ts +0 -0
  732. /package/{dist → ccw/dist}/tools/smart-search.d.ts.map +0 -0
  733. /package/{dist → ccw/dist}/tools/smart-search.js +0 -0
  734. /package/{dist → ccw/dist}/tools/smart-search.js.map +0 -0
  735. /package/{dist → ccw/dist}/tools/storage-manager.d.ts +0 -0
  736. /package/{dist → ccw/dist}/tools/storage-manager.d.ts.map +0 -0
  737. /package/{dist → ccw/dist}/tools/storage-manager.js +0 -0
  738. /package/{dist → ccw/dist}/tools/storage-manager.js.map +0 -0
  739. /package/{dist → ccw/dist}/tools/ui-generate-preview.d.ts +0 -0
  740. /package/{dist → ccw/dist}/tools/ui-generate-preview.d.ts.map +0 -0
  741. /package/{dist → ccw/dist}/tools/ui-generate-preview.js +0 -0
  742. /package/{dist → ccw/dist}/tools/ui-generate-preview.js.map +0 -0
  743. /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.d.ts +0 -0
  744. /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.d.ts.map +0 -0
  745. /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.js +0 -0
  746. /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.js.map +0 -0
  747. /package/{dist → ccw/dist}/tools/update-module-claude.d.ts +0 -0
  748. /package/{dist → ccw/dist}/tools/update-module-claude.d.ts.map +0 -0
  749. /package/{dist → ccw/dist}/tools/update-module-claude.js +0 -0
  750. /package/{dist → ccw/dist}/tools/update-module-claude.js.map +0 -0
  751. /package/{dist → ccw/dist}/tools/write-file.d.ts +0 -0
  752. /package/{dist → ccw/dist}/tools/write-file.d.ts.map +0 -0
  753. /package/{dist → ccw/dist}/tools/write-file.js +0 -0
  754. /package/{dist → ccw/dist}/tools/write-file.js.map +0 -0
  755. /package/{dist → ccw/dist}/types/config.d.ts +0 -0
  756. /package/{dist → ccw/dist}/types/config.d.ts.map +0 -0
  757. /package/{dist → ccw/dist}/types/config.js +0 -0
  758. /package/{dist → ccw/dist}/types/config.js.map +0 -0
  759. /package/{dist → ccw/dist}/types/index.d.ts +0 -0
  760. /package/{dist → ccw/dist}/types/index.d.ts.map +0 -0
  761. /package/{dist → ccw/dist}/types/index.js +0 -0
  762. /package/{dist → ccw/dist}/types/index.js.map +0 -0
  763. /package/{dist → ccw/dist}/types/session.d.ts +0 -0
  764. /package/{dist → ccw/dist}/types/session.d.ts.map +0 -0
  765. /package/{dist → ccw/dist}/types/session.js +0 -0
  766. /package/{dist → ccw/dist}/types/session.js.map +0 -0
  767. /package/{dist → ccw/dist}/types/tool.d.ts +0 -0
  768. /package/{dist → ccw/dist}/types/tool.d.ts.map +0 -0
  769. /package/{dist → ccw/dist}/types/tool.js +0 -0
  770. /package/{dist → ccw/dist}/types/tool.js.map +0 -0
  771. /package/{dist → ccw/dist}/utils/browser-launcher.d.ts +0 -0
  772. /package/{dist → ccw/dist}/utils/browser-launcher.d.ts.map +0 -0
  773. /package/{dist → ccw/dist}/utils/browser-launcher.js +0 -0
  774. /package/{dist → ccw/dist}/utils/browser-launcher.js.map +0 -0
  775. /package/{dist → ccw/dist}/utils/file-utils.d.ts +0 -0
  776. /package/{dist → ccw/dist}/utils/file-utils.d.ts.map +0 -0
  777. /package/{dist → ccw/dist}/utils/file-utils.js +0 -0
  778. /package/{dist → ccw/dist}/utils/file-utils.js.map +0 -0
  779. /package/{dist → ccw/dist}/utils/path-resolver.d.ts +0 -0
  780. /package/{dist → ccw/dist}/utils/path-resolver.d.ts.map +0 -0
  781. /package/{dist → ccw/dist}/utils/path-resolver.js +0 -0
  782. /package/{dist → ccw/dist}/utils/path-resolver.js.map +0 -0
  783. /package/{dist → ccw/dist}/utils/path-validator.d.ts +0 -0
  784. /package/{dist → ccw/dist}/utils/path-validator.d.ts.map +0 -0
  785. /package/{dist → ccw/dist}/utils/path-validator.js +0 -0
  786. /package/{dist → ccw/dist}/utils/path-validator.js.map +0 -0
  787. /package/{dist → ccw/dist}/utils/ui.d.ts +0 -0
  788. /package/{dist → ccw/dist}/utils/ui.d.ts.map +0 -0
  789. /package/{dist → ccw/dist}/utils/ui.js +0 -0
  790. /package/{dist → ccw/dist}/utils/ui.js.map +0 -0
  791. /package/{src → ccw/src}/.workflow/.cli-history/history.db +0 -0
  792. /package/{src → ccw/src}/.workflow/.cli-history/history.db-shm +0 -0
  793. /package/{src → ccw/src}/.workflow/.cli-history/history.db-wal +0 -0
  794. /package/{src → ccw/src}/cli.ts +0 -0
  795. /package/{src → ccw/src}/commands/cli.ts +0 -0
  796. /package/{src → ccw/src}/commands/core-memory.ts +0 -0
  797. /package/{src → ccw/src}/commands/hook.ts +0 -0
  798. /package/{src → ccw/src}/commands/install.ts +0 -0
  799. /package/{src → ccw/src}/commands/list.ts +0 -0
  800. /package/{src → ccw/src}/commands/memory.ts +0 -0
  801. /package/{src → ccw/src}/commands/serve.ts +0 -0
  802. /package/{src → ccw/src}/commands/session-path-resolver.ts +0 -0
  803. /package/{src → ccw/src}/commands/session.ts +0 -0
  804. /package/{src → ccw/src}/commands/stop.ts +0 -0
  805. /package/{src → ccw/src}/commands/tool.ts +0 -0
  806. /package/{src → ccw/src}/commands/uninstall.ts +0 -0
  807. /package/{src → ccw/src}/commands/upgrade.ts +0 -0
  808. /package/{src → ccw/src}/commands/view.ts +0 -0
  809. /package/{src → ccw/src}/config/storage-paths.ts +0 -0
  810. /package/{src → ccw/src}/core/cache-manager.ts +0 -0
  811. /package/{src → ccw/src}/core/claude-freshness.ts +0 -0
  812. /package/{src → ccw/src}/core/core-memory-store.ts +0 -0
  813. /package/{src → ccw/src}/core/dashboard-generator-patch.ts +0 -0
  814. /package/{src → ccw/src}/core/dashboard-generator.ts +0 -0
  815. /package/{src → ccw/src}/core/data-aggregator.ts +0 -0
  816. /package/{src → ccw/src}/core/history-importer.ts +0 -0
  817. /package/{src → ccw/src}/core/manifest.ts +0 -0
  818. /package/{src → ccw/src}/core/memory-embedder-bridge.ts +0 -0
  819. /package/{src → ccw/src}/core/memory-store.ts +0 -0
  820. /package/{src → ccw/src}/core/routes/ccw-routes.ts +0 -0
  821. /package/{src → ccw/src}/core/routes/codexlens-routes.ts +0 -0
  822. /package/{src → ccw/src}/core/routes/core-memory-routes.ts +0 -0
  823. /package/{src → ccw/src}/core/routes/files-routes.ts +0 -0
  824. /package/{src → ccw/src}/core/routes/graph-routes.md +0 -0
  825. /package/{src → ccw/src}/core/routes/graph-routes.ts +0 -0
  826. /package/{src → ccw/src}/core/routes/help-routes.ts +0 -0
  827. /package/{src → ccw/src}/core/routes/hooks-routes.ts +0 -0
  828. /package/{src → ccw/src}/core/routes/mcp-routes.ts +0 -0
  829. /package/{src → ccw/src}/core/routes/mcp-routes.ts.backup +0 -0
  830. /package/{src → ccw/src}/core/routes/mcp-templates-db.ts +0 -0
  831. /package/{src → ccw/src}/core/routes/memory-routes.ts +0 -0
  832. /package/{src → ccw/src}/core/routes/session-routes.ts +0 -0
  833. /package/{src → ccw/src}/core/routes/status-routes.ts +0 -0
  834. /package/{src → ccw/src}/core/routes/system-routes.ts +0 -0
  835. /package/{src → ccw/src}/core/server.ts +0 -0
  836. /package/{src → ccw/src}/core/session-clustering-service.ts +0 -0
  837. /package/{src → ccw/src}/core/session-scanner.ts +0 -0
  838. /package/{src → ccw/src}/core/websocket.ts +0 -0
  839. /package/{src → ccw/src}/index.ts +0 -0
  840. /package/{src → ccw/src}/mcp-server/index.ts +0 -0
  841. /package/{src → ccw/src}/templates/assets/css/github-dark.min.css +0 -0
  842. /package/{src → ccw/src}/templates/assets/css/github.min.css +0 -0
  843. /package/{src → ccw/src}/templates/assets/js/cytoscape.min.js +0 -0
  844. /package/{src → ccw/src}/templates/assets/js/d3.min.js +0 -0
  845. /package/{src → ccw/src}/templates/assets/js/highlight.min.js +0 -0
  846. /package/{src → ccw/src}/templates/assets/js/lucide.min.js +0 -0
  847. /package/{src → ccw/src}/templates/assets/js/marked.min.js +0 -0
  848. /package/{src → ccw/src}/templates/assets/js/tailwind.js +0 -0
  849. /package/{src → ccw/src}/templates/dashboard-css/01-base.css +0 -0
  850. /package/{src → ccw/src}/templates/dashboard-css/02-session.css +0 -0
  851. /package/{src → ccw/src}/templates/dashboard-css/03-tasks.css +0 -0
  852. /package/{src → ccw/src}/templates/dashboard-css/04-lite-tasks.css +0 -0
  853. /package/{src → ccw/src}/templates/dashboard-css/05-context.css +0 -0
  854. /package/{src → ccw/src}/templates/dashboard-css/06-cards.css +0 -0
  855. /package/{src → ccw/src}/templates/dashboard-css/07-managers.css +0 -0
  856. /package/{src → ccw/src}/templates/dashboard-css/08-review.css +0 -0
  857. /package/{src → ccw/src}/templates/dashboard-css/09-explorer.css +0 -0
  858. /package/{src → ccw/src}/templates/dashboard-css/10-cli-status.css +0 -0
  859. /package/{src → ccw/src}/templates/dashboard-css/11-cli-history.css +0 -0
  860. /package/{src → ccw/src}/templates/dashboard-css/12-cli-legacy.css +0 -0
  861. /package/{src → ccw/src}/templates/dashboard-css/13-cli-ccw.css +0 -0
  862. /package/{src → ccw/src}/templates/dashboard-css/14-cli-modals.css +0 -0
  863. /package/{src → ccw/src}/templates/dashboard-css/15-cli-endpoints.css +0 -0
  864. /package/{src → ccw/src}/templates/dashboard-css/16-cli-session.css +0 -0
  865. /package/{src → ccw/src}/templates/dashboard-css/17-cli-conversation.css +0 -0
  866. /package/{src → ccw/src}/templates/dashboard-css/18-cli-settings.css +0 -0
  867. /package/{src → ccw/src}/templates/dashboard-css/19-cli-native-session.css +0 -0
  868. /package/{src → ccw/src}/templates/dashboard-css/20-cli-taskqueue.css +0 -0
  869. /package/{src → ccw/src}/templates/dashboard-css/21-cli-toolmgmt.css +0 -0
  870. /package/{src → ccw/src}/templates/dashboard-css/22-cli-semantic.css +0 -0
  871. /package/{src → ccw/src}/templates/dashboard-css/23-memory.css +0 -0
  872. /package/{src → ccw/src}/templates/dashboard-css/24-prompt-history.css +0 -0
  873. /package/{src → ccw/src}/templates/dashboard-css/25-skills-rules.css +0 -0
  874. /package/{src → ccw/src}/templates/dashboard-css/26-claude-manager.css +0 -0
  875. /package/{src → ccw/src}/templates/dashboard-css/27-graph-explorer.css +0 -0
  876. /package/{src → ccw/src}/templates/dashboard-css/28-mcp-manager.css +0 -0
  877. /package/{src → ccw/src}/templates/dashboard-css/29-help.css +0 -0
  878. /package/{src → ccw/src}/templates/dashboard-css/30-core-memory.css +0 -0
  879. /package/{src → ccw/src}/templates/dashboard-js/api.js +0 -0
  880. /package/{src → ccw/src}/templates/dashboard-js/components/_conflict_tab.js +0 -0
  881. /package/{src → ccw/src}/templates/dashboard-js/components/_exp_helpers.js +0 -0
  882. /package/{src → ccw/src}/templates/dashboard-js/components/_review_tab.js +0 -0
  883. /package/{src → ccw/src}/templates/dashboard-js/components/carousel.js +0 -0
  884. /package/{src → ccw/src}/templates/dashboard-js/components/cli-history.js +0 -0
  885. /package/{src → ccw/src}/templates/dashboard-js/components/cli-status.js +0 -0
  886. /package/{src → ccw/src}/templates/dashboard-js/components/flowchart.js +0 -0
  887. /package/{src → ccw/src}/templates/dashboard-js/components/global-notifications.js +0 -0
  888. /package/{src → ccw/src}/templates/dashboard-js/components/hook-manager.js +0 -0
  889. /package/{src → ccw/src}/templates/dashboard-js/components/index-manager.js +0 -0
  890. /package/{src → ccw/src}/templates/dashboard-js/components/mcp-manager.js +0 -0
  891. /package/{src → ccw/src}/templates/dashboard-js/components/modals.js +0 -0
  892. /package/{src → ccw/src}/templates/dashboard-js/components/navigation.js +0 -0
  893. /package/{src → ccw/src}/templates/dashboard-js/components/notifications.js +0 -0
  894. /package/{src → ccw/src}/templates/dashboard-js/components/sidebar.js +0 -0
  895. /package/{src → ccw/src}/templates/dashboard-js/components/storage-manager.js +0 -0
  896. /package/{src → ccw/src}/templates/dashboard-js/components/tabs-context.js +0 -0
  897. /package/{src → ccw/src}/templates/dashboard-js/components/tabs-other.js +0 -0
  898. /package/{src → ccw/src}/templates/dashboard-js/components/task-drawer-core.js +0 -0
  899. /package/{src → ccw/src}/templates/dashboard-js/components/task-drawer-renderers.js +0 -0
  900. /package/{src → ccw/src}/templates/dashboard-js/components/task-queue-sidebar.js +0 -0
  901. /package/{src → ccw/src}/templates/dashboard-js/components/theme.js +0 -0
  902. /package/{src → ccw/src}/templates/dashboard-js/components/version-check.js +0 -0
  903. /package/{src → ccw/src}/templates/dashboard-js/help-i18n.js +0 -0
  904. /package/{src → ccw/src}/templates/dashboard-js/main.js +0 -0
  905. /package/{src → ccw/src}/templates/dashboard-js/state.js +0 -0
  906. /package/{src → ccw/src}/templates/dashboard-js/utils.js +0 -0
  907. /package/{src → ccw/src}/templates/dashboard-js/views/codexlens-manager.js +0 -0
  908. /package/{src → ccw/src}/templates/dashboard-js/views/core-memory-clusters.js +0 -0
  909. /package/{src → ccw/src}/templates/dashboard-js/views/core-memory.js +0 -0
  910. /package/{src → ccw/src}/templates/dashboard-js/views/explorer.js +0 -0
  911. /package/{src → ccw/src}/templates/dashboard-js/views/fix-session.js +0 -0
  912. /package/{src → ccw/src}/templates/dashboard-js/views/graph-explorer.js +0 -0
  913. /package/{src → ccw/src}/templates/dashboard-js/views/help.js +0 -0
  914. /package/{src → ccw/src}/templates/dashboard-js/views/history.js +0 -0
  915. /package/{src → ccw/src}/templates/dashboard-js/views/home.js +0 -0
  916. /package/{src → ccw/src}/templates/dashboard-js/views/hook-manager.js +0 -0
  917. /package/{src → ccw/src}/templates/dashboard-js/views/lite-tasks.js +0 -0
  918. /package/{src → ccw/src}/templates/dashboard-js/views/mcp-manager.js +0 -0
  919. /package/{src → ccw/src}/templates/dashboard-js/views/mcp-manager.js.backup +0 -0
  920. /package/{src → ccw/src}/templates/dashboard-js/views/mcp-manager.js.new +0 -0
  921. /package/{src → ccw/src}/templates/dashboard-js/views/memory.js +0 -0
  922. /package/{src → ccw/src}/templates/dashboard-js/views/project-overview.js +0 -0
  923. /package/{src → ccw/src}/templates/dashboard-js/views/prompt-history.js +0 -0
  924. /package/{src → ccw/src}/templates/dashboard-js/views/review-session.js +0 -0
  925. /package/{src → ccw/src}/templates/dashboard-js/views/session-detail.js +0 -0
  926. /package/{src → ccw/src}/templates/dashboard.html +0 -0
  927. /package/{src → ccw/src}/templates/hooks-config-example.json +0 -0
  928. /package/{src → ccw/src}/templates/review-cycle-dashboard.html +0 -0
  929. /package/{src → ccw/src}/templates/workflow-dashboard.html +0 -0
  930. /package/{src → ccw/src}/tools/classify-folders.ts +0 -0
  931. /package/{src → ccw/src}/tools/cli-config-manager.ts +0 -0
  932. /package/{src → ccw/src}/tools/cli-history-store.ts +0 -0
  933. /package/{src → ccw/src}/tools/codex-lens.ts +0 -0
  934. /package/{src → ccw/src}/tools/convert-tokens-to-css.ts +0 -0
  935. /package/{src → ccw/src}/tools/core-memory.ts +0 -0
  936. /package/{src → ccw/src}/tools/detect-changed-modules.ts +0 -0
  937. /package/{src → ccw/src}/tools/discover-design-files.ts +0 -0
  938. /package/{src → ccw/src}/tools/edit-file.ts +0 -0
  939. /package/{src → ccw/src}/tools/generate-module-docs.ts +0 -0
  940. /package/{src → ccw/src}/tools/get-modules-by-depth.ts +0 -0
  941. /package/{src → ccw/src}/tools/index.ts +0 -0
  942. /package/{src → ccw/src}/tools/native-session-discovery.ts +0 -0
  943. /package/{src → ccw/src}/tools/notifier.ts +0 -0
  944. /package/{src → ccw/src}/tools/read-file.ts +0 -0
  945. /package/{src → ccw/src}/tools/resume-strategy.ts +0 -0
  946. /package/{src → ccw/src}/tools/session-content-parser.ts +0 -0
  947. /package/{src → ccw/src}/tools/session-manager.ts +0 -0
  948. /package/{src → ccw/src}/tools/smart-context.ts +0 -0
  949. /package/{src → ccw/src}/tools/smart-search.ts +0 -0
  950. /package/{src → ccw/src}/tools/smart-search.ts.backup +0 -0
  951. /package/{src → ccw/src}/tools/storage-manager.ts +0 -0
  952. /package/{src → ccw/src}/tools/ui-generate-preview.js +0 -0
  953. /package/{src → ccw/src}/tools/ui-instantiate-prototypes.js +0 -0
  954. /package/{src → ccw/src}/tools/update-module-claude.js +0 -0
  955. /package/{src → ccw/src}/tools/write-file.ts +0 -0
  956. /package/{src → ccw/src}/types/config.ts +0 -0
  957. /package/{src → ccw/src}/types/index.ts +0 -0
  958. /package/{src → ccw/src}/types/session.ts +0 -0
  959. /package/{src → ccw/src}/types/tool.ts +0 -0
  960. /package/{src → ccw/src}/utils/browser-launcher.ts +0 -0
  961. /package/{src → ccw/src}/utils/file-utils.ts +0 -0
  962. /package/{src → ccw/src}/utils/path-resolver.ts +0 -0
  963. /package/{src → ccw/src}/utils/path-validator.ts +0 -0
  964. /package/{src → ccw/src}/utils/ui.ts +0 -0
@@ -0,0 +1,274 @@
1
+ """Smart code extraction for complete code blocks."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pathlib import Path
6
+ from typing import List, Optional, Tuple
7
+
8
+ from codexlens.entities import SearchResult, Symbol
9
+
10
+
11
+ def extract_complete_code_block(
12
+ result: SearchResult,
13
+ source_file_path: Optional[str] = None,
14
+ context_lines: int = 0,
15
+ ) -> str:
16
+ """Extract complete code block from a search result.
17
+
18
+ Args:
19
+ result: SearchResult from semantic search.
20
+ source_file_path: Optional path to source file for re-reading.
21
+ context_lines: Additional lines of context to include above/below.
22
+
23
+ Returns:
24
+ Complete code block as string.
25
+ """
26
+ # If we have full content stored, use it
27
+ if result.content:
28
+ if context_lines == 0:
29
+ return result.content
30
+ # Need to add context, read from file
31
+
32
+ # Try to read from source file
33
+ file_path = source_file_path or result.path
34
+ if not file_path or not Path(file_path).exists():
35
+ # Fall back to excerpt
36
+ return result.excerpt or ""
37
+
38
+ try:
39
+ content = Path(file_path).read_text(encoding="utf-8", errors="ignore")
40
+ lines = content.splitlines()
41
+
42
+ # Get line range
43
+ start_line = result.start_line or 1
44
+ end_line = result.end_line or len(lines)
45
+
46
+ # Add context
47
+ start_idx = max(0, start_line - 1 - context_lines)
48
+ end_idx = min(len(lines), end_line + context_lines)
49
+
50
+ return "\n".join(lines[start_idx:end_idx])
51
+ except Exception:
52
+ return result.excerpt or result.content or ""
53
+
54
+
55
+ def extract_symbol_with_context(
56
+ file_path: str,
57
+ symbol: Symbol,
58
+ include_docstring: bool = True,
59
+ include_decorators: bool = True,
60
+ ) -> str:
61
+ """Extract a symbol (function/class) with its docstring and decorators.
62
+
63
+ Args:
64
+ file_path: Path to source file.
65
+ symbol: Symbol to extract.
66
+ include_docstring: Include docstring if present.
67
+ include_decorators: Include decorators/annotations above symbol.
68
+
69
+ Returns:
70
+ Complete symbol code with context.
71
+ """
72
+ try:
73
+ content = Path(file_path).read_text(encoding="utf-8", errors="ignore")
74
+ lines = content.splitlines()
75
+
76
+ start_line, end_line = symbol.range
77
+ start_idx = start_line - 1
78
+ end_idx = end_line
79
+
80
+ # Look for decorators above the symbol
81
+ if include_decorators and start_idx > 0:
82
+ decorator_start = start_idx
83
+ # Search backwards for decorators
84
+ i = start_idx - 1
85
+ while i >= 0 and i >= start_idx - 20: # Look up to 20 lines back
86
+ line = lines[i].strip()
87
+ if line.startswith("@"):
88
+ decorator_start = i
89
+ i -= 1
90
+ elif line == "" or line.startswith("#"):
91
+ # Skip empty lines and comments, continue looking
92
+ i -= 1
93
+ elif line.startswith("//") or line.startswith("/*") or line.startswith("*"):
94
+ # JavaScript/Java style comments
95
+ decorator_start = i
96
+ i -= 1
97
+ else:
98
+ # Found non-decorator, non-comment line, stop
99
+ break
100
+ start_idx = decorator_start
101
+
102
+ return "\n".join(lines[start_idx:end_idx])
103
+ except Exception:
104
+ return ""
105
+
106
+
107
+ def format_search_result_code(
108
+ result: SearchResult,
109
+ max_lines: Optional[int] = None,
110
+ show_line_numbers: bool = True,
111
+ highlight_match: bool = False,
112
+ ) -> str:
113
+ """Format search result code for display.
114
+
115
+ Args:
116
+ result: SearchResult to format.
117
+ max_lines: Maximum lines to show (None for all).
118
+ show_line_numbers: Include line numbers in output.
119
+ highlight_match: Add markers for matched region.
120
+
121
+ Returns:
122
+ Formatted code string.
123
+ """
124
+ content = result.content or result.excerpt or ""
125
+ if not content:
126
+ return ""
127
+
128
+ lines = content.splitlines()
129
+
130
+ # Truncate if needed
131
+ truncated = False
132
+ if max_lines and len(lines) > max_lines:
133
+ lines = lines[:max_lines]
134
+ truncated = True
135
+
136
+ # Format with line numbers
137
+ if show_line_numbers:
138
+ start = result.start_line or 1
139
+ formatted_lines = []
140
+ for i, line in enumerate(lines):
141
+ line_num = start + i
142
+ formatted_lines.append(f"{line_num:4d} | {line}")
143
+ output = "\n".join(formatted_lines)
144
+ else:
145
+ output = "\n".join(lines)
146
+
147
+ if truncated:
148
+ output += "\n... (truncated)"
149
+
150
+ return output
151
+
152
+
153
+ def get_code_block_summary(result: SearchResult) -> str:
154
+ """Get a concise summary of a code block.
155
+
156
+ Args:
157
+ result: SearchResult to summarize.
158
+
159
+ Returns:
160
+ Summary string like "function hello_world (lines 10-25)"
161
+ """
162
+ parts = []
163
+
164
+ if result.symbol_kind:
165
+ parts.append(result.symbol_kind)
166
+
167
+ if result.symbol_name:
168
+ parts.append(f"`{result.symbol_name}`")
169
+ elif result.excerpt:
170
+ # Extract first meaningful identifier
171
+ first_line = result.excerpt.split("\n")[0][:50]
172
+ parts.append(f'"{first_line}..."')
173
+
174
+ if result.start_line and result.end_line:
175
+ if result.start_line == result.end_line:
176
+ parts.append(f"(line {result.start_line})")
177
+ else:
178
+ parts.append(f"(lines {result.start_line}-{result.end_line})")
179
+
180
+ if result.path:
181
+ file_name = Path(result.path).name
182
+ parts.append(f"in {file_name}")
183
+
184
+ return " ".join(parts) if parts else "unknown code block"
185
+
186
+
187
+ class CodeBlockResult:
188
+ """Enhanced search result with complete code block."""
189
+
190
+ def __init__(self, result: SearchResult, source_path: Optional[str] = None):
191
+ self.result = result
192
+ self.source_path = source_path or result.path
193
+ self._full_code: Optional[str] = None
194
+
195
+ @property
196
+ def score(self) -> float:
197
+ return self.result.score
198
+
199
+ @property
200
+ def path(self) -> str:
201
+ return self.result.path
202
+
203
+ @property
204
+ def file_name(self) -> str:
205
+ return Path(self.result.path).name
206
+
207
+ @property
208
+ def symbol_name(self) -> Optional[str]:
209
+ return self.result.symbol_name
210
+
211
+ @property
212
+ def symbol_kind(self) -> Optional[str]:
213
+ return self.result.symbol_kind
214
+
215
+ @property
216
+ def line_range(self) -> Tuple[int, int]:
217
+ return (
218
+ self.result.start_line or 1,
219
+ self.result.end_line or 1
220
+ )
221
+
222
+ @property
223
+ def full_code(self) -> str:
224
+ """Get full code block content."""
225
+ if self._full_code is None:
226
+ self._full_code = extract_complete_code_block(self.result, self.source_path)
227
+ return self._full_code
228
+
229
+ @property
230
+ def excerpt(self) -> str:
231
+ """Get short excerpt."""
232
+ return self.result.excerpt or ""
233
+
234
+ @property
235
+ def summary(self) -> str:
236
+ """Get code block summary."""
237
+ return get_code_block_summary(self.result)
238
+
239
+ def format(
240
+ self,
241
+ max_lines: Optional[int] = None,
242
+ show_line_numbers: bool = True,
243
+ ) -> str:
244
+ """Format code for display."""
245
+ # Use full code if available
246
+ display_result = SearchResult(
247
+ path=self.result.path,
248
+ score=self.result.score,
249
+ content=self.full_code,
250
+ start_line=self.result.start_line,
251
+ end_line=self.result.end_line,
252
+ )
253
+ return format_search_result_code(
254
+ display_result,
255
+ max_lines=max_lines,
256
+ show_line_numbers=show_line_numbers
257
+ )
258
+
259
+ def __repr__(self) -> str:
260
+ return f"<CodeBlockResult {self.summary} score={self.score:.3f}>"
261
+
262
+
263
+ def enhance_search_results(
264
+ results: List[SearchResult],
265
+ ) -> List[CodeBlockResult]:
266
+ """Enhance search results with complete code block access.
267
+
268
+ Args:
269
+ results: List of SearchResult from semantic search.
270
+
271
+ Returns:
272
+ List of CodeBlockResult with full code access.
273
+ """
274
+ return [CodeBlockResult(r) for r in results]
@@ -0,0 +1,244 @@
1
+ """Embedder for semantic code search using fastembed.
2
+
3
+ Supports GPU acceleration via ONNX execution providers (CUDA, TensorRT, DirectML, ROCm, CoreML).
4
+ GPU acceleration is automatic when available, with transparent CPU fallback.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ import gc
10
+ import logging
11
+ import threading
12
+ from typing import Dict, Iterable, List, Optional
13
+
14
+ import numpy as np
15
+
16
+ from . import SEMANTIC_AVAILABLE
17
+ from .gpu_support import get_optimal_providers, is_gpu_available, get_gpu_summary
18
+
19
+ logger = logging.getLogger(__name__)
20
+
21
+ # Global embedder cache for singleton pattern
22
+ _embedder_cache: Dict[str, "Embedder"] = {}
23
+ _cache_lock = threading.Lock()
24
+
25
+
26
+ def get_embedder(profile: str = "code", use_gpu: bool = True) -> "Embedder":
27
+ """Get or create a cached Embedder instance (thread-safe singleton).
28
+
29
+ This function provides significant performance improvement by reusing
30
+ Embedder instances across multiple searches, avoiding repeated model
31
+ loading overhead (~0.8s per load).
32
+
33
+ Args:
34
+ profile: Model profile ("fast", "code", "multilingual", "balanced")
35
+ use_gpu: If True, use GPU acceleration when available (default: True)
36
+
37
+ Returns:
38
+ Cached Embedder instance for the given profile
39
+ """
40
+ global _embedder_cache
41
+
42
+ # Cache key includes GPU preference to support mixed configurations
43
+ cache_key = f"{profile}:{'gpu' if use_gpu else 'cpu'}"
44
+
45
+ # Fast path: check cache without lock
46
+ if cache_key in _embedder_cache:
47
+ return _embedder_cache[cache_key]
48
+
49
+ # Slow path: acquire lock for initialization
50
+ with _cache_lock:
51
+ # Double-check after acquiring lock
52
+ if cache_key in _embedder_cache:
53
+ return _embedder_cache[cache_key]
54
+
55
+ # Create new embedder and cache it
56
+ embedder = Embedder(profile=profile, use_gpu=use_gpu)
57
+ # Pre-load model to ensure it's ready
58
+ embedder._load_model()
59
+ _embedder_cache[cache_key] = embedder
60
+
61
+ # Log GPU status on first embedder creation
62
+ if use_gpu and is_gpu_available():
63
+ logger.info(f"Embedder initialized with GPU: {get_gpu_summary()}")
64
+ elif use_gpu:
65
+ logger.debug("GPU not available, using CPU for embeddings")
66
+
67
+ return embedder
68
+
69
+
70
+ def clear_embedder_cache() -> None:
71
+ """Clear the embedder cache and release ONNX resources.
72
+
73
+ This method ensures proper cleanup of ONNX model resources to prevent
74
+ memory leaks when embedders are no longer needed.
75
+ """
76
+ global _embedder_cache
77
+ with _cache_lock:
78
+ # Release ONNX resources before clearing cache
79
+ for embedder in _embedder_cache.values():
80
+ if embedder._model is not None:
81
+ del embedder._model
82
+ embedder._model = None
83
+ _embedder_cache.clear()
84
+ gc.collect()
85
+
86
+
87
+ class Embedder:
88
+ """Generate embeddings for code chunks using fastembed (ONNX-based).
89
+
90
+ Supported Model Profiles:
91
+ - fast: BAAI/bge-small-en-v1.5 (384 dim) - Fast, lightweight, English-optimized
92
+ - code: jinaai/jina-embeddings-v2-base-code (768 dim) - Code-optimized, best for programming languages
93
+ - multilingual: intfloat/multilingual-e5-large (1024 dim) - Multilingual + code support
94
+ - balanced: mixedbread-ai/mxbai-embed-large-v1 (1024 dim) - High accuracy, general purpose
95
+ """
96
+
97
+ # Model profiles for different use cases
98
+ MODELS = {
99
+ "fast": "BAAI/bge-small-en-v1.5", # 384 dim - Fast, lightweight
100
+ "code": "jinaai/jina-embeddings-v2-base-code", # 768 dim - Code-optimized
101
+ "multilingual": "intfloat/multilingual-e5-large", # 1024 dim - Multilingual
102
+ "balanced": "mixedbread-ai/mxbai-embed-large-v1", # 1024 dim - High accuracy
103
+ }
104
+
105
+ # Dimension mapping for each model
106
+ MODEL_DIMS = {
107
+ "BAAI/bge-small-en-v1.5": 384,
108
+ "jinaai/jina-embeddings-v2-base-code": 768,
109
+ "intfloat/multilingual-e5-large": 1024,
110
+ "mixedbread-ai/mxbai-embed-large-v1": 1024,
111
+ }
112
+
113
+ # Default model (fast profile)
114
+ DEFAULT_MODEL = "BAAI/bge-small-en-v1.5"
115
+ DEFAULT_PROFILE = "fast"
116
+
117
+ def __init__(
118
+ self,
119
+ model_name: str | None = None,
120
+ profile: str | None = None,
121
+ use_gpu: bool = True,
122
+ providers: List[str] | None = None,
123
+ ) -> None:
124
+ """Initialize embedder with model or profile.
125
+
126
+ Args:
127
+ model_name: Explicit model name (e.g., "jinaai/jina-embeddings-v2-base-code")
128
+ profile: Model profile shortcut ("fast", "code", "multilingual", "balanced")
129
+ If both provided, model_name takes precedence.
130
+ use_gpu: If True, use GPU acceleration when available (default: True)
131
+ providers: Explicit ONNX providers list (overrides use_gpu if provided)
132
+ """
133
+ if not SEMANTIC_AVAILABLE:
134
+ raise ImportError(
135
+ "Semantic search dependencies not available. "
136
+ "Install with: pip install codexlens[semantic]"
137
+ )
138
+
139
+ # Resolve model name from profile or use explicit name
140
+ if model_name:
141
+ self.model_name = model_name
142
+ elif profile and profile in self.MODELS:
143
+ self.model_name = self.MODELS[profile]
144
+ else:
145
+ self.model_name = self.DEFAULT_MODEL
146
+
147
+ # Configure ONNX execution providers
148
+ if providers is not None:
149
+ self._providers = providers
150
+ else:
151
+ self._providers = get_optimal_providers(use_gpu=use_gpu)
152
+
153
+ self._use_gpu = use_gpu
154
+ self._model = None
155
+
156
+ @property
157
+ def embedding_dim(self) -> int:
158
+ """Get embedding dimension for current model."""
159
+ return self.MODEL_DIMS.get(self.model_name, 768) # Default to 768 if unknown
160
+
161
+ @property
162
+ def providers(self) -> List[str]:
163
+ """Get configured ONNX execution providers."""
164
+ return self._providers
165
+
166
+ @property
167
+ def is_gpu_enabled(self) -> bool:
168
+ """Check if GPU acceleration is enabled for this embedder."""
169
+ gpu_providers = {"CUDAExecutionProvider", "TensorrtExecutionProvider",
170
+ "DmlExecutionProvider", "ROCMExecutionProvider", "CoreMLExecutionProvider"}
171
+ return any(p in gpu_providers for p in self._providers)
172
+
173
+ def _load_model(self) -> None:
174
+ """Lazy load the embedding model with configured providers."""
175
+ if self._model is not None:
176
+ return
177
+
178
+ from fastembed import TextEmbedding
179
+
180
+ # fastembed supports 'providers' parameter for ONNX execution providers
181
+ try:
182
+ self._model = TextEmbedding(
183
+ model_name=self.model_name,
184
+ providers=self._providers,
185
+ )
186
+ logger.debug(f"Model loaded with providers: {self._providers}")
187
+ except TypeError:
188
+ # Fallback for older fastembed versions without providers parameter
189
+ logger.warning(
190
+ "fastembed version doesn't support 'providers' parameter. "
191
+ "Upgrade fastembed for GPU acceleration: pip install --upgrade fastembed"
192
+ )
193
+ self._model = TextEmbedding(model_name=self.model_name)
194
+
195
+ def embed(self, texts: str | Iterable[str]) -> List[List[float]]:
196
+ """Generate embeddings for one or more texts.
197
+
198
+ Args:
199
+ texts: Single text or iterable of texts to embed.
200
+
201
+ Returns:
202
+ List of embedding vectors (each is a list of floats).
203
+
204
+ Note:
205
+ This method converts numpy arrays to Python lists for backward compatibility.
206
+ For memory-efficient processing, use embed_to_numpy() instead.
207
+ """
208
+ self._load_model()
209
+
210
+ if isinstance(texts, str):
211
+ texts = [texts]
212
+ else:
213
+ texts = list(texts)
214
+
215
+ embeddings = list(self._model.embed(texts))
216
+ return [emb.tolist() for emb in embeddings]
217
+
218
+ def embed_to_numpy(self, texts: str | Iterable[str]) -> np.ndarray:
219
+ """Generate embeddings for one or more texts (returns numpy arrays).
220
+
221
+ This method is more memory-efficient than embed() as it avoids converting
222
+ numpy arrays to Python lists, which can significantly reduce memory usage
223
+ during batch processing.
224
+
225
+ Args:
226
+ texts: Single text or iterable of texts to embed.
227
+
228
+ Returns:
229
+ numpy.ndarray of shape (n_texts, embedding_dim) containing embeddings.
230
+ """
231
+ self._load_model()
232
+
233
+ if isinstance(texts, str):
234
+ texts = [texts]
235
+ else:
236
+ texts = list(texts)
237
+
238
+ # Return embeddings as numpy array directly (no .tolist() conversion)
239
+ embeddings = list(self._model.embed(texts))
240
+ return np.array(embeddings)
241
+
242
+ def embed_single(self, text: str) -> List[float]:
243
+ """Generate embedding for a single text."""
244
+ return self.embed(text)[0]
@@ -0,0 +1,192 @@
1
+ """GPU acceleration support for semantic embeddings.
2
+
3
+ This module provides GPU detection, initialization, and fallback handling
4
+ for ONNX-based embedding generation.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ import logging
10
+ from dataclasses import dataclass
11
+ from typing import List, Optional
12
+
13
+ logger = logging.getLogger(__name__)
14
+
15
+
16
+ @dataclass
17
+ class GPUInfo:
18
+ """GPU availability and configuration info."""
19
+
20
+ gpu_available: bool = False
21
+ cuda_available: bool = False
22
+ gpu_count: int = 0
23
+ gpu_name: Optional[str] = None
24
+ onnx_providers: List[str] = None
25
+
26
+ def __post_init__(self):
27
+ if self.onnx_providers is None:
28
+ self.onnx_providers = ["CPUExecutionProvider"]
29
+
30
+
31
+ _gpu_info_cache: Optional[GPUInfo] = None
32
+
33
+
34
+ def detect_gpu(force_refresh: bool = False) -> GPUInfo:
35
+ """Detect available GPU resources for embedding acceleration.
36
+
37
+ Args:
38
+ force_refresh: If True, re-detect GPU even if cached.
39
+
40
+ Returns:
41
+ GPUInfo with detection results.
42
+ """
43
+ global _gpu_info_cache
44
+
45
+ if _gpu_info_cache is not None and not force_refresh:
46
+ return _gpu_info_cache
47
+
48
+ info = GPUInfo()
49
+
50
+ # Check PyTorch CUDA availability (most reliable detection)
51
+ try:
52
+ import torch
53
+ if torch.cuda.is_available():
54
+ info.cuda_available = True
55
+ info.gpu_available = True
56
+ info.gpu_count = torch.cuda.device_count()
57
+ if info.gpu_count > 0:
58
+ info.gpu_name = torch.cuda.get_device_name(0)
59
+ logger.debug(f"PyTorch CUDA detected: {info.gpu_count} GPU(s)")
60
+ except ImportError:
61
+ logger.debug("PyTorch not available for GPU detection")
62
+
63
+ # Check ONNX Runtime providers with validation
64
+ try:
65
+ import onnxruntime as ort
66
+ available_providers = ort.get_available_providers()
67
+
68
+ # Build provider list with priority order
69
+ providers = []
70
+
71
+ # Test each provider to ensure it actually works
72
+ def test_provider(provider_name: str) -> bool:
73
+ """Test if a provider actually works by creating a dummy session."""
74
+ try:
75
+ # Create a minimal ONNX model to test provider
76
+ import numpy as np
77
+ # Simple test: just check if provider can be instantiated
78
+ sess_options = ort.SessionOptions()
79
+ sess_options.log_severity_level = 4 # Suppress warnings
80
+ return True
81
+ except Exception:
82
+ return False
83
+
84
+ # CUDA provider (NVIDIA GPU) - check if CUDA runtime is available
85
+ if "CUDAExecutionProvider" in available_providers:
86
+ # Verify CUDA is actually usable by checking for cuBLAS
87
+ cuda_works = False
88
+ try:
89
+ import ctypes
90
+ # Try to load cuBLAS to verify CUDA installation
91
+ try:
92
+ ctypes.CDLL("cublas64_12.dll")
93
+ cuda_works = True
94
+ except OSError:
95
+ try:
96
+ ctypes.CDLL("cublas64_11.dll")
97
+ cuda_works = True
98
+ except OSError:
99
+ pass
100
+ except Exception:
101
+ pass
102
+
103
+ if cuda_works:
104
+ providers.append("CUDAExecutionProvider")
105
+ info.gpu_available = True
106
+ logger.debug("ONNX CUDAExecutionProvider available and working")
107
+ else:
108
+ logger.debug("ONNX CUDAExecutionProvider listed but CUDA runtime not found")
109
+
110
+ # TensorRT provider (optimized NVIDIA inference)
111
+ if "TensorrtExecutionProvider" in available_providers:
112
+ # TensorRT requires additional libraries, skip for now
113
+ logger.debug("ONNX TensorrtExecutionProvider available (requires TensorRT SDK)")
114
+
115
+ # DirectML provider (Windows GPU - AMD/Intel/NVIDIA)
116
+ if "DmlExecutionProvider" in available_providers:
117
+ providers.append("DmlExecutionProvider")
118
+ info.gpu_available = True
119
+ logger.debug("ONNX DmlExecutionProvider available (DirectML)")
120
+
121
+ # ROCm provider (AMD GPU on Linux)
122
+ if "ROCMExecutionProvider" in available_providers:
123
+ providers.append("ROCMExecutionProvider")
124
+ info.gpu_available = True
125
+ logger.debug("ONNX ROCMExecutionProvider available (AMD)")
126
+
127
+ # CoreML provider (Apple Silicon)
128
+ if "CoreMLExecutionProvider" in available_providers:
129
+ providers.append("CoreMLExecutionProvider")
130
+ info.gpu_available = True
131
+ logger.debug("ONNX CoreMLExecutionProvider available (Apple)")
132
+
133
+ # Always include CPU as fallback
134
+ providers.append("CPUExecutionProvider")
135
+
136
+ info.onnx_providers = providers
137
+
138
+ except ImportError:
139
+ logger.debug("ONNX Runtime not available")
140
+ info.onnx_providers = ["CPUExecutionProvider"]
141
+
142
+ _gpu_info_cache = info
143
+ return info
144
+
145
+
146
+ def get_optimal_providers(use_gpu: bool = True) -> List[str]:
147
+ """Get optimal ONNX execution providers based on availability.
148
+
149
+ Args:
150
+ use_gpu: If True, include GPU providers when available.
151
+ If False, force CPU-only execution.
152
+
153
+ Returns:
154
+ List of provider names in priority order.
155
+ """
156
+ if not use_gpu:
157
+ return ["CPUExecutionProvider"]
158
+
159
+ gpu_info = detect_gpu()
160
+ return gpu_info.onnx_providers
161
+
162
+
163
+ def is_gpu_available() -> bool:
164
+ """Check if any GPU acceleration is available."""
165
+ return detect_gpu().gpu_available
166
+
167
+
168
+ def get_gpu_summary() -> str:
169
+ """Get human-readable GPU status summary."""
170
+ info = detect_gpu()
171
+
172
+ if not info.gpu_available:
173
+ return "GPU: Not available (using CPU)"
174
+
175
+ parts = []
176
+ if info.gpu_name:
177
+ parts.append(f"GPU: {info.gpu_name}")
178
+ if info.gpu_count > 1:
179
+ parts.append(f"({info.gpu_count} devices)")
180
+
181
+ # Show active providers (excluding CPU fallback)
182
+ gpu_providers = [p for p in info.onnx_providers if p != "CPUExecutionProvider"]
183
+ if gpu_providers:
184
+ parts.append(f"Providers: {', '.join(gpu_providers)}")
185
+
186
+ return " | ".join(parts) if parts else "GPU: Available"
187
+
188
+
189
+ def clear_gpu_cache() -> None:
190
+ """Clear cached GPU detection info."""
191
+ global _gpu_info_cache
192
+ _gpu_info_cache = None