kirograph 0.19.0 → 0.20.1

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 (690) hide show
  1. package/README.md +10 -8
  2. package/dist/architecture/layers/dart.d.ts +10 -0
  3. package/dist/architecture/layers/dart.d.ts.map +1 -0
  4. package/dist/architecture/layers/elixir.d.ts +6 -0
  5. package/dist/architecture/layers/elixir.d.ts.map +1 -0
  6. package/dist/architecture/layers/index.d.ts.map +1 -1
  7. package/dist/architecture/layers/ocaml.d.ts +6 -0
  8. package/dist/architecture/layers/ocaml.d.ts.map +1 -0
  9. package/dist/architecture/layers/scala.d.ts +6 -0
  10. package/dist/architecture/layers/scala.d.ts.map +1 -0
  11. package/dist/architecture/layers/solidity.d.ts +6 -0
  12. package/dist/architecture/layers/solidity.d.ts.map +1 -0
  13. package/dist/architecture/layers/vue.d.ts +6 -0
  14. package/dist/architecture/layers/vue.d.ts.map +1 -0
  15. package/dist/architecture/manifest/elm.d.ts +3 -0
  16. package/dist/architecture/manifest/elm.d.ts.map +1 -0
  17. package/dist/architecture/manifest/index.d.ts.map +1 -1
  18. package/dist/architecture/manifest/ocaml.d.ts +3 -0
  19. package/dist/architecture/manifest/ocaml.d.ts.map +1 -0
  20. package/dist/architecture/manifest/scala.d.ts +3 -0
  21. package/dist/architecture/manifest/scala.d.ts.map +1 -0
  22. package/dist/bin/banner.d.ts.map +1 -1
  23. package/dist/bin/commands/affected.d.ts.map +1 -1
  24. package/dist/bin/commands/attack-surface.d.ts +3 -0
  25. package/dist/bin/commands/attack-surface.d.ts.map +1 -0
  26. package/dist/bin/commands/attack-surface.js +7 -0
  27. package/dist/bin/commands/attack-surface.js.map +2 -2
  28. package/dist/bin/commands/benchmark.d.ts +9 -0
  29. package/dist/bin/commands/benchmark.d.ts.map +1 -0
  30. package/dist/bin/commands/budget.d.ts +6 -0
  31. package/dist/bin/commands/budget.d.ts.map +1 -0
  32. package/dist/bin/commands/caveman.d.ts +7 -0
  33. package/dist/bin/commands/caveman.d.ts.map +1 -0
  34. package/dist/bin/commands/communities.d.ts +3 -0
  35. package/dist/bin/commands/communities.d.ts.map +1 -0
  36. package/dist/bin/commands/compression.d.ts +7 -0
  37. package/dist/bin/commands/compression.d.ts.map +1 -0
  38. package/dist/bin/commands/context.d.ts.map +1 -1
  39. package/dist/bin/commands/data.d.ts +3 -0
  40. package/dist/bin/commands/data.d.ts.map +1 -0
  41. package/dist/bin/commands/dead-code.d.ts +3 -0
  42. package/dist/bin/commands/dead-code.d.ts.map +1 -0
  43. package/dist/bin/commands/dep-confusion.d.ts +3 -0
  44. package/dist/bin/commands/dep-confusion.d.ts.map +1 -0
  45. package/dist/bin/commands/docs.d.ts +3 -0
  46. package/dist/bin/commands/docs.d.ts.map +1 -0
  47. package/dist/bin/commands/exec.d.ts +11 -0
  48. package/dist/bin/commands/exec.d.ts.map +1 -0
  49. package/dist/bin/commands/export.d.ts +3 -0
  50. package/dist/bin/commands/export.d.ts.map +1 -0
  51. package/dist/bin/commands/flows.d.ts +3 -0
  52. package/dist/bin/commands/flows.d.ts.map +1 -0
  53. package/dist/bin/commands/gain.d.ts +6 -0
  54. package/dist/bin/commands/gain.d.ts.map +1 -0
  55. package/dist/bin/commands/help.d.ts +7 -0
  56. package/dist/bin/commands/help.d.ts.map +1 -1
  57. package/dist/bin/commands/help.js +20 -3
  58. package/dist/bin/commands/help.js.map +2 -2
  59. package/dist/bin/commands/hotspots.d.ts +3 -0
  60. package/dist/bin/commands/hotspots.d.ts.map +1 -0
  61. package/dist/bin/commands/hotspots.js +94 -1
  62. package/dist/bin/commands/hotspots.js.map +3 -3
  63. package/dist/bin/commands/install.d.ts.map +1 -1
  64. package/dist/bin/commands/install.js +3 -3
  65. package/dist/bin/commands/install.js.map +2 -2
  66. package/dist/bin/commands/licenses.d.ts +3 -0
  67. package/dist/bin/commands/licenses.d.ts.map +1 -0
  68. package/dist/bin/commands/memory.d.ts +16 -0
  69. package/dist/bin/commands/memory.d.ts.map +1 -0
  70. package/dist/bin/commands/memory.js +151 -4
  71. package/dist/bin/commands/memory.js.map +2 -2
  72. package/dist/bin/commands/path.d.ts +3 -0
  73. package/dist/bin/commands/path.d.ts.map +1 -0
  74. package/dist/bin/commands/pattern.d.ts +3 -0
  75. package/dist/bin/commands/pattern.d.ts.map +1 -0
  76. package/dist/bin/commands/pattern.js +592 -0
  77. package/dist/bin/commands/pattern.js.map +7 -0
  78. package/dist/bin/commands/query.d.ts.map +1 -1
  79. package/dist/bin/commands/reachability.d.ts +3 -0
  80. package/dist/bin/commands/reachability.d.ts.map +1 -0
  81. package/dist/bin/commands/read.d.ts +6 -0
  82. package/dist/bin/commands/read.d.ts.map +1 -0
  83. package/dist/bin/commands/refactor.d.ts +3 -0
  84. package/dist/bin/commands/refactor.d.ts.map +1 -0
  85. package/dist/bin/commands/remediation.d.ts +3 -0
  86. package/dist/bin/commands/remediation.d.ts.map +1 -0
  87. package/dist/bin/commands/sbom.d.ts +3 -0
  88. package/dist/bin/commands/sbom.d.ts.map +1 -0
  89. package/dist/bin/commands/security-ci-report.d.ts +9 -0
  90. package/dist/bin/commands/security-ci-report.d.ts.map +1 -0
  91. package/dist/bin/commands/security-export.d.ts +2 -0
  92. package/dist/bin/commands/security-export.d.ts.map +1 -0
  93. package/dist/bin/commands/security-flows.d.ts +3 -0
  94. package/dist/bin/commands/security-flows.d.ts.map +1 -0
  95. package/dist/bin/commands/security-secrets.d.ts +3 -0
  96. package/dist/bin/commands/security-secrets.d.ts.map +1 -0
  97. package/dist/bin/commands/security.d.ts +3 -0
  98. package/dist/bin/commands/security.d.ts.map +1 -0
  99. package/dist/bin/commands/security.js +15 -0
  100. package/dist/bin/commands/security.js.map +2 -2
  101. package/dist/bin/commands/snapshot.d.ts +3 -0
  102. package/dist/bin/commands/snapshot.d.ts.map +1 -0
  103. package/dist/bin/commands/staleness.d.ts +3 -0
  104. package/dist/bin/commands/staleness.d.ts.map +1 -0
  105. package/dist/bin/commands/status.d.ts.map +1 -1
  106. package/dist/bin/commands/status.js +27 -0
  107. package/dist/bin/commands/status.js.map +2 -2
  108. package/dist/bin/commands/supply-chain.d.ts +3 -0
  109. package/dist/bin/commands/supply-chain.d.ts.map +1 -0
  110. package/dist/bin/commands/surprising.d.ts +3 -0
  111. package/dist/bin/commands/surprising.d.ts.map +1 -0
  112. package/dist/bin/commands/sync.d.ts.map +1 -1
  113. package/dist/bin/commands/uninit.d.ts.map +1 -1
  114. package/dist/bin/commands/utils.d.ts +5 -0
  115. package/dist/bin/commands/utils.d.ts.map +1 -1
  116. package/dist/bin/commands/vex.d.ts +3 -0
  117. package/dist/bin/commands/vex.d.ts.map +1 -0
  118. package/dist/bin/commands/vuln-suppress.d.ts +3 -0
  119. package/dist/bin/commands/vuln-suppress.d.ts.map +1 -0
  120. package/dist/bin/commands/vulns.d.ts +3 -0
  121. package/dist/bin/commands/vulns.d.ts.map +1 -0
  122. package/dist/bin/installer/archive.d.ts +47 -0
  123. package/dist/bin/installer/archive.d.ts.map +1 -0
  124. package/dist/bin/installer/auto-detect.d.ts +16 -0
  125. package/dist/bin/installer/auto-detect.d.ts.map +1 -0
  126. package/dist/bin/installer/caveman.d.ts +12 -0
  127. package/dist/bin/installer/caveman.d.ts.map +1 -0
  128. package/dist/bin/installer/cli-agent.d.ts +7 -2
  129. package/dist/bin/installer/cli-agent.d.ts.map +1 -1
  130. package/dist/bin/installer/cli-agent.js +6 -2
  131. package/dist/bin/installer/cli-agent.js.map +2 -2
  132. package/dist/bin/installer/common.d.ts +36 -0
  133. package/dist/bin/installer/common.d.ts.map +1 -0
  134. package/dist/bin/installer/common.js +2 -1
  135. package/dist/bin/installer/common.js.map +2 -2
  136. package/dist/bin/installer/config-prompt.d.ts +1 -1
  137. package/dist/bin/installer/config-prompt.d.ts.map +1 -1
  138. package/dist/bin/installer/config-prompt.js +74 -2
  139. package/dist/bin/installer/config-prompt.js.map +2 -2
  140. package/dist/bin/installer/dashboard.d.ts.map +1 -1
  141. package/dist/bin/installer/detect.d.ts +30 -0
  142. package/dist/bin/installer/detect.d.ts.map +1 -0
  143. package/dist/bin/installer/hooks.d.ts +4 -1
  144. package/dist/bin/installer/hooks.d.ts.map +1 -1
  145. package/dist/bin/installer/hooks.js +34 -0
  146. package/dist/bin/installer/hooks.js.map +2 -2
  147. package/dist/bin/installer/index.d.ts +5 -4
  148. package/dist/bin/installer/index.d.ts.map +1 -1
  149. package/dist/bin/installer/index.js +67 -8
  150. package/dist/bin/installer/index.js.map +2 -2
  151. package/dist/bin/installer/instructions.d.ts +14 -0
  152. package/dist/bin/installer/instructions.d.ts.map +1 -0
  153. package/dist/bin/installer/instructions.js +15 -1
  154. package/dist/bin/installer/instructions.js.map +2 -2
  155. package/dist/bin/installer/mcp.d.ts.map +1 -1
  156. package/dist/bin/installer/prompts.d.ts +17 -0
  157. package/dist/bin/installer/prompts.d.ts.map +1 -1
  158. package/dist/bin/installer/qdrant-dashboard.d.ts.map +1 -1
  159. package/dist/bin/installer/steering.d.ts +14 -2
  160. package/dist/bin/installer/steering.d.ts.map +1 -1
  161. package/dist/bin/installer/steering.js +81 -0
  162. package/dist/bin/installer/steering.js.map +2 -2
  163. package/dist/bin/installer/targets/aider.d.ts +6 -0
  164. package/dist/bin/installer/targets/aider.d.ts.map +1 -0
  165. package/dist/bin/installer/targets/aider.js +3 -3
  166. package/dist/bin/installer/targets/aider.js.map +2 -2
  167. package/dist/bin/installer/targets/amp.d.ts +6 -0
  168. package/dist/bin/installer/targets/amp.d.ts.map +1 -0
  169. package/dist/bin/installer/targets/amp.js +3 -3
  170. package/dist/bin/installer/targets/amp.js.map +2 -2
  171. package/dist/bin/installer/targets/antigravity.d.ts +13 -0
  172. package/dist/bin/installer/targets/antigravity.d.ts.map +1 -0
  173. package/dist/bin/installer/targets/antigravity.js +2 -2
  174. package/dist/bin/installer/targets/antigravity.js.map +2 -2
  175. package/dist/bin/installer/targets/augment.d.ts +6 -0
  176. package/dist/bin/installer/targets/augment.d.ts.map +1 -0
  177. package/dist/bin/installer/targets/augment.js +3 -3
  178. package/dist/bin/installer/targets/augment.js.map +2 -2
  179. package/dist/bin/installer/targets/claude.d.ts +6 -0
  180. package/dist/bin/installer/targets/claude.d.ts.map +1 -0
  181. package/dist/bin/installer/targets/claude.js +2 -2
  182. package/dist/bin/installer/targets/claude.js.map +2 -2
  183. package/dist/bin/installer/targets/cline.d.ts +13 -0
  184. package/dist/bin/installer/targets/cline.d.ts.map +1 -0
  185. package/dist/bin/installer/targets/cline.js +2 -2
  186. package/dist/bin/installer/targets/cline.js.map +2 -2
  187. package/dist/bin/installer/targets/codex.d.ts +6 -0
  188. package/dist/bin/installer/targets/codex.d.ts.map +1 -0
  189. package/dist/bin/installer/targets/codex.js +2 -2
  190. package/dist/bin/installer/targets/codex.js.map +2 -2
  191. package/dist/bin/installer/targets/continue.d.ts +12 -0
  192. package/dist/bin/installer/targets/continue.d.ts.map +1 -0
  193. package/dist/bin/installer/targets/continue.js +2 -2
  194. package/dist/bin/installer/targets/continue.js.map +2 -2
  195. package/dist/bin/installer/targets/copilot-cli.d.ts +12 -0
  196. package/dist/bin/installer/targets/copilot-cli.d.ts.map +1 -0
  197. package/dist/bin/installer/targets/copilot-cli.js +2 -2
  198. package/dist/bin/installer/targets/copilot-cli.js.map +2 -2
  199. package/dist/bin/installer/targets/copilot.d.ts +6 -0
  200. package/dist/bin/installer/targets/copilot.d.ts.map +1 -0
  201. package/dist/bin/installer/targets/copilot.js +2 -2
  202. package/dist/bin/installer/targets/copilot.js.map +2 -2
  203. package/dist/bin/installer/targets/cursor.d.ts +6 -0
  204. package/dist/bin/installer/targets/cursor.d.ts.map +1 -0
  205. package/dist/bin/installer/targets/cursor.js +2 -2
  206. package/dist/bin/installer/targets/cursor.js.map +2 -2
  207. package/dist/bin/installer/targets/devin.d.ts +13 -0
  208. package/dist/bin/installer/targets/devin.d.ts.map +1 -0
  209. package/dist/bin/installer/targets/devin.js +2 -2
  210. package/dist/bin/installer/targets/devin.js.map +2 -2
  211. package/dist/bin/installer/targets/gemini-cli.d.ts +16 -0
  212. package/dist/bin/installer/targets/gemini-cli.d.ts.map +1 -0
  213. package/dist/bin/installer/targets/gemini-cli.js +2 -2
  214. package/dist/bin/installer/targets/gemini-cli.js.map +2 -2
  215. package/dist/bin/installer/targets/generic.d.ts +59 -0
  216. package/dist/bin/installer/targets/generic.d.ts.map +1 -0
  217. package/dist/bin/installer/targets/generic.js +2 -2
  218. package/dist/bin/installer/targets/generic.js.map +2 -2
  219. package/dist/bin/installer/targets/goose.d.ts +6 -0
  220. package/dist/bin/installer/targets/goose.d.ts.map +1 -0
  221. package/dist/bin/installer/targets/goose.js +3 -3
  222. package/dist/bin/installer/targets/goose.js.map +2 -2
  223. package/dist/bin/installer/targets/index.d.ts +11 -0
  224. package/dist/bin/installer/targets/index.d.ts.map +1 -0
  225. package/dist/bin/installer/targets/index.js.map +1 -1
  226. package/dist/bin/installer/targets/junie.d.ts +13 -0
  227. package/dist/bin/installer/targets/junie.d.ts.map +1 -0
  228. package/dist/bin/installer/targets/junie.js +2 -2
  229. package/dist/bin/installer/targets/junie.js.map +2 -2
  230. package/dist/bin/installer/targets/kilo.d.ts +12 -0
  231. package/dist/bin/installer/targets/kilo.d.ts.map +1 -0
  232. package/dist/bin/installer/targets/kilo.js +2 -2
  233. package/dist/bin/installer/targets/kilo.js.map +2 -2
  234. package/dist/bin/installer/targets/kiro.d.ts +5 -0
  235. package/dist/bin/installer/targets/kiro.d.ts.map +1 -0
  236. package/dist/bin/installer/targets/kiro.js +4 -4
  237. package/dist/bin/installer/targets/kiro.js.map +2 -2
  238. package/dist/bin/installer/targets/opencode.d.ts +13 -0
  239. package/dist/bin/installer/targets/opencode.d.ts.map +1 -0
  240. package/dist/bin/installer/targets/opencode.js +2 -2
  241. package/dist/bin/installer/targets/opencode.js.map +2 -2
  242. package/dist/bin/installer/targets/openhands.d.ts +6 -0
  243. package/dist/bin/installer/targets/openhands.d.ts.map +1 -0
  244. package/dist/bin/installer/targets/openhands.js +3 -3
  245. package/dist/bin/installer/targets/openhands.js.map +2 -2
  246. package/dist/bin/installer/targets/qoder.d.ts +12 -0
  247. package/dist/bin/installer/targets/qoder.d.ts.map +1 -0
  248. package/dist/bin/installer/targets/qoder.js +2 -2
  249. package/dist/bin/installer/targets/qoder.js.map +2 -2
  250. package/dist/bin/installer/targets/qwen.d.ts +12 -0
  251. package/dist/bin/installer/targets/qwen.d.ts.map +1 -0
  252. package/dist/bin/installer/targets/qwen.js +2 -2
  253. package/dist/bin/installer/targets/qwen.js.map +2 -2
  254. package/dist/bin/installer/targets/replit.d.ts +6 -0
  255. package/dist/bin/installer/targets/replit.d.ts.map +1 -0
  256. package/dist/bin/installer/targets/replit.js +3 -3
  257. package/dist/bin/installer/targets/replit.js.map +2 -2
  258. package/dist/bin/installer/targets/roo.d.ts +13 -0
  259. package/dist/bin/installer/targets/roo.d.ts.map +1 -0
  260. package/dist/bin/installer/targets/roo.js +2 -2
  261. package/dist/bin/installer/targets/roo.js.map +2 -2
  262. package/dist/bin/installer/targets/tabnine.d.ts +6 -0
  263. package/dist/bin/installer/targets/tabnine.d.ts.map +1 -0
  264. package/dist/bin/installer/targets/tabnine.js +3 -3
  265. package/dist/bin/installer/targets/tabnine.js.map +2 -2
  266. package/dist/bin/installer/targets/trae.d.ts +6 -0
  267. package/dist/bin/installer/targets/trae.d.ts.map +1 -0
  268. package/dist/bin/installer/targets/trae.js +3 -3
  269. package/dist/bin/installer/targets/trae.js.map +2 -2
  270. package/dist/bin/installer/targets/warp.d.ts +12 -0
  271. package/dist/bin/installer/targets/warp.d.ts.map +1 -0
  272. package/dist/bin/installer/targets/warp.js +2 -2
  273. package/dist/bin/installer/targets/warp.js.map +2 -2
  274. package/dist/bin/installer/targets/windsurf.d.ts +13 -0
  275. package/dist/bin/installer/targets/windsurf.d.ts.map +1 -0
  276. package/dist/bin/installer/targets/windsurf.js +2 -2
  277. package/dist/bin/installer/targets/windsurf.js.map +2 -2
  278. package/dist/bin/kirograph.js +3 -1
  279. package/dist/bin/kirograph.js.map +3 -3
  280. package/dist/bin/progress.d.ts +16 -1
  281. package/dist/bin/progress.d.ts.map +1 -1
  282. package/dist/compression/filters/aws.d.ts +9 -0
  283. package/dist/compression/filters/aws.d.ts.map +1 -0
  284. package/dist/compression/filters/docker.d.ts +6 -0
  285. package/dist/compression/filters/docker.d.ts.map +1 -0
  286. package/dist/compression/filters/files.d.ts +6 -0
  287. package/dist/compression/filters/files.d.ts.map +1 -0
  288. package/dist/compression/filters/generic.d.ts +7 -0
  289. package/dist/compression/filters/generic.d.ts.map +1 -0
  290. package/dist/compression/filters/git.d.ts +6 -0
  291. package/dist/compression/filters/git.d.ts.map +1 -0
  292. package/dist/compression/filters/github.d.ts +6 -0
  293. package/dist/compression/filters/github.d.ts.map +1 -0
  294. package/dist/compression/filters/lint.d.ts +6 -0
  295. package/dist/compression/filters/lint.d.ts.map +1 -0
  296. package/dist/compression/filters/misc.d.ts +6 -0
  297. package/dist/compression/filters/misc.d.ts.map +1 -0
  298. package/dist/compression/filters/package.d.ts +6 -0
  299. package/dist/compression/filters/package.d.ts.map +1 -0
  300. package/dist/compression/filters/test.d.ts +6 -0
  301. package/dist/compression/filters/test.d.ts.map +1 -0
  302. package/dist/compression/index.d.ts +29 -0
  303. package/dist/compression/index.d.ts.map +1 -0
  304. package/dist/compression/naive-cost.d.ts +26 -0
  305. package/dist/compression/naive-cost.d.ts.map +1 -0
  306. package/dist/compression/tracker.d.ts +155 -0
  307. package/dist/compression/tracker.d.ts.map +1 -0
  308. package/dist/compression/types.d.ts +49 -0
  309. package/dist/compression/types.d.ts.map +1 -0
  310. package/dist/config.d.ts +90 -0
  311. package/dist/config.d.ts.map +1 -1
  312. package/dist/config.js +55 -1
  313. package/dist/config.js.map +2 -2
  314. package/dist/core/lock-manager.d.ts +2 -0
  315. package/dist/core/lock-manager.d.ts.map +1 -1
  316. package/dist/core/pipeline.d.ts +4 -1
  317. package/dist/core/pipeline.d.ts.map +1 -1
  318. package/dist/core/pipeline.js +42 -0
  319. package/dist/core/pipeline.js.map +2 -2
  320. package/dist/core/snapshot.d.ts +58 -0
  321. package/dist/core/snapshot.d.ts.map +1 -0
  322. package/dist/data/filters.d.ts +23 -0
  323. package/dist/data/filters.d.ts.map +1 -0
  324. package/dist/data/indexer.d.ts +25 -0
  325. package/dist/data/indexer.d.ts.map +1 -0
  326. package/dist/data/linker.d.ts +37 -0
  327. package/dist/data/linker.d.ts.map +1 -0
  328. package/dist/data/lint.d.ts +27 -0
  329. package/dist/data/lint.d.ts.map +1 -0
  330. package/dist/data/parsers/csv.d.ts +11 -0
  331. package/dist/data/parsers/csv.d.ts.map +1 -0
  332. package/dist/data/parsers/excel.d.ts +10 -0
  333. package/dist/data/parsers/excel.d.ts.map +1 -0
  334. package/dist/data/parsers/index.d.ts +28 -0
  335. package/dist/data/parsers/index.d.ts.map +1 -0
  336. package/dist/data/parsers/json-array.d.ts +9 -0
  337. package/dist/data/parsers/json-array.d.ts.map +1 -0
  338. package/dist/data/parsers/jsonl.d.ts +9 -0
  339. package/dist/data/parsers/jsonl.d.ts.map +1 -0
  340. package/dist/data/parsers/parquet.d.ts +10 -0
  341. package/dist/data/parsers/parquet.d.ts.map +1 -0
  342. package/dist/data/profiler.d.ts +29 -0
  343. package/dist/data/profiler.d.ts.map +1 -0
  344. package/dist/data/queries.d.ts +95 -0
  345. package/dist/data/queries.d.ts.map +1 -0
  346. package/dist/data/types.d.ts +103 -0
  347. package/dist/data/types.d.ts.map +1 -0
  348. package/dist/db/database.d.ts +57 -0
  349. package/dist/db/database.d.ts.map +1 -1
  350. package/dist/db/database.js +19 -0
  351. package/dist/db/database.js.map +2 -2
  352. package/dist/db/patterns-schema.sql +23 -0
  353. package/dist/docs/formats/asciidoc.d.ts +9 -0
  354. package/dist/docs/formats/asciidoc.d.ts.map +1 -0
  355. package/dist/docs/formats/html.d.ts +10 -0
  356. package/dist/docs/formats/html.d.ts.map +1 -0
  357. package/dist/docs/formats/index.d.ts +31 -0
  358. package/dist/docs/formats/index.d.ts.map +1 -0
  359. package/dist/docs/formats/markdown.d.ts +11 -0
  360. package/dist/docs/formats/markdown.d.ts.map +1 -0
  361. package/dist/docs/formats/openapi.d.ts +17 -0
  362. package/dist/docs/formats/openapi.d.ts.map +1 -0
  363. package/dist/docs/formats/org.d.ts +9 -0
  364. package/dist/docs/formats/org.d.ts.map +1 -0
  365. package/dist/docs/formats/plaintext.d.ts +11 -0
  366. package/dist/docs/formats/plaintext.d.ts.map +1 -0
  367. package/dist/docs/formats/rdoc.d.ts +10 -0
  368. package/dist/docs/formats/rdoc.d.ts.map +1 -0
  369. package/dist/docs/formats/rst.d.ts +11 -0
  370. package/dist/docs/formats/rst.d.ts.map +1 -0
  371. package/dist/docs/indexer.d.ts +49 -0
  372. package/dist/docs/indexer.d.ts.map +1 -0
  373. package/dist/docs/linker.d.ts +30 -0
  374. package/dist/docs/linker.d.ts.map +1 -0
  375. package/dist/docs/lint.d.ts +27 -0
  376. package/dist/docs/lint.d.ts.map +1 -0
  377. package/dist/docs/queries.d.ts +78 -0
  378. package/dist/docs/queries.d.ts.map +1 -0
  379. package/dist/docs/section-id.d.ts +48 -0
  380. package/dist/docs/section-id.d.ts.map +1 -0
  381. package/dist/docs/summarizer.d.ts +13 -0
  382. package/dist/docs/summarizer.d.ts.map +1 -0
  383. package/dist/docs/types.d.ts +71 -0
  384. package/dist/docs/types.d.ts.map +1 -0
  385. package/dist/docs/vectors.d.ts +54 -0
  386. package/dist/docs/vectors.d.ts.map +1 -0
  387. package/dist/extraction/extractor.d.ts +1 -1
  388. package/dist/extraction/extractor.d.ts.map +1 -1
  389. package/dist/extraction/extractor.js +26 -3
  390. package/dist/extraction/extractor.js.map +2 -2
  391. package/dist/extraction/grammars.d.ts +6 -0
  392. package/dist/extraction/grammars.d.ts.map +1 -1
  393. package/dist/extraction/grammars.js +1 -0
  394. package/dist/extraction/grammars.js.map +2 -2
  395. package/dist/extraction/languages.d.ts.map +1 -1
  396. package/dist/extraction/languages.js +5 -1
  397. package/dist/extraction/languages.js.map +2 -2
  398. package/dist/extraction/notebook.d.ts +14 -0
  399. package/dist/extraction/notebook.d.ts.map +1 -0
  400. package/dist/frameworks/amplify.d.ts +9 -0
  401. package/dist/frameworks/amplify.d.ts.map +1 -0
  402. package/dist/frameworks/angular.d.ts +9 -0
  403. package/dist/frameworks/angular.d.ts.map +1 -0
  404. package/dist/frameworks/ansible.d.ts +8 -0
  405. package/dist/frameworks/ansible.d.ts.map +1 -0
  406. package/dist/frameworks/cloudformation.d.ts +9 -0
  407. package/dist/frameworks/cloudformation.d.ts.map +1 -0
  408. package/dist/frameworks/docker.d.ts +9 -0
  409. package/dist/frameworks/docker.d.ts.map +1 -0
  410. package/dist/frameworks/elixir.d.ts +6 -0
  411. package/dist/frameworks/elixir.d.ts.map +1 -0
  412. package/dist/frameworks/flutter.d.ts +12 -0
  413. package/dist/frameworks/flutter.d.ts.map +1 -0
  414. package/dist/frameworks/iac.d.ts +10 -0
  415. package/dist/frameworks/iac.d.ts.map +1 -0
  416. package/dist/frameworks/index.d.ts +14 -0
  417. package/dist/frameworks/index.d.ts.map +1 -1
  418. package/dist/frameworks/kubernetes.d.ts +9 -0
  419. package/dist/frameworks/kubernetes.d.ts.map +1 -0
  420. package/dist/frameworks/pulumi.d.ts +9 -0
  421. package/dist/frameworks/pulumi.d.ts.map +1 -0
  422. package/dist/frameworks/scala.d.ts +6 -0
  423. package/dist/frameworks/scala.d.ts.map +1 -0
  424. package/dist/frameworks/solidity.d.ts +6 -0
  425. package/dist/frameworks/solidity.d.ts.map +1 -0
  426. package/dist/frameworks/terraform.d.ts +14 -0
  427. package/dist/frameworks/terraform.d.ts.map +1 -0
  428. package/dist/frameworks/vue.d.ts +7 -0
  429. package/dist/frameworks/vue.d.ts.map +1 -0
  430. package/dist/graph/communities.d.ts +43 -0
  431. package/dist/graph/communities.d.ts.map +1 -0
  432. package/dist/graph/flows.d.ts +55 -0
  433. package/dist/graph/flows.d.ts.map +1 -0
  434. package/dist/graph/refactor.d.ts +43 -0
  435. package/dist/graph/refactor.d.ts.map +1 -0
  436. package/dist/index.d.ts +36 -4
  437. package/dist/index.d.ts.map +1 -1
  438. package/dist/mcp/cache.d.ts +69 -0
  439. package/dist/mcp/cache.d.ts.map +1 -0
  440. package/dist/mcp/read-modes.d.ts +31 -0
  441. package/dist/mcp/read-modes.d.ts.map +1 -0
  442. package/dist/mcp/server.d.ts +1 -0
  443. package/dist/mcp/server.d.ts.map +1 -1
  444. package/dist/mcp/server.js +15 -2
  445. package/dist/mcp/server.js.map +2 -2
  446. package/dist/mcp/tool-names.d.ts +2 -0
  447. package/dist/mcp/tool-names.d.ts.map +1 -0
  448. package/dist/mcp/tool-names.js +4 -1
  449. package/dist/mcp/tool-names.js.map +2 -2
  450. package/dist/mcp/tools.d.ts +12 -0
  451. package/dist/mcp/tools.d.ts.map +1 -1
  452. package/dist/mcp/tools.js +397 -0
  453. package/dist/mcp/tools.js.map +2 -2
  454. package/dist/memory/compress.d.ts +19 -0
  455. package/dist/memory/compress.d.ts.map +1 -0
  456. package/dist/memory/database.d.ts +92 -0
  457. package/dist/memory/database.d.ts.map +1 -0
  458. package/dist/memory/database.js +38 -0
  459. package/dist/memory/database.js.map +2 -2
  460. package/dist/memory/index.d.ts +71 -0
  461. package/dist/memory/index.d.ts.map +1 -0
  462. package/dist/memory/index.js +12 -2
  463. package/dist/memory/index.js.map +2 -2
  464. package/dist/memory/symbols.d.ts +21 -0
  465. package/dist/memory/symbols.d.ts.map +1 -0
  466. package/dist/memory/types.d.ts +78 -0
  467. package/dist/memory/types.d.ts.map +1 -0
  468. package/dist/memory/types.js.map +1 -1
  469. package/dist/memory/vectors.d.ts +43 -0
  470. package/dist/memory/vectors.d.ts.map +1 -0
  471. package/dist/patterns/graph.d.ts +16 -0
  472. package/dist/patterns/graph.d.ts.map +1 -0
  473. package/dist/patterns/graph.js +45 -0
  474. package/dist/patterns/graph.js.map +7 -0
  475. package/dist/patterns/index.d.ts +4 -0
  476. package/dist/patterns/index.d.ts.map +1 -0
  477. package/dist/patterns/index.js +39 -0
  478. package/dist/patterns/index.js.map +7 -0
  479. package/dist/patterns/indexer.d.ts +15 -0
  480. package/dist/patterns/indexer.d.ts.map +1 -0
  481. package/dist/patterns/indexer.js +97 -0
  482. package/dist/patterns/indexer.js.map +7 -0
  483. package/dist/patterns/library/code-eval-elixir.yaml +11 -0
  484. package/dist/patterns/library/command-injection-c.yaml +11 -0
  485. package/dist/patterns/library/command-injection-go.yaml +29 -0
  486. package/dist/patterns/library/command-injection-kotlin.yaml +10 -0
  487. package/dist/patterns/library/command-injection-php.yaml +11 -0
  488. package/dist/patterns/library/command-injection-ruby.yaml +11 -0
  489. package/dist/patterns/library/command-injection-rust.yaml +11 -0
  490. package/dist/patterns/library/dangerous-eval-bash.yaml +11 -0
  491. package/dist/patterns/library/dangerous-eval-js.yaml +14 -0
  492. package/dist/patterns/library/dangerous-eval-php.yaml +11 -0
  493. package/dist/patterns/library/dangerous-eval-ruby.yaml +11 -0
  494. package/dist/patterns/library/dangerous-exec-py.yaml +13 -0
  495. package/dist/patterns/library/dangerous-reflection-java.yaml +8 -0
  496. package/dist/patterns/library/dynamic-load-lua.yaml +10 -0
  497. package/dist/patterns/library/os-cmd-elixir.yaml +16 -0
  498. package/dist/patterns/library/os-execute-lua.yaml +10 -0
  499. package/dist/patterns/library/path-traversal-go.yaml +11 -0
  500. package/dist/patterns/library/path-traversal-py.yaml +12 -0
  501. package/dist/patterns/library/path-traversal-readfile-js.yaml +14 -0
  502. package/dist/patterns/library/process-launch-swift.yaml +11 -0
  503. package/dist/patterns/library/process-run-dart.yaml +15 -0
  504. package/dist/patterns/library/prototype-pollution-js.yaml +12 -0
  505. package/dist/patterns/library/source-injection-bash.yaml +11 -0
  506. package/dist/patterns/library/sql-injection-concat-js.yaml +12 -0
  507. package/dist/patterns/library/sql-injection-dart.yaml +9 -0
  508. package/dist/patterns/library/sql-injection-java.yaml +13 -0
  509. package/dist/patterns/library/sql-injection-kotlin.yaml +11 -0
  510. package/dist/patterns/library/sql-injection-php.yaml +9 -0
  511. package/dist/patterns/library/sql-injection-py.yaml +12 -0
  512. package/dist/patterns/library/sql-injection-swift.yaml +11 -0
  513. package/dist/patterns/library/sql-injection-template-js.yaml +13 -0
  514. package/dist/patterns/library/subshell-injection-ruby.yaml +8 -0
  515. package/dist/patterns/library/unsafe-block-rust.yaml +8 -0
  516. package/dist/patterns/library/unsafe-string-c.yaml +11 -0
  517. package/dist/patterns/library/weak-crypto-md5-js.yaml +13 -0
  518. package/dist/patterns/library/weak-crypto-py.yaml +13 -0
  519. package/dist/patterns/loader.d.ts +18 -0
  520. package/dist/patterns/loader.d.ts.map +1 -0
  521. package/dist/patterns/loader.js +277 -0
  522. package/dist/patterns/loader.js.map +7 -0
  523. package/dist/patterns/runner.d.ts +42 -0
  524. package/dist/patterns/runner.d.ts.map +1 -0
  525. package/dist/patterns/runner.js +295 -0
  526. package/dist/patterns/runner.js.map +7 -0
  527. package/dist/patterns/types.d.ts +27 -0
  528. package/dist/patterns/types.d.ts.map +1 -0
  529. package/dist/patterns/types.js +34 -0
  530. package/dist/patterns/types.js.map +7 -0
  531. package/dist/resolution/bridges/android-rn.d.ts +13 -0
  532. package/dist/resolution/bridges/android-rn.d.ts.map +1 -0
  533. package/dist/resolution/bridges/expo-modules.d.ts +10 -0
  534. package/dist/resolution/bridges/expo-modules.d.ts.map +1 -0
  535. package/dist/resolution/bridges/flutter-channel.d.ts +14 -0
  536. package/dist/resolution/bridges/flutter-channel.d.ts.map +1 -0
  537. package/dist/resolution/bridges/index.d.ts +40 -0
  538. package/dist/resolution/bridges/index.d.ts.map +1 -0
  539. package/dist/resolution/bridges/native-events.d.ts +10 -0
  540. package/dist/resolution/bridges/native-events.d.ts.map +1 -0
  541. package/dist/resolution/bridges/native-views.d.ts +13 -0
  542. package/dist/resolution/bridges/native-views.d.ts.map +1 -0
  543. package/dist/resolution/bridges/react-native.d.ts +9 -0
  544. package/dist/resolution/bridges/react-native.d.ts.map +1 -0
  545. package/dist/resolution/bridges/swift-objc.d.ts +14 -0
  546. package/dist/resolution/bridges/swift-objc.d.ts.map +1 -0
  547. package/dist/resolution/bridges/turbomodules.d.ts +10 -0
  548. package/dist/resolution/bridges/turbomodules.d.ts.map +1 -0
  549. package/dist/resolution/index.d.ts +28 -3
  550. package/dist/resolution/index.d.ts.map +1 -1
  551. package/dist/security/attack-surface.d.ts +46 -0
  552. package/dist/security/attack-surface.d.ts.map +1 -0
  553. package/dist/security/attack-surface.js +43 -1
  554. package/dist/security/attack-surface.js.map +2 -2
  555. package/dist/security/context-warnings.d.ts +40 -0
  556. package/dist/security/context-warnings.d.ts.map +1 -0
  557. package/dist/security/data-flows.d.ts +33 -0
  558. package/dist/security/data-flows.d.ts.map +1 -0
  559. package/dist/security/data-flows.js +65 -7
  560. package/dist/security/data-flows.js.map +2 -2
  561. package/dist/security/dep-confusion.d.ts +23 -0
  562. package/dist/security/dep-confusion.d.ts.map +1 -0
  563. package/dist/security/errors.d.ts +16 -0
  564. package/dist/security/errors.d.ts.map +1 -0
  565. package/dist/security/export/fix-suggestions.d.ts +21 -0
  566. package/dist/security/export/fix-suggestions.d.ts.map +1 -0
  567. package/dist/security/export/sbom.d.ts +33 -0
  568. package/dist/security/export/sbom.d.ts.map +1 -0
  569. package/dist/security/export/serialization.d.ts +62 -0
  570. package/dist/security/export/serialization.d.ts.map +1 -0
  571. package/dist/security/export/vex.d.ts +58 -0
  572. package/dist/security/export/vex.d.ts.map +1 -0
  573. package/dist/security/index.d.ts +21 -0
  574. package/dist/security/index.d.ts.map +1 -0
  575. package/dist/security/integrator.d.ts +63 -0
  576. package/dist/security/integrator.d.ts.map +1 -0
  577. package/dist/security/integrator.js +8 -8
  578. package/dist/security/integrator.js.map +2 -2
  579. package/dist/security/license.d.ts +33 -0
  580. package/dist/security/license.d.ts.map +1 -0
  581. package/dist/security/manifest/adapter.d.ts +92 -0
  582. package/dist/security/manifest/adapter.d.ts.map +1 -0
  583. package/dist/security/manifest/parser.d.ts +73 -0
  584. package/dist/security/manifest/parser.d.ts.map +1 -0
  585. package/dist/security/manifest/plugins/cargo.d.ts +11 -0
  586. package/dist/security/manifest/plugins/cargo.d.ts.map +1 -0
  587. package/dist/security/manifest/plugins/composer.d.ts +11 -0
  588. package/dist/security/manifest/plugins/composer.d.ts.map +1 -0
  589. package/dist/security/manifest/plugins/go.d.ts +12 -0
  590. package/dist/security/manifest/plugins/go.d.ts.map +1 -0
  591. package/dist/security/manifest/plugins/gradle.d.ts +12 -0
  592. package/dist/security/manifest/plugins/gradle.d.ts.map +1 -0
  593. package/dist/security/manifest/plugins/hex.d.ts +11 -0
  594. package/dist/security/manifest/plugins/hex.d.ts.map +1 -0
  595. package/dist/security/manifest/plugins/maven.d.ts +11 -0
  596. package/dist/security/manifest/plugins/maven.d.ts.map +1 -0
  597. package/dist/security/manifest/plugins/npm.d.ts +11 -0
  598. package/dist/security/manifest/plugins/npm.d.ts.map +1 -0
  599. package/dist/security/manifest/plugins/nuget.d.ts +12 -0
  600. package/dist/security/manifest/plugins/nuget.d.ts.map +1 -0
  601. package/dist/security/manifest/plugins/pip.d.ts +11 -0
  602. package/dist/security/manifest/plugins/pip.d.ts.map +1 -0
  603. package/dist/security/manifest/plugins/pubspec.d.ts +11 -0
  604. package/dist/security/manifest/plugins/pubspec.d.ts.map +1 -0
  605. package/dist/security/manifest/plugins/pyproject.d.ts +3 -0
  606. package/dist/security/manifest/plugins/pyproject.d.ts.map +1 -0
  607. package/dist/security/manifest/plugins/rubygems.d.ts +11 -0
  608. package/dist/security/manifest/plugins/rubygems.d.ts.map +1 -0
  609. package/dist/security/manifest/plugins/swift.d.ts +11 -0
  610. package/dist/security/manifest/plugins/swift.d.ts.map +1 -0
  611. package/dist/security/owasp.d.ts +16 -0
  612. package/dist/security/owasp.d.ts.map +1 -0
  613. package/dist/security/pipeline.d.ts +37 -0
  614. package/dist/security/pipeline.d.ts.map +1 -0
  615. package/dist/security/reachability.d.ts +67 -0
  616. package/dist/security/reachability.d.ts.map +1 -0
  617. package/dist/security/remediation.d.ts +51 -0
  618. package/dist/security/remediation.d.ts.map +1 -0
  619. package/dist/security/secrets.d.ts +38 -0
  620. package/dist/security/secrets.d.ts.map +1 -0
  621. package/dist/security/staleness.d.ts +43 -0
  622. package/dist/security/staleness.d.ts.map +1 -0
  623. package/dist/security/supply-chain.d.ts +34 -0
  624. package/dist/security/supply-chain.d.ts.map +1 -0
  625. package/dist/security/suppressions.d.ts +18 -0
  626. package/dist/security/suppressions.d.ts.map +1 -0
  627. package/dist/security/types.d.ts +144 -0
  628. package/dist/security/types.d.ts.map +1 -0
  629. package/dist/security/vuln/client.d.ts +90 -0
  630. package/dist/security/vuln/client.d.ts.map +1 -0
  631. package/dist/security/vuln/client.js.map +2 -2
  632. package/dist/security/vuln/epss-client.d.ts +26 -0
  633. package/dist/security/vuln/epss-client.d.ts.map +1 -0
  634. package/dist/security/vuln/index.d.ts +6 -0
  635. package/dist/security/vuln/index.d.ts.map +1 -0
  636. package/dist/security/vuln/osv-adapter.d.ts +58 -0
  637. package/dist/security/vuln/osv-adapter.d.ts.map +1 -0
  638. package/dist/security/vuln/types.d.ts +29 -0
  639. package/dist/security/vuln/types.d.ts.map +1 -0
  640. package/dist/sync/index.d.ts +4 -2
  641. package/dist/sync/index.d.ts.map +1 -1
  642. package/dist/types.d.ts +10 -4
  643. package/dist/types.d.ts.map +1 -1
  644. package/dist/types.js.map +2 -2
  645. package/dist/vectors/index.d.ts +11 -3
  646. package/dist/vectors/index.d.ts.map +1 -1
  647. package/dist/vectors/qdrant-index.d.ts +10 -3
  648. package/dist/vectors/qdrant-index.d.ts.map +1 -1
  649. package/dist/vectors/turboquant-index.js +261 -0
  650. package/dist/vectors/turboquant-index.js.map +7 -0
  651. package/dist/vectors/typesense-index.d.ts.map +1 -1
  652. package/dist/watchmen/index.js +83 -0
  653. package/dist/watchmen/index.js.map +7 -0
  654. package/dist/watchmen/synthesize.js +475 -0
  655. package/dist/watchmen/synthesize.js.map +7 -0
  656. package/package.json +24 -2
  657. package/dist/security/context-warnings.test.js +0 -300
  658. package/dist/security/context-warnings.test.js.map +0 -7
  659. package/dist/security/export/fix-suggestions.test.js +0 -74
  660. package/dist/security/export/fix-suggestions.test.js.map +0 -7
  661. package/dist/security/export/sbom.test.js +0 -288
  662. package/dist/security/export/sbom.test.js.map +0 -7
  663. package/dist/security/export/serialization.test.js +0 -310
  664. package/dist/security/export/serialization.test.js.map +0 -7
  665. package/dist/security/export/vex.test.js +0 -278
  666. package/dist/security/export/vex.test.js.map +0 -7
  667. package/dist/security/integrator-transitives.test.js +0 -359
  668. package/dist/security/integrator-transitives.test.js.map +0 -7
  669. package/dist/security/integrator.test.js +0 -237
  670. package/dist/security/integrator.test.js.map +0 -7
  671. package/dist/security/manifest/adapter.test.js +0 -272
  672. package/dist/security/manifest/adapter.test.js.map +0 -7
  673. package/dist/security/manifest/parser.test.js +0 -110
  674. package/dist/security/manifest/parser.test.js.map +0 -7
  675. package/dist/security/manifest/plugins/cargo.test.js +0 -304
  676. package/dist/security/manifest/plugins/cargo.test.js.map +0 -7
  677. package/dist/security/manifest/plugins/go.test.js +0 -341
  678. package/dist/security/manifest/plugins/go.test.js.map +0 -7
  679. package/dist/security/manifest/plugins/maven.test.js +0 -389
  680. package/dist/security/manifest/plugins/maven.test.js.map +0 -7
  681. package/dist/security/manifest/plugins/npm.test.js +0 -298
  682. package/dist/security/manifest/plugins/npm.test.js.map +0 -7
  683. package/dist/security/manifest/plugins/pip.test.js +0 -208
  684. package/dist/security/manifest/plugins/pip.test.js.map +0 -7
  685. package/dist/security/reachability.test.js +0 -394
  686. package/dist/security/reachability.test.js.map +0 -7
  687. package/dist/security/vuln/client.test.js +0 -288
  688. package/dist/security/vuln/client.test.js.map +0 -7
  689. package/dist/security/vuln/osv-adapter.test.js +0 -391
  690. package/dist/security/vuln/osv-adapter.test.js.map +0 -7
