@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.
- package/LICENSE +21 -0
- package/README.md +76 -0
- package/dist/agents/definition.d.ts +15 -0
- package/dist/agents/definition.d.ts.map +1 -0
- package/dist/agents/definition.js +41 -0
- package/dist/agents/definition.js.map +1 -0
- package/dist/agents/index.d.ts +12 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +11 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/registry.d.ts +17 -0
- package/dist/agents/registry.d.ts.map +1 -0
- package/dist/agents/registry.js +23 -0
- package/dist/agents/registry.js.map +1 -0
- package/dist/agents/specialized.d.ts +31 -0
- package/dist/agents/specialized.d.ts.map +1 -0
- package/dist/agents/specialized.js +75 -0
- package/dist/agents/specialized.js.map +1 -0
- package/dist/awareness/index.d.ts +14 -0
- package/dist/awareness/index.d.ts.map +1 -0
- package/dist/awareness/index.js +22 -0
- package/dist/awareness/index.js.map +1 -0
- package/dist/awareness/service.d.ts +180 -0
- package/dist/awareness/service.d.ts.map +1 -0
- package/dist/awareness/service.js +789 -0
- package/dist/awareness/service.js.map +1 -0
- package/dist/cli/entry.d.ts +13 -0
- package/dist/cli/entry.d.ts.map +1 -0
- package/dist/cli/entry.js +35 -0
- package/dist/cli/entry.js.map +1 -0
- package/dist/comms/telegram.d.ts +41 -0
- package/dist/comms/telegram.d.ts.map +1 -0
- package/dist/comms/telegram.js +332 -0
- package/dist/comms/telegram.js.map +1 -0
- package/dist/core/agent.d.ts +252 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +1399 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/auth.d.ts +23 -0
- package/dist/core/auth.d.ts.map +1 -0
- package/dist/core/auth.js +113 -0
- package/dist/core/auth.js.map +1 -0
- package/dist/core/authority.d.ts +118 -0
- package/dist/core/authority.d.ts.map +1 -0
- package/dist/core/authority.js +402 -0
- package/dist/core/authority.js.map +1 -0
- package/dist/core/backend/async_queue.d.ts +17 -0
- package/dist/core/backend/async_queue.d.ts.map +1 -0
- package/dist/core/backend/async_queue.js +66 -0
- package/dist/core/backend/async_queue.js.map +1 -0
- package/dist/core/backend/index.d.ts +24 -0
- package/dist/core/backend/index.d.ts.map +1 -0
- package/dist/core/backend/index.js +128 -0
- package/dist/core/backend/index.js.map +1 -0
- package/dist/core/backend/llama_server.d.ts +39 -0
- package/dist/core/backend/llama_server.d.ts.map +1 -0
- package/dist/core/backend/llama_server.js +182 -0
- package/dist/core/backend/llama_server.js.map +1 -0
- package/dist/core/backend/llamacpp.d.ts +40 -0
- package/dist/core/backend/llamacpp.d.ts.map +1 -0
- package/dist/core/backend/llamacpp.js +200 -0
- package/dist/core/backend/llamacpp.js.map +1 -0
- package/dist/core/backend/lmstudio.d.ts +53 -0
- package/dist/core/backend/lmstudio.d.ts.map +1 -0
- package/dist/core/backend/lmstudio.js +274 -0
- package/dist/core/backend/lmstudio.js.map +1 -0
- package/dist/core/backend/ollama.d.ts +25 -0
- package/dist/core/backend/ollama.d.ts.map +1 -0
- package/dist/core/backend/ollama.js +86 -0
- package/dist/core/backend/ollama.js.map +1 -0
- package/dist/core/backend/openai.d.ts +27 -0
- package/dist/core/backend/openai.d.ts.map +1 -0
- package/dist/core/backend/openai.js +84 -0
- package/dist/core/backend/openai.js.map +1 -0
- package/dist/core/backend/types.d.ts +73 -0
- package/dist/core/backend/types.d.ts.map +1 -0
- package/dist/core/backend/types.js +137 -0
- package/dist/core/backend/types.js.map +1 -0
- package/dist/core/chat_store.d.ts +77 -0
- package/dist/core/chat_store.d.ts.map +1 -0
- package/dist/core/chat_store.js +332 -0
- package/dist/core/chat_store.js.map +1 -0
- package/dist/core/cli.d.ts +82 -0
- package/dist/core/cli.d.ts.map +1 -0
- package/dist/core/cli.js +602 -0
- package/dist/core/cli.js.map +1 -0
- package/dist/core/config.d.ts +127 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +295 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/debug.d.ts +8 -0
- package/dist/core/debug.d.ts.map +1 -0
- package/dist/core/debug.js +8 -0
- package/dist/core/debug.js.map +1 -0
- package/dist/core/downloader.d.ts +31 -0
- package/dist/core/downloader.d.ts.map +1 -0
- package/dist/core/downloader.js +180 -0
- package/dist/core/downloader.js.map +1 -0
- package/dist/core/errors.d.ts +80 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +134 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/extras.d.ts +160 -0
- package/dist/core/extras.d.ts.map +1 -0
- package/dist/core/extras.js +553 -0
- package/dist/core/extras.js.map +1 -0
- package/dist/core/health.d.ts +27 -0
- package/dist/core/health.d.ts.map +1 -0
- package/dist/core/health.js +96 -0
- package/dist/core/health.js.map +1 -0
- package/dist/core/history.d.ts +50 -0
- package/dist/core/history.d.ts.map +1 -0
- package/dist/core/history.js +276 -0
- package/dist/core/history.js.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/intelligence/ast_index.d.ts +255 -0
- package/dist/core/intelligence/ast_index.d.ts.map +1 -0
- package/dist/core/intelligence/ast_index.js +1369 -0
- package/dist/core/intelligence/ast_index.js.map +1 -0
- package/dist/core/intelligence/confidence.d.ts +113 -0
- package/dist/core/intelligence/confidence.d.ts.map +1 -0
- package/dist/core/intelligence/confidence.js +298 -0
- package/dist/core/intelligence/confidence.js.map +1 -0
- package/dist/core/intelligence/context_compressor.d.ts +80 -0
- package/dist/core/intelligence/context_compressor.d.ts.map +1 -0
- package/dist/core/intelligence/context_compressor.js +245 -0
- package/dist/core/intelligence/context_compressor.js.map +1 -0
- package/dist/core/intelligence/daemon.d.ts +247 -0
- package/dist/core/intelligence/daemon.d.ts.map +1 -0
- package/dist/core/intelligence/daemon.js +842 -0
- package/dist/core/intelligence/daemon.js.map +1 -0
- package/dist/core/intelligence/index.d.ts +60 -0
- package/dist/core/intelligence/index.d.ts.map +1 -0
- package/dist/core/intelligence/index.js +101 -0
- package/dist/core/intelligence/index.js.map +1 -0
- package/dist/core/intelligence/predictor.d.ts +246 -0
- package/dist/core/intelligence/predictor.d.ts.map +1 -0
- package/dist/core/intelligence/predictor.js +590 -0
- package/dist/core/intelligence/predictor.js.map +1 -0
- package/dist/core/intelligence/reflex.d.ts +84 -0
- package/dist/core/intelligence/reflex.d.ts.map +1 -0
- package/dist/core/intelligence/reflex.js +344 -0
- package/dist/core/intelligence/reflex.js.map +1 -0
- package/dist/core/intelligence/self_correction.d.ts +121 -0
- package/dist/core/intelligence/self_correction.d.ts.map +1 -0
- package/dist/core/intelligence/self_correction.js +327 -0
- package/dist/core/intelligence/self_correction.js.map +1 -0
- package/dist/core/intelligence/skill_distiller.d.ts +100 -0
- package/dist/core/intelligence/skill_distiller.d.ts.map +1 -0
- package/dist/core/intelligence/skill_distiller.js +246 -0
- package/dist/core/intelligence/skill_distiller.js.map +1 -0
- package/dist/core/intelligence/swarm.d.ts +330 -0
- package/dist/core/intelligence/swarm.d.ts.map +1 -0
- package/dist/core/intelligence/swarm.js +1064 -0
- package/dist/core/intelligence/swarm.js.map +1 -0
- package/dist/core/intelligence/trajectory.d.ts +107 -0
- package/dist/core/intelligence/trajectory.d.ts.map +1 -0
- package/dist/core/intelligence/trajectory.js +330 -0
- package/dist/core/intelligence/trajectory.js.map +1 -0
- package/dist/core/logger.d.ts +111 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +640 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/loop.d.ts +123 -0
- package/dist/core/loop.d.ts.map +1 -0
- package/dist/core/loop.js +423 -0
- package/dist/core/loop.js.map +1 -0
- package/dist/core/memory.d.ts +81 -0
- package/dist/core/memory.d.ts.map +1 -0
- package/dist/core/memory.js +328 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/metrics.d.ts +29 -0
- package/dist/core/metrics.d.ts.map +1 -0
- package/dist/core/metrics.js +109 -0
- package/dist/core/metrics.js.map +1 -0
- package/dist/core/models.d.ts +51 -0
- package/dist/core/models.d.ts.map +1 -0
- package/dist/core/models.js +146 -0
- package/dist/core/models.js.map +1 -0
- package/dist/core/optimizer.d.ts +34 -0
- package/dist/core/optimizer.d.ts.map +1 -0
- package/dist/core/optimizer.js +131 -0
- package/dist/core/optimizer.js.map +1 -0
- package/dist/core/persona.d.ts +35 -0
- package/dist/core/persona.d.ts.map +1 -0
- package/dist/core/persona.js +126 -0
- package/dist/core/persona.js.map +1 -0
- package/dist/core/rate_limit.d.ts +23 -0
- package/dist/core/rate_limit.d.ts.map +1 -0
- package/dist/core/rate_limit.js +62 -0
- package/dist/core/rate_limit.js.map +1 -0
- package/dist/core/runner.d.ts +63 -0
- package/dist/core/runner.d.ts.map +1 -0
- package/dist/core/runner.js +671 -0
- package/dist/core/runner.js.map +1 -0
- package/dist/core/stream_parser.d.ts +43 -0
- package/dist/core/stream_parser.d.ts.map +1 -0
- package/dist/core/stream_parser.js +140 -0
- package/dist/core/stream_parser.js.map +1 -0
- package/dist/core/tool_schemas.d.ts +26 -0
- package/dist/core/tool_schemas.d.ts.map +1 -0
- package/dist/core/tool_schemas.js +124 -0
- package/dist/core/tool_schemas.js.map +1 -0
- package/dist/core/which.d.ts +2 -0
- package/dist/core/which.d.ts.map +1 -0
- package/dist/core/which.js +35 -0
- package/dist/core/which.js.map +1 -0
- package/dist/goals/index.d.ts +9 -0
- package/dist/goals/index.d.ts.map +1 -0
- package/dist/goals/index.js +17 -0
- package/dist/goals/index.js.map +1 -0
- package/dist/goals/service.d.ts +115 -0
- package/dist/goals/service.d.ts.map +1 -0
- package/dist/goals/service.js +415 -0
- package/dist/goals/service.js.map +1 -0
- package/dist/goals/types.d.ts +47 -0
- package/dist/goals/types.d.ts.map +1 -0
- package/dist/goals/types.js +66 -0
- package/dist/goals/types.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/autonomous_startup.d.ts +51 -0
- package/dist/integrations/autonomous_startup.d.ts.map +1 -0
- package/dist/integrations/autonomous_startup.js +419 -0
- package/dist/integrations/autonomous_startup.js.map +1 -0
- package/dist/integrations/goose.d.ts +105 -0
- package/dist/integrations/goose.d.ts.map +1 -0
- package/dist/integrations/goose.js +408 -0
- package/dist/integrations/goose.js.map +1 -0
- package/dist/integrations/index.d.ts +21 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +17 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/mcp.d.ts +73 -0
- package/dist/integrations/mcp.d.ts.map +1 -0
- package/dist/integrations/mcp.js +307 -0
- package/dist/integrations/mcp.js.map +1 -0
- package/dist/integrations/mempalace.d.ts +18 -0
- package/dist/integrations/mempalace.d.ts.map +1 -0
- package/dist/integrations/mempalace.js +25 -0
- package/dist/integrations/mempalace.js.map +1 -0
- package/dist/integrations/multi_agent.d.ts +82 -0
- package/dist/integrations/multi_agent.d.ts.map +1 -0
- package/dist/integrations/multi_agent.js +280 -0
- package/dist/integrations/multi_agent.js.map +1 -0
- package/dist/integrations/unified_memory.d.ts +415 -0
- package/dist/integrations/unified_memory.d.ts.map +1 -0
- package/dist/integrations/unified_memory.js +1489 -0
- package/dist/integrations/unified_memory.js.map +1 -0
- package/dist/roles/beru.yaml +48 -0
- package/dist/sidecar/client.d.ts +63 -0
- package/dist/sidecar/client.d.ts.map +1 -0
- package/dist/sidecar/client.js +222 -0
- package/dist/sidecar/client.js.map +1 -0
- package/dist/sidecar/index.d.ts +7 -0
- package/dist/sidecar/index.d.ts.map +1 -0
- package/dist/sidecar/index.js +6 -0
- package/dist/sidecar/index.js.map +1 -0
- package/dist/startup.d.ts +22 -0
- package/dist/startup.d.ts.map +1 -0
- package/dist/startup.js +194 -0
- package/dist/startup.js.map +1 -0
- package/dist/tools/_internal.d.ts +90 -0
- package/dist/tools/_internal.d.ts.map +1 -0
- package/dist/tools/_internal.js +375 -0
- package/dist/tools/_internal.js.map +1 -0
- package/dist/tools/_smoke.d.ts +2 -0
- package/dist/tools/_smoke.d.ts.map +1 -0
- package/dist/tools/_smoke.js +203 -0
- package/dist/tools/_smoke.js.map +1 -0
- package/dist/tools/axodex_tools.d.ts +51 -0
- package/dist/tools/axodex_tools.d.ts.map +1 -0
- package/dist/tools/axodex_tools.js +181 -0
- package/dist/tools/axodex_tools.js.map +1 -0
- package/dist/tools/code_tools.d.ts +33 -0
- package/dist/tools/code_tools.d.ts.map +1 -0
- package/dist/tools/code_tools.js +191 -0
- package/dist/tools/code_tools.js.map +1 -0
- package/dist/tools/computer_tools.d.ts +59 -0
- package/dist/tools/computer_tools.d.ts.map +1 -0
- package/dist/tools/computer_tools.js +348 -0
- package/dist/tools/computer_tools.js.map +1 -0
- package/dist/tools/file_tools.d.ts +51 -0
- package/dist/tools/file_tools.d.ts.map +1 -0
- package/dist/tools/file_tools.js +424 -0
- package/dist/tools/file_tools.js.map +1 -0
- package/dist/tools/index.d.ts +13 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +13 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/shell_tools.d.ts +39 -0
- package/dist/tools/shell_tools.d.ts.map +1 -0
- package/dist/tools/shell_tools.js +163 -0
- package/dist/tools/shell_tools.js.map +1 -0
- package/dist/tools/web_tools.d.ts +31 -0
- package/dist/tools/web_tools.d.ts.map +1 -0
- package/dist/tools/web_tools.js +117 -0
- package/dist/tools/web_tools.js.map +1 -0
- package/dist/voice/index.d.ts +41 -0
- package/dist/voice/index.d.ts.map +1 -0
- package/dist/voice/index.js +58 -0
- package/dist/voice/index.js.map +1 -0
- package/dist/voice/light_daemon.d.ts +197 -0
- package/dist/voice/light_daemon.d.ts.map +1 -0
- package/dist/voice/light_daemon.js +746 -0
- package/dist/voice/light_daemon.js.map +1 -0
- package/dist/voice/setup.d.ts +63 -0
- package/dist/voice/setup.d.ts.map +1 -0
- package/dist/voice/setup.js +443 -0
- package/dist/voice/setup.js.map +1 -0
- package/dist/voice/stt.d.ts +148 -0
- package/dist/voice/stt.d.ts.map +1 -0
- package/dist/voice/stt.js +361 -0
- package/dist/voice/stt.js.map +1 -0
- package/dist/voice/tts.d.ts +168 -0
- package/dist/voice/tts.d.ts.map +1 -0
- package/dist/voice/tts.js +698 -0
- package/dist/voice/tts.js.map +1 -0
- package/dist/voice/voice_loop.d.ts +101 -0
- package/dist/voice/voice_loop.d.ts.map +1 -0
- package/dist/voice/voice_loop.js +463 -0
- package/dist/voice/voice_loop.js.map +1 -0
- package/dist/voice/wake_word.d.ts +153 -0
- package/dist/voice/wake_word.d.ts.map +1 -0
- package/dist/voice/wake_word.js +458 -0
- package/dist/voice/wake_word.js.map +1 -0
- package/dist/voice/wav.d.ts +99 -0
- package/dist/voice/wav.d.ts.map +1 -0
- package/dist/voice/wav.js +306 -0
- package/dist/voice/wav.js.map +1 -0
- package/dist/web/broker.d.ts +33 -0
- package/dist/web/broker.d.ts.map +1 -0
- package/dist/web/broker.js +58 -0
- package/dist/web/broker.js.map +1 -0
- package/dist/web/open_browser.d.ts +2 -0
- package/dist/web/open_browser.d.ts.map +1 -0
- package/dist/web/open_browser.js +42 -0
- package/dist/web/open_browser.js.map +1 -0
- package/dist/web/server.d.ts +54 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +831 -0
- package/dist/web/server.js.map +1 -0
- package/dist/web/static/app.js +4121 -0
- package/dist/web/static/index.html +2281 -0
- package/dist/web/static/js/MODULE_SUMMARY.md +124 -0
- package/dist/web/static/js/a11y.js +165 -0
- package/dist/web/static/js/admin.js +2145 -0
- package/dist/web/static/js/assistant.js +475 -0
- package/dist/web/static/js/calendar/reminders.js +114 -0
- package/dist/web/static/js/calendar/utils.js +166 -0
- package/dist/web/static/js/calendar.js +3348 -0
- package/dist/web/static/js/censor.js +356 -0
- package/dist/web/static/js/chat.js +4546 -0
- package/dist/web/static/js/chatRenderer.js +2294 -0
- package/dist/web/static/js/chatStream.js +276 -0
- package/dist/web/static/js/codeRunner.js +398 -0
- package/dist/web/static/js/color/hex.js +14 -0
- package/dist/web/static/js/colorPicker.js +453 -0
- package/dist/web/static/js/compare/icons.js +77 -0
- package/dist/web/static/js/compare/index.js +1482 -0
- package/dist/web/static/js/compare/models.js +104 -0
- package/dist/web/static/js/compare/panes.js +817 -0
- package/dist/web/static/js/compare/probe.js +78 -0
- package/dist/web/static/js/compare/scoreboard.js +223 -0
- package/dist/web/static/js/compare/selector.js +1335 -0
- package/dist/web/static/js/compare/state.js +58 -0
- package/dist/web/static/js/compare/stream.js +695 -0
- package/dist/web/static/js/compare/vote.js +254 -0
- package/dist/web/static/js/cookbook-diagnosis.js +694 -0
- package/dist/web/static/js/cookbook-hwfit.js +1888 -0
- package/dist/web/static/js/cookbook.js +2093 -0
- package/dist/web/static/js/cookbookDownload.js +633 -0
- package/dist/web/static/js/cookbookProgressSignal.js +29 -0
- package/dist/web/static/js/cookbookRunning.js +3506 -0
- package/dist/web/static/js/cookbookServe.js +2128 -0
- package/dist/web/static/js/document.js +9731 -0
- package/dist/web/static/js/documentLibrary.js +3376 -0
- package/dist/web/static/js/dragSort.js +265 -0
- package/dist/web/static/js/editor/ai-inpaint.js +374 -0
- package/dist/web/static/js/editor/ai-models.js +273 -0
- package/dist/web/static/js/editor/ai-rembg.js +230 -0
- package/dist/web/static/js/editor/ai-tool-runner.js +147 -0
- package/dist/web/static/js/editor/ai-tools-misc.js +216 -0
- package/dist/web/static/js/editor/build/controls.js +366 -0
- package/dist/web/static/js/editor/build/popups.js +112 -0
- package/dist/web/static/js/editor/build/right-panel.js +200 -0
- package/dist/web/static/js/editor/build/toolbar.js +73 -0
- package/dist/web/static/js/editor/build/topbar.js +131 -0
- package/dist/web/static/js/editor/build/transform-popup.js +109 -0
- package/dist/web/static/js/editor/canvas-coords.js +21 -0
- package/dist/web/static/js/editor/canvas-events.js +197 -0
- package/dist/web/static/js/editor/canvas-transforms.js +132 -0
- package/dist/web/static/js/editor/checkerboard.js +24 -0
- package/dist/web/static/js/editor/clipboard-and-drop.js +133 -0
- package/dist/web/static/js/editor/composite-helpers.js +83 -0
- package/dist/web/static/js/editor/filters/blur.js +118 -0
- package/dist/web/static/js/editor/filters/edge-feather.js +70 -0
- package/dist/web/static/js/editor/fx/adj-popup.js +677 -0
- package/dist/web/static/js/editor/fx/filter-string.js +38 -0
- package/dist/web/static/js/editor/fx/histogram.js +67 -0
- package/dist/web/static/js/editor/fx/pixel-pass.js +249 -0
- package/dist/web/static/js/editor/harmonize-masks.js +116 -0
- package/dist/web/static/js/editor/history-panel.js +176 -0
- package/dist/web/static/js/editor/keyboard-shortcuts.js +271 -0
- package/dist/web/static/js/editor/layer-helpers.js +131 -0
- package/dist/web/static/js/editor/layer-panel.js +600 -0
- package/dist/web/static/js/editor/mask-utils.js +91 -0
- package/dist/web/static/js/editor/shortcuts-popover.js +149 -0
- package/dist/web/static/js/editor/slider-ux.js +191 -0
- package/dist/web/static/js/editor/snap.js +107 -0
- package/dist/web/static/js/editor/state.js +257 -0
- package/dist/web/static/js/editor/stroke-pipeline.js +162 -0
- package/dist/web/static/js/editor/stroke-tool-sliders.js +64 -0
- package/dist/web/static/js/editor/tools/clone.js +81 -0
- package/dist/web/static/js/editor/tools/crop.js +137 -0
- package/dist/web/static/js/editor/tools/flood-fill.js +72 -0
- package/dist/web/static/js/editor/tools/lasso-mask.js +171 -0
- package/dist/web/static/js/editor/tools/lasso.js +65 -0
- package/dist/web/static/js/editor/tools/move.js +79 -0
- package/dist/web/static/js/editor/tools/stroke.js +123 -0
- package/dist/web/static/js/editor/tools/transform-drag.js +174 -0
- package/dist/web/static/js/editor/tools/transform-handles.js +271 -0
- package/dist/web/static/js/editor/tools/transform-session.js +381 -0
- package/dist/web/static/js/editor/tools/wand.js +46 -0
- package/dist/web/static/js/editor/wire-import.js +148 -0
- package/dist/web/static/js/editor/wire-inpaint-controls.js +164 -0
- package/dist/web/static/js/editor/wire-merge-buttons.js +103 -0
- package/dist/web/static/js/editor/wire-selection-controls.js +170 -0
- package/dist/web/static/js/editor/wire-topbar-menus.js +174 -0
- package/dist/web/static/js/editor/wire-topbar-overflow.js +49 -0
- package/dist/web/static/js/editor/wire-topbar.js +188 -0
- package/dist/web/static/js/emailInbox.js +1245 -0
- package/dist/web/static/js/emailLibrary/replyRecipients.js +27 -0
- package/dist/web/static/js/emailLibrary/signatureFold.js +339 -0
- package/dist/web/static/js/emailLibrary/state.js +34 -0
- package/dist/web/static/js/emailLibrary/utils.js +202 -0
- package/dist/web/static/js/emailLibrary.js +5217 -0
- package/dist/web/static/js/emojiPicker.js +311 -0
- package/dist/web/static/js/escMenuStack.js +102 -0
- package/dist/web/static/js/fileHandler.js +295 -0
- package/dist/web/static/js/gallery.js +2835 -0
- package/dist/web/static/js/galleryEditor.js +3798 -0
- package/dist/web/static/js/group.js +955 -0
- package/dist/web/static/js/init.js +405 -0
- package/dist/web/static/js/keyboard-shortcuts.js +292 -0
- package/dist/web/static/js/langIcons.js +187 -0
- package/dist/web/static/js/markdown/tableRow.js +19 -0
- package/dist/web/static/js/markdown.js +806 -0
- package/dist/web/static/js/memory.js +1418 -0
- package/dist/web/static/js/modalManager.js +1552 -0
- package/dist/web/static/js/modalSnap.js +782 -0
- package/dist/web/static/js/model/matchKey.js +19 -0
- package/dist/web/static/js/modelPicker.js +695 -0
- package/dist/web/static/js/modelSort.js +33 -0
- package/dist/web/static/js/models.js +642 -0
- package/dist/web/static/js/notes.js +5054 -0
- package/dist/web/static/js/package.json +1 -0
- package/dist/web/static/js/platform.js +47 -0
- package/dist/web/static/js/presets.js +1110 -0
- package/dist/web/static/js/providers.js +93 -0
- package/dist/web/static/js/rag.js +177 -0
- package/dist/web/static/js/research/jobs.js +335 -0
- package/dist/web/static/js/research/panel.js +1233 -0
- package/dist/web/static/js/researchSynapse.js +225 -0
- package/dist/web/static/js/search-chat.js +201 -0
- package/dist/web/static/js/search.js +52 -0
- package/dist/web/static/js/section-management.js +260 -0
- package/dist/web/static/js/sessions.js +3108 -0
- package/dist/web/static/js/settings.js +4991 -0
- package/dist/web/static/js/sidebar-layout.js +573 -0
- package/dist/web/static/js/signature.js +504 -0
- package/dist/web/static/js/skills.js +1908 -0
- package/dist/web/static/js/slashAutocomplete.js +267 -0
- package/dist/web/static/js/slashCommands.js +6099 -0
- package/dist/web/static/js/spinner.js +406 -0
- package/dist/web/static/js/storage.js +123 -0
- package/dist/web/static/js/tasks.js +2699 -0
- package/dist/web/static/js/theme.js +2086 -0
- package/dist/web/static/js/tileManager.js +386 -0
- package/dist/web/static/js/tourAutoplay.js +133 -0
- package/dist/web/static/js/tourHints.js +179 -0
- package/dist/web/static/js/tts-ai.js +521 -0
- package/dist/web/static/js/ui.js +1288 -0
- package/dist/web/static/js/util/ordinal.js +13 -0
- package/dist/web/static/js/voiceRecorder.js +283 -0
- package/dist/web/static/js/windowDrag.js +326 -0
- package/dist/web/static/js/windowResize.js +233 -0
- package/dist/web/static/landing.html +824 -0
- package/dist/web/static/lib/docx.umd.min.js +20116 -0
- package/dist/web/static/lib/highlight.min.js +1213 -0
- package/dist/web/static/lib/html2pdf.bundle.min.js +3 -0
- package/dist/web/static/lib/mammoth.browser.min.js +21 -0
- package/dist/web/static/lib/qrcode.min.js +8 -0
- package/dist/web/static/lib/xlsx.full.min.js +24 -0
- package/dist/web/static/login.html +582 -0
- package/dist/web/static/manifest.json +15 -0
- package/dist/web/static/style.css +35733 -0
- package/dist/web/static/sw.js +144 -0
- package/dist/workflows/engine.d.ts +162 -0
- package/dist/workflows/engine.d.ts.map +1 -0
- package/dist/workflows/engine.js +625 -0
- package/dist/workflows/engine.js.map +1 -0
- package/dist/workflows/index.d.ts +8 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/index.js +14 -0
- package/dist/workflows/index.js.map +1 -0
- 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"}
|