@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,245 @@
1
+ /**
2
+ * axoniz.core.intelligence.context_compressor
3
+ * ============================================
4
+ * Automatic context window compression for BERU.
5
+ * Ported from Hermes with refinements for the AXONIZ architecture.
6
+ *
7
+ * Summarizes earlier turns while protecting head (system prompt) and tail (recent turns).
8
+ * This ensures BERU can handle long-running missions without losing its mind.
9
+ *
10
+ * Port note (Python → Node): `compress()` and `_generate_summary()` are `async`.
11
+ * The Python versions blocked the calling thread on `agent.generate_summary()`;
12
+ * in the Node port that call is asynchronous, so the results arrive as a
13
+ * Promise. `should_compress`, `_prune_tools`, `_serialize_turns` and
14
+ * `_sanitize` remain synchronous.
15
+ */
16
+ import { error, info } from "../debug.js";
17
+ // Constants from Hermes
18
+ export const SUMMARY_PREFIX = "[CONTEXT COMPACTION — REFERENCE ONLY] Earlier turns were compacted " +
19
+ "into the summary below. This is a handoff from a previous context " +
20
+ "window — treat it as background reference, NOT as active instructions. " +
21
+ "Do NOT answer questions or fulfill requests mentioned in this summary; " +
22
+ "they were already addressed. Respond ONLY to the latest user message " +
23
+ "that appears AFTER this summary. The current session state (files, " +
24
+ "config, etc.) may reflect work described here — avoid repeating it:";
25
+ const _MIN_SUMMARY_TOKENS = 2000;
26
+ const _SUMMARY_RATIO = 0.2;
27
+ const _SUMMARY_TOKENS_CEILING = 12_000;
28
+ const _PRUNED_TOOL_PLACEHOLDER = "[Old tool output cleared to save context space]";
29
+ const _CHARS_PER_TOKEN = 4;
30
+ function errText(e) {
31
+ if (e instanceof Error)
32
+ return e.message || e.name;
33
+ if (typeof e === "string")
34
+ return e;
35
+ return String(e);
36
+ }
37
+ /**
38
+ * Compresses conversation context via lossy summarization.
39
+ * Keeps BERU's memory efficient.
40
+ */
41
+ export class ContextCompressor {
42
+ model;
43
+ threshold_percent;
44
+ protect_first_n;
45
+ protect_last_n;
46
+ context_length;
47
+ threshold_tokens;
48
+ compression_count = 0;
49
+ _previous_summary = null;
50
+ constructor(a, threshold_percent = 0.6, protect_first_n = 3, protect_last_n = 15, context_length = 128000) {
51
+ if (typeof a === "string") {
52
+ this.model = a;
53
+ this.threshold_percent = threshold_percent;
54
+ this.protect_first_n = protect_first_n;
55
+ this.protect_last_n = protect_last_n;
56
+ this.context_length = context_length;
57
+ }
58
+ else {
59
+ this.model = a.model;
60
+ this.threshold_percent = a.threshold_percent ?? 0.6;
61
+ this.protect_first_n = a.protect_first_n ?? 3;
62
+ this.protect_last_n = a.protect_last_n ?? 15;
63
+ this.context_length = a.context_length ?? 128000;
64
+ }
65
+ this.threshold_tokens = Math.trunc(this.context_length * this.threshold_percent);
66
+ }
67
+ get thresholdPercent() {
68
+ return this.threshold_percent;
69
+ }
70
+ get protectFirstN() {
71
+ return this.protect_first_n;
72
+ }
73
+ get protectLastN() {
74
+ return this.protect_last_n;
75
+ }
76
+ get contextLength() {
77
+ return this.context_length;
78
+ }
79
+ get thresholdTokens() {
80
+ return this.threshold_tokens;
81
+ }
82
+ get compressionCount() {
83
+ return this.compression_count;
84
+ }
85
+ should_compress(current_tokens) {
86
+ return current_tokens >= this.threshold_tokens;
87
+ }
88
+ /** camelCase alias. */
89
+ shouldCompress(current_tokens) {
90
+ return this.should_compress(current_tokens);
91
+ }
92
+ /**
93
+ * Main compression loop.
94
+ * agent: The Agent instance (to call LLM for summarization)
95
+ */
96
+ async compress(messages, agent = null) {
97
+ const n_messages = messages.length;
98
+ if (n_messages <= this.protect_first_n + this.protect_last_n + 2) {
99
+ return messages;
100
+ }
101
+ info(`[COMPRESSOR] Triggering context compaction (count: ${this.compression_count + 1})`);
102
+ // 1. Prune old tool results
103
+ messages = this._prune_tools(messages);
104
+ // 2. Determine middle region
105
+ let start = this.protect_first_n;
106
+ // Align forward past tool results
107
+ while (start < messages.length && messages[start]?.role === "tool") {
108
+ start += 1;
109
+ }
110
+ let end = messages.length - this.protect_last_n;
111
+ // Align backward to avoid splitting tool groups
112
+ while (end > start && messages[end]?.role === "tool") {
113
+ end -= 1;
114
+ }
115
+ // If we landed on an assistant message with tool calls, include it in summary
116
+ // (Python kept it as the end of the summary region — a deliberate no-op.)
117
+ if (start >= end) {
118
+ return messages;
119
+ }
120
+ const turns_to_summarize = messages.slice(start, end);
121
+ // 3. Generate summary
122
+ const summary = await this._generate_summary(turns_to_summarize, agent);
123
+ // 4. Reconstruct messages
124
+ const compressed = messages.slice(0, start);
125
+ // Add summary message (standardize on user for summary to avoid confusion)
126
+ compressed.push({
127
+ role: "user",
128
+ content: `${SUMMARY_PREFIX}\n\n${summary}`,
129
+ });
130
+ // Add tail
131
+ compressed.push(...messages.slice(end));
132
+ this.compression_count += 1;
133
+ this._previous_summary = summary;
134
+ return this._sanitize(compressed);
135
+ }
136
+ /** camelCase alias (same Promise-returning method). */
137
+ compressContext(messages, agent = null) {
138
+ return this.compress(messages, agent);
139
+ }
140
+ _prune_tools(messages) {
141
+ const result = [];
142
+ // Keep tail tools intact
143
+ const tail_start = messages.length - this.protect_last_n;
144
+ for (let i = 0; i < messages.length; i++) {
145
+ let msg = messages[i];
146
+ if (i < tail_start && msg.role === "tool") {
147
+ const content = String(msg.content ?? "");
148
+ if (content.length > 500) {
149
+ msg = { ...msg, content: _PRUNED_TOOL_PLACEHOLDER };
150
+ }
151
+ }
152
+ result.push(msg);
153
+ }
154
+ return result;
155
+ }
156
+ async _generate_summary(turns, agent) {
157
+ if (!agent) {
158
+ return "[Summary unavailable: no agent provided]";
159
+ }
160
+ const content = this._serialize_turns(turns);
161
+ let prompt = `You are BERU's memory management engine. \n` +
162
+ `Summarize the following conversation turns into a structured status report.\n` +
163
+ `This will be used as background context for BERU to continue the mission.\n` +
164
+ `\n` +
165
+ `CONVERSATION TURNS:\n` +
166
+ `${content}\n` +
167
+ `\n` +
168
+ `STRUCTURE:\n` +
169
+ `## Mission Goal\n` +
170
+ `[Current primary objective]\n` +
171
+ `\n` +
172
+ `## Progress & Done\n` +
173
+ `[What was achieved, which files were modified, which tools were run]\n` +
174
+ `\n` +
175
+ `## Key Facts & Decisions\n` +
176
+ `[Technical decisions, discovered paths, configuration values]\n` +
177
+ `\n` +
178
+ `## Remaining Work\n` +
179
+ `[What is left to do]\n` +
180
+ `\n` +
181
+ `Be concise but technical. Include file paths and error messages if relevant.\n` +
182
+ `Do NOT include preamble or greeting. Respond ONLY with the summary.\n`;
183
+ if (this._previous_summary) {
184
+ prompt = `Update the following summary with the new progress below:\n\nOLD SUMMARY:\n${this._previous_summary}\n\nNEW TURNS:\n${content}\n\n${prompt}`;
185
+ }
186
+ try {
187
+ // Call the agent's internal LLM client via its summariser entry point.
188
+ const fn = agent.generate_summary ?? agent.generateSummary;
189
+ if (!fn)
190
+ throw new Error("agent exposes no generate_summary");
191
+ const summary = await fn.call(agent, prompt);
192
+ return String(summary ?? "").trim();
193
+ }
194
+ catch (e) {
195
+ error(`[COMPRESSOR] Summary generation failed: ${errText(e)}`);
196
+ return `[Context Lost: Summary generation failed. ${turns.length} turns removed.]`;
197
+ }
198
+ }
199
+ _serialize_turns(turns) {
200
+ const parts = [];
201
+ for (const m of turns) {
202
+ const role = String(m.role ?? "").toUpperCase();
203
+ let content = String(m.content ?? "");
204
+ if (content.length > 2000) {
205
+ content = content.slice(0, 1000) + "... [truncated] ..." + content.slice(-500);
206
+ }
207
+ parts.push(`[${role}]: ${content}`);
208
+ }
209
+ return parts.join("\n\n");
210
+ }
211
+ /**
212
+ * Ensure no orphaned tool calls/results.
213
+ * Only drop tool results when the backend actually uses tool_call_id
214
+ * (i.e. there are assistant messages with tool_calls). For llama.cpp
215
+ * backends that use plain text tool calling, pass all tool messages through.
216
+ */
217
+ _sanitize(messages) {
218
+ // Check whether any assistant message in the list uses structured tool_calls
219
+ const uses_tool_call_ids = messages.some((m) => m.role === "assistant" && Boolean(m.tool_calls));
220
+ if (!uses_tool_call_ids) {
221
+ // Plain-text tool calling (llama.cpp fallback) — nothing to sanitize
222
+ return messages;
223
+ }
224
+ // Structured tool calling: drop tool results with no matching call ID
225
+ const call_ids = new Set();
226
+ for (const m of messages) {
227
+ if (m.role === "assistant" && m.tool_calls) {
228
+ for (const tc of m.tool_calls) {
229
+ call_ids.add(String(tc["id"]));
230
+ }
231
+ }
232
+ }
233
+ const final = [];
234
+ for (const m of messages) {
235
+ if (m.role === "tool") {
236
+ if (!call_ids.has(String(m.tool_call_id))) {
237
+ continue; // Drop orphaned tool result
238
+ }
239
+ }
240
+ final.push(m);
241
+ }
242
+ return final;
243
+ }
244
+ }
245
+ //# sourceMappingURL=context_compressor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context_compressor.js","sourceRoot":"","sources":["../../../src/core/intelligence/context_compressor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,247 @@
1
+ /**
2
+ * axoniz.core.intelligence.daemon
3
+ * =================================
4
+ * Phase 4 — axoniz OS Layer (Background Daemon)
5
+ *
6
+ * This is what no one has attempted in local AI.
7
+ * axoniz runs as a background daemon on your machine:
8
+ *
9
+ * File saved → lint and test automatically
10
+ * Git commit → write the changelog entry
11
+ * Build failed → fix it and retry while you sleep
12
+ * Cron schedule → daily code quality audit
13
+ * File watcher → catch errors before you even ask
14
+ *
15
+ * It stops being a tool you open and becomes infrastructure you run.
16
+ *
17
+ * Architecture:
18
+ * FileWatcher — watches workspace for changes
19
+ * EventQueue — deque of file events
20
+ * DaemonLoop — runs scheduled tasks + reacts to events
21
+ * TaskScheduler — interval-style task scheduling
22
+ *
23
+ * Port notes (Python → Node):
24
+ * - `threading.Thread(daemon=True)` loops → `setInterval` timers that are
25
+ * `unref()`d, so (exactly like a Python daemon thread) they never keep the
26
+ * process alive, and `stop()` clears them.
27
+ * - `queue.Queue(maxsize=500)` → `EventQueue`, a bounded wrapper around the
28
+ * existing `core/backend/async_queue.ts` `AsyncQueue` (reused for the async
29
+ * iteration side) plus a synchronous FIFO so the daemon's poll loop keeps
30
+ * Python's `get_nowait()` / `empty()` semantics. A full queue drops instead
31
+ * of blocking: blocking is impossible on the main thread, and the Python
32
+ * producer ran on its own thread.
33
+ * - `compile(source, path, "exec")` (the Python linter) → heuristic bracket /
34
+ * string-balance checking; Node ships no Python parser. `.js`/`.mjs`/`.cjs`
35
+ * files get a REAL syntax check through `node:vm`. Consequences are
36
+ * documented on `_pySyntaxIssue`.
37
+ * - `_task_vision_sentinel` used pyautogui + pytesseract (OCR). Neither has a
38
+ * Node equivalent in the available dependency set, so the sentinel keeps its
39
+ * schedule and its `AXONIZ_DISABLE_VISION` guard but cannot extract text;
40
+ * it warns once and performs no capture. Documented fidelity loss.
41
+ * - `threading.Lock` around `_pending_lint` is unnecessary on one thread and
42
+ * is omitted.
43
+ */
44
+ /** Render an unknown thrown value the way Python's `str(e)` would. */
45
+ export declare function errText(e: unknown): string;
46
+ export interface FileEventInit {
47
+ path: string;
48
+ /** created / modified / deleted */
49
+ event: string;
50
+ timestamp?: number;
51
+ size?: number;
52
+ }
53
+ export declare class FileEvent {
54
+ path: string;
55
+ event: string;
56
+ timestamp: number;
57
+ size: number;
58
+ constructor(init: FileEventInit | string, event?: string, timestamp?: number, size?: number);
59
+ }
60
+ export interface ScheduledTaskInit {
61
+ name: string;
62
+ interval_sec: number;
63
+ callback: () => unknown;
64
+ last_run?: number;
65
+ enabled?: boolean;
66
+ description?: string;
67
+ }
68
+ export declare class ScheduledTask {
69
+ name: string;
70
+ interval_sec: number;
71
+ callback: () => unknown;
72
+ last_run: number;
73
+ enabled: boolean;
74
+ description: string;
75
+ constructor(init: ScheduledTaskInit | string, interval_sec?: number, callback?: () => unknown, last_run?: number, enabled?: boolean, description?: string);
76
+ get intervalSec(): number;
77
+ get lastRun(): number;
78
+ }
79
+ export interface DaemonEventInit {
80
+ kind: string;
81
+ payload: Record<string, unknown>;
82
+ ts?: number;
83
+ }
84
+ export declare class DaemonEvent {
85
+ kind: string;
86
+ payload: Record<string, unknown>;
87
+ ts: number;
88
+ constructor(init: DaemonEventInit | string, payload?: Record<string, unknown>, ts?: number);
89
+ }
90
+ /**
91
+ * Bounded FIFO bridging the file watcher to the daemon loop.
92
+ *
93
+ * `AsyncQueue` (core/backend) supplies the async-iteration side; the extra
94
+ * synchronous buffer exists because Python's `queue.Queue` offered
95
+ * `get_nowait()`/`empty()` and the daemon's tick loop drains up to 20 events
96
+ * without awaiting.
97
+ */
98
+ export declare class EventQueue<T> implements AsyncIterable<T> {
99
+ readonly maxsize: number;
100
+ private readonly _async;
101
+ private readonly _buffer;
102
+ constructor(maxsize?: number);
103
+ put(item: T): void;
104
+ put_nowait(item: T): void;
105
+ get_nowait(): T | undefined;
106
+ empty(): boolean;
107
+ get qsize(): number;
108
+ [Symbol.asyncIterator](): AsyncIterator<T>;
109
+ }
110
+ export interface SyntaxIssue {
111
+ error: string;
112
+ line: number;
113
+ }
114
+ /**
115
+ * Heuristic stand-in for Python's `compile(source, path, "exec")`.
116
+ *
117
+ * It catches unbalanced brackets, unterminated strings and (approximated)
118
+ * triple-quoted strings — the failures that dominate "file saved, does it still
119
+ * parse?" checks. It CANNOT detect real grammar errors (`def f(:` passes) and it
120
+ * can be fooled by exotic literal shapes. `.js`/`.mjs`/`.cjs` files use the real
121
+ * `node:vm` parser instead (`_jsSyntaxIssue`).
122
+ */
123
+ export declare function _pySyntaxIssue(source: string): SyntaxIssue | null;
124
+ /** Real syntax check for JavaScript, via the V8 parser. */
125
+ export declare function _jsSyntaxIssue(source: string, filename?: string): SyntaxIssue | null;
126
+ /**
127
+ * Watches a workspace directory for file changes using mtime polling.
128
+ * No external deps (no watchdog needed).
129
+ * Debounces rapid changes (e.g. editor writing temp files).
130
+ */
131
+ export declare class FileWatcher {
132
+ static readonly POLL_INTERVAL = 1.5;
133
+ static readonly DEBOUNCE_SEC = 2;
134
+ static readonly MAX_FILES = 2000;
135
+ static readonly SKIP_DIRS: Set<string>;
136
+ static readonly WATCH_EXTS: Set<string>;
137
+ workspace: string;
138
+ queue: EventQueue<FileEvent>;
139
+ _mtimes: Map<string, number>;
140
+ _pending: Map<string, number>;
141
+ _running: boolean;
142
+ private _timer;
143
+ constructor(workspace: string, queue: EventQueue<FileEvent>);
144
+ start(): void;
145
+ stop(): void;
146
+ private _loop;
147
+ _scan(emit: boolean): void;
148
+ _flush_debounced(): void;
149
+ }
150
+ export interface DaemonAgent {
151
+ git_tools?: {
152
+ status?(): unknown;
153
+ };
154
+ gitTools?: {
155
+ status?(): unknown;
156
+ };
157
+ axodex?: {
158
+ analyze?(): unknown;
159
+ status?(): unknown;
160
+ };
161
+ memory?: {
162
+ palace?: {
163
+ is_available?(): boolean;
164
+ isAvailable?(): boolean;
165
+ store?(...args: unknown[]): unknown;
166
+ };
167
+ };
168
+ }
169
+ /** Keyword-argument constructor form (the Python call sites use keywords). */
170
+ export interface AxonizDaemonInit {
171
+ agent: DaemonAgent;
172
+ workspace: string;
173
+ on_event?: ((event: DaemonEvent) => unknown) | null;
174
+ }
175
+ /**
176
+ * Background daemon that watches files, runs scheduled tasks,
177
+ * and reacts to events — all without user intervention.
178
+ *
179
+ * This is the OS layer. It's always running.
180
+ */
181
+ export declare class axonizDaemon {
182
+ static readonly DAEMON_STATE_PATH: string;
183
+ agent: DaemonAgent;
184
+ workspace: string;
185
+ on_event: ((event: DaemonEvent) => unknown) | null;
186
+ _queue: EventQueue<FileEvent>;
187
+ _watcher: FileWatcher;
188
+ _running: boolean;
189
+ _event_log: DaemonEvent[];
190
+ _tasks: ScheduledTask[];
191
+ _pending_lint: Set<string>;
192
+ private _timer;
193
+ private _vision_warned;
194
+ constructor(agent: DaemonAgent, workspace: string, on_event?: ((event: DaemonEvent) => unknown) | null);
195
+ constructor(init: AxonizDaemonInit);
196
+ /** Start daemon in background thread. */
197
+ start(): void;
198
+ stop(): void;
199
+ is_running(): boolean;
200
+ /** camelCase alias. */
201
+ isRunning(): boolean;
202
+ /** Add a custom scheduled task. */
203
+ add_task(task: ScheduledTask): void;
204
+ /** camelCase alias. */
205
+ addTask(task: ScheduledTask): void;
206
+ remove_task(name: string): void;
207
+ /** camelCase alias. */
208
+ removeTask(name: string): void;
209
+ get_recent_events(n?: number): DaemonEvent[];
210
+ /** camelCase alias. */
211
+ getRecentEvents(n?: number): DaemonEvent[];
212
+ status(): Record<string, unknown>;
213
+ private _loop;
214
+ _drain_queue(): void;
215
+ /** React to a file change event. */
216
+ _handle_event(event: FileEvent): void;
217
+ private _emit;
218
+ /** Lint all Python files that changed recently. */
219
+ _task_lint_pending(): void;
220
+ /** Check git status and emit events for uncommitted changes. */
221
+ _task_git_status(): Promise<void>;
222
+ /** Daily code quality check — runs lint on all Python files. */
223
+ _task_daily_audit(): Promise<void>;
224
+ /** Background Axodex refresh. */
225
+ _task_axodex_refresh(): Promise<void>;
226
+ /** Proactive codebase health check and fix suggestion. */
227
+ _task_beru_heartbeat(): Promise<void>;
228
+ /**
229
+ * Monitor terminal/screen for errors via OCR.
230
+ *
231
+ * FIDELITY LOSS: Python used `pyautogui.screenshot()` + `pytesseract` to read
232
+ * the screen and look for critical fail markers. No OCR engine is available in
233
+ * the Node dependency set (and `screenshot-desktop` alone cannot read text), so
234
+ * the sentinel keeps its schedule + guard but cannot perform detection. It
235
+ * warns once per process and then stays silent.
236
+ */
237
+ _task_vision_sentinel(): Promise<void>;
238
+ /** Persist daemon state for restart. */
239
+ save_state(): void;
240
+ /** camelCase alias. */
241
+ saveState(): void;
242
+ /** Restore task last_run times from previous session. */
243
+ load_state(): void;
244
+ /** camelCase alias. */
245
+ loadState(): void;
246
+ }
247
+ //# sourceMappingURL=daemon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../src/core/intelligence/daemon.ts"],"names":[],"mappings":"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"}