@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,553 @@
1
+ /**
2
+ * AXONIZ Core Extras — features that make axoniz competitive
3
+ * ────────────────────────────────────────────────────────────
4
+ * 1. ContextCompressor — summarizes long conversations to fit context
5
+ * 2. TaskPlanner — breaks goals into verified sub-tasks (moltbot-style)
6
+ * 3. SelfEvaluator — agent grades its own output and retries if low quality
7
+ * 4. TokenCounter — estimates token usage without tiktoken
8
+ * 5. WorkspaceIndexer — fast project-wide symbol/file index
9
+ * 6. GitTools — git status, diff, commit, log
10
+ *
11
+ * Port of axoniz/core/extras.py
12
+ *
13
+ * Port notes:
14
+ * - `subprocess.run` → `spawnSync` so GitTools keeps the *synchronous* contract
15
+ * the Python agent relies on (`self.git_tools.status()` is called inline in
16
+ * marshal_scan and the shadow-branch flow). Error strings are byte-identical.
17
+ * - `ast.parse` → regex scanning. Python's `ast` has no Node equivalent that is
18
+ * dependency-free, so classes/functions/imports are extracted with anchored
19
+ * regexes. Limitations: `async def` is intentionally NOT collected (Python's
20
+ * `ast.FunctionDef` also excludes `AsyncFunctionDef`), and symbol text inside
21
+ * multi-line strings can produce a false positive.
22
+ * - File reads use UTF-8 with replacement characters instead of Python's
23
+ * `errors="ignore"`; every other behaviour matches.
24
+ */
25
+ import fs from "node:fs";
26
+ import path from "node:path";
27
+ import { spawnSync } from "node:child_process";
28
+ async function callChat(llm, messages) {
29
+ const resp = await llm.chat(messages);
30
+ return typeof resp === "string" ? resp : String(resp);
31
+ }
32
+ /* ── Tool-dispatch helpers ────────────────────────────────────────────────── */
33
+ /**
34
+ * Axoniz tool maps follow the Python kwargs convention, so the agent dispatches
35
+ * them as `fn(argsObject)` (see `adapt()` in src/core/agent.ts). These helpers
36
+ * accept both that single-object form and plain positional calls.
37
+ */
38
+ export function toolArgs(args, names) {
39
+ const first = args[0];
40
+ if (args.length === 1 && first !== null && typeof first === "object" && !Array.isArray(first)) {
41
+ return first;
42
+ }
43
+ const out = {};
44
+ for (let i = 0; i < names.length && i < args.length; i++) {
45
+ const v = args[i];
46
+ if (v !== undefined)
47
+ out[names[i]] = v;
48
+ }
49
+ return out;
50
+ }
51
+ /** `undefined`/`null`-tolerant string coercion for optional tool args. */
52
+ export function optStr(v) {
53
+ return v === undefined || v === null ? undefined : String(v);
54
+ }
55
+ /** `undefined`/`null`-tolerant number coercion for optional tool args. */
56
+ export function optNum(v) {
57
+ return v === undefined || v === null ? undefined : Number(v);
58
+ }
59
+ /** `undefined`/`null`-tolerant boolean coercion for optional tool args. */
60
+ export function optBool(v, dflt = false) {
61
+ return v === undefined || v === null ? dflt : Boolean(v);
62
+ }
63
+ /* ══════════════════════════════════════════════════════════════════
64
+ * 1. TOKEN COUNTER — estimates without tiktoken
65
+ * ══════════════════════════════════════════════════════════════════ */
66
+ /** Rough token estimator: ~4 chars per token (GPT convention). */
67
+ export class TokenCounter {
68
+ static count(text) {
69
+ return Math.max(1, Math.trunc((text ?? "").length / 4));
70
+ }
71
+ static count_messages(messages) {
72
+ let total = 0;
73
+ for (const m of messages) {
74
+ total += TokenCounter.count(m.content ?? "");
75
+ total += 4; // message overhead
76
+ }
77
+ return total;
78
+ }
79
+ static fits(messages, maxTokens = 6000) {
80
+ return TokenCounter.count_messages(messages) <= maxTokens;
81
+ }
82
+ /* camelCase aliases */
83
+ static countMessages(messages) {
84
+ return TokenCounter.count_messages(messages);
85
+ }
86
+ }
87
+ /* ══════════════════════════════════════════════════════════════════
88
+ * 2. CONTEXT COMPRESSOR
89
+ * ══════════════════════════════════════════════════════════════════ */
90
+ /**
91
+ * Compresses long conversation histories to stay within context limits.
92
+ * Strategy:
93
+ * - Always keep system prompt(s)
94
+ * - Always keep the last `keep_tail` messages verbatim
95
+ * - Summarize middle messages into a single summary message
96
+ */
97
+ export class ContextCompressor {
98
+ max_tokens;
99
+ keep_tail;
100
+ constructor(maxTokens = 6000, keepTail = 6) {
101
+ this.max_tokens = maxTokens;
102
+ this.keep_tail = keepTail;
103
+ }
104
+ /**
105
+ * Compress messages if over budget.
106
+ * `llm` is an optional backend with `.chat(messages)` for summarization.
107
+ */
108
+ async compress(messages, llm) {
109
+ if (TokenCounter.fits(messages, this.max_tokens)) {
110
+ return messages;
111
+ }
112
+ const system = messages.filter((m) => m.role === "system");
113
+ const rest = messages.filter((m) => m.role !== "system");
114
+ if (rest.length <= this.keep_tail + 2) {
115
+ return messages; // not enough to compress
116
+ }
117
+ const head = rest.slice(0, rest.length - this.keep_tail);
118
+ const tail = rest.slice(rest.length - this.keep_tail);
119
+ let summaryText;
120
+ if (llm && head.length > 2) {
121
+ summaryText = await this._summarize(head, llm);
122
+ }
123
+ else {
124
+ summaryText = this._extractive_summary(head);
125
+ }
126
+ const summaryMsg = {
127
+ role: "system",
128
+ content: `[CONTEXT SUMMARY — earlier conversation compressed]\n${summaryText}`,
129
+ };
130
+ return [...system, summaryMsg, ...tail];
131
+ }
132
+ /** Use the LLM to summarize the messages. */
133
+ async _summarize(messages, llm) {
134
+ const transcript = messages
135
+ .map((m) => `${String(m.role ?? "").toUpperCase()}: ${(m.content ?? "").slice(0, 500)}`)
136
+ .join("\n");
137
+ const prompt = [
138
+ {
139
+ role: "system",
140
+ content: "Summarize the following conversation concisely, preserving key facts, decisions, and code produced. Be factual and brief.",
141
+ },
142
+ { role: "user", content: transcript.slice(0, 4000) },
143
+ ];
144
+ try {
145
+ return await callChat(llm, prompt);
146
+ }
147
+ catch {
148
+ return this._extractive_summary(messages);
149
+ }
150
+ }
151
+ /** Fallback: extract key lines without the LLM. */
152
+ _extractive_summary(messages) {
153
+ const parts = [];
154
+ for (const m of messages) {
155
+ const role = String(m.role ?? "");
156
+ const content = (m.content ?? "").slice(0, 200);
157
+ if (role === "user") {
158
+ parts.push(`User said: ${content}`);
159
+ }
160
+ else if (role === "assistant" && content.toLowerCase().includes("done")) {
161
+ parts.push(`Agent completed: ${content.slice(0, 150)}`);
162
+ }
163
+ }
164
+ const joined = parts.slice(0, 10).join(" | ");
165
+ return joined || "Conversation history compressed.";
166
+ }
167
+ }
168
+ /**
169
+ * After each agent response, optionally ask the same LLM to score it.
170
+ * If the score is below the threshold, retry with a stronger prompt.
171
+ */
172
+ export class SelfEvaluator {
173
+ static EVAL_PROMPT = `You are a strict code and task reviewer.
174
+ Rate the following agent response on a scale of 0-10 based on:
175
+ - Completeness (did it fully address the task?)
176
+ - Correctness (is the code/answer correct?)
177
+ - Clarity (is it well-explained?)
178
+
179
+ Respond with ONLY a JSON object: {"score": 7, "reason": "brief explanation", "improvements": "what to fix"}
180
+ `;
181
+ threshold;
182
+ llm;
183
+ constructor(threshold = 6.0, llm) {
184
+ this.threshold = threshold;
185
+ this.llm = llm ?? null;
186
+ }
187
+ /** Returns {score, reason, pass} (+ improvements when the model supplied it). */
188
+ async evaluate(task, response) {
189
+ if (!this.llm) {
190
+ return { score: 10.0, reason: "no evaluator configured", pass: true };
191
+ }
192
+ try {
193
+ const msgs = [
194
+ { role: "system", content: SelfEvaluator.EVAL_PROMPT },
195
+ { role: "user", content: `TASK:\n${task.slice(0, 500)}\n\nRESPONSE:\n${response.slice(0, 1500)}` },
196
+ ];
197
+ const raw = await callChat(this.llm, msgs);
198
+ const match = raw.match(/\{[\s\S]*\}/);
199
+ if (match) {
200
+ const obj = JSON.parse(match[0]);
201
+ const score = Number(obj["score"] ?? 5);
202
+ return {
203
+ score,
204
+ reason: String(obj["reason"] ?? ""),
205
+ improvements: String(obj["improvements"] ?? ""),
206
+ pass: score >= this.threshold,
207
+ };
208
+ }
209
+ }
210
+ catch {
211
+ /* fall through to the parse-failure result, mirroring Python */
212
+ }
213
+ return { score: 5.0, reason: "eval parse failed", pass: true };
214
+ }
215
+ /** Build a retry prompt when the score is too low. */
216
+ retry_prompt(task, response, reason) {
217
+ return (`Your previous response was insufficient.\n` +
218
+ `Issue: ${reason}\n\n` +
219
+ `Original task: ${task}\n\n` +
220
+ `Previous attempt (improve on this):\n${response.slice(0, 800)}\n\n` +
221
+ `Please provide a complete, corrected response.`);
222
+ }
223
+ /** camelCase alias. */
224
+ retryPrompt(task, response, reason) {
225
+ return this.retry_prompt(task, response, reason);
226
+ }
227
+ }
228
+ const SKIP_DIRS = new Set([".git", "__pycache__", "node_modules", ".egg-info", "dist", "build", ".axoniz"]);
229
+ const PY_CLASS_RE = /^[ \t]*class[ \t]+([A-Za-z_]\w*)/gm;
230
+ const PY_FUNC_RE = /^[ \t]*def[ \t]+([A-Za-z_]\w*)/gm;
231
+ const PY_IMPORT_RE = /^[ \t]*import[ \t]+([^\n#]+)/gm;
232
+ const PY_FROM_RE = /^[ \t]*from[ \t]+([\w.]+)[ \t]+import/gm;
233
+ /**
234
+ * Indexes a workspace directory for fast symbol lookup.
235
+ * Extracts: file paths, Python classes/functions/imports.
236
+ */
237
+ export class WorkspaceIndexer {
238
+ workspace;
239
+ _cache = new Map();
240
+ _mtime = new Map();
241
+ constructor(workspace) {
242
+ this.workspace = path.resolve(workspace);
243
+ }
244
+ /** Build/refresh the index. Returns a summary object. */
245
+ index(maxFiles = 200) {
246
+ const result = { files: 0, classes: [], functions: [], imports: [] };
247
+ const pyFiles = this._walkPythonFiles(this.workspace);
248
+ for (const fpath of pyFiles.slice(0, maxFiles)) {
249
+ let mtime = 0;
250
+ try {
251
+ mtime = fs.statSync(fpath).mtimeMs;
252
+ }
253
+ catch {
254
+ continue;
255
+ }
256
+ let cached = this._cache.get(fpath);
257
+ if (cached === undefined || this._mtime.get(fpath) !== mtime) {
258
+ cached = this._parse_python(fpath);
259
+ this._cache.set(fpath, cached);
260
+ this._mtime.set(fpath, mtime);
261
+ }
262
+ result.files += 1;
263
+ const rel = path.relative(this.workspace, fpath);
264
+ for (const cls of cached.classes)
265
+ result.classes.push({ name: cls, file: rel });
266
+ for (const fn of cached.functions)
267
+ result.functions.push({ name: fn, file: rel });
268
+ for (const imp of cached.imports)
269
+ result.imports.push({ module: imp, file: rel });
270
+ }
271
+ return result;
272
+ }
273
+ /** Recursive `.py` discovery with the same pruned directories as `os.walk`. */
274
+ _walkPythonFiles(root, out = []) {
275
+ let entries;
276
+ try {
277
+ entries = fs.readdirSync(root, { withFileTypes: true });
278
+ }
279
+ catch {
280
+ return out;
281
+ }
282
+ for (const e of entries) {
283
+ const full = path.join(root, e.name);
284
+ if (e.isDirectory()) {
285
+ if (!SKIP_DIRS.has(e.name))
286
+ this._walkPythonFiles(full, out);
287
+ }
288
+ else if (e.isFile() && e.name.endsWith(".py")) {
289
+ out.push(full);
290
+ }
291
+ }
292
+ return out;
293
+ }
294
+ /** Regex-based stand-in for Python's `ast` symbol extraction. */
295
+ _parse_python(fpath) {
296
+ const result = { classes: [], functions: [], imports: [] };
297
+ let source;
298
+ try {
299
+ source = fs.readFileSync(fpath, "utf-8");
300
+ }
301
+ catch {
302
+ return result;
303
+ }
304
+ try {
305
+ for (const m of source.matchAll(PY_CLASS_RE))
306
+ result.classes.push(m[1]);
307
+ for (const m of source.matchAll(PY_FUNC_RE))
308
+ result.functions.push(m[1]);
309
+ for (const m of source.matchAll(PY_IMPORT_RE)) {
310
+ for (const part of m[1].split(",")) {
311
+ const name = part.trim().split(/\s+as\s+/)[0].trim();
312
+ if (name)
313
+ result.imports.push(name);
314
+ }
315
+ }
316
+ for (const m of source.matchAll(PY_FROM_RE))
317
+ result.imports.push(m[1] ?? "");
318
+ }
319
+ catch {
320
+ /* best effort, matching Python's bare except around parse errors */
321
+ }
322
+ return result;
323
+ }
324
+ /** Find where a class/function is defined (substring, case-insensitive). */
325
+ find_symbol(name) {
326
+ const idx = this.index();
327
+ const needle = name.toLowerCase();
328
+ const results = [];
329
+ for (const entry of [...idx.classes, ...idx.functions]) {
330
+ if (entry.name.toLowerCase().includes(needle))
331
+ results.push(entry);
332
+ }
333
+ return results;
334
+ }
335
+ /** One-line project summary. */
336
+ summary() {
337
+ const idx = this.index();
338
+ return (`Project: ${path.basename(this.workspace)} ` +
339
+ `| ${idx.files} Python files ` +
340
+ `| ${idx.classes.length} classes ` +
341
+ `| ${idx.functions.length} functions`);
342
+ }
343
+ /* camelCase aliases */
344
+ findSymbol(name) {
345
+ return this.find_symbol(name);
346
+ }
347
+ }
348
+ /** Git operations for the agent. Requires `git` in PATH. */
349
+ export class GitTools {
350
+ workspace;
351
+ constructor(workspace) {
352
+ this.workspace = path.resolve(workspace);
353
+ }
354
+ /**
355
+ * Run `git <args>` in the workspace. Returns stdout, or the exact Python
356
+ * error strings: "[git error] <stderr>", "[ERROR] git not found in PATH",
357
+ * "[ERROR] git timed out", "[ERROR] <e>", or "(no output)".
358
+ */
359
+ _git(args, timeout = 15) {
360
+ let res;
361
+ try {
362
+ res = spawnSync("git", args, {
363
+ cwd: this.workspace,
364
+ timeout: Math.max(0, Math.trunc(timeout * 1000)),
365
+ encoding: "utf-8",
366
+ maxBuffer: 32 * 1024 * 1024,
367
+ windowsHide: true,
368
+ });
369
+ }
370
+ catch (e) {
371
+ return `[ERROR] ${errText(e)}`;
372
+ }
373
+ const err = (res.error ?? null);
374
+ if (err) {
375
+ if (err.code === "ENOENT")
376
+ return "[ERROR] git not found in PATH";
377
+ if (err.code === "ETIMEDOUT" || err.killed)
378
+ return "[ERROR] git timed out";
379
+ return `[ERROR] ${errText(err)}`;
380
+ }
381
+ const out = String(res.stdout ?? "").trim();
382
+ const stderr = String(res.stderr ?? "").trim();
383
+ if (res.status !== 0 && stderr) {
384
+ return `[git error] ${stderr}`;
385
+ }
386
+ return out || "(no output)";
387
+ }
388
+ status() {
389
+ return this._git(["status", "--short", "--branch"]);
390
+ }
391
+ diff(filePath, staged = false) {
392
+ const args = ["diff"];
393
+ if (staged)
394
+ args.push("--cached");
395
+ if (filePath)
396
+ args.push(filePath);
397
+ let out = this._git(args);
398
+ if (out.length > 6000) {
399
+ out = `${out.slice(0, 6000)}\n… [diff truncated]`;
400
+ }
401
+ return out;
402
+ }
403
+ log(n = 10, oneline = true) {
404
+ const fmt = oneline ? "--oneline" : "--format=%h %an %ar %s";
405
+ return this._git(["log", fmt, `-${n}`]);
406
+ }
407
+ add(p = ".") {
408
+ return this._git(["add", p]);
409
+ }
410
+ commit(message) {
411
+ return this._git(["commit", "-m", message]);
412
+ }
413
+ branch() {
414
+ return this._git(["branch", "-v"]);
415
+ }
416
+ checkout(branchName, create = false) {
417
+ const args = ["checkout"];
418
+ if (create)
419
+ args.push("-b");
420
+ args.push(branchName);
421
+ return this._git(args);
422
+ }
423
+ push(remote = "origin", branchName) {
424
+ const args = ["push", remote];
425
+ if (branchName)
426
+ args.push(branchName);
427
+ return this._git(args, 30);
428
+ }
429
+ pull() {
430
+ return this._git(["pull"], 30);
431
+ }
432
+ stash() {
433
+ return this._git(["stash"]);
434
+ }
435
+ stash_pop() {
436
+ return this._git(["stash", "pop"]);
437
+ }
438
+ is_repo() {
439
+ return fs.existsSync(path.join(this.workspace, ".git"));
440
+ }
441
+ init() {
442
+ return this._git(["init"]);
443
+ }
444
+ current_branch() {
445
+ return this._git(["branch", "--show-current"]);
446
+ }
447
+ as_tool_map() {
448
+ return {
449
+ git_status: () => this.status(),
450
+ git_diff: (...args) => {
451
+ const a = toolArgs(args, ["path", "staged"]);
452
+ return this.diff(optStr(a["path"]), optBool(a["staged"]));
453
+ },
454
+ git_log: (...args) => {
455
+ const a = toolArgs(args, ["n", "oneline"]);
456
+ return this.log(optNum(a["n"]) ?? 10, optBool(a["oneline"], true));
457
+ },
458
+ git_add: (...args) => {
459
+ const a = toolArgs(args, ["path"]);
460
+ return this.add(optStr(a["path"]) ?? ".");
461
+ },
462
+ git_commit: (...args) => {
463
+ const a = toolArgs(args, ["message"]);
464
+ return this.commit(String(a["message"] ?? ""));
465
+ },
466
+ git_branch: () => this.branch(),
467
+ git_checkout: (...args) => {
468
+ const a = toolArgs(args, ["branch", "create"]);
469
+ return this.checkout(String(a["branch"] ?? ""), optBool(a["create"]));
470
+ },
471
+ git_push: (...args) => {
472
+ const a = toolArgs(args, ["remote", "branch"]);
473
+ return this.push(optStr(a["remote"]) ?? "origin", optStr(a["branch"]));
474
+ },
475
+ git_pull: () => this.pull(),
476
+ git_stash: () => this.stash(),
477
+ };
478
+ }
479
+ /* camelCase aliases */
480
+ isRepo() {
481
+ return this.is_repo();
482
+ }
483
+ currentBranch() {
484
+ return this.current_branch();
485
+ }
486
+ stashPop() {
487
+ return this.stash_pop();
488
+ }
489
+ asToolMap() {
490
+ return this.as_tool_map();
491
+ }
492
+ }
493
+ function errText(e) {
494
+ return e instanceof Error ? e.message : String(e);
495
+ }
496
+ /* ══════════════════════════════════════════════════════════════════
497
+ * 6. SMART PLANNER
498
+ * ══════════════════════════════════════════════════════════════════ */
499
+ export const PLANNER_PROMPT = `You are a precise task planner for a coding agent.
500
+ Given a high-level goal, produce a step-by-step execution plan.
501
+
502
+ Rules:
503
+ - Each step must be a single, concrete, verifiable action
504
+ - Steps must be ordered by dependency
505
+ - Maximum 10 steps
506
+ - Each step has: id, action (what to do), verify (how to confirm it worked), tool_hint (which tool to use)
507
+
508
+ Respond ONLY with a JSON array:
509
+ [
510
+ {"id": 1, "action": "Create src/ directory", "verify": "src/ exists", "tool_hint": "file_list"},
511
+ {"id": 2, "action": "Write main.py with FastAPI skeleton", "verify": "main.py contains 'from fastapi'", "tool_hint": "file_write"}
512
+ ]`;
513
+ /** Breaks a goal into verified steps. Uses the agent's LLM. */
514
+ export class SmartPlanner {
515
+ llm;
516
+ constructor(llm) {
517
+ this.llm = llm ?? null;
518
+ }
519
+ async plan(goal, workspaceSummary = "") {
520
+ if (!this.llm) {
521
+ return [{ id: 1, action: goal, verify: "task complete", tool_hint: "done" }];
522
+ }
523
+ const context = workspaceSummary ? `Workspace: ${workspaceSummary}\n\nGoal: ${goal}` : `Goal: ${goal}`;
524
+ const msgs = [
525
+ { role: "system", content: PLANNER_PROMPT },
526
+ { role: "user", content: context },
527
+ ];
528
+ try {
529
+ const raw = await callChat(this.llm, msgs);
530
+ const match = raw.match(/\[[\s\S]*\]/);
531
+ if (match) {
532
+ return JSON.parse(match[0]);
533
+ }
534
+ }
535
+ catch {
536
+ /* fall through to the single-step fallback */
537
+ }
538
+ return [{ id: 1, action: goal, verify: "task complete", tool_hint: "done" }];
539
+ }
540
+ format_plan(steps) {
541
+ const lines = [`Plan (${steps.length} steps):`];
542
+ for (const s of steps) {
543
+ lines.push(` ${s.id}. ${s.action}`);
544
+ lines.push(` verify: ${s.verify} | tool: ${s.tool_hint ?? "?"}`);
545
+ }
546
+ return lines.join("\n");
547
+ }
548
+ /* camelCase alias */
549
+ formatPlan(steps) {
550
+ return this.format_plan(steps);
551
+ }
552
+ }
553
+ //# sourceMappingURL=extras.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extras.js","sourceRoot":"","sources":["../../src/core/extras.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export interface CheckResult {
2
+ status: "ok" | "warning" | "error";
3
+ [key: string]: unknown;
4
+ }
5
+ export interface HealthReport {
6
+ status: "healthy" | "degraded";
7
+ timestamp: number;
8
+ uptime_seconds: number;
9
+ checks: {
10
+ memory: CheckResult;
11
+ disk: CheckResult;
12
+ backend: CheckResult;
13
+ database: CheckResult;
14
+ };
15
+ }
16
+ export declare class HealthCheck {
17
+ readonly startTime: number;
18
+ /** Optional override so health checks can report on the live agent backend. */
19
+ backendProbe: (() => Promise<Record<string, unknown>>) | null;
20
+ checkAll(): Promise<HealthReport>;
21
+ checkMemory(): Promise<CheckResult>;
22
+ checkDisk(): Promise<CheckResult>;
23
+ checkBackend(): Promise<CheckResult>;
24
+ checkDatabase(): CheckResult;
25
+ }
26
+ export declare const healthCheck: HealthCheck;
27
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/core/health.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE;QACN,MAAM,EAAE,WAAW,CAAC;QACpB,IAAI,EAAE,WAAW,CAAC;QAClB,OAAO,EAAE,WAAW,CAAC;QACrB,QAAQ,EAAE,WAAW,CAAC;KACvB,CAAC;CACH;AAED,qBAAa,WAAW;IACtB,QAAQ,CAAC,SAAS,SAAc;IAChC,+EAA+E;IAC/E,YAAY,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAQ;IAE/D,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,CAetC;IAEK,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAYxC;IAEK,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,CAetC;IAEK,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,CAezC;IAED,aAAa,IAAI,WAAW,CAW3B;CACF;AAMD,eAAO,MAAM,WAAW,aAAoB,CAAC"}