helixmind 0.1.0

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.

Potentially problematic release.


This version of helixmind might be problematic. Click here for more details.

Files changed (479) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +207 -0
  3. package/dist/cli/agent/autonomous.d.ts +10 -0
  4. package/dist/cli/agent/autonomous.d.ts.map +1 -0
  5. package/dist/cli/agent/autonomous.js +172 -0
  6. package/dist/cli/agent/autonomous.js.map +1 -0
  7. package/dist/cli/agent/loop.d.ts +76 -0
  8. package/dist/cli/agent/loop.d.ts.map +1 -0
  9. package/dist/cli/agent/loop.js +333 -0
  10. package/dist/cli/agent/loop.js.map +1 -0
  11. package/dist/cli/agent/permissions.d.ts +28 -0
  12. package/dist/cli/agent/permissions.d.ts.map +1 -0
  13. package/dist/cli/agent/permissions.js +180 -0
  14. package/dist/cli/agent/permissions.js.map +1 -0
  15. package/dist/cli/agent/sandbox.d.ts +17 -0
  16. package/dist/cli/agent/sandbox.d.ts.map +1 -0
  17. package/dist/cli/agent/sandbox.js +124 -0
  18. package/dist/cli/agent/sandbox.js.map +1 -0
  19. package/dist/cli/agent/tools/edit-file.d.ts +2 -0
  20. package/dist/cli/agent/tools/edit-file.d.ts.map +1 -0
  21. package/dist/cli/agent/tools/edit-file.js +49 -0
  22. package/dist/cli/agent/tools/edit-file.js.map +1 -0
  23. package/dist/cli/agent/tools/find.d.ts +2 -0
  24. package/dist/cli/agent/tools/find.d.ts.map +1 -0
  25. package/dist/cli/agent/tools/find.js +35 -0
  26. package/dist/cli/agent/tools/find.js.map +1 -0
  27. package/dist/cli/agent/tools/git-commit.d.ts +2 -0
  28. package/dist/cli/agent/tools/git-commit.d.ts.map +1 -0
  29. package/dist/cli/agent/tools/git-commit.js +51 -0
  30. package/dist/cli/agent/tools/git-commit.js.map +1 -0
  31. package/dist/cli/agent/tools/git-diff.d.ts +2 -0
  32. package/dist/cli/agent/tools/git-diff.d.ts.map +1 -0
  33. package/dist/cli/agent/tools/git-diff.js +36 -0
  34. package/dist/cli/agent/tools/git-diff.js.map +1 -0
  35. package/dist/cli/agent/tools/git-log.d.ts +2 -0
  36. package/dist/cli/agent/tools/git-log.d.ts.map +1 -0
  37. package/dist/cli/agent/tools/git-log.js +32 -0
  38. package/dist/cli/agent/tools/git-log.js.map +1 -0
  39. package/dist/cli/agent/tools/git-status.d.ts +2 -0
  40. package/dist/cli/agent/tools/git-status.d.ts.map +1 -0
  41. package/dist/cli/agent/tools/git-status.js +38 -0
  42. package/dist/cli/agent/tools/git-status.js.map +1 -0
  43. package/dist/cli/agent/tools/list-dir.d.ts +2 -0
  44. package/dist/cli/agent/tools/list-dir.d.ts.map +1 -0
  45. package/dist/cli/agent/tools/list-dir.js +73 -0
  46. package/dist/cli/agent/tools/list-dir.js.map +1 -0
  47. package/dist/cli/agent/tools/read-file.d.ts +2 -0
  48. package/dist/cli/agent/tools/read-file.d.ts.map +1 -0
  49. package/dist/cli/agent/tools/read-file.js +45 -0
  50. package/dist/cli/agent/tools/read-file.js.map +1 -0
  51. package/dist/cli/agent/tools/registry.d.ts +18 -0
  52. package/dist/cli/agent/tools/registry.d.ts.map +1 -0
  53. package/dist/cli/agent/tools/registry.js +31 -0
  54. package/dist/cli/agent/tools/registry.js.map +1 -0
  55. package/dist/cli/agent/tools/run-command.d.ts +2 -0
  56. package/dist/cli/agent/tools/run-command.d.ts.map +1 -0
  57. package/dist/cli/agent/tools/run-command.js +79 -0
  58. package/dist/cli/agent/tools/run-command.js.map +1 -0
  59. package/dist/cli/agent/tools/search.d.ts +2 -0
  60. package/dist/cli/agent/tools/search.d.ts.map +1 -0
  61. package/dist/cli/agent/tools/search.js +104 -0
  62. package/dist/cli/agent/tools/search.js.map +1 -0
  63. package/dist/cli/agent/tools/spiral-query.d.ts +2 -0
  64. package/dist/cli/agent/tools/spiral-query.d.ts.map +1 -0
  65. package/dist/cli/agent/tools/spiral-query.js +52 -0
  66. package/dist/cli/agent/tools/spiral-query.js.map +1 -0
  67. package/dist/cli/agent/tools/spiral-store.d.ts +2 -0
  68. package/dist/cli/agent/tools/spiral-store.d.ts.map +1 -0
  69. package/dist/cli/agent/tools/spiral-store.js +37 -0
  70. package/dist/cli/agent/tools/spiral-store.js.map +1 -0
  71. package/dist/cli/agent/tools/web-research.d.ts +2 -0
  72. package/dist/cli/agent/tools/web-research.d.ts.map +1 -0
  73. package/dist/cli/agent/tools/web-research.js +96 -0
  74. package/dist/cli/agent/tools/web-research.js.map +1 -0
  75. package/dist/cli/agent/tools/write-file.d.ts +2 -0
  76. package/dist/cli/agent/tools/write-file.d.ts.map +1 -0
  77. package/dist/cli/agent/tools/write-file.js +91 -0
  78. package/dist/cli/agent/tools/write-file.js.map +1 -0
  79. package/dist/cli/agent/undo.d.ts +30 -0
  80. package/dist/cli/agent/undo.d.ts.map +1 -0
  81. package/dist/cli/agent/undo.js +48 -0
  82. package/dist/cli/agent/undo.js.map +1 -0
  83. package/dist/cli/auth/callback-server.d.ts +15 -0
  84. package/dist/cli/auth/callback-server.d.ts.map +1 -0
  85. package/dist/cli/auth/callback-server.js +168 -0
  86. package/dist/cli/auth/callback-server.js.map +1 -0
  87. package/dist/cli/auth/feature-gate.d.ts +19 -0
  88. package/dist/cli/auth/feature-gate.d.ts.map +1 -0
  89. package/dist/cli/auth/feature-gate.js +74 -0
  90. package/dist/cli/auth/feature-gate.js.map +1 -0
  91. package/dist/cli/auth/guard.d.ts +10 -0
  92. package/dist/cli/auth/guard.d.ts.map +1 -0
  93. package/dist/cli/auth/guard.js +46 -0
  94. package/dist/cli/auth/guard.js.map +1 -0
  95. package/dist/cli/auth/login.d.ts +22 -0
  96. package/dist/cli/auth/login.d.ts.map +1 -0
  97. package/dist/cli/auth/login.js +194 -0
  98. package/dist/cli/auth/login.js.map +1 -0
  99. package/dist/cli/auth/logout.d.ts +6 -0
  100. package/dist/cli/auth/logout.d.ts.map +1 -0
  101. package/dist/cli/auth/logout.js +36 -0
  102. package/dist/cli/auth/logout.js.map +1 -0
  103. package/dist/cli/bench/dataset.d.ts +13 -0
  104. package/dist/cli/bench/dataset.d.ts.map +1 -0
  105. package/dist/cli/bench/dataset.js +97 -0
  106. package/dist/cli/bench/dataset.js.map +1 -0
  107. package/dist/cli/bench/harness.d.ts +7 -0
  108. package/dist/cli/bench/harness.d.ts.map +1 -0
  109. package/dist/cli/bench/harness.js +135 -0
  110. package/dist/cli/bench/harness.js.map +1 -0
  111. package/dist/cli/bench/metrics.d.ts +15 -0
  112. package/dist/cli/bench/metrics.d.ts.map +1 -0
  113. package/dist/cli/bench/metrics.js +98 -0
  114. package/dist/cli/bench/metrics.js.map +1 -0
  115. package/dist/cli/bench/output.d.ts +42 -0
  116. package/dist/cli/bench/output.d.ts.map +1 -0
  117. package/dist/cli/bench/output.js +140 -0
  118. package/dist/cli/bench/output.js.map +1 -0
  119. package/dist/cli/bench/prompt.d.ts +13 -0
  120. package/dist/cli/bench/prompt.d.ts.map +1 -0
  121. package/dist/cli/bench/prompt.js +106 -0
  122. package/dist/cli/bench/prompt.js.map +1 -0
  123. package/dist/cli/bench/runner.d.ts +14 -0
  124. package/dist/cli/bench/runner.d.ts.map +1 -0
  125. package/dist/cli/bench/runner.js +334 -0
  126. package/dist/cli/bench/runner.js.map +1 -0
  127. package/dist/cli/bench/types.d.ts +109 -0
  128. package/dist/cli/bench/types.d.ts.map +1 -0
  129. package/dist/cli/bench/types.js +2 -0
  130. package/dist/cli/bench/types.js.map +1 -0
  131. package/dist/cli/bench/ui.d.ts +12 -0
  132. package/dist/cli/bench/ui.d.ts.map +1 -0
  133. package/dist/cli/bench/ui.js +126 -0
  134. package/dist/cli/bench/ui.js.map +1 -0
  135. package/dist/cli/brain/archive.d.ts +33 -0
  136. package/dist/cli/brain/archive.d.ts.map +1 -0
  137. package/dist/cli/brain/archive.js +159 -0
  138. package/dist/cli/brain/archive.js.map +1 -0
  139. package/dist/cli/brain/control-protocol.d.ts +159 -0
  140. package/dist/cli/brain/control-protocol.d.ts.map +1 -0
  141. package/dist/cli/brain/control-protocol.js +41 -0
  142. package/dist/cli/brain/control-protocol.js.map +1 -0
  143. package/dist/cli/brain/exporter.d.ts +34 -0
  144. package/dist/cli/brain/exporter.d.ts.map +1 -0
  145. package/dist/cli/brain/exporter.js +37 -0
  146. package/dist/cli/brain/exporter.js.map +1 -0
  147. package/dist/cli/brain/generator.d.ts +67 -0
  148. package/dist/cli/brain/generator.d.ts.map +1 -0
  149. package/dist/cli/brain/generator.js +239 -0
  150. package/dist/cli/brain/generator.js.map +1 -0
  151. package/dist/cli/brain/relay-client.d.ts +8 -0
  152. package/dist/cli/brain/relay-client.d.ts.map +1 -0
  153. package/dist/cli/brain/relay-client.js +173 -0
  154. package/dist/cli/brain/relay-client.js.map +1 -0
  155. package/dist/cli/brain/server.d.ts +34 -0
  156. package/dist/cli/brain/server.d.ts.map +1 -0
  157. package/dist/cli/brain/server.js +425 -0
  158. package/dist/cli/brain/server.js.map +1 -0
  159. package/dist/cli/brain/template.d.ts +3 -0
  160. package/dist/cli/brain/template.d.ts.map +1 -0
  161. package/dist/cli/brain/template.js +2072 -0
  162. package/dist/cli/brain/template.js.map +1 -0
  163. package/dist/cli/checkpoints/browser.d.ts +27 -0
  164. package/dist/cli/checkpoints/browser.d.ts.map +1 -0
  165. package/dist/cli/checkpoints/browser.js +238 -0
  166. package/dist/cli/checkpoints/browser.js.map +1 -0
  167. package/dist/cli/checkpoints/keybinding.d.ts +22 -0
  168. package/dist/cli/checkpoints/keybinding.d.ts.map +1 -0
  169. package/dist/cli/checkpoints/keybinding.js +43 -0
  170. package/dist/cli/checkpoints/keybinding.js.map +1 -0
  171. package/dist/cli/checkpoints/revert.d.ts +37 -0
  172. package/dist/cli/checkpoints/revert.d.ts.map +1 -0
  173. package/dist/cli/checkpoints/revert.js +144 -0
  174. package/dist/cli/checkpoints/revert.js.map +1 -0
  175. package/dist/cli/checkpoints/store.d.ts +48 -0
  176. package/dist/cli/checkpoints/store.d.ts.map +1 -0
  177. package/dist/cli/checkpoints/store.js +188 -0
  178. package/dist/cli/checkpoints/store.js.map +1 -0
  179. package/dist/cli/commands/archive.d.ts +7 -0
  180. package/dist/cli/commands/archive.d.ts.map +1 -0
  181. package/dist/cli/commands/archive.js +66 -0
  182. package/dist/cli/commands/archive.js.map +1 -0
  183. package/dist/cli/commands/auth.d.ts +10 -0
  184. package/dist/cli/commands/auth.d.ts.map +1 -0
  185. package/dist/cli/commands/auth.js +44 -0
  186. package/dist/cli/commands/auth.js.map +1 -0
  187. package/dist/cli/commands/bench.d.ts +25 -0
  188. package/dist/cli/commands/bench.d.ts.map +1 -0
  189. package/dist/cli/commands/bench.js +114 -0
  190. package/dist/cli/commands/bench.js.map +1 -0
  191. package/dist/cli/commands/chat.d.ts +11 -0
  192. package/dist/cli/commands/chat.d.ts.map +1 -0
  193. package/dist/cli/commands/chat.js +2321 -0
  194. package/dist/cli/commands/chat.js.map +1 -0
  195. package/dist/cli/commands/config.d.ts +4 -0
  196. package/dist/cli/commands/config.d.ts.map +1 -0
  197. package/dist/cli/commands/config.js +41 -0
  198. package/dist/cli/commands/config.js.map +1 -0
  199. package/dist/cli/commands/feed.d.ts +6 -0
  200. package/dist/cli/commands/feed.d.ts.map +1 -0
  201. package/dist/cli/commands/feed.js +95 -0
  202. package/dist/cli/commands/feed.js.map +1 -0
  203. package/dist/cli/commands/helix-menu.d.ts +4 -0
  204. package/dist/cli/commands/helix-menu.d.ts.map +1 -0
  205. package/dist/cli/commands/helix-menu.js +400 -0
  206. package/dist/cli/commands/helix-menu.js.map +1 -0
  207. package/dist/cli/commands/init.d.ts +2 -0
  208. package/dist/cli/commands/init.d.ts.map +1 -0
  209. package/dist/cli/commands/init.js +26 -0
  210. package/dist/cli/commands/init.js.map +1 -0
  211. package/dist/cli/commands/setup.d.ts +20 -0
  212. package/dist/cli/commands/setup.d.ts.map +1 -0
  213. package/dist/cli/commands/setup.js +314 -0
  214. package/dist/cli/commands/setup.js.map +1 -0
  215. package/dist/cli/commands/spiral.d.ts +4 -0
  216. package/dist/cli/commands/spiral.d.ts.map +1 -0
  217. package/dist/cli/commands/spiral.js +81 -0
  218. package/dist/cli/commands/spiral.js.map +1 -0
  219. package/dist/cli/config/store.d.ts +72 -0
  220. package/dist/cli/config/store.d.ts.map +1 -0
  221. package/dist/cli/config/store.js +241 -0
  222. package/dist/cli/config/store.js.map +1 -0
  223. package/dist/cli/context/assembler.d.ts +8 -0
  224. package/dist/cli/context/assembler.d.ts.map +1 -0
  225. package/dist/cli/context/assembler.js +124 -0
  226. package/dist/cli/context/assembler.js.map +1 -0
  227. package/dist/cli/context/project.d.ts +13 -0
  228. package/dist/cli/context/project.d.ts.map +1 -0
  229. package/dist/cli/context/project.js +126 -0
  230. package/dist/cli/context/project.js.map +1 -0
  231. package/dist/cli/context/session-buffer.d.ts +57 -0
  232. package/dist/cli/context/session-buffer.d.ts.map +1 -0
  233. package/dist/cli/context/session-buffer.js +268 -0
  234. package/dist/cli/context/session-buffer.js.map +1 -0
  235. package/dist/cli/context/trimmer.d.ts +26 -0
  236. package/dist/cli/context/trimmer.d.ts.map +1 -0
  237. package/dist/cli/context/trimmer.js +105 -0
  238. package/dist/cli/context/trimmer.js.map +1 -0
  239. package/dist/cli/feed/analyzer.d.ts +17 -0
  240. package/dist/cli/feed/analyzer.d.ts.map +1 -0
  241. package/dist/cli/feed/analyzer.js +220 -0
  242. package/dist/cli/feed/analyzer.js.map +1 -0
  243. package/dist/cli/feed/intent.d.ts +8 -0
  244. package/dist/cli/feed/intent.d.ts.map +1 -0
  245. package/dist/cli/feed/intent.js +70 -0
  246. package/dist/cli/feed/intent.js.map +1 -0
  247. package/dist/cli/feed/parser.d.ts +23 -0
  248. package/dist/cli/feed/parser.d.ts.map +1 -0
  249. package/dist/cli/feed/parser.js +166 -0
  250. package/dist/cli/feed/parser.js.map +1 -0
  251. package/dist/cli/feed/pipeline.d.ts +32 -0
  252. package/dist/cli/feed/pipeline.d.ts.map +1 -0
  253. package/dist/cli/feed/pipeline.js +242 -0
  254. package/dist/cli/feed/pipeline.js.map +1 -0
  255. package/dist/cli/feed/reader.d.ts +10 -0
  256. package/dist/cli/feed/reader.d.ts.map +1 -0
  257. package/dist/cli/feed/reader.js +61 -0
  258. package/dist/cli/feed/reader.js.map +1 -0
  259. package/dist/cli/feed/scanner.d.ts +10 -0
  260. package/dist/cli/feed/scanner.d.ts.map +1 -0
  261. package/dist/cli/feed/scanner.js +124 -0
  262. package/dist/cli/feed/scanner.js.map +1 -0
  263. package/dist/cli/feed/watcher.d.ts +14 -0
  264. package/dist/cli/feed/watcher.d.ts.map +1 -0
  265. package/dist/cli/feed/watcher.js +76 -0
  266. package/dist/cli/feed/watcher.js.map +1 -0
  267. package/dist/cli/index.d.ts +3 -0
  268. package/dist/cli/index.d.ts.map +1 -0
  269. package/dist/cli/index.js +204 -0
  270. package/dist/cli/index.js.map +1 -0
  271. package/dist/cli/providers/anthropic.d.ts +10 -0
  272. package/dist/cli/providers/anthropic.d.ts.map +1 -0
  273. package/dist/cli/providers/anthropic.js +117 -0
  274. package/dist/cli/providers/anthropic.js.map +1 -0
  275. package/dist/cli/providers/ollama.d.ts +37 -0
  276. package/dist/cli/providers/ollama.d.ts.map +1 -0
  277. package/dist/cli/providers/ollama.js +151 -0
  278. package/dist/cli/providers/ollama.js.map +1 -0
  279. package/dist/cli/providers/openai.d.ts +13 -0
  280. package/dist/cli/providers/openai.d.ts.map +1 -0
  281. package/dist/cli/providers/openai.js +283 -0
  282. package/dist/cli/providers/openai.js.map +1 -0
  283. package/dist/cli/providers/rate-limiter.d.ts +51 -0
  284. package/dist/cli/providers/rate-limiter.d.ts.map +1 -0
  285. package/dist/cli/providers/rate-limiter.js +164 -0
  286. package/dist/cli/providers/rate-limiter.js.map +1 -0
  287. package/dist/cli/providers/registry.d.ts +16 -0
  288. package/dist/cli/providers/registry.d.ts.map +1 -0
  289. package/dist/cli/providers/registry.js +99 -0
  290. package/dist/cli/providers/registry.js.map +1 -0
  291. package/dist/cli/providers/types.d.ts +61 -0
  292. package/dist/cli/providers/types.d.ts.map +1 -0
  293. package/dist/cli/providers/types.js +2 -0
  294. package/dist/cli/providers/types.js.map +1 -0
  295. package/dist/cli/sessions/manager.d.ts +69 -0
  296. package/dist/cli/sessions/manager.d.ts.map +1 -0
  297. package/dist/cli/sessions/manager.js +200 -0
  298. package/dist/cli/sessions/manager.js.map +1 -0
  299. package/dist/cli/sessions/session.d.ts +54 -0
  300. package/dist/cli/sessions/session.d.ts.map +1 -0
  301. package/dist/cli/sessions/session.js +70 -0
  302. package/dist/cli/sessions/session.js.map +1 -0
  303. package/dist/cli/sessions/tab-view.d.ts +18 -0
  304. package/dist/cli/sessions/tab-view.d.ts.map +1 -0
  305. package/dist/cli/sessions/tab-view.js +134 -0
  306. package/dist/cli/sessions/tab-view.js.map +1 -0
  307. package/dist/cli/ui/activity.d.ts +82 -0
  308. package/dist/cli/ui/activity.d.ts.map +1 -0
  309. package/dist/cli/ui/activity.js +309 -0
  310. package/dist/cli/ui/activity.js.map +1 -0
  311. package/dist/cli/ui/chat-view.d.ts +10 -0
  312. package/dist/cli/ui/chat-view.d.ts.map +1 -0
  313. package/dist/cli/ui/chat-view.js +165 -0
  314. package/dist/cli/ui/chat-view.js.map +1 -0
  315. package/dist/cli/ui/command-suggest.d.ts +22 -0
  316. package/dist/cli/ui/command-suggest.d.ts.map +1 -0
  317. package/dist/cli/ui/command-suggest.js +115 -0
  318. package/dist/cli/ui/command-suggest.js.map +1 -0
  319. package/dist/cli/ui/logo.d.ts +3 -0
  320. package/dist/cli/ui/logo.d.ts.map +1 -0
  321. package/dist/cli/ui/logo.js +25 -0
  322. package/dist/cli/ui/logo.js.map +1 -0
  323. package/dist/cli/ui/progress.d.ts +21 -0
  324. package/dist/cli/ui/progress.d.ts.map +1 -0
  325. package/dist/cli/ui/progress.js +125 -0
  326. package/dist/cli/ui/progress.js.map +1 -0
  327. package/dist/cli/ui/select-menu.d.ts +22 -0
  328. package/dist/cli/ui/select-menu.d.ts.map +1 -0
  329. package/dist/cli/ui/select-menu.js +152 -0
  330. package/dist/cli/ui/select-menu.js.map +1 -0
  331. package/dist/cli/ui/spinner.d.ts +3 -0
  332. package/dist/cli/ui/spinner.d.ts.map +1 -0
  333. package/dist/cli/ui/spinner.js +14 -0
  334. package/dist/cli/ui/spinner.js.map +1 -0
  335. package/dist/cli/ui/statusbar.d.ts +65 -0
  336. package/dist/cli/ui/statusbar.d.ts.map +1 -0
  337. package/dist/cli/ui/statusbar.js +272 -0
  338. package/dist/cli/ui/statusbar.js.map +1 -0
  339. package/dist/cli/ui/theme.d.ts +20 -0
  340. package/dist/cli/ui/theme.d.ts.map +1 -0
  341. package/dist/cli/ui/theme.js +25 -0
  342. package/dist/cli/ui/theme.js.map +1 -0
  343. package/dist/cli/ui/tool-output.d.ts +25 -0
  344. package/dist/cli/ui/tool-output.d.ts.map +1 -0
  345. package/dist/cli/ui/tool-output.js +171 -0
  346. package/dist/cli/ui/tool-output.js.map +1 -0
  347. package/dist/cli/validation/autofix.d.ts +32 -0
  348. package/dist/cli/validation/autofix.d.ts.map +1 -0
  349. package/dist/cli/validation/autofix.js +148 -0
  350. package/dist/cli/validation/autofix.js.map +1 -0
  351. package/dist/cli/validation/classifier.d.ts +17 -0
  352. package/dist/cli/validation/classifier.d.ts.map +1 -0
  353. package/dist/cli/validation/classifier.js +174 -0
  354. package/dist/cli/validation/classifier.js.map +1 -0
  355. package/dist/cli/validation/criteria.d.ts +22 -0
  356. package/dist/cli/validation/criteria.d.ts.map +1 -0
  357. package/dist/cli/validation/criteria.js +188 -0
  358. package/dist/cli/validation/criteria.js.map +1 -0
  359. package/dist/cli/validation/dynamic-checks.d.ts +16 -0
  360. package/dist/cli/validation/dynamic-checks.d.ts.map +1 -0
  361. package/dist/cli/validation/dynamic-checks.js +109 -0
  362. package/dist/cli/validation/dynamic-checks.js.map +1 -0
  363. package/dist/cli/validation/model.d.ts +16 -0
  364. package/dist/cli/validation/model.d.ts.map +1 -0
  365. package/dist/cli/validation/model.js +59 -0
  366. package/dist/cli/validation/model.js.map +1 -0
  367. package/dist/cli/validation/reporter.d.ts +18 -0
  368. package/dist/cli/validation/reporter.d.ts.map +1 -0
  369. package/dist/cli/validation/reporter.js +167 -0
  370. package/dist/cli/validation/reporter.js.map +1 -0
  371. package/dist/cli/validation/spiral-checks.d.ts +12 -0
  372. package/dist/cli/validation/spiral-checks.d.ts.map +1 -0
  373. package/dist/cli/validation/spiral-checks.js +167 -0
  374. package/dist/cli/validation/spiral-checks.js.map +1 -0
  375. package/dist/cli/validation/static-checks.d.ts +26 -0
  376. package/dist/cli/validation/static-checks.d.ts.map +1 -0
  377. package/dist/cli/validation/static-checks.js +492 -0
  378. package/dist/cli/validation/static-checks.js.map +1 -0
  379. package/dist/cli/validation/stats.d.ts +29 -0
  380. package/dist/cli/validation/stats.d.ts.map +1 -0
  381. package/dist/cli/validation/stats.js +137 -0
  382. package/dist/cli/validation/stats.js.map +1 -0
  383. package/dist/index.d.ts +3 -0
  384. package/dist/index.d.ts.map +1 -0
  385. package/dist/index.js +35 -0
  386. package/dist/index.js.map +1 -0
  387. package/dist/server.d.ts +8 -0
  388. package/dist/server.d.ts.map +1 -0
  389. package/dist/server.js +43 -0
  390. package/dist/server.js.map +1 -0
  391. package/dist/spiral/cloud/content-extractor.d.ts +27 -0
  392. package/dist/spiral/cloud/content-extractor.d.ts.map +1 -0
  393. package/dist/spiral/cloud/content-extractor.js +175 -0
  394. package/dist/spiral/cloud/content-extractor.js.map +1 -0
  395. package/dist/spiral/cloud/search-provider.d.ts +22 -0
  396. package/dist/spiral/cloud/search-provider.d.ts.map +1 -0
  397. package/dist/spiral/cloud/search-provider.js +212 -0
  398. package/dist/spiral/cloud/search-provider.js.map +1 -0
  399. package/dist/spiral/cloud/topic-detector.d.ts +25 -0
  400. package/dist/spiral/cloud/topic-detector.d.ts.map +1 -0
  401. package/dist/spiral/cloud/topic-detector.js +196 -0
  402. package/dist/spiral/cloud/topic-detector.js.map +1 -0
  403. package/dist/spiral/cloud/web-enricher.d.ts +58 -0
  404. package/dist/spiral/cloud/web-enricher.d.ts.map +1 -0
  405. package/dist/spiral/cloud/web-enricher.js +170 -0
  406. package/dist/spiral/cloud/web-enricher.js.map +1 -0
  407. package/dist/spiral/compression.d.ts +54 -0
  408. package/dist/spiral/compression.d.ts.map +1 -0
  409. package/dist/spiral/compression.js +175 -0
  410. package/dist/spiral/compression.js.map +1 -0
  411. package/dist/spiral/embeddings.d.ts +24 -0
  412. package/dist/spiral/embeddings.d.ts.map +1 -0
  413. package/dist/spiral/embeddings.js +69 -0
  414. package/dist/spiral/embeddings.js.map +1 -0
  415. package/dist/spiral/engine.d.ts +95 -0
  416. package/dist/spiral/engine.d.ts.map +1 -0
  417. package/dist/spiral/engine.js +271 -0
  418. package/dist/spiral/engine.js.map +1 -0
  419. package/dist/spiral/injection.d.ts +29 -0
  420. package/dist/spiral/injection.d.ts.map +1 -0
  421. package/dist/spiral/injection.js +164 -0
  422. package/dist/spiral/injection.js.map +1 -0
  423. package/dist/spiral/relevance.d.ts +37 -0
  424. package/dist/spiral/relevance.d.ts.map +1 -0
  425. package/dist/spiral/relevance.js +75 -0
  426. package/dist/spiral/relevance.js.map +1 -0
  427. package/dist/storage/database.d.ts +11 -0
  428. package/dist/storage/database.d.ts.map +1 -0
  429. package/dist/storage/database.js +141 -0
  430. package/dist/storage/database.js.map +1 -0
  431. package/dist/storage/edges.d.ts +25 -0
  432. package/dist/storage/edges.d.ts.map +1 -0
  433. package/dist/storage/edges.js +69 -0
  434. package/dist/storage/edges.js.map +1 -0
  435. package/dist/storage/nodes.d.ts +45 -0
  436. package/dist/storage/nodes.d.ts.map +1 -0
  437. package/dist/storage/nodes.js +124 -0
  438. package/dist/storage/nodes.js.map +1 -0
  439. package/dist/storage/vectors.d.ts +25 -0
  440. package/dist/storage/vectors.d.ts.map +1 -0
  441. package/dist/storage/vectors.js +110 -0
  442. package/dist/storage/vectors.js.map +1 -0
  443. package/dist/tools/spiral-compact.d.ts +14 -0
  444. package/dist/tools/spiral-compact.d.ts.map +1 -0
  445. package/dist/tools/spiral-compact.js +14 -0
  446. package/dist/tools/spiral-compact.js.map +1 -0
  447. package/dist/tools/spiral-query.d.ts +18 -0
  448. package/dist/tools/spiral-query.d.ts.map +1 -0
  449. package/dist/tools/spiral-query.js +16 -0
  450. package/dist/tools/spiral-query.js.map +1 -0
  451. package/dist/tools/spiral-relate.d.ts +21 -0
  452. package/dist/tools/spiral-relate.d.ts.map +1 -0
  453. package/dist/tools/spiral-relate.js +21 -0
  454. package/dist/tools/spiral-relate.js.map +1 -0
  455. package/dist/tools/spiral-status.d.ts +8 -0
  456. package/dist/tools/spiral-status.d.ts.map +1 -0
  457. package/dist/tools/spiral-status.js +10 -0
  458. package/dist/tools/spiral-status.js.map +1 -0
  459. package/dist/tools/spiral-store.d.ts +41 -0
  460. package/dist/tools/spiral-store.d.ts.map +1 -0
  461. package/dist/tools/spiral-store.js +22 -0
  462. package/dist/tools/spiral-store.js.map +1 -0
  463. package/dist/types.d.ts +92 -0
  464. package/dist/types.d.ts.map +1 -0
  465. package/dist/types.js +9 -0
  466. package/dist/types.js.map +1 -0
  467. package/dist/utils/config.d.ts +14 -0
  468. package/dist/utils/config.d.ts.map +1 -0
  469. package/dist/utils/config.js +44 -0
  470. package/dist/utils/config.js.map +1 -0
  471. package/dist/utils/logger.d.ts +10 -0
  472. package/dist/utils/logger.d.ts.map +1 -0
  473. package/dist/utils/logger.js +40 -0
  474. package/dist/utils/logger.js.map +1 -0
  475. package/dist/utils/tokens.d.ts +21 -0
  476. package/dist/utils/tokens.d.ts.map +1 -0
  477. package/dist/utils/tokens.js +33 -0
  478. package/dist/utils/tokens.js.map +1 -0
  479. package/package.json +90 -0
