@vinaes/succ 1.3.19

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 (781) hide show
  1. package/LICENSE +87 -0
  2. package/README.md +588 -0
  3. package/agents/succ-checkpoint-manager.md +51 -0
  4. package/agents/succ-code-reviewer.md +181 -0
  5. package/agents/succ-context-optimizer.md +83 -0
  6. package/agents/succ-debug.md +224 -0
  7. package/agents/succ-decision-auditor.md +74 -0
  8. package/agents/succ-deep-search.md +41 -0
  9. package/agents/succ-diff-reviewer.md +123 -0
  10. package/agents/succ-explore.md +83 -0
  11. package/agents/succ-general.md +109 -0
  12. package/agents/succ-knowledge-indexer.md +45 -0
  13. package/agents/succ-knowledge-mapper.md +61 -0
  14. package/agents/succ-memory-curator.md +43 -0
  15. package/agents/succ-memory-health-monitor.md +55 -0
  16. package/agents/succ-pattern-detective.md +62 -0
  17. package/agents/succ-plan.md +172 -0
  18. package/agents/succ-quality-improvement-coach.md +63 -0
  19. package/agents/succ-readiness-improver.md +62 -0
  20. package/agents/succ-session-handoff-orchestrator.md +54 -0
  21. package/agents/succ-session-reviewer.md +46 -0
  22. package/agents/succ-style-tracker.md +73 -0
  23. package/dist/cli.d.ts +3 -0
  24. package/dist/cli.d.ts.map +1 -0
  25. package/dist/cli.js +749 -0
  26. package/dist/cli.js.map +1 -0
  27. package/dist/commands/agents-md.d.ts +16 -0
  28. package/dist/commands/agents-md.d.ts.map +1 -0
  29. package/dist/commands/agents-md.js +33 -0
  30. package/dist/commands/agents-md.js.map +1 -0
  31. package/dist/commands/analyze-agents.d.ts +20 -0
  32. package/dist/commands/analyze-agents.d.ts.map +1 -0
  33. package/dist/commands/analyze-agents.js +305 -0
  34. package/dist/commands/analyze-agents.js.map +1 -0
  35. package/dist/commands/analyze-helpers.d.ts +22 -0
  36. package/dist/commands/analyze-helpers.d.ts.map +1 -0
  37. package/dist/commands/analyze-helpers.js +38 -0
  38. package/dist/commands/analyze-helpers.js.map +1 -0
  39. package/dist/commands/analyze-profile.d.ts +53 -0
  40. package/dist/commands/analyze-profile.d.ts.map +1 -0
  41. package/dist/commands/analyze-profile.js +638 -0
  42. package/dist/commands/analyze-profile.js.map +1 -0
  43. package/dist/commands/analyze-recursive.d.ts +20 -0
  44. package/dist/commands/analyze-recursive.d.ts.map +1 -0
  45. package/dist/commands/analyze-recursive.js +326 -0
  46. package/dist/commands/analyze-recursive.js.map +1 -0
  47. package/dist/commands/analyze-utils.d.ts +83 -0
  48. package/dist/commands/analyze-utils.d.ts.map +1 -0
  49. package/dist/commands/analyze-utils.js +541 -0
  50. package/dist/commands/analyze-utils.js.map +1 -0
  51. package/dist/commands/analyze.d.ts +15 -0
  52. package/dist/commands/analyze.d.ts.map +1 -0
  53. package/dist/commands/analyze.js +265 -0
  54. package/dist/commands/analyze.js.map +1 -0
  55. package/dist/commands/backfill.d.ts +22 -0
  56. package/dist/commands/backfill.d.ts.map +1 -0
  57. package/dist/commands/backfill.js +62 -0
  58. package/dist/commands/backfill.js.map +1 -0
  59. package/dist/commands/benchmark-quality.d.ts +18 -0
  60. package/dist/commands/benchmark-quality.d.ts.map +1 -0
  61. package/dist/commands/benchmark-quality.js +316 -0
  62. package/dist/commands/benchmark-quality.js.map +1 -0
  63. package/dist/commands/benchmark-sqlite-vec.d.ts +12 -0
  64. package/dist/commands/benchmark-sqlite-vec.d.ts.map +1 -0
  65. package/dist/commands/benchmark-sqlite-vec.js +281 -0
  66. package/dist/commands/benchmark-sqlite-vec.js.map +1 -0
  67. package/dist/commands/benchmark.d.ts +57 -0
  68. package/dist/commands/benchmark.d.ts.map +1 -0
  69. package/dist/commands/benchmark.js +682 -0
  70. package/dist/commands/benchmark.js.map +1 -0
  71. package/dist/commands/chat.d.ts +14 -0
  72. package/dist/commands/chat.d.ts.map +1 -0
  73. package/dist/commands/chat.js +84 -0
  74. package/dist/commands/chat.js.map +1 -0
  75. package/dist/commands/checkpoint.d.ts +27 -0
  76. package/dist/commands/checkpoint.d.ts.map +1 -0
  77. package/dist/commands/checkpoint.js +181 -0
  78. package/dist/commands/checkpoint.js.map +1 -0
  79. package/dist/commands/clear.d.ts +9 -0
  80. package/dist/commands/clear.d.ts.map +1 -0
  81. package/dist/commands/clear.js +31 -0
  82. package/dist/commands/clear.js.map +1 -0
  83. package/dist/commands/config.d.ts +26 -0
  84. package/dist/commands/config.d.ts.map +1 -0
  85. package/dist/commands/config.js +247 -0
  86. package/dist/commands/config.js.map +1 -0
  87. package/dist/commands/consolidate.d.ts +21 -0
  88. package/dist/commands/consolidate.d.ts.map +1 -0
  89. package/dist/commands/consolidate.js +117 -0
  90. package/dist/commands/consolidate.js.map +1 -0
  91. package/dist/commands/daemon.d.ts +48 -0
  92. package/dist/commands/daemon.d.ts.map +1 -0
  93. package/dist/commands/daemon.js +218 -0
  94. package/dist/commands/daemon.js.map +1 -0
  95. package/dist/commands/embedding.d.ts +26 -0
  96. package/dist/commands/embedding.d.ts.map +1 -0
  97. package/dist/commands/embedding.js +168 -0
  98. package/dist/commands/embedding.js.map +1 -0
  99. package/dist/commands/graph.d.ts +20 -0
  100. package/dist/commands/graph.d.ts.map +1 -0
  101. package/dist/commands/graph.js +128 -0
  102. package/dist/commands/graph.js.map +1 -0
  103. package/dist/commands/index-code.d.ts +23 -0
  104. package/dist/commands/index-code.d.ts.map +1 -0
  105. package/dist/commands/index-code.js +218 -0
  106. package/dist/commands/index-code.js.map +1 -0
  107. package/dist/commands/index.d.ts +23 -0
  108. package/dist/commands/index.d.ts.map +1 -0
  109. package/dist/commands/index.js +217 -0
  110. package/dist/commands/index.js.map +1 -0
  111. package/dist/commands/init-templates.d.ts +21 -0
  112. package/dist/commands/init-templates.d.ts.map +1 -0
  113. package/dist/commands/init-templates.js +487 -0
  114. package/dist/commands/init-templates.js.map +1 -0
  115. package/dist/commands/init.d.ts +10 -0
  116. package/dist/commands/init.d.ts.map +1 -0
  117. package/dist/commands/init.js +865 -0
  118. package/dist/commands/init.js.map +1 -0
  119. package/dist/commands/memories.d.ts +47 -0
  120. package/dist/commands/memories.d.ts.map +1 -0
  121. package/dist/commands/memories.js +597 -0
  122. package/dist/commands/memories.js.map +1 -0
  123. package/dist/commands/migrate.d.ts +19 -0
  124. package/dist/commands/migrate.d.ts.map +1 -0
  125. package/dist/commands/migrate.js +154 -0
  126. package/dist/commands/migrate.js.map +1 -0
  127. package/dist/commands/prd.d.ts +46 -0
  128. package/dist/commands/prd.d.ts.map +1 -0
  129. package/dist/commands/prd.js +378 -0
  130. package/dist/commands/prd.js.map +1 -0
  131. package/dist/commands/precompute-context.d.ts +11 -0
  132. package/dist/commands/precompute-context.d.ts.map +1 -0
  133. package/dist/commands/precompute-context.js +12 -0
  134. package/dist/commands/precompute-context.js.map +1 -0
  135. package/dist/commands/progress.d.ts +16 -0
  136. package/dist/commands/progress.d.ts.map +1 -0
  137. package/dist/commands/progress.js +38 -0
  138. package/dist/commands/progress.js.map +1 -0
  139. package/dist/commands/reindex.d.ts +17 -0
  140. package/dist/commands/reindex.d.ts.map +1 -0
  141. package/dist/commands/reindex.js +83 -0
  142. package/dist/commands/reindex.js.map +1 -0
  143. package/dist/commands/retention.d.ts +19 -0
  144. package/dist/commands/retention.d.ts.map +1 -0
  145. package/dist/commands/retention.js +162 -0
  146. package/dist/commands/retention.js.map +1 -0
  147. package/dist/commands/score.d.ts +10 -0
  148. package/dist/commands/score.d.ts.map +1 -0
  149. package/dist/commands/score.js +28 -0
  150. package/dist/commands/score.js.map +1 -0
  151. package/dist/commands/search.d.ts +7 -0
  152. package/dist/commands/search.d.ts.map +1 -0
  153. package/dist/commands/search.js +89 -0
  154. package/dist/commands/search.js.map +1 -0
  155. package/dist/commands/session-summary.d.ts +15 -0
  156. package/dist/commands/session-summary.d.ts.map +1 -0
  157. package/dist/commands/session-summary.js +16 -0
  158. package/dist/commands/session-summary.js.map +1 -0
  159. package/dist/commands/setup.d.ts +6 -0
  160. package/dist/commands/setup.d.ts.map +1 -0
  161. package/dist/commands/setup.js +222 -0
  162. package/dist/commands/setup.js.map +1 -0
  163. package/dist/commands/soul.d.ts +9 -0
  164. package/dist/commands/soul.d.ts.map +1 -0
  165. package/dist/commands/soul.js +256 -0
  166. package/dist/commands/soul.js.map +1 -0
  167. package/dist/commands/stats.d.ts +18 -0
  168. package/dist/commands/stats.d.ts.map +1 -0
  169. package/dist/commands/stats.js +138 -0
  170. package/dist/commands/stats.js.map +1 -0
  171. package/dist/commands/status.d.ts +2 -0
  172. package/dist/commands/status.d.ts.map +1 -0
  173. package/dist/commands/status.js +145 -0
  174. package/dist/commands/status.js.map +1 -0
  175. package/dist/commands/train-bpe.d.ts +8 -0
  176. package/dist/commands/train-bpe.d.ts.map +1 -0
  177. package/dist/commands/train-bpe.js +35 -0
  178. package/dist/commands/train-bpe.js.map +1 -0
  179. package/dist/commands/watch.d.ts +22 -0
  180. package/dist/commands/watch.d.ts.map +1 -0
  181. package/dist/commands/watch.js +171 -0
  182. package/dist/commands/watch.js.map +1 -0
  183. package/dist/daemon/analyzer.d.ts +54 -0
  184. package/dist/daemon/analyzer.d.ts.map +1 -0
  185. package/dist/daemon/analyzer.js +362 -0
  186. package/dist/daemon/analyzer.js.map +1 -0
  187. package/dist/daemon/client.d.ts +87 -0
  188. package/dist/daemon/client.d.ts.map +1 -0
  189. package/dist/daemon/client.js +356 -0
  190. package/dist/daemon/client.js.map +1 -0
  191. package/dist/daemon/index.d.ts +12 -0
  192. package/dist/daemon/index.d.ts.map +1 -0
  193. package/dist/daemon/index.js +12 -0
  194. package/dist/daemon/index.js.map +1 -0
  195. package/dist/daemon/service.d.ts +51 -0
  196. package/dist/daemon/service.d.ts.map +1 -0
  197. package/dist/daemon/service.js +1203 -0
  198. package/dist/daemon/service.js.map +1 -0
  199. package/dist/daemon/session-processor.d.ts +85 -0
  200. package/dist/daemon/session-processor.d.ts.map +1 -0
  201. package/dist/daemon/session-processor.js +571 -0
  202. package/dist/daemon/session-processor.js.map +1 -0
  203. package/dist/daemon/sessions.d.ts +62 -0
  204. package/dist/daemon/sessions.d.ts.map +1 -0
  205. package/dist/daemon/sessions.js +192 -0
  206. package/dist/daemon/sessions.js.map +1 -0
  207. package/dist/daemon/watcher.d.ts +52 -0
  208. package/dist/daemon/watcher.d.ts.map +1 -0
  209. package/dist/daemon/watcher.js +363 -0
  210. package/dist/daemon/watcher.js.map +1 -0
  211. package/dist/lib/agents-md-generator.d.ts +33 -0
  212. package/dist/lib/agents-md-generator.d.ts.map +1 -0
  213. package/dist/lib/agents-md-generator.js +156 -0
  214. package/dist/lib/agents-md-generator.js.map +1 -0
  215. package/dist/lib/ai-readiness.d.ts +132 -0
  216. package/dist/lib/ai-readiness.d.ts.map +1 -0
  217. package/dist/lib/ai-readiness.js +702 -0
  218. package/dist/lib/ai-readiness.js.map +1 -0
  219. package/dist/lib/analyze-state.d.ts +34 -0
  220. package/dist/lib/analyze-state.d.ts.map +1 -0
  221. package/dist/lib/analyze-state.js +106 -0
  222. package/dist/lib/analyze-state.js.map +1 -0
  223. package/dist/lib/benchmark.d.ts +250 -0
  224. package/dist/lib/benchmark.d.ts.map +1 -0
  225. package/dist/lib/benchmark.js +778 -0
  226. package/dist/lib/benchmark.js.map +1 -0
  227. package/dist/lib/bm25.d.ts +114 -0
  228. package/dist/lib/bm25.d.ts.map +1 -0
  229. package/dist/lib/bm25.js +727 -0
  230. package/dist/lib/bm25.js.map +1 -0
  231. package/dist/lib/bpe.d.ts +70 -0
  232. package/dist/lib/bpe.d.ts.map +1 -0
  233. package/dist/lib/bpe.js +270 -0
  234. package/dist/lib/bpe.js.map +1 -0
  235. package/dist/lib/checkpoint.d.ts +124 -0
  236. package/dist/lib/checkpoint.d.ts.map +1 -0
  237. package/dist/lib/checkpoint.js +321 -0
  238. package/dist/lib/checkpoint.js.map +1 -0
  239. package/dist/lib/chunker.d.ts +47 -0
  240. package/dist/lib/chunker.d.ts.map +1 -0
  241. package/dist/lib/chunker.js +358 -0
  242. package/dist/lib/chunker.js.map +1 -0
  243. package/dist/lib/claude-ws-transport.d.ts +76 -0
  244. package/dist/lib/claude-ws-transport.d.ts.map +1 -0
  245. package/dist/lib/claude-ws-transport.js +487 -0
  246. package/dist/lib/claude-ws-transport.js.map +1 -0
  247. package/dist/lib/compact-briefing.d.ts +22 -0
  248. package/dist/lib/compact-briefing.d.ts.map +1 -0
  249. package/dist/lib/compact-briefing.js +180 -0
  250. package/dist/lib/compact-briefing.js.map +1 -0
  251. package/dist/lib/config-defaults.d.ts +41 -0
  252. package/dist/lib/config-defaults.d.ts.map +1 -0
  253. package/dist/lib/config-defaults.js +99 -0
  254. package/dist/lib/config-defaults.js.map +1 -0
  255. package/dist/lib/config-display.d.ts +16 -0
  256. package/dist/lib/config-display.d.ts.map +1 -0
  257. package/dist/lib/config-display.js +408 -0
  258. package/dist/lib/config-display.js.map +1 -0
  259. package/dist/lib/config-types.d.ts +601 -0
  260. package/dist/lib/config-types.d.ts.map +1 -0
  261. package/dist/lib/config-types.js +7 -0
  262. package/dist/lib/config-types.js.map +1 -0
  263. package/dist/lib/config-validation.d.ts +19 -0
  264. package/dist/lib/config-validation.d.ts.map +1 -0
  265. package/dist/lib/config-validation.js +136 -0
  266. package/dist/lib/config-validation.js.map +1 -0
  267. package/dist/lib/config.d.ts +143 -0
  268. package/dist/lib/config.d.ts.map +1 -0
  269. package/dist/lib/config.js +689 -0
  270. package/dist/lib/config.js.map +1 -0
  271. package/dist/lib/consolidate.d.ts +115 -0
  272. package/dist/lib/consolidate.d.ts.map +1 -0
  273. package/dist/lib/consolidate.js +600 -0
  274. package/dist/lib/consolidate.js.map +1 -0
  275. package/dist/lib/db/bm25-indexes.d.ts +58 -0
  276. package/dist/lib/db/bm25-indexes.d.ts.map +1 -0
  277. package/dist/lib/db/bm25-indexes.js +333 -0
  278. package/dist/lib/db/bm25-indexes.js.map +1 -0
  279. package/dist/lib/db/bpe.d.ts +18 -0
  280. package/dist/lib/db/bpe.d.ts.map +1 -0
  281. package/dist/lib/db/bpe.js +44 -0
  282. package/dist/lib/db/bpe.js.map +1 -0
  283. package/dist/lib/db/connection.d.ts +47 -0
  284. package/dist/lib/db/connection.d.ts.map +1 -0
  285. package/dist/lib/db/connection.js +114 -0
  286. package/dist/lib/db/connection.js.map +1 -0
  287. package/dist/lib/db/documents.d.ts +58 -0
  288. package/dist/lib/db/documents.d.ts.map +1 -0
  289. package/dist/lib/db/documents.js +374 -0
  290. package/dist/lib/db/documents.js.map +1 -0
  291. package/dist/lib/db/file-hash.d.ts +26 -0
  292. package/dist/lib/db/file-hash.d.ts.map +1 -0
  293. package/dist/lib/db/file-hash.js +56 -0
  294. package/dist/lib/db/file-hash.js.map +1 -0
  295. package/dist/lib/db/global-memories.d.ts +62 -0
  296. package/dist/lib/db/global-memories.d.ts.map +1 -0
  297. package/dist/lib/db/global-memories.js +173 -0
  298. package/dist/lib/db/global-memories.js.map +1 -0
  299. package/dist/lib/db/graph.d.ts +163 -0
  300. package/dist/lib/db/graph.d.ts.map +1 -0
  301. package/dist/lib/db/graph.js +488 -0
  302. package/dist/lib/db/graph.js.map +1 -0
  303. package/dist/lib/db/helpers.d.ts +13 -0
  304. package/dist/lib/db/helpers.d.ts.map +1 -0
  305. package/dist/lib/db/helpers.js +21 -0
  306. package/dist/lib/db/helpers.js.map +1 -0
  307. package/dist/lib/db/hybrid-search.d.ts +64 -0
  308. package/dist/lib/db/hybrid-search.d.ts.map +1 -0
  309. package/dist/lib/db/hybrid-search.js +549 -0
  310. package/dist/lib/db/hybrid-search.js.map +1 -0
  311. package/dist/lib/db/index.d.ts +23 -0
  312. package/dist/lib/db/index.d.ts.map +1 -0
  313. package/dist/lib/db/index.js +23 -0
  314. package/dist/lib/db/index.js.map +1 -0
  315. package/dist/lib/db/memories.d.ts +174 -0
  316. package/dist/lib/db/memories.d.ts.map +1 -0
  317. package/dist/lib/db/memories.js +866 -0
  318. package/dist/lib/db/memories.js.map +1 -0
  319. package/dist/lib/db/retention.d.ts +64 -0
  320. package/dist/lib/db/retention.d.ts.map +1 -0
  321. package/dist/lib/db/retention.js +115 -0
  322. package/dist/lib/db/retention.js.map +1 -0
  323. package/dist/lib/db/schema.d.ts +29 -0
  324. package/dist/lib/db/schema.d.ts.map +1 -0
  325. package/dist/lib/db/schema.js +832 -0
  326. package/dist/lib/db/schema.js.map +1 -0
  327. package/dist/lib/db/skills.d.ts +65 -0
  328. package/dist/lib/db/skills.d.ts.map +1 -0
  329. package/dist/lib/db/skills.js +119 -0
  330. package/dist/lib/db/skills.js.map +1 -0
  331. package/dist/lib/db/token-frequency.d.ts +34 -0
  332. package/dist/lib/db/token-frequency.d.ts.map +1 -0
  333. package/dist/lib/db/token-frequency.js +92 -0
  334. package/dist/lib/db/token-frequency.js.map +1 -0
  335. package/dist/lib/db/token-stats.d.ts +43 -0
  336. package/dist/lib/db/token-stats.d.ts.map +1 -0
  337. package/dist/lib/db/token-stats.js +59 -0
  338. package/dist/lib/db/token-stats.js.map +1 -0
  339. package/dist/lib/db/types.d.ts +57 -0
  340. package/dist/lib/db/types.d.ts.map +1 -0
  341. package/dist/lib/db/types.js +5 -0
  342. package/dist/lib/db/types.js.map +1 -0
  343. package/dist/lib/db/web-search-history.d.ts +22 -0
  344. package/dist/lib/db/web-search-history.d.ts.map +1 -0
  345. package/dist/lib/db/web-search-history.js +107 -0
  346. package/dist/lib/db/web-search-history.js.map +1 -0
  347. package/dist/lib/debug/state.d.ts +17 -0
  348. package/dist/lib/debug/state.d.ts.map +1 -0
  349. package/dist/lib/debug/state.js +131 -0
  350. package/dist/lib/debug/state.js.map +1 -0
  351. package/dist/lib/debug/types.d.ts +74 -0
  352. package/dist/lib/debug/types.d.ts.map +1 -0
  353. package/dist/lib/debug/types.js +85 -0
  354. package/dist/lib/debug/types.js.map +1 -0
  355. package/dist/lib/embedding-pool.d.ts +37 -0
  356. package/dist/lib/embedding-pool.d.ts.map +1 -0
  357. package/dist/lib/embedding-pool.js +159 -0
  358. package/dist/lib/embedding-pool.js.map +1 -0
  359. package/dist/lib/embedding-worker.d.ts +7 -0
  360. package/dist/lib/embedding-worker.d.ts.map +1 -0
  361. package/dist/lib/embedding-worker.js +49 -0
  362. package/dist/lib/embedding-worker.js.map +1 -0
  363. package/dist/lib/embeddings.d.ts +54 -0
  364. package/dist/lib/embeddings.d.ts.map +1 -0
  365. package/dist/lib/embeddings.js +437 -0
  366. package/dist/lib/embeddings.js.map +1 -0
  367. package/dist/lib/errors.d.ts +40 -0
  368. package/dist/lib/errors.d.ts.map +1 -0
  369. package/dist/lib/errors.js +66 -0
  370. package/dist/lib/errors.js.map +1 -0
  371. package/dist/lib/fault-logger.d.ts +35 -0
  372. package/dist/lib/fault-logger.d.ts.map +1 -0
  373. package/dist/lib/fault-logger.js +182 -0
  374. package/dist/lib/fault-logger.js.map +1 -0
  375. package/dist/lib/graph/centrality.d.ts +34 -0
  376. package/dist/lib/graph/centrality.d.ts.map +1 -0
  377. package/dist/lib/graph/centrality.js +76 -0
  378. package/dist/lib/graph/centrality.js.map +1 -0
  379. package/dist/lib/graph/cleanup.d.ts +36 -0
  380. package/dist/lib/graph/cleanup.d.ts.map +1 -0
  381. package/dist/lib/graph/cleanup.js +96 -0
  382. package/dist/lib/graph/cleanup.js.map +1 -0
  383. package/dist/lib/graph/community-detection.d.ts +61 -0
  384. package/dist/lib/graph/community-detection.d.ts.map +1 -0
  385. package/dist/lib/graph/community-detection.js +218 -0
  386. package/dist/lib/graph/community-detection.js.map +1 -0
  387. package/dist/lib/graph/contextual-proximity.d.ts +41 -0
  388. package/dist/lib/graph/contextual-proximity.d.ts.map +1 -0
  389. package/dist/lib/graph/contextual-proximity.js +125 -0
  390. package/dist/lib/graph/contextual-proximity.js.map +1 -0
  391. package/dist/lib/graph/llm-relations.d.ts +54 -0
  392. package/dist/lib/graph/llm-relations.d.ts.map +1 -0
  393. package/dist/lib/graph/llm-relations.js +265 -0
  394. package/dist/lib/graph/llm-relations.js.map +1 -0
  395. package/dist/lib/graph-export.d.ts +13 -0
  396. package/dist/lib/graph-export.d.ts.map +1 -0
  397. package/dist/lib/graph-export.js +637 -0
  398. package/dist/lib/graph-export.js.map +1 -0
  399. package/dist/lib/graph-scheduler.d.ts +7 -0
  400. package/dist/lib/graph-scheduler.d.ts.map +1 -0
  401. package/dist/lib/graph-scheduler.js +21 -0
  402. package/dist/lib/graph-scheduler.js.map +1 -0
  403. package/dist/lib/indexer.d.ts +36 -0
  404. package/dist/lib/indexer.d.ts.map +1 -0
  405. package/dist/lib/indexer.js +226 -0
  406. package/dist/lib/indexer.js.map +1 -0
  407. package/dist/lib/learning-delta.d.ts +35 -0
  408. package/dist/lib/learning-delta.d.ts.map +1 -0
  409. package/dist/lib/learning-delta.js +53 -0
  410. package/dist/lib/learning-delta.js.map +1 -0
  411. package/dist/lib/llm.d.ts +118 -0
  412. package/dist/lib/llm.d.ts.map +1 -0
  413. package/dist/lib/llm.js +439 -0
  414. package/dist/lib/llm.js.map +1 -0
  415. package/dist/lib/lock.d.ts +27 -0
  416. package/dist/lib/lock.d.ts.map +1 -0
  417. package/dist/lib/lock.js +143 -0
  418. package/dist/lib/lock.js.map +1 -0
  419. package/dist/lib/md-fetch.d.ts +61 -0
  420. package/dist/lib/md-fetch.d.ts.map +1 -0
  421. package/dist/lib/md-fetch.js +141 -0
  422. package/dist/lib/md-fetch.js.map +1 -0
  423. package/dist/lib/mmr.d.ts +29 -0
  424. package/dist/lib/mmr.d.ts.map +1 -0
  425. package/dist/lib/mmr.js +89 -0
  426. package/dist/lib/mmr.js.map +1 -0
  427. package/dist/lib/onboarding/ai-chat.d.ts +11 -0
  428. package/dist/lib/onboarding/ai-chat.d.ts.map +1 -0
  429. package/dist/lib/onboarding/ai-chat.js +85 -0
  430. package/dist/lib/onboarding/ai-chat.js.map +1 -0
  431. package/dist/lib/onboarding/index.d.ts +7 -0
  432. package/dist/lib/onboarding/index.d.ts.map +1 -0
  433. package/dist/lib/onboarding/index.js +7 -0
  434. package/dist/lib/onboarding/index.js.map +1 -0
  435. package/dist/lib/onboarding/wizard.d.ts +11 -0
  436. package/dist/lib/onboarding/wizard.d.ts.map +1 -0
  437. package/dist/lib/onboarding/wizard.js +104 -0
  438. package/dist/lib/onboarding/wizard.js.map +1 -0
  439. package/dist/lib/ort-provider.d.ts +27 -0
  440. package/dist/lib/ort-provider.d.ts.map +1 -0
  441. package/dist/lib/ort-provider.js +83 -0
  442. package/dist/lib/ort-provider.js.map +1 -0
  443. package/dist/lib/ort-session.d.ts +32 -0
  444. package/dist/lib/ort-session.d.ts.map +1 -0
  445. package/dist/lib/ort-session.js +227 -0
  446. package/dist/lib/ort-session.js.map +1 -0
  447. package/dist/lib/patterns.d.ts +43 -0
  448. package/dist/lib/patterns.d.ts.map +1 -0
  449. package/dist/lib/patterns.js +395 -0
  450. package/dist/lib/patterns.js.map +1 -0
  451. package/dist/lib/prd/codebase-context.d.ts +27 -0
  452. package/dist/lib/prd/codebase-context.d.ts.map +1 -0
  453. package/dist/lib/prd/codebase-context.js +420 -0
  454. package/dist/lib/prd/codebase-context.js.map +1 -0
  455. package/dist/lib/prd/context.d.ts +24 -0
  456. package/dist/lib/prd/context.d.ts.map +1 -0
  457. package/dist/lib/prd/context.js +68 -0
  458. package/dist/lib/prd/context.js.map +1 -0
  459. package/dist/lib/prd/executor.d.ts +52 -0
  460. package/dist/lib/prd/executor.d.ts.map +1 -0
  461. package/dist/lib/prd/executor.js +154 -0
  462. package/dist/lib/prd/executor.js.map +1 -0
  463. package/dist/lib/prd/export.d.ts +40 -0
  464. package/dist/lib/prd/export.d.ts.map +1 -0
  465. package/dist/lib/prd/export.js +511 -0
  466. package/dist/lib/prd/export.js.map +1 -0
  467. package/dist/lib/prd/gates.d.ts +30 -0
  468. package/dist/lib/prd/gates.d.ts.map +1 -0
  469. package/dist/lib/prd/gates.js +100 -0
  470. package/dist/lib/prd/gates.js.map +1 -0
  471. package/dist/lib/prd/generate.d.ts +56 -0
  472. package/dist/lib/prd/generate.d.ts.map +1 -0
  473. package/dist/lib/prd/generate.js +357 -0
  474. package/dist/lib/prd/generate.js.map +1 -0
  475. package/dist/lib/prd/parse.d.ts +21 -0
  476. package/dist/lib/prd/parse.d.ts.map +1 -0
  477. package/dist/lib/prd/parse.js +270 -0
  478. package/dist/lib/prd/parse.js.map +1 -0
  479. package/dist/lib/prd/prompt-builder.d.ts +18 -0
  480. package/dist/lib/prd/prompt-builder.d.ts.map +1 -0
  481. package/dist/lib/prd/prompt-builder.js +61 -0
  482. package/dist/lib/prd/prompt-builder.js.map +1 -0
  483. package/dist/lib/prd/runner.d.ts +54 -0
  484. package/dist/lib/prd/runner.d.ts.map +1 -0
  485. package/dist/lib/prd/runner.js +563 -0
  486. package/dist/lib/prd/runner.js.map +1 -0
  487. package/dist/lib/prd/scheduler.d.ts +27 -0
  488. package/dist/lib/prd/scheduler.d.ts.map +1 -0
  489. package/dist/lib/prd/scheduler.js +113 -0
  490. package/dist/lib/prd/scheduler.js.map +1 -0
  491. package/dist/lib/prd/state.d.ts +77 -0
  492. package/dist/lib/prd/state.d.ts.map +1 -0
  493. package/dist/lib/prd/state.js +253 -0
  494. package/dist/lib/prd/state.js.map +1 -0
  495. package/dist/lib/prd/team-runner.d.ts +48 -0
  496. package/dist/lib/prd/team-runner.d.ts.map +1 -0
  497. package/dist/lib/prd/team-runner.js +261 -0
  498. package/dist/lib/prd/team-runner.js.map +1 -0
  499. package/dist/lib/prd/types.d.ts +169 -0
  500. package/dist/lib/prd/types.d.ts.map +1 -0
  501. package/dist/lib/prd/types.js +143 -0
  502. package/dist/lib/prd/types.js.map +1 -0
  503. package/dist/lib/prd/worktree.d.ts +54 -0
  504. package/dist/lib/prd/worktree.d.ts.map +1 -0
  505. package/dist/lib/prd/worktree.js +255 -0
  506. package/dist/lib/prd/worktree.js.map +1 -0
  507. package/dist/lib/precompute-context.d.ts +48 -0
  508. package/dist/lib/precompute-context.d.ts.map +1 -0
  509. package/dist/lib/precompute-context.js +265 -0
  510. package/dist/lib/precompute-context.js.map +1 -0
  511. package/dist/lib/pricing.d.ts +60 -0
  512. package/dist/lib/pricing.d.ts.map +1 -0
  513. package/dist/lib/pricing.js +258 -0
  514. package/dist/lib/pricing.js.map +1 -0
  515. package/dist/lib/process-registry.d.ts +30 -0
  516. package/dist/lib/process-registry.d.ts.map +1 -0
  517. package/dist/lib/process-registry.js +92 -0
  518. package/dist/lib/process-registry.js.map +1 -0
  519. package/dist/lib/progress-log.d.ts +44 -0
  520. package/dist/lib/progress-log.d.ts.map +1 -0
  521. package/dist/lib/progress-log.js +58 -0
  522. package/dist/lib/progress-log.js.map +1 -0
  523. package/dist/lib/public-api.d.ts +56 -0
  524. package/dist/lib/public-api.d.ts.map +1 -0
  525. package/dist/lib/public-api.js +63 -0
  526. package/dist/lib/public-api.js.map +1 -0
  527. package/dist/lib/quality.d.ts +66 -0
  528. package/dist/lib/quality.d.ts.map +1 -0
  529. package/dist/lib/quality.js +486 -0
  530. package/dist/lib/quality.js.map +1 -0
  531. package/dist/lib/query-expansion.d.ts +16 -0
  532. package/dist/lib/query-expansion.d.ts.map +1 -0
  533. package/dist/lib/query-expansion.js +53 -0
  534. package/dist/lib/query-expansion.js.map +1 -0
  535. package/dist/lib/readiness.d.ts +35 -0
  536. package/dist/lib/readiness.d.ts.map +1 -0
  537. package/dist/lib/readiness.js +142 -0
  538. package/dist/lib/readiness.js.map +1 -0
  539. package/dist/lib/reference-embeddings.d.ts +39 -0
  540. package/dist/lib/reference-embeddings.d.ts.map +1 -0
  541. package/dist/lib/reference-embeddings.js +95 -0
  542. package/dist/lib/reference-embeddings.js.map +1 -0
  543. package/dist/lib/reflection-synthesizer.d.ts +27 -0
  544. package/dist/lib/reflection-synthesizer.d.ts.map +1 -0
  545. package/dist/lib/reflection-synthesizer.js +149 -0
  546. package/dist/lib/reflection-synthesizer.js.map +1 -0
  547. package/dist/lib/retention.d.ts +105 -0
  548. package/dist/lib/retention.d.ts.map +1 -0
  549. package/dist/lib/retention.js +246 -0
  550. package/dist/lib/retention.js.map +1 -0
  551. package/dist/lib/sensitive-filter.d.ts +34 -0
  552. package/dist/lib/sensitive-filter.d.ts.map +1 -0
  553. package/dist/lib/sensitive-filter.js +344 -0
  554. package/dist/lib/sensitive-filter.js.map +1 -0
  555. package/dist/lib/session-observations.d.ts +59 -0
  556. package/dist/lib/session-observations.d.ts.map +1 -0
  557. package/dist/lib/session-observations.js +128 -0
  558. package/dist/lib/session-observations.js.map +1 -0
  559. package/dist/lib/session-summary.d.ts +65 -0
  560. package/dist/lib/session-summary.d.ts.map +1 -0
  561. package/dist/lib/session-summary.js +344 -0
  562. package/dist/lib/session-summary.js.map +1 -0
  563. package/dist/lib/similarity-worker.d.ts +7 -0
  564. package/dist/lib/similarity-worker.d.ts.map +1 -0
  565. package/dist/lib/similarity-worker.js +36 -0
  566. package/dist/lib/similarity-worker.js.map +1 -0
  567. package/dist/lib/skills.d.ts +78 -0
  568. package/dist/lib/skills.d.ts.map +1 -0
  569. package/dist/lib/skills.js +439 -0
  570. package/dist/lib/skills.js.map +1 -0
  571. package/dist/lib/skyll-client.d.ts +59 -0
  572. package/dist/lib/skyll-client.d.ts.map +1 -0
  573. package/dist/lib/skyll-client.js +257 -0
  574. package/dist/lib/skyll-client.js.map +1 -0
  575. package/dist/lib/storage/backends/interface.d.ts +383 -0
  576. package/dist/lib/storage/backends/interface.d.ts.map +1 -0
  577. package/dist/lib/storage/backends/interface.js +12 -0
  578. package/dist/lib/storage/backends/interface.js.map +1 -0
  579. package/dist/lib/storage/backends/postgresql.d.ts +454 -0
  580. package/dist/lib/storage/backends/postgresql.d.ts.map +1 -0
  581. package/dist/lib/storage/backends/postgresql.js +2528 -0
  582. package/dist/lib/storage/backends/postgresql.js.map +1 -0
  583. package/dist/lib/storage/benchmark.d.ts +16 -0
  584. package/dist/lib/storage/benchmark.d.ts.map +1 -0
  585. package/dist/lib/storage/benchmark.js +219 -0
  586. package/dist/lib/storage/benchmark.js.map +1 -0
  587. package/dist/lib/storage/dispatcher-export.d.ts +108 -0
  588. package/dist/lib/storage/dispatcher-export.d.ts.map +1 -0
  589. package/dist/lib/storage/dispatcher-export.js +593 -0
  590. package/dist/lib/storage/dispatcher-export.js.map +1 -0
  591. package/dist/lib/storage/dispatcher.d.ts +468 -0
  592. package/dist/lib/storage/dispatcher.d.ts.map +1 -0
  593. package/dist/lib/storage/dispatcher.js +1926 -0
  594. package/dist/lib/storage/dispatcher.js.map +1 -0
  595. package/dist/lib/storage/index.d.ts +481 -0
  596. package/dist/lib/storage/index.d.ts.map +1 -0
  597. package/dist/lib/storage/index.js +727 -0
  598. package/dist/lib/storage/index.js.map +1 -0
  599. package/dist/lib/storage/migration/export-import.d.ts +133 -0
  600. package/dist/lib/storage/migration/export-import.d.ts.map +1 -0
  601. package/dist/lib/storage/migration/export-import.js +264 -0
  602. package/dist/lib/storage/migration/export-import.js.map +1 -0
  603. package/dist/lib/storage/types.d.ts +313 -0
  604. package/dist/lib/storage/types.d.ts.map +1 -0
  605. package/dist/lib/storage/types.js +30 -0
  606. package/dist/lib/storage/types.js.map +1 -0
  607. package/dist/lib/storage/vector/interface.d.ts +89 -0
  608. package/dist/lib/storage/vector/interface.d.ts.map +1 -0
  609. package/dist/lib/storage/vector/interface.js +10 -0
  610. package/dist/lib/storage/vector/interface.js.map +1 -0
  611. package/dist/lib/storage/vector/qdrant.d.ts +221 -0
  612. package/dist/lib/storage/vector/qdrant.d.ts.map +1 -0
  613. package/dist/lib/storage/vector/qdrant.js +880 -0
  614. package/dist/lib/storage/vector/qdrant.js.map +1 -0
  615. package/dist/lib/supersession.d.ts +26 -0
  616. package/dist/lib/supersession.d.ts.map +1 -0
  617. package/dist/lib/supersession.js +97 -0
  618. package/dist/lib/supersession.js.map +1 -0
  619. package/dist/lib/temporal.d.ts +140 -0
  620. package/dist/lib/temporal.d.ts.map +1 -0
  621. package/dist/lib/temporal.js +303 -0
  622. package/dist/lib/temporal.js.map +1 -0
  623. package/dist/lib/token-budget.d.ts +79 -0
  624. package/dist/lib/token-budget.d.ts.map +1 -0
  625. package/dist/lib/token-budget.js +146 -0
  626. package/dist/lib/token-budget.js.map +1 -0
  627. package/dist/lib/token-counter.d.ts +27 -0
  628. package/dist/lib/token-counter.d.ts.map +1 -0
  629. package/dist/lib/token-counter.js +52 -0
  630. package/dist/lib/token-counter.js.map +1 -0
  631. package/dist/lib/tree-sitter/chunker-ts.d.ts +24 -0
  632. package/dist/lib/tree-sitter/chunker-ts.d.ts.map +1 -0
  633. package/dist/lib/tree-sitter/chunker-ts.js +206 -0
  634. package/dist/lib/tree-sitter/chunker-ts.js.map +1 -0
  635. package/dist/lib/tree-sitter/extractor.d.ts +43 -0
  636. package/dist/lib/tree-sitter/extractor.d.ts.map +1 -0
  637. package/dist/lib/tree-sitter/extractor.js +297 -0
  638. package/dist/lib/tree-sitter/extractor.js.map +1 -0
  639. package/dist/lib/tree-sitter/index.d.ts +13 -0
  640. package/dist/lib/tree-sitter/index.d.ts.map +1 -0
  641. package/dist/lib/tree-sitter/index.js +14 -0
  642. package/dist/lib/tree-sitter/index.js.map +1 -0
  643. package/dist/lib/tree-sitter/parser.d.ts +70 -0
  644. package/dist/lib/tree-sitter/parser.d.ts.map +1 -0
  645. package/dist/lib/tree-sitter/parser.js +354 -0
  646. package/dist/lib/tree-sitter/parser.js.map +1 -0
  647. package/dist/lib/tree-sitter/public.d.ts +28 -0
  648. package/dist/lib/tree-sitter/public.d.ts.map +1 -0
  649. package/dist/lib/tree-sitter/public.js +50 -0
  650. package/dist/lib/tree-sitter/public.js.map +1 -0
  651. package/dist/lib/tree-sitter/queries.d.ts +28 -0
  652. package/dist/lib/tree-sitter/queries.d.ts.map +1 -0
  653. package/dist/lib/tree-sitter/queries.js +383 -0
  654. package/dist/lib/tree-sitter/queries.js.map +1 -0
  655. package/dist/lib/tree-sitter/types.d.ts +69 -0
  656. package/dist/lib/tree-sitter/types.d.ts.map +1 -0
  657. package/dist/lib/tree-sitter/types.js +131 -0
  658. package/dist/lib/tree-sitter/types.js.map +1 -0
  659. package/dist/lib/working-memory-pipeline.d.ts +118 -0
  660. package/dist/lib/working-memory-pipeline.d.ts.map +1 -0
  661. package/dist/lib/working-memory-pipeline.js +344 -0
  662. package/dist/lib/working-memory-pipeline.js.map +1 -0
  663. package/dist/mcp/helpers.d.ts +44 -0
  664. package/dist/mcp/helpers.d.ts.map +1 -0
  665. package/dist/mcp/helpers.js +244 -0
  666. package/dist/mcp/helpers.js.map +1 -0
  667. package/dist/mcp/index.d.ts +10 -0
  668. package/dist/mcp/index.d.ts.map +1 -0
  669. package/dist/mcp/index.js +15 -0
  670. package/dist/mcp/index.js.map +1 -0
  671. package/dist/mcp/resources.d.ts +12 -0
  672. package/dist/mcp/resources.d.ts.map +1 -0
  673. package/dist/mcp/resources.js +136 -0
  674. package/dist/mcp/resources.js.map +1 -0
  675. package/dist/mcp/server.d.ts +22 -0
  676. package/dist/mcp/server.d.ts.map +1 -0
  677. package/dist/mcp/server.js +131 -0
  678. package/dist/mcp/server.js.map +1 -0
  679. package/dist/mcp/tools/config.d.ts +10 -0
  680. package/dist/mcp/tools/config.d.ts.map +1 -0
  681. package/dist/mcp/tools/config.js +236 -0
  682. package/dist/mcp/tools/config.js.map +1 -0
  683. package/dist/mcp/tools/dead-end.d.ts +9 -0
  684. package/dist/mcp/tools/dead-end.d.ts.map +1 -0
  685. package/dist/mcp/tools/dead-end.js +137 -0
  686. package/dist/mcp/tools/dead-end.js.map +1 -0
  687. package/dist/mcp/tools/debug.d.ts +9 -0
  688. package/dist/mcp/tools/debug.d.ts.map +1 -0
  689. package/dist/mcp/tools/debug.js +387 -0
  690. package/dist/mcp/tools/debug.js.map +1 -0
  691. package/dist/mcp/tools/graph.d.ts +9 -0
  692. package/dist/mcp/tools/graph.d.ts.map +1 -0
  693. package/dist/mcp/tools/graph.js +337 -0
  694. package/dist/mcp/tools/graph.js.map +1 -0
  695. package/dist/mcp/tools/indexing.d.ts +12 -0
  696. package/dist/mcp/tools/indexing.d.ts.map +1 -0
  697. package/dist/mcp/tools/indexing.js +289 -0
  698. package/dist/mcp/tools/indexing.js.map +1 -0
  699. package/dist/mcp/tools/memory.d.ts +14 -0
  700. package/dist/mcp/tools/memory.d.ts.map +1 -0
  701. package/dist/mcp/tools/memory.js +1170 -0
  702. package/dist/mcp/tools/memory.js.map +1 -0
  703. package/dist/mcp/tools/prd.d.ts +12 -0
  704. package/dist/mcp/tools/prd.d.ts.map +1 -0
  705. package/dist/mcp/tools/prd.js +276 -0
  706. package/dist/mcp/tools/prd.js.map +1 -0
  707. package/dist/mcp/tools/search.d.ts +9 -0
  708. package/dist/mcp/tools/search.d.ts.map +1 -0
  709. package/dist/mcp/tools/search.js +279 -0
  710. package/dist/mcp/tools/search.js.map +1 -0
  711. package/dist/mcp/tools/status.d.ts +10 -0
  712. package/dist/mcp/tools/status.d.ts.map +1 -0
  713. package/dist/mcp/tools/status.js +296 -0
  714. package/dist/mcp/tools/status.js.map +1 -0
  715. package/dist/mcp/tools/web-fetch.d.ts +10 -0
  716. package/dist/mcp/tools/web-fetch.d.ts.map +1 -0
  717. package/dist/mcp/tools/web-fetch.js +107 -0
  718. package/dist/mcp/tools/web-fetch.js.map +1 -0
  719. package/dist/mcp/tools/web-search.d.ts +14 -0
  720. package/dist/mcp/tools/web-search.d.ts.map +1 -0
  721. package/dist/mcp/tools/web-search.js +427 -0
  722. package/dist/mcp/tools/web-search.js.map +1 -0
  723. package/dist/mcp/types.d.ts +16 -0
  724. package/dist/mcp/types.d.ts.map +1 -0
  725. package/dist/mcp/types.js +5 -0
  726. package/dist/mcp/types.js.map +1 -0
  727. package/dist/mcp-server.d.ts +9 -0
  728. package/dist/mcp-server.d.ts.map +1 -0
  729. package/dist/mcp-server.js +9 -0
  730. package/dist/mcp-server.js.map +1 -0
  731. package/dist/prompts/analyze.d.ts +21 -0
  732. package/dist/prompts/analyze.d.ts.map +1 -0
  733. package/dist/prompts/analyze.js +27 -0
  734. package/dist/prompts/analyze.js.map +1 -0
  735. package/dist/prompts/briefing.d.ts +27 -0
  736. package/dist/prompts/briefing.d.ts.map +1 -0
  737. package/dist/prompts/briefing.js +123 -0
  738. package/dist/prompts/briefing.js.map +1 -0
  739. package/dist/prompts/chat.d.ts +8 -0
  740. package/dist/prompts/chat.d.ts.map +1 -0
  741. package/dist/prompts/chat.js +39 -0
  742. package/dist/prompts/chat.js.map +1 -0
  743. package/dist/prompts/daemon.d.ts +16 -0
  744. package/dist/prompts/daemon.d.ts.map +1 -0
  745. package/dist/prompts/daemon.js +46 -0
  746. package/dist/prompts/daemon.js.map +1 -0
  747. package/dist/prompts/extraction.d.ts +13 -0
  748. package/dist/prompts/extraction.d.ts.map +1 -0
  749. package/dist/prompts/extraction.js +93 -0
  750. package/dist/prompts/extraction.js.map +1 -0
  751. package/dist/prompts/index.d.ts +17 -0
  752. package/dist/prompts/index.d.ts.map +1 -0
  753. package/dist/prompts/index.js +27 -0
  754. package/dist/prompts/index.js.map +1 -0
  755. package/dist/prompts/memory.d.ts +11 -0
  756. package/dist/prompts/memory.d.ts.map +1 -0
  757. package/dist/prompts/memory.js +23 -0
  758. package/dist/prompts/memory.js.map +1 -0
  759. package/dist/prompts/onboarding.d.ts +16 -0
  760. package/dist/prompts/onboarding.d.ts.map +1 -0
  761. package/dist/prompts/onboarding.js +183 -0
  762. package/dist/prompts/onboarding.js.map +1 -0
  763. package/dist/prompts/prd.d.ts +12 -0
  764. package/dist/prompts/prd.d.ts.map +1 -0
  765. package/dist/prompts/prd.js +211 -0
  766. package/dist/prompts/prd.js.map +1 -0
  767. package/dist/prompts/quality.d.ts +11 -0
  768. package/dist/prompts/quality.d.ts.map +1 -0
  769. package/dist/prompts/quality.js +11 -0
  770. package/dist/prompts/quality.js.map +1 -0
  771. package/dist/prompts/skills.d.ts +16 -0
  772. package/dist/prompts/skills.d.ts.map +1 -0
  773. package/dist/prompts/skills.js +30 -0
  774. package/dist/prompts/skills.js.map +1 -0
  775. package/hooks/succ-post-tool.cjs +227 -0
  776. package/hooks/succ-pre-tool.cjs +312 -0
  777. package/hooks/succ-session-end.cjs +85 -0
  778. package/hooks/succ-session-start.cjs +618 -0
  779. package/hooks/succ-stop-reflection.cjs +87 -0
  780. package/hooks/succ-user-prompt.cjs +220 -0
  781. package/package.json +128 -0
