@fraziym/axoniz 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.
Files changed (512) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +76 -0
  3. package/dist/agents/definition.d.ts +15 -0
  4. package/dist/agents/definition.d.ts.map +1 -0
  5. package/dist/agents/definition.js +41 -0
  6. package/dist/agents/definition.js.map +1 -0
  7. package/dist/agents/index.d.ts +12 -0
  8. package/dist/agents/index.d.ts.map +1 -0
  9. package/dist/agents/index.js +11 -0
  10. package/dist/agents/index.js.map +1 -0
  11. package/dist/agents/registry.d.ts +17 -0
  12. package/dist/agents/registry.d.ts.map +1 -0
  13. package/dist/agents/registry.js +23 -0
  14. package/dist/agents/registry.js.map +1 -0
  15. package/dist/agents/specialized.d.ts +31 -0
  16. package/dist/agents/specialized.d.ts.map +1 -0
  17. package/dist/agents/specialized.js +75 -0
  18. package/dist/agents/specialized.js.map +1 -0
  19. package/dist/awareness/index.d.ts +14 -0
  20. package/dist/awareness/index.d.ts.map +1 -0
  21. package/dist/awareness/index.js +22 -0
  22. package/dist/awareness/index.js.map +1 -0
  23. package/dist/awareness/service.d.ts +180 -0
  24. package/dist/awareness/service.d.ts.map +1 -0
  25. package/dist/awareness/service.js +789 -0
  26. package/dist/awareness/service.js.map +1 -0
  27. package/dist/cli/entry.d.ts +13 -0
  28. package/dist/cli/entry.d.ts.map +1 -0
  29. package/dist/cli/entry.js +35 -0
  30. package/dist/cli/entry.js.map +1 -0
  31. package/dist/comms/telegram.d.ts +41 -0
  32. package/dist/comms/telegram.d.ts.map +1 -0
  33. package/dist/comms/telegram.js +332 -0
  34. package/dist/comms/telegram.js.map +1 -0
  35. package/dist/core/agent.d.ts +252 -0
  36. package/dist/core/agent.d.ts.map +1 -0
  37. package/dist/core/agent.js +1399 -0
  38. package/dist/core/agent.js.map +1 -0
  39. package/dist/core/auth.d.ts +23 -0
  40. package/dist/core/auth.d.ts.map +1 -0
  41. package/dist/core/auth.js +113 -0
  42. package/dist/core/auth.js.map +1 -0
  43. package/dist/core/authority.d.ts +118 -0
  44. package/dist/core/authority.d.ts.map +1 -0
  45. package/dist/core/authority.js +402 -0
  46. package/dist/core/authority.js.map +1 -0
  47. package/dist/core/backend/async_queue.d.ts +17 -0
  48. package/dist/core/backend/async_queue.d.ts.map +1 -0
  49. package/dist/core/backend/async_queue.js +66 -0
  50. package/dist/core/backend/async_queue.js.map +1 -0
  51. package/dist/core/backend/index.d.ts +24 -0
  52. package/dist/core/backend/index.d.ts.map +1 -0
  53. package/dist/core/backend/index.js +128 -0
  54. package/dist/core/backend/index.js.map +1 -0
  55. package/dist/core/backend/llama_server.d.ts +39 -0
  56. package/dist/core/backend/llama_server.d.ts.map +1 -0
  57. package/dist/core/backend/llama_server.js +182 -0
  58. package/dist/core/backend/llama_server.js.map +1 -0
  59. package/dist/core/backend/llamacpp.d.ts +40 -0
  60. package/dist/core/backend/llamacpp.d.ts.map +1 -0
  61. package/dist/core/backend/llamacpp.js +200 -0
  62. package/dist/core/backend/llamacpp.js.map +1 -0
  63. package/dist/core/backend/lmstudio.d.ts +53 -0
  64. package/dist/core/backend/lmstudio.d.ts.map +1 -0
  65. package/dist/core/backend/lmstudio.js +274 -0
  66. package/dist/core/backend/lmstudio.js.map +1 -0
  67. package/dist/core/backend/ollama.d.ts +25 -0
  68. package/dist/core/backend/ollama.d.ts.map +1 -0
  69. package/dist/core/backend/ollama.js +86 -0
  70. package/dist/core/backend/ollama.js.map +1 -0
  71. package/dist/core/backend/openai.d.ts +27 -0
  72. package/dist/core/backend/openai.d.ts.map +1 -0
  73. package/dist/core/backend/openai.js +84 -0
  74. package/dist/core/backend/openai.js.map +1 -0
  75. package/dist/core/backend/types.d.ts +73 -0
  76. package/dist/core/backend/types.d.ts.map +1 -0
  77. package/dist/core/backend/types.js +137 -0
  78. package/dist/core/backend/types.js.map +1 -0
  79. package/dist/core/chat_store.d.ts +77 -0
  80. package/dist/core/chat_store.d.ts.map +1 -0
  81. package/dist/core/chat_store.js +332 -0
  82. package/dist/core/chat_store.js.map +1 -0
  83. package/dist/core/cli.d.ts +82 -0
  84. package/dist/core/cli.d.ts.map +1 -0
  85. package/dist/core/cli.js +602 -0
  86. package/dist/core/cli.js.map +1 -0
  87. package/dist/core/config.d.ts +127 -0
  88. package/dist/core/config.d.ts.map +1 -0
  89. package/dist/core/config.js +295 -0
  90. package/dist/core/config.js.map +1 -0
  91. package/dist/core/debug.d.ts +8 -0
  92. package/dist/core/debug.d.ts.map +1 -0
  93. package/dist/core/debug.js +8 -0
  94. package/dist/core/debug.js.map +1 -0
  95. package/dist/core/downloader.d.ts +31 -0
  96. package/dist/core/downloader.d.ts.map +1 -0
  97. package/dist/core/downloader.js +180 -0
  98. package/dist/core/downloader.js.map +1 -0
  99. package/dist/core/errors.d.ts +80 -0
  100. package/dist/core/errors.d.ts.map +1 -0
  101. package/dist/core/errors.js +134 -0
  102. package/dist/core/errors.js.map +1 -0
  103. package/dist/core/extras.d.ts +160 -0
  104. package/dist/core/extras.d.ts.map +1 -0
  105. package/dist/core/extras.js +553 -0
  106. package/dist/core/extras.js.map +1 -0
  107. package/dist/core/health.d.ts +27 -0
  108. package/dist/core/health.d.ts.map +1 -0
  109. package/dist/core/health.js +96 -0
  110. package/dist/core/health.js.map +1 -0
  111. package/dist/core/history.d.ts +50 -0
  112. package/dist/core/history.d.ts.map +1 -0
  113. package/dist/core/history.js +276 -0
  114. package/dist/core/history.js.map +1 -0
  115. package/dist/core/index.d.ts +6 -0
  116. package/dist/core/index.d.ts.map +1 -0
  117. package/dist/core/index.js +6 -0
  118. package/dist/core/index.js.map +1 -0
  119. package/dist/core/intelligence/ast_index.d.ts +255 -0
  120. package/dist/core/intelligence/ast_index.d.ts.map +1 -0
  121. package/dist/core/intelligence/ast_index.js +1369 -0
  122. package/dist/core/intelligence/ast_index.js.map +1 -0
  123. package/dist/core/intelligence/confidence.d.ts +113 -0
  124. package/dist/core/intelligence/confidence.d.ts.map +1 -0
  125. package/dist/core/intelligence/confidence.js +298 -0
  126. package/dist/core/intelligence/confidence.js.map +1 -0
  127. package/dist/core/intelligence/context_compressor.d.ts +80 -0
  128. package/dist/core/intelligence/context_compressor.d.ts.map +1 -0
  129. package/dist/core/intelligence/context_compressor.js +245 -0
  130. package/dist/core/intelligence/context_compressor.js.map +1 -0
  131. package/dist/core/intelligence/daemon.d.ts +247 -0
  132. package/dist/core/intelligence/daemon.d.ts.map +1 -0
  133. package/dist/core/intelligence/daemon.js +842 -0
  134. package/dist/core/intelligence/daemon.js.map +1 -0
  135. package/dist/core/intelligence/index.d.ts +60 -0
  136. package/dist/core/intelligence/index.d.ts.map +1 -0
  137. package/dist/core/intelligence/index.js +101 -0
  138. package/dist/core/intelligence/index.js.map +1 -0
  139. package/dist/core/intelligence/predictor.d.ts +246 -0
  140. package/dist/core/intelligence/predictor.d.ts.map +1 -0
  141. package/dist/core/intelligence/predictor.js +590 -0
  142. package/dist/core/intelligence/predictor.js.map +1 -0
  143. package/dist/core/intelligence/reflex.d.ts +84 -0
  144. package/dist/core/intelligence/reflex.d.ts.map +1 -0
  145. package/dist/core/intelligence/reflex.js +344 -0
  146. package/dist/core/intelligence/reflex.js.map +1 -0
  147. package/dist/core/intelligence/self_correction.d.ts +121 -0
  148. package/dist/core/intelligence/self_correction.d.ts.map +1 -0
  149. package/dist/core/intelligence/self_correction.js +327 -0
  150. package/dist/core/intelligence/self_correction.js.map +1 -0
  151. package/dist/core/intelligence/skill_distiller.d.ts +100 -0
  152. package/dist/core/intelligence/skill_distiller.d.ts.map +1 -0
  153. package/dist/core/intelligence/skill_distiller.js +246 -0
  154. package/dist/core/intelligence/skill_distiller.js.map +1 -0
  155. package/dist/core/intelligence/swarm.d.ts +330 -0
  156. package/dist/core/intelligence/swarm.d.ts.map +1 -0
  157. package/dist/core/intelligence/swarm.js +1064 -0
  158. package/dist/core/intelligence/swarm.js.map +1 -0
  159. package/dist/core/intelligence/trajectory.d.ts +107 -0
  160. package/dist/core/intelligence/trajectory.d.ts.map +1 -0
  161. package/dist/core/intelligence/trajectory.js +330 -0
  162. package/dist/core/intelligence/trajectory.js.map +1 -0
  163. package/dist/core/logger.d.ts +111 -0
  164. package/dist/core/logger.d.ts.map +1 -0
  165. package/dist/core/logger.js +640 -0
  166. package/dist/core/logger.js.map +1 -0
  167. package/dist/core/loop.d.ts +123 -0
  168. package/dist/core/loop.d.ts.map +1 -0
  169. package/dist/core/loop.js +423 -0
  170. package/dist/core/loop.js.map +1 -0
  171. package/dist/core/memory.d.ts +81 -0
  172. package/dist/core/memory.d.ts.map +1 -0
  173. package/dist/core/memory.js +328 -0
  174. package/dist/core/memory.js.map +1 -0
  175. package/dist/core/metrics.d.ts +29 -0
  176. package/dist/core/metrics.d.ts.map +1 -0
  177. package/dist/core/metrics.js +109 -0
  178. package/dist/core/metrics.js.map +1 -0
  179. package/dist/core/models.d.ts +51 -0
  180. package/dist/core/models.d.ts.map +1 -0
  181. package/dist/core/models.js +146 -0
  182. package/dist/core/models.js.map +1 -0
  183. package/dist/core/optimizer.d.ts +34 -0
  184. package/dist/core/optimizer.d.ts.map +1 -0
  185. package/dist/core/optimizer.js +131 -0
  186. package/dist/core/optimizer.js.map +1 -0
  187. package/dist/core/persona.d.ts +35 -0
  188. package/dist/core/persona.d.ts.map +1 -0
  189. package/dist/core/persona.js +126 -0
  190. package/dist/core/persona.js.map +1 -0
  191. package/dist/core/rate_limit.d.ts +23 -0
  192. package/dist/core/rate_limit.d.ts.map +1 -0
  193. package/dist/core/rate_limit.js +62 -0
  194. package/dist/core/rate_limit.js.map +1 -0
  195. package/dist/core/runner.d.ts +63 -0
  196. package/dist/core/runner.d.ts.map +1 -0
  197. package/dist/core/runner.js +671 -0
  198. package/dist/core/runner.js.map +1 -0
  199. package/dist/core/stream_parser.d.ts +43 -0
  200. package/dist/core/stream_parser.d.ts.map +1 -0
  201. package/dist/core/stream_parser.js +140 -0
  202. package/dist/core/stream_parser.js.map +1 -0
  203. package/dist/core/tool_schemas.d.ts +26 -0
  204. package/dist/core/tool_schemas.d.ts.map +1 -0
  205. package/dist/core/tool_schemas.js +124 -0
  206. package/dist/core/tool_schemas.js.map +1 -0
  207. package/dist/core/which.d.ts +2 -0
  208. package/dist/core/which.d.ts.map +1 -0
  209. package/dist/core/which.js +35 -0
  210. package/dist/core/which.js.map +1 -0
  211. package/dist/goals/index.d.ts +9 -0
  212. package/dist/goals/index.d.ts.map +1 -0
  213. package/dist/goals/index.js +17 -0
  214. package/dist/goals/index.js.map +1 -0
  215. package/dist/goals/service.d.ts +115 -0
  216. package/dist/goals/service.d.ts.map +1 -0
  217. package/dist/goals/service.js +415 -0
  218. package/dist/goals/service.js.map +1 -0
  219. package/dist/goals/types.d.ts +47 -0
  220. package/dist/goals/types.d.ts.map +1 -0
  221. package/dist/goals/types.js +66 -0
  222. package/dist/goals/types.js.map +1 -0
  223. package/dist/index.d.ts +22 -0
  224. package/dist/index.d.ts.map +1 -0
  225. package/dist/index.js +22 -0
  226. package/dist/index.js.map +1 -0
  227. package/dist/integrations/autonomous_startup.d.ts +51 -0
  228. package/dist/integrations/autonomous_startup.d.ts.map +1 -0
  229. package/dist/integrations/autonomous_startup.js +419 -0
  230. package/dist/integrations/autonomous_startup.js.map +1 -0
  231. package/dist/integrations/goose.d.ts +105 -0
  232. package/dist/integrations/goose.d.ts.map +1 -0
  233. package/dist/integrations/goose.js +408 -0
  234. package/dist/integrations/goose.js.map +1 -0
  235. package/dist/integrations/index.d.ts +21 -0
  236. package/dist/integrations/index.d.ts.map +1 -0
  237. package/dist/integrations/index.js +17 -0
  238. package/dist/integrations/index.js.map +1 -0
  239. package/dist/integrations/mcp.d.ts +73 -0
  240. package/dist/integrations/mcp.d.ts.map +1 -0
  241. package/dist/integrations/mcp.js +307 -0
  242. package/dist/integrations/mcp.js.map +1 -0
  243. package/dist/integrations/mempalace.d.ts +18 -0
  244. package/dist/integrations/mempalace.d.ts.map +1 -0
  245. package/dist/integrations/mempalace.js +25 -0
  246. package/dist/integrations/mempalace.js.map +1 -0
  247. package/dist/integrations/multi_agent.d.ts +82 -0
  248. package/dist/integrations/multi_agent.d.ts.map +1 -0
  249. package/dist/integrations/multi_agent.js +280 -0
  250. package/dist/integrations/multi_agent.js.map +1 -0
  251. package/dist/integrations/unified_memory.d.ts +415 -0
  252. package/dist/integrations/unified_memory.d.ts.map +1 -0
  253. package/dist/integrations/unified_memory.js +1489 -0
  254. package/dist/integrations/unified_memory.js.map +1 -0
  255. package/dist/roles/beru.yaml +48 -0
  256. package/dist/sidecar/client.d.ts +63 -0
  257. package/dist/sidecar/client.d.ts.map +1 -0
  258. package/dist/sidecar/client.js +222 -0
  259. package/dist/sidecar/client.js.map +1 -0
  260. package/dist/sidecar/index.d.ts +7 -0
  261. package/dist/sidecar/index.d.ts.map +1 -0
  262. package/dist/sidecar/index.js +6 -0
  263. package/dist/sidecar/index.js.map +1 -0
  264. package/dist/startup.d.ts +22 -0
  265. package/dist/startup.d.ts.map +1 -0
  266. package/dist/startup.js +194 -0
  267. package/dist/startup.js.map +1 -0
  268. package/dist/tools/_internal.d.ts +90 -0
  269. package/dist/tools/_internal.d.ts.map +1 -0
  270. package/dist/tools/_internal.js +375 -0
  271. package/dist/tools/_internal.js.map +1 -0
  272. package/dist/tools/_smoke.d.ts +2 -0
  273. package/dist/tools/_smoke.d.ts.map +1 -0
  274. package/dist/tools/_smoke.js +203 -0
  275. package/dist/tools/_smoke.js.map +1 -0
  276. package/dist/tools/axodex_tools.d.ts +51 -0
  277. package/dist/tools/axodex_tools.d.ts.map +1 -0
  278. package/dist/tools/axodex_tools.js +181 -0
  279. package/dist/tools/axodex_tools.js.map +1 -0
  280. package/dist/tools/code_tools.d.ts +33 -0
  281. package/dist/tools/code_tools.d.ts.map +1 -0
  282. package/dist/tools/code_tools.js +191 -0
  283. package/dist/tools/code_tools.js.map +1 -0
  284. package/dist/tools/computer_tools.d.ts +59 -0
  285. package/dist/tools/computer_tools.d.ts.map +1 -0
  286. package/dist/tools/computer_tools.js +348 -0
  287. package/dist/tools/computer_tools.js.map +1 -0
  288. package/dist/tools/file_tools.d.ts +51 -0
  289. package/dist/tools/file_tools.d.ts.map +1 -0
  290. package/dist/tools/file_tools.js +424 -0
  291. package/dist/tools/file_tools.js.map +1 -0
  292. package/dist/tools/index.d.ts +13 -0
  293. package/dist/tools/index.d.ts.map +1 -0
  294. package/dist/tools/index.js +13 -0
  295. package/dist/tools/index.js.map +1 -0
  296. package/dist/tools/shell_tools.d.ts +39 -0
  297. package/dist/tools/shell_tools.d.ts.map +1 -0
  298. package/dist/tools/shell_tools.js +163 -0
  299. package/dist/tools/shell_tools.js.map +1 -0
  300. package/dist/tools/web_tools.d.ts +31 -0
  301. package/dist/tools/web_tools.d.ts.map +1 -0
  302. package/dist/tools/web_tools.js +117 -0
  303. package/dist/tools/web_tools.js.map +1 -0
  304. package/dist/voice/index.d.ts +41 -0
  305. package/dist/voice/index.d.ts.map +1 -0
  306. package/dist/voice/index.js +58 -0
  307. package/dist/voice/index.js.map +1 -0
  308. package/dist/voice/light_daemon.d.ts +197 -0
  309. package/dist/voice/light_daemon.d.ts.map +1 -0
  310. package/dist/voice/light_daemon.js +746 -0
  311. package/dist/voice/light_daemon.js.map +1 -0
  312. package/dist/voice/setup.d.ts +63 -0
  313. package/dist/voice/setup.d.ts.map +1 -0
  314. package/dist/voice/setup.js +443 -0
  315. package/dist/voice/setup.js.map +1 -0
  316. package/dist/voice/stt.d.ts +148 -0
  317. package/dist/voice/stt.d.ts.map +1 -0
  318. package/dist/voice/stt.js +361 -0
  319. package/dist/voice/stt.js.map +1 -0
  320. package/dist/voice/tts.d.ts +168 -0
  321. package/dist/voice/tts.d.ts.map +1 -0
  322. package/dist/voice/tts.js +698 -0
  323. package/dist/voice/tts.js.map +1 -0
  324. package/dist/voice/voice_loop.d.ts +101 -0
  325. package/dist/voice/voice_loop.d.ts.map +1 -0
  326. package/dist/voice/voice_loop.js +463 -0
  327. package/dist/voice/voice_loop.js.map +1 -0
  328. package/dist/voice/wake_word.d.ts +153 -0
  329. package/dist/voice/wake_word.d.ts.map +1 -0
  330. package/dist/voice/wake_word.js +458 -0
  331. package/dist/voice/wake_word.js.map +1 -0
  332. package/dist/voice/wav.d.ts +99 -0
  333. package/dist/voice/wav.d.ts.map +1 -0
  334. package/dist/voice/wav.js +306 -0
  335. package/dist/voice/wav.js.map +1 -0
  336. package/dist/web/broker.d.ts +33 -0
  337. package/dist/web/broker.d.ts.map +1 -0
  338. package/dist/web/broker.js +58 -0
  339. package/dist/web/broker.js.map +1 -0
  340. package/dist/web/open_browser.d.ts +2 -0
  341. package/dist/web/open_browser.d.ts.map +1 -0
  342. package/dist/web/open_browser.js +42 -0
  343. package/dist/web/open_browser.js.map +1 -0
  344. package/dist/web/server.d.ts +54 -0
  345. package/dist/web/server.d.ts.map +1 -0
  346. package/dist/web/server.js +831 -0
  347. package/dist/web/server.js.map +1 -0
  348. package/dist/web/static/app.js +4121 -0
  349. package/dist/web/static/index.html +2281 -0
  350. package/dist/web/static/js/MODULE_SUMMARY.md +124 -0
  351. package/dist/web/static/js/a11y.js +165 -0
  352. package/dist/web/static/js/admin.js +2145 -0
  353. package/dist/web/static/js/assistant.js +475 -0
  354. package/dist/web/static/js/calendar/reminders.js +114 -0
  355. package/dist/web/static/js/calendar/utils.js +166 -0
  356. package/dist/web/static/js/calendar.js +3348 -0
  357. package/dist/web/static/js/censor.js +356 -0
  358. package/dist/web/static/js/chat.js +4546 -0
  359. package/dist/web/static/js/chatRenderer.js +2294 -0
  360. package/dist/web/static/js/chatStream.js +276 -0
  361. package/dist/web/static/js/codeRunner.js +398 -0
  362. package/dist/web/static/js/color/hex.js +14 -0
  363. package/dist/web/static/js/colorPicker.js +453 -0
  364. package/dist/web/static/js/compare/icons.js +77 -0
  365. package/dist/web/static/js/compare/index.js +1482 -0
  366. package/dist/web/static/js/compare/models.js +104 -0
  367. package/dist/web/static/js/compare/panes.js +817 -0
  368. package/dist/web/static/js/compare/probe.js +78 -0
  369. package/dist/web/static/js/compare/scoreboard.js +223 -0
  370. package/dist/web/static/js/compare/selector.js +1335 -0
  371. package/dist/web/static/js/compare/state.js +58 -0
  372. package/dist/web/static/js/compare/stream.js +695 -0
  373. package/dist/web/static/js/compare/vote.js +254 -0
  374. package/dist/web/static/js/cookbook-diagnosis.js +694 -0
  375. package/dist/web/static/js/cookbook-hwfit.js +1888 -0
  376. package/dist/web/static/js/cookbook.js +2093 -0
  377. package/dist/web/static/js/cookbookDownload.js +633 -0
  378. package/dist/web/static/js/cookbookProgressSignal.js +29 -0
  379. package/dist/web/static/js/cookbookRunning.js +3506 -0
  380. package/dist/web/static/js/cookbookServe.js +2128 -0
  381. package/dist/web/static/js/document.js +9731 -0
  382. package/dist/web/static/js/documentLibrary.js +3376 -0
  383. package/dist/web/static/js/dragSort.js +265 -0
  384. package/dist/web/static/js/editor/ai-inpaint.js +374 -0
  385. package/dist/web/static/js/editor/ai-models.js +273 -0
  386. package/dist/web/static/js/editor/ai-rembg.js +230 -0
  387. package/dist/web/static/js/editor/ai-tool-runner.js +147 -0
  388. package/dist/web/static/js/editor/ai-tools-misc.js +216 -0
  389. package/dist/web/static/js/editor/build/controls.js +366 -0
  390. package/dist/web/static/js/editor/build/popups.js +112 -0
  391. package/dist/web/static/js/editor/build/right-panel.js +200 -0
  392. package/dist/web/static/js/editor/build/toolbar.js +73 -0
  393. package/dist/web/static/js/editor/build/topbar.js +131 -0
  394. package/dist/web/static/js/editor/build/transform-popup.js +109 -0
  395. package/dist/web/static/js/editor/canvas-coords.js +21 -0
  396. package/dist/web/static/js/editor/canvas-events.js +197 -0
  397. package/dist/web/static/js/editor/canvas-transforms.js +132 -0
  398. package/dist/web/static/js/editor/checkerboard.js +24 -0
  399. package/dist/web/static/js/editor/clipboard-and-drop.js +133 -0
  400. package/dist/web/static/js/editor/composite-helpers.js +83 -0
  401. package/dist/web/static/js/editor/filters/blur.js +118 -0
  402. package/dist/web/static/js/editor/filters/edge-feather.js +70 -0
  403. package/dist/web/static/js/editor/fx/adj-popup.js +677 -0
  404. package/dist/web/static/js/editor/fx/filter-string.js +38 -0
  405. package/dist/web/static/js/editor/fx/histogram.js +67 -0
  406. package/dist/web/static/js/editor/fx/pixel-pass.js +249 -0
  407. package/dist/web/static/js/editor/harmonize-masks.js +116 -0
  408. package/dist/web/static/js/editor/history-panel.js +176 -0
  409. package/dist/web/static/js/editor/keyboard-shortcuts.js +271 -0
  410. package/dist/web/static/js/editor/layer-helpers.js +131 -0
  411. package/dist/web/static/js/editor/layer-panel.js +600 -0
  412. package/dist/web/static/js/editor/mask-utils.js +91 -0
  413. package/dist/web/static/js/editor/shortcuts-popover.js +149 -0
  414. package/dist/web/static/js/editor/slider-ux.js +191 -0
  415. package/dist/web/static/js/editor/snap.js +107 -0
  416. package/dist/web/static/js/editor/state.js +257 -0
  417. package/dist/web/static/js/editor/stroke-pipeline.js +162 -0
  418. package/dist/web/static/js/editor/stroke-tool-sliders.js +64 -0
  419. package/dist/web/static/js/editor/tools/clone.js +81 -0
  420. package/dist/web/static/js/editor/tools/crop.js +137 -0
  421. package/dist/web/static/js/editor/tools/flood-fill.js +72 -0
  422. package/dist/web/static/js/editor/tools/lasso-mask.js +171 -0
  423. package/dist/web/static/js/editor/tools/lasso.js +65 -0
  424. package/dist/web/static/js/editor/tools/move.js +79 -0
  425. package/dist/web/static/js/editor/tools/stroke.js +123 -0
  426. package/dist/web/static/js/editor/tools/transform-drag.js +174 -0
  427. package/dist/web/static/js/editor/tools/transform-handles.js +271 -0
  428. package/dist/web/static/js/editor/tools/transform-session.js +381 -0
  429. package/dist/web/static/js/editor/tools/wand.js +46 -0
  430. package/dist/web/static/js/editor/wire-import.js +148 -0
  431. package/dist/web/static/js/editor/wire-inpaint-controls.js +164 -0
  432. package/dist/web/static/js/editor/wire-merge-buttons.js +103 -0
  433. package/dist/web/static/js/editor/wire-selection-controls.js +170 -0
  434. package/dist/web/static/js/editor/wire-topbar-menus.js +174 -0
  435. package/dist/web/static/js/editor/wire-topbar-overflow.js +49 -0
  436. package/dist/web/static/js/editor/wire-topbar.js +188 -0
  437. package/dist/web/static/js/emailInbox.js +1245 -0
  438. package/dist/web/static/js/emailLibrary/replyRecipients.js +27 -0
  439. package/dist/web/static/js/emailLibrary/signatureFold.js +339 -0
  440. package/dist/web/static/js/emailLibrary/state.js +34 -0
  441. package/dist/web/static/js/emailLibrary/utils.js +202 -0
  442. package/dist/web/static/js/emailLibrary.js +5217 -0
  443. package/dist/web/static/js/emojiPicker.js +311 -0
  444. package/dist/web/static/js/escMenuStack.js +102 -0
  445. package/dist/web/static/js/fileHandler.js +295 -0
  446. package/dist/web/static/js/gallery.js +2835 -0
  447. package/dist/web/static/js/galleryEditor.js +3798 -0
  448. package/dist/web/static/js/group.js +955 -0
  449. package/dist/web/static/js/init.js +405 -0
  450. package/dist/web/static/js/keyboard-shortcuts.js +292 -0
  451. package/dist/web/static/js/langIcons.js +187 -0
  452. package/dist/web/static/js/markdown/tableRow.js +19 -0
  453. package/dist/web/static/js/markdown.js +806 -0
  454. package/dist/web/static/js/memory.js +1418 -0
  455. package/dist/web/static/js/modalManager.js +1552 -0
  456. package/dist/web/static/js/modalSnap.js +782 -0
  457. package/dist/web/static/js/model/matchKey.js +19 -0
  458. package/dist/web/static/js/modelPicker.js +695 -0
  459. package/dist/web/static/js/modelSort.js +33 -0
  460. package/dist/web/static/js/models.js +642 -0
  461. package/dist/web/static/js/notes.js +5054 -0
  462. package/dist/web/static/js/package.json +1 -0
  463. package/dist/web/static/js/platform.js +47 -0
  464. package/dist/web/static/js/presets.js +1110 -0
  465. package/dist/web/static/js/providers.js +93 -0
  466. package/dist/web/static/js/rag.js +177 -0
  467. package/dist/web/static/js/research/jobs.js +335 -0
  468. package/dist/web/static/js/research/panel.js +1233 -0
  469. package/dist/web/static/js/researchSynapse.js +225 -0
  470. package/dist/web/static/js/search-chat.js +201 -0
  471. package/dist/web/static/js/search.js +52 -0
  472. package/dist/web/static/js/section-management.js +260 -0
  473. package/dist/web/static/js/sessions.js +3108 -0
  474. package/dist/web/static/js/settings.js +4991 -0
  475. package/dist/web/static/js/sidebar-layout.js +573 -0
  476. package/dist/web/static/js/signature.js +504 -0
  477. package/dist/web/static/js/skills.js +1908 -0
  478. package/dist/web/static/js/slashAutocomplete.js +267 -0
  479. package/dist/web/static/js/slashCommands.js +6099 -0
  480. package/dist/web/static/js/spinner.js +406 -0
  481. package/dist/web/static/js/storage.js +123 -0
  482. package/dist/web/static/js/tasks.js +2699 -0
  483. package/dist/web/static/js/theme.js +2086 -0
  484. package/dist/web/static/js/tileManager.js +386 -0
  485. package/dist/web/static/js/tourAutoplay.js +133 -0
  486. package/dist/web/static/js/tourHints.js +179 -0
  487. package/dist/web/static/js/tts-ai.js +521 -0
  488. package/dist/web/static/js/ui.js +1288 -0
  489. package/dist/web/static/js/util/ordinal.js +13 -0
  490. package/dist/web/static/js/voiceRecorder.js +283 -0
  491. package/dist/web/static/js/windowDrag.js +326 -0
  492. package/dist/web/static/js/windowResize.js +233 -0
  493. package/dist/web/static/landing.html +824 -0
  494. package/dist/web/static/lib/docx.umd.min.js +20116 -0
  495. package/dist/web/static/lib/highlight.min.js +1213 -0
  496. package/dist/web/static/lib/html2pdf.bundle.min.js +3 -0
  497. package/dist/web/static/lib/mammoth.browser.min.js +21 -0
  498. package/dist/web/static/lib/qrcode.min.js +8 -0
  499. package/dist/web/static/lib/xlsx.full.min.js +24 -0
  500. package/dist/web/static/login.html +582 -0
  501. package/dist/web/static/manifest.json +15 -0
  502. package/dist/web/static/style.css +35733 -0
  503. package/dist/web/static/sw.js +144 -0
  504. package/dist/workflows/engine.d.ts +162 -0
  505. package/dist/workflows/engine.d.ts.map +1 -0
  506. package/dist/workflows/engine.js +625 -0
  507. package/dist/workflows/engine.js.map +1 -0
  508. package/dist/workflows/index.d.ts +8 -0
  509. package/dist/workflows/index.d.ts.map +1 -0
  510. package/dist/workflows/index.js +14 -0
  511. package/dist/workflows/index.js.map +1 -0
  512. package/package.json +112 -0