@@ -0,0 +1,268 @@
1
+ /**
2
+ * Session Buffer — short-term "working memory" for the current chat session.
3
+ *
4
+ * Tracks user messages, tool calls, errors, and file changes. Provides a
5
+ * compressed summary that gets injected into the system prompt so the LLM
6
+ * maintains session awareness even as conversation history gets long.
7
+ */
8
+ export class SessionBuffer {
9
+ events = [];
10
+ maxEvents = 60;
11
+ filesModified = new Set();
12
+ filesRead = new Set();
13
+ errorCount = 0;
14
+ /** Extracted user goals — never trimmed, always visible in context */
15
+ goals = [];
16
+ static MAX_GOALS = 5;
17
+ /** Key entities: repo URLs, branch names, ticket numbers, file paths */
18
+ entities = new Map();
19
+ static MAX_ENTITIES = 15;
20
+ /** Important decisions from agent responses */
21
+ decisions = [];
22
+ static MAX_DECISIONS = 5;
23
+ addUserMessage(message) {
24
+ this.push({
25
+ type: 'user_message',
26
+ summary: message.length > 200 ? message.slice(0, 200) + '...' : message,
27
+ timestamp: Date.now(),
28
+ });
29
+ this.extractGoals(message);
30
+ this.extractEntities(message);
31
+ }
32
+ addToolCall(tool, input) {
33
+ const summary = this.summarizeToolCall(tool, input);
34
+ this.push({ type: 'tool_call', summary, timestamp: Date.now() });
35
+ // Track file operations
36
+ const path = String(input.path || '');
37
+ if (path) {
38
+ if (tool === 'read_file')
39
+ this.filesRead.add(path);
40
+ if (tool === 'write_file' || tool === 'edit_file')
41
+ this.filesModified.add(path);
42
+ }
43
+ }
44
+ addToolError(tool, error) {
45
+ this.errorCount++;
46
+ this.push({
47
+ type: 'tool_error',
48
+ summary: `${tool}: ${error.slice(0, 100)}`,
49
+ timestamp: Date.now(),
50
+ });
51
+ }
52
+ addAssistantSummary(text) {
53
+ this.push({
54
+ type: 'assistant_summary',
55
+ summary: text.length > 300 ? text.slice(0, 300) + '...' : text,
56
+ timestamp: Date.now(),
57
+ });
58
+ }
59
+ /** Add a decision from agent response */
60
+ addDecision(text) {
61
+ const trimmed = text.length > 200 ? text.slice(0, 200) + '...' : text;
62
+ if (this.decisions.length >= SessionBuffer.MAX_DECISIONS) {
63
+ this.decisions.shift();
64
+ }
65
+ this.decisions.push(trimmed);
66
+ }
67
+ /**
68
+ * Build a concise context string for the system prompt.
69
+ * Budget: ~1500 tokens. Goals and entities are never trimmed.
70
+ */
71
+ buildContext() {
72
+ if (this.events.length === 0 && this.goals.length === 0)
73
+ return '';
74
+ const lines = ['## Session Working Memory'];
75
+ // Summary stats
76
+ const userMsgs = this.events.filter(e => e.type === 'user_message');
77
+ const toolCalls = this.events.filter(e => e.type === 'tool_call');
78
+ lines.push(`Turn ${userMsgs.length} | ${toolCalls.length} tool calls | ${this.errorCount} errors`);
79
+ // GOALS — always shown, never trimmed (most important for context)
80
+ if (this.goals.length > 0) {
81
+ lines.push('\nActive goals:');
82
+ for (const goal of this.goals) {
83
+ lines.push(`> ${goal}`);
84
+ }
85
+ }
86
+ // ENTITIES — key references the user mentioned
87
+ if (this.entities.size > 0) {
88
+ lines.push('\nKey references:');
89
+ for (const [key, value] of this.entities) {
90
+ lines.push(`- ${key}: ${value}`);
91
+ }
92
+ }
93
+ // DECISIONS — important agent decisions
94
+ if (this.decisions.length > 0) {
95
+ lines.push('\nDecisions made:');
96
+ for (const d of this.decisions) {
97
+ lines.push(`- ${d}`);
98
+ }
99
+ }
100
+ // Recent user messages (last 5, up from 3)
101
+ const recentUser = userMsgs.slice(-5);
102
+ if (recentUser.length > 0) {
103
+ lines.push('\nRecent user requests:');
104
+ for (const ev of recentUser) {
105
+ lines.push(`- ${ev.summary}`);
106
+ }
107
+ }
108
+ // Recent assistant summaries (last 3)
109
+ const recentAssistant = this.events
110
+ .filter(e => e.type === 'assistant_summary')
111
+ .slice(-3);
112
+ if (recentAssistant.length > 0) {
113
+ lines.push('\nRecent responses:');
114
+ for (const ev of recentAssistant) {
115
+ lines.push(`- ${ev.summary}`);
116
+ }
117
+ }
118
+ // Files context
119
+ if (this.filesModified.size > 0) {
120
+ lines.push(`\nFiles modified this session: ${[...this.filesModified].slice(-10).join(', ')}`);
121
+ }
122
+ if (this.filesRead.size > 0) {
123
+ const readOnly = [...this.filesRead].filter(f => !this.filesModified.has(f));
124
+ if (readOnly.length > 0) {
125
+ lines.push(`Files read: ${readOnly.slice(-8).join(', ')}`);
126
+ }
127
+ }
128
+ // Recent errors (critical for auto-recovery)
129
+ const recentErrors = this.events.filter(e => e.type === 'tool_error').slice(-3);
130
+ if (recentErrors.length > 0) {
131
+ lines.push('\nRecent errors (auto-recover if possible):');
132
+ for (const err of recentErrors) {
133
+ lines.push(`! ${err.summary}`);
134
+ }
135
+ }
136
+ return lines.join('\n');
137
+ }
138
+ /** Get recent errors for auto-recovery */
139
+ getRecentErrors() {
140
+ return this.events.filter(e => e.type === 'tool_error').slice(-5);
141
+ }
142
+ /** Get all modified files */
143
+ getModifiedFiles() {
144
+ return [...this.filesModified];
145
+ }
146
+ get totalErrors() {
147
+ return this.errorCount;
148
+ }
149
+ get eventCount() {
150
+ return this.events.length;
151
+ }
152
+ /** Extract goals from user messages via heuristics */
153
+ extractGoals(message) {
154
+ const lower = message.toLowerCase();
155
+ // German + English imperative/desire patterns
156
+ const goalPatterns = [
157
+ /(?:ich will|ich möchte|ich brauche|mache|erstelle|baue|push|deploy|fix|implement|create|add|remove|update|refactor|migrate|build|setup|configure)\s+(.{10,})/i,
158
+ /(?:wir müssen|wir sollten|we need to|we should|let's|lass uns)\s+(.{10,})/i,
159
+ /(?:ziel|goal|task|aufgabe|todo)[:\s]+(.{10,})/i,
160
+ ];
161
+ for (const pattern of goalPatterns) {
162
+ const match = message.match(pattern);
163
+ if (match) {
164
+ const goal = match[0].slice(0, 200);
165
+ // Avoid duplicate goals
166
+ if (!this.goals.some(g => g.toLowerCase().includes(goal.toLowerCase().slice(0, 30)))) {
167
+ if (this.goals.length >= SessionBuffer.MAX_GOALS) {
168
+ this.goals.shift();
169
+ }
170
+ this.goals.push(goal);
171
+ }
172
+ break;
173
+ }
174
+ }
175
+ // Fallback: if the message is short and imperative-sounding, treat it as a goal
176
+ if (this.goals.length === 0 && lower.length > 15 && lower.length < 300) {
177
+ const startsImperative = /^(mach|fix|add|create|build|push|deploy|update|remove|refactor|test|run|install|setup|check|review|write|read|show|find|search|debug)/i.test(lower);
178
+ if (startsImperative) {
179
+ this.goals.push(message.slice(0, 200));
180
+ }
181
+ }
182
+ }
183
+ /** Extract key entities (URLs, repos, branches, tickets) from text */
184
+ extractEntities(message) {
185
+ // URLs
186
+ const urlMatch = message.match(/https?:\/\/[^\s<>"']+/g);
187
+ if (urlMatch) {
188
+ for (const url of urlMatch.slice(0, 3)) {
189
+ // Derive a label from the URL
190
+ try {
191
+ const parsed = new URL(url);
192
+ const label = parsed.hostname + parsed.pathname.split('/').slice(0, 3).join('/');
193
+ this.addEntity(label, url);
194
+ }
195
+ catch {
196
+ this.addEntity('url', url);
197
+ }
198
+ }
199
+ }
200
+ // Git branches (e.g. "branch main", "auf branch feature/xyz")
201
+ const branchMatch = message.match(/(?:branch|zweig)\s+([a-zA-Z0-9_./-]+)/i);
202
+ if (branchMatch) {
203
+ this.addEntity('branch', branchMatch[1]);
204
+ }
205
+ // Repo paths (e.g. "user/repo", "/path/to/project")
206
+ const repoMatch = message.match(/([a-zA-Z0-9_-]+\/[a-zA-Z0-9_.-]+)(?:\s|$|\.)/);
207
+ if (repoMatch && !repoMatch[1].includes('://')) {
208
+ this.addEntity('repo', repoMatch[1]);
209
+ }
210
+ // Ticket/issue numbers (e.g. #123, PROJ-456)
211
+ const ticketMatch = message.match(/#(\d+)|([A-Z]{2,}-\d+)/g);
212
+ if (ticketMatch) {
213
+ for (const t of ticketMatch.slice(0, 2)) {
214
+ this.addEntity('ticket', t);
215
+ }
216
+ }
217
+ }
218
+ /** Get current goals */
219
+ getGoals() {
220
+ return [...this.goals];
221
+ }
222
+ /** Get current entities */
223
+ getEntities() {
224
+ return new Map(this.entities);
225
+ }
226
+ addEntity(key, value) {
227
+ if (this.entities.size >= SessionBuffer.MAX_ENTITIES) {
228
+ // Remove oldest entry
229
+ const firstKey = this.entities.keys().next().value;
230
+ if (firstKey !== undefined)
231
+ this.entities.delete(firstKey);
232
+ }
233
+ this.entities.set(key, value);
234
+ }
235
+ push(event) {
236
+ this.events.push(event);
237
+ if (this.events.length > this.maxEvents) {
238
+ // Keep user messages and errors longer, trim tool calls
239
+ const important = this.events.filter(e => e.type === 'user_message' || e.type === 'tool_error');
240
+ const recent = this.events.slice(-this.maxEvents / 2);
241
+ // Merge: important + recent, deduplicated
242
+ const merged = new Map();
243
+ for (const e of [...important, ...recent]) {
244
+ merged.set(`${e.timestamp}-${e.type}`, e);
245
+ }
246
+ this.events = [...merged.values()].sort((a, b) => a.timestamp - b.timestamp);
247
+ }
248
+ }
249
+ summarizeToolCall(tool, input) {
250
+ switch (tool) {
251
+ case 'read_file': return `read ${input.path}`;
252
+ case 'write_file': return `write ${input.path}`;
253
+ case 'edit_file': return `edit ${input.path}`;
254
+ case 'run_command': return `$ ${String(input.command || '').slice(0, 60)}`;
255
+ case 'search_files': return `search "${input.pattern}"`;
256
+ case 'find_files': return `find "${input.pattern}"`;
257
+ case 'list_directory': return `ls ${input.path || '.'}`;
258
+ case 'git_status': return 'git status';
259
+ case 'git_diff': return `git diff ${input.path || ''}`;
260
+ case 'git_commit': return `git commit "${input.message}"`;
261
+ case 'git_log': return 'git log';
262
+ case 'spiral_query': return `spiral: "${input.query}"`;
263
+ case 'spiral_store': return `spiral store [${input.type}]`;
264
+ default: return `${tool}(${JSON.stringify(input).slice(0, 50)})`;
265
+ }
266
+ }
267
+ }
268
+ //# sourceMappingURL=session-buffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-buffer.js","sourceRoot":"","sources":["../../../src/cli/context/session-buffer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Context window trimmer — sliding window that drops old messages
3
+ * when the conversation exceeds the token budget.
4
+ *
5
+ * Estimates ~4 characters per token for rough sizing.
6
+ * Preserves user→assistant message pairs to avoid breaking conversation flow.
7
+ */
8
+ import type { ToolMessage } from '../providers/types.js';
9
+ import type { SessionBuffer } from './session-buffer.js';
10
+ /**
11
+ * Estimate token count for a message array.
12
+ */
13
+ export declare function estimateTokens(messages: ToolMessage[]): number;
14
+ /**
15
+ * Trim conversation history to fit within the token budget.
16
+ *
17
+ * Strategy:
18
+ * - Keep the most recent messages that fit within 75% of budget
19
+ * - Drop from the front (oldest messages)
20
+ * - Always keep at least the last 4 messages (current turn)
21
+ * - Insert a "[trimmed]" marker at the start
22
+ *
23
+ * Returns the number of messages dropped.
24
+ */
25
+ export declare function trimConversation(history: ToolMessage[], maxTokens: number, sessionBuffer?: SessionBuffer): number;
26
+ //# sourceMappingURL=trimmer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trimmer.d.ts","sourceRoot":"","sources":["../../../src/cli/context/trimmer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAc9D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,WAAW,EAAE,EACtB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,aAAa,GAC5B,MAAM,CAgDR"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Context window trimmer — sliding window that drops old messages
3
+ * when the conversation exceeds the token budget.
4
+ *
5
+ * Estimates ~4 characters per token for rough sizing.
6
+ * Preserves user→assistant message pairs to avoid breaking conversation flow.
7
+ */
8
+ import { renderInfo } from '../ui/chat-view.js';
9
+ const CHARS_PER_TOKEN = 4;
10
+ /**
11
+ * Estimate token count for a message array.
12
+ */
13
+ export function estimateTokens(messages) {
14
+ let chars = 0;
15
+ for (const msg of messages) {
16
+ if (typeof msg.content === 'string') {
17
+ chars += msg.content.length;
18
+ }
19
+ else if (Array.isArray(msg.content)) {
20
+ for (const block of msg.content) {
21
+ if ('text' in block)
22
+ chars += block.text?.length ?? 0;
23
+ if ('content' in block)
24
+ chars += String(block.content ?? '').length;
25
+ if ('input' in block)
26
+ chars += JSON.stringify(block.input ?? {}).length;
27
+ }
28
+ }
29
+ }
30
+ return Math.ceil(chars / CHARS_PER_TOKEN);
31
+ }
32
+ /**
33
+ * Trim conversation history to fit within the token budget.
34
+ *
35
+ * Strategy:
36
+ * - Keep the most recent messages that fit within 75% of budget
37
+ * - Drop from the front (oldest messages)
38
+ * - Always keep at least the last 4 messages (current turn)
39
+ * - Insert a "[trimmed]" marker at the start
40
+ *
41
+ * Returns the number of messages dropped.
42
+ */
43
+ export function trimConversation(history, maxTokens, sessionBuffer) {
44
+ const currentTokens = estimateTokens(history);
45
+ const trimTarget = Math.floor(maxTokens * 0.75); // trim to 75%
46
+ if (currentTokens <= maxTokens) {
47
+ return 0; // no trimming needed
48
+ }
49
+ // Minimum messages to keep (current user message + some context)
50
+ const minKeep = Math.min(6, history.length);
51
+ // Binary search for how many messages to drop from the front
52
+ let dropCount = 0;
53
+ let remaining = [...history];
54
+ while (estimateTokens(remaining) > trimTarget && remaining.length > minKeep) {
55
+ // Drop 2 messages at a time (user + assistant pair)
56
+ const toDrop = Math.min(2, remaining.length - minKeep);
57
+ remaining = remaining.slice(toDrop);
58
+ dropCount += toDrop;
59
+ }
60
+ if (dropCount === 0)
61
+ return 0;
62
+ // Summarize dropped messages into session buffer before removing them
63
+ if (sessionBuffer && dropCount > 0) {
64
+ summarizeDropped(history.slice(0, dropCount), sessionBuffer);
65
+ }
66
+ // Actually mutate the history array
67
+ history.splice(0, dropCount);
68
+ // Ensure the first remaining message is a 'user' message to maintain
69
+ // Anthropic API alternation requirement (user/assistant/user/assistant).
70
+ // If the first remaining message is 'assistant', drop it too.
71
+ while (history.length > 0 && history[0].role === 'assistant') {
72
+ history.shift();
73
+ dropCount++;
74
+ }
75
+ // Insert trimmed marker at the start (always a 'user' message)
76
+ history.unshift({
77
+ role: 'user',
78
+ content: `[System: ${dropCount} earlier messages were trimmed to fit the context window. The session buffer contains a summary of the conversation so far.]`,
79
+ });
80
+ renderInfo(` Context trimmed: ${dropCount} old messages removed to free space.`);
81
+ return dropCount;
82
+ }
83
+ /**
84
+ * Extract key information from dropped messages into the session buffer.
85
+ * Preserves goals, entities, and assistant decisions that would otherwise be lost.
86
+ */
87
+ function summarizeDropped(dropped, sessionBuffer) {
88
+ for (const msg of dropped) {
89
+ if (typeof msg.content !== 'string')
90
+ continue;
91
+ if (msg.role === 'user') {
92
+ // Re-extract goals and entities from user messages being dropped
93
+ sessionBuffer.extractGoals(msg.content);
94
+ sessionBuffer.extractEntities(msg.content);
95
+ }
96
+ else if (msg.role === 'assistant') {
97
+ // Save a condensed version of the assistant response as a decision
98
+ const text = msg.content.trim();
99
+ if (text.length > 30) {
100
+ sessionBuffer.addDecision(text.slice(0, 300));
101
+ }
102
+ }
103
+ }
104
+ }
105
+ //# sourceMappingURL=trimmer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trimmer.js","sourceRoot":"","sources":["../../../src/cli/context/trimmer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { ParsedFile } from './parser.js';
2
+ export interface DetectedModule {
3
+ name: string;
4
+ files: string[];
5
+ description: string;
6
+ entryPoint?: string;
7
+ }
8
+ export interface AnalysisResult {
9
+ modules: DetectedModule[];
10
+ dependencyGraph: Map<string, string[]>;
11
+ architecture: string;
12
+ techStack: string[];
13
+ entryPoints: string[];
14
+ summary: string;
15
+ }
16
+ export declare function analyzeCodebase(parsedFiles: ParsedFile[]): AnalysisResult;
17
+ //# sourceMappingURL=analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../../src/cli/feed/analyzer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,cAAc,CAiBzE"}