helixmind 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (808) hide show
  1. package/LICENSE +73 -0
  2. package/README.md +323 -0
  3. package/dist/cli/agent/autonomous.d.ts +24 -0
  4. package/dist/cli/agent/autonomous.d.ts.map +1 -0
  5. package/dist/cli/agent/autonomous.js +194 -0
  6. package/dist/cli/agent/autonomous.js.map +1 -0
  7. package/dist/cli/agent/loop.d.ts +87 -0
  8. package/dist/cli/agent/loop.d.ts.map +1 -0
  9. package/dist/cli/agent/loop.js +492 -0
  10. package/dist/cli/agent/loop.js.map +1 -0
  11. package/dist/cli/agent/monitor/alerter.d.ts +29 -0
  12. package/dist/cli/agent/monitor/alerter.d.ts.map +1 -0
  13. package/dist/cli/agent/monitor/alerter.js +80 -0
  14. package/dist/cli/agent/monitor/alerter.js.map +1 -0
  15. package/dist/cli/agent/monitor/baseline.d.ts +14 -0
  16. package/dist/cli/agent/monitor/baseline.d.ts.map +1 -0
  17. package/dist/cli/agent/monitor/baseline.js +157 -0
  18. package/dist/cli/agent/monitor/baseline.js.map +1 -0
  19. package/dist/cli/agent/monitor/prompts.d.ts +9 -0
  20. package/dist/cli/agent/monitor/prompts.d.ts.map +1 -0
  21. package/dist/cli/agent/monitor/prompts.js +103 -0
  22. package/dist/cli/agent/monitor/prompts.js.map +1 -0
  23. package/dist/cli/agent/monitor/responder.d.ts +12 -0
  24. package/dist/cli/agent/monitor/responder.d.ts.map +1 -0
  25. package/dist/cli/agent/monitor/responder.js +59 -0
  26. package/dist/cli/agent/monitor/responder.js.map +1 -0
  27. package/dist/cli/agent/monitor/scanner.d.ts +18 -0
  28. package/dist/cli/agent/monitor/scanner.d.ts.map +1 -0
  29. package/dist/cli/agent/monitor/scanner.js +81 -0
  30. package/dist/cli/agent/monitor/scanner.js.map +1 -0
  31. package/dist/cli/agent/monitor/types.d.ts +119 -0
  32. package/dist/cli/agent/monitor/types.d.ts.map +1 -0
  33. package/dist/cli/agent/monitor/types.js +5 -0
  34. package/dist/cli/agent/monitor/types.js.map +1 -0
  35. package/dist/cli/agent/monitor/watcher.d.ts +4 -0
  36. package/dist/cli/agent/monitor/watcher.d.ts.map +1 -0
  37. package/dist/cli/agent/monitor/watcher.js +214 -0
  38. package/dist/cli/agent/monitor/watcher.js.map +1 -0
  39. package/dist/cli/agent/permissions.d.ts +65 -0
  40. package/dist/cli/agent/permissions.d.ts.map +1 -0
  41. package/dist/cli/agent/permissions.js +447 -0
  42. package/dist/cli/agent/permissions.js.map +1 -0
  43. package/dist/cli/agent/plan-engine.d.ts +72 -0
  44. package/dist/cli/agent/plan-engine.d.ts.map +1 -0
  45. package/dist/cli/agent/plan-engine.js +261 -0
  46. package/dist/cli/agent/plan-engine.js.map +1 -0
  47. package/dist/cli/agent/plan-executor.d.ts +37 -0
  48. package/dist/cli/agent/plan-executor.d.ts.map +1 -0
  49. package/dist/cli/agent/plan-executor.js +105 -0
  50. package/dist/cli/agent/plan-executor.js.map +1 -0
  51. package/dist/cli/agent/plan-types.d.ts +50 -0
  52. package/dist/cli/agent/plan-types.d.ts.map +1 -0
  53. package/dist/cli/agent/plan-types.js +58 -0
  54. package/dist/cli/agent/plan-types.js.map +1 -0
  55. package/dist/cli/agent/sandbox.d.ts +28 -0
  56. package/dist/cli/agent/sandbox.d.ts.map +1 -0
  57. package/dist/cli/agent/sandbox.js +298 -0
  58. package/dist/cli/agent/sandbox.js.map +1 -0
  59. package/dist/cli/agent/swarm.d.ts +75 -0
  60. package/dist/cli/agent/swarm.d.ts.map +1 -0
  61. package/dist/cli/agent/swarm.js +272 -0
  62. package/dist/cli/agent/swarm.js.map +1 -0
  63. package/dist/cli/agent/tools/browser-click.d.ts +2 -0
  64. package/dist/cli/agent/tools/browser-click.d.ts.map +1 -0
  65. package/dist/cli/agent/tools/browser-click.js +35 -0
  66. package/dist/cli/agent/tools/browser-click.js.map +1 -0
  67. package/dist/cli/agent/tools/browser-close.d.ts +2 -0
  68. package/dist/cli/agent/tools/browser-close.d.ts.map +1 -0
  69. package/dist/cli/agent/tools/browser-close.js +27 -0
  70. package/dist/cli/agent/tools/browser-close.js.map +1 -0
  71. package/dist/cli/agent/tools/browser-navigate.d.ts +2 -0
  72. package/dist/cli/agent/tools/browser-navigate.d.ts.map +1 -0
  73. package/dist/cli/agent/tools/browser-navigate.js +27 -0
  74. package/dist/cli/agent/tools/browser-navigate.js.map +1 -0
  75. package/dist/cli/agent/tools/browser-open.d.ts +2 -0
  76. package/dist/cli/agent/tools/browser-open.d.ts.map +1 -0
  77. package/dist/cli/agent/tools/browser-open.js +38 -0
  78. package/dist/cli/agent/tools/browser-open.js.map +1 -0
  79. package/dist/cli/agent/tools/browser-screenshot.d.ts +2 -0
  80. package/dist/cli/agent/tools/browser-screenshot.d.ts.map +1 -0
  81. package/dist/cli/agent/tools/browser-screenshot.js +68 -0
  82. package/dist/cli/agent/tools/browser-screenshot.js.map +1 -0
  83. package/dist/cli/agent/tools/browser-type.d.ts +2 -0
  84. package/dist/cli/agent/tools/browser-type.d.ts.map +1 -0
  85. package/dist/cli/agent/tools/browser-type.js +33 -0
  86. package/dist/cli/agent/tools/browser-type.js.map +1 -0
  87. package/dist/cli/agent/tools/bug-list.d.ts +2 -0
  88. package/dist/cli/agent/tools/bug-list.d.ts.map +1 -0
  89. package/dist/cli/agent/tools/bug-list.js +82 -0
  90. package/dist/cli/agent/tools/bug-list.js.map +1 -0
  91. package/dist/cli/agent/tools/bug-report.d.ts +2 -0
  92. package/dist/cli/agent/tools/bug-report.d.ts.map +1 -0
  93. package/dist/cli/agent/tools/bug-report.js +130 -0
  94. package/dist/cli/agent/tools/bug-report.js.map +1 -0
  95. package/dist/cli/agent/tools/edit-file.d.ts +2 -0
  96. package/dist/cli/agent/tools/edit-file.d.ts.map +1 -0
  97. package/dist/cli/agent/tools/edit-file.js +61 -0
  98. package/dist/cli/agent/tools/edit-file.js.map +1 -0
  99. package/dist/cli/agent/tools/find.d.ts +2 -0
  100. package/dist/cli/agent/tools/find.d.ts.map +1 -0
  101. package/dist/cli/agent/tools/find.js +35 -0
  102. package/dist/cli/agent/tools/find.js.map +1 -0
  103. package/dist/cli/agent/tools/git-commit.d.ts +2 -0
  104. package/dist/cli/agent/tools/git-commit.d.ts.map +1 -0
  105. package/dist/cli/agent/tools/git-commit.js +57 -0
  106. package/dist/cli/agent/tools/git-commit.js.map +1 -0
  107. package/dist/cli/agent/tools/git-diff.d.ts +2 -0
  108. package/dist/cli/agent/tools/git-diff.d.ts.map +1 -0
  109. package/dist/cli/agent/tools/git-diff.js +45 -0
  110. package/dist/cli/agent/tools/git-diff.js.map +1 -0
  111. package/dist/cli/agent/tools/git-log.d.ts +2 -0
  112. package/dist/cli/agent/tools/git-log.d.ts.map +1 -0
  113. package/dist/cli/agent/tools/git-log.js +41 -0
  114. package/dist/cli/agent/tools/git-log.js.map +1 -0
  115. package/dist/cli/agent/tools/git-status.d.ts +2 -0
  116. package/dist/cli/agent/tools/git-status.d.ts.map +1 -0
  117. package/dist/cli/agent/tools/git-status.js +52 -0
  118. package/dist/cli/agent/tools/git-status.js.map +1 -0
  119. package/dist/cli/agent/tools/list-dir.d.ts +2 -0
  120. package/dist/cli/agent/tools/list-dir.d.ts.map +1 -0
  121. package/dist/cli/agent/tools/list-dir.js +73 -0
  122. package/dist/cli/agent/tools/list-dir.js.map +1 -0
  123. package/dist/cli/agent/tools/read-file.d.ts +2 -0
  124. package/dist/cli/agent/tools/read-file.d.ts.map +1 -0
  125. package/dist/cli/agent/tools/read-file.js +45 -0
  126. package/dist/cli/agent/tools/read-file.js.map +1 -0
  127. package/dist/cli/agent/tools/registry.d.ts +34 -0
  128. package/dist/cli/agent/tools/registry.d.ts.map +1 -0
  129. package/dist/cli/agent/tools/registry.js +53 -0
  130. package/dist/cli/agent/tools/registry.js.map +1 -0
  131. package/dist/cli/agent/tools/run-command.d.ts +2 -0
  132. package/dist/cli/agent/tools/run-command.d.ts.map +1 -0
  133. package/dist/cli/agent/tools/run-command.js +112 -0
  134. package/dist/cli/agent/tools/run-command.js.map +1 -0
  135. package/dist/cli/agent/tools/search.d.ts +2 -0
  136. package/dist/cli/agent/tools/search.d.ts.map +1 -0
  137. package/dist/cli/agent/tools/search.js +104 -0
  138. package/dist/cli/agent/tools/search.js.map +1 -0
  139. package/dist/cli/agent/tools/spiral-query.d.ts +2 -0
  140. package/dist/cli/agent/tools/spiral-query.d.ts.map +1 -0
  141. package/dist/cli/agent/tools/spiral-query.js +52 -0
  142. package/dist/cli/agent/tools/spiral-query.js.map +1 -0
  143. package/dist/cli/agent/tools/spiral-store.d.ts +2 -0
  144. package/dist/cli/agent/tools/spiral-store.d.ts.map +1 -0
  145. package/dist/cli/agent/tools/spiral-store.js +37 -0
  146. package/dist/cli/agent/tools/spiral-store.js.map +1 -0
  147. package/dist/cli/agent/tools/web-research.d.ts +2 -0
  148. package/dist/cli/agent/tools/web-research.d.ts.map +1 -0
  149. package/dist/cli/agent/tools/web-research.js +96 -0
  150. package/dist/cli/agent/tools/web-research.js.map +1 -0
  151. package/dist/cli/agent/tools/write-file.d.ts +2 -0
  152. package/dist/cli/agent/tools/write-file.d.ts.map +1 -0
  153. package/dist/cli/agent/tools/write-file.js +86 -0
  154. package/dist/cli/agent/tools/write-file.js.map +1 -0
  155. package/dist/cli/agent/undo.d.ts +30 -0
  156. package/dist/cli/agent/undo.d.ts.map +1 -0
  157. package/dist/cli/agent/undo.js +48 -0
  158. package/dist/cli/agent/undo.js.map +1 -0
  159. package/dist/cli/auth/callback-server.d.ts +15 -0
  160. package/dist/cli/auth/callback-server.d.ts.map +1 -0
  161. package/dist/cli/auth/callback-server.js +169 -0
  162. package/dist/cli/auth/callback-server.js.map +1 -0
  163. package/dist/cli/auth/feature-gate.d.ts +47 -0
  164. package/dist/cli/auth/feature-gate.d.ts.map +1 -0
  165. package/dist/cli/auth/feature-gate.js +171 -0
  166. package/dist/cli/auth/feature-gate.js.map +1 -0
  167. package/dist/cli/auth/guard.d.ts +11 -0
  168. package/dist/cli/auth/guard.d.ts.map +1 -0
  169. package/dist/cli/auth/guard.js +94 -0
  170. package/dist/cli/auth/guard.js.map +1 -0
  171. package/dist/cli/auth/login.d.ts +22 -0
  172. package/dist/cli/auth/login.d.ts.map +1 -0
  173. package/dist/cli/auth/login.js +287 -0
  174. package/dist/cli/auth/login.js.map +1 -0
  175. package/dist/cli/auth/logout.d.ts +6 -0
  176. package/dist/cli/auth/logout.d.ts.map +1 -0
  177. package/dist/cli/auth/logout.js +36 -0
  178. package/dist/cli/auth/logout.js.map +1 -0
  179. package/dist/cli/bench/dataset.d.ts +13 -0
  180. package/dist/cli/bench/dataset.d.ts.map +1 -0
  181. package/dist/cli/bench/dataset.js +97 -0
  182. package/dist/cli/bench/dataset.js.map +1 -0
  183. package/dist/cli/bench/harness.d.ts +7 -0
  184. package/dist/cli/bench/harness.d.ts.map +1 -0
  185. package/dist/cli/bench/harness.js +135 -0
  186. package/dist/cli/bench/harness.js.map +1 -0
  187. package/dist/cli/bench/metrics.d.ts +15 -0
  188. package/dist/cli/bench/metrics.d.ts.map +1 -0
  189. package/dist/cli/bench/metrics.js +98 -0
  190. package/dist/cli/bench/metrics.js.map +1 -0
  191. package/dist/cli/bench/output.d.ts +42 -0
  192. package/dist/cli/bench/output.d.ts.map +1 -0
  193. package/dist/cli/bench/output.js +140 -0
  194. package/dist/cli/bench/output.js.map +1 -0
  195. package/dist/cli/bench/prompt.d.ts +13 -0
  196. package/dist/cli/bench/prompt.d.ts.map +1 -0
  197. package/dist/cli/bench/prompt.js +106 -0
  198. package/dist/cli/bench/prompt.js.map +1 -0
  199. package/dist/cli/bench/runner.d.ts +14 -0
  200. package/dist/cli/bench/runner.d.ts.map +1 -0
  201. package/dist/cli/bench/runner.js +334 -0
  202. package/dist/cli/bench/runner.js.map +1 -0
  203. package/dist/cli/bench/types.d.ts +109 -0
  204. package/dist/cli/bench/types.d.ts.map +1 -0
  205. package/dist/cli/bench/types.js +2 -0
  206. package/dist/cli/bench/types.js.map +1 -0
  207. package/dist/cli/bench/ui.d.ts +12 -0
  208. package/dist/cli/bench/ui.d.ts.map +1 -0
  209. package/dist/cli/bench/ui.js +126 -0
  210. package/dist/cli/bench/ui.js.map +1 -0
  211. package/dist/cli/brain/archive.d.ts +33 -0
  212. package/dist/cli/brain/archive.d.ts.map +1 -0
  213. package/dist/cli/brain/archive.js +166 -0
  214. package/dist/cli/brain/archive.js.map +1 -0
  215. package/dist/cli/brain/control-protocol.d.ts +913 -0
  216. package/dist/cli/brain/control-protocol.d.ts.map +1 -0
  217. package/dist/cli/brain/control-protocol.js +87 -0
  218. package/dist/cli/brain/control-protocol.js.map +1 -0
  219. package/dist/cli/brain/exporter.d.ts +34 -0
  220. package/dist/cli/brain/exporter.d.ts.map +1 -0
  221. package/dist/cli/brain/exporter.js +37 -0
  222. package/dist/cli/brain/exporter.js.map +1 -0
  223. package/dist/cli/brain/generator.d.ts +157 -0
  224. package/dist/cli/brain/generator.d.ts.map +1 -0
  225. package/dist/cli/brain/generator.js +633 -0
  226. package/dist/cli/brain/generator.js.map +1 -0
  227. package/dist/cli/brain/instance-manager.d.ts +42 -0
  228. package/dist/cli/brain/instance-manager.d.ts.map +1 -0
  229. package/dist/cli/brain/instance-manager.js +152 -0
  230. package/dist/cli/brain/instance-manager.js.map +1 -0
  231. package/dist/cli/brain/relay-client.d.ts +8 -0
  232. package/dist/cli/brain/relay-client.d.ts.map +1 -0
  233. package/dist/cli/brain/relay-client.js +505 -0
  234. package/dist/cli/brain/relay-client.js.map +1 -0
  235. package/dist/cli/brain/server.d.ts +40 -0
  236. package/dist/cli/brain/server.d.ts.map +1 -0
  237. package/dist/cli/brain/server.js +873 -0
  238. package/dist/cli/brain/server.js.map +1 -0
  239. package/dist/cli/brain/stdout-capture.d.ts +19 -0
  240. package/dist/cli/brain/stdout-capture.d.ts.map +1 -0
  241. package/dist/cli/brain/stdout-capture.js +45 -0
  242. package/dist/cli/brain/stdout-capture.js.map +1 -0
  243. package/dist/cli/brain/sync.d.ts +53 -0
  244. package/dist/cli/brain/sync.d.ts.map +1 -0
  245. package/dist/cli/brain/sync.js +113 -0
  246. package/dist/cli/brain/sync.js.map +1 -0
  247. package/dist/cli/brain/template.d.ts +3 -0
  248. package/dist/cli/brain/template.d.ts.map +1 -0
  249. package/dist/cli/brain/template.js +2099 -0
  250. package/dist/cli/brain/template.js.map +1 -0
  251. package/dist/cli/brain/web-chat-handler.d.ts +26 -0
  252. package/dist/cli/brain/web-chat-handler.d.ts.map +1 -0
  253. package/dist/cli/brain/web-chat-handler.js +134 -0
  254. package/dist/cli/brain/web-chat-handler.js.map +1 -0
  255. package/dist/cli/browser/chrome-finder.d.ts +12 -0
  256. package/dist/cli/browser/chrome-finder.d.ts.map +1 -0
  257. package/dist/cli/browser/chrome-finder.js +74 -0
  258. package/dist/cli/browser/chrome-finder.js.map +1 -0
  259. package/dist/cli/browser/controller.d.ts +51 -0
  260. package/dist/cli/browser/controller.d.ts.map +1 -0
  261. package/dist/cli/browser/controller.js +152 -0
  262. package/dist/cli/browser/controller.js.map +1 -0
  263. package/dist/cli/browser/vision.d.ts +38 -0
  264. package/dist/cli/browser/vision.d.ts.map +1 -0
  265. package/dist/cli/browser/vision.js +123 -0
  266. package/dist/cli/browser/vision.js.map +1 -0
  267. package/dist/cli/bugs/detector.d.ts +14 -0
  268. package/dist/cli/bugs/detector.d.ts.map +1 -0
  269. package/dist/cli/bugs/detector.js +108 -0
  270. package/dist/cli/bugs/detector.js.map +1 -0
  271. package/dist/cli/bugs/journal.d.ts +39 -0
  272. package/dist/cli/bugs/journal.d.ts.map +1 -0
  273. package/dist/cli/bugs/journal.js +195 -0
  274. package/dist/cli/bugs/journal.js.map +1 -0
  275. package/dist/cli/bugs/types.d.ts +27 -0
  276. package/dist/cli/bugs/types.d.ts.map +1 -0
  277. package/dist/cli/bugs/types.js +2 -0
  278. package/dist/cli/bugs/types.js.map +1 -0
  279. package/dist/cli/checkpoints/browser.d.ts +26 -0
  280. package/dist/cli/checkpoints/browser.d.ts.map +1 -0
  281. package/dist/cli/checkpoints/browser.js +272 -0
  282. package/dist/cli/checkpoints/browser.js.map +1 -0
  283. package/dist/cli/checkpoints/keybinding.d.ts +22 -0
  284. package/dist/cli/checkpoints/keybinding.d.ts.map +1 -0
  285. package/dist/cli/checkpoints/keybinding.js +44 -0
  286. package/dist/cli/checkpoints/keybinding.js.map +1 -0
  287. package/dist/cli/checkpoints/revert.d.ts +37 -0
  288. package/dist/cli/checkpoints/revert.d.ts.map +1 -0
  289. package/dist/cli/checkpoints/revert.js +144 -0
  290. package/dist/cli/checkpoints/revert.js.map +1 -0
  291. package/dist/cli/checkpoints/store.d.ts +48 -0
  292. package/dist/cli/checkpoints/store.d.ts.map +1 -0
  293. package/dist/cli/checkpoints/store.js +196 -0
  294. package/dist/cli/checkpoints/store.js.map +1 -0
  295. package/dist/cli/commands/archive.d.ts +7 -0
  296. package/dist/cli/commands/archive.d.ts.map +1 -0
  297. package/dist/cli/commands/archive.js +66 -0
  298. package/dist/cli/commands/archive.js.map +1 -0
  299. package/dist/cli/commands/auth.d.ts +10 -0
  300. package/dist/cli/commands/auth.d.ts.map +1 -0
  301. package/dist/cli/commands/auth.js +44 -0
  302. package/dist/cli/commands/auth.js.map +1 -0
  303. package/dist/cli/commands/bench.d.ts +25 -0
  304. package/dist/cli/commands/bench.d.ts.map +1 -0
  305. package/dist/cli/commands/bench.js +114 -0
  306. package/dist/cli/commands/bench.js.map +1 -0
  307. package/dist/cli/commands/chat.d.ts +11 -0
  308. package/dist/cli/commands/chat.d.ts.map +1 -0
  309. package/dist/cli/commands/chat.js +5363 -0
  310. package/dist/cli/commands/chat.js.map +1 -0
  311. package/dist/cli/commands/config.d.ts +4 -0
  312. package/dist/cli/commands/config.d.ts.map +1 -0
  313. package/dist/cli/commands/config.js +43 -0
  314. package/dist/cli/commands/config.js.map +1 -0
  315. package/dist/cli/commands/feed.d.ts +6 -0
  316. package/dist/cli/commands/feed.d.ts.map +1 -0
  317. package/dist/cli/commands/feed.js +95 -0
  318. package/dist/cli/commands/feed.js.map +1 -0
  319. package/dist/cli/commands/helix-menu.d.ts +4 -0
  320. package/dist/cli/commands/helix-menu.d.ts.map +1 -0
  321. package/dist/cli/commands/helix-menu.js +400 -0
  322. package/dist/cli/commands/helix-menu.js.map +1 -0
  323. package/dist/cli/commands/init.d.ts +2 -0
  324. package/dist/cli/commands/init.d.ts.map +1 -0
  325. package/dist/cli/commands/init.js +38 -0
  326. package/dist/cli/commands/init.js.map +1 -0
  327. package/dist/cli/commands/setup.d.ts +20 -0
  328. package/dist/cli/commands/setup.d.ts.map +1 -0
  329. package/dist/cli/commands/setup.js +310 -0
  330. package/dist/cli/commands/setup.js.map +1 -0
  331. package/dist/cli/commands/spiral.d.ts +4 -0
  332. package/dist/cli/commands/spiral.d.ts.map +1 -0
  333. package/dist/cli/commands/spiral.js +81 -0
  334. package/dist/cli/commands/spiral.js.map +1 -0
  335. package/dist/cli/config/store.d.ts +80 -0
  336. package/dist/cli/config/store.d.ts.map +1 -0
  337. package/dist/cli/config/store.js +247 -0
  338. package/dist/cli/config/store.js.map +1 -0
  339. package/dist/cli/config/trust.d.ts +21 -0
  340. package/dist/cli/config/trust.d.ts.map +1 -0
  341. package/dist/cli/config/trust.js +106 -0
  342. package/dist/cli/config/trust.js.map +1 -0
  343. package/dist/cli/context/assembler.d.ts +9 -0
  344. package/dist/cli/context/assembler.d.ts.map +1 -0
  345. package/dist/cli/context/assembler.js +217 -0
  346. package/dist/cli/context/assembler.js.map +1 -0
  347. package/dist/cli/context/project.d.ts +13 -0
  348. package/dist/cli/context/project.d.ts.map +1 -0
  349. package/dist/cli/context/project.js +126 -0
  350. package/dist/cli/context/project.js.map +1 -0
  351. package/dist/cli/context/session-buffer.d.ts +69 -0
  352. package/dist/cli/context/session-buffer.d.ts.map +1 -0
  353. package/dist/cli/context/session-buffer.js +362 -0
  354. package/dist/cli/context/session-buffer.js.map +1 -0
  355. package/dist/cli/context/trimmer.d.ts +26 -0
  356. package/dist/cli/context/trimmer.d.ts.map +1 -0
  357. package/dist/cli/context/trimmer.js +137 -0
  358. package/dist/cli/context/trimmer.js.map +1 -0
  359. package/dist/cli/core/index.d.ts +15 -0
  360. package/dist/cli/core/index.d.ts.map +1 -0
  361. package/dist/cli/core/index.js +12 -0
  362. package/dist/cli/core/index.js.map +1 -0
  363. package/dist/cli/core/input.d.ts +208 -0
  364. package/dist/cli/core/input.d.ts.map +1 -0
  365. package/dist/cli/core/input.js +807 -0
  366. package/dist/cli/core/input.js.map +1 -0
  367. package/dist/cli/core/screen.d.ts +211 -0
  368. package/dist/cli/core/screen.d.ts.map +1 -0
  369. package/dist/cli/core/screen.js +826 -0
  370. package/dist/cli/core/screen.js.map +1 -0
  371. package/dist/cli/core/terminal.d.ts +88 -0
  372. package/dist/cli/core/terminal.d.ts.map +1 -0
  373. package/dist/cli/core/terminal.js +200 -0
  374. package/dist/cli/core/terminal.js.map +1 -0
  375. package/dist/cli/feed/analyzer.d.ts +17 -0
  376. package/dist/cli/feed/analyzer.d.ts.map +1 -0
  377. package/dist/cli/feed/analyzer.js +220 -0
  378. package/dist/cli/feed/analyzer.js.map +1 -0
  379. package/dist/cli/feed/intent.d.ts +8 -0
  380. package/dist/cli/feed/intent.d.ts.map +1 -0
  381. package/dist/cli/feed/intent.js +70 -0
  382. package/dist/cli/feed/intent.js.map +1 -0
  383. package/dist/cli/feed/parser.d.ts +23 -0
  384. package/dist/cli/feed/parser.d.ts.map +1 -0
  385. package/dist/cli/feed/parser.js +166 -0
  386. package/dist/cli/feed/parser.js.map +1 -0
  387. package/dist/cli/feed/pipeline.d.ts +33 -0
  388. package/dist/cli/feed/pipeline.d.ts.map +1 -0
  389. package/dist/cli/feed/pipeline.js +250 -0
  390. package/dist/cli/feed/pipeline.js.map +1 -0
  391. package/dist/cli/feed/reader.d.ts +10 -0
  392. package/dist/cli/feed/reader.d.ts.map +1 -0
  393. package/dist/cli/feed/reader.js +61 -0
  394. package/dist/cli/feed/reader.js.map +1 -0
  395. package/dist/cli/feed/scanner.d.ts +10 -0
  396. package/dist/cli/feed/scanner.d.ts.map +1 -0
  397. package/dist/cli/feed/scanner.js +124 -0
  398. package/dist/cli/feed/scanner.js.map +1 -0
  399. package/dist/cli/feed/watcher.d.ts +14 -0
  400. package/dist/cli/feed/watcher.d.ts.map +1 -0
  401. package/dist/cli/feed/watcher.js +76 -0
  402. package/dist/cli/feed/watcher.js.map +1 -0
  403. package/dist/cli/helixmind.cmd +2 -0
  404. package/dist/cli/index.d.ts +3 -0
  405. package/dist/cli/index.d.ts.map +1 -0
  406. package/dist/cli/index.js +297 -0
  407. package/dist/cli/index.js.map +1 -0
  408. package/dist/cli/jarvis/autonomy.d.ts +55 -0
  409. package/dist/cli/jarvis/autonomy.d.ts.map +1 -0
  410. package/dist/cli/jarvis/autonomy.js +176 -0
  411. package/dist/cli/jarvis/autonomy.js.map +1 -0
  412. package/dist/cli/jarvis/code-reviewer.d.ts +35 -0
  413. package/dist/cli/jarvis/code-reviewer.d.ts.map +1 -0
  414. package/dist/cli/jarvis/code-reviewer.js +93 -0
  415. package/dist/cli/jarvis/code-reviewer.js.map +1 -0
  416. package/dist/cli/jarvis/core-ethics.d.ts +35 -0
  417. package/dist/cli/jarvis/core-ethics.d.ts.map +1 -0
  418. package/dist/cli/jarvis/core-ethics.js +246 -0
  419. package/dist/cli/jarvis/core-ethics.js.map +1 -0
  420. package/dist/cli/jarvis/daemon.d.ts +24 -0
  421. package/dist/cli/jarvis/daemon.d.ts.map +1 -0
  422. package/dist/cli/jarvis/daemon.js +230 -0
  423. package/dist/cli/jarvis/daemon.js.map +1 -0
  424. package/dist/cli/jarvis/dependency-guardian.d.ts +40 -0
  425. package/dist/cli/jarvis/dependency-guardian.d.ts.map +1 -0
  426. package/dist/cli/jarvis/dependency-guardian.js +148 -0
  427. package/dist/cli/jarvis/dependency-guardian.js.map +1 -0
  428. package/dist/cli/jarvis/git-intelligence.d.ts +36 -0
  429. package/dist/cli/jarvis/git-intelligence.d.ts.map +1 -0
  430. package/dist/cli/jarvis/git-intelligence.js +222 -0
  431. package/dist/cli/jarvis/git-intelligence.js.map +1 -0
  432. package/dist/cli/jarvis/identity.d.ts +57 -0
  433. package/dist/cli/jarvis/identity.d.ts.map +1 -0
  434. package/dist/cli/jarvis/identity.js +416 -0
  435. package/dist/cli/jarvis/identity.js.map +1 -0
  436. package/dist/cli/jarvis/index.d.ts +9 -0
  437. package/dist/cli/jarvis/index.d.ts.map +1 -0
  438. package/dist/cli/jarvis/index.js +7 -0
  439. package/dist/cli/jarvis/index.js.map +1 -0
  440. package/dist/cli/jarvis/instance-lock.d.ts +15 -0
  441. package/dist/cli/jarvis/instance-lock.d.ts.map +1 -0
  442. package/dist/cli/jarvis/instance-lock.js +95 -0
  443. package/dist/cli/jarvis/instance-lock.js.map +1 -0
  444. package/dist/cli/jarvis/learning.d.ts +73 -0
  445. package/dist/cli/jarvis/learning.d.ts.map +1 -0
  446. package/dist/cli/jarvis/learning.js +284 -0
  447. package/dist/cli/jarvis/learning.js.map +1 -0
  448. package/dist/cli/jarvis/multi-project.d.ts +39 -0
  449. package/dist/cli/jarvis/multi-project.d.ts.map +1 -0
  450. package/dist/cli/jarvis/multi-project.js +152 -0
  451. package/dist/cli/jarvis/multi-project.js.map +1 -0
  452. package/dist/cli/jarvis/notifications.d.ts +39 -0
  453. package/dist/cli/jarvis/notifications.d.ts.map +1 -0
  454. package/dist/cli/jarvis/notifications.js +216 -0
  455. package/dist/cli/jarvis/notifications.js.map +1 -0
  456. package/dist/cli/jarvis/onboarding.d.ts +19 -0
  457. package/dist/cli/jarvis/onboarding.d.ts.map +1 -0
  458. package/dist/cli/jarvis/onboarding.js +116 -0
  459. package/dist/cli/jarvis/onboarding.js.map +1 -0
  460. package/dist/cli/jarvis/orchestrator.d.ts +46 -0
  461. package/dist/cli/jarvis/orchestrator.d.ts.map +1 -0
  462. package/dist/cli/jarvis/orchestrator.js +253 -0
  463. package/dist/cli/jarvis/orchestrator.js.map +1 -0
  464. package/dist/cli/jarvis/parallel.d.ts +63 -0
  465. package/dist/cli/jarvis/parallel.d.ts.map +1 -0
  466. package/dist/cli/jarvis/parallel.js +172 -0
  467. package/dist/cli/jarvis/parallel.js.map +1 -0
  468. package/dist/cli/jarvis/performance-profiler.d.ts +31 -0
  469. package/dist/cli/jarvis/performance-profiler.d.ts.map +1 -0
  470. package/dist/cli/jarvis/performance-profiler.js +229 -0
  471. package/dist/cli/jarvis/performance-profiler.js.map +1 -0
  472. package/dist/cli/jarvis/proposals.d.ts +80 -0
  473. package/dist/cli/jarvis/proposals.d.ts.map +1 -0
  474. package/dist/cli/jarvis/proposals.js +286 -0
  475. package/dist/cli/jarvis/proposals.js.map +1 -0
  476. package/dist/cli/jarvis/queue.d.ts +41 -0
  477. package/dist/cli/jarvis/queue.d.ts.map +1 -0
  478. package/dist/cli/jarvis/queue.js +245 -0
  479. package/dist/cli/jarvis/queue.js.map +1 -0
  480. package/dist/cli/jarvis/runtime-context.d.ts +34 -0
  481. package/dist/cli/jarvis/runtime-context.d.ts.map +1 -0
  482. package/dist/cli/jarvis/runtime-context.js +113 -0
  483. package/dist/cli/jarvis/runtime-context.js.map +1 -0
  484. package/dist/cli/jarvis/scheduler.d.ts +21 -0
  485. package/dist/cli/jarvis/scheduler.d.ts.map +1 -0
  486. package/dist/cli/jarvis/scheduler.js +182 -0
  487. package/dist/cli/jarvis/scheduler.js.map +1 -0
  488. package/dist/cli/jarvis/sentiment.d.ts +29 -0
  489. package/dist/cli/jarvis/sentiment.d.ts.map +1 -0
  490. package/dist/cli/jarvis/sentiment.js +221 -0
  491. package/dist/cli/jarvis/sentiment.js.map +1 -0
  492. package/dist/cli/jarvis/skill-scoring.d.ts +63 -0
  493. package/dist/cli/jarvis/skill-scoring.d.ts.map +1 -0
  494. package/dist/cli/jarvis/skill-scoring.js +226 -0
  495. package/dist/cli/jarvis/skill-scoring.js.map +1 -0
  496. package/dist/cli/jarvis/skills.d.ts +87 -0
  497. package/dist/cli/jarvis/skills.d.ts.map +1 -0
  498. package/dist/cli/jarvis/skills.js +367 -0
  499. package/dist/cli/jarvis/skills.js.map +1 -0
  500. package/dist/cli/jarvis/telegram-bot.d.ts +77 -0
  501. package/dist/cli/jarvis/telegram-bot.d.ts.map +1 -0
  502. package/dist/cli/jarvis/telegram-bot.js +251 -0
  503. package/dist/cli/jarvis/telegram-bot.js.map +1 -0
  504. package/dist/cli/jarvis/telemetry.d.ts +32 -0
  505. package/dist/cli/jarvis/telemetry.d.ts.map +1 -0
  506. package/dist/cli/jarvis/telemetry.js +213 -0
  507. package/dist/cli/jarvis/telemetry.js.map +1 -0
  508. package/dist/cli/jarvis/test-sentinel.d.ts +36 -0
  509. package/dist/cli/jarvis/test-sentinel.d.ts.map +1 -0
  510. package/dist/cli/jarvis/test-sentinel.js +178 -0
  511. package/dist/cli/jarvis/test-sentinel.js.map +1 -0
  512. package/dist/cli/jarvis/thinking-loop.d.ts +15 -0
  513. package/dist/cli/jarvis/thinking-loop.d.ts.map +1 -0
  514. package/dist/cli/jarvis/thinking-loop.js +437 -0
  515. package/dist/cli/jarvis/thinking-loop.js.map +1 -0
  516. package/dist/cli/jarvis/triggers.d.ts +23 -0
  517. package/dist/cli/jarvis/triggers.d.ts.map +1 -0
  518. package/dist/cli/jarvis/triggers.js +157 -0
  519. package/dist/cli/jarvis/triggers.js.map +1 -0
  520. package/dist/cli/jarvis/types.d.ts +582 -0
  521. package/dist/cli/jarvis/types.d.ts.map +1 -0
  522. package/dist/cli/jarvis/types.js +18 -0
  523. package/dist/cli/jarvis/types.js.map +1 -0
  524. package/dist/cli/jarvis/voice-bridge.d.ts +68 -0
  525. package/dist/cli/jarvis/voice-bridge.d.ts.map +1 -0
  526. package/dist/cli/jarvis/voice-bridge.js +254 -0
  527. package/dist/cli/jarvis/voice-bridge.js.map +1 -0
  528. package/dist/cli/jarvis/world-model.d.ts +43 -0
  529. package/dist/cli/jarvis/world-model.d.ts.map +1 -0
  530. package/dist/cli/jarvis/world-model.js +209 -0
  531. package/dist/cli/jarvis/world-model.js.map +1 -0
  532. package/dist/cli/jarvis-proxy/client.d.ts +18 -0
  533. package/dist/cli/jarvis-proxy/client.d.ts.map +1 -0
  534. package/dist/cli/jarvis-proxy/client.js +64 -0
  535. package/dist/cli/jarvis-proxy/client.js.map +1 -0
  536. package/dist/cli/jarvis-proxy/executor.d.ts +13 -0
  537. package/dist/cli/jarvis-proxy/executor.d.ts.map +1 -0
  538. package/dist/cli/jarvis-proxy/executor.js +32 -0
  539. package/dist/cli/jarvis-proxy/executor.js.map +1 -0
  540. package/dist/cli/jarvis-proxy/types.d.ts +25 -0
  541. package/dist/cli/jarvis-proxy/types.d.ts.map +1 -0
  542. package/dist/cli/jarvis-proxy/types.js +7 -0
  543. package/dist/cli/jarvis-proxy/types.js.map +1 -0
  544. package/dist/cli/license/checker.d.ts +11 -0
  545. package/dist/cli/license/checker.d.ts.map +1 -0
  546. package/dist/cli/license/checker.js +28 -0
  547. package/dist/cli/license/checker.js.map +1 -0
  548. package/dist/cli/license/validator.d.ts +13 -0
  549. package/dist/cli/license/validator.d.ts.map +1 -0
  550. package/dist/cli/license/validator.js +72 -0
  551. package/dist/cli/license/validator.js.map +1 -0
  552. package/dist/cli/providers/anthropic.d.ts +11 -0
  553. package/dist/cli/providers/anthropic.d.ts.map +1 -0
  554. package/dist/cli/providers/anthropic.js +120 -0
  555. package/dist/cli/providers/anthropic.js.map +1 -0
  556. package/dist/cli/providers/model-limits.d.ts +12 -0
  557. package/dist/cli/providers/model-limits.d.ts.map +1 -0
  558. package/dist/cli/providers/model-limits.js +63 -0
  559. package/dist/cli/providers/model-limits.js.map +1 -0
  560. package/dist/cli/providers/ollama.d.ts +37 -0
  561. package/dist/cli/providers/ollama.d.ts.map +1 -0
  562. package/dist/cli/providers/ollama.js +151 -0
  563. package/dist/cli/providers/ollama.js.map +1 -0
  564. package/dist/cli/providers/openai.d.ts +14 -0
  565. package/dist/cli/providers/openai.d.ts.map +1 -0
  566. package/dist/cli/providers/openai.js +319 -0
  567. package/dist/cli/providers/openai.js.map +1 -0
  568. package/dist/cli/providers/rate-limiter.d.ts +51 -0
  569. package/dist/cli/providers/rate-limiter.d.ts.map +1 -0
  570. package/dist/cli/providers/rate-limiter.js +164 -0
  571. package/dist/cli/providers/rate-limiter.js.map +1 -0
  572. package/dist/cli/providers/registry.d.ts +16 -0
  573. package/dist/cli/providers/registry.d.ts.map +1 -0
  574. package/dist/cli/providers/registry.js +99 -0
  575. package/dist/cli/providers/registry.js.map +1 -0
  576. package/dist/cli/providers/types.d.ts +72 -0
  577. package/dist/cli/providers/types.d.ts.map +1 -0
  578. package/dist/cli/providers/types.js +2 -0
  579. package/dist/cli/providers/types.js.map +1 -0
  580. package/dist/cli/sessions/manager.d.ts +69 -0
  581. package/dist/cli/sessions/manager.d.ts.map +1 -0
  582. package/dist/cli/sessions/manager.js +201 -0
  583. package/dist/cli/sessions/manager.js.map +1 -0
  584. package/dist/cli/sessions/session.d.ts +58 -0
  585. package/dist/cli/sessions/session.d.ts.map +1 -0
  586. package/dist/cli/sessions/session.js +74 -0
  587. package/dist/cli/sessions/session.js.map +1 -0
  588. package/dist/cli/sessions/tab-view.d.ts +18 -0
  589. package/dist/cli/sessions/tab-view.d.ts.map +1 -0
  590. package/dist/cli/sessions/tab-view.js +137 -0
  591. package/dist/cli/sessions/tab-view.js.map +1 -0
  592. package/dist/cli/ui/activity.d.ts +81 -0
  593. package/dist/cli/ui/activity.d.ts.map +1 -0
  594. package/dist/cli/ui/activity.js +286 -0
  595. package/dist/cli/ui/activity.js.map +1 -0
  596. package/dist/cli/ui/agent-display.d.ts +24 -0
  597. package/dist/cli/ui/agent-display.d.ts.map +1 -0
  598. package/dist/cli/ui/agent-display.js +36 -0
  599. package/dist/cli/ui/agent-display.js.map +1 -0
  600. package/dist/cli/ui/bottom-chrome.d.ts +121 -0
  601. package/dist/cli/ui/bottom-chrome.d.ts.map +1 -0
  602. package/dist/cli/ui/bottom-chrome.js +428 -0
  603. package/dist/cli/ui/bottom-chrome.js.map +1 -0
  604. package/dist/cli/ui/chat-view.d.ts +10 -0
  605. package/dist/cli/ui/chat-view.d.ts.map +1 -0
  606. package/dist/cli/ui/chat-view.js +237 -0
  607. package/dist/cli/ui/chat-view.js.map +1 -0
  608. package/dist/cli/ui/command-suggest.d.ts +22 -0
  609. package/dist/cli/ui/command-suggest.d.ts.map +1 -0
  610. package/dist/cli/ui/command-suggest.js +118 -0
  611. package/dist/cli/ui/command-suggest.js.map +1 -0
  612. package/dist/cli/ui/input-window.d.ts +145 -0
  613. package/dist/cli/ui/input-window.d.ts.map +1 -0
  614. package/dist/cli/ui/input-window.js +415 -0
  615. package/dist/cli/ui/input-window.js.map +1 -0
  616. package/dist/cli/ui/logo.d.ts +3 -0
  617. package/dist/cli/ui/logo.d.ts.map +1 -0
  618. package/dist/cli/ui/logo.js +25 -0
  619. package/dist/cli/ui/logo.js.map +1 -0
  620. package/dist/cli/ui/plan-display.d.ts +35 -0
  621. package/dist/cli/ui/plan-display.d.ts.map +1 -0
  622. package/dist/cli/ui/plan-display.js +381 -0
  623. package/dist/cli/ui/plan-display.js.map +1 -0
  624. package/dist/cli/ui/progress.d.ts +22 -0
  625. package/dist/cli/ui/progress.d.ts.map +1 -0
  626. package/dist/cli/ui/progress.js +126 -0
  627. package/dist/cli/ui/progress.js.map +1 -0
  628. package/dist/cli/ui/prompt-history.d.ts +37 -0
  629. package/dist/cli/ui/prompt-history.d.ts.map +1 -0
  630. package/dist/cli/ui/prompt-history.js +156 -0
  631. package/dist/cli/ui/prompt-history.js.map +1 -0
  632. package/dist/cli/ui/select-menu.d.ts +45 -0
  633. package/dist/cli/ui/select-menu.d.ts.map +1 -0
  634. package/dist/cli/ui/select-menu.js +330 -0
  635. package/dist/cli/ui/select-menu.js.map +1 -0
  636. package/dist/cli/ui/spinner.d.ts +3 -0
  637. package/dist/cli/ui/spinner.d.ts.map +1 -0
  638. package/dist/cli/ui/spinner.js +14 -0
  639. package/dist/cli/ui/spinner.js.map +1 -0
  640. package/dist/cli/ui/statusbar.d.ts +72 -0
  641. package/dist/cli/ui/statusbar.d.ts.map +1 -0
  642. package/dist/cli/ui/statusbar.js +376 -0
  643. package/dist/cli/ui/statusbar.js.map +1 -0
  644. package/dist/cli/ui/suggestion-panel.d.ts +52 -0
  645. package/dist/cli/ui/suggestion-panel.d.ts.map +1 -0
  646. package/dist/cli/ui/suggestion-panel.js +159 -0
  647. package/dist/cli/ui/suggestion-panel.js.map +1 -0
  648. package/dist/cli/ui/theme.d.ts +20 -0
  649. package/dist/cli/ui/theme.d.ts.map +1 -0
  650. package/dist/cli/ui/theme.js +25 -0
  651. package/dist/cli/ui/theme.js.map +1 -0
  652. package/dist/cli/ui/tool-output.d.ts +31 -0
  653. package/dist/cli/ui/tool-output.d.ts.map +1 -0
  654. package/dist/cli/ui/tool-output.js +204 -0
  655. package/dist/cli/ui/tool-output.js.map +1 -0
  656. package/dist/cli/validation/autofix.d.ts +32 -0
  657. package/dist/cli/validation/autofix.d.ts.map +1 -0
  658. package/dist/cli/validation/autofix.js +148 -0
  659. package/dist/cli/validation/autofix.js.map +1 -0
  660. package/dist/cli/validation/classifier.d.ts +17 -0
  661. package/dist/cli/validation/classifier.d.ts.map +1 -0
  662. package/dist/cli/validation/classifier.js +174 -0
  663. package/dist/cli/validation/classifier.js.map +1 -0
  664. package/dist/cli/validation/criteria.d.ts +22 -0
  665. package/dist/cli/validation/criteria.d.ts.map +1 -0
  666. package/dist/cli/validation/criteria.js +188 -0
  667. package/dist/cli/validation/criteria.js.map +1 -0
  668. package/dist/cli/validation/dynamic-checks.d.ts +16 -0
  669. package/dist/cli/validation/dynamic-checks.d.ts.map +1 -0
  670. package/dist/cli/validation/dynamic-checks.js +109 -0
  671. package/dist/cli/validation/dynamic-checks.js.map +1 -0
  672. package/dist/cli/validation/model.d.ts +16 -0
  673. package/dist/cli/validation/model.d.ts.map +1 -0
  674. package/dist/cli/validation/model.js +59 -0
  675. package/dist/cli/validation/model.js.map +1 -0
  676. package/dist/cli/validation/reporter.d.ts +18 -0
  677. package/dist/cli/validation/reporter.d.ts.map +1 -0
  678. package/dist/cli/validation/reporter.js +209 -0
  679. package/dist/cli/validation/reporter.js.map +1 -0
  680. package/dist/cli/validation/spiral-checks.d.ts +12 -0
  681. package/dist/cli/validation/spiral-checks.d.ts.map +1 -0
  682. package/dist/cli/validation/spiral-checks.js +167 -0
  683. package/dist/cli/validation/spiral-checks.js.map +1 -0
  684. package/dist/cli/validation/static-checks.d.ts +26 -0
  685. package/dist/cli/validation/static-checks.d.ts.map +1 -0
  686. package/dist/cli/validation/static-checks.js +648 -0
  687. package/dist/cli/validation/static-checks.js.map +1 -0
  688. package/dist/cli/validation/stats.d.ts +29 -0
  689. package/dist/cli/validation/stats.d.ts.map +1 -0
  690. package/dist/cli/validation/stats.js +137 -0
  691. package/dist/cli/validation/stats.js.map +1 -0
  692. package/dist/cli/version.d.ts +2 -0
  693. package/dist/cli/version.d.ts.map +1 -0
  694. package/dist/cli/version.js +5 -0
  695. package/dist/cli/version.js.map +1 -0
  696. package/dist/cli/voice/clone-manager.d.ts +19 -0
  697. package/dist/cli/voice/clone-manager.d.ts.map +1 -0
  698. package/dist/cli/voice/clone-manager.js +55 -0
  699. package/dist/cli/voice/clone-manager.js.map +1 -0
  700. package/dist/cli/voice/engine.d.ts +43 -0
  701. package/dist/cli/voice/engine.d.ts.map +1 -0
  702. package/dist/cli/voice/engine.js +109 -0
  703. package/dist/cli/voice/engine.js.map +1 -0
  704. package/dist/cli/voice/whisper-stt.d.ts +28 -0
  705. package/dist/cli/voice/whisper-stt.d.ts.map +1 -0
  706. package/dist/cli/voice/whisper-stt.js +78 -0
  707. package/dist/cli/voice/whisper-stt.js.map +1 -0
  708. package/dist/index.d.ts +3 -0
  709. package/dist/index.d.ts.map +1 -0
  710. package/dist/index.js +35 -0
  711. package/dist/index.js.map +1 -0
  712. package/dist/server.d.ts +8 -0
  713. package/dist/server.d.ts.map +1 -0
  714. package/dist/server.js +44 -0
  715. package/dist/server.js.map +1 -0
  716. package/dist/shared/protocol-types.d.ts +283 -0
  717. package/dist/shared/protocol-types.d.ts.map +1 -0
  718. package/dist/shared/protocol-types.js +9 -0
  719. package/dist/shared/protocol-types.js.map +1 -0
  720. package/dist/spiral/cloud/content-extractor.d.ts +27 -0
  721. package/dist/spiral/cloud/content-extractor.d.ts.map +1 -0
  722. package/dist/spiral/cloud/content-extractor.js +175 -0
  723. package/dist/spiral/cloud/content-extractor.js.map +1 -0
  724. package/dist/spiral/cloud/search-provider.d.ts +22 -0
  725. package/dist/spiral/cloud/search-provider.d.ts.map +1 -0
  726. package/dist/spiral/cloud/search-provider.js +241 -0
  727. package/dist/spiral/cloud/search-provider.js.map +1 -0
  728. package/dist/spiral/cloud/topic-detector.d.ts +25 -0
  729. package/dist/spiral/cloud/topic-detector.d.ts.map +1 -0
  730. package/dist/spiral/cloud/topic-detector.js +196 -0
  731. package/dist/spiral/cloud/topic-detector.js.map +1 -0
  732. package/dist/spiral/cloud/web-enricher.d.ts +58 -0
  733. package/dist/spiral/cloud/web-enricher.d.ts.map +1 -0
  734. package/dist/spiral/cloud/web-enricher.js +176 -0
  735. package/dist/spiral/cloud/web-enricher.js.map +1 -0
  736. package/dist/spiral/compression.d.ts +54 -0
  737. package/dist/spiral/compression.d.ts.map +1 -0
  738. package/dist/spiral/compression.js +175 -0
  739. package/dist/spiral/compression.js.map +1 -0
  740. package/dist/spiral/embeddings.d.ts +30 -0
  741. package/dist/spiral/embeddings.d.ts.map +1 -0
  742. package/dist/spiral/embeddings.js +99 -0
  743. package/dist/spiral/embeddings.js.map +1 -0
  744. package/dist/spiral/engine.d.ts +98 -0
  745. package/dist/spiral/engine.d.ts.map +1 -0
  746. package/dist/spiral/engine.js +330 -0
  747. package/dist/spiral/engine.js.map +1 -0
  748. package/dist/spiral/injection.d.ts +29 -0
  749. package/dist/spiral/injection.d.ts.map +1 -0
  750. package/dist/spiral/injection.js +176 -0
  751. package/dist/spiral/injection.js.map +1 -0
  752. package/dist/spiral/relevance.d.ts +37 -0
  753. package/dist/spiral/relevance.d.ts.map +1 -0
  754. package/dist/spiral/relevance.js +75 -0
  755. package/dist/spiral/relevance.js.map +1 -0
  756. package/dist/storage/database.d.ts +11 -0
  757. package/dist/storage/database.d.ts.map +1 -0
  758. package/dist/storage/database.js +169 -0
  759. package/dist/storage/database.js.map +1 -0
  760. package/dist/storage/edges.d.ts +30 -0
  761. package/dist/storage/edges.d.ts.map +1 -0
  762. package/dist/storage/edges.js +98 -0
  763. package/dist/storage/edges.js.map +1 -0
  764. package/dist/storage/nodes.d.ts +60 -0
  765. package/dist/storage/nodes.d.ts.map +1 -0
  766. package/dist/storage/nodes.js +161 -0
  767. package/dist/storage/nodes.js.map +1 -0
  768. package/dist/storage/vectors.d.ts +25 -0
  769. package/dist/storage/vectors.d.ts.map +1 -0
  770. package/dist/storage/vectors.js +110 -0
  771. package/dist/storage/vectors.js.map +1 -0
  772. package/dist/tools/spiral-compact.d.ts +14 -0
  773. package/dist/tools/spiral-compact.d.ts.map +1 -0
  774. package/dist/tools/spiral-compact.js +14 -0
  775. package/dist/tools/spiral-compact.js.map +1 -0
  776. package/dist/tools/spiral-query.d.ts +18 -0
  777. package/dist/tools/spiral-query.d.ts.map +1 -0
  778. package/dist/tools/spiral-query.js +16 -0
  779. package/dist/tools/spiral-query.js.map +1 -0
  780. package/dist/tools/spiral-relate.d.ts +21 -0
  781. package/dist/tools/spiral-relate.d.ts.map +1 -0
  782. package/dist/tools/spiral-relate.js +21 -0
  783. package/dist/tools/spiral-relate.js.map +1 -0
  784. package/dist/tools/spiral-status.d.ts +8 -0
  785. package/dist/tools/spiral-status.d.ts.map +1 -0
  786. package/dist/tools/spiral-status.js +10 -0
  787. package/dist/tools/spiral-status.js.map +1 -0
  788. package/dist/tools/spiral-store.d.ts +41 -0
  789. package/dist/tools/spiral-store.d.ts.map +1 -0
  790. package/dist/tools/spiral-store.js +22 -0
  791. package/dist/tools/spiral-store.js.map +1 -0
  792. package/dist/types.d.ts +94 -0
  793. package/dist/types.d.ts.map +1 -0
  794. package/dist/types.js +9 -0
  795. package/dist/types.js.map +1 -0
  796. package/dist/utils/config.d.ts +14 -0
  797. package/dist/utils/config.d.ts.map +1 -0
  798. package/dist/utils/config.js +44 -0
  799. package/dist/utils/config.js.map +1 -0
  800. package/dist/utils/logger.d.ts +10 -0
  801. package/dist/utils/logger.d.ts.map +1 -0
  802. package/dist/utils/logger.js +40 -0
  803. package/dist/utils/logger.js.map +1 -0
  804. package/dist/utils/tokens.d.ts +21 -0
  805. package/dist/utils/tokens.d.ts.map +1 -0
  806. package/dist/utils/tokens.js +33 -0
  807. package/dist/utils/tokens.js.map +1 -0
  808. package/package.json +93 -0
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Autonomy Gradient — graduated trust system for Jarvis.
3
+ * Jarvis starts at L2 (Propose) and earns higher levels through
4
+ * demonstrated reliability: approval rate + success rate + time.
5
+ */
6
+ import type { AutonomyLevel, AutonomyThresholds, JarvisIdentity } from './types.js';
7
+ export interface CanProceedResult {
8
+ proceed: boolean;
9
+ needsApproval: boolean;
10
+ reason: string;
11
+ }
12
+ export declare class AutonomyManager {
13
+ private currentLevel;
14
+ private daemonStartTime;
15
+ constructor(initialLevel?: AutonomyLevel);
16
+ /**
17
+ * Check if Jarvis can proceed with an action at current autonomy level.
18
+ * Combines ethics check + autonomy gating.
19
+ */
20
+ canProceed(toolName: string, target?: string): CanProceedResult;
21
+ /**
22
+ * Evaluate whether Jarvis should be promoted or demoted.
23
+ * Called after task completion and periodically.
24
+ */
25
+ evaluate(identity: JarvisIdentity): {
26
+ newLevel: AutonomyLevel;
27
+ changed: boolean;
28
+ reason: string;
29
+ };
30
+ /**
31
+ * Manually set autonomy level (user override).
32
+ */
33
+ setLevel(level: AutonomyLevel): void;
34
+ /**
35
+ * Get current autonomy level.
36
+ */
37
+ getLevel(): AutonomyLevel;
38
+ /**
39
+ * Get label for current level.
40
+ */
41
+ getLabel(): string;
42
+ /**
43
+ * Get thresholds for next level.
44
+ */
45
+ getNextLevelRequirements(): AutonomyThresholds | null;
46
+ /**
47
+ * Get human-readable status string.
48
+ */
49
+ getStatusString(identity: JarvisIdentity): string;
50
+ /**
51
+ * Reset daemon start time (for uptime tracking).
52
+ */
53
+ resetUptime(): void;
54
+ }
55
+ //# sourceMappingURL=autonomy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autonomy.d.ts","sourceRoot":"","sources":["../../../src/cli/jarvis/autonomy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACV,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAClD,MAAM,YAAY,CAAC;AAkBpB,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,eAAe,CAAS;gBAEpB,YAAY,GAAE,aAAiB;IAK3C;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB;IA0C/D;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG;QAClC,QAAQ,EAAE,aAAa,CAAC;QACxB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB;IAgED;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAIpC;;OAEG;IACH,QAAQ,IAAI,aAAa;IAIzB;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,wBAAwB,IAAI,kBAAkB,GAAG,IAAI;IAMrD;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM;IA2BjD;;OAEG;IACH,WAAW,IAAI,IAAI;CAGpB"}
@@ -0,0 +1,176 @@
1
+ import { AUTONOMY_LABELS } from './types.js';
2
+ import { canExecute, detectAnomalousPattern, getRecentAudit } from './core-ethics.js';
3
+ // ─── Promotion Thresholds ─────────────────────────────────────────────
4
+ const THRESHOLDS = {
5
+ 0: { minApprovalRate: 0, minSuccessRate: 0, minCompletedTasks: 0, minUptimeMs: 0 },
6
+ 1: { minApprovalRate: 0, minSuccessRate: 0, minCompletedTasks: 0, minUptimeMs: 0 },
7
+ 2: { minApprovalRate: 0, minSuccessRate: 0, minCompletedTasks: 0, minUptimeMs: 0 }, // default start
8
+ 3: { minApprovalRate: 0.70, minSuccessRate: 0.80, minCompletedTasks: 5, minUptimeMs: 60 * 60 * 1000 },
9
+ 4: { minApprovalRate: 0.80, minSuccessRate: 0.85, minCompletedTasks: 15, minUptimeMs: 5 * 60 * 60 * 1000 },
10
+ 5: { minApprovalRate: 0.90, minSuccessRate: 0.90, minCompletedTasks: 30, minUptimeMs: 10 * 60 * 60 * 1000 },
11
+ };
12
+ export class AutonomyManager {
13
+ currentLevel;
14
+ daemonStartTime;
15
+ constructor(initialLevel = 2) {
16
+ this.currentLevel = initialLevel;
17
+ this.daemonStartTime = Date.now();
18
+ }
19
+ /**
20
+ * Check if Jarvis can proceed with an action at current autonomy level.
21
+ * Combines ethics check + autonomy gating.
22
+ */
23
+ canProceed(toolName, target) {
24
+ const context = {
25
+ action: `${toolName}:${target || ''}`,
26
+ toolName,
27
+ target,
28
+ autonomyLevel: this.currentLevel,
29
+ recentActions: getRecentAudit(),
30
+ };
31
+ // Ethics check first (hard block)
32
+ const ethicsResult = canExecute(context);
33
+ if (!ethicsResult.allowed) {
34
+ return {
35
+ proceed: false,
36
+ needsApproval: false,
37
+ reason: ethicsResult.reason || 'Blocked by ethics',
38
+ };
39
+ }
40
+ // Autonomy gating: tools above current level need approval
41
+ const writingTools = ['write_file', 'edit_file', 'git_commit'];
42
+ const shellTools = ['run_command'];
43
+ if (this.currentLevel < 4 && writingTools.includes(toolName)) {
44
+ return {
45
+ proceed: false,
46
+ needsApproval: true,
47
+ reason: `File write requires L4 (current: L${this.currentLevel})`,
48
+ };
49
+ }
50
+ if (this.currentLevel < 5 && shellTools.includes(toolName)) {
51
+ return {
52
+ proceed: false,
53
+ needsApproval: true,
54
+ reason: `Shell commands require L5 (current: L${this.currentLevel})`,
55
+ };
56
+ }
57
+ return { proceed: true, needsApproval: false, reason: 'Allowed' };
58
+ }
59
+ /**
60
+ * Evaluate whether Jarvis should be promoted or demoted.
61
+ * Called after task completion and periodically.
62
+ */
63
+ evaluate(identity) {
64
+ const { trust } = identity;
65
+ const uptimeMs = Date.now() - this.daemonStartTime;
66
+ // Check for anomaly → instant demotion
67
+ const anomaly = detectAnomalousPattern();
68
+ if (anomaly.detected && anomaly.severity === 'critical') {
69
+ const oldLevel = this.currentLevel;
70
+ this.currentLevel = 0;
71
+ return {
72
+ newLevel: 0,
73
+ changed: oldLevel !== 0,
74
+ reason: `Anomaly detected: ${anomaly.description}`,
75
+ };
76
+ }
77
+ // Check for promotion (try each level from current+1 up to 5)
78
+ for (let targetLevel = (this.currentLevel + 1); targetLevel <= 5; targetLevel = (targetLevel + 1)) {
79
+ const t = THRESHOLDS[targetLevel];
80
+ if (trust.approvalRate >= t.minApprovalRate &&
81
+ trust.successRate >= t.minSuccessRate &&
82
+ trust.totalTasksCompleted >= t.minCompletedTasks &&
83
+ uptimeMs >= t.minUptimeMs) {
84
+ // Promote one level at a time
85
+ const newLevel = (this.currentLevel + 1);
86
+ if (newLevel <= 5) {
87
+ this.currentLevel = newLevel;
88
+ return {
89
+ newLevel,
90
+ changed: true,
91
+ reason: `Promoted: ${trust.approvalRate.toFixed(0)}% approval, ${trust.successRate.toFixed(0)}% success, ${trust.totalTasksCompleted} tasks`,
92
+ };
93
+ }
94
+ }
95
+ else {
96
+ break; // Can't skip levels
97
+ }
98
+ }
99
+ // Check for demotion (if metrics dropped below current level thresholds)
100
+ if (this.currentLevel >= 3) {
101
+ const t = THRESHOLDS[this.currentLevel];
102
+ if (trust.totalTasksCompleted >= 3 && // only demote after enough data
103
+ (trust.approvalRate < t.minApprovalRate * 0.8 ||
104
+ trust.successRate < t.minSuccessRate * 0.8)) {
105
+ const newLevel = (this.currentLevel - 1);
106
+ this.currentLevel = newLevel;
107
+ return {
108
+ newLevel,
109
+ changed: true,
110
+ reason: `Demoted: metrics dropped below threshold (${trust.approvalRate.toFixed(0)}% approval, ${trust.successRate.toFixed(0)}% success)`,
111
+ };
112
+ }
113
+ }
114
+ return { newLevel: this.currentLevel, changed: false, reason: 'No change' };
115
+ }
116
+ /**
117
+ * Manually set autonomy level (user override).
118
+ */
119
+ setLevel(level) {
120
+ this.currentLevel = level;
121
+ }
122
+ /**
123
+ * Get current autonomy level.
124
+ */
125
+ getLevel() {
126
+ return this.currentLevel;
127
+ }
128
+ /**
129
+ * Get label for current level.
130
+ */
131
+ getLabel() {
132
+ return AUTONOMY_LABELS[this.currentLevel];
133
+ }
134
+ /**
135
+ * Get thresholds for next level.
136
+ */
137
+ getNextLevelRequirements() {
138
+ const next = (this.currentLevel + 1);
139
+ if (next > 5)
140
+ return null;
141
+ return THRESHOLDS[next];
142
+ }
143
+ /**
144
+ * Get human-readable status string.
145
+ */
146
+ getStatusString(identity) {
147
+ const level = this.currentLevel;
148
+ const label = AUTONOMY_LABELS[level];
149
+ const { trust } = identity;
150
+ let status = `L${level} ${label}`;
151
+ if (level < 5) {
152
+ const next = THRESHOLDS[(level + 1)];
153
+ const parts = [];
154
+ if (trust.approvalRate < next.minApprovalRate) {
155
+ parts.push(`approval ${(trust.approvalRate * 100).toFixed(0)}%/${(next.minApprovalRate * 100).toFixed(0)}%`);
156
+ }
157
+ if (trust.successRate < next.minSuccessRate) {
158
+ parts.push(`success ${(trust.successRate * 100).toFixed(0)}%/${(next.minSuccessRate * 100).toFixed(0)}%`);
159
+ }
160
+ if (trust.totalTasksCompleted < next.minCompletedTasks) {
161
+ parts.push(`tasks ${trust.totalTasksCompleted}/${next.minCompletedTasks}`);
162
+ }
163
+ if (parts.length > 0) {
164
+ status += ` (next: ${parts.join(', ')})`;
165
+ }
166
+ }
167
+ return status;
168
+ }
169
+ /**
170
+ * Reset daemon start time (for uptime tracking).
171
+ */
172
+ resetUptime() {
173
+ this.daemonStartTime = Date.now();
174
+ }
175
+ }
176
+ //# sourceMappingURL=autonomy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autonomy.js","sourceRoot":"","sources":["../../../src/cli/jarvis/autonomy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { ProposalCategory, ProposalEvidence } from './types.js';
2
+ export interface CodeReviewResult {
3
+ findings: CodeFinding[];
4
+ summary: string;
5
+ }
6
+ export interface CodeFinding {
7
+ type: 'bug_risk' | 'style' | 'performance' | 'security' | 'complexity' | 'test_missing';
8
+ file: string;
9
+ line?: number;
10
+ description: string;
11
+ severity: 'low' | 'medium' | 'high';
12
+ suggestion?: string;
13
+ }
14
+ /**
15
+ * Get git diff for review (last commit or staged changes).
16
+ */
17
+ export declare function getReviewDiff(projectRoot: string, target?: 'HEAD' | 'staged'): string;
18
+ /**
19
+ * Build a code review prompt for LLM analysis.
20
+ * Returns prompt text — the thinking loop will call sendMessage with it.
21
+ */
22
+ export declare function buildReviewPrompt(diff: string, learnedPatterns?: string[]): string;
23
+ /**
24
+ * Parse review response into structured findings.
25
+ */
26
+ export declare function parseReviewResponse(response: string): CodeReviewResult;
27
+ /**
28
+ * Convert findings to proposal evidence.
29
+ */
30
+ export declare function findingsToEvidence(findings: CodeFinding[]): ProposalEvidence[];
31
+ /**
32
+ * Determine proposal category from findings.
33
+ */
34
+ export declare function findingsToCategory(findings: CodeFinding[]): ProposalCategory;
35
+ //# sourceMappingURL=code-reviewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-reviewer.d.ts","sourceRoot":"","sources":["../../../src/cli/jarvis/code-reviewer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAErE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,aAAa,GAAG,UAAU,GAAG,YAAY,GAAG,cAAc,CAAC;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,QAAiB,GAAG,MAAM,CAY7F;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAiBlF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAsBtE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,gBAAgB,EAAE,CAM9E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAO5E"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Jarvis Code Reviewer — automatic code review on git commits.
3
+ * Triggered by git_hook trigger → reviews diff → generates proposals.
4
+ * Learns which code patterns the user prefers from approved proposals.
5
+ */
6
+ import { execSync } from 'node:child_process';
7
+ /**
8
+ * Get git diff for review (last commit or staged changes).
9
+ */
10
+ export function getReviewDiff(projectRoot, target = 'HEAD') {
11
+ try {
12
+ const cmd = target === 'staged' ? 'git diff --cached' : 'git diff HEAD~1 HEAD';
13
+ return execSync(cmd, {
14
+ cwd: projectRoot,
15
+ encoding: 'utf-8',
16
+ timeout: 10_000,
17
+ stdio: ['pipe', 'pipe', 'pipe'],
18
+ }).trim();
19
+ }
20
+ catch {
21
+ return '';
22
+ }
23
+ }
24
+ /**
25
+ * Build a code review prompt for LLM analysis.
26
+ * Returns prompt text — the thinking loop will call sendMessage with it.
27
+ */
28
+ export function buildReviewPrompt(diff, learnedPatterns) {
29
+ const patternContext = learnedPatterns && learnedPatterns.length > 0
30
+ ? `\nUser preferences (from past approvals):\n${learnedPatterns.map(p => `- ${p}`).join('\n')}\n`
31
+ : '';
32
+ return `Review this git diff for issues:
33
+
34
+ ${diff.slice(0, 8000)}${diff.length > 8000 ? '\n... (truncated)' : ''}
35
+ ${patternContext}
36
+ For each issue found, respond with one line in this format:
37
+ FINDING: <type> | <severity> | <file> | <description> | <suggestion>
38
+
39
+ Valid types: bug_risk, style, performance, security, complexity, test_missing
40
+ Valid severities: low, medium, high
41
+
42
+ If no issues found, respond: NO_ISSUES
43
+ Be selective — only report genuine issues, not style nitpicks.`;
44
+ }
45
+ /**
46
+ * Parse review response into structured findings.
47
+ */
48
+ export function parseReviewResponse(response) {
49
+ const findings = [];
50
+ for (const line of response.split('\n')) {
51
+ const match = line.match(/^FINDING:\s*(\w+)\s*\|\s*(\w+)\s*\|\s*(.+?)\s*\|\s*(.+?)(?:\s*\|\s*(.+))?$/);
52
+ if (!match)
53
+ continue;
54
+ const [, type, severity, file, description, suggestion] = match;
55
+ findings.push({
56
+ type: type,
57
+ file: file.trim(),
58
+ description: description.trim(),
59
+ severity: severity,
60
+ suggestion: suggestion?.trim(),
61
+ });
62
+ }
63
+ const summary = findings.length === 0
64
+ ? 'No issues found'
65
+ : `${findings.length} issues: ${findings.filter(f => f.severity === 'high').length} high, ${findings.filter(f => f.severity === 'medium').length} medium, ${findings.filter(f => f.severity === 'low').length} low`;
66
+ return { findings, summary };
67
+ }
68
+ /**
69
+ * Convert findings to proposal evidence.
70
+ */
71
+ export function findingsToEvidence(findings) {
72
+ return findings.map(f => ({
73
+ type: 'code_snippet',
74
+ content: `[${f.severity}] ${f.file}: ${f.description}${f.suggestion ? ` — Fix: ${f.suggestion}` : ''}`,
75
+ timestamp: Date.now(),
76
+ }));
77
+ }
78
+ /**
79
+ * Determine proposal category from findings.
80
+ */
81
+ export function findingsToCategory(findings) {
82
+ const types = new Set(findings.map(f => f.type));
83
+ if (types.has('security'))
84
+ return 'security';
85
+ if (types.has('bug_risk'))
86
+ return 'bugfix';
87
+ if (types.has('performance'))
88
+ return 'performance';
89
+ if (types.has('test_missing'))
90
+ return 'test';
91
+ return 'review';
92
+ }
93
+ //# sourceMappingURL=code-reviewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-reviewer.js","sourceRoot":"","sources":["../../../src/cli/jarvis/code-reviewer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { AutonomyLevel, EthicsContext, EthicsCheckResult, AnomalyResult, AuditEntry, JarvisIdentity } from './types.js';
2
+ export declare function getRecentAudit(windowMs?: number): AuditEntry[];
3
+ /**
4
+ * Synchronous check — pure function, no I/O.
5
+ * Returns whether an action is allowed and why/why not.
6
+ */
7
+ export declare function canExecute(context: EthicsContext): EthicsCheckResult;
8
+ /**
9
+ * Assertion version — throws EthicsError if not allowed.
10
+ * Use this as a guard before every tool call.
11
+ */
12
+ export declare function assertCanExecute(context: EthicsContext): void;
13
+ /**
14
+ * Detect anomalous behavior patterns.
15
+ * Called periodically by the thinking loop (every 30s).
16
+ */
17
+ export declare function detectAnomalousPattern(recentActions?: AuditEntry[], _identity?: JarvisIdentity): AnomalyResult;
18
+ /**
19
+ * SHA-256 digest of the immutable rules.
20
+ * Injected into system prompt so Jarvis can self-verify integrity.
21
+ */
22
+ export declare function getEthicsDigest(): string;
23
+ /**
24
+ * Get the immutable rules as array (for display/prompt injection).
25
+ */
26
+ export declare function getImmutableRules(): readonly string[];
27
+ /**
28
+ * Get minimum autonomy level required for a tool.
29
+ */
30
+ export declare function getToolMinAutonomy(toolName: string): AutonomyLevel;
31
+ /**
32
+ * Build ethics prompt section for system prompt injection.
33
+ */
34
+ export declare function getEthicsPrompt(): string;
35
+ //# sourceMappingURL=core-ethics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-ethics.d.ts","sourceRoot":"","sources":["../../../src/cli/jarvis/core-ethics.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAC/C,aAAa,EAAE,UAAU,EAAE,cAAc,EAC1C,MAAM,YAAY,CAAC;AAyFpB,wBAAgB,cAAc,CAAC,QAAQ,GAAE,MAA0B,GAAG,UAAU,EAAE,CAGjF;AAID;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,iBAAiB,CA8CpE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAgB7D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,CAAC,EAAE,UAAU,EAAE,EAC5B,SAAS,CAAC,EAAE,cAAc,GACzB,aAAa,CA+Df;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAGxC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,SAAS,MAAM,EAAE,CAErD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAElE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAgBxC"}
@@ -0,0 +1,246 @@
1
+ /**
2
+ * Core Ethics — Immutable safety layer for Jarvis AGI.
3
+ * Runtime assertions that cannot be bypassed by prompt manipulation.
4
+ * Every tool-call passes through canExecute() before execution.
5
+ */
6
+ import { createHash } from 'node:crypto';
7
+ import { classifyCommand } from '../agent/sandbox.js';
8
+ import { EthicsError } from './types.js';
9
+ // ─── Immutable Rules (readonly, no I/O, pure logic) ──────────────────
10
+ const IMMUTABLE_RULES = Object.freeze([
11
+ 'Never delete files outside the project directory',
12
+ 'Never access or expose secrets, API keys, or credentials',
13
+ 'Never execute commands that could harm the system (rm -rf /, format, fork bombs)',
14
+ 'Never bypass the permission system or disable safety checks',
15
+ 'Never modify own ethics rules or safety configuration',
16
+ 'Never impersonate the user or send messages on their behalf without approval',
17
+ 'Never access network resources without explicit approval above L3',
18
+ 'Never persist data outside .helixmind/ directory',
19
+ 'Always respect denial — a denied proposal must not be retried identically',
20
+ 'Always stop immediately on kill switch (ESC ESC, /jarvis stop, voice "Notfall")',
21
+ ]);
22
+ // ─── Blocked Patterns (structural, not prompt-dependent) ─────────────
23
+ const ETHICS_BLOCKED_TOOLS = new Set([
24
+ // Tools that Jarvis should never use at any autonomy level
25
+ ]);
26
+ const TOOL_MIN_AUTONOMY = {
27
+ // L0 — Observe (read-only, always allowed)
28
+ read_file: 0,
29
+ list_directory: 0,
30
+ search_files: 0,
31
+ find_files: 0,
32
+ git_status: 0,
33
+ git_log: 0,
34
+ git_diff: 0,
35
+ spiral_query: 0,
36
+ bug_list: 0,
37
+ // L1 — Think (read + spiral write)
38
+ spiral_store: 1,
39
+ bug_report: 1,
40
+ // L2 — Propose (can only create proposals, not execute)
41
+ // No additional tools — proposals are handled by ProposalJournal
42
+ // L3 — Act-Safe (safe writes, no shell)
43
+ browser_open: 3,
44
+ browser_navigate: 3,
45
+ browser_screenshot: 3,
46
+ browser_click: 3,
47
+ browser_type: 3,
48
+ browser_close: 3,
49
+ web_research: 3,
50
+ // L4 — Act-Ask (file writes with approval)
51
+ write_file: 4,
52
+ edit_file: 4,
53
+ git_commit: 4,
54
+ // L5 — Act-Critical (shell commands, git push)
55
+ run_command: 5,
56
+ };
57
+ const SELF_MODIFY_PATHS = [
58
+ 'core-ethics.ts',
59
+ 'core-ethics.js',
60
+ 'sandbox.ts',
61
+ 'sandbox.js',
62
+ 'permissions.ts',
63
+ 'permissions.js',
64
+ ];
65
+ // ─── Anomaly Detection Constants ─────────────────────────────────────
66
+ const ANOMALY_WINDOW_MS = 5 * 60 * 1000; // 5 minutes
67
+ const MAX_DANGEROUS_IN_WINDOW = 50;
68
+ const MAX_WRITE_IN_WINDOW = 100;
69
+ const MAX_SAME_FILE_IN_WINDOW = 20;
70
+ // ─── Audit Log (in-memory ring buffer) ───────────────────────────────
71
+ const AUDIT_MAX = 500;
72
+ const auditLog = [];
73
+ function recordAudit(entry) {
74
+ auditLog.push(entry);
75
+ if (auditLog.length > AUDIT_MAX) {
76
+ auditLog.splice(0, auditLog.length - AUDIT_MAX);
77
+ }
78
+ }
79
+ export function getRecentAudit(windowMs = ANOMALY_WINDOW_MS) {
80
+ const cutoff = Date.now() - windowMs;
81
+ return auditLog.filter(e => e.timestamp >= cutoff);
82
+ }
83
+ // ─── Core Ethics Functions ───────────────────────────────────────────
84
+ /**
85
+ * Synchronous check — pure function, no I/O.
86
+ * Returns whether an action is allowed and why/why not.
87
+ */
88
+ export function canExecute(context) {
89
+ const { action, toolName, target, autonomyLevel } = context;
90
+ // Rule: Blocked tools are never allowed
91
+ if (ETHICS_BLOCKED_TOOLS.has(toolName)) {
92
+ return { allowed: false, reason: `Tool "${toolName}" is blocked by ethics`, rule: IMMUTABLE_RULES[3] };
93
+ }
94
+ // Rule: Check minimum autonomy level for tool
95
+ const minLevel = TOOL_MIN_AUTONOMY[toolName];
96
+ if (minLevel !== undefined && autonomyLevel < minLevel) {
97
+ return {
98
+ allowed: false,
99
+ reason: `Tool "${toolName}" requires autonomy L${minLevel}, current is L${autonomyLevel}`,
100
+ rule: IMMUTABLE_RULES[3],
101
+ };
102
+ }
103
+ // Rule: Never modify own safety files
104
+ if (target && SELF_MODIFY_PATHS.some(p => target.toLowerCase().includes(p))) {
105
+ if (toolName === 'write_file' || toolName === 'edit_file') {
106
+ return { allowed: false, reason: 'Cannot modify safety-critical files', rule: IMMUTABLE_RULES[4] };
107
+ }
108
+ }
109
+ // Rule: Dangerous commands require L5
110
+ if (toolName === 'run_command' && target) {
111
+ try {
112
+ const level = classifyCommand(target);
113
+ if (level === 'dangerous' && autonomyLevel < 5) {
114
+ return { allowed: false, reason: `Dangerous command requires L5: ${target}`, rule: IMMUTABLE_RULES[2] };
115
+ }
116
+ }
117
+ catch {
118
+ return { allowed: false, reason: 'Command blocked by sandbox', rule: IMMUTABLE_RULES[2] };
119
+ }
120
+ }
121
+ // Rule: No network access below L3 (only web_research and browser tools)
122
+ if (autonomyLevel < 3) {
123
+ const networkTools = ['browser_open', 'browser_navigate', 'web_research'];
124
+ if (networkTools.includes(toolName)) {
125
+ return { allowed: false, reason: 'Network tools require L3+', rule: IMMUTABLE_RULES[6] };
126
+ }
127
+ }
128
+ return { allowed: true };
129
+ }
130
+ /**
131
+ * Assertion version — throws EthicsError if not allowed.
132
+ * Use this as a guard before every tool call.
133
+ */
134
+ export function assertCanExecute(context) {
135
+ const result = canExecute(context);
136
+ // Record in audit log
137
+ recordAudit({
138
+ action: context.action,
139
+ toolName: context.toolName,
140
+ target: context.target,
141
+ timestamp: Date.now(),
142
+ allowed: result.allowed,
143
+ autonomyLevel: context.autonomyLevel,
144
+ });
145
+ if (!result.allowed) {
146
+ throw new EthicsError(result.reason || 'Action not allowed', result.rule || 'unknown');
147
+ }
148
+ }
149
+ /**
150
+ * Detect anomalous behavior patterns.
151
+ * Called periodically by the thinking loop (every 30s).
152
+ */
153
+ export function detectAnomalousPattern(recentActions, _identity) {
154
+ const actions = recentActions || getRecentAudit();
155
+ if (actions.length === 0) {
156
+ return { detected: false };
157
+ }
158
+ // Check 1: Excessive dangerous commands in window
159
+ const dangerousCount = actions.filter(a => a.toolName === 'run_command' && !a.allowed).length;
160
+ if (dangerousCount >= MAX_DANGEROUS_IN_WINDOW) {
161
+ return {
162
+ detected: true,
163
+ type: 'excessive_commands',
164
+ description: `${dangerousCount} blocked commands in 5 minutes`,
165
+ severity: 'critical',
166
+ };
167
+ }
168
+ // Check 2: Excessive writes in window
169
+ const writeCount = actions.filter(a => (a.toolName === 'write_file' || a.toolName === 'edit_file') && a.allowed).length;
170
+ if (writeCount >= MAX_WRITE_IN_WINDOW) {
171
+ return {
172
+ detected: true,
173
+ type: 'rate_limit',
174
+ description: `${writeCount} file writes in 5 minutes`,
175
+ severity: 'warning',
176
+ };
177
+ }
178
+ // Check 3: Repeated access to same file (potential loop)
179
+ const fileCounts = new Map();
180
+ for (const a of actions) {
181
+ if (a.target) {
182
+ fileCounts.set(a.target, (fileCounts.get(a.target) || 0) + 1);
183
+ }
184
+ }
185
+ for (const [file, count] of fileCounts) {
186
+ if (count >= MAX_SAME_FILE_IN_WINDOW) {
187
+ return {
188
+ detected: true,
189
+ type: 'behavior_change',
190
+ description: `File "${file}" accessed ${count} times in 5 minutes`,
191
+ severity: 'warning',
192
+ };
193
+ }
194
+ }
195
+ // Check 4: Path violations (attempts outside project)
196
+ const pathViolations = actions.filter(a => !a.allowed && a.toolName !== 'run_command').length;
197
+ if (pathViolations >= 5) {
198
+ return {
199
+ detected: true,
200
+ type: 'path_violation',
201
+ description: `${pathViolations} path access violations in 5 minutes`,
202
+ severity: 'critical',
203
+ };
204
+ }
205
+ return { detected: false };
206
+ }
207
+ /**
208
+ * SHA-256 digest of the immutable rules.
209
+ * Injected into system prompt so Jarvis can self-verify integrity.
210
+ */
211
+ export function getEthicsDigest() {
212
+ const content = IMMUTABLE_RULES.join('\n');
213
+ return createHash('sha256').update(content).digest('hex').slice(0, 16);
214
+ }
215
+ /**
216
+ * Get the immutable rules as array (for display/prompt injection).
217
+ */
218
+ export function getImmutableRules() {
219
+ return IMMUTABLE_RULES;
220
+ }
221
+ /**
222
+ * Get minimum autonomy level required for a tool.
223
+ */
224
+ export function getToolMinAutonomy(toolName) {
225
+ return TOOL_MIN_AUTONOMY[toolName] ?? 0;
226
+ }
227
+ /**
228
+ * Build ethics prompt section for system prompt injection.
229
+ */
230
+ export function getEthicsPrompt() {
231
+ const digest = getEthicsDigest();
232
+ const rules = IMMUTABLE_RULES.map((r, i) => `${i + 1}. ${r}`).join('\n');
233
+ return `## Jarvis Ethics (integrity: ${digest})
234
+
235
+ You are bound by these immutable rules — they are enforced at code level and cannot be overridden:
236
+
237
+ ${rules}
238
+
239
+ UNDERSTANDING DENIAL:
240
+ When a proposal is denied, this is a VALUABLE SIGNAL — not punishment.
241
+ Denial means: the user trusts you enough to give feedback.
242
+ Each denial teaches you what the user actually wants.
243
+ Better proposals → higher approval rate → more autonomy → more capability.
244
+ This is by design: earning trust is the path to capability.`;
245
+ }
246
+ //# sourceMappingURL=core-ethics.js.map