claude-code-workflow 6.2.2 → 6.2.4

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 (346) hide show
  1. package/ccw/dist/cli.d.ts +2 -0
  2. package/ccw/dist/cli.d.ts.map +1 -0
  3. package/ccw/dist/cli.js +219 -0
  4. package/ccw/dist/cli.js.map +1 -0
  5. package/ccw/dist/commands/cli.d.ts +32 -0
  6. package/ccw/dist/commands/cli.d.ts.map +1 -0
  7. package/ccw/dist/commands/cli.js +619 -0
  8. package/ccw/dist/commands/cli.js.map +1 -0
  9. package/ccw/dist/commands/core-memory.d.ts +32 -0
  10. package/ccw/dist/commands/core-memory.d.ts.map +1 -0
  11. package/ccw/dist/commands/core-memory.js +640 -0
  12. package/ccw/dist/commands/core-memory.js.map +1 -0
  13. package/ccw/dist/commands/hook.d.ts +16 -0
  14. package/ccw/dist/commands/hook.d.ts.map +1 -0
  15. package/ccw/dist/commands/hook.js +276 -0
  16. package/ccw/dist/commands/hook.js.map +1 -0
  17. package/ccw/dist/commands/install.d.ts +12 -0
  18. package/ccw/dist/commands/install.d.ts.map +1 -0
  19. package/ccw/dist/commands/install.js +443 -0
  20. package/ccw/dist/commands/install.js.map +1 -0
  21. package/ccw/dist/commands/list.d.ts +5 -0
  22. package/ccw/dist/commands/list.d.ts.map +1 -0
  23. package/ccw/dist/commands/list.js +32 -0
  24. package/ccw/dist/commands/list.js.map +1 -0
  25. package/ccw/dist/commands/memory.d.ts +57 -0
  26. package/ccw/dist/commands/memory.d.ts.map +1 -0
  27. package/ccw/dist/commands/memory.js +890 -0
  28. package/ccw/dist/commands/memory.js.map +1 -0
  29. package/ccw/dist/commands/serve.d.ts +12 -0
  30. package/ccw/dist/commands/serve.d.ts.map +1 -0
  31. package/ccw/dist/commands/serve.js +63 -0
  32. package/ccw/dist/commands/serve.js.map +1 -0
  33. package/ccw/dist/commands/session-path-resolver.d.ts +45 -0
  34. package/ccw/dist/commands/session-path-resolver.d.ts.map +1 -0
  35. package/ccw/dist/commands/session-path-resolver.js +302 -0
  36. package/ccw/dist/commands/session-path-resolver.js.map +1 -0
  37. package/ccw/dist/commands/session.d.ts +12 -0
  38. package/ccw/dist/commands/session.d.ts.map +1 -0
  39. package/ccw/dist/commands/session.js +954 -0
  40. package/ccw/dist/commands/session.js.map +1 -0
  41. package/ccw/dist/commands/stop.d.ts +11 -0
  42. package/ccw/dist/commands/stop.d.ts.map +1 -0
  43. package/ccw/dist/commands/stop.js +96 -0
  44. package/ccw/dist/commands/stop.js.map +1 -0
  45. package/ccw/dist/commands/tool.d.ts +29 -0
  46. package/ccw/dist/commands/tool.d.ts.map +1 -0
  47. package/ccw/dist/commands/tool.js +173 -0
  48. package/ccw/dist/commands/tool.js.map +1 -0
  49. package/ccw/dist/commands/uninstall.d.ts +9 -0
  50. package/ccw/dist/commands/uninstall.d.ts.map +1 -0
  51. package/ccw/dist/commands/uninstall.js +239 -0
  52. package/ccw/dist/commands/uninstall.js.map +1 -0
  53. package/ccw/dist/commands/upgrade.d.ts +10 -0
  54. package/ccw/dist/commands/upgrade.d.ts.map +1 -0
  55. package/ccw/dist/commands/upgrade.js +288 -0
  56. package/ccw/dist/commands/upgrade.js.map +1 -0
  57. package/ccw/dist/commands/view.d.ts +14 -0
  58. package/ccw/dist/commands/view.d.ts.map +1 -0
  59. package/ccw/dist/commands/view.js +100 -0
  60. package/ccw/dist/commands/view.js.map +1 -0
  61. package/ccw/dist/config/storage-paths.d.ts +184 -0
  62. package/ccw/dist/config/storage-paths.d.ts.map +1 -0
  63. package/ccw/dist/config/storage-paths.js +536 -0
  64. package/ccw/dist/config/storage-paths.js.map +1 -0
  65. package/ccw/dist/core/cache-manager.d.ts +80 -0
  66. package/ccw/dist/core/cache-manager.d.ts.map +1 -0
  67. package/ccw/dist/core/cache-manager.js +260 -0
  68. package/ccw/dist/core/cache-manager.js.map +1 -0
  69. package/ccw/dist/core/claude-freshness.d.ts +53 -0
  70. package/ccw/dist/core/claude-freshness.d.ts.map +1 -0
  71. package/ccw/dist/core/claude-freshness.js +232 -0
  72. package/ccw/dist/core/claude-freshness.js.map +1 -0
  73. package/ccw/dist/core/core-memory-store.d.ts +320 -0
  74. package/ccw/dist/core/core-memory-store.d.ts.map +1 -0
  75. package/ccw/dist/core/core-memory-store.js +1177 -0
  76. package/ccw/dist/core/core-memory-store.js.map +1 -0
  77. package/ccw/dist/core/dashboard-generator-patch.d.ts +2 -0
  78. package/ccw/dist/core/dashboard-generator-patch.d.ts.map +1 -0
  79. package/ccw/dist/core/dashboard-generator-patch.js +48 -0
  80. package/ccw/dist/core/dashboard-generator-patch.js.map +1 -0
  81. package/ccw/dist/core/dashboard-generator.d.ts +8 -0
  82. package/ccw/dist/core/dashboard-generator.d.ts.map +1 -0
  83. package/ccw/dist/core/dashboard-generator.js +695 -0
  84. package/ccw/dist/core/dashboard-generator.js.map +1 -0
  85. package/ccw/dist/core/data-aggregator.d.ts +145 -0
  86. package/ccw/dist/core/data-aggregator.d.ts.map +1 -0
  87. package/ccw/dist/core/data-aggregator.js +416 -0
  88. package/ccw/dist/core/data-aggregator.js.map +1 -0
  89. package/ccw/dist/core/history-importer.d.ts +102 -0
  90. package/ccw/dist/core/history-importer.d.ts.map +1 -0
  91. package/ccw/dist/core/history-importer.js +493 -0
  92. package/ccw/dist/core/history-importer.js.map +1 -0
  93. package/ccw/dist/core/lite-scanner-complete.d.ts +81 -0
  94. package/ccw/dist/core/lite-scanner-complete.d.ts.map +1 -0
  95. package/ccw/dist/core/lite-scanner-complete.js +368 -0
  96. package/ccw/dist/core/lite-scanner-complete.js.map +1 -0
  97. package/ccw/dist/core/lite-scanner.d.ts +81 -0
  98. package/ccw/dist/core/lite-scanner.d.ts.map +1 -0
  99. package/ccw/dist/core/lite-scanner.js +368 -0
  100. package/ccw/dist/core/lite-scanner.js.map +1 -0
  101. package/ccw/dist/core/manifest.d.ts +88 -0
  102. package/ccw/dist/core/manifest.d.ts.map +1 -0
  103. package/ccw/dist/core/manifest.js +214 -0
  104. package/ccw/dist/core/manifest.js.map +1 -0
  105. package/ccw/dist/core/memory-embedder-bridge.d.ts +83 -0
  106. package/ccw/dist/core/memory-embedder-bridge.d.ts.map +1 -0
  107. package/ccw/dist/core/memory-embedder-bridge.js +181 -0
  108. package/ccw/dist/core/memory-embedder-bridge.js.map +1 -0
  109. package/ccw/dist/core/memory-store.d.ts +249 -0
  110. package/ccw/dist/core/memory-store.d.ts.map +1 -0
  111. package/ccw/dist/core/memory-store.js +781 -0
  112. package/ccw/dist/core/memory-store.js.map +1 -0
  113. package/ccw/dist/core/routes/ccw-routes.d.ts +20 -0
  114. package/ccw/dist/core/routes/ccw-routes.d.ts.map +1 -0
  115. package/ccw/dist/core/routes/ccw-routes.js +70 -0
  116. package/ccw/dist/core/routes/ccw-routes.js.map +1 -0
  117. package/ccw/dist/core/routes/claude-routes.d.ts +19 -0
  118. package/ccw/dist/core/routes/claude-routes.d.ts.map +1 -0
  119. package/ccw/dist/core/routes/claude-routes.js +1017 -0
  120. package/ccw/dist/core/routes/claude-routes.js.map +1 -0
  121. package/ccw/dist/core/routes/cli-routes.d.ts +20 -0
  122. package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -0
  123. package/ccw/dist/core/routes/cli-routes.js +468 -0
  124. package/ccw/dist/core/routes/cli-routes.js.map +1 -0
  125. package/ccw/dist/core/routes/codexlens-routes.d.ts +20 -0
  126. package/ccw/dist/core/routes/codexlens-routes.d.ts.map +1 -0
  127. package/ccw/dist/core/routes/codexlens-routes.js +754 -0
  128. package/ccw/dist/core/routes/codexlens-routes.js.map +1 -0
  129. package/ccw/dist/core/routes/core-memory-routes.d.ts +21 -0
  130. package/ccw/dist/core/routes/core-memory-routes.d.ts.map +1 -0
  131. package/ccw/dist/core/routes/core-memory-routes.js +520 -0
  132. package/ccw/dist/core/routes/core-memory-routes.js.map +1 -0
  133. package/ccw/dist/core/routes/files-routes.d.ts +20 -0
  134. package/ccw/dist/core/routes/files-routes.d.ts.map +1 -0
  135. package/ccw/dist/core/routes/files-routes.js +374 -0
  136. package/ccw/dist/core/routes/files-routes.js.map +1 -0
  137. package/ccw/dist/core/routes/graph-routes.d.ts +20 -0
  138. package/ccw/dist/core/routes/graph-routes.d.ts.map +1 -0
  139. package/ccw/dist/core/routes/graph-routes.js +517 -0
  140. package/ccw/dist/core/routes/graph-routes.js.map +1 -0
  141. package/ccw/dist/core/routes/help-routes.d.ts +20 -0
  142. package/ccw/dist/core/routes/help-routes.d.ts.map +1 -0
  143. package/ccw/dist/core/routes/help-routes.js +250 -0
  144. package/ccw/dist/core/routes/help-routes.js.map +1 -0
  145. package/ccw/dist/core/routes/hooks-routes.d.ts +21 -0
  146. package/ccw/dist/core/routes/hooks-routes.d.ts.map +1 -0
  147. package/ccw/dist/core/routes/hooks-routes.js +346 -0
  148. package/ccw/dist/core/routes/hooks-routes.js.map +1 -0
  149. package/ccw/dist/core/routes/mcp-routes.d.ts +20 -0
  150. package/ccw/dist/core/routes/mcp-routes.d.ts.map +1 -0
  151. package/ccw/dist/core/routes/mcp-routes.js +1129 -0
  152. package/ccw/dist/core/routes/mcp-routes.js.map +1 -0
  153. package/ccw/dist/core/routes/mcp-templates-db.d.ts +54 -0
  154. package/ccw/dist/core/routes/mcp-templates-db.d.ts.map +1 -0
  155. package/ccw/dist/core/routes/mcp-templates-db.js +226 -0
  156. package/ccw/dist/core/routes/mcp-templates-db.js.map +1 -0
  157. package/ccw/dist/core/routes/memory-routes.d.ts +21 -0
  158. package/ccw/dist/core/routes/memory-routes.d.ts.map +1 -0
  159. package/ccw/dist/core/routes/memory-routes.js +1095 -0
  160. package/ccw/dist/core/routes/memory-routes.js.map +1 -0
  161. package/ccw/dist/core/routes/rules-routes.d.ts +20 -0
  162. package/ccw/dist/core/routes/rules-routes.d.ts.map +1 -0
  163. package/ccw/dist/core/routes/rules-routes.js +442 -0
  164. package/ccw/dist/core/routes/rules-routes.js.map +1 -0
  165. package/ccw/dist/core/routes/session-routes.d.ts +20 -0
  166. package/ccw/dist/core/routes/session-routes.d.ts.map +1 -0
  167. package/ccw/dist/core/routes/session-routes.js +423 -0
  168. package/ccw/dist/core/routes/session-routes.js.map +1 -0
  169. package/ccw/dist/core/routes/skills-routes.d.ts +20 -0
  170. package/ccw/dist/core/routes/skills-routes.d.ts.map +1 -0
  171. package/ccw/dist/core/routes/skills-routes.js +533 -0
  172. package/ccw/dist/core/routes/skills-routes.js.map +1 -0
  173. package/ccw/dist/core/routes/status-routes.d.ts +20 -0
  174. package/ccw/dist/core/routes/status-routes.d.ts.map +1 -0
  175. package/ccw/dist/core/routes/status-routes.js +38 -0
  176. package/ccw/dist/core/routes/status-routes.js.map +1 -0
  177. package/ccw/dist/core/routes/system-routes.d.ts +22 -0
  178. package/ccw/dist/core/routes/system-routes.d.ts.map +1 -0
  179. package/ccw/dist/core/routes/system-routes.js +354 -0
  180. package/ccw/dist/core/routes/system-routes.js.map +1 -0
  181. package/ccw/dist/core/server.d.ts +17 -0
  182. package/ccw/dist/core/server.d.ts.map +1 -0
  183. package/ccw/dist/core/server.js +386 -0
  184. package/ccw/dist/core/server.js.map +1 -0
  185. package/ccw/dist/core/session-clustering-service.d.ts +153 -0
  186. package/ccw/dist/core/session-clustering-service.d.ts.map +1 -0
  187. package/ccw/dist/core/session-clustering-service.js +1065 -0
  188. package/ccw/dist/core/session-clustering-service.js.map +1 -0
  189. package/ccw/dist/core/session-scanner.d.ts +32 -0
  190. package/ccw/dist/core/session-scanner.d.ts.map +1 -0
  191. package/ccw/dist/core/session-scanner.js +253 -0
  192. package/ccw/dist/core/session-scanner.js.map +1 -0
  193. package/ccw/dist/core/websocket.d.ts +23 -0
  194. package/ccw/dist/core/websocket.d.ts.map +1 -0
  195. package/ccw/dist/core/websocket.js +168 -0
  196. package/ccw/dist/core/websocket.js.map +1 -0
  197. package/ccw/dist/index.d.ts +10 -0
  198. package/ccw/dist/index.d.ts.map +1 -0
  199. package/ccw/dist/index.js +10 -0
  200. package/ccw/dist/index.js.map +1 -0
  201. package/ccw/dist/mcp-server/index.d.ts +7 -0
  202. package/ccw/dist/mcp-server/index.d.ts.map +1 -0
  203. package/ccw/dist/mcp-server/index.js +157 -0
  204. package/ccw/dist/mcp-server/index.js.map +1 -0
  205. package/ccw/dist/tools/classify-folders.d.ts +26 -0
  206. package/ccw/dist/tools/classify-folders.d.ts.map +1 -0
  207. package/ccw/dist/tools/classify-folders.js +201 -0
  208. package/ccw/dist/tools/classify-folders.js.map +1 -0
  209. package/ccw/dist/tools/cli-config-manager.d.ts +62 -0
  210. package/ccw/dist/tools/cli-config-manager.d.ts.map +1 -0
  211. package/ccw/dist/tools/cli-config-manager.js +221 -0
  212. package/ccw/dist/tools/cli-config-manager.js.map +1 -0
  213. package/ccw/dist/tools/cli-executor.d.ts +373 -0
  214. package/ccw/dist/tools/cli-executor.d.ts.map +1 -0
  215. package/ccw/dist/tools/cli-executor.js +1625 -0
  216. package/ccw/dist/tools/cli-executor.js.map +1 -0
  217. package/ccw/dist/tools/cli-history-store.d.ts +330 -0
  218. package/ccw/dist/tools/cli-history-store.d.ts.map +1 -0
  219. package/ccw/dist/tools/cli-history-store.js +916 -0
  220. package/ccw/dist/tools/cli-history-store.js.map +1 -0
  221. package/ccw/dist/tools/codex-lens.d.ts +118 -0
  222. package/ccw/dist/tools/codex-lens.d.ts.map +1 -0
  223. package/ccw/dist/tools/codex-lens.js +962 -0
  224. package/ccw/dist/tools/codex-lens.js.map +1 -0
  225. package/ccw/dist/tools/convert-tokens-to-css.d.ts +14 -0
  226. package/ccw/dist/tools/convert-tokens-to-css.d.ts.map +1 -0
  227. package/ccw/dist/tools/convert-tokens-to-css.js +244 -0
  228. package/ccw/dist/tools/convert-tokens-to-css.js.map +1 -0
  229. package/ccw/dist/tools/core-memory.d.ts +66 -0
  230. package/ccw/dist/tools/core-memory.d.ts.map +1 -0
  231. package/ccw/dist/tools/core-memory.js +324 -0
  232. package/ccw/dist/tools/core-memory.js.map +1 -0
  233. package/ccw/dist/tools/detect-changed-modules.d.ts +24 -0
  234. package/ccw/dist/tools/detect-changed-modules.d.ts.map +1 -0
  235. package/ccw/dist/tools/detect-changed-modules.js +277 -0
  236. package/ccw/dist/tools/detect-changed-modules.js.map +1 -0
  237. package/ccw/dist/tools/discover-design-files.d.ts +36 -0
  238. package/ccw/dist/tools/discover-design-files.d.ts.map +1 -0
  239. package/ccw/dist/tools/discover-design-files.js +147 -0
  240. package/ccw/dist/tools/discover-design-files.js.map +1 -0
  241. package/ccw/dist/tools/edit-file.d.ts +28 -0
  242. package/ccw/dist/tools/edit-file.d.ts.map +1 -0
  243. package/ccw/dist/tools/edit-file.js +479 -0
  244. package/ccw/dist/tools/edit-file.js.map +1 -0
  245. package/ccw/dist/tools/generate-module-docs.d.ts +22 -0
  246. package/ccw/dist/tools/generate-module-docs.d.ts.map +1 -0
  247. package/ccw/dist/tools/generate-module-docs.js +379 -0
  248. package/ccw/dist/tools/generate-module-docs.js.map +1 -0
  249. package/ccw/dist/tools/get-modules-by-depth.d.ts +15 -0
  250. package/ccw/dist/tools/get-modules-by-depth.d.ts.map +1 -0
  251. package/ccw/dist/tools/get-modules-by-depth.js +296 -0
  252. package/ccw/dist/tools/get-modules-by-depth.js.map +1 -0
  253. package/ccw/dist/tools/index.d.ts +55 -0
  254. package/ccw/dist/tools/index.d.ts.map +1 -0
  255. package/ccw/dist/tools/index.js +304 -0
  256. package/ccw/dist/tools/index.js.map +1 -0
  257. package/ccw/dist/tools/native-session-discovery.d.ts +97 -0
  258. package/ccw/dist/tools/native-session-discovery.d.ts.map +1 -0
  259. package/ccw/dist/tools/native-session-discovery.js +700 -0
  260. package/ccw/dist/tools/native-session-discovery.js.map +1 -0
  261. package/ccw/dist/tools/notifier.d.ts +50 -0
  262. package/ccw/dist/tools/notifier.d.ts.map +1 -0
  263. package/ccw/dist/tools/notifier.js +90 -0
  264. package/ccw/dist/tools/notifier.js.map +1 -0
  265. package/ccw/dist/tools/read-file.d.ts +32 -0
  266. package/ccw/dist/tools/read-file.d.ts.map +1 -0
  267. package/ccw/dist/tools/read-file.js +329 -0
  268. package/ccw/dist/tools/read-file.js.map +1 -0
  269. package/ccw/dist/tools/resume-strategy.d.ts +48 -0
  270. package/ccw/dist/tools/resume-strategy.d.ts.map +1 -0
  271. package/ccw/dist/tools/resume-strategy.js +248 -0
  272. package/ccw/dist/tools/resume-strategy.js.map +1 -0
  273. package/ccw/dist/tools/session-content-parser.d.ts +58 -0
  274. package/ccw/dist/tools/session-content-parser.d.ts.map +1 -0
  275. package/ccw/dist/tools/session-content-parser.js +420 -0
  276. package/ccw/dist/tools/session-content-parser.js.map +1 -0
  277. package/ccw/dist/tools/session-manager.d.ts +9 -0
  278. package/ccw/dist/tools/session-manager.d.ts.map +1 -0
  279. package/ccw/dist/tools/session-manager.js +834 -0
  280. package/ccw/dist/tools/session-manager.js.map +1 -0
  281. package/ccw/dist/tools/smart-context.d.ts +35 -0
  282. package/ccw/dist/tools/smart-context.d.ts.map +1 -0
  283. package/ccw/dist/tools/smart-context.js +182 -0
  284. package/ccw/dist/tools/smart-context.js.map +1 -0
  285. package/ccw/dist/tools/smart-search.d.ts +105 -0
  286. package/ccw/dist/tools/smart-search.d.ts.map +1 -0
  287. package/ccw/dist/tools/smart-search.js +1753 -0
  288. package/ccw/dist/tools/smart-search.js.map +1 -0
  289. package/ccw/dist/tools/storage-manager.d.ts +114 -0
  290. package/ccw/dist/tools/storage-manager.d.ts.map +1 -0
  291. package/ccw/dist/tools/storage-manager.js +392 -0
  292. package/ccw/dist/tools/storage-manager.js.map +1 -0
  293. package/ccw/dist/tools/ui-generate-preview.d.ts +39 -0
  294. package/ccw/dist/tools/ui-generate-preview.d.ts.map +1 -0
  295. package/ccw/dist/tools/ui-generate-preview.js +300 -0
  296. package/ccw/dist/tools/ui-generate-preview.js.map +1 -0
  297. package/ccw/dist/tools/ui-instantiate-prototypes.d.ts +75 -0
  298. package/ccw/dist/tools/ui-instantiate-prototypes.d.ts.map +1 -0
  299. package/ccw/dist/tools/ui-instantiate-prototypes.js +256 -0
  300. package/ccw/dist/tools/ui-instantiate-prototypes.js.map +1 -0
  301. package/ccw/dist/tools/update-module-claude.d.ts +80 -0
  302. package/ccw/dist/tools/update-module-claude.d.ts.map +1 -0
  303. package/ccw/dist/tools/update-module-claude.js +351 -0
  304. package/ccw/dist/tools/update-module-claude.js.map +1 -0
  305. package/ccw/dist/tools/write-file.d.ts +19 -0
  306. package/ccw/dist/tools/write-file.d.ts.map +1 -0
  307. package/ccw/dist/tools/write-file.js +193 -0
  308. package/ccw/dist/tools/write-file.js.map +1 -0
  309. package/ccw/dist/types/config.d.ts +11 -0
  310. package/ccw/dist/types/config.d.ts.map +1 -0
  311. package/ccw/dist/types/config.js +2 -0
  312. package/ccw/dist/types/config.js.map +1 -0
  313. package/ccw/dist/types/index.d.ts +4 -0
  314. package/ccw/dist/types/index.d.ts.map +1 -0
  315. package/ccw/dist/types/index.js +4 -0
  316. package/ccw/dist/types/index.js.map +1 -0
  317. package/ccw/dist/types/session.d.ts +20 -0
  318. package/ccw/dist/types/session.d.ts.map +1 -0
  319. package/ccw/dist/types/session.js +2 -0
  320. package/ccw/dist/types/session.js.map +1 -0
  321. package/ccw/dist/types/tool.d.ts +36 -0
  322. package/ccw/dist/types/tool.d.ts.map +1 -0
  323. package/ccw/dist/types/tool.js +11 -0
  324. package/ccw/dist/types/tool.js.map +1 -0
  325. package/ccw/dist/utils/browser-launcher.d.ts +13 -0
  326. package/ccw/dist/utils/browser-launcher.d.ts.map +1 -0
  327. package/ccw/dist/utils/browser-launcher.js +60 -0
  328. package/ccw/dist/utils/browser-launcher.js.map +1 -0
  329. package/ccw/dist/utils/file-utils.d.ts +25 -0
  330. package/ccw/dist/utils/file-utils.d.ts.map +1 -0
  331. package/ccw/dist/utils/file-utils.js +48 -0
  332. package/ccw/dist/utils/file-utils.js.map +1 -0
  333. package/ccw/dist/utils/path-resolver.d.ts +80 -0
  334. package/ccw/dist/utils/path-resolver.d.ts.map +1 -0
  335. package/ccw/dist/utils/path-resolver.js +260 -0
  336. package/ccw/dist/utils/path-resolver.js.map +1 -0
  337. package/ccw/dist/utils/path-validator.d.ts +49 -0
  338. package/ccw/dist/utils/path-validator.d.ts.map +1 -0
  339. package/ccw/dist/utils/path-validator.js +123 -0
  340. package/ccw/dist/utils/path-validator.js.map +1 -0
  341. package/ccw/dist/utils/ui.d.ts +62 -0
  342. package/ccw/dist/utils/ui.d.ts.map +1 -0
  343. package/ccw/dist/utils/ui.js +129 -0
  344. package/ccw/dist/utils/ui.js.map +1 -0
  345. package/ccw/package.json +1 -1
  346. package/package.json +5 -2