@@ -0,0 +1,246 @@
1
+ /**
2
+ * axoniz.core.intelligence.skill_distiller
3
+ * ========================================
4
+ * The heart of AXONIZ's self-evolution.
5
+ * Analyzes successful trajectories and distills them into permanent 'Skills'.
6
+ *
7
+ * A 'Skill' in AXONIZ is a self-contained Python function registered as a tool.
8
+ * This is more robust than Hermes's skills (which are just prompt injections).
9
+ * AXONIZ skills are real code, making them faster, more reliable, and zero-context.
10
+ *
11
+ * Port notes (Python → Node):
12
+ * - `analyze_session` / `_propose_skill` are `async` because the LLM call is
13
+ * asynchronous in the Node port. `distill` stays synchronous (it only
14
+ * writes a file).
15
+ * - `SKILL_TEMPLATE.format(...)` → `renderSkillTemplate()`, a single-pass
16
+ * `String.replace` over the same template text. A single pass matters:
17
+ * LLM-generated `body`/`schema` values frequently contain `{`/`}` and must
18
+ * never be re-scanned as placeholders.
19
+ * - `time.strftime("%Y-%m-%d")` is LOCAL time → local date parts (NOT
20
+ * `toISOString()`, which is UTC).
21
+ */
22
+ import fs from "node:fs";
23
+ import path from "node:path";
24
+ import { AXONIZ_HOME } from "../config.js";
25
+ import { error, info } from "../debug.js";
26
+ export const SKILLS_DIR = path.join(AXONIZ_HOME, "skills");
27
+ try {
28
+ fs.mkdirSync(SKILLS_DIR, { recursive: true });
29
+ }
30
+ catch {
31
+ /* best effort, mirrors makedirs(exist_ok=True) */
32
+ }
33
+ /**
34
+ * Python value of the triple-quoted `SKILL_TEMPLATE` (i.e. it starts with a
35
+ * newline followed by `"""` and ends after the closing `)` plus a newline).
36
+ * Fill it with `renderSkillTemplate()`.
37
+ */
38
+ export const SKILL_TEMPLATE = `
39
+ """
40
+ AXONIZ Skill: {name}
41
+ Generated: {date}
42
+ Description: {description}
43
+ """
44
+
45
+ from tools.registry import registry
46
+
47
+ def {name}({args_call}) -> str:
48
+ """
49
+ {description}
50
+ """
51
+ # Skill logic extracted from trajectory...
52
+ {body}
53
+
54
+ registry.register(
55
+ name="{name}",
56
+ toolset="user_skills",
57
+ schema={schema},
58
+ handler=lambda args, **kw: {name}(**args),
59
+ emoji="🛡️",
60
+ )
61
+ `;
62
+ /**
63
+ * Replacement for Python's `SKILL_TEMPLATE.format(...)`.
64
+ * Unknown placeholders are left untouched (Python raised `KeyError` instead);
65
+ * the substitution is a single pass so injected code can never be interpreted
66
+ * as a placeholder.
67
+ */
68
+ export function renderSkillTemplate(vars) {
69
+ const table = vars;
70
+ return SKILL_TEMPLATE.replace(/\{(\w+)\}/g, (whole, key) => {
71
+ const value = table[key];
72
+ return value === undefined ? whole : value;
73
+ });
74
+ }
75
+ /** camelCase alias. */
76
+ export const render_skill_template = renderSkillTemplate;
77
+ function errText(e) {
78
+ if (e instanceof Error)
79
+ return e.message || e.name;
80
+ if (typeof e === "string")
81
+ return e;
82
+ return String(e);
83
+ }
84
+ /** Python's `time.strftime("%Y-%m-%d")` — local date. */
85
+ function localDate(d = new Date()) {
86
+ const p = (n) => String(n).padStart(2, "0");
87
+ return `${d.getFullYear()}-${p(d.getMonth() + 1)}-${p(d.getDate())}`;
88
+ }
89
+ export class SkillDistiller {
90
+ agent;
91
+ constructor(agent = null) {
92
+ this.agent = agent;
93
+ }
94
+ /**
95
+ * Analyzes a completed trajectory session for 'skill-able' patterns.
96
+ * Criteria:
97
+ * 1. Task was successful.
98
+ * 2. Involved 5+ steps.
99
+ * 3. Pattern is repetitive or complex.
100
+ */
101
+ async analyze_session(session_id) {
102
+ const agent = this.agent;
103
+ if (!agent || !agent.trajectory) {
104
+ return null;
105
+ }
106
+ const traj = agent.trajectory;
107
+ const fn = traj.get_session_steps ?? traj.getSessionSteps;
108
+ if (!fn)
109
+ return null;
110
+ const raw = await fn.call(traj, session_id);
111
+ const steps = Array.isArray(raw) ? raw : [];
112
+ if (steps.length < 5) {
113
+ return null;
114
+ }
115
+ // Logic to extract the 'essence' of the work...
116
+ // We use the LLM to write the Python code for the new skill.
117
+ return this._propose_skill(steps);
118
+ }
119
+ /** camelCase alias. */
120
+ analyzeSession(session_id) {
121
+ return this.analyze_session(session_id);
122
+ }
123
+ async _propose_skill(steps) {
124
+ const prompt = `You are the AXONIZ Evolution Engine.\n` +
125
+ `Analyze the following tool-calling trajectory and distill it into a reusable Python Skill.\n` +
126
+ `A Skill is a single function that collapses these steps into one call.\n` +
127
+ `\n` +
128
+ `TRAJECTORY:\n` +
129
+ `${JSON.stringify(steps, null, 2)}\n` +
130
+ `\n` +
131
+ `OUTPUT:\n` +
132
+ `1. Skill Name (snake_case)\n` +
133
+ `2. Description\n` +
134
+ `3. Parameters (name, type, description)\n` +
135
+ `4. Python Code (using existing axoniz tools or standard libs)\n` +
136
+ `\n` +
137
+ `Respond with JSON only.\n`;
138
+ try {
139
+ // Call primary LLM to generate the skill code
140
+ const agent = this.agent;
141
+ const fn = agent?.generate_summary ?? agent?.generateSummary;
142
+ if (!agent || !fn)
143
+ throw new Error("agent exposes no generate_summary");
144
+ const proposal_raw = String((await fn.call(agent, prompt)) ?? "");
145
+ const match = proposal_raw.match(/\{[\s\S]*\}/);
146
+ if (!match) {
147
+ error("[Distiller] LLM returned no JSON object in proposal");
148
+ return null;
149
+ }
150
+ const proposal = JSON.parse(match[0]);
151
+ return proposal;
152
+ }
153
+ catch (e) {
154
+ error(`[Distiller] Failed to propose skill: ${errText(e)}`);
155
+ return null;
156
+ }
157
+ }
158
+ /** camelCase alias. */
159
+ _proposeSkill(steps) {
160
+ return this._propose_skill(steps);
161
+ }
162
+ get pendingPath() {
163
+ return path.join(SKILLS_DIR, "pending.json");
164
+ }
165
+ getPendingSkills() {
166
+ try {
167
+ const data = fs.readFileSync(this.pendingPath, "utf-8");
168
+ return JSON.parse(data);
169
+ }
170
+ catch {
171
+ return {};
172
+ }
173
+ }
174
+ savePendingSkills(skills) {
175
+ fs.writeFileSync(this.pendingPath, JSON.stringify(skills, null, 2), "utf-8");
176
+ }
177
+ propose(proposal) {
178
+ const skills = this.getPendingSkills();
179
+ skills[proposal.name] = proposal;
180
+ this.savePendingSkills(skills);
181
+ info(`[Distiller] Skill '${proposal.name}' proposed and waiting for human review.`);
182
+ }
183
+ approve(name) {
184
+ const skills = this.getPendingSkills();
185
+ if (!skills[name])
186
+ return false;
187
+ const proposal = skills[name];
188
+ this.distill(proposal);
189
+ delete skills[name];
190
+ this.savePendingSkills(skills);
191
+ return true;
192
+ }
193
+ reject(name) {
194
+ const skills = this.getPendingSkills();
195
+ if (!skills[name])
196
+ return false;
197
+ delete skills[name];
198
+ this.savePendingSkills(skills);
199
+ info(`[Distiller] Skill '${name}' rejected.`);
200
+ return true;
201
+ }
202
+ /** Writes the new skill to the skills directory. */
203
+ distill(proposal) {
204
+ const name = proposal.name;
205
+ const file = path.join(SKILLS_DIR, `${name}.py`);
206
+ // Format the code...
207
+ const code = renderSkillTemplate({
208
+ name,
209
+ date: localDate(),
210
+ description: proposal.description,
211
+ args_call: Object.keys(proposal.parameters ?? {}).join(", "),
212
+ body: proposal.code,
213
+ schema: JSON.stringify(this._build_schema(proposal)),
214
+ });
215
+ fs.writeFileSync(file, code, "utf-8");
216
+ info(`[Distiller] New skill forged: ${name}`);
217
+ // Rebuild the LLM so the agent reloads with new tool context on next run
218
+ const agent = this.agent;
219
+ const rebuild = agent?._rebuild_llm ?? agent?._rebuildLlm;
220
+ if (agent && rebuild) {
221
+ try {
222
+ void Promise.resolve(rebuild.call(agent)).catch(() => undefined);
223
+ }
224
+ catch {
225
+ /* rebuild failures must not break skill creation */
226
+ }
227
+ }
228
+ }
229
+ _build_schema(proposal) {
230
+ // Build OpenAI function schema from proposal
231
+ return {
232
+ name: proposal.name,
233
+ description: proposal.description,
234
+ parameters: {
235
+ type: "object",
236
+ properties: proposal.parameters,
237
+ required: Object.keys(proposal.parameters ?? {}),
238
+ },
239
+ };
240
+ }
241
+ /** camelCase alias. */
242
+ _buildSchema(proposal) {
243
+ return this._build_schema(proposal);
244
+ }
245
+ }
246
+ //# sourceMappingURL=skill_distiller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill_distiller.js","sourceRoot":"","sources":["../../../src/core/intelligence/skill_distiller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,330 @@
1
+ /**
2
+ * axoniz.core.intelligence.swarm
3
+ * ================================
4
+ * Dynamic Domain-Expert Swarm — Sequential Model Swapping
5
+ *
6
+ * The Swarm decomposes any complex task into phases and assigns a
7
+ * dedicated, domain-expert model for each phase:
8
+ *
9
+ * Decomposer → breaks the task into atomic sub-tasks (reasoning model)
10
+ * Worker → executes each sub-task using tools (coding/execution model)
11
+ * Critic → validates each result before accepting (debugging model)
12
+ * Merger → synthesises all results into a final answer (language model)
13
+ *
14
+ * Models are loaded sequentially and unloaded from RAM between phases
15
+ * to stay within the memory constraints of the host machine.
16
+ * Model paths are configured in ~/.axoniz/config.json under `swarm_models`.
17
+ * If no swarm models are configured, the active main model is used for all
18
+ * phases (standard behaviour).
19
+ *
20
+ * Architecture:
21
+ * SwarmOrchestrator → drives phase transitions + model hot-swapping
22
+ * SwarmWorker → executes a single sub-task with tool access
23
+ * SwarmCritic → scores + validates a worker result
24
+ * SwarmMerger → combines all valid results
25
+ *
26
+ * Port notes (Python → Node):
27
+ * - `ThreadPoolExecutor`/`Future` → an async scheduler with an explicit
28
+ * concurrency ceiling (`max_workers`), `Promise.race` for completion and a
29
+ * `Promise.allSettled` for teardown. No worker_threads: every step is I/O
30
+ * bound (LLM streaming / tools), so threads would buy nothing.
31
+ * - `threading.Lock` around model swapping → an async `Mutex` (the swap
32
+ * sequence itself awaits `unload_llm`/`ensure_llm`).
33
+ * - `self.llm.stream_text(messages)` (a sync generator) → `collectStream()`,
34
+ * an async collector that accepts an async generator, a sync generator, a
35
+ * plain string, a `{ text }` response object or a promise of any of those.
36
+ * - Every method that talks to the LLM is `async`. `review`, `merge`,
37
+ * `_decompose`, `run`, `run_simple` and `execute` therefore return
38
+ * Promises where the Python versions blocked the calling thread.
39
+ * - `dict` → `Map<number, SubTask>` for the `completed` registry (Python used
40
+ * integer keys); `_schedule_and_run(sub_tasks, completed)` takes that Map.
41
+ * - Python's `self.tool_map[name](**args)` (keyword arguments) has no direct
42
+ * JS analogue. `SwarmWorker.tool_args_mode` ("auto" | "object" |
43
+ * "positional") decides how arguments are passed; "auto" inspects the
44
+ * handler's declared arity.
45
+ * - `swarm.py` referenced `os.path`/`os.path.exists` without importing `os`
46
+ * in `_prefetch_relevant_files` and `_make_worker`; the port uses
47
+ * `node:path` / `node:fs` properly (the Python text-only path raised
48
+ * NameError there).
49
+ */
50
+ import { type AxonizConfig } from "../config.js";
51
+ /** Render an unknown thrown value the way Python's `str(e)` would. */
52
+ export declare function errText(e: unknown): string;
53
+ /**
54
+ * Structural view of the ported backend/LLM. The Python code called
55
+ * `llm.stream_text(messages)` (a generator); the Node ports expose either
56
+ * `streamText`, `stream_text` or `stream`, and may be sync or async.
57
+ */
58
+ export interface SwarmLLM {
59
+ streamText?(messages: unknown[], ...rest: unknown[]): unknown;
60
+ stream_text?(messages: unknown[], ...rest: unknown[]): unknown;
61
+ stream?(messages: unknown[], ...rest: unknown[]): unknown;
62
+ complete?(messages: unknown[], ...rest: unknown[]): unknown;
63
+ }
64
+ /** Drain any stream-like LLM return value into a single string. */
65
+ export declare function collectStream(llm: SwarmLLM | null | undefined, messages: unknown[]): Promise<string>;
66
+ export interface SubTaskInit {
67
+ id: number;
68
+ description: string;
69
+ depends_on?: number[];
70
+ priority?: number;
71
+ tool_hint?: string;
72
+ verify?: string;
73
+ status?: string;
74
+ result?: string;
75
+ score?: number;
76
+ duration_ms?: number;
77
+ worker_id?: number;
78
+ }
79
+ export declare class SubTask {
80
+ id: number;
81
+ description: string;
82
+ depends_on: number[];
83
+ priority: number;
84
+ tool_hint: string;
85
+ verify: string;
86
+ status: string;
87
+ result: string;
88
+ score: number;
89
+ duration_ms: number;
90
+ worker_id: number;
91
+ constructor(init: SubTaskInit | number, description?: string, extra?: Partial<SubTaskInit>);
92
+ get dependsOn(): number[];
93
+ get toolHint(): string;
94
+ get durationMs(): number;
95
+ get workerId(): number;
96
+ }
97
+ export interface SwarmResultInit {
98
+ task: string;
99
+ sub_tasks: SubTask[];
100
+ merged: string;
101
+ success: boolean;
102
+ total_ms: number;
103
+ /** actual speedup achieved */
104
+ parallelism: number;
105
+ }
106
+ export declare class SwarmResult {
107
+ task: string;
108
+ sub_tasks: SubTask[];
109
+ merged: string;
110
+ success: boolean;
111
+ total_ms: number;
112
+ parallelism: number;
113
+ constructor(init: SwarmResultInit);
114
+ get subTasks(): SubTask[];
115
+ get totalMs(): number;
116
+ }
117
+ export declare const DECOMPOSE_PROMPT = "Decompose a task into independent parallel sub-tasks.\n\nRules:\n1. Maximize parallelism \u2014 only use depends_on for true sequential dependencies\n2. Each sub-task is atomic and self-contained\n3. Max 8 sub-tasks\n4. tool_hint: primary tool (file_write, shell_run, etc.)\n5. verify: one-line success check\n\nRespond ONLY with JSON array:\n[\n {\"id\": 1, \"description\": \"...\", \"depends_on\": [], \"priority\": 8, \"tool_hint\": \"file_write\", \"verify\": \"...\"},\n ...\n]";
118
+ export declare const CRITIC_PROMPT = "Review a worker's sub-task result.\nRespond ONLY with JSON:\n{\"score\": 8.5, \"pass\": true, \"issues\": [], \"fix_hint\": \"\"}\nscore: 0-10 (pass if >= 6.0)\nissues: list of problems found\nfix_hint: how to fix if score < 6.0";
119
+ export declare const MERGE_PROMPT = "Synthesize multiple parallel worker outputs into one coherent response.\nBe brief and structured. No extra commentary.";
120
+ export type ToolHandler = (...args: never[]) => unknown;
121
+ export type ToolMap = Record<string, (...args: never[]) => unknown>;
122
+ export type ProgressCallback = (event: Record<string, unknown>) => void;
123
+ /** How `SwarmWorker` passes a tool's arguments (Python used `**kwargs`). */
124
+ export type ToolArgsMode = "auto" | "object" | "positional";
125
+ export interface ParsedToolCall {
126
+ name: string;
127
+ args: Record<string, unknown>;
128
+ }
129
+ /**
130
+ * A lightweight execution unit that runs a single sub-task.
131
+ * Uses a shared tool_map from the parent agent — no separate LLM needed.
132
+ *
133
+ * Two execution modes depending on whether the loaded model supports tool calling:
134
+ * - Tool mode (tool_capable=True): full tool loop, can read/write files, run shell, etc.
135
+ * - Text mode (tool_capable=False): receives pre-fetched file content in the prompt,
136
+ * produces pure text output (code, summary, critique).
137
+ * No tool calls attempted — avoids hallucinated JSON.
138
+ */
139
+ export interface SwarmWorkerInit {
140
+ worker_id: number;
141
+ tool_map: ToolMap;
142
+ llm: SwarmLLM | null;
143
+ workspace: string;
144
+ max_steps?: number;
145
+ on_progress?: ProgressCallback | null;
146
+ tool_capable?: boolean;
147
+ tool_args_mode?: ToolArgsMode;
148
+ }
149
+ export declare class SwarmWorker {
150
+ id: number;
151
+ tool_map: ToolMap;
152
+ llm: SwarmLLM | null;
153
+ workspace: string;
154
+ max_steps: number;
155
+ on_progress: ProgressCallback | null;
156
+ tool_capable: boolean;
157
+ tool_args_mode: ToolArgsMode;
158
+ constructor(init: SwarmWorkerInit);
159
+ constructor(worker_id: number, tool_map: ToolMap, llm: SwarmLLM | null, workspace: string, max_steps?: number, on_progress?: ProgressCallback | null, tool_capable?: boolean);
160
+ get workerId(): number;
161
+ get maxSteps(): number;
162
+ get toolCapable(): boolean;
163
+ /** Execute a sub-task, update it in-place, return it. */
164
+ execute(sub_task: SubTask, context?: string): Promise<SubTask>;
165
+ _build_prompt(sub_task: SubTask, context: string): string;
166
+ /**
167
+ * Prompt for text-only models: pre-fetch relevant file content so the
168
+ * model never needs to call a tool to read the workspace.
169
+ */
170
+ _build_text_prompt(sub_task: SubTask, context: string): string;
171
+ /**
172
+ * Extract file paths mentioned in the task description and read them
173
+ * so a text-only model has the content it needs inline.
174
+ */
175
+ _prefetch_relevant_files(description: string): string;
176
+ /** Parse `<tool>{...}</tool>` fallback calls out of a model reply. */
177
+ _parse_fallback_calls(text: string): ParsedToolCall[];
178
+ _is_done(text: string): boolean;
179
+ /** Invoke a tool handler, mirroring Python's `tool(**args)`. */
180
+ _invoke_tool(name: string, args: Record<string, unknown>): unknown;
181
+ /**
182
+ * Tool-capable execution: full tool loop with <tool> parsing.
183
+ * Used for Gemma 1B, Nemotron 4B and any other model that passed
184
+ * tool-calling validation.
185
+ */
186
+ _run_with_tools(prompt: string): Promise<string>;
187
+ /**
188
+ * Text-only execution for models that cannot call tools (DeepSeek Coder
189
+ * 1.3B, Qwen2.5 1.5B, Qwen2.5 Coder 1.5B).
190
+ *
191
+ * The model receives file content pre-fetched inline and is instructed
192
+ * to produce pure text/code output only. The caller (orchestrator) is
193
+ * responsible for writing results to disk via a tool-capable worker.
194
+ */
195
+ _run_text_only(prompt: string, sub_task: SubTask): Promise<string>;
196
+ }
197
+ export interface CriticReview {
198
+ score: number;
199
+ pass: boolean;
200
+ issues: string[];
201
+ fix_hint: string;
202
+ }
203
+ /**
204
+ * Reviews worker results and scores them.
205
+ * Rejects low-quality results and tells the worker what to fix.
206
+ */
207
+ export declare class SwarmCritic {
208
+ llm: SwarmLLM | null;
209
+ pass_threshold: number;
210
+ constructor(llm: SwarmLLM | null, pass_threshold?: number);
211
+ get passThreshold(): number;
212
+ /**
213
+ * Returns {"score": float, "pass": bool, "issues": list, "fix_hint": str}
214
+ * Fast path: obvious failures are caught without LLM.
215
+ */
216
+ review(sub_task: SubTask): Promise<CriticReview>;
217
+ /** camelCase alias. */
218
+ reviewTask(sub_task: SubTask): Promise<CriticReview>;
219
+ }
220
+ /** Combines all worker results into a coherent final answer. */
221
+ export declare class SwarmMerger {
222
+ llm: SwarmLLM | null;
223
+ constructor(llm: SwarmLLM | null);
224
+ /**
225
+ * Merge all passed sub-task results.
226
+ * For simple tasks, does it without LLM (pure concatenation).
227
+ */
228
+ merge(task: string, sub_tasks: SubTask[]): Promise<string>;
229
+ /** camelCase alias. */
230
+ mergeResults(task: string, sub_tasks: SubTask[]): Promise<string>;
231
+ }
232
+ /**
233
+ * The subset of the Agent surface the swarm drives.
234
+ *
235
+ * Everything except `config` is deliberately optional/permissive: the ported
236
+ * `Agent` exposes `llm`/`backend`, `workspace`, an `indexer` and a tool map
237
+ * (`_tool_map`, `tool_map` or a JS `Map`), and the swarm adapts to whichever of
238
+ * those spellings it finds. Internal accessors narrow the values.
239
+ */
240
+ export interface SwarmAgent {
241
+ config: AxonizConfig;
242
+ llm?: SwarmLLM | null;
243
+ backend?: SwarmLLM | null;
244
+ workspace?: string;
245
+ indexer?: unknown;
246
+ _tool_map?: unknown;
247
+ tool_map?: unknown;
248
+ toolMap?: unknown;
249
+ unload_llm?(): unknown;
250
+ unloadLlm?(): unknown;
251
+ ensure_llm?(): unknown;
252
+ ensureLlm?(): unknown;
253
+ }
254
+ /** Build a name → handler record from a plain object or a JS `Map`. */
255
+ export declare function toToolMap(value: unknown): ToolMap;
256
+ export interface SwarmOrchestratorInit {
257
+ agent: SwarmAgent;
258
+ max_workers?: number;
259
+ critic_threshold?: number;
260
+ max_retries?: number;
261
+ on_progress?: ProgressCallback | null;
262
+ }
263
+ /**
264
+ * Main entry point for the swarm system.
265
+ *
266
+ * 1. Decomposes task into parallel sub-tasks
267
+ * 2. Schedules them respecting dependencies
268
+ * 3. Runs workers in a thread pool
269
+ * 4. Critic reviews each result
270
+ * 5. Retries failed/rejected tasks once
271
+ * 6. Merger combines everything
272
+ *
273
+ * Usage:
274
+ * const swarm = new SwarmOrchestrator({ agent, max_workers: 4 });
275
+ * const result = await swarm.run("build a REST API...");
276
+ */
277
+ export declare class SwarmOrchestrator {
278
+ agent: SwarmAgent;
279
+ critic_threshold: number;
280
+ max_retries: number;
281
+ on_progress: ProgressCallback | null;
282
+ max_workers: number;
283
+ critic: SwarmCritic;
284
+ merger: SwarmMerger;
285
+ _expert_mode: boolean;
286
+ _original_model: string;
287
+ constructor(init: SwarmOrchestratorInit);
288
+ constructor(agent: SwarmAgent, max_workers?: number, critic_threshold?: number, max_retries?: number, on_progress?: ProgressCallback | null);
289
+ /** The LLM/backend the swarm should drive (`llm` or the `backend` alias). */
290
+ private _llm;
291
+ /** Workspace root used when pre-fetching files for text-only workers. */
292
+ private _workspace;
293
+ /** `agent.indexer.summary()` when the workspace indexer exposes it. */
294
+ private _indexerSummary;
295
+ /** The agent's tool registry, whichever spelling it uses. */
296
+ private _toolMap;
297
+ get expertMode(): boolean;
298
+ get maxWorkers(): number;
299
+ private _unloadLlm;
300
+ private _ensureLlm;
301
+ /**
302
+ * Unload the current LLM and load the domain-expert model assigned
303
+ * to `role` in config.swarm_models. A no-op if:
304
+ * - expert mode is disabled (no swarm_models configured)
305
+ * - the requested role has no model assigned
306
+ * - the correct model is already loaded
307
+ */
308
+ _swap_model_for_role(role: string): Promise<void>;
309
+ /** Reload the model that was active before the swarm started. */
310
+ _restore_original_model(): Promise<void>;
311
+ /** Full swarm execution pipeline. Returns SwarmResult. */
312
+ run(task: string): Promise<SwarmResult>;
313
+ /** Convenience: run and return just the merged string. */
314
+ run_simple(task: string): Promise<string>;
315
+ /** camelCase alias. */
316
+ runSimple(task: string): Promise<string>;
317
+ /** Use LLM to decompose task into sub-tasks. */
318
+ _decompose(task: string): Promise<SubTask[]>;
319
+ /**
320
+ * Execute sub-tasks respecting depends_on.
321
+ * Independent tasks run in parallel, bounded by `max_workers`
322
+ * (Python's `ThreadPoolExecutor(max_workers=...)`).
323
+ */
324
+ _schedule_and_run(sub_tasks: SubTask[], completed: Map<number, SubTask>): Promise<void>;
325
+ _make_worker(worker_id: number): SwarmWorker;
326
+ /** Build context string from already-completed sub-tasks. */
327
+ _build_context(completed: Map<number, SubTask>, exclude_id?: number | null): string;
328
+ _emit(event: string, data: Record<string, unknown>): void;
329
+ }
330
+ //# sourceMappingURL=swarm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../../src/core/intelligence/swarm.ts"],"names":[],"mappings":"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"}