@@ -120,11 +120,24 @@ function register(program) {
120
120
  db.applyMemorySchema();
121
121
  const mem2 = new MemoryManager(config, db.getRawDb());
122
122
  mem2.initialize();
123
- const id = await mem2.store({ content: text, kind: opts.kind, source: "manual" });
124
- if (id) {
125
- console.log(` \u2713 Stored observation ${import_ui.dim}${id}${import_ui.reset} [${import_ui.violet}${opts.kind}${import_ui.reset}]`);
126
- } else {
123
+ const result = await mem2.store({ content: text, kind: opts.kind, source: "manual" });
124
+ if (!result) {
127
125
  console.log(` ${import_ui.dim}Duplicate observation \u2014 already stored.${import_ui.reset}`);
126
+ } else if (typeof result === "object" && result.watchmenReady) {
127
+ console.log(` \u2713 Stored observation ${import_ui.dim}${result.id}${import_ui.reset} [${import_ui.violet}${opts.kind}${import_ui.reset}]`);
128
+ console.log(`
129
+ ${import_ui.violet}\u26A1 Watchmen ready${import_ui.reset} \u2014 ${result.pendingCount} observations since last synthesis`);
130
+ console.log(` Target files:`);
131
+ for (const f of result.targetFiles) {
132
+ console.log(` ${import_ui.dim}\xB7${import_ui.reset} ${f}`);
133
+ }
134
+ if (result.skillTargetDir) {
135
+ console.log(` Skill dir: ${import_ui.dim}${result.skillTargetDir}/watchmen-<slug>.md${import_ui.reset} (inclusion: manual)`);
136
+ }
137
+ console.log(`
138
+ ${import_ui.dim}Run synthesis manually or let the agentStop hook handle it.${import_ui.reset}`);
139
+ } else {
140
+ console.log(` \u2713 Stored observation ${import_ui.dim}${result}${import_ui.reset} [${import_ui.violet}${opts.kind}${import_ui.reset}]`);
128
141
  }
129
142
  cg.close();
130
143
  });