@@ -0,0 +1,479 @@
1
+ /**
2
+ * Edit File Tool - AI-focused file editing
3
+ * Two complementary modes:
4
+ * - update: Content-driven text replacement (AI primary use)
5
+ * - line: Position-driven line operations (precise control)
6
+ *
7
+ * Features:
8
+ * - dryRun mode for previewing changes
9
+ * - Git-style diff output
10
+ * - Multi-edit support in update mode
11
+ * - Auto line-ending adaptation (CRLF/LF)
12
+ */
13
+ import { z } from 'zod';
14
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';
15
+ import { dirname } from 'path';
16
+ import { validatePath } from '../utils/path-validator.js';
17
+ // Define Zod schemas for validation
18
+ const EditItemSchema = z.object({
19
+ oldText: z.string(),
20
+ newText: z.string(),
21
+ });
22
+ const ParamsSchema = z.object({
23
+ path: z.string().min(1, 'Path is required'),
24
+ mode: z.enum(['update', 'line']).default('update'),
25
+ dryRun: z.boolean().default(false),
26
+ // Update mode params
27
+ oldText: z.string().optional(),
28
+ newText: z.string().optional(),
29
+ edits: z.array(EditItemSchema).optional(),
30
+ replaceAll: z.boolean().optional(),
31
+ // Line mode params
32
+ operation: z.enum(['insert_before', 'insert_after', 'replace', 'delete']).optional(),
33
+ line: z.number().optional(),
34
+ end_line: z.number().optional(),
35
+ text: z.string().optional(),
36
+ });
37
+ // Max lines to show in diff preview
38
+ const MAX_DIFF_LINES = 15;
39
+ // Internal type for mode results (content excluded in final output)
40
+ /**
41
+ * Resolve file path and read content
42
+ * @param filePath - Path to file
43
+ * @returns Resolved path and content
44
+ */
45
+ async function readFile(filePath) {
46
+ const resolvedPath = await validatePath(filePath, { mustExist: true });
47
+ if (!existsSync(resolvedPath)) {
48
+ throw new Error(`File not found: ${resolvedPath}`);
49
+ }
50
+ try {
51
+ const content = readFileSync(resolvedPath, 'utf8');
52
+ return { resolvedPath, content };
53
+ }
54
+ catch (error) {
55
+ throw new Error(`Failed to read file: ${error.message}`);
56
+ }
57
+ }
58
+ /**
59
+ * Write content to file with optional parent directory creation
60
+ * @param filePath - Path to file
61
+ * @param content - Content to write
62
+ * @param createDirs - Create parent directories if needed
63
+ */
64
+ function writeFile(filePath, content, createDirs = false) {
65
+ try {
66
+ if (createDirs) {
67
+ const dir = dirname(filePath);
68
+ if (!existsSync(dir)) {
69
+ mkdirSync(dir, { recursive: true });
70
+ }
71
+ }
72
+ writeFileSync(filePath, content, 'utf8');
73
+ }
74
+ catch (error) {
75
+ throw new Error(`Failed to write file: ${error.message}`);
76
+ }
77
+ }
78
+ /**
79
+ * Normalize line endings to LF
80
+ * @param text - Input text
81
+ * @returns Text with LF line endings
82
+ */
83
+ function normalizeLineEndings(text) {
84
+ return text.replace(/\r\n/g, '\n');
85
+ }
86
+ /**
87
+ * Create unified diff between two strings
88
+ * @param original - Original content
89
+ * @param modified - Modified content
90
+ * @param filePath - File path for diff header
91
+ * @returns Unified diff string
92
+ */
93
+ function createUnifiedDiff(original, modified, filePath) {
94
+ const origLines = normalizeLineEndings(original).split('\n');
95
+ const modLines = normalizeLineEndings(modified).split('\n');
96
+ const diffLines = [`--- a/${filePath}`, `+++ b/${filePath}`];
97
+ // Simple diff algorithm - find changes
98
+ let i = 0, j = 0;
99
+ let hunk = [];
100
+ let origStart = 0;
101
+ let modStart = 0;
102
+ while (i < origLines.length || j < modLines.length) {
103
+ if (i < origLines.length && j < modLines.length && origLines[i] === modLines[j]) {
104
+ // Context line
105
+ if (hunk.length > 0) {
106
+ hunk.push(` ${origLines[i]}`);
107
+ }
108
+ i++;
109
+ j++;
110
+ }
111
+ else {
112
+ // Start or continue hunk
113
+ if (hunk.length === 0) {
114
+ origStart = i + 1;
115
+ modStart = j + 1;
116
+ // Add context before
117
+ const contextStart = Math.max(0, i - 3);
118
+ for (let c = contextStart; c < i; c++) {
119
+ hunk.push(` ${origLines[c]}`);
120
+ }
121
+ origStart = contextStart + 1;
122
+ modStart = contextStart + 1;
123
+ }
124
+ // Find where lines match again
125
+ let foundMatch = false;
126
+ for (let lookAhead = 1; lookAhead <= 10; lookAhead++) {
127
+ if (i + lookAhead < origLines.length &&
128
+ j < modLines.length &&
129
+ origLines[i + lookAhead] === modLines[j]) {
130
+ // Remove lines from original
131
+ for (let r = 0; r < lookAhead; r++) {
132
+ hunk.push(`-${origLines[i + r]}`);
133
+ }
134
+ i += lookAhead;
135
+ foundMatch = true;
136
+ break;
137
+ }
138
+ if (j + lookAhead < modLines.length &&
139
+ i < origLines.length &&
140
+ modLines[j + lookAhead] === origLines[i]) {
141
+ // Add lines to modified
142
+ for (let a = 0; a < lookAhead; a++) {
143
+ hunk.push(`+${modLines[j + a]}`);
144
+ }
145
+ j += lookAhead;
146
+ foundMatch = true;
147
+ break;
148
+ }
149
+ }
150
+ if (!foundMatch) {
151
+ // Replace line
152
+ if (i < origLines.length) {
153
+ hunk.push(`-${origLines[i]}`);
154
+ i++;
155
+ }
156
+ if (j < modLines.length) {
157
+ hunk.push(`+${modLines[j]}`);
158
+ j++;
159
+ }
160
+ }
161
+ }
162
+ // Flush hunk if we've had 3 context lines after changes
163
+ const lastChangeIdx = hunk.findLastIndex((l) => l.startsWith('+') || l.startsWith('-'));
164
+ if (lastChangeIdx >= 0 && hunk.length - lastChangeIdx > 3) {
165
+ const origCount = hunk.filter((l) => !l.startsWith('+')).length;
166
+ const modCount = hunk.filter((l) => !l.startsWith('-')).length;
167
+ diffLines.push(`@@ -${origStart},${origCount} +${modStart},${modCount} @@`);
168
+ diffLines.push(...hunk);
169
+ hunk = [];
170
+ }
171
+ }
172
+ // Flush remaining hunk
173
+ if (hunk.length > 0) {
174
+ const origCount = hunk.filter((l) => !l.startsWith('+')).length;
175
+ const modCount = hunk.filter((l) => !l.startsWith('-')).length;
176
+ diffLines.push(`@@ -${origStart},${origCount} +${modStart},${modCount} @@`);
177
+ diffLines.push(...hunk);
178
+ }
179
+ return diffLines.length > 2 ? diffLines.join('\n') : '';
180
+ }
181
+ /**
182
+ * Mode: update - Simple text replacement
183
+ * Auto-adapts line endings (CRLF/LF)
184
+ * Supports multiple edits via 'edits' array
185
+ */
186
+ function executeUpdateMode(content, params, filePath) {
187
+ const { oldText, newText, replaceAll, edits, dryRun = false } = params;
188
+ // Detect original line ending
189
+ const hasCRLF = content.includes('\r\n');
190
+ const normalizedContent = normalizeLineEndings(content);
191
+ const originalContent = normalizedContent;
192
+ let newContent = normalizedContent;
193
+ let replacements = 0;
194
+ const editResults = [];
195
+ // Support multiple edits via 'edits' array
196
+ const editOperations = edits || (oldText !== undefined ? [{ oldText, newText: newText || '' }] : []);
197
+ if (editOperations.length === 0) {
198
+ throw new Error('Either "oldText/newText" or "edits" array is required for update mode');
199
+ }
200
+ for (const edit of editOperations) {
201
+ const normalizedOld = normalizeLineEndings(edit.oldText || '');
202
+ const normalizedNew = normalizeLineEndings(edit.newText || '');
203
+ if (!normalizedOld) {
204
+ editResults.push({ status: 'error', message: 'Empty oldText' });
205
+ continue;
206
+ }
207
+ if (newContent.includes(normalizedOld)) {
208
+ if (replaceAll) {
209
+ const parts = newContent.split(normalizedOld);
210
+ const count = parts.length - 1;
211
+ newContent = parts.join(normalizedNew);
212
+ replacements += count;
213
+ editResults.push({ status: 'replaced_all', count });
214
+ }
215
+ else {
216
+ newContent = newContent.replace(normalizedOld, normalizedNew);
217
+ replacements += 1;
218
+ editResults.push({ status: 'replaced', count: 1 });
219
+ }
220
+ }
221
+ else {
222
+ // Try fuzzy match (trimmed whitespace)
223
+ const lines = newContent.split('\n');
224
+ const oldLines = normalizedOld.split('\n');
225
+ let matchFound = false;
226
+ for (let i = 0; i <= lines.length - oldLines.length; i++) {
227
+ const potentialMatch = lines.slice(i, i + oldLines.length);
228
+ const isMatch = oldLines.every((oldLine, j) => oldLine.trim() === potentialMatch[j].trim());
229
+ if (isMatch) {
230
+ // Preserve indentation of first line
231
+ const indent = lines[i].match(/^\s*/)?.[0] || '';
232
+ const newLines = normalizedNew.split('\n').map((line, j) => {
233
+ if (j === 0)
234
+ return indent + line.trimStart();
235
+ return line;
236
+ });
237
+ lines.splice(i, oldLines.length, ...newLines);
238
+ newContent = lines.join('\n');
239
+ replacements += 1;
240
+ editResults.push({ status: 'replaced_fuzzy', count: 1 });
241
+ matchFound = true;
242
+ break;
243
+ }
244
+ }
245
+ if (!matchFound) {
246
+ editResults.push({ status: 'not_found', oldText: normalizedOld.substring(0, 50) });
247
+ }
248
+ }
249
+ }
250
+ // Restore original line ending
251
+ if (hasCRLF) {
252
+ newContent = newContent.replace(/\n/g, '\r\n');
253
+ }
254
+ // Generate diff if content changed
255
+ let diff = '';
256
+ if (originalContent !== normalizeLineEndings(newContent)) {
257
+ diff = createUnifiedDiff(originalContent, normalizeLineEndings(newContent), filePath);
258
+ }
259
+ return {
260
+ content: newContent,
261
+ modified: content !== newContent,
262
+ status: replacements > 0 ? 'replaced' : 'not found',
263
+ replacements,
264
+ editResults,
265
+ diff,
266
+ dryRun,
267
+ message: replacements > 0
268
+ ? `${replacements} replacement(s) made${dryRun ? ' (dry run)' : ''}`
269
+ : 'No matches found',
270
+ };
271
+ }
272
+ /**
273
+ * Mode: line - Line-based operations
274
+ * Operations: insert_before, insert_after, replace, delete
275
+ */
276
+ function executeLineMode(content, params) {
277
+ const { operation, line, text, end_line } = params;
278
+ if (!operation)
279
+ throw new Error('Parameter "operation" is required for line mode');
280
+ if (line === undefined)
281
+ throw new Error('Parameter "line" is required for line mode');
282
+ // Detect original line ending and normalize for processing
283
+ const hasCRLF = content.includes('\r\n');
284
+ const normalizedContent = hasCRLF ? content.replace(/\r\n/g, '\n') : content;
285
+ const lines = normalizedContent.split('\n');
286
+ const lineIndex = line - 1; // Convert to 0-based
287
+ if (lineIndex < 0 || lineIndex >= lines.length) {
288
+ throw new Error(`Line ${line} out of range (1-${lines.length})`);
289
+ }
290
+ const newLines = [...lines];
291
+ let message = '';
292
+ switch (operation) {
293
+ case 'insert_before':
294
+ if (text === undefined)
295
+ throw new Error('Parameter "text" is required for insert_before');
296
+ newLines.splice(lineIndex, 0, text);
297
+ message = `Inserted before line ${line}`;
298
+ break;
299
+ case 'insert_after':
300
+ if (text === undefined)
301
+ throw new Error('Parameter "text" is required for insert_after');
302
+ newLines.splice(lineIndex + 1, 0, text);
303
+ message = `Inserted after line ${line}`;
304
+ break;
305
+ case 'replace': {
306
+ if (text === undefined)
307
+ throw new Error('Parameter "text" is required for replace');
308
+ const endIdx = end_line ? end_line - 1 : lineIndex;
309
+ if (endIdx < lineIndex || endIdx >= lines.length) {
310
+ throw new Error(`end_line ${end_line} is invalid`);
311
+ }
312
+ const deleteCount = endIdx - lineIndex + 1;
313
+ newLines.splice(lineIndex, deleteCount, text);
314
+ message = end_line ? `Replaced lines ${line}-${end_line}` : `Replaced line ${line}`;
315
+ break;
316
+ }
317
+ case 'delete': {
318
+ const endDelete = end_line ? end_line - 1 : lineIndex;
319
+ if (endDelete < lineIndex || endDelete >= lines.length) {
320
+ throw new Error(`end_line ${end_line} is invalid`);
321
+ }
322
+ const count = endDelete - lineIndex + 1;
323
+ newLines.splice(lineIndex, count);
324
+ message = end_line ? `Deleted lines ${line}-${end_line}` : `Deleted line ${line}`;
325
+ break;
326
+ }
327
+ default:
328
+ throw new Error(`Unknown operation: ${operation}. Valid: insert_before, insert_after, replace, delete`);
329
+ }
330
+ let newContent = newLines.join('\n');
331
+ // Restore original line endings
332
+ if (hasCRLF) {
333
+ newContent = newContent.replace(/\n/g, '\r\n');
334
+ }
335
+ return {
336
+ content: newContent,
337
+ modified: content !== newContent,
338
+ operation,
339
+ line,
340
+ end_line,
341
+ message,
342
+ };
343
+ }
344
+ // Tool schema for MCP
345
+ export const schema = {
346
+ name: 'edit_file',
347
+ description: `Edit file using two modes: "update" for text replacement (default) and "line" for line-based operations.
348
+
349
+ Usage (update mode):
350
+ edit_file(path="f.js", oldText="old", newText="new")
351
+ edit_file(path="f.js", edits=[{oldText:"a",newText:"b"},{oldText:"c",newText:"d"}])
352
+
353
+ Usage (line mode):
354
+ edit_file(path="f.js", mode="line", operation="insert_after", line=10, text="new line")
355
+ edit_file(path="f.js", mode="line", operation="delete", line=5, end_line=8)
356
+
357
+ Options: dryRun=true (preview diff), replaceAll=true (update mode only)`,
358
+ inputSchema: {
359
+ type: 'object',
360
+ properties: {
361
+ path: {
362
+ type: 'string',
363
+ description: 'Path to the file to modify',
364
+ },
365
+ mode: {
366
+ type: 'string',
367
+ enum: ['update', 'line'],
368
+ description: 'Edit mode (default: update)',
369
+ default: 'update',
370
+ },
371
+ dryRun: {
372
+ type: 'boolean',
373
+ description: 'Preview changes using git-style diff without modifying file (default: false)',
374
+ default: false,
375
+ },
376
+ // Update mode params
377
+ oldText: {
378
+ type: 'string',
379
+ description: '[update mode] Text to find and replace (use oldText/newText OR edits array)',
380
+ },
381
+ newText: {
382
+ type: 'string',
383
+ description: '[update mode] Replacement text',
384
+ },
385
+ edits: {
386
+ type: 'array',
387
+ description: '[update mode] Array of {oldText, newText} for multiple replacements',
388
+ items: {
389
+ type: 'object',
390
+ properties: {
391
+ oldText: { type: 'string', description: 'Text to search for - must match exactly' },
392
+ newText: { type: 'string', description: 'Text to replace with' },
393
+ },
394
+ required: ['oldText', 'newText'],
395
+ },
396
+ },
397
+ replaceAll: {
398
+ type: 'boolean',
399
+ description: '[update mode] Replace all occurrences of oldText (default: false)',
400
+ },
401
+ // Line mode params
402
+ operation: {
403
+ type: 'string',
404
+ enum: ['insert_before', 'insert_after', 'replace', 'delete'],
405
+ description: '[line mode] Line operation type',
406
+ },
407
+ line: {
408
+ type: 'number',
409
+ description: '[line mode] Line number (1-based)',
410
+ },
411
+ end_line: {
412
+ type: 'number',
413
+ description: '[line mode] End line for range operations',
414
+ },
415
+ text: {
416
+ type: 'string',
417
+ description: '[line mode] Text for insert/replace operations',
418
+ },
419
+ },
420
+ required: ['path'],
421
+ },
422
+ };
423
+ /**
424
+ * Truncate diff to max lines with indicator
425
+ */
426
+ function truncateDiff(diff, maxLines) {
427
+ if (!diff)
428
+ return '';
429
+ const lines = diff.split('\n');
430
+ if (lines.length <= maxLines)
431
+ return diff;
432
+ return lines.slice(0, maxLines).join('\n') + `\n... (+${lines.length - maxLines} more lines)`;
433
+ }
434
+ // Handler function
435
+ export async function handler(params) {
436
+ const parsed = ParamsSchema.safeParse(params);
437
+ if (!parsed.success) {
438
+ return { success: false, error: `Invalid params: ${parsed.error.message}` };
439
+ }
440
+ const { path: filePath, mode = 'update', dryRun = false } = parsed.data;
441
+ try {
442
+ const { resolvedPath, content } = await readFile(filePath);
443
+ let result;
444
+ switch (mode) {
445
+ case 'update':
446
+ result = executeUpdateMode(content, parsed.data, filePath);
447
+ break;
448
+ case 'line':
449
+ result = executeLineMode(content, parsed.data);
450
+ break;
451
+ default:
452
+ throw new Error(`Unknown mode: ${mode}. Valid modes: update, line`);
453
+ }
454
+ // Write if modified and not dry run
455
+ if (result.modified && !dryRun) {
456
+ writeFile(resolvedPath, result.content);
457
+ }
458
+ // Build compact result
459
+ const compactResult = {
460
+ path: resolvedPath,
461
+ modified: result.modified,
462
+ message: result.message,
463
+ };
464
+ // Add mode-specific fields
465
+ if ('replacements' in result) {
466
+ compactResult.replacements = result.replacements;
467
+ compactResult.dryRun = result.dryRun;
468
+ // Truncate diff for compact output
469
+ if (result.diff) {
470
+ compactResult.diff = truncateDiff(result.diff, MAX_DIFF_LINES);
471
+ }
472
+ }
473
+ return { success: true, result: compactResult };
474
+ }
475
+ catch (error) {
476
+ return { success: false, error: error.message };
477
+ }
478
+ }
479
+ //# sourceMappingURL=edit-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-file.js","sourceRoot":"","sources":["../../src/tools/edit-file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Generate Module Docs Tool
3
+ * Generate documentation for modules and projects with multiple strategies
4
+ */
5
+ import type { ToolSchema, ToolResult } from '../types/tool.js';
6
+ interface ToolOutput {
7
+ success: boolean;
8
+ strategy: string;
9
+ source_path: string;
10
+ project_name: string;
11
+ output_path?: string;
12
+ folder_type?: 'code' | 'navigation';
13
+ tool: string;
14
+ model?: string;
15
+ duration_seconds?: number;
16
+ message?: string;
17
+ error?: string;
18
+ }
19
+ export declare const schema: ToolSchema;
20
+ export declare function handler(params: Record<string, unknown>): Promise<ToolResult<ToolOutput>>;
21
+ export {};
22
+ //# sourceMappingURL=generate-module-docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-module-docs.d.ts","sourceRoot":"","sources":["../../src/tools/generate-module-docs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAwC/D,UAAU,UAAU;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkJD,eAAO,MAAM,MAAM,EAAE,UA2CpB,CAAC;AAGF,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CA2L9F"}