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,517 @@
1
+ import { homedir } from 'os';
2
+ import { join, resolve, normalize } from 'path';
3
+ import { existsSync, readdirSync } from 'fs';
4
+ import Database from 'better-sqlite3';
5
+ /**
6
+ * PathMapper utility class (simplified from codex-lens Python implementation)
7
+ * Maps source paths to index database paths
8
+ */
9
+ class PathMapper {
10
+ indexRoot;
11
+ constructor(indexRoot) {
12
+ this.indexRoot = indexRoot || join(homedir(), '.codexlens', 'indexes');
13
+ }
14
+ /**
15
+ * Normalize path to cross-platform storage format
16
+ * Windows: D:\path\to\dir → D/path/to/dir
17
+ * Unix: /home/user/path → home/user/path
18
+ */
19
+ normalizePath(sourcePath) {
20
+ const resolved = sourcePath.replace(/\\/g, '/');
21
+ // Handle Windows paths with drive letters
22
+ if (process.platform === 'win32' && /^[A-Za-z]:/.test(resolved)) {
23
+ const drive = resolved[0]; // D
24
+ const rest = resolved.slice(2); // /path/to/dir
25
+ return `${drive}${rest}`.replace(/^\//, '');
26
+ }
27
+ // Handle Unix paths - remove leading slash
28
+ return resolved.replace(/^\//, '');
29
+ }
30
+ /**
31
+ * Convert source path to index database path
32
+ */
33
+ sourceToIndexDb(sourcePath) {
34
+ const normalized = this.normalizePath(sourcePath);
35
+ return join(this.indexRoot, normalized, '_index.db');
36
+ }
37
+ }
38
+ /**
39
+ * Validate and sanitize project path to prevent path traversal attacks
40
+ * @returns sanitized absolute path or null if invalid
41
+ */
42
+ function validateProjectPath(projectPath, initialPath) {
43
+ if (!projectPath) {
44
+ return initialPath;
45
+ }
46
+ // Resolve to absolute path
47
+ const resolved = resolve(projectPath);
48
+ const normalized = normalize(resolved);
49
+ // Check for path traversal attempts
50
+ if (normalized.includes('..') || normalized !== resolved) {
51
+ console.error(`[Graph] Path traversal attempt blocked: ${projectPath}`);
52
+ return null;
53
+ }
54
+ // Ensure path exists and is a directory
55
+ if (!existsSync(normalized)) {
56
+ console.error(`[Graph] Path does not exist: ${normalized}`);
57
+ return null;
58
+ }
59
+ return normalized;
60
+ }
61
+ /**
62
+ * Find all _index.db files recursively in a directory
63
+ * @param dir Directory to search
64
+ * @returns Array of absolute paths to _index.db files
65
+ */
66
+ function findAllIndexDbs(dir) {
67
+ const dbs = [];
68
+ function traverse(currentDir) {
69
+ const dbPath = join(currentDir, '_index.db');
70
+ if (existsSync(dbPath)) {
71
+ dbs.push(dbPath);
72
+ }
73
+ try {
74
+ const entries = readdirSync(currentDir, { withFileTypes: true });
75
+ for (const entry of entries) {
76
+ if (entry.isDirectory()) {
77
+ traverse(join(currentDir, entry.name));
78
+ }
79
+ }
80
+ }
81
+ catch {
82
+ // Silently skip directories we can't read
83
+ }
84
+ }
85
+ traverse(dir);
86
+ return dbs;
87
+ }
88
+ /**
89
+ * Map codex-lens symbol kinds to graph node types
90
+ * Returns null for non-code symbols (markdown headings, etc.)
91
+ */
92
+ function mapSymbolKind(kind) {
93
+ const kindLower = kind.toLowerCase();
94
+ // Exclude markdown headings
95
+ if (/^h[1-6]$/.test(kindLower)) {
96
+ return null;
97
+ }
98
+ const kindMap = {
99
+ 'function': 'FUNCTION',
100
+ 'class': 'CLASS',
101
+ 'method': 'METHOD',
102
+ 'variable': 'VARIABLE',
103
+ 'module': 'MODULE',
104
+ 'interface': 'CLASS', // TypeScript interfaces as CLASS
105
+ 'type': 'CLASS', // Type aliases as CLASS
106
+ 'constant': 'VARIABLE',
107
+ 'property': 'VARIABLE',
108
+ 'parameter': 'VARIABLE',
109
+ 'import': 'MODULE',
110
+ 'export': 'MODULE',
111
+ };
112
+ return kindMap[kindLower] || 'VARIABLE';
113
+ }
114
+ /**
115
+ * Map codex-lens relationship types to graph edge types
116
+ */
117
+ function mapRelationType(relType) {
118
+ const typeMap = {
119
+ 'call': 'CALLS',
120
+ 'import': 'IMPORTS',
121
+ 'inherits': 'INHERITS',
122
+ 'uses': 'CALLS', // Fallback uses → CALLS
123
+ };
124
+ return typeMap[relType.toLowerCase()] || 'CALLS';
125
+ }
126
+ /**
127
+ * Query symbols from all codex-lens databases (hierarchical structure)
128
+ * @param projectPath Root project path
129
+ * @param fileFilter Optional file path filter (supports wildcards)
130
+ * @param moduleFilter Optional module/directory filter
131
+ */
132
+ async function querySymbols(projectPath, fileFilter, moduleFilter) {
133
+ const mapper = new PathMapper();
134
+ const rootDbPath = mapper.sourceToIndexDb(projectPath);
135
+ const indexRoot = rootDbPath.replace(/[\\/]_index\.db$/, '');
136
+ if (!existsSync(indexRoot)) {
137
+ return [];
138
+ }
139
+ // Find all _index.db files recursively
140
+ const dbPaths = findAllIndexDbs(indexRoot);
141
+ if (dbPaths.length === 0) {
142
+ return [];
143
+ }
144
+ const allNodes = [];
145
+ for (const dbPath of dbPaths) {
146
+ try {
147
+ const db = Database(dbPath, { readonly: true });
148
+ // Build WHERE clause for filtering
149
+ let whereClause = '';
150
+ const params = [];
151
+ if (fileFilter) {
152
+ const sanitized = sanitizeForLike(fileFilter);
153
+ whereClause = 'WHERE f.full_path LIKE ?';
154
+ params.push(`%${sanitized}%`);
155
+ }
156
+ else if (moduleFilter) {
157
+ const sanitized = sanitizeForLike(moduleFilter);
158
+ whereClause = 'WHERE f.full_path LIKE ?';
159
+ params.push(`${sanitized}%`);
160
+ }
161
+ const query = `
162
+ SELECT
163
+ s.id,
164
+ s.name,
165
+ s.kind,
166
+ s.start_line,
167
+ f.full_path as file
168
+ FROM symbols s
169
+ JOIN files f ON s.file_id = f.id
170
+ ${whereClause}
171
+ ORDER BY f.full_path, s.start_line
172
+ `;
173
+ const rows = params.length > 0 ? db.prepare(query).all(...params) : db.prepare(query).all();
174
+ db.close();
175
+ // Filter out non-code symbols (markdown headings, etc.)
176
+ rows.forEach((row) => {
177
+ const type = mapSymbolKind(row.kind);
178
+ if (type !== null) {
179
+ allNodes.push({
180
+ id: `${row.file}:${row.name}:${row.start_line}`,
181
+ name: row.name,
182
+ type,
183
+ file: row.file,
184
+ line: row.start_line,
185
+ });
186
+ }
187
+ });
188
+ }
189
+ catch (err) {
190
+ const message = err instanceof Error ? err.message : String(err);
191
+ console.error(`[Graph] Failed to query symbols from ${dbPath}: ${message}`);
192
+ // Continue with other databases even if one fails
193
+ }
194
+ }
195
+ return allNodes;
196
+ }
197
+ /**
198
+ * Query code relationships from all codex-lens databases (hierarchical structure)
199
+ * @param projectPath Root project path
200
+ * @param fileFilter Optional file path filter (supports wildcards)
201
+ * @param moduleFilter Optional module/directory filter
202
+ */
203
+ async function queryRelationships(projectPath, fileFilter, moduleFilter) {
204
+ const mapper = new PathMapper();
205
+ const rootDbPath = mapper.sourceToIndexDb(projectPath);
206
+ const indexRoot = rootDbPath.replace(/[\\/]_index\.db$/, '');
207
+ if (!existsSync(indexRoot)) {
208
+ return [];
209
+ }
210
+ // Find all _index.db files recursively
211
+ const dbPaths = findAllIndexDbs(indexRoot);
212
+ if (dbPaths.length === 0) {
213
+ return [];
214
+ }
215
+ const allEdges = [];
216
+ for (const dbPath of dbPaths) {
217
+ try {
218
+ const db = Database(dbPath, { readonly: true });
219
+ // Build WHERE clause for filtering
220
+ let whereClause = '';
221
+ const params = [];
222
+ if (fileFilter) {
223
+ const sanitized = sanitizeForLike(fileFilter);
224
+ whereClause = 'WHERE f.full_path LIKE ?';
225
+ params.push(`%${sanitized}%`);
226
+ }
227
+ else if (moduleFilter) {
228
+ const sanitized = sanitizeForLike(moduleFilter);
229
+ whereClause = 'WHERE f.full_path LIKE ?';
230
+ params.push(`${sanitized}%`);
231
+ }
232
+ const query = `
233
+ SELECT
234
+ s.name as source_name,
235
+ s.start_line as source_line,
236
+ f.full_path as source_file,
237
+ r.target_qualified_name,
238
+ r.relationship_type,
239
+ r.target_file
240
+ FROM code_relationships r
241
+ JOIN symbols s ON r.source_symbol_id = s.id
242
+ JOIN files f ON s.file_id = f.id
243
+ ${whereClause}
244
+ ORDER BY f.full_path, s.start_line
245
+ `;
246
+ const rows = params.length > 0 ? db.prepare(query).all(...params) : db.prepare(query).all();
247
+ db.close();
248
+ allEdges.push(...rows.map((row) => ({
249
+ source: `${row.source_file}:${row.source_name}:${row.source_line}`,
250
+ target: row.target_qualified_name,
251
+ type: mapRelationType(row.relationship_type),
252
+ sourceLine: row.source_line,
253
+ sourceFile: row.source_file,
254
+ })));
255
+ }
256
+ catch (err) {
257
+ const message = err instanceof Error ? err.message : String(err);
258
+ console.error(`[Graph] Failed to query relationships from ${dbPath}: ${message}`);
259
+ // Continue with other databases even if one fails
260
+ }
261
+ }
262
+ return allEdges;
263
+ }
264
+ /**
265
+ * Sanitize a string for use in SQL LIKE patterns
266
+ * Escapes special characters: %, _, [, ]
267
+ */
268
+ function sanitizeForLike(input) {
269
+ return input
270
+ .replace(/\[/g, '[[]') // Escape [ first
271
+ .replace(/%/g, '[%]') // Escape %
272
+ .replace(/_/g, '[_]'); // Escape _
273
+ }
274
+ /**
275
+ * Validate and parse symbol ID format
276
+ * Expected format: file:name:line or just symbolName
277
+ * @returns sanitized symbol name or null if invalid
278
+ */
279
+ function parseSymbolId(symbolId) {
280
+ if (!symbolId || symbolId.length > 500) {
281
+ return null;
282
+ }
283
+ // Remove any potentially dangerous characters
284
+ const sanitized = symbolId.replace(/[<>'";&|`$\\]/g, '');
285
+ // Parse the format: file:name:line
286
+ const parts = sanitized.split(':');
287
+ if (parts.length >= 2) {
288
+ // Return the name part (second element)
289
+ const name = parts[1].trim();
290
+ return name.length > 0 ? name : null;
291
+ }
292
+ // If no colons, use the whole string as name
293
+ return sanitized.trim() || null;
294
+ }
295
+ /**
296
+ * Perform impact analysis for a symbol
297
+ * Find all symbols that depend on this symbol (direct and transitive)
298
+ */
299
+ async function analyzeImpact(projectPath, symbolId) {
300
+ const mapper = new PathMapper();
301
+ const dbPath = mapper.sourceToIndexDb(projectPath);
302
+ if (!existsSync(dbPath)) {
303
+ return { directDependents: [], affectedFiles: [] };
304
+ }
305
+ // Parse and validate symbol ID
306
+ const symbolName = parseSymbolId(symbolId);
307
+ if (!symbolName) {
308
+ console.error(`[Graph] Invalid symbol ID format: ${symbolId}`);
309
+ return { directDependents: [], affectedFiles: [] };
310
+ }
311
+ try {
312
+ const db = Database(dbPath, { readonly: true });
313
+ // Sanitize for LIKE query to prevent injection via special characters
314
+ const sanitizedName = sanitizeForLike(symbolName);
315
+ // Find all symbols that reference this symbol
316
+ const rows = db.prepare(`
317
+ SELECT DISTINCT
318
+ s.name as dependent_name,
319
+ f.full_path as dependent_file,
320
+ s.start_line as dependent_line
321
+ FROM code_relationships r
322
+ JOIN symbols s ON r.source_symbol_id = s.id
323
+ JOIN files f ON s.file_id = f.id
324
+ WHERE r.target_qualified_name LIKE ?
325
+ `).all(`%${sanitizedName}%`);
326
+ db.close();
327
+ const directDependents = rows.map((row) => `${row.dependent_file}:${row.dependent_name}:${row.dependent_line}`);
328
+ const affectedFiles = [...new Set(rows.map((row) => row.dependent_file))];
329
+ return {
330
+ directDependents,
331
+ affectedFiles,
332
+ };
333
+ }
334
+ catch (err) {
335
+ const message = err instanceof Error ? err.message : String(err);
336
+ console.error(`[Graph] Failed to analyze impact: ${message}`);
337
+ return { directDependents: [], affectedFiles: [] };
338
+ }
339
+ }
340
+ /**
341
+ * Handle Graph routes
342
+ * @returns true if route was handled, false otherwise
343
+ */
344
+ export async function handleGraphRoutes(ctx) {
345
+ const { pathname, url, req, res, initialPath } = ctx;
346
+ // API: Graph Nodes - Get all symbols as graph nodes
347
+ if (pathname === '/api/graph/nodes') {
348
+ const rawPath = url.searchParams.get('path') || initialPath;
349
+ const projectPath = validateProjectPath(rawPath, initialPath);
350
+ const limitStr = url.searchParams.get('limit') || '1000';
351
+ const limit = Math.min(parseInt(limitStr, 10) || 1000, 5000); // Max 5000 nodes
352
+ const fileFilter = url.searchParams.get('file') || undefined;
353
+ const moduleFilter = url.searchParams.get('module') || undefined;
354
+ if (!projectPath) {
355
+ res.writeHead(400, { 'Content-Type': 'application/json' });
356
+ res.end(JSON.stringify({ error: 'Invalid project path', nodes: [] }));
357
+ return true;
358
+ }
359
+ try {
360
+ const allNodes = await querySymbols(projectPath, fileFilter, moduleFilter);
361
+ const nodes = allNodes.slice(0, limit);
362
+ res.writeHead(200, { 'Content-Type': 'application/json' });
363
+ res.end(JSON.stringify({
364
+ nodes,
365
+ total: allNodes.length,
366
+ limit,
367
+ hasMore: allNodes.length > limit,
368
+ filters: { file: fileFilter, module: moduleFilter }
369
+ }));
370
+ }
371
+ catch (err) {
372
+ console.error(`[Graph] Error fetching nodes:`, err);
373
+ res.writeHead(500, { 'Content-Type': 'application/json' });
374
+ res.end(JSON.stringify({ error: 'Failed to fetch graph nodes', nodes: [] }));
375
+ }
376
+ return true;
377
+ }
378
+ // API: Graph Edges - Get all relationships as graph edges
379
+ if (pathname === '/api/graph/edges') {
380
+ const rawPath = url.searchParams.get('path') || initialPath;
381
+ const projectPath = validateProjectPath(rawPath, initialPath);
382
+ const limitStr = url.searchParams.get('limit') || '2000';
383
+ const limit = Math.min(parseInt(limitStr, 10) || 2000, 10000); // Max 10000 edges
384
+ const fileFilter = url.searchParams.get('file') || undefined;
385
+ const moduleFilter = url.searchParams.get('module') || undefined;
386
+ if (!projectPath) {
387
+ res.writeHead(400, { 'Content-Type': 'application/json' });
388
+ res.end(JSON.stringify({ error: 'Invalid project path', edges: [] }));
389
+ return true;
390
+ }
391
+ try {
392
+ const allEdges = await queryRelationships(projectPath, fileFilter, moduleFilter);
393
+ const edges = allEdges.slice(0, limit);
394
+ res.writeHead(200, { 'Content-Type': 'application/json' });
395
+ res.end(JSON.stringify({
396
+ edges,
397
+ total: allEdges.length,
398
+ limit,
399
+ hasMore: allEdges.length > limit,
400
+ filters: { file: fileFilter, module: moduleFilter }
401
+ }));
402
+ }
403
+ catch (err) {
404
+ console.error(`[Graph] Error fetching edges:`, err);
405
+ res.writeHead(500, { 'Content-Type': 'application/json' });
406
+ res.end(JSON.stringify({ error: 'Failed to fetch graph edges', edges: [] }));
407
+ }
408
+ return true;
409
+ }
410
+ // API: Get available files and modules for filtering
411
+ if (pathname === '/api/graph/files') {
412
+ const rawPath = url.searchParams.get('path') || initialPath;
413
+ const projectPath = validateProjectPath(rawPath, initialPath);
414
+ if (!projectPath) {
415
+ res.writeHead(400, { 'Content-Type': 'application/json' });
416
+ res.end(JSON.stringify({ error: 'Invalid project path', files: [], modules: [] }));
417
+ return true;
418
+ }
419
+ try {
420
+ const mapper = new PathMapper();
421
+ const rootDbPath = mapper.sourceToIndexDb(projectPath);
422
+ const indexRoot = rootDbPath.replace(/[\\/]_index\.db$/, '');
423
+ if (!existsSync(indexRoot)) {
424
+ res.writeHead(200, { 'Content-Type': 'application/json' });
425
+ res.end(JSON.stringify({ files: [], modules: [] }));
426
+ return true;
427
+ }
428
+ const dbPaths = findAllIndexDbs(indexRoot);
429
+ const filesSet = new Set();
430
+ const modulesSet = new Set();
431
+ for (const dbPath of dbPaths) {
432
+ try {
433
+ const db = Database(dbPath, { readonly: true });
434
+ const rows = db.prepare(`SELECT DISTINCT full_path FROM files`).all();
435
+ db.close();
436
+ rows.forEach((row) => {
437
+ const filePath = row.full_path;
438
+ filesSet.add(filePath);
439
+ // Extract module path (directory)
440
+ const lastSlash = Math.max(filePath.lastIndexOf('/'), filePath.lastIndexOf('\\'));
441
+ if (lastSlash > 0) {
442
+ const modulePath = filePath.substring(0, lastSlash);
443
+ modulesSet.add(modulePath);
444
+ }
445
+ });
446
+ }
447
+ catch (err) {
448
+ const message = err instanceof Error ? err.message : String(err);
449
+ console.error(`[Graph] Failed to query files from ${dbPath}: ${message}`);
450
+ }
451
+ }
452
+ const files = Array.from(filesSet).sort();
453
+ const modules = Array.from(modulesSet).sort();
454
+ res.writeHead(200, { 'Content-Type': 'application/json' });
455
+ res.end(JSON.stringify({ files, modules }));
456
+ }
457
+ catch (err) {
458
+ console.error(`[Graph] Error fetching files:`, err);
459
+ res.writeHead(500, { 'Content-Type': 'application/json' });
460
+ res.end(JSON.stringify({ error: 'Failed to fetch files and modules', files: [], modules: [] }));
461
+ }
462
+ return true;
463
+ }
464
+ // API: Impact Analysis - Get impact analysis for a symbol
465
+ if (pathname === '/api/graph/impact') {
466
+ const rawPath = url.searchParams.get('path') || initialPath;
467
+ const projectPath = validateProjectPath(rawPath, initialPath);
468
+ const symbolId = url.searchParams.get('symbol');
469
+ if (!projectPath) {
470
+ res.writeHead(400, { 'Content-Type': 'application/json' });
471
+ res.end(JSON.stringify({ error: 'Invalid project path', directDependents: [], affectedFiles: [] }));
472
+ return true;
473
+ }
474
+ if (!symbolId) {
475
+ res.writeHead(400, { 'Content-Type': 'application/json' });
476
+ res.end(JSON.stringify({ error: 'symbol parameter is required', directDependents: [], affectedFiles: [] }));
477
+ return true;
478
+ }
479
+ try {
480
+ const impact = await analyzeImpact(projectPath, symbolId);
481
+ res.writeHead(200, { 'Content-Type': 'application/json' });
482
+ res.end(JSON.stringify(impact));
483
+ }
484
+ catch (err) {
485
+ console.error(`[Graph] Error analyzing impact:`, err);
486
+ res.writeHead(500, { 'Content-Type': 'application/json' });
487
+ res.end(JSON.stringify({
488
+ error: 'Failed to analyze impact',
489
+ directDependents: [],
490
+ affectedFiles: []
491
+ }));
492
+ }
493
+ return true;
494
+ }
495
+ // API: Search Process - Get search pipeline visualization data (placeholder)
496
+ if (pathname === '/api/graph/search-process') {
497
+ // This endpoint returns mock data for the search process visualization
498
+ // In a real implementation, this would integrate with codex-lens search pipeline
499
+ res.writeHead(200, { 'Content-Type': 'application/json' });
500
+ res.end(JSON.stringify({
501
+ stages: [
502
+ { id: 1, name: 'Query Parsing', duration: 0, status: 'pending' },
503
+ { id: 2, name: 'Vector Search', duration: 0, status: 'pending' },
504
+ { id: 3, name: 'Graph Enrichment', duration: 0, status: 'pending' },
505
+ { id: 4, name: 'Chunk Hierarchy', duration: 0, status: 'pending' },
506
+ { id: 5, name: 'Result Ranking', duration: 0, status: 'pending' }
507
+ ],
508
+ chunks: [],
509
+ callers: [],
510
+ callees: [],
511
+ message: 'Search process visualization requires an active search query'
512
+ }));
513
+ return true;
514
+ }
515
+ return false;
516
+ }
517
+ //# sourceMappingURL=graph-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-routes.js","sourceRoot":"","sources":["../../../src/core/routes/graph-routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Help Routes Module
3
+ * Handles all Help-related API endpoints for command guide and CodexLens docs
4
+ */
5
+ import type { IncomingMessage, ServerResponse } from 'http';
6
+ export interface RouteContext {
7
+ pathname: string;
8
+ url: URL;
9
+ req: IncomingMessage;
10
+ res: ServerResponse;
11
+ initialPath: string;
12
+ handlePostRequest: (req: IncomingMessage, res: ServerResponse, handler: (body: unknown) => Promise<any>) => void;
13
+ broadcastToClients: (data: unknown) => void;
14
+ }
15
+ /**
16
+ * Handle Help routes
17
+ * @returns true if route was handled, false otherwise
18
+ */
19
+ export declare function handleHelpRoutes(ctx: RouteContext): Promise<boolean>;
20
+ //# sourceMappingURL=help-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help-routes.d.ts","sourceRoot":"","sources":["../../../src/core/routes/help-routes.ts"],"names":[],"mappings":"AACA;;;GAGG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAK5D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,GAAG,CAAC;IACT,GAAG,EAAE,eAAe,CAAC;IACrB,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACjH,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C;AA6ID;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAgJ1E"}