@@ -409,6 +422,140 @@ function register(program) {
409
422
  console.log("");
410
423
  cg.close();
411
424
  });
425
+ const watchmen = mem.command("watchmen").description("Watchmen \u2014 workspace brief synthesis from memory observations (requires enableWatchmen: true)");
426
+ watchmen.command("status").description("Show pending observation count and which files would be written on next synthesis").action(async () => {
427
+ const { MemoryManager } = await Promise.resolve().then(() => require("../../memory/index.js"));
428
+ const { WatchmenChecker } = await Promise.resolve().then(() => require("../../watchmen/index.js"));
429
+ const { MemoryDatabase } = await Promise.resolve().then(() => require("../../memory/database.js"));
430
+ const { loadConfig } = await Promise.resolve().then(() => require("../../config.js"));
431
+ const KiroGraph = (await Promise.resolve().then(() => require("../../index.js"))).default;
432
+ const cwd = process.cwd();
433
+ if (!KiroGraph.isInitialized(cwd)) {
434
+ console.error(" \u2716 KiroGraph is not initialized. Run `kirograph init` first.");
435
+ process.exit(1);
436
+ }
437
+ const config = await loadConfig(cwd);
438
+ if (!config.enableMemory) {
439
+ console.error(" \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json");
440
+ process.exit(1);
441
+ }
442
+ if (!config.enableWatchmen) {
443
+ console.error(" \u2716 Watchmen is not enabled. Set enableWatchmen: true in .kirograph/config.json");
444
+ process.exit(1);
445
+ }
446
+ const cg = await KiroGraph.open(cwd);
447
+ const db = cg.getDatabase();
448
+ db.applyMemorySchema();
449
+ const memDb = new MemoryDatabase(db.getRawDb());
450
+ memDb.initialize();
451
+ const checker = new WatchmenChecker(config.watchmenThreshold);
452
+ const { ready, pendingCount } = checker.shouldSynthesize(memDb);
453
+ const { targetFiles } = checker.buildReadyResponse("", pendingCount, cwd);
454
+ console.log(`
455
+ ${(0, import_ui.section)("Watchmen Status")}
456
+ `);
457
+ console.log(` Pending observations: ${import_ui.bold}${pendingCount}${import_ui.reset} / ${config.watchmenThreshold} threshold`);
458
+ console.log(` Ready to synthesize: ${ready ? import_ui.violet + "yes" + import_ui.reset : import_ui.dim + "no" + import_ui.reset}`);
459
+ console.log(` Target files:`);
460
+ for (const f of targetFiles) {
461
+ console.log(` ${import_ui.dim}\xB7${import_ui.reset} ${f}`);
462
+ }
463
+ console.log("");
464
+ cg.close();
465
+ });
466
+ watchmen.command("synthesize").description("Run local model synthesis immediately (requires watchmenSynthesisMode: local)").option("--force", "Run even if below threshold").option("--quiet", "Suppress output (used by runCommand hook)").action(async (opts) => {
467
+ const { MemoryManager } = await Promise.resolve().then(() => require("../../memory/index.js"));
468
+ const { WatchmenChecker } = await Promise.resolve().then(() => require("../../watchmen/index.js"));
469
+ const { MemoryDatabase } = await Promise.resolve().then(() => require("../../memory/database.js"));
470
+ const { runLocalSynthesis } = await Promise.resolve().then(() => require("../../watchmen/synthesize.js"));
471
+ const { loadConfig } = await Promise.resolve().then(() => require("../../config.js"));
472
+ const KiroGraph = (await Promise.resolve().then(() => require("../../index.js"))).default;
473
+ const cwd = process.cwd();
474
+ if (!KiroGraph.isInitialized(cwd)) {
475
+ if (!opts.quiet) console.error(" \u2716 KiroGraph is not initialized.");
476
+ process.exit(1);
477
+ }
478
+ const config = await loadConfig(cwd);
479
+ if (!config.enableMemory || !config.enableWatchmen) {
480
+ if (!opts.quiet) console.error(" \u2716 Watchmen is not enabled (enableMemory + enableWatchmen required).");
481
+ process.exit(1);
482
+ }
483
+ if (config.watchmenSynthesisMode !== "local") {
484
+ if (!opts.quiet) console.error(' \u2716 watchmenSynthesisMode is not "local" \u2014 use the agent hook instead.');
485
+ process.exit(1);
486
+ }
487
+ const cg = await KiroGraph.open(cwd);
488
+ const db = cg.getDatabase();
489
+ db.applyMemorySchema();
490
+ const memDb = new MemoryDatabase(db.getRawDb());
491
+ memDb.initialize();
492
+ const checker = new WatchmenChecker(config.watchmenThreshold);
493
+ const { ready, pendingCount } = checker.shouldSynthesize(memDb);
494
+ if (!ready && !opts.force) {
495
+ if (!opts.quiet) console.log(` ${import_ui.dim}Watchmen: ${pendingCount}/${config.watchmenThreshold} observations \u2014 threshold not reached.${import_ui.reset}`);
496
+ cg.close();
497
+ return;
498
+ }
499
+ const observations = memDb.getObservationsSinceLastSummary(50);
500
+ if (observations.length === 0) {
501
+ if (!opts.quiet) console.log(` ${import_ui.dim}No observations to synthesize.${import_ui.reset}`);
502
+ cg.close();
503
+ return;
504
+ }
505
+ if (!opts.quiet) {
506
+ console.log(`
507
+ ${(0, import_ui.section)("Watchmen Synthesis")}
508
+ `);
509
+ console.log(` Synthesizing ${observations.length} observations with ${import_ui.dim}${config.watchmenLocalModel}${import_ui.reset}`);
510
+ const cacheDir = require("path").join(require("os").homedir(), ".kirograph", "models");
511
+ const cached = require("fs").existsSync(require("path").join(cacheDir, config.watchmenLocalModel));
512
+ if (!cached) console.log(` ${import_ui.dim}Downloading model \u2014 first run only (cached in ~/.kirograph/models/)${import_ui.reset}`);
513
+ console.log("");
514
+ }
515
+ const readyResult = checker.buildReadyResponse("", pendingCount, cwd);
516
+ const result = await runLocalSynthesis(observations, readyResult, config.watchmenLocalModel, cwd, !!opts.quiet);
517
+ const mgr = new MemoryManager(config, db.getRawDb(), cwd);
518
+ mgr.initialize();
519
+ await mgr.store({ content: result.summaryObservation, kind: "summary", source: "agent" });
520
+ if (!opts.quiet) {
521
+ if (result.filesWritten.length) console.log(` \u2713 Brief written to: ${result.filesWritten.map((f) => import_ui.violet + f + import_ui.reset).join(", ")}`);
522
+ if (result.skillsWritten.length) console.log(` \u2713 Skills written: ${result.skillsWritten.map((f) => import_ui.violet + f + import_ui.reset).join(", ")}`);
523
+ if (result.skillsPruned.length) console.log(` ${import_ui.dim}\u2717 Pruned stale: ${result.skillsPruned.join(", ")}${import_ui.reset}`);
524
+ console.log("");
525
+ }
526
+ cg.close();
527
+ });
528
+ watchmen.command("reset").description("Store a summary observation to reset the synthesis counter without running synthesis").action(async () => {
529
+ const { MemoryManager } = await Promise.resolve().then(() => require("../../memory/index.js"));
530
+ const { loadConfig } = await Promise.resolve().then(() => require("../../config.js"));
531
+ const KiroGraph = (await Promise.resolve().then(() => require("../../index.js"))).default;
532
+ const cwd = process.cwd();
533
+ if (!KiroGraph.isInitialized(cwd)) {
534
+ console.error(" \u2716 KiroGraph is not initialized. Run `kirograph init` first.");
535
+ process.exit(1);
536
+ }
537
+ const config = await loadConfig(cwd);
538
+ if (!config.enableMemory) {
539
+ console.error(" \u2716 Memory is not enabled.");
540
+ process.exit(1);
541
+ }
542
+ if (!config.enableWatchmen) {
543
+ console.error(" \u2716 Watchmen is not enabled.");
544
+ process.exit(1);
545
+ }
546
+ const cg = await KiroGraph.open(cwd);
547
+ const db = cg.getDatabase();
548
+ db.applyMemorySchema();
549
+ const mgr = new MemoryManager(config, db.getRawDb(), cwd);
550
+ mgr.initialize();
551
+ const id = await mgr.store({ content: `Watchmen counter reset manually via CLI at ${(/* @__PURE__ */ new Date()).toISOString()}.`, kind: "summary", source: "manual" });
552
+ if (id) {
553
+ console.log(` \u2713 Counter reset \u2014 pending observations set back to 0`);
554
+ } else {
555
+ console.log(` ${import_ui.dim}Already at zero \u2014 nothing to reset.${import_ui.reset}`);
556
+ }
557
+ cg.close();
558
+ });
412
559
  mem.command("session-start").description("Start a new memory session (called by hooks)").option("--ide <name>", "IDE name", "kiro").action(async (opts) => {
413
560
  const { MemoryManager } = await Promise.resolve().then(() => require("../../memory/index.js"));
414
561
  const { loadConfig } = await Promise.resolve().then(() => require("../../config.js"));
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/bin/commands/memory.ts"],
4
- "sourcesContent": ["/**\n * KiroGraph Memory CLI \u2014 mirrors MCP tools + maintenance commands\n *\n * kirograph mem search <query>\n * kirograph mem store <content>\n * kirograph mem timeline\n * kirograph mem status\n * kirograph mem prune\n * kirograph mem export\n * kirograph mem import\n * kirograph mem reembed\n * kirograph mem lint\n */\n\nimport { Command } from 'commander';\nimport { dim, reset, violet, bold, section } from '../ui';\n\nexport function register(program: Command): void {\n const mem = program\n .command('mem')\n .description('Persistent cross-session memory (requires enableMemory: true)');\n\n // \u2500\u2500 search \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('search <query>')\n .description('Search memory observations (hybrid FTS + vector)')\n .option('--kind <kind>', 'Filter by kind: decision, error, pattern, architecture, summary, note')\n .option('--limit <n>', 'Max results', '10')\n .option('--session <id>', 'Filter to specific session')\n .option('--format <fmt>', 'Output format: text, json', 'text')\n .action(async (query: string, opts: { kind?: string; limit: string; session?: string; format: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n const { trackCliToolSaving } = await Promise.resolve().then(() => require('./utils.js'));\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const results = await mem.search(query, {\n limit: parseInt(opts.limit),\n kind: opts.kind as any,\n sessionId: opts.session,\n });\n\n if (opts.format === 'json') {\n console.log(JSON.stringify(results.map(r => ({\n id: r.observation.id,\n kind: r.observation.kind,\n content: r.observation.content,\n score: r.score,\n createdAt: r.observation.createdAt,\n sessionId: r.observation.sessionId,\n })), null, 2));\n } else {\n if (results.length === 0) {\n console.log(`\\n ${dim}No observations found for \"${query}\"${reset}\\n`);\n } else {\n console.log(`\\n ${section('Memory Search:')} ${violet}${bold}${query}${reset}\\n`);\n for (const r of results) {\n const age = formatAge(r.observation.createdAt);\n console.log(` ${violet}[${r.observation.kind}]${reset} ${r.observation.content}`);\n console.log(` ${dim}${age} \u00B7 score: ${r.score.toFixed(3)}${reset}\\n`);\n }\n }\n }\n\n const output = results.map(r => `[${r.observation.kind}] ${r.observation.content}`).join('\\n');\n trackCliToolSaving(cwd, 'kirograph_mem_search', output, { limit: parseInt(opts.limit) });\n cg.close();\n });\n\n // \u2500\u2500 store \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('store [content]')\n .description('Store an observation in memory')\n .option('--kind <kind>', 'Observation kind', 'note')\n .action(async (content: string | undefined, opts: { kind: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n\n // Read from stdin if no content argument\n let text = content;\n if (!text) {\n const chunks: Buffer[] = [];\n for await (const chunk of process.stdin) {\n chunks.push(chunk);\n }\n text = Buffer.concat(chunks).toString('utf8').trim();\n }\n\n if (!text) {\n console.error(' \u2716 No content provided. Pass as argument or pipe from stdin.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const id = await mem.store({ content: text, kind: opts.kind as any, source: 'manual' });\n\n if (id) {\n console.log(` \u2713 Stored observation ${dim}${id}${reset} [${violet}${opts.kind}${reset}]`);\n } else {\n console.log(` ${dim}Duplicate observation \u2014 already stored.${reset}`);\n }\n\n cg.close();\n });\n\n // \u2500\u2500 timeline \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('timeline')\n .description('List recent sessions and observations')\n .option('--limit <n>', 'Number of sessions', '5')\n .option('--session <id>', 'Show observations for a specific session')\n .option('--format <fmt>', 'Output format: text, json', 'text')\n .action(async (opts: { limit: string; session?: string; format: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n const { trackCliToolSaving } = await Promise.resolve().then(() => require('./utils.js'));\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const { sessions, observations } = mem.timeline({\n limit: parseInt(opts.limit),\n sessionId: opts.session,\n });\n\n if (opts.format === 'json') {\n console.log(JSON.stringify({\n sessions: sessions.map(s => ({\n id: s.id,\n ide: s.ide,\n startedAt: s.startedAt,\n endedAt: s.endedAt,\n observations: (observations.get(s.id) ?? []).map(o => ({\n id: o.id, kind: o.kind, content: o.content, createdAt: o.createdAt,\n })),\n })),\n }, null, 2));\n } else {\n if (sessions.length === 0) {\n console.log(`\\n ${dim}No memory sessions found.${reset}\\n`);\n } else {\n console.log(`\\n ${section('Memory Timeline')}\\n`);\n for (const session of sessions) {\n const start = new Date(session.startedAt).toISOString().slice(0, 16).replace('T', ' ');\n const status = session.endedAt ? dim + 'ended' + reset : violet + 'active' + reset;\n const obs = observations.get(session.id) ?? [];\n console.log(` ${bold}${start}${reset} [${session.ide ?? 'unknown'}] ${status} \u00B7 ${obs.length} observations`);\n for (const o of obs.slice(0, 5)) {\n console.log(` ${dim}\u00B7${reset} ${violet}[${o.kind}]${reset} ${o.content.slice(0, 100)}`);\n }\n if (obs.length > 5) console.log(` ${dim}\u2026and ${obs.length - 5} more${reset}`);\n console.log('');\n }\n }\n }\n\n const output = sessions.map(s => s.id).join('\\n');\n trackCliToolSaving(cwd, 'kirograph_mem_timeline', output, { limit: parseInt(opts.limit) });\n cg.close();\n });\n\n // \u2500\u2500 status \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('status')\n .description('Show memory subsystem health')\n .action(async () => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const stats = mem.getStats();\n console.log(`\\n ${section('Memory Status')}\\n`);\n console.log(` Sessions: ${bold}${stats.sessions}${reset} (${stats.activeSessions} active)`);\n console.log(` Observations: ${bold}${stats.observations}${reset}`);\n console.log(` Symbol links: ${bold}${stats.links}${reset}`);\n console.log(` Embeddings: ${bold}${stats.vectors}${reset} / ${stats.embeddableCount}`);\n console.log(` Model mismatch: ${stats.modelMismatch ? violet + '\u26A0 yes \u2014 run kirograph mem reembed' + reset : dim + 'no' + reset}`);\n console.log(` Compression: ${config.cavemanMode !== 'off' ? violet + config.cavemanMode + reset : dim + 'off (storing raw)' + reset}`);\n console.log('');\n\n cg.close();\n });\n\n // \u2500\u2500 prune \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('prune')\n .description('Remove old observations')\n .option('--older-than <duration>', 'Duration (e.g. 90d, 6m)', '90d')\n .action(async (opts: { olderThan: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n const ms = parseDuration(opts.olderThan);\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const deleted = mem.prune(ms);\n console.log(` \u2713 Pruned ${deleted} observation(s) older than ${opts.olderThan}`);\n\n cg.close();\n });\n\n // \u2500\u2500 export \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('export')\n .description('Export memory observations')\n .option('--format <fmt>', 'Output format: jsonl, md', 'jsonl')\n .action(async (opts: { format: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const { sessions, observations } = mem.timeline({ limit: 1000 });\n\n if (opts.format === 'jsonl') {\n for (const session of sessions) {\n const obs = observations.get(session.id) ?? [];\n for (const o of obs) {\n console.log(JSON.stringify({\n id: o.id,\n content: o.content,\n content_raw: o.contentRaw,\n kind: o.kind,\n tags: o.tags,\n created_at: o.createdAt,\n session_id: o.sessionId,\n }));\n }\n }\n } else {\n // Markdown format\n for (const session of sessions) {\n const start = new Date(session.startedAt).toISOString().slice(0, 10);\n console.log(`## Session ${start} (${session.ide ?? 'unknown'})\\n`);\n const obs = observations.get(session.id) ?? [];\n for (const o of obs) {\n const time = new Date(o.createdAt).toISOString().slice(11, 16);\n console.log(`### [${o.kind}] ${time}`);\n console.log(o.content);\n console.log('');\n }\n }\n }\n\n cg.close();\n });\n\n // \u2500\u2500 import \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('import <file>')\n .description('Import observations from JSONL backup')\n .action(async (file: string) => {\n const fs = await import('fs');\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n if (!fs.existsSync(file)) {\n console.error(` \u2716 File not found: ${file}`);\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const lines = fs.readFileSync(file, 'utf8').split('\\n').filter(l => l.trim());\n let imported = 0;\n let skipped = 0;\n\n for (const line of lines) {\n try {\n const data = JSON.parse(line);\n const id = await mem.store({\n content: data.content_raw || data.content,\n kind: data.kind ?? 'note',\n source: 'manual',\n tags: data.tags,\n });\n if (id) imported++;\n else skipped++;\n } catch {\n skipped++;\n }\n }\n\n console.log(` \u2713 Imported ${imported} observation(s), skipped ${skipped} (duplicates/errors)`);\n cg.close();\n });\n\n // \u2500\u2500 reembed \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('reembed')\n .description('Re-embed all observations with the current model')\n .option('--batch <n>', 'Batch size', '32')\n .action(async (opts: { batch: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n console.log(' Re-embedding all observations...');\n const count = await mem.reembed(parseInt(opts.batch));\n console.log(` \u2713 Re-embedded ${count} observation(s)`);\n\n cg.close();\n });\n\n // \u2500\u2500 lint \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('lint')\n .description('Health check: find stale links, model mismatch, orphans')\n .option('--fix', 'Auto-fix issues (remove stale links, close stale sessions)')\n .action(async (opts: { fix?: boolean }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const result = mem.lint();\n\n console.log(`\\n ${section('Memory Lint')}\\n`);\n console.log(` Stale links: ${result.staleLinks > 0 ? violet + result.staleLinks + reset : dim + '0' + reset}`);\n console.log(` Model mismatch: ${result.modelMismatch ? violet + 'yes' + reset : dim + 'no' + reset}`);\n console.log(` Stale sessions: ${result.staleSessions > 0 ? violet + String(result.staleSessions) + ' (auto-closed)' + reset : dim + '0' + reset}`);\n\n if (opts.fix && result.staleLinks > 0) {\n const removed = mem.removeStaleLinks();\n console.log(`\\n \u2713 Removed ${removed} stale link(s)`);\n } else if (result.staleLinks > 0) {\n console.log(`\\n ${dim}Run with --fix to remove stale links${reset}`);\n }\n\n if (result.modelMismatch) {\n console.log(` ${dim}Run 'kirograph mem reembed' to fix model mismatch${reset}`);\n }\n\n console.log('');\n cg.close();\n });\n\n // \u2500\u2500 session management (for hooks) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('session-start')\n .description('Start a new memory session (called by hooks)')\n .option('--ide <name>', 'IDE name', 'kiro')\n .action(async (opts: { ide: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) return;\n const config = await loadConfig(cwd);\n if (!config.enableMemory) return;\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n // getOrCreateSession handles auto-creation\n const { MemoryDatabase } = await Promise.resolve().then(() => require('../../memory/database.js'));\n const memDb = new MemoryDatabase(db.getRawDb());\n memDb.initialize();\n const sessionId = memDb.getOrCreateSession(opts.ide, cwd);\n console.log(sessionId);\n\n cg.close();\n });\n\n mem\n .command('session-end')\n .description('End the current memory session (called by hooks)')\n .option('--ide <name>', 'IDE name', 'kiro')\n .action(async (opts: { ide: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) return;\n const config = await loadConfig(cwd);\n if (!config.enableMemory) return;\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n mem.endCurrentSession(opts.ide);\n\n cg.close();\n });\n}\n\n// \u2500\u2500 Helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction formatAge(timestamp: number): string {\n const diff = Date.now() - timestamp;\n const minutes = Math.floor(diff / 60000);\n if (minutes < 60) return `${minutes}m ago`;\n const hours = Math.floor(minutes / 60);\n if (hours < 24) return `${hours}h ago`;\n const days = Math.floor(hours / 24);\n if (days < 7) return `${days}d ago`;\n const weeks = Math.floor(days / 7);\n if (weeks < 5) return `${weeks}w ago`;\n const months = Math.floor(days / 30);\n return `${months}mo ago`;\n}\n\nfunction parseDuration(duration: string): number {\n const match = duration.match(/^(\\d+)(d|m|w|h)$/);\n if (!match) return 90 * 24 * 60 * 60 * 1000; // default 90 days\n\n const value = parseInt(match[1]);\n switch (match[2]) {\n case 'h': return value * 60 * 60 * 1000;\n case 'd': return value * 24 * 60 * 60 * 1000;\n case 'w': return value * 7 * 24 * 60 * 60 * 1000;\n case 'm': return value * 30 * 24 * 60 * 60 * 1000;\n default: return 90 * 24 * 60 * 60 * 1000;\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA,gBAAkD;AAE3C,SAAS,SAAS,SAAwB;AAC/C,QAAM,MAAM,QACT,QAAQ,KAAK,EACb,YAAY,+DAA+D;AAI9E,MACG,QAAQ,gBAAgB,EACxB,YAAY,kDAAkD,EAC9D,OAAO,iBAAiB,uEAAuE,EAC/F,OAAO,eAAe,eAAe,IAAI,EACzC,OAAO,kBAAkB,4BAA4B,EACrD,OAAO,kBAAkB,6BAA6B,MAAM,EAC5D,OAAO,OAAO,OAAe,SAA6E;AACzG,UAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,uBAAuB,CAAC;AAC7F,UAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,UAAM,aAAa,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,gBAAgB,CAAC,GAAG;AAClF,UAAM,EAAE,mBAAmB,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,YAAY,CAAC;AAEvF,UAAM,MAAM,QAAQ,IAAI;AACxB,QAAI,CAAC,UAAU,cAAc,GAAG,GAAG;AACjC,cAAQ,MAAM,oEAA+D;AAC7E,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,UAAM,SAAS,MAAM,WAAW,GAAG;AACnC,QAAI,CAAC,OAAO,cAAc;AACxB,cAAQ,MAAM,kFAA6E;AAC3F,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,UAAM,KAAK,MAAM,UAAU,KAAK,GAAG;AACnC,UAAM,KAAK,GAAG,YAAY;AAC1B,OAAG,kBAAkB;AACrB,UAAMA,OAAM,IAAI,cAAc,QAAQ,GAAG,SAAS,CAAC;AACnD,IAAAA,KAAI,WAAW;AAEf,UAAM,UAAU,MAAMA,KAAI,OAAO,OAAO;AAAA,MACtC,OAAO,SAAS,KAAK,KAAK;AAAA,MAC1B,MAAM,KAAK;AAAA,MACX,WAAW,KAAK;AAAA,IAClB,CAAC;AAED,QAAI,KAAK,WAAW,QAAQ;AAC1B,cAAQ,IAAI,KAAK,UAAU,QAAQ,IAAI,QAAM;AAAA,QAC3C,IAAI,EAAE,YAAY;AAAA,QAClB,MAAM,EAAE,YAAY;AAAA,QACpB,SAAS,EAAE,YAAY;AAAA,QACvB,OAAO,EAAE;AAAA,QACT,WAAW,EAAE,YAAY;AAAA,QACzB,WAAW,EAAE,YAAY;AAAA,MAC3B,EAAE,GAAG,MAAM,CAAC,CAAC;AAAA,IACf,OAAO;AACL,UAAI,QAAQ,WAAW,GAAG;AACxB,gBAAQ,IAAI;AAAA,IAAO,aAAG,8BAA8B,KAAK,IAAI,eAAK;AAAA,CAAI;AAAA,MACxE,OAAO;AACL,gBAAQ,IAAI;AAAA,QAAO,mBAAQ,gBAAgB,CAAC,IAAI,gBAAM,GAAG,cAAI,GAAG,KAAK,GAAG,eAAK;AAAA,CAAI;AACjF,mBAAW,KAAK,SAAS;AACvB,gBAAM,MAAM,UAAU,EAAE,YAAY,SAAS;AAC7C,kBAAQ,IAAI,KAAK,gBAAM,IAAI,EAAE,YAAY,IAAI,IAAI,eAAK,IAAI,EAAE,YAAY,OAAO,EAAE;AACjF,kBAAQ,IAAI,KAAK,aAAG,GAAG,GAAG,gBAAa,EAAE,MAAM,QAAQ,CAAC,CAAC,GAAG,eAAK;AAAA,CAAI;AAAA,QACvE;AAAA,MACF;AAAA,IACF;AAEA,UAAM,SAAS,QAAQ,IAAI,OAAK,IAAI,EAAE,YAAY,IAAI,KAAK,EAAE,YAAY,OAAO,EAAE,EAAE,KAAK,IAAI;AAC7F,uBAAmB,KAAK,wBAAwB,QAAQ,EAAE,OAAO,SAAS,KAAK,KAAK,EAAE,CAAC;AACvF,OAAG,MAAM;AAAA,EACX,CAAC;AAIH,MACG,QAAQ,iBAAiB,EACzB,YAAY,gCAAgC,EAC5C,OAAO,iBAAiB,oBAAoB,MAAM,EAClD,OAAO,OAAO,SAA6B,SAA2B;AACrE,UAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,uBAAuB,CAAC;AAC7F,UAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,UAAM,aAAa,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,gBAAgB,CAAC,GAAG;AAElF,UAAM,MAAM,QAAQ,IAAI;AACxB,QAAI,CAAC,UAAU,cAAc,GAAG,GAAG;AACjC,cAAQ,MAAM,oEAA+D;AAC7E,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,UAAM,SAAS,MAAM,WAAW,GAAG;AACnC,QAAI,CAAC,OAAO,cAAc;AACxB,cAAQ,MAAM,kFAA6E;AAC3F,cAAQ,KAAK,CAAC;AAAA,IAChB;AAGA,QAAI,OAAO;AACX,QAAI,CAAC,MAAM;AACT,YAAM,SAAmB,CAAC;AAC1B,uBAAiB,SAAS,QAAQ,OAAO;AACvC,eAAO,KAAK,KAAK;AAAA,MACnB;AACA,aAAO,OAAO,OAAO,MAAM,EAAE,SAAS,MAAM,EAAE,KAAK;AAAA,IACrD;AAEA,QAAI,CAAC,MAAM;AACT,cAAQ,MAAM,oEAA+D;AAC7E,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,UAAM,KAAK,MAAM,UAAU,KAAK,GAAG;AACnC,UAAM,KAAK,GAAG,YAAY;AAC1B,OAAG,kBAAkB;AACrB,UAAMA,OAAM,IAAI,cAAc,QAAQ,GAAG,SAAS,CAAC;AACnD,IAAAA,KAAI,WAAW;AAEf,UAAM,KAAK,MAAMA,KAAI,MAAM,EAAE,SAAS,MAAM,MAAM,KAAK,MAAa,QAAQ,SAAS,CAAC;AAEtF,QAAI,IAAI;AACN,cAAQ,IAAI,+BAA0B,aAAG,GAAG,EAAE,GAAG,eAAK,KAAK,gBAAM,GAAG,KAAK,IAAI,GAAG,eAAK,GAAG;AAAA,IAC1F,OAAO;AACL,cAAQ,IAAI,KAAK,aAAG,+CAA0C,eAAK,EAAE;AAAA,IACvE;AAEA,OAAG,MAAM;AAAA,EACX,CAAC;AAIH,MACG,QAAQ,UAAU,EAClB,YAAY,uCAAuC,EACnD,OAAO,eAAe,sBAAsB,GAAG,EAC/C,OAAO,kBAAkB,0CAA0C,EACnE,OAAO,kBAAkB,6BAA6B,MAAM,EAC5D,OAAO,OAAO,SAA8D;AAC3E,UAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,uBAAuB,CAAC;AAC7F,UAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,UAAM,aAAa,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,gBAAgB,CAAC,GAAG;AAClF,UAAM,EAAE,mBAAmB,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,YAAY,CAAC;AAEvF,UAAM,MAAM,QAAQ,IAAI;AACxB,QAAI,CAAC,UAAU,cAAc,GAAG,GAAG;AACjC,cAAQ,MAAM,oEAA+D;AAC7E,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,UAAM,SAAS,MAAM,WAAW,GAAG;AACnC,QAAI,CAAC,OAAO,cAAc;AACxB,cAAQ,MAAM,kFAA6E;AAC3F,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,UAAM,KAAK,MAAM,UAAU,KAAK,GAAG;AACnC,UAAM,KAAK,GAAG,YAAY;AAC1B,OAAG,kBAAkB;AACrB,UAAMA,OAAM,IAAI,cAAc,QAAQ,GAAG,SAAS,CAAC;AACnD,IAAAA,KAAI,WAAW;AAEf,UAAM,EAAE,UAAU,aAAa,IAAIA,KAAI,SAAS;AAAA,MAC9C,OAAO,SAAS,KAAK,KAAK;AAAA,MAC1B,WAAW,KAAK;AAAA,IAClB,CAAC;AAED,QAAI,KAAK,WAAW,QAAQ;AAC1B,cAAQ,IAAI,KAAK,UAAU;AAAA,QACzB,UAAU,SAAS,IAAI,QAAM;AAAA,UAC3B,IAAI,EAAE;AAAA,UACN,KAAK,EAAE;AAAA,UACP,WAAW,EAAE;AAAA,UACb,SAAS,EAAE;AAAA,UACX,eAAe,aAAa,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI,QAAM;AAAA,YACrD,IAAI,EAAE;AAAA,YAAI,MAAM,EAAE;AAAA,YAAM,SAAS,EAAE;AAAA,YAAS,WAAW,EAAE;AAAA,UAC3D,EAAE;AAAA,QACJ,EAAE;AAAA,MACJ,GAAG,MAAM,CAAC,CAAC;AAAA,IACb,OAAO;AACL,UAAI,SAAS,WAAW,GAAG;AACzB,gBAAQ,IAAI;AAAA,IAAO,aAAG,4BAA4B,eAAK;AAAA,CAAI;AAAA,MAC7D,OAAO;AACL,gBAAQ,IAAI;AAAA,QAAO,mBAAQ,iBAAiB,CAAC;AAAA,CAAI;AACjD,mBAAW,WAAW,UAAU;AAC9B,gBAAM,QAAQ,IAAI,KAAK,QAAQ,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,KAAK,GAAG;AACrF,gBAAM,SAAS,QAAQ,UAAU,gBAAM,UAAU,kBAAQ,mBAAS,WAAW;AAC7E,gBAAM,MAAM,aAAa,IAAI,QAAQ,EAAE,KAAK,CAAC;AAC7C,kBAAQ,IAAI,KAAK,cAAI,GAAG,KAAK,GAAG,eAAK,KAAK,QAAQ,OAAO,SAAS,KAAK,MAAM,SAAM,IAAI,MAAM,eAAe;AAC5G,qBAAW,KAAK,IAAI,MAAM,GAAG,CAAC,GAAG;AAC/B,oBAAQ,IAAI,OAAO,aAAG,OAAI,eAAK,IAAI,gBAAM,IAAI,EAAE,IAAI,IAAI,eAAK,IAAI,EAAE,QAAQ,MAAM,GAAG,GAAG,CAAC,EAAE;AAAA,UAC3F;AACA,cAAI,IAAI,SAAS,EAAG,SAAQ,IAAI,OAAO,aAAG,aAAQ,IAAI,SAAS,CAAC,QAAQ,eAAK,EAAE;AAC/E,kBAAQ,IAAI,EAAE;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AAEA,UAAM,SAAS,SAAS,IAAI,OAAK,EAAE,EAAE,EAAE,KAAK,IAAI;AAChD,uBAAmB,KAAK,0BAA0B,QAAQ,EAAE,OAAO,SAAS,KAAK,KAAK,EAAE,CAAC;AACzF,OAAG,MAAM;AAAA,EACX,CAAC;AAIH,MACG,QAAQ,QAAQ,EAChB,YAAY,8BAA8B,EAC1C,OAAO,YAAY;AAClB,UAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,uBAAuB,CAAC;AAC7F,UAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,UAAM,aAAa,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,gBAAgB,CAAC,GAAG;AAElF,UAAM,MAAM,QAAQ,IAAI;AACxB,QAAI,CAAC,UAAU,cAAc,GAAG,GAAG;AACjC,cAAQ,MAAM,oEAA+D;AAC7E,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,UAAM,SAAS,MAAM,WAAW,GAAG;AACnC,QAAI,CAAC,OAAO,cAAc;AACxB,cAAQ,MAAM,kFAA6E;AAC3F,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,UAAM,KAAK,MAAM,UAAU,KAAK,GAAG;AACnC,UAAM,KAAK,GAAG,YAAY;AAC1B,OAAG,kBAAkB;AACrB,UAAMA,OAAM,IAAI,cAAc,QAAQ,GAAG,SAAS,CAAC;AACnD,IAAAA,KAAI,WAAW;AAEf,UAAM,QAAQA,KAAI,SAAS;AAC3B,YAAQ,IAAI;AAAA,QAAO,mBAAQ,eAAe,CAAC;AAAA,CAAI;AAC/C,YAAQ,IAAI,qBAAqB,cAAI,GAAG,MAAM,QAAQ,GAAG,eAAK,KAAK,MAAM,cAAc,UAAU;AACjG,YAAQ,IAAI,qBAAqB,cAAI,GAAG,MAAM,YAAY,GAAG,eAAK,EAAE;AACpE,YAAQ,IAAI,qBAAqB,cAAI,GAAG,MAAM,KAAK,GAAG,eAAK,EAAE;AAC7D,YAAQ,IAAI,qBAAqB,cAAI,GAAG,MAAM,OAAO,GAAG,eAAK,MAAM,MAAM,eAAe,EAAE;AAC1F,YAAQ,IAAI,qBAAqB,MAAM,gBAAgB,mBAAS,gDAAsC,kBAAQ,gBAAM,OAAO,eAAK,EAAE;AAClI,YAAQ,IAAI,qBAAqB,OAAO,gBAAgB,QAAQ,mBAAS,OAAO,cAAc,kBAAQ,gBAAM,sBAAsB,eAAK,EAAE;AACzI,YAAQ,IAAI,EAAE;AAEd,OAAG,MAAM;AAAA,EACX,CAAC;AAIH,MACG,QAAQ,OAAO,EACf,YAAY,yBAAyB,EACrC,OAAO,2BAA2B,2BAA2B,KAAK,EAClE,OAAO,OAAO,SAAgC;AAC7C,UAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,uBAAuB,CAAC;AAC7F,UAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,UAAM,aAAa,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,gBAAgB,CAAC,GAAG;AAElF,UAAM,MAAM,QAAQ,IAAI;AACxB,QAAI,CAAC,UAAU,cAAc,GAAG,GAAG;AACjC,cAAQ,MAAM,oEAA+D;AAC7E,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,UAAM,SAAS,MAAM,WAAW,GAAG;AACnC,QAAI,CAAC,OAAO,cAAc;AACxB,cAAQ,MAAM,iCAA4B;AAC1C,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,UAAM,KAAK,cAAc,KAAK,SAAS;AACvC,UAAM,KAAK,MAAM,UAAU,KAAK,GAAG;AACnC,UAAM,KAAK,GAAG,YAAY;AAC1B,OAAG,kBAAkB;AACrB,UAAMA,OAAM,IAAI,cAAc,QAAQ,GAAG,SAAS,CAAC;AACnD,IAAAA,KAAI,WAAW;AAEf,UAAM,UAAUA,KAAI,MAAM,EAAE;AAC5B,YAAQ,IAAI,mBAAc,OAAO,8BAA8B,KAAK,SAAS,EAAE;AAE/E,OAAG,MAAM;AAAA,EACX,CAAC;AAIH,MACG,QAAQ,QAAQ,EAChB,YAAY,4BAA4B,EACxC,OAAO,kBAAkB,4BAA4B,OAAO,EAC5D,OAAO,OAAO,SAA6B;AAC1C,UAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,uBAAuB,CAAC;AAC7F,UAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,UAAM,aAAa,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,gBAAgB,CAAC,GAAG;AAElF,UAAM,MAAM,QAAQ,IAAI;AACxB,QAAI,CAAC,UAAU,cAAc,GAAG,GAAG;AACjC,cAAQ,MAAM,oEAA+D;AAC7E,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,UAAM,SAAS,MAAM,WAAW,GAAG;AACnC,QAAI,CAAC,OAAO,cAAc;AACxB,cAAQ,MAAM,iCAA4B;AAC1C,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,UAAM,KAAK,MAAM,UAAU,KAAK,GAAG;AACnC,UAAM,KAAK,GAAG,YAAY;AAC1B,OAAG,kBAAkB;AACrB,UAAMA,OAAM,IAAI,cAAc,QAAQ,GAAG,SAAS,CAAC;AACnD,IAAAA,KAAI,WAAW;AAEf,UAAM,EAAE,UAAU,aAAa,IAAIA,KAAI,SAAS,EAAE,OAAO,IAAK,CAAC;AAE/D,QAAI,KAAK,WAAW,SAAS;AAC3B,iBAAW,WAAW,UAAU;AAC9B,cAAM,MAAM,aAAa,IAAI,QAAQ,EAAE,KAAK,CAAC;AAC7C,mBAAW,KAAK,KAAK;AACnB,kBAAQ,IAAI,KAAK,UAAU;AAAA,YACzB,IAAI,EAAE;AAAA,YACN,SAAS,EAAE;AAAA,YACX,aAAa,EAAE;AAAA,YACf,MAAM,EAAE;AAAA,YACR,MAAM,EAAE;AAAA,YACR,YAAY,EAAE;AAAA,YACd,YAAY,EAAE;AAAA,UAChB,CAAC,CAAC;AAAA,QACJ;AAAA,MACF;AAAA,IACF,OAAO;AAEL,iBAAW,WAAW,UAAU;AAC9B,cAAM,QAAQ,IAAI,KAAK,QAAQ,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,EAAE;AACnE,gBAAQ,IAAI,cAAc,KAAK,KAAK,QAAQ,OAAO,SAAS;AAAA,CAAK;AACjE,cAAM,MAAM,aAAa,IAAI,QAAQ,EAAE,KAAK,CAAC;AAC7C,mBAAW,KAAK,KAAK;AACnB,gBAAM,OAAO,IAAI,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,IAAI,EAAE;AAC7D,kBAAQ,IAAI,QAAQ,EAAE,IAAI,KAAK,IAAI,EAAE;AACrC,kBAAQ,IAAI,EAAE,OAAO;AACrB,kBAAQ,IAAI,EAAE;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AAEA,OAAG,MAAM;AAAA,EACX,CAAC;AAIH,MACG,QAAQ,eAAe,EACvB,YAAY,uCAAuC,EACnD,OAAO,OAAO,SAAiB;AAC9B,UAAM,KAAK,MAAM,OAAO,IAAI;AAC5B,UAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,uBAAuB,CAAC;AAC7F,UAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,UAAM,aAAa,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,gBAAgB,CAAC,GAAG;AAElF,UAAM,MAAM,QAAQ,IAAI;AACxB,QAAI,CAAC,UAAU,cAAc,GAAG,GAAG;AACjC,cAAQ,MAAM,oEAA+D;AAC7E,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,UAAM,SAAS,MAAM,WAAW,GAAG;AACnC,QAAI,CAAC,OAAO,cAAc;AACxB,cAAQ,MAAM,iCAA4B;AAC1C,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,QAAI,CAAC,GAAG,WAAW,IAAI,GAAG;AACxB,cAAQ,MAAM,4BAAuB,IAAI,EAAE;AAC3C,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,UAAM,KAAK,MAAM,UAAU,KAAK,GAAG;AACnC,UAAM,KAAK,GAAG,YAAY;AAC1B,OAAG,kBAAkB;AACrB,UAAMA,OAAM,IAAI,cAAc,QAAQ,GAAG,SAAS,CAAC;AACnD,IAAAA,KAAI,WAAW;AAEf,UAAM,QAAQ,GAAG,aAAa,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,OAAO,OAAK,EAAE,KAAK,CAAC;AAC5E,QAAI,WAAW;AACf,QAAI,UAAU;AAEd,eAAW,QAAQ,OAAO;AACxB,UAAI;AACF,cAAM,OAAO,KAAK,MAAM,IAAI;AAC5B,cAAM,KAAK,MAAMA,KAAI,MAAM;AAAA,UACzB,SAAS,KAAK,eAAe,KAAK;AAAA,UAClC,MAAM,KAAK,QAAQ;AAAA,UACnB,QAAQ;AAAA,UACR,MAAM,KAAK;AAAA,QACb,CAAC;AACD,YAAI,GAAI;AAAA,YACH;AAAA,MACP,QAAQ;AACN;AAAA,MACF;AAAA,IACF;AAEA,YAAQ,IAAI,qBAAgB,QAAQ,4BAA4B,OAAO,sBAAsB;AAC7F,OAAG,MAAM;AAAA,EACX,CAAC;AAIH,MACG,QAAQ,SAAS,EACjB,YAAY,kDAAkD,EAC9D,OAAO,eAAe,cAAc,IAAI,EACxC,OAAO,OAAO,SAA4B;AACzC,UAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,uBAAuB,CAAC;AAC7F,UAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,UAAM,aAAa,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,gBAAgB,CAAC,GAAG;AAElF,UAAM,MAAM,QAAQ,IAAI;AACxB,QAAI,CAAC,UAAU,cAAc,GAAG,GAAG;AACjC,cAAQ,MAAM,oEAA+D;AAC7E,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,UAAM,SAAS,MAAM,WAAW,GAAG;AACnC,QAAI,CAAC,OAAO,cAAc;AACxB,cAAQ,MAAM,iCAA4B;AAC1C,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,UAAM,KAAK,MAAM,UAAU,KAAK,GAAG;AACnC,UAAM,KAAK,GAAG,YAAY;AAC1B,OAAG,kBAAkB;AACrB,UAAMA,OAAM,IAAI,cAAc,QAAQ,GAAG,SAAS,CAAC;AACnD,IAAAA,KAAI,WAAW;AAEf,YAAQ,IAAI,oCAAoC;AAChD,UAAM,QAAQ,MAAMA,KAAI,QAAQ,SAAS,KAAK,KAAK,CAAC;AACpD,YAAQ,IAAI,wBAAmB,KAAK,iBAAiB;AAErD,OAAG,MAAM;AAAA,EACX,CAAC;AAIH,MACG,QAAQ,MAAM,EACd,YAAY,yDAAyD,EACrE,OAAO,SAAS,4DAA4D,EAC5E,OAAO,OAAO,SAA4B;AACzC,UAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,uBAAuB,CAAC;AAC7F,UAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,UAAM,aAAa,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,gBAAgB,CAAC,GAAG;AAElF,UAAM,MAAM,QAAQ,IAAI;AACxB,QAAI,CAAC,UAAU,cAAc,GAAG,GAAG;AACjC,cAAQ,MAAM,oEAA+D;AAC7E,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,UAAM,SAAS,MAAM,WAAW,GAAG;AACnC,QAAI,CAAC,OAAO,cAAc;AACxB,cAAQ,MAAM,iCAA4B;AAC1C,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,UAAM,KAAK,MAAM,UAAU,KAAK,GAAG;AACnC,UAAM,KAAK,GAAG,YAAY;AAC1B,OAAG,kBAAkB;AACrB,UAAMA,OAAM,IAAI,cAAc,QAAQ,GAAG,SAAS,CAAC;AACnD,IAAAA,KAAI,WAAW;AAEf,UAAM,SAASA,KAAI,KAAK;AAExB,YAAQ,IAAI;AAAA,QAAO,mBAAQ,aAAa,CAAC;AAAA,CAAI;AAC7C,YAAQ,IAAI,qBAAqB,OAAO,aAAa,IAAI,mBAAS,OAAO,aAAa,kBAAQ,gBAAM,MAAM,eAAK,EAAE;AACjH,YAAQ,IAAI,qBAAqB,OAAO,gBAAgB,mBAAS,QAAQ,kBAAQ,gBAAM,OAAO,eAAK,EAAE;AACrG,YAAQ,IAAI,qBAAqB,OAAO,gBAAgB,IAAI,mBAAS,OAAO,OAAO,aAAa,IAAI,mBAAmB,kBAAQ,gBAAM,MAAM,eAAK,EAAE;AAElJ,QAAI,KAAK,OAAO,OAAO,aAAa,GAAG;AACrC,YAAM,UAAUA,KAAI,iBAAiB;AACrC,cAAQ,IAAI;AAAA,mBAAiB,OAAO,gBAAgB;AAAA,IACtD,WAAW,OAAO,aAAa,GAAG;AAChC,cAAQ,IAAI;AAAA,IAAO,aAAG,uCAAuC,eAAK,EAAE;AAAA,IACtE;AAEA,QAAI,OAAO,eAAe;AACxB,cAAQ,IAAI,KAAK,aAAG,oDAAoD,eAAK,EAAE;AAAA,IACjF;AAEA,YAAQ,IAAI,EAAE;AACd,OAAG,MAAM;AAAA,EACX,CAAC;AAIH,MACG,QAAQ,eAAe,EACvB,YAAY,8CAA8C,EAC1D,OAAO,gBAAgB,YAAY,MAAM,EACzC,OAAO,OAAO,SAA0B;AACvC,UAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,uBAAuB,CAAC;AAC7F,UAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,UAAM,aAAa,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,gBAAgB,CAAC,GAAG;AAElF,UAAM,MAAM,QAAQ,IAAI;AACxB,QAAI,CAAC,UAAU,cAAc,GAAG,EAAG;AACnC,UAAM,SAAS,MAAM,WAAW,GAAG;AACnC,QAAI,CAAC,OAAO,aAAc;AAE1B,UAAM,KAAK,MAAM,UAAU,KAAK,GAAG;AACnC,UAAM,KAAK,GAAG,YAAY;AAC1B,OAAG,kBAAkB;AACrB,UAAMA,OAAM,IAAI,cAAc,QAAQ,GAAG,SAAS,CAAC;AACnD,IAAAA,KAAI,WAAW;AAGf,UAAM,EAAE,eAAe,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,0BAA0B,CAAC;AACjG,UAAM,QAAQ,IAAI,eAAe,GAAG,SAAS,CAAC;AAC9C,UAAM,WAAW;AACjB,UAAM,YAAY,MAAM,mBAAmB,KAAK,KAAK,GAAG;AACxD,YAAQ,IAAI,SAAS;AAErB,OAAG,MAAM;AAAA,EACX,CAAC;AAEH,MACG,QAAQ,aAAa,EACrB,YAAY,kDAAkD,EAC9D,OAAO,gBAAgB,YAAY,MAAM,EACzC,OAAO,OAAO,SAA0B;AACvC,UAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,uBAAuB,CAAC;AAC7F,UAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,UAAM,aAAa,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,gBAAgB,CAAC,GAAG;AAElF,UAAM,MAAM,QAAQ,IAAI;AACxB,QAAI,CAAC,UAAU,cAAc,GAAG,EAAG;AACnC,UAAM,SAAS,MAAM,WAAW,GAAG;AACnC,QAAI,CAAC,OAAO,aAAc;AAE1B,UAAM,KAAK,MAAM,UAAU,KAAK,GAAG;AACnC,UAAM,KAAK,GAAG,YAAY;AAC1B,OAAG,kBAAkB;AACrB,UAAMA,OAAM,IAAI,cAAc,QAAQ,GAAG,SAAS,CAAC;AACnD,IAAAA,KAAI,WAAW;AACf,IAAAA,KAAI,kBAAkB,KAAK,GAAG;AAE9B,OAAG,MAAM;AAAA,EACX,CAAC;AACL;AAIA,SAAS,UAAU,WAA2B;AAC5C,QAAM,OAAO,KAAK,IAAI,IAAI;AAC1B,QAAM,UAAU,KAAK,MAAM,OAAO,GAAK;AACvC,MAAI,UAAU,GAAI,QAAO,GAAG,OAAO;AACnC,QAAM,QAAQ,KAAK,MAAM,UAAU,EAAE;AACrC,MAAI,QAAQ,GAAI,QAAO,GAAG,KAAK;AAC/B,QAAM,OAAO,KAAK,MAAM,QAAQ,EAAE;AAClC,MAAI,OAAO,EAAG,QAAO,GAAG,IAAI;AAC5B,QAAM,QAAQ,KAAK,MAAM,OAAO,CAAC;AACjC,MAAI,QAAQ,EAAG,QAAO,GAAG,KAAK;AAC9B,QAAM,SAAS,KAAK,MAAM,OAAO,EAAE;AACnC,SAAO,GAAG,MAAM;AAClB;AAEA,SAAS,cAAc,UAA0B;AAC/C,QAAM,QAAQ,SAAS,MAAM,kBAAkB;AAC/C,MAAI,CAAC,MAAO,QAAO,KAAK,KAAK,KAAK,KAAK;AAEvC,QAAM,QAAQ,SAAS,MAAM,CAAC,CAAC;AAC/B,UAAQ,MAAM,CAAC,GAAG;AAAA,IAChB,KAAK;AAAK,aAAO,QAAQ,KAAK,KAAK;AAAA,IACnC,KAAK;AAAK,aAAO,QAAQ,KAAK,KAAK,KAAK;AAAA,IACxC,KAAK;AAAK,aAAO,QAAQ,IAAI,KAAK,KAAK,KAAK;AAAA,IAC5C,KAAK;AAAK,aAAO,QAAQ,KAAK,KAAK,KAAK,KAAK;AAAA,IAC7C;AAAS,aAAO,KAAK,KAAK,KAAK,KAAK;AAAA,EACtC;AACF;",
4
+ "sourcesContent": ["/**\n * KiroGraph Memory CLI \u2014 mirrors MCP tools + maintenance commands\n *\n * kirograph mem search <query>\n * kirograph mem store <content>\n * kirograph mem timeline\n * kirograph mem status\n * kirograph mem prune\n * kirograph mem export\n * kirograph mem import\n * kirograph mem reembed\n * kirograph mem lint\n */\n\nimport { Command } from 'commander';\nimport { dim, reset, violet, bold, section } from '../ui';\n\nexport function register(program: Command): void {\n const mem = program\n .command('mem')\n .description('Persistent cross-session memory (requires enableMemory: true)');\n\n // \u2500\u2500 search \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('search <query>')\n .description('Search memory observations (hybrid FTS + vector)')\n .option('--kind <kind>', 'Filter by kind: decision, error, pattern, architecture, summary, note')\n .option('--limit <n>', 'Max results', '10')\n .option('--session <id>', 'Filter to specific session')\n .option('--format <fmt>', 'Output format: text, json', 'text')\n .action(async (query: string, opts: { kind?: string; limit: string; session?: string; format: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n const { trackCliToolSaving } = await Promise.resolve().then(() => require('./utils.js'));\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const results = await mem.search(query, {\n limit: parseInt(opts.limit),\n kind: opts.kind as any,\n sessionId: opts.session,\n });\n\n if (opts.format === 'json') {\n console.log(JSON.stringify(results.map(r => ({\n id: r.observation.id,\n kind: r.observation.kind,\n content: r.observation.content,\n score: r.score,\n createdAt: r.observation.createdAt,\n sessionId: r.observation.sessionId,\n })), null, 2));\n } else {\n if (results.length === 0) {\n console.log(`\\n ${dim}No observations found for \"${query}\"${reset}\\n`);\n } else {\n console.log(`\\n ${section('Memory Search:')} ${violet}${bold}${query}${reset}\\n`);\n for (const r of results) {\n const age = formatAge(r.observation.createdAt);\n console.log(` ${violet}[${r.observation.kind}]${reset} ${r.observation.content}`);\n console.log(` ${dim}${age} \u00B7 score: ${r.score.toFixed(3)}${reset}\\n`);\n }\n }\n }\n\n const output = results.map(r => `[${r.observation.kind}] ${r.observation.content}`).join('\\n');\n trackCliToolSaving(cwd, 'kirograph_mem_search', output, { limit: parseInt(opts.limit) });\n cg.close();\n });\n\n // \u2500\u2500 store \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('store [content]')\n .description('Store an observation in memory')\n .option('--kind <kind>', 'Observation kind', 'note')\n .action(async (content: string | undefined, opts: { kind: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n\n // Read from stdin if no content argument\n let text = content;\n if (!text) {\n const chunks: Buffer[] = [];\n for await (const chunk of process.stdin) {\n chunks.push(chunk);\n }\n text = Buffer.concat(chunks).toString('utf8').trim();\n }\n\n if (!text) {\n console.error(' \u2716 No content provided. Pass as argument or pipe from stdin.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const result = await mem.store({ content: text, kind: opts.kind as any, source: 'manual' });\n\n if (!result) {\n console.log(` ${dim}Duplicate observation \u2014 already stored.${reset}`);\n } else if (typeof result === 'object' && result.watchmenReady) {\n console.log(` \u2713 Stored observation ${dim}${result.id}${reset} [${violet}${opts.kind}${reset}]`);\n console.log(`\\n ${violet}\u26A1 Watchmen ready${reset} \u2014 ${result.pendingCount} observations since last synthesis`);\n console.log(` Target files:`);\n for (const f of result.targetFiles) {\n console.log(` ${dim}\u00B7${reset} ${f}`);\n }\n if (result.skillTargetDir) {\n console.log(` Skill dir: ${dim}${result.skillTargetDir}/watchmen-<slug>.md${reset} (inclusion: manual)`);\n }\n console.log(`\\n ${dim}Run synthesis manually or let the agentStop hook handle it.${reset}`);\n } else {\n console.log(` \u2713 Stored observation ${dim}${result}${reset} [${violet}${opts.kind}${reset}]`);\n }\n\n cg.close();\n });\n\n // \u2500\u2500 timeline \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('timeline')\n .description('List recent sessions and observations')\n .option('--limit <n>', 'Number of sessions', '5')\n .option('--session <id>', 'Show observations for a specific session')\n .option('--format <fmt>', 'Output format: text, json', 'text')\n .action(async (opts: { limit: string; session?: string; format: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n const { trackCliToolSaving } = await Promise.resolve().then(() => require('./utils.js'));\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const { sessions, observations } = mem.timeline({\n limit: parseInt(opts.limit),\n sessionId: opts.session,\n });\n\n if (opts.format === 'json') {\n console.log(JSON.stringify({\n sessions: sessions.map(s => ({\n id: s.id,\n ide: s.ide,\n startedAt: s.startedAt,\n endedAt: s.endedAt,\n observations: (observations.get(s.id) ?? []).map(o => ({\n id: o.id, kind: o.kind, content: o.content, createdAt: o.createdAt,\n })),\n })),\n }, null, 2));\n } else {\n if (sessions.length === 0) {\n console.log(`\\n ${dim}No memory sessions found.${reset}\\n`);\n } else {\n console.log(`\\n ${section('Memory Timeline')}\\n`);\n for (const session of sessions) {\n const start = new Date(session.startedAt).toISOString().slice(0, 16).replace('T', ' ');\n const status = session.endedAt ? dim + 'ended' + reset : violet + 'active' + reset;\n const obs = observations.get(session.id) ?? [];\n console.log(` ${bold}${start}${reset} [${session.ide ?? 'unknown'}] ${status} \u00B7 ${obs.length} observations`);\n for (const o of obs.slice(0, 5)) {\n console.log(` ${dim}\u00B7${reset} ${violet}[${o.kind}]${reset} ${o.content.slice(0, 100)}`);\n }\n if (obs.length > 5) console.log(` ${dim}\u2026and ${obs.length - 5} more${reset}`);\n console.log('');\n }\n }\n }\n\n const output = sessions.map(s => s.id).join('\\n');\n trackCliToolSaving(cwd, 'kirograph_mem_timeline', output, { limit: parseInt(opts.limit) });\n cg.close();\n });\n\n // \u2500\u2500 status \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('status')\n .description('Show memory subsystem health')\n .action(async () => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const stats = mem.getStats();\n console.log(`\\n ${section('Memory Status')}\\n`);\n console.log(` Sessions: ${bold}${stats.sessions}${reset} (${stats.activeSessions} active)`);\n console.log(` Observations: ${bold}${stats.observations}${reset}`);\n console.log(` Symbol links: ${bold}${stats.links}${reset}`);\n console.log(` Embeddings: ${bold}${stats.vectors}${reset} / ${stats.embeddableCount}`);\n console.log(` Model mismatch: ${stats.modelMismatch ? violet + '\u26A0 yes \u2014 run kirograph mem reembed' + reset : dim + 'no' + reset}`);\n console.log(` Compression: ${config.cavemanMode !== 'off' ? violet + config.cavemanMode + reset : dim + 'off (storing raw)' + reset}`);\n console.log('');\n\n cg.close();\n });\n\n // \u2500\u2500 prune \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('prune')\n .description('Remove old observations')\n .option('--older-than <duration>', 'Duration (e.g. 90d, 6m)', '90d')\n .action(async (opts: { olderThan: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n const ms = parseDuration(opts.olderThan);\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const deleted = mem.prune(ms);\n console.log(` \u2713 Pruned ${deleted} observation(s) older than ${opts.olderThan}`);\n\n cg.close();\n });\n\n // \u2500\u2500 export \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('export')\n .description('Export memory observations')\n .option('--format <fmt>', 'Output format: jsonl, md', 'jsonl')\n .action(async (opts: { format: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const { sessions, observations } = mem.timeline({ limit: 1000 });\n\n if (opts.format === 'jsonl') {\n for (const session of sessions) {\n const obs = observations.get(session.id) ?? [];\n for (const o of obs) {\n console.log(JSON.stringify({\n id: o.id,\n content: o.content,\n content_raw: o.contentRaw,\n kind: o.kind,\n tags: o.tags,\n created_at: o.createdAt,\n session_id: o.sessionId,\n }));\n }\n }\n } else {\n // Markdown format\n for (const session of sessions) {\n const start = new Date(session.startedAt).toISOString().slice(0, 10);\n console.log(`## Session ${start} (${session.ide ?? 'unknown'})\\n`);\n const obs = observations.get(session.id) ?? [];\n for (const o of obs) {\n const time = new Date(o.createdAt).toISOString().slice(11, 16);\n console.log(`### [${o.kind}] ${time}`);\n console.log(o.content);\n console.log('');\n }\n }\n }\n\n cg.close();\n });\n\n // \u2500\u2500 import \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('import <file>')\n .description('Import observations from JSONL backup')\n .action(async (file: string) => {\n const fs = await import('fs');\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n if (!fs.existsSync(file)) {\n console.error(` \u2716 File not found: ${file}`);\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const lines = fs.readFileSync(file, 'utf8').split('\\n').filter(l => l.trim());\n let imported = 0;\n let skipped = 0;\n\n for (const line of lines) {\n try {\n const data = JSON.parse(line);\n const id = await mem.store({\n content: data.content_raw || data.content,\n kind: data.kind ?? 'note',\n source: 'manual',\n tags: data.tags,\n });\n if (id) imported++;\n else skipped++;\n } catch {\n skipped++;\n }\n }\n\n console.log(` \u2713 Imported ${imported} observation(s), skipped ${skipped} (duplicates/errors)`);\n cg.close();\n });\n\n // \u2500\u2500 reembed \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('reembed')\n .description('Re-embed all observations with the current model')\n .option('--batch <n>', 'Batch size', '32')\n .action(async (opts: { batch: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n console.log(' Re-embedding all observations...');\n const count = await mem.reembed(parseInt(opts.batch));\n console.log(` \u2713 Re-embedded ${count} observation(s)`);\n\n cg.close();\n });\n\n // \u2500\u2500 lint \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('lint')\n .description('Health check: find stale links, model mismatch, orphans')\n .option('--fix', 'Auto-fix issues (remove stale links, close stale sessions)')\n .action(async (opts: { fix?: boolean }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const result = mem.lint();\n\n console.log(`\\n ${section('Memory Lint')}\\n`);\n console.log(` Stale links: ${result.staleLinks > 0 ? violet + result.staleLinks + reset : dim + '0' + reset}`);\n console.log(` Model mismatch: ${result.modelMismatch ? violet + 'yes' + reset : dim + 'no' + reset}`);\n console.log(` Stale sessions: ${result.staleSessions > 0 ? violet + String(result.staleSessions) + ' (auto-closed)' + reset : dim + '0' + reset}`);\n\n if (opts.fix && result.staleLinks > 0) {\n const removed = mem.removeStaleLinks();\n console.log(`\\n \u2713 Removed ${removed} stale link(s)`);\n } else if (result.staleLinks > 0) {\n console.log(`\\n ${dim}Run with --fix to remove stale links${reset}`);\n }\n\n if (result.modelMismatch) {\n console.log(` ${dim}Run 'kirograph mem reembed' to fix model mismatch${reset}`);\n }\n\n console.log('');\n cg.close();\n });\n\n // \u2500\u2500 watchmen \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n const watchmen = mem\n .command('watchmen')\n .description('Watchmen \u2014 workspace brief synthesis from memory observations (requires enableWatchmen: true)');\n\n watchmen\n .command('status')\n .description('Show pending observation count and which files would be written on next synthesis')\n .action(async () => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { WatchmenChecker } = await Promise.resolve().then(() => require('../../watchmen/index.js'));\n const { MemoryDatabase } = await Promise.resolve().then(() => require('../../memory/database.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n if (!config.enableWatchmen) {\n console.error(' \u2716 Watchmen is not enabled. Set enableWatchmen: true in .kirograph/config.json');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const memDb = new MemoryDatabase(db.getRawDb());\n memDb.initialize();\n\n const checker = new WatchmenChecker(config.watchmenThreshold);\n const { ready, pendingCount } = checker.shouldSynthesize(memDb);\n const { targetFiles } = checker.buildReadyResponse('', pendingCount, cwd);\n\n console.log(`\\n ${section('Watchmen Status')}\\n`);\n console.log(` Pending observations: ${bold}${pendingCount}${reset} / ${config.watchmenThreshold} threshold`);\n console.log(` Ready to synthesize: ${ready ? violet + 'yes' + reset : dim + 'no' + reset}`);\n console.log(` Target files:`);\n for (const f of targetFiles) {\n console.log(` ${dim}\u00B7${reset} ${f}`);\n }\n console.log('');\n\n cg.close();\n });\n\n watchmen\n .command('synthesize')\n .description('Run local model synthesis immediately (requires watchmenSynthesisMode: local)')\n .option('--force', 'Run even if below threshold')\n .option('--quiet', 'Suppress output (used by runCommand hook)')\n .action(async (opts: { force?: boolean; quiet?: boolean }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { WatchmenChecker } = await Promise.resolve().then(() => require('../../watchmen/index.js'));\n const { MemoryDatabase } = await Promise.resolve().then(() => require('../../memory/database.js'));\n const { runLocalSynthesis } = await Promise.resolve().then(() => require('../../watchmen/synthesize.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n if (!opts.quiet) console.error(' \u2716 KiroGraph is not initialized.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory || !config.enableWatchmen) {\n if (!opts.quiet) console.error(' \u2716 Watchmen is not enabled (enableMemory + enableWatchmen required).');\n process.exit(1);\n }\n if (config.watchmenSynthesisMode !== 'local') {\n if (!opts.quiet) console.error(' \u2716 watchmenSynthesisMode is not \"local\" \u2014 use the agent hook instead.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const memDb = new MemoryDatabase(db.getRawDb());\n memDb.initialize();\n\n const checker = new WatchmenChecker(config.watchmenThreshold);\n const { ready, pendingCount } = checker.shouldSynthesize(memDb);\n\n if (!ready && !opts.force) {\n if (!opts.quiet) console.log(` ${dim}Watchmen: ${pendingCount}/${config.watchmenThreshold} observations \u2014 threshold not reached.${reset}`);\n cg.close();\n return;\n }\n\n const observations = memDb.getObservationsSinceLastSummary(50);\n if (observations.length === 0) {\n if (!opts.quiet) console.log(` ${dim}No observations to synthesize.${reset}`);\n cg.close();\n return;\n }\n\n if (!opts.quiet) {\n console.log(`\\n ${section('Watchmen Synthesis')}\\n`);\n console.log(` Synthesizing ${observations.length} observations with ${dim}${config.watchmenLocalModel}${reset}`);\n const cacheDir = require('path').join(require('os').homedir(), '.kirograph', 'models');\n const cached = require('fs').existsSync(require('path').join(cacheDir, config.watchmenLocalModel));\n if (!cached) console.log(` ${dim}Downloading model \u2014 first run only (cached in ~/.kirograph/models/)${reset}`);\n console.log('');\n }\n\n const readyResult = checker.buildReadyResponse('', pendingCount, cwd);\n const result = await runLocalSynthesis(observations, readyResult, config.watchmenLocalModel, cwd, !!opts.quiet);\n\n // Store summary observation to reset counter\n const mgr = new MemoryManager(config, db.getRawDb(), cwd);\n mgr.initialize();\n await mgr.store({ content: result.summaryObservation, kind: 'summary', source: 'agent' });\n\n if (!opts.quiet) {\n if (result.filesWritten.length) console.log(` \u2713 Brief written to: ${result.filesWritten.map(f => violet + f + reset).join(', ')}`);\n if (result.skillsWritten.length) console.log(` \u2713 Skills written: ${result.skillsWritten.map(f => violet + f + reset).join(', ')}`);\n if (result.skillsPruned.length) console.log(` ${dim}\u2717 Pruned stale: ${result.skillsPruned.join(', ')}${reset}`);\n console.log('');\n }\n\n cg.close();\n });\n\n watchmen\n .command('reset')\n .description('Store a summary observation to reset the synthesis counter without running synthesis')\n .action(async () => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n if (!config.enableWatchmen) {\n console.error(' \u2716 Watchmen is not enabled.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mgr = new MemoryManager(config, db.getRawDb(), cwd);\n mgr.initialize();\n\n // Bypass watchmen check by storing directly as summary\n const id = await mgr.store({ content: `Watchmen counter reset manually via CLI at ${new Date().toISOString()}.`, kind: 'summary', source: 'manual' });\n if (id) {\n console.log(` \u2713 Counter reset \u2014 pending observations set back to 0`);\n } else {\n console.log(` ${dim}Already at zero \u2014 nothing to reset.${reset}`);\n }\n\n cg.close();\n });\n\n // \u2500\u2500 session management (for hooks) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('session-start')\n .description('Start a new memory session (called by hooks)')\n .option('--ide <name>', 'IDE name', 'kiro')\n .action(async (opts: { ide: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) return;\n const config = await loadConfig(cwd);\n if (!config.enableMemory) return;\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n // getOrCreateSession handles auto-creation\n const { MemoryDatabase } = await Promise.resolve().then(() => require('../../memory/database.js'));\n const memDb = new MemoryDatabase(db.getRawDb());\n memDb.initialize();\n const sessionId = memDb.getOrCreateSession(opts.ide, cwd);\n console.log(sessionId);\n\n cg.close();\n });\n\n mem\n .command('session-end')\n .description('End the current memory session (called by hooks)')\n .option('--ide <name>', 'IDE name', 'kiro')\n .action(async (opts: { ide: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) return;\n const config = await loadConfig(cwd);\n if (!config.enableMemory) return;\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n mem.endCurrentSession(opts.ide);\n\n cg.close();\n });\n}\n\n// \u2500\u2500 Helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction formatAge(timestamp: number): string {\n const diff = Date.now() - timestamp;\n const minutes = Math.floor(diff / 60000);\n if (minutes < 60) return `${minutes}m ago`;\n const hours = Math.floor(minutes / 60);\n if (hours < 24) return `${hours}h ago`;\n const days = Math.floor(hours / 24);\n if (days < 7) return `${days}d ago`;\n const weeks = Math.floor(days / 7);\n if (weeks < 5) return `${weeks}w ago`;\n const months = Math.floor(days / 30);\n return `${months}mo ago`;\n}\n\nfunction parseDuration(duration: string): number {\n const match = duration.match(/^(\\d+)(d|m|w|h)$/);\n if (!match) return 90 * 24 * 60 * 60 * 1000; // default 90 days\n\n const value = parseInt(match[1]);\n switch (match[2]) {\n case 'h': return value * 60 * 60 * 1000;\n case 'd': return value * 24 * 60 * 60 * 1000;\n case 'w': return value * 7 * 24 * 60 * 60 * 1000;\n case 'm': return value * 30 * 24 * 60 * 60 * 1000;\n default: return 90 * 24 * 60 * 60 * 1000;\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["mem"]
7
7
  }
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function register(program: Command): void;
3
+ //# sourceMappingURL=path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/path.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2D/C"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function register(program: Command): void;
3
+ //# sourceMappingURL=pattern.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/pattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4CpC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8mB/C"}