package/dist/cli.js ADDED
@@ -0,0 +1,749 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import { createRequire } from 'module';
4
+ import { logError } from './lib/fault-logger.js';
5
+ // Read version from package.json
6
+ const require = createRequire(import.meta.url);
7
+ const pkg = require('../package.json');
8
+ const VERSION = pkg.version;
9
+ const program = new Command();
10
+ program
11
+ .name('succ')
12
+ .version(VERSION)
13
+ .configureHelp({ sortSubcommands: true })
14
+ .addHelpText('beforeAll', `
15
+ \x1b[32m●\x1b[0m succ
16
+
17
+ Semantic Understanding for Code Contexts
18
+ Claude Code · Cursor · Windsurf · Continue.dev
19
+
20
+ ─────────────────────────────────────────────────────────
21
+ `);
22
+ program
23
+ .command('init')
24
+ .description('Initialize succ in current project')
25
+ .option('-f, --force', 'Overwrite existing configuration')
26
+ .option('-y, --yes', 'Non-interactive mode (skip prompts)')
27
+ .option('-v, --verbose', 'Show detailed output (created files, etc.)')
28
+ .option('-g, --global', 'Use global hooks (from succ package dir, not local copies)')
29
+ .option('--ai', 'Use AI-powered interactive onboarding instead of static wizard')
30
+ .action(async (...args) => {
31
+ const { init } = await import('./commands/init.js');
32
+ return init(...args);
33
+ });
34
+ program
35
+ .command('index [path]')
36
+ .description('Index files for semantic search (incremental by default)')
37
+ .option('-r, --recursive', 'Index recursively', true)
38
+ .option('--pattern <glob>', 'File pattern to match', '**/*.md')
39
+ .option('-f, --force', 'Force reindex all files (ignore cache)')
40
+ .option('-m, --memories', 'Re-embed all memories with current embedding model')
41
+ .action(async (...args) => {
42
+ const { index } = await import('./commands/index.js');
43
+ return index(...args);
44
+ });
45
+ program
46
+ .command('search <query>')
47
+ .description('Semantic search across indexed content')
48
+ .option('-n, --limit <number>', 'Number of results', '5')
49
+ .option('-t, --threshold <number>', 'Similarity threshold (0-1)', '0.2')
50
+ .action(async (query, options) => {
51
+ const { search } = await import('./commands/search.js');
52
+ return search(query, options);
53
+ });
54
+ program
55
+ .command('status')
56
+ .description('Show index statistics')
57
+ .action(async () => {
58
+ const { status } = await import('./commands/status.js');
59
+ return status();
60
+ });
61
+ program
62
+ .command('reindex')
63
+ .description('Re-index stale files and clean up deleted entries')
64
+ .action(async () => {
65
+ const { reindex } = await import('./commands/reindex.js');
66
+ return reindex();
67
+ });
68
+ program
69
+ .command('add <file>', { hidden: true })
70
+ .description('Add a single file to the index')
71
+ .action(async (file) => {
72
+ const { index } = await import('./commands/index.js');
73
+ await index(file, { recursive: false, pattern: '*' });
74
+ });
75
+ program
76
+ .command('analyze')
77
+ .description('Analyze project with Claude agents and generate brain vault')
78
+ .option('--sequential', 'Run agents sequentially instead of parallel')
79
+ .option('--api', 'Use API mode (OpenAI-compatible endpoint) instead of Claude CLI')
80
+ .option('--background', 'Run analysis in background (detached process)')
81
+ .option('--fast', 'Fast analysis (fewer agents, smaller context)')
82
+ .option('--force', 'Force full re-analysis (skip incremental cache)')
83
+ .action(async (options) => {
84
+ const { analyze } = await import('./commands/analyze.js');
85
+ return analyze({
86
+ parallel: !options.sequential,
87
+ api: options.api,
88
+ background: options.background,
89
+ fast: options.fast,
90
+ force: options.force,
91
+ });
92
+ });
93
+ program
94
+ .command('chat <query>')
95
+ .description('RAG chat - search context and ask Claude')
96
+ .option('-n, --limit <number>', 'Number of context chunks', '5')
97
+ .option('-t, --threshold <number>', 'Similarity threshold (0-1)', '0.2')
98
+ .option('-v, --verbose', 'Show search results before asking')
99
+ .action(async (query, options) => {
100
+ const { chat } = await import('./commands/chat.js');
101
+ return chat(query, {
102
+ limit: parseInt(options.limit, 10),
103
+ threshold: parseFloat(options.threshold),
104
+ verbose: options.verbose,
105
+ });
106
+ });
107
+ program
108
+ .command('watch [path]')
109
+ .description('Watch for file changes and auto-reindex (docs + code by default)')
110
+ .option('--pattern <glob>', 'File pattern to match for docs', '**/*.md')
111
+ .option('--ignore-code', 'Skip watching source code files (watch docs only)')
112
+ .option('--stop', 'Stop watch service')
113
+ .option('--status', 'Show watch service status')
114
+ .action(async (targetPath, options) => {
115
+ const { watch, stopWatchDaemon, watchDaemonStatus } = await import('./commands/watch.js');
116
+ if (options.stop) {
117
+ await stopWatchDaemon();
118
+ return;
119
+ }
120
+ if (options.status) {
121
+ await watchDaemonStatus();
122
+ return;
123
+ }
124
+ // Code watching is ON by default, --ignore-code turns it off
125
+ const includeCode = !options.ignoreCode;
126
+ return watch(targetPath, {
127
+ pattern: options.pattern,
128
+ includeCode,
129
+ });
130
+ });
131
+ const configCmd = program
132
+ .command('config')
133
+ .description('Show or edit succ configuration')
134
+ .option('-s, --show', 'Show current configuration (non-interactive)')
135
+ .option('--json', 'Output as JSON (with --show)')
136
+ .action(async (options) => {
137
+ const { config } = await import('./commands/config.js');
138
+ return config({
139
+ show: options.show,
140
+ json: options.json,
141
+ });
142
+ });
143
+ configCmd
144
+ .command('set <key> <value>')
145
+ .description('Set a configuration value (supports dot notation, e.g. error_reporting.level)')
146
+ .option('-p, --project', 'Save to project config (.succ/config.json) instead of global')
147
+ .action(async (key, value, options) => {
148
+ const { configSet } = await import('./commands/config.js');
149
+ return configSet(key, value, { project: options.project });
150
+ });
151
+ program
152
+ .command('memories')
153
+ .description('List and search memories')
154
+ .option('--recent <number>', 'Show N most recent memories')
155
+ .option('-s, --search <query>', 'Search memories semantically')
156
+ .option('--tags <tags>', 'Filter by tags (comma-separated)')
157
+ .option('-n, --limit <number>', 'Maximum number of results', '10')
158
+ .option('-g, --global', 'Use global memory (shared across projects)')
159
+ .option('--json', 'Output as JSON (for scripting)')
160
+ .action(async (options) => {
161
+ const { memories } = await import('./commands/memories.js');
162
+ return memories({
163
+ recent: options.recent ? parseInt(options.recent, 10) : undefined,
164
+ search: options.search,
165
+ tags: options.tags,
166
+ limit: parseInt(options.limit, 10),
167
+ global: options.global,
168
+ json: options.json,
169
+ });
170
+ });
171
+ program
172
+ .command('remember <content>')
173
+ .description('Save something to memory (uses LLM extraction by default)')
174
+ .option('--tags <tags>', 'Tags (comma-separated)')
175
+ .option('--source <source>', 'Source context')
176
+ .option('-g, --global', 'Save to global memory (shared across projects)')
177
+ .option('--skip-quality', 'Skip quality scoring and threshold check')
178
+ .option('--skip-sensitive', 'Skip sensitive info check (not recommended)')
179
+ .option('--redact-sensitive', 'Auto-redact sensitive info and save')
180
+ .option('--valid-from <date>', 'When fact becomes valid (e.g., "2024-01-01" or "7d")')
181
+ .option('--valid-until <date>', 'When fact expires (e.g., "2024-12-31" or "30d")')
182
+ .option('-e, --extract', 'Force LLM extraction (default: enabled)')
183
+ .option('--no-extract', 'Disable LLM extraction (save content as-is)')
184
+ .option('--api', 'Use API mode (OpenAI-compatible endpoint) for extraction')
185
+ .option('--model <model>', 'Model to use for extraction')
186
+ .option('--api-url <url>', 'API URL for LLM endpoint')
187
+ .action(async (content, options) => {
188
+ const { remember } = await import('./commands/memories.js');
189
+ return remember(content, {
190
+ tags: options.tags,
191
+ source: options.source,
192
+ global: options.global,
193
+ skipQuality: options.skipQuality,
194
+ skipSensitiveCheck: options.skipSensitive,
195
+ redactSensitive: options.redactSensitive,
196
+ validFrom: options.validFrom,
197
+ validUntil: options.validUntil,
198
+ extract: options.extract === true ? true : undefined,
199
+ noExtract: options.extract === false,
200
+ api: options.api,
201
+ model: options.model,
202
+ apiUrl: options.apiUrl,
203
+ });
204
+ });
205
+ program
206
+ .command('index-code [path]')
207
+ .description('Index source code for semantic search')
208
+ .option('--file <file>', 'Index a single file directly')
209
+ .option('--patterns <patterns>', 'File patterns (comma-separated)', '**/*.ts,**/*.tsx,**/*.js,**/*.jsx,**/*.py,**/*.go')
210
+ .option('--ignore <patterns>', 'Ignore patterns (comma-separated)')
211
+ .option('-f, --force', 'Force reindex all files')
212
+ .option('--max-size <kb>', 'Max file size in KB', '500')
213
+ .action(async (targetPath, options) => {
214
+ // Single file mode
215
+ if (options.file) {
216
+ const { indexCodeFile } = await import('./commands/index-code.js');
217
+ const result = await indexCodeFile(options.file, { force: options.force });
218
+ if (result.success) {
219
+ if (result.skipped) {
220
+ console.log(`Skipped: ${result.reason}`);
221
+ }
222
+ else {
223
+ console.log(`Indexed ${result.chunks} chunks from ${options.file}`);
224
+ }
225
+ }
226
+ else {
227
+ logError('cli', `Index error: ${result.error}`);
228
+ console.error(`Error: ${result.error}`);
229
+ process.exit(1);
230
+ }
231
+ return;
232
+ }
233
+ // Directory/pattern mode
234
+ const { indexCode } = await import('./commands/index-code.js');
235
+ return indexCode(targetPath, {
236
+ patterns: options.patterns?.split(','),
237
+ ignore: options.ignore?.split(','),
238
+ force: options.force,
239
+ maxFileSize: parseInt(options.maxSize, 10),
240
+ });
241
+ });
242
+ program
243
+ .command('forget')
244
+ .description('Delete memories')
245
+ .option('--id <id>', 'Delete memory by ID')
246
+ .option('--older-than <date>', 'Delete memories older than (e.g., "30d", "1w", "3m")')
247
+ .option('--tag <tag>', 'Delete memories with tag')
248
+ .option('--all', 'Delete ALL memories')
249
+ .action(async (options) => {
250
+ const { forget } = await import('./commands/memories.js');
251
+ return forget({
252
+ id: options.id ? parseInt(options.id, 10) : undefined,
253
+ olderThan: options.olderThan,
254
+ tag: options.tag,
255
+ all: options.all,
256
+ });
257
+ });
258
+ program
259
+ .command('benchmark')
260
+ .description('Run performance benchmarks')
261
+ .option('-n, --iterations <number>', 'Number of iterations per test', '10')
262
+ .option('--advanced', 'Run advanced IR metrics (Recall@K, Precision@K, F1@K, MRR, NDCG)')
263
+ .option('-k, --k <number>', 'K value for metrics', '5')
264
+ .option('--json', 'Output results as JSON')
265
+ .option('--existing', 'Benchmark on existing memories (latency only)')
266
+ .option('-m, --model <model>', 'Local embedding model (e.g., Xenova/bge-base-en-v1.5)')
267
+ .option('--size <size>', 'Dataset size: small (20), medium (64), large (all)', 'small')
268
+ .option('--save', 'Save results to benchmark history')
269
+ .option('--compare', 'Compare with previous benchmark')
270
+ .option('--hybrid', 'Include hybrid search comparison (semantic vs BM25 vs RRF)')
271
+ .option('--history', 'List benchmark history')
272
+ .option('--history-limit <n>', 'Number of history entries to show', '10')
273
+ .action(async (options) => {
274
+ const { benchmark, benchmarkExisting, benchmarkWithHistory, listBenchmarkHistory } = await import('./commands/benchmark.js');
275
+ if (options.history) {
276
+ return listBenchmarkHistory({
277
+ limit: parseInt(options.historyLimit, 10),
278
+ json: options.json,
279
+ });
280
+ }
281
+ else if (options.existing) {
282
+ return benchmarkExisting({
283
+ k: parseInt(options.k, 10),
284
+ json: options.json,
285
+ });
286
+ }
287
+ else if (options.save || options.compare || options.hybrid) {
288
+ return benchmarkWithHistory({
289
+ iterations: parseInt(options.iterations, 10),
290
+ advanced: options.advanced,
291
+ k: parseInt(options.k, 10),
292
+ json: options.json,
293
+ model: options.model,
294
+ size: options.size,
295
+ save: options.save,
296
+ compare: options.compare,
297
+ hybrid: options.hybrid,
298
+ });
299
+ }
300
+ else {
301
+ return benchmark({
302
+ iterations: parseInt(options.iterations, 10),
303
+ advanced: options.advanced,
304
+ k: parseInt(options.k, 10),
305
+ json: options.json,
306
+ model: options.model,
307
+ size: options.size,
308
+ });
309
+ }
310
+ });
311
+ program
312
+ .command('benchmark-quality', { hidden: true })
313
+ .description('Run quality scoring benchmark (heuristic vs ONNX vs Ollama vs OpenRouter)')
314
+ .option('--ollama', 'Include Ollama models in benchmark')
315
+ .option('--api', 'Include API models in benchmark')
316
+ .option('--models <models>', 'Models to test (comma-separated)')
317
+ .option('--ollama-url <url>', 'Ollama API URL', 'http://localhost:11434')
318
+ .action(async (options) => {
319
+ const { benchmarkQuality } = await import('./commands/benchmark-quality.js');
320
+ return benchmarkQuality({
321
+ ollama: options.ollama,
322
+ api: options.api,
323
+ models: options.models,
324
+ ollamaUrl: options.ollamaUrl,
325
+ });
326
+ });
327
+ program
328
+ .command('benchmark-vec', { hidden: true })
329
+ .description('Compare brute-force vs sqlite-vec indexed vector search')
330
+ .option('--sizes <sizes>', 'Vector counts to test (comma-separated)', '100,500,1000,5000')
331
+ .option('-q, --queries <number>', 'Number of queries per size', '50')
332
+ .option('-k <number>', 'Top-K results to retrieve', '10')
333
+ .option('-m, --model <model>', 'Local embedding model')
334
+ .option('--json', 'Output results as JSON')
335
+ .action(async (options) => {
336
+ const { benchmarkSqliteVec } = await import('./commands/benchmark-sqlite-vec.js');
337
+ return benchmarkSqliteVec({
338
+ sizes: options.sizes.split(',').map((s) => parseInt(s, 10)),
339
+ queries: parseInt(options.queries, 10),
340
+ k: parseInt(options.k, 10),
341
+ model: options.model,
342
+ json: options.json,
343
+ });
344
+ });
345
+ program
346
+ .command('clear')
347
+ .description('Clear index and/or memories')
348
+ .option('--index-only', 'Clear only document index')
349
+ .option('--memories-only', 'Clear only memories')
350
+ .option('--code-only', 'Clear only code index (keeps brain docs)')
351
+ .option('-f, --force', 'Confirm deletion (required)')
352
+ .action(async (options) => {
353
+ const { clear } = await import('./commands/clear.js');
354
+ return clear({
355
+ indexOnly: options.indexOnly,
356
+ memoriesOnly: options.memoriesOnly,
357
+ codeOnly: options.codeOnly,
358
+ force: options.force,
359
+ });
360
+ });
361
+ program
362
+ .command('soul')
363
+ .description('Generate personalized soul.md from project analysis')
364
+ .option('--api', 'Use API mode (OpenAI-compatible endpoint) instead of Claude CLI')
365
+ .action(async (options) => {
366
+ const { soul } = await import('./commands/soul.js');
367
+ return soul({
368
+ api: options.api,
369
+ });
370
+ });
371
+ program
372
+ .command('graph <action>')
373
+ .description('Knowledge graph: export, stats, auto-link, enrich-relations, proximity, communities, centrality, cleanup')
374
+ .option('-f, --format <format>', 'Export format: obsidian or json', 'obsidian')
375
+ .option('-t, --threshold <number>', 'Similarity threshold for auto-link/cleanup prune', '0.75')
376
+ .option('--orphan-threshold <number>', 'Similarity threshold for orphan reconnection', '0.60')
377
+ .option('-o, --output <path>', 'Output directory for export')
378
+ .option('--force', 'Force re-enrichment of already enriched links')
379
+ .option('-n, --limit <number>', 'Limit number of links to enrich')
380
+ .option('--min-count <number>', 'Min co-occurrence count for proximity', '2')
381
+ .option('--dry-run', 'Preview without making changes')
382
+ .option('--skip-enrich', 'Skip LLM enrichment step (cleanup)')
383
+ .option('--skip-orphans', 'Skip orphan reconnection (cleanup)')
384
+ .option('--skip-finalize', 'Skip communities + centrality rebuild (cleanup)')
385
+ .action(async (action, options) => {
386
+ const { graph } = await import('./commands/graph.js');
387
+ return graph({
388
+ action: action,
389
+ format: options.format,
390
+ threshold: parseFloat(options.threshold),
391
+ orphanThreshold: options.orphanThreshold ? parseFloat(options.orphanThreshold) : undefined,
392
+ output: options.output,
393
+ force: options.force,
394
+ limit: options.limit ? parseInt(options.limit) : undefined,
395
+ minCount: options.minCount ? parseInt(options.minCount) : undefined,
396
+ dryRun: options.dryRun,
397
+ skipEnrich: options.skipEnrich,
398
+ skipOrphans: options.skipOrphans,
399
+ skipFinalize: options.skipFinalize,
400
+ });
401
+ });
402
+ // Embedding management
403
+ const embeddingCmd = program
404
+ .command('embedding')
405
+ .description('Embedding model management: info, migrate');
406
+ embeddingCmd
407
+ .command('info')
408
+ .description('Show current embedding config, dimensions, and backend status')
409
+ .action(async () => {
410
+ const { embeddingInfo } = await import('./commands/embedding.js');
411
+ return embeddingInfo();
412
+ });
413
+ embeddingCmd
414
+ .command('migrate')
415
+ .description('Change embedding model/dimensions across all backends')
416
+ .option('--model <model>', 'Embedding model ID (e.g., qwen/qwen3-embedding-8b)')
417
+ .option('--dims <number>', 'Output dimensions (MRL truncation)')
418
+ .option('--mode <mode>', 'Embedding mode (local|api)')
419
+ .option('--api-url <url>', 'API endpoint URL')
420
+ .option('--api-key <key>', 'API key')
421
+ .option('--project', 'Apply to project config only (default: both global and project)')
422
+ .option('-y, --yes', 'Skip confirmation')
423
+ .action(async (options) => {
424
+ const { embeddingMigrate } = await import('./commands/embedding.js');
425
+ return embeddingMigrate(options);
426
+ });
427
+ program
428
+ .command('consolidate')
429
+ .description('Consolidate memories: merge duplicates, soft-invalidate redundant')
430
+ .option('--dry-run', 'Preview changes without applying them')
431
+ .option('-t, --threshold <number>', 'Similarity threshold for consolidation (0-1)', '0.85')
432
+ .option('-n, --limit <number>', 'Maximum pairs to process', '50')
433
+ .option('--stats', 'Show consolidation statistics only')
434
+ .option('-v, --verbose', 'Show detailed output')
435
+ .option('--llm', 'Force LLM merge (default: enabled)')
436
+ .option('--no-llm', 'Disable LLM merge (use simple quality-based merge)')
437
+ .option('--undo <id>', 'Undo a consolidation by restoring original memories')
438
+ .option('--history', 'Show recent consolidation operations')
439
+ .action(async (options) => {
440
+ const { consolidate } = await import('./commands/consolidate.js');
441
+ return consolidate({
442
+ dryRun: options.dryRun,
443
+ threshold: options.threshold,
444
+ limit: options.limit,
445
+ stats: options.stats,
446
+ verbose: options.verbose,
447
+ llm: options.llm === true ? true : undefined,
448
+ noLlm: options.llm === false,
449
+ undo: options.undo,
450
+ history: options.history,
451
+ });
452
+ });
453
+ program
454
+ .command('session-summary <transcript>', { hidden: true })
455
+ .description('Extract facts from session transcript and save as memories')
456
+ .option('--dry-run', 'Preview facts without saving')
457
+ .option('-v, --verbose', 'Show detailed output')
458
+ .option('--api', 'Use API mode (OpenAI-compatible endpoint)')
459
+ .option('--api-url <url>', 'API URL for LLM endpoint')
460
+ .option('--model <model>', 'Model to use')
461
+ .action(async (transcript, options) => {
462
+ const { sessionSummary } = await import('./commands/session-summary.js');
463
+ return sessionSummary(transcript, {
464
+ dryRun: options.dryRun,
465
+ verbose: options.verbose,
466
+ api: options.api,
467
+ apiUrl: options.apiUrl,
468
+ model: options.model,
469
+ });
470
+ });
471
+ program
472
+ .command('precompute-context <transcript>', { hidden: true })
473
+ .description('Generate context briefing for next session')
474
+ .option('--dry-run', 'Preview output without saving')
475
+ .option('-v, --verbose', 'Show detailed output')
476
+ .option('--api', 'Use API mode (OpenAI-compatible endpoint)')
477
+ .action(async (transcript, options) => {
478
+ const { precomputeContext } = await import('./commands/precompute-context.js');
479
+ return precomputeContext(transcript, {
480
+ dryRun: options.dryRun,
481
+ verbose: options.verbose,
482
+ api: options.api,
483
+ });
484
+ });
485
+ program
486
+ .command('train-bpe', { hidden: true })
487
+ .description('Train BPE vocabulary from indexed code')
488
+ .option('--vocab-size <number>', 'Target vocabulary size', '5000')
489
+ .option('--min-frequency <number>', 'Minimum pair frequency to merge', '2')
490
+ .option('--stats', 'Show current BPE statistics only')
491
+ .action(async (options) => {
492
+ const { trainBPE } = await import('./commands/train-bpe.js');
493
+ return trainBPE({
494
+ vocabSize: parseInt(options.vocabSize, 10),
495
+ minFrequency: parseInt(options.minFrequency, 10),
496
+ showStats: options.stats,
497
+ });
498
+ });
499
+ program
500
+ .command('stats')
501
+ .description('Show succ usage statistics')
502
+ .option('--tokens', 'Show token savings statistics')
503
+ .option('--clear', 'Clear token statistics')
504
+ .option('--model <model>', 'Override model for cost recalculation (opus, sonnet, haiku)')
505
+ .action(async (options) => {
506
+ const { stats } = await import('./commands/stats.js');
507
+ return stats({
508
+ tokens: options.tokens,
509
+ clear: options.clear,
510
+ model: options.model,
511
+ });
512
+ });
513
+ program
514
+ .command('retention')
515
+ .description('Manage memory retention with decay-based cleanup')
516
+ .option('--dry-run', 'Preview what would be deleted')
517
+ .option('--apply', 'Actually delete low-score memories')
518
+ .option('--auto-cleanup', 'Soft-invalidate (not delete) low-score memories')
519
+ .option('-v, --verbose', 'Show detailed analysis')
520
+ .action(async (options) => {
521
+ const { retention } = await import('./commands/retention.js');
522
+ return retention({
523
+ dryRun: options.dryRun,
524
+ apply: options.apply,
525
+ autoCleanup: options.autoCleanup,
526
+ verbose: options.verbose,
527
+ });
528
+ });
529
+ program
530
+ .command('backfill')
531
+ .description('Sync existing SQL data (memories, documents) into Qdrant vector store')
532
+ .option('--memories', 'Only backfill project memories')
533
+ .option('--global', 'Only backfill global memories')
534
+ .option('--documents', 'Only backfill documents')
535
+ .option('--dry-run', 'Show counts without writing')
536
+ .action(async (options) => {
537
+ const { backfill } = await import('./commands/backfill.js');
538
+ return backfill({
539
+ memories: options.memories,
540
+ global: options.global,
541
+ documents: options.documents,
542
+ dryRun: options.dryRun,
543
+ });
544
+ });
545
+ program
546
+ .command('agents-md')
547
+ .description('Generate .claude/AGENTS.md from project memories (decisions, patterns, dead-ends)')
548
+ .option('--preview', 'Preview without writing to disk')
549
+ .option('--path <path>', 'Custom output path')
550
+ .action(async (options) => {
551
+ const { agentsMd } = await import('./commands/agents-md.js');
552
+ return agentsMd({
553
+ preview: options.preview,
554
+ path: options.path,
555
+ });
556
+ });
557
+ program
558
+ .command('progress')
559
+ .description('View session progress log (knowledge growth over time)')
560
+ .option('-n, --limit <number>', 'Number of entries to show', '20')
561
+ .option('--since <duration>', 'Show entries since (e.g., 7d, 1w, 1m)')
562
+ .action(async (options) => {
563
+ const { progress } = await import('./commands/progress.js');
564
+ return progress({
565
+ limit: parseInt(options.limit, 10),
566
+ since: options.since,
567
+ });
568
+ });
569
+ program
570
+ .command('checkpoint <action> [file]')
571
+ .description('Create, restore, or list checkpoints (full backup/restore)')
572
+ .option('-o, --output <path>', 'Output file path for create')
573
+ .option('--compress', 'Compress with gzip')
574
+ .option('--no-brain', 'Exclude brain vault from create')
575
+ .option('--no-documents', 'Exclude indexed documents from create')
576
+ .option('--no-config', 'Exclude config from create')
577
+ .option('--overwrite', 'Overwrite existing data on restore')
578
+ .option('--restore-config', 'Also restore config on restore')
579
+ .action(async (action, file, options) => {
580
+ const { checkpoint } = await import('./commands/checkpoint.js');
581
+ return checkpoint({
582
+ action: action,
583
+ file,
584
+ output: options.output,
585
+ compress: options.compress,
586
+ includeBrain: options.brain,
587
+ includeDocuments: options.documents,
588
+ includeConfig: options.config,
589
+ overwrite: options.overwrite,
590
+ restoreBrain: options.brain,
591
+ restoreDocuments: options.documents,
592
+ restoreConfig: options.restoreConfig,
593
+ });
594
+ });
595
+ program
596
+ .command('score')
597
+ .description('Show AI-readiness score for the project')
598
+ .option('--json', 'Output as JSON')
599
+ .action(async (options) => {
600
+ const { score } = await import('./commands/score.js');
601
+ return score({
602
+ json: options.json,
603
+ });
604
+ });
605
+ program
606
+ .command('daemon [subcommand]')
607
+ .description('Manage the succ daemon (status, sessions, start, stop, logs)')
608
+ .option('--json', 'Output as JSON')
609
+ .option('--force', 'Force stop even if sessions active')
610
+ .option('--lines <number>', 'Number of log lines to show', '50')
611
+ .option('--all', 'Include service sessions in list')
612
+ .action(async (subcommand, options) => {
613
+ const { daemon } = await import('./commands/daemon.js');
614
+ return daemon(subcommand || 'status', {
615
+ json: options.json,
616
+ force: options.force,
617
+ lines: parseInt(options.lines, 10),
618
+ all: options.all,
619
+ });
620
+ });
621
+ program
622
+ .command('migrate')
623
+ .description('Migrate data between storage backends (SQLite, PostgreSQL)')
624
+ .option('--to <backend>', 'Target backend (sqlite or postgresql)')
625
+ .option('--export <file>', 'Export data to JSON file')
626
+ .option('--import <file>', 'Import data from JSON file')
627
+ .option('--dry-run', 'Preview without making changes')
628
+ .option('--force', 'Confirm destructive operations')
629
+ .action(async (options) => {
630
+ const { migrate } = await import('./commands/migrate.js');
631
+ return migrate({
632
+ to: options.to,
633
+ export: options.export,
634
+ import: options.import,
635
+ dryRun: options.dryRun,
636
+ force: options.force,
637
+ });
638
+ });
639
+ program
640
+ .command('setup [editor]')
641
+ .description('Configure succ MCP server for an editor (claude, cursor, windsurf, continue)')
642
+ .option('--detect', 'Auto-detect installed editors and configure all')
643
+ .action(async (editor, options) => {
644
+ const { setup } = await import('./commands/setup.js');
645
+ return setup({
646
+ editor,
647
+ detect: options.detect,
648
+ });
649
+ });
650
+ // PRD Pipeline
651
+ const prdCmd = program
652
+ .command('prd')
653
+ .description('PRD-to-Task pipeline — generate, parse, and manage PRDs');
654
+ prdCmd
655
+ .command('generate <description>')
656
+ .description('Generate a PRD from a feature description')
657
+ .option('--mode <mode>', 'Execution mode (loop or team)', 'loop')
658
+ .option('--gates <gates>', 'Quality gates (comma-separated, e.g. "typecheck,test")')
659
+ .option('--model <model>', 'LLM model override')
660
+ .option('--auto-parse', 'Automatically parse PRD into tasks')
661
+ .action(async (description, options) => {
662
+ const { prdGenerate } = await import('./commands/prd.js');
663
+ return prdGenerate(description, {
664
+ mode: options.mode,
665
+ gates: options.gates,
666
+ model: options.model,
667
+ autoParse: options.autoParse,
668
+ });
669
+ });
670
+ prdCmd
671
+ .command('parse <file-or-id>')
672
+ .description('Parse a PRD markdown into executable tasks')
673
+ .option('--prd-id <id>', 'Add tasks to an existing PRD')
674
+ .option('--dry-run', 'Show tasks without saving')
675
+ .action(async (fileOrId, options) => {
676
+ const { prdParse } = await import('./commands/prd.js');
677
+ return prdParse(fileOrId, {
678
+ prdId: options.prdId,
679
+ dryRun: options.dryRun,
680
+ });
681
+ });
682
+ prdCmd
683
+ .command('run [prd-id]')
684
+ .description('Execute PRD tasks with Claude Code agent')
685
+ .option('--resume', 'Resume from previous execution')
686
+ .option('--task <task-id>', 'Run a specific task only')
687
+ .option('--dry-run', 'Show execution plan without running')
688
+ .option('--max-iterations <num>', 'Max full-PRD retries (default: 3)')
689
+ .option('--no-branch', 'Execute in current branch (no isolation)')
690
+ .option('--model <model>', 'Claude model override (default: sonnet)')
691
+ .option('--force', 'Force resume even if another runner may be active')
692
+ .option('--mode <mode>', 'Execution mode: loop (sequential) or team (parallel)', 'loop')
693
+ .option('--concurrency <num>', 'Max parallel workers in team mode (default: 3)')
694
+ .action(async (prdId, options) => {
695
+ const { prdRun } = await import('./commands/prd.js');
696
+ return prdRun(prdId, {
697
+ resume: options.resume,
698
+ task: options.task,
699
+ dryRun: options.dryRun,
700
+ maxIterations: options.maxIterations,
701
+ noBranch: options.noBranch,
702
+ model: options.model,
703
+ force: options.force,
704
+ mode: options.mode,
705
+ concurrency: options.concurrency,
706
+ });
707
+ });
708
+ prdCmd
709
+ .command('list')
710
+ .description('List all PRDs')
711
+ .option('--all', 'Include archived PRDs')
712
+ .action(async (options) => {
713
+ const { prdList } = await import('./commands/prd.js');
714
+ return prdList({ all: options.all });
715
+ });
716
+ prdCmd
717
+ .command('status [prd-id]')
718
+ .description('Show PRD status and tasks')
719
+ .option('--json', 'Output as JSON')
720
+ .option('--verbose', 'Show detailed task info')
721
+ .action(async (prdId, options) => {
722
+ const { prdStatus } = await import('./commands/prd.js');
723
+ return prdStatus(prdId, {
724
+ json: options.json,
725
+ verbose: options.verbose,
726
+ });
727
+ });
728
+ prdCmd
729
+ .command('archive [prd-id]')
730
+ .description('Archive a PRD (set status to archived)')
731
+ .option('--prd-id <id>', 'PRD ID to archive (or use positional argument)')
732
+ .action(async (prdId, options) => {
733
+ const { prdArchive } = await import('./commands/prd.js');
734
+ return prdArchive(prdId || options.prdId);
735
+ });
736
+ prdCmd
737
+ .command('export [prd-id]')
738
+ .description('Export PRD execution to Obsidian-compatible markdown with Mermaid diagrams')
739
+ .option('--output <dir>', 'Output directory (default: .succ/brain/prd)')
740
+ .option('--all', 'Export all PRDs')
741
+ .action(async (prdId, options) => {
742
+ const { prdExport } = await import('./commands/prd.js');
743
+ return prdExport(prdId, {
744
+ output: options.output,
745
+ all: options.all,
746
+ });
747
+ });
748
+ program.parse();
749
+ //# sourceMappingURL=cli.js.map