helixmind 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +73 -0
- package/README.md +323 -0
- package/dist/cli/agent/autonomous.d.ts +24 -0
- package/dist/cli/agent/autonomous.d.ts.map +1 -0
- package/dist/cli/agent/autonomous.js +194 -0
- package/dist/cli/agent/autonomous.js.map +1 -0
- package/dist/cli/agent/loop.d.ts +87 -0
- package/dist/cli/agent/loop.d.ts.map +1 -0
- package/dist/cli/agent/loop.js +492 -0
- package/dist/cli/agent/loop.js.map +1 -0
- package/dist/cli/agent/monitor/alerter.d.ts +29 -0
- package/dist/cli/agent/monitor/alerter.d.ts.map +1 -0
- package/dist/cli/agent/monitor/alerter.js +80 -0
- package/dist/cli/agent/monitor/alerter.js.map +1 -0
- package/dist/cli/agent/monitor/baseline.d.ts +14 -0
- package/dist/cli/agent/monitor/baseline.d.ts.map +1 -0
- package/dist/cli/agent/monitor/baseline.js +157 -0
- package/dist/cli/agent/monitor/baseline.js.map +1 -0
- package/dist/cli/agent/monitor/prompts.d.ts +9 -0
- package/dist/cli/agent/monitor/prompts.d.ts.map +1 -0
- package/dist/cli/agent/monitor/prompts.js +103 -0
- package/dist/cli/agent/monitor/prompts.js.map +1 -0
- package/dist/cli/agent/monitor/responder.d.ts +12 -0
- package/dist/cli/agent/monitor/responder.d.ts.map +1 -0
- package/dist/cli/agent/monitor/responder.js +59 -0
- package/dist/cli/agent/monitor/responder.js.map +1 -0
- package/dist/cli/agent/monitor/scanner.d.ts +18 -0
- package/dist/cli/agent/monitor/scanner.d.ts.map +1 -0
- package/dist/cli/agent/monitor/scanner.js +81 -0
- package/dist/cli/agent/monitor/scanner.js.map +1 -0
- package/dist/cli/agent/monitor/types.d.ts +119 -0
- package/dist/cli/agent/monitor/types.d.ts.map +1 -0
- package/dist/cli/agent/monitor/types.js +5 -0
- package/dist/cli/agent/monitor/types.js.map +1 -0
- package/dist/cli/agent/monitor/watcher.d.ts +4 -0
- package/dist/cli/agent/monitor/watcher.d.ts.map +1 -0
- package/dist/cli/agent/monitor/watcher.js +214 -0
- package/dist/cli/agent/monitor/watcher.js.map +1 -0
- package/dist/cli/agent/permissions.d.ts +65 -0
- package/dist/cli/agent/permissions.d.ts.map +1 -0
- package/dist/cli/agent/permissions.js +447 -0
- package/dist/cli/agent/permissions.js.map +1 -0
- package/dist/cli/agent/plan-engine.d.ts +72 -0
- package/dist/cli/agent/plan-engine.d.ts.map +1 -0
- package/dist/cli/agent/plan-engine.js +261 -0
- package/dist/cli/agent/plan-engine.js.map +1 -0
- package/dist/cli/agent/plan-executor.d.ts +37 -0
- package/dist/cli/agent/plan-executor.d.ts.map +1 -0
- package/dist/cli/agent/plan-executor.js +105 -0
- package/dist/cli/agent/plan-executor.js.map +1 -0
- package/dist/cli/agent/plan-types.d.ts +50 -0
- package/dist/cli/agent/plan-types.d.ts.map +1 -0
- package/dist/cli/agent/plan-types.js +58 -0
- package/dist/cli/agent/plan-types.js.map +1 -0
- package/dist/cli/agent/sandbox.d.ts +28 -0
- package/dist/cli/agent/sandbox.d.ts.map +1 -0
- package/dist/cli/agent/sandbox.js +298 -0
- package/dist/cli/agent/sandbox.js.map +1 -0
- package/dist/cli/agent/swarm.d.ts +75 -0
- package/dist/cli/agent/swarm.d.ts.map +1 -0
- package/dist/cli/agent/swarm.js +272 -0
- package/dist/cli/agent/swarm.js.map +1 -0
- package/dist/cli/agent/tools/browser-click.d.ts +2 -0
- package/dist/cli/agent/tools/browser-click.d.ts.map +1 -0
- package/dist/cli/agent/tools/browser-click.js +35 -0
- package/dist/cli/agent/tools/browser-click.js.map +1 -0
- package/dist/cli/agent/tools/browser-close.d.ts +2 -0
- package/dist/cli/agent/tools/browser-close.d.ts.map +1 -0
- package/dist/cli/agent/tools/browser-close.js +27 -0
- package/dist/cli/agent/tools/browser-close.js.map +1 -0
- package/dist/cli/agent/tools/browser-navigate.d.ts +2 -0
- package/dist/cli/agent/tools/browser-navigate.d.ts.map +1 -0
- package/dist/cli/agent/tools/browser-navigate.js +27 -0
- package/dist/cli/agent/tools/browser-navigate.js.map +1 -0
- package/dist/cli/agent/tools/browser-open.d.ts +2 -0
- package/dist/cli/agent/tools/browser-open.d.ts.map +1 -0
- package/dist/cli/agent/tools/browser-open.js +38 -0
- package/dist/cli/agent/tools/browser-open.js.map +1 -0
- package/dist/cli/agent/tools/browser-screenshot.d.ts +2 -0
- package/dist/cli/agent/tools/browser-screenshot.d.ts.map +1 -0
- package/dist/cli/agent/tools/browser-screenshot.js +68 -0
- package/dist/cli/agent/tools/browser-screenshot.js.map +1 -0
- package/dist/cli/agent/tools/browser-type.d.ts +2 -0
- package/dist/cli/agent/tools/browser-type.d.ts.map +1 -0
- package/dist/cli/agent/tools/browser-type.js +33 -0
- package/dist/cli/agent/tools/browser-type.js.map +1 -0
- package/dist/cli/agent/tools/bug-list.d.ts +2 -0
- package/dist/cli/agent/tools/bug-list.d.ts.map +1 -0
- package/dist/cli/agent/tools/bug-list.js +82 -0
- package/dist/cli/agent/tools/bug-list.js.map +1 -0
- package/dist/cli/agent/tools/bug-report.d.ts +2 -0
- package/dist/cli/agent/tools/bug-report.d.ts.map +1 -0
- package/dist/cli/agent/tools/bug-report.js +130 -0
- package/dist/cli/agent/tools/bug-report.js.map +1 -0
- package/dist/cli/agent/tools/edit-file.d.ts +2 -0
- package/dist/cli/agent/tools/edit-file.d.ts.map +1 -0
- package/dist/cli/agent/tools/edit-file.js +61 -0
- package/dist/cli/agent/tools/edit-file.js.map +1 -0
- package/dist/cli/agent/tools/find.d.ts +2 -0
- package/dist/cli/agent/tools/find.d.ts.map +1 -0
- package/dist/cli/agent/tools/find.js +35 -0
- package/dist/cli/agent/tools/find.js.map +1 -0
- package/dist/cli/agent/tools/git-commit.d.ts +2 -0
- package/dist/cli/agent/tools/git-commit.d.ts.map +1 -0
- package/dist/cli/agent/tools/git-commit.js +57 -0
- package/dist/cli/agent/tools/git-commit.js.map +1 -0
- package/dist/cli/agent/tools/git-diff.d.ts +2 -0
- package/dist/cli/agent/tools/git-diff.d.ts.map +1 -0
- package/dist/cli/agent/tools/git-diff.js +45 -0
- package/dist/cli/agent/tools/git-diff.js.map +1 -0
- package/dist/cli/agent/tools/git-log.d.ts +2 -0
- package/dist/cli/agent/tools/git-log.d.ts.map +1 -0
- package/dist/cli/agent/tools/git-log.js +41 -0
- package/dist/cli/agent/tools/git-log.js.map +1 -0
- package/dist/cli/agent/tools/git-status.d.ts +2 -0
- package/dist/cli/agent/tools/git-status.d.ts.map +1 -0
- package/dist/cli/agent/tools/git-status.js +52 -0
- package/dist/cli/agent/tools/git-status.js.map +1 -0
- package/dist/cli/agent/tools/list-dir.d.ts +2 -0
- package/dist/cli/agent/tools/list-dir.d.ts.map +1 -0
- package/dist/cli/agent/tools/list-dir.js +73 -0
- package/dist/cli/agent/tools/list-dir.js.map +1 -0
- package/dist/cli/agent/tools/read-file.d.ts +2 -0
- package/dist/cli/agent/tools/read-file.d.ts.map +1 -0
- package/dist/cli/agent/tools/read-file.js +45 -0
- package/dist/cli/agent/tools/read-file.js.map +1 -0
- package/dist/cli/agent/tools/registry.d.ts +34 -0
- package/dist/cli/agent/tools/registry.d.ts.map +1 -0
- package/dist/cli/agent/tools/registry.js +53 -0
- package/dist/cli/agent/tools/registry.js.map +1 -0
- package/dist/cli/agent/tools/run-command.d.ts +2 -0
- package/dist/cli/agent/tools/run-command.d.ts.map +1 -0
- package/dist/cli/agent/tools/run-command.js +112 -0
- package/dist/cli/agent/tools/run-command.js.map +1 -0
- package/dist/cli/agent/tools/search.d.ts +2 -0
- package/dist/cli/agent/tools/search.d.ts.map +1 -0
- package/dist/cli/agent/tools/search.js +104 -0
- package/dist/cli/agent/tools/search.js.map +1 -0
- package/dist/cli/agent/tools/spiral-query.d.ts +2 -0
- package/dist/cli/agent/tools/spiral-query.d.ts.map +1 -0
- package/dist/cli/agent/tools/spiral-query.js +52 -0
- package/dist/cli/agent/tools/spiral-query.js.map +1 -0
- package/dist/cli/agent/tools/spiral-store.d.ts +2 -0
- package/dist/cli/agent/tools/spiral-store.d.ts.map +1 -0
- package/dist/cli/agent/tools/spiral-store.js +37 -0
- package/dist/cli/agent/tools/spiral-store.js.map +1 -0
- package/dist/cli/agent/tools/web-research.d.ts +2 -0
- package/dist/cli/agent/tools/web-research.d.ts.map +1 -0
- package/dist/cli/agent/tools/web-research.js +96 -0
- package/dist/cli/agent/tools/web-research.js.map +1 -0
- package/dist/cli/agent/tools/write-file.d.ts +2 -0
- package/dist/cli/agent/tools/write-file.d.ts.map +1 -0
- package/dist/cli/agent/tools/write-file.js +86 -0
- package/dist/cli/agent/tools/write-file.js.map +1 -0
- package/dist/cli/agent/undo.d.ts +30 -0
- package/dist/cli/agent/undo.d.ts.map +1 -0
- package/dist/cli/agent/undo.js +48 -0
- package/dist/cli/agent/undo.js.map +1 -0
- package/dist/cli/auth/callback-server.d.ts +15 -0
- package/dist/cli/auth/callback-server.d.ts.map +1 -0
- package/dist/cli/auth/callback-server.js +169 -0
- package/dist/cli/auth/callback-server.js.map +1 -0
- package/dist/cli/auth/feature-gate.d.ts +47 -0
- package/dist/cli/auth/feature-gate.d.ts.map +1 -0
- package/dist/cli/auth/feature-gate.js +171 -0
- package/dist/cli/auth/feature-gate.js.map +1 -0
- package/dist/cli/auth/guard.d.ts +11 -0
- package/dist/cli/auth/guard.d.ts.map +1 -0
- package/dist/cli/auth/guard.js +94 -0
- package/dist/cli/auth/guard.js.map +1 -0
- package/dist/cli/auth/login.d.ts +22 -0
- package/dist/cli/auth/login.d.ts.map +1 -0
- package/dist/cli/auth/login.js +287 -0
- package/dist/cli/auth/login.js.map +1 -0
- package/dist/cli/auth/logout.d.ts +6 -0
- package/dist/cli/auth/logout.d.ts.map +1 -0
- package/dist/cli/auth/logout.js +36 -0
- package/dist/cli/auth/logout.js.map +1 -0
- package/dist/cli/bench/dataset.d.ts +13 -0
- package/dist/cli/bench/dataset.d.ts.map +1 -0
- package/dist/cli/bench/dataset.js +97 -0
- package/dist/cli/bench/dataset.js.map +1 -0
- package/dist/cli/bench/harness.d.ts +7 -0
- package/dist/cli/bench/harness.d.ts.map +1 -0
- package/dist/cli/bench/harness.js +135 -0
- package/dist/cli/bench/harness.js.map +1 -0
- package/dist/cli/bench/metrics.d.ts +15 -0
- package/dist/cli/bench/metrics.d.ts.map +1 -0
- package/dist/cli/bench/metrics.js +98 -0
- package/dist/cli/bench/metrics.js.map +1 -0
- package/dist/cli/bench/output.d.ts +42 -0
- package/dist/cli/bench/output.d.ts.map +1 -0
- package/dist/cli/bench/output.js +140 -0
- package/dist/cli/bench/output.js.map +1 -0
- package/dist/cli/bench/prompt.d.ts +13 -0
- package/dist/cli/bench/prompt.d.ts.map +1 -0
- package/dist/cli/bench/prompt.js +106 -0
- package/dist/cli/bench/prompt.js.map +1 -0
- package/dist/cli/bench/runner.d.ts +14 -0
- package/dist/cli/bench/runner.d.ts.map +1 -0
- package/dist/cli/bench/runner.js +334 -0
- package/dist/cli/bench/runner.js.map +1 -0
- package/dist/cli/bench/types.d.ts +109 -0
- package/dist/cli/bench/types.d.ts.map +1 -0
- package/dist/cli/bench/types.js +2 -0
- package/dist/cli/bench/types.js.map +1 -0
- package/dist/cli/bench/ui.d.ts +12 -0
- package/dist/cli/bench/ui.d.ts.map +1 -0
- package/dist/cli/bench/ui.js +126 -0
- package/dist/cli/bench/ui.js.map +1 -0
- package/dist/cli/brain/archive.d.ts +33 -0
- package/dist/cli/brain/archive.d.ts.map +1 -0
- package/dist/cli/brain/archive.js +166 -0
- package/dist/cli/brain/archive.js.map +1 -0
- package/dist/cli/brain/control-protocol.d.ts +913 -0
- package/dist/cli/brain/control-protocol.d.ts.map +1 -0
- package/dist/cli/brain/control-protocol.js +87 -0
- package/dist/cli/brain/control-protocol.js.map +1 -0
- package/dist/cli/brain/exporter.d.ts +34 -0
- package/dist/cli/brain/exporter.d.ts.map +1 -0
- package/dist/cli/brain/exporter.js +37 -0
- package/dist/cli/brain/exporter.js.map +1 -0
- package/dist/cli/brain/generator.d.ts +157 -0
- package/dist/cli/brain/generator.d.ts.map +1 -0
- package/dist/cli/brain/generator.js +633 -0
- package/dist/cli/brain/generator.js.map +1 -0
- package/dist/cli/brain/instance-manager.d.ts +42 -0
- package/dist/cli/brain/instance-manager.d.ts.map +1 -0
- package/dist/cli/brain/instance-manager.js +152 -0
- package/dist/cli/brain/instance-manager.js.map +1 -0
- package/dist/cli/brain/relay-client.d.ts +8 -0
- package/dist/cli/brain/relay-client.d.ts.map +1 -0
- package/dist/cli/brain/relay-client.js +505 -0
- package/dist/cli/brain/relay-client.js.map +1 -0
- package/dist/cli/brain/server.d.ts +40 -0
- package/dist/cli/brain/server.d.ts.map +1 -0
- package/dist/cli/brain/server.js +873 -0
- package/dist/cli/brain/server.js.map +1 -0
- package/dist/cli/brain/stdout-capture.d.ts +19 -0
- package/dist/cli/brain/stdout-capture.d.ts.map +1 -0
- package/dist/cli/brain/stdout-capture.js +45 -0
- package/dist/cli/brain/stdout-capture.js.map +1 -0
- package/dist/cli/brain/sync.d.ts +53 -0
- package/dist/cli/brain/sync.d.ts.map +1 -0
- package/dist/cli/brain/sync.js +113 -0
- package/dist/cli/brain/sync.js.map +1 -0
- package/dist/cli/brain/template.d.ts +3 -0
- package/dist/cli/brain/template.d.ts.map +1 -0
- package/dist/cli/brain/template.js +2099 -0
- package/dist/cli/brain/template.js.map +1 -0
- package/dist/cli/brain/web-chat-handler.d.ts +26 -0
- package/dist/cli/brain/web-chat-handler.d.ts.map +1 -0
- package/dist/cli/brain/web-chat-handler.js +134 -0
- package/dist/cli/brain/web-chat-handler.js.map +1 -0
- package/dist/cli/browser/chrome-finder.d.ts +12 -0
- package/dist/cli/browser/chrome-finder.d.ts.map +1 -0
- package/dist/cli/browser/chrome-finder.js +74 -0
- package/dist/cli/browser/chrome-finder.js.map +1 -0
- package/dist/cli/browser/controller.d.ts +51 -0
- package/dist/cli/browser/controller.d.ts.map +1 -0
- package/dist/cli/browser/controller.js +152 -0
- package/dist/cli/browser/controller.js.map +1 -0
- package/dist/cli/browser/vision.d.ts +38 -0
- package/dist/cli/browser/vision.d.ts.map +1 -0
- package/dist/cli/browser/vision.js +123 -0
- package/dist/cli/browser/vision.js.map +1 -0
- package/dist/cli/bugs/detector.d.ts +14 -0
- package/dist/cli/bugs/detector.d.ts.map +1 -0
- package/dist/cli/bugs/detector.js +108 -0
- package/dist/cli/bugs/detector.js.map +1 -0
- package/dist/cli/bugs/journal.d.ts +39 -0
- package/dist/cli/bugs/journal.d.ts.map +1 -0
- package/dist/cli/bugs/journal.js +195 -0
- package/dist/cli/bugs/journal.js.map +1 -0
- package/dist/cli/bugs/types.d.ts +27 -0
- package/dist/cli/bugs/types.d.ts.map +1 -0
- package/dist/cli/bugs/types.js +2 -0
- package/dist/cli/bugs/types.js.map +1 -0
- package/dist/cli/checkpoints/browser.d.ts +26 -0
- package/dist/cli/checkpoints/browser.d.ts.map +1 -0
- package/dist/cli/checkpoints/browser.js +272 -0
- package/dist/cli/checkpoints/browser.js.map +1 -0
- package/dist/cli/checkpoints/keybinding.d.ts +22 -0
- package/dist/cli/checkpoints/keybinding.d.ts.map +1 -0
- package/dist/cli/checkpoints/keybinding.js +44 -0
- package/dist/cli/checkpoints/keybinding.js.map +1 -0
- package/dist/cli/checkpoints/revert.d.ts +37 -0
- package/dist/cli/checkpoints/revert.d.ts.map +1 -0
- package/dist/cli/checkpoints/revert.js +144 -0
- package/dist/cli/checkpoints/revert.js.map +1 -0
- package/dist/cli/checkpoints/store.d.ts +48 -0
- package/dist/cli/checkpoints/store.d.ts.map +1 -0
- package/dist/cli/checkpoints/store.js +196 -0
- package/dist/cli/checkpoints/store.js.map +1 -0
- package/dist/cli/commands/archive.d.ts +7 -0
- package/dist/cli/commands/archive.d.ts.map +1 -0
- package/dist/cli/commands/archive.js +66 -0
- package/dist/cli/commands/archive.js.map +1 -0
- package/dist/cli/commands/auth.d.ts +10 -0
- package/dist/cli/commands/auth.d.ts.map +1 -0
- package/dist/cli/commands/auth.js +44 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/bench.d.ts +25 -0
- package/dist/cli/commands/bench.d.ts.map +1 -0
- package/dist/cli/commands/bench.js +114 -0
- package/dist/cli/commands/bench.js.map +1 -0
- package/dist/cli/commands/chat.d.ts +11 -0
- package/dist/cli/commands/chat.d.ts.map +1 -0
- package/dist/cli/commands/chat.js +5363 -0
- package/dist/cli/commands/chat.js.map +1 -0
- package/dist/cli/commands/config.d.ts +4 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +43 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/feed.d.ts +6 -0
- package/dist/cli/commands/feed.d.ts.map +1 -0
- package/dist/cli/commands/feed.js +95 -0
- package/dist/cli/commands/feed.js.map +1 -0
- package/dist/cli/commands/helix-menu.d.ts +4 -0
- package/dist/cli/commands/helix-menu.d.ts.map +1 -0
- package/dist/cli/commands/helix-menu.js +400 -0
- package/dist/cli/commands/helix-menu.js.map +1 -0
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +38 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +20 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +310 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/spiral.d.ts +4 -0
- package/dist/cli/commands/spiral.d.ts.map +1 -0
- package/dist/cli/commands/spiral.js +81 -0
- package/dist/cli/commands/spiral.js.map +1 -0
- package/dist/cli/config/store.d.ts +80 -0
- package/dist/cli/config/store.d.ts.map +1 -0
- package/dist/cli/config/store.js +247 -0
- package/dist/cli/config/store.js.map +1 -0
- package/dist/cli/config/trust.d.ts +21 -0
- package/dist/cli/config/trust.d.ts.map +1 -0
- package/dist/cli/config/trust.js +106 -0
- package/dist/cli/config/trust.js.map +1 -0
- package/dist/cli/context/assembler.d.ts +9 -0
- package/dist/cli/context/assembler.d.ts.map +1 -0
- package/dist/cli/context/assembler.js +217 -0
- package/dist/cli/context/assembler.js.map +1 -0
- package/dist/cli/context/project.d.ts +13 -0
- package/dist/cli/context/project.d.ts.map +1 -0
- package/dist/cli/context/project.js +126 -0
- package/dist/cli/context/project.js.map +1 -0
- package/dist/cli/context/session-buffer.d.ts +69 -0
- package/dist/cli/context/session-buffer.d.ts.map +1 -0
- package/dist/cli/context/session-buffer.js +362 -0
- package/dist/cli/context/session-buffer.js.map +1 -0
- package/dist/cli/context/trimmer.d.ts +26 -0
- package/dist/cli/context/trimmer.d.ts.map +1 -0
- package/dist/cli/context/trimmer.js +137 -0
- package/dist/cli/context/trimmer.js.map +1 -0
- package/dist/cli/core/index.d.ts +15 -0
- package/dist/cli/core/index.d.ts.map +1 -0
- package/dist/cli/core/index.js +12 -0
- package/dist/cli/core/index.js.map +1 -0
- package/dist/cli/core/input.d.ts +208 -0
- package/dist/cli/core/input.d.ts.map +1 -0
- package/dist/cli/core/input.js +807 -0
- package/dist/cli/core/input.js.map +1 -0
- package/dist/cli/core/screen.d.ts +211 -0
- package/dist/cli/core/screen.d.ts.map +1 -0
- package/dist/cli/core/screen.js +826 -0
- package/dist/cli/core/screen.js.map +1 -0
- package/dist/cli/core/terminal.d.ts +88 -0
- package/dist/cli/core/terminal.d.ts.map +1 -0
- package/dist/cli/core/terminal.js +200 -0
- package/dist/cli/core/terminal.js.map +1 -0
- package/dist/cli/feed/analyzer.d.ts +17 -0
- package/dist/cli/feed/analyzer.d.ts.map +1 -0
- package/dist/cli/feed/analyzer.js +220 -0
- package/dist/cli/feed/analyzer.js.map +1 -0
- package/dist/cli/feed/intent.d.ts +8 -0
- package/dist/cli/feed/intent.d.ts.map +1 -0
- package/dist/cli/feed/intent.js +70 -0
- package/dist/cli/feed/intent.js.map +1 -0
- package/dist/cli/feed/parser.d.ts +23 -0
- package/dist/cli/feed/parser.d.ts.map +1 -0
- package/dist/cli/feed/parser.js +166 -0
- package/dist/cli/feed/parser.js.map +1 -0
- package/dist/cli/feed/pipeline.d.ts +33 -0
- package/dist/cli/feed/pipeline.d.ts.map +1 -0
- package/dist/cli/feed/pipeline.js +250 -0
- package/dist/cli/feed/pipeline.js.map +1 -0
- package/dist/cli/feed/reader.d.ts +10 -0
- package/dist/cli/feed/reader.d.ts.map +1 -0
- package/dist/cli/feed/reader.js +61 -0
- package/dist/cli/feed/reader.js.map +1 -0
- package/dist/cli/feed/scanner.d.ts +10 -0
- package/dist/cli/feed/scanner.d.ts.map +1 -0
- package/dist/cli/feed/scanner.js +124 -0
- package/dist/cli/feed/scanner.js.map +1 -0
- package/dist/cli/feed/watcher.d.ts +14 -0
- package/dist/cli/feed/watcher.d.ts.map +1 -0
- package/dist/cli/feed/watcher.js +76 -0
- package/dist/cli/feed/watcher.js.map +1 -0
- package/dist/cli/helixmind.cmd +2 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +297 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/jarvis/autonomy.d.ts +55 -0
- package/dist/cli/jarvis/autonomy.d.ts.map +1 -0
- package/dist/cli/jarvis/autonomy.js +176 -0
- package/dist/cli/jarvis/autonomy.js.map +1 -0
- package/dist/cli/jarvis/code-reviewer.d.ts +35 -0
- package/dist/cli/jarvis/code-reviewer.d.ts.map +1 -0
- package/dist/cli/jarvis/code-reviewer.js +93 -0
- package/dist/cli/jarvis/code-reviewer.js.map +1 -0
- package/dist/cli/jarvis/core-ethics.d.ts +35 -0
- package/dist/cli/jarvis/core-ethics.d.ts.map +1 -0
- package/dist/cli/jarvis/core-ethics.js +246 -0
- package/dist/cli/jarvis/core-ethics.js.map +1 -0
- package/dist/cli/jarvis/daemon.d.ts +24 -0
- package/dist/cli/jarvis/daemon.d.ts.map +1 -0
- package/dist/cli/jarvis/daemon.js +230 -0
- package/dist/cli/jarvis/daemon.js.map +1 -0
- package/dist/cli/jarvis/dependency-guardian.d.ts +40 -0
- package/dist/cli/jarvis/dependency-guardian.d.ts.map +1 -0
- package/dist/cli/jarvis/dependency-guardian.js +148 -0
- package/dist/cli/jarvis/dependency-guardian.js.map +1 -0
- package/dist/cli/jarvis/git-intelligence.d.ts +36 -0
- package/dist/cli/jarvis/git-intelligence.d.ts.map +1 -0
- package/dist/cli/jarvis/git-intelligence.js +222 -0
- package/dist/cli/jarvis/git-intelligence.js.map +1 -0
- package/dist/cli/jarvis/identity.d.ts +57 -0
- package/dist/cli/jarvis/identity.d.ts.map +1 -0
- package/dist/cli/jarvis/identity.js +416 -0
- package/dist/cli/jarvis/identity.js.map +1 -0
- package/dist/cli/jarvis/index.d.ts +9 -0
- package/dist/cli/jarvis/index.d.ts.map +1 -0
- package/dist/cli/jarvis/index.js +7 -0
- package/dist/cli/jarvis/index.js.map +1 -0
- package/dist/cli/jarvis/instance-lock.d.ts +15 -0
- package/dist/cli/jarvis/instance-lock.d.ts.map +1 -0
- package/dist/cli/jarvis/instance-lock.js +95 -0
- package/dist/cli/jarvis/instance-lock.js.map +1 -0
- package/dist/cli/jarvis/learning.d.ts +73 -0
- package/dist/cli/jarvis/learning.d.ts.map +1 -0
- package/dist/cli/jarvis/learning.js +284 -0
- package/dist/cli/jarvis/learning.js.map +1 -0
- package/dist/cli/jarvis/multi-project.d.ts +39 -0
- package/dist/cli/jarvis/multi-project.d.ts.map +1 -0
- package/dist/cli/jarvis/multi-project.js +152 -0
- package/dist/cli/jarvis/multi-project.js.map +1 -0
- package/dist/cli/jarvis/notifications.d.ts +39 -0
- package/dist/cli/jarvis/notifications.d.ts.map +1 -0
- package/dist/cli/jarvis/notifications.js +216 -0
- package/dist/cli/jarvis/notifications.js.map +1 -0
- package/dist/cli/jarvis/onboarding.d.ts +19 -0
- package/dist/cli/jarvis/onboarding.d.ts.map +1 -0
- package/dist/cli/jarvis/onboarding.js +116 -0
- package/dist/cli/jarvis/onboarding.js.map +1 -0
- package/dist/cli/jarvis/orchestrator.d.ts +46 -0
- package/dist/cli/jarvis/orchestrator.d.ts.map +1 -0
- package/dist/cli/jarvis/orchestrator.js +253 -0
- package/dist/cli/jarvis/orchestrator.js.map +1 -0
- package/dist/cli/jarvis/parallel.d.ts +63 -0
- package/dist/cli/jarvis/parallel.d.ts.map +1 -0
- package/dist/cli/jarvis/parallel.js +172 -0
- package/dist/cli/jarvis/parallel.js.map +1 -0
- package/dist/cli/jarvis/performance-profiler.d.ts +31 -0
- package/dist/cli/jarvis/performance-profiler.d.ts.map +1 -0
- package/dist/cli/jarvis/performance-profiler.js +229 -0
- package/dist/cli/jarvis/performance-profiler.js.map +1 -0
- package/dist/cli/jarvis/proposals.d.ts +80 -0
- package/dist/cli/jarvis/proposals.d.ts.map +1 -0
- package/dist/cli/jarvis/proposals.js +286 -0
- package/dist/cli/jarvis/proposals.js.map +1 -0
- package/dist/cli/jarvis/queue.d.ts +41 -0
- package/dist/cli/jarvis/queue.d.ts.map +1 -0
- package/dist/cli/jarvis/queue.js +245 -0
- package/dist/cli/jarvis/queue.js.map +1 -0
- package/dist/cli/jarvis/runtime-context.d.ts +34 -0
- package/dist/cli/jarvis/runtime-context.d.ts.map +1 -0
- package/dist/cli/jarvis/runtime-context.js +113 -0
- package/dist/cli/jarvis/runtime-context.js.map +1 -0
- package/dist/cli/jarvis/scheduler.d.ts +21 -0
- package/dist/cli/jarvis/scheduler.d.ts.map +1 -0
- package/dist/cli/jarvis/scheduler.js +182 -0
- package/dist/cli/jarvis/scheduler.js.map +1 -0
- package/dist/cli/jarvis/sentiment.d.ts +29 -0
- package/dist/cli/jarvis/sentiment.d.ts.map +1 -0
- package/dist/cli/jarvis/sentiment.js +221 -0
- package/dist/cli/jarvis/sentiment.js.map +1 -0
- package/dist/cli/jarvis/skill-scoring.d.ts +63 -0
- package/dist/cli/jarvis/skill-scoring.d.ts.map +1 -0
- package/dist/cli/jarvis/skill-scoring.js +226 -0
- package/dist/cli/jarvis/skill-scoring.js.map +1 -0
- package/dist/cli/jarvis/skills.d.ts +87 -0
- package/dist/cli/jarvis/skills.d.ts.map +1 -0
- package/dist/cli/jarvis/skills.js +367 -0
- package/dist/cli/jarvis/skills.js.map +1 -0
- package/dist/cli/jarvis/telegram-bot.d.ts +77 -0
- package/dist/cli/jarvis/telegram-bot.d.ts.map +1 -0
- package/dist/cli/jarvis/telegram-bot.js +251 -0
- package/dist/cli/jarvis/telegram-bot.js.map +1 -0
- package/dist/cli/jarvis/telemetry.d.ts +32 -0
- package/dist/cli/jarvis/telemetry.d.ts.map +1 -0
- package/dist/cli/jarvis/telemetry.js +213 -0
- package/dist/cli/jarvis/telemetry.js.map +1 -0
- package/dist/cli/jarvis/test-sentinel.d.ts +36 -0
- package/dist/cli/jarvis/test-sentinel.d.ts.map +1 -0
- package/dist/cli/jarvis/test-sentinel.js +178 -0
- package/dist/cli/jarvis/test-sentinel.js.map +1 -0
- package/dist/cli/jarvis/thinking-loop.d.ts +15 -0
- package/dist/cli/jarvis/thinking-loop.d.ts.map +1 -0
- package/dist/cli/jarvis/thinking-loop.js +437 -0
- package/dist/cli/jarvis/thinking-loop.js.map +1 -0
- package/dist/cli/jarvis/triggers.d.ts +23 -0
- package/dist/cli/jarvis/triggers.d.ts.map +1 -0
- package/dist/cli/jarvis/triggers.js +157 -0
- package/dist/cli/jarvis/triggers.js.map +1 -0
- package/dist/cli/jarvis/types.d.ts +582 -0
- package/dist/cli/jarvis/types.d.ts.map +1 -0
- package/dist/cli/jarvis/types.js +18 -0
- package/dist/cli/jarvis/types.js.map +1 -0
- package/dist/cli/jarvis/voice-bridge.d.ts +68 -0
- package/dist/cli/jarvis/voice-bridge.d.ts.map +1 -0
- package/dist/cli/jarvis/voice-bridge.js +254 -0
- package/dist/cli/jarvis/voice-bridge.js.map +1 -0
- package/dist/cli/jarvis/world-model.d.ts +43 -0
- package/dist/cli/jarvis/world-model.d.ts.map +1 -0
- package/dist/cli/jarvis/world-model.js +209 -0
- package/dist/cli/jarvis/world-model.js.map +1 -0
- package/dist/cli/jarvis-proxy/client.d.ts +18 -0
- package/dist/cli/jarvis-proxy/client.d.ts.map +1 -0
- package/dist/cli/jarvis-proxy/client.js +64 -0
- package/dist/cli/jarvis-proxy/client.js.map +1 -0
- package/dist/cli/jarvis-proxy/executor.d.ts +13 -0
- package/dist/cli/jarvis-proxy/executor.d.ts.map +1 -0
- package/dist/cli/jarvis-proxy/executor.js +32 -0
- package/dist/cli/jarvis-proxy/executor.js.map +1 -0
- package/dist/cli/jarvis-proxy/types.d.ts +25 -0
- package/dist/cli/jarvis-proxy/types.d.ts.map +1 -0
- package/dist/cli/jarvis-proxy/types.js +7 -0
- package/dist/cli/jarvis-proxy/types.js.map +1 -0
- package/dist/cli/license/checker.d.ts +11 -0
- package/dist/cli/license/checker.d.ts.map +1 -0
- package/dist/cli/license/checker.js +28 -0
- package/dist/cli/license/checker.js.map +1 -0
- package/dist/cli/license/validator.d.ts +13 -0
- package/dist/cli/license/validator.d.ts.map +1 -0
- package/dist/cli/license/validator.js +72 -0
- package/dist/cli/license/validator.js.map +1 -0
- package/dist/cli/providers/anthropic.d.ts +11 -0
- package/dist/cli/providers/anthropic.d.ts.map +1 -0
- package/dist/cli/providers/anthropic.js +120 -0
- package/dist/cli/providers/anthropic.js.map +1 -0
- package/dist/cli/providers/model-limits.d.ts +12 -0
- package/dist/cli/providers/model-limits.d.ts.map +1 -0
- package/dist/cli/providers/model-limits.js +63 -0
- package/dist/cli/providers/model-limits.js.map +1 -0
- package/dist/cli/providers/ollama.d.ts +37 -0
- package/dist/cli/providers/ollama.d.ts.map +1 -0
- package/dist/cli/providers/ollama.js +151 -0
- package/dist/cli/providers/ollama.js.map +1 -0
- package/dist/cli/providers/openai.d.ts +14 -0
- package/dist/cli/providers/openai.d.ts.map +1 -0
- package/dist/cli/providers/openai.js +319 -0
- package/dist/cli/providers/openai.js.map +1 -0
- package/dist/cli/providers/rate-limiter.d.ts +51 -0
- package/dist/cli/providers/rate-limiter.d.ts.map +1 -0
- package/dist/cli/providers/rate-limiter.js +164 -0
- package/dist/cli/providers/rate-limiter.js.map +1 -0
- package/dist/cli/providers/registry.d.ts +16 -0
- package/dist/cli/providers/registry.d.ts.map +1 -0
- package/dist/cli/providers/registry.js +99 -0
- package/dist/cli/providers/registry.js.map +1 -0
- package/dist/cli/providers/types.d.ts +72 -0
- package/dist/cli/providers/types.d.ts.map +1 -0
- package/dist/cli/providers/types.js +2 -0
- package/dist/cli/providers/types.js.map +1 -0
- package/dist/cli/sessions/manager.d.ts +69 -0
- package/dist/cli/sessions/manager.d.ts.map +1 -0
- package/dist/cli/sessions/manager.js +201 -0
- package/dist/cli/sessions/manager.js.map +1 -0
- package/dist/cli/sessions/session.d.ts +58 -0
- package/dist/cli/sessions/session.d.ts.map +1 -0
- package/dist/cli/sessions/session.js +74 -0
- package/dist/cli/sessions/session.js.map +1 -0
- package/dist/cli/sessions/tab-view.d.ts +18 -0
- package/dist/cli/sessions/tab-view.d.ts.map +1 -0
- package/dist/cli/sessions/tab-view.js +137 -0
- package/dist/cli/sessions/tab-view.js.map +1 -0
- package/dist/cli/ui/activity.d.ts +81 -0
- package/dist/cli/ui/activity.d.ts.map +1 -0
- package/dist/cli/ui/activity.js +286 -0
- package/dist/cli/ui/activity.js.map +1 -0
- package/dist/cli/ui/agent-display.d.ts +24 -0
- package/dist/cli/ui/agent-display.d.ts.map +1 -0
- package/dist/cli/ui/agent-display.js +36 -0
- package/dist/cli/ui/agent-display.js.map +1 -0
- package/dist/cli/ui/bottom-chrome.d.ts +121 -0
- package/dist/cli/ui/bottom-chrome.d.ts.map +1 -0
- package/dist/cli/ui/bottom-chrome.js +428 -0
- package/dist/cli/ui/bottom-chrome.js.map +1 -0
- package/dist/cli/ui/chat-view.d.ts +10 -0
- package/dist/cli/ui/chat-view.d.ts.map +1 -0
- package/dist/cli/ui/chat-view.js +237 -0
- package/dist/cli/ui/chat-view.js.map +1 -0
- package/dist/cli/ui/command-suggest.d.ts +22 -0
- package/dist/cli/ui/command-suggest.d.ts.map +1 -0
- package/dist/cli/ui/command-suggest.js +118 -0
- package/dist/cli/ui/command-suggest.js.map +1 -0
- package/dist/cli/ui/input-window.d.ts +145 -0
- package/dist/cli/ui/input-window.d.ts.map +1 -0
- package/dist/cli/ui/input-window.js +415 -0
- package/dist/cli/ui/input-window.js.map +1 -0
- package/dist/cli/ui/logo.d.ts +3 -0
- package/dist/cli/ui/logo.d.ts.map +1 -0
- package/dist/cli/ui/logo.js +25 -0
- package/dist/cli/ui/logo.js.map +1 -0
- package/dist/cli/ui/plan-display.d.ts +35 -0
- package/dist/cli/ui/plan-display.d.ts.map +1 -0
- package/dist/cli/ui/plan-display.js +381 -0
- package/dist/cli/ui/plan-display.js.map +1 -0
- package/dist/cli/ui/progress.d.ts +22 -0
- package/dist/cli/ui/progress.d.ts.map +1 -0
- package/dist/cli/ui/progress.js +126 -0
- package/dist/cli/ui/progress.js.map +1 -0
- package/dist/cli/ui/prompt-history.d.ts +37 -0
- package/dist/cli/ui/prompt-history.d.ts.map +1 -0
- package/dist/cli/ui/prompt-history.js +156 -0
- package/dist/cli/ui/prompt-history.js.map +1 -0
- package/dist/cli/ui/select-menu.d.ts +45 -0
- package/dist/cli/ui/select-menu.d.ts.map +1 -0
- package/dist/cli/ui/select-menu.js +330 -0
- package/dist/cli/ui/select-menu.js.map +1 -0
- package/dist/cli/ui/spinner.d.ts +3 -0
- package/dist/cli/ui/spinner.d.ts.map +1 -0
- package/dist/cli/ui/spinner.js +14 -0
- package/dist/cli/ui/spinner.js.map +1 -0
- package/dist/cli/ui/statusbar.d.ts +72 -0
- package/dist/cli/ui/statusbar.d.ts.map +1 -0
- package/dist/cli/ui/statusbar.js +376 -0
- package/dist/cli/ui/statusbar.js.map +1 -0
- package/dist/cli/ui/suggestion-panel.d.ts +52 -0
- package/dist/cli/ui/suggestion-panel.d.ts.map +1 -0
- package/dist/cli/ui/suggestion-panel.js +159 -0
- package/dist/cli/ui/suggestion-panel.js.map +1 -0
- package/dist/cli/ui/theme.d.ts +20 -0
- package/dist/cli/ui/theme.d.ts.map +1 -0
- package/dist/cli/ui/theme.js +25 -0
- package/dist/cli/ui/theme.js.map +1 -0
- package/dist/cli/ui/tool-output.d.ts +31 -0
- package/dist/cli/ui/tool-output.d.ts.map +1 -0
- package/dist/cli/ui/tool-output.js +204 -0
- package/dist/cli/ui/tool-output.js.map +1 -0
- package/dist/cli/validation/autofix.d.ts +32 -0
- package/dist/cli/validation/autofix.d.ts.map +1 -0
- package/dist/cli/validation/autofix.js +148 -0
- package/dist/cli/validation/autofix.js.map +1 -0
- package/dist/cli/validation/classifier.d.ts +17 -0
- package/dist/cli/validation/classifier.d.ts.map +1 -0
- package/dist/cli/validation/classifier.js +174 -0
- package/dist/cli/validation/classifier.js.map +1 -0
- package/dist/cli/validation/criteria.d.ts +22 -0
- package/dist/cli/validation/criteria.d.ts.map +1 -0
- package/dist/cli/validation/criteria.js +188 -0
- package/dist/cli/validation/criteria.js.map +1 -0
- package/dist/cli/validation/dynamic-checks.d.ts +16 -0
- package/dist/cli/validation/dynamic-checks.d.ts.map +1 -0
- package/dist/cli/validation/dynamic-checks.js +109 -0
- package/dist/cli/validation/dynamic-checks.js.map +1 -0
- package/dist/cli/validation/model.d.ts +16 -0
- package/dist/cli/validation/model.d.ts.map +1 -0
- package/dist/cli/validation/model.js +59 -0
- package/dist/cli/validation/model.js.map +1 -0
- package/dist/cli/validation/reporter.d.ts +18 -0
- package/dist/cli/validation/reporter.d.ts.map +1 -0
- package/dist/cli/validation/reporter.js +209 -0
- package/dist/cli/validation/reporter.js.map +1 -0
- package/dist/cli/validation/spiral-checks.d.ts +12 -0
- package/dist/cli/validation/spiral-checks.d.ts.map +1 -0
- package/dist/cli/validation/spiral-checks.js +167 -0
- package/dist/cli/validation/spiral-checks.js.map +1 -0
- package/dist/cli/validation/static-checks.d.ts +26 -0
- package/dist/cli/validation/static-checks.d.ts.map +1 -0
- package/dist/cli/validation/static-checks.js +648 -0
- package/dist/cli/validation/static-checks.js.map +1 -0
- package/dist/cli/validation/stats.d.ts +29 -0
- package/dist/cli/validation/stats.d.ts.map +1 -0
- package/dist/cli/validation/stats.js +137 -0
- package/dist/cli/validation/stats.js.map +1 -0
- package/dist/cli/version.d.ts +2 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +5 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/cli/voice/clone-manager.d.ts +19 -0
- package/dist/cli/voice/clone-manager.d.ts.map +1 -0
- package/dist/cli/voice/clone-manager.js +55 -0
- package/dist/cli/voice/clone-manager.js.map +1 -0
- package/dist/cli/voice/engine.d.ts +43 -0
- package/dist/cli/voice/engine.d.ts.map +1 -0
- package/dist/cli/voice/engine.js +109 -0
- package/dist/cli/voice/engine.js.map +1 -0
- package/dist/cli/voice/whisper-stt.d.ts +28 -0
- package/dist/cli/voice/whisper-stt.d.ts.map +1 -0
- package/dist/cli/voice/whisper-stt.js +78 -0
- package/dist/cli/voice/whisper-stt.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +8 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +44 -0
- package/dist/server.js.map +1 -0
- package/dist/shared/protocol-types.d.ts +283 -0
- package/dist/shared/protocol-types.d.ts.map +1 -0
- package/dist/shared/protocol-types.js +9 -0
- package/dist/shared/protocol-types.js.map +1 -0
- package/dist/spiral/cloud/content-extractor.d.ts +27 -0
- package/dist/spiral/cloud/content-extractor.d.ts.map +1 -0
- package/dist/spiral/cloud/content-extractor.js +175 -0
- package/dist/spiral/cloud/content-extractor.js.map +1 -0
- package/dist/spiral/cloud/search-provider.d.ts +22 -0
- package/dist/spiral/cloud/search-provider.d.ts.map +1 -0
- package/dist/spiral/cloud/search-provider.js +241 -0
- package/dist/spiral/cloud/search-provider.js.map +1 -0
- package/dist/spiral/cloud/topic-detector.d.ts +25 -0
- package/dist/spiral/cloud/topic-detector.d.ts.map +1 -0
- package/dist/spiral/cloud/topic-detector.js +196 -0
- package/dist/spiral/cloud/topic-detector.js.map +1 -0
- package/dist/spiral/cloud/web-enricher.d.ts +58 -0
- package/dist/spiral/cloud/web-enricher.d.ts.map +1 -0
- package/dist/spiral/cloud/web-enricher.js +176 -0
- package/dist/spiral/cloud/web-enricher.js.map +1 -0
- package/dist/spiral/compression.d.ts +54 -0
- package/dist/spiral/compression.d.ts.map +1 -0
- package/dist/spiral/compression.js +175 -0
- package/dist/spiral/compression.js.map +1 -0
- package/dist/spiral/embeddings.d.ts +30 -0
- package/dist/spiral/embeddings.d.ts.map +1 -0
- package/dist/spiral/embeddings.js +99 -0
- package/dist/spiral/embeddings.js.map +1 -0
- package/dist/spiral/engine.d.ts +98 -0
- package/dist/spiral/engine.d.ts.map +1 -0
- package/dist/spiral/engine.js +330 -0
- package/dist/spiral/engine.js.map +1 -0
- package/dist/spiral/injection.d.ts +29 -0
- package/dist/spiral/injection.d.ts.map +1 -0
- package/dist/spiral/injection.js +176 -0
- package/dist/spiral/injection.js.map +1 -0
- package/dist/spiral/relevance.d.ts +37 -0
- package/dist/spiral/relevance.d.ts.map +1 -0
- package/dist/spiral/relevance.js +75 -0
- package/dist/spiral/relevance.js.map +1 -0
- package/dist/storage/database.d.ts +11 -0
- package/dist/storage/database.d.ts.map +1 -0
- package/dist/storage/database.js +169 -0
- package/dist/storage/database.js.map +1 -0
- package/dist/storage/edges.d.ts +30 -0
- package/dist/storage/edges.d.ts.map +1 -0
- package/dist/storage/edges.js +98 -0
- package/dist/storage/edges.js.map +1 -0
- package/dist/storage/nodes.d.ts +60 -0
- package/dist/storage/nodes.d.ts.map +1 -0
- package/dist/storage/nodes.js +161 -0
- package/dist/storage/nodes.js.map +1 -0
- package/dist/storage/vectors.d.ts +25 -0
- package/dist/storage/vectors.d.ts.map +1 -0
- package/dist/storage/vectors.js +110 -0
- package/dist/storage/vectors.js.map +1 -0
- package/dist/tools/spiral-compact.d.ts +14 -0
- package/dist/tools/spiral-compact.d.ts.map +1 -0
- package/dist/tools/spiral-compact.js +14 -0
- package/dist/tools/spiral-compact.js.map +1 -0
- package/dist/tools/spiral-query.d.ts +18 -0
- package/dist/tools/spiral-query.d.ts.map +1 -0
- package/dist/tools/spiral-query.js +16 -0
- package/dist/tools/spiral-query.js.map +1 -0
- package/dist/tools/spiral-relate.d.ts +21 -0
- package/dist/tools/spiral-relate.d.ts.map +1 -0
- package/dist/tools/spiral-relate.js +21 -0
- package/dist/tools/spiral-relate.js.map +1 -0
- package/dist/tools/spiral-status.d.ts +8 -0
- package/dist/tools/spiral-status.d.ts.map +1 -0
- package/dist/tools/spiral-status.js +10 -0
- package/dist/tools/spiral-status.js.map +1 -0
- package/dist/tools/spiral-store.d.ts +41 -0
- package/dist/tools/spiral-store.d.ts.map +1 -0
- package/dist/tools/spiral-store.js +22 -0
- package/dist/tools/spiral-store.js.map +1 -0
- package/dist/types.d.ts +94 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/config.d.ts +14 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +44 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/logger.d.ts +10 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +40 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/tokens.d.ts +21 -0
- package/dist/utils/tokens.d.ts.map +1 -0
- package/dist/utils/tokens.js +33 -0
- package/dist/utils/tokens.js.map +1 -0
- package/package.json +93 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
GNU AFFERO GENERAL PUBLIC LICENSE
|
|
2
|
+
Version 3, 19 November 2007
|
|
3
|
+
|
|
4
|
+
Copyright (C) 2025-2026 HelixMind (helix-mind.ai)
|
|
5
|
+
|
|
6
|
+
This program is free software: you can redistribute it and/or modify
|
|
7
|
+
it under the terms of the GNU Affero General Public License as published
|
|
8
|
+
by the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
(at your option) any later version.
|
|
10
|
+
|
|
11
|
+
This program is distributed in the hope that it will be useful,
|
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
GNU Affero General Public License for more details.
|
|
15
|
+
|
|
16
|
+
You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
|
|
19
|
+
For the full license text, see:
|
|
20
|
+
https://www.gnu.org/licenses/agpl-3.0.txt
|
|
21
|
+
|
|
22
|
+
===========================================================================
|
|
23
|
+
ADDITIONAL TERMS AND COMMERCIAL LICENSING
|
|
24
|
+
===========================================================================
|
|
25
|
+
|
|
26
|
+
1. OPEN SOURCE USE (THIS REPOSITORY)
|
|
27
|
+
|
|
28
|
+
This repository contains the open source CLI agent of HelixMind,
|
|
29
|
+
licensed under AGPL-3.0. You are free to:
|
|
30
|
+
|
|
31
|
+
- Use it for personal, educational, and internal purposes
|
|
32
|
+
- Modify and distribute it under the same AGPL-3.0 terms
|
|
33
|
+
- Build and deploy your own tools on top of it
|
|
34
|
+
|
|
35
|
+
Under AGPL-3.0, if you modify this software and provide it as a
|
|
36
|
+
network service (SaaS), you MUST make your complete source code
|
|
37
|
+
available to all users of that service under the same license.
|
|
38
|
+
|
|
39
|
+
2. ATTRIBUTION
|
|
40
|
+
|
|
41
|
+
Any use, distribution, or derivative work must retain the original
|
|
42
|
+
copyright notice and attribution to HelixMind (helix-mind.ai).
|
|
43
|
+
This includes but is not limited to:
|
|
44
|
+
|
|
45
|
+
- The copyright notice in the LICENSE file
|
|
46
|
+
- Attribution in any user-facing documentation or about page
|
|
47
|
+
- Credit in any published derivative works
|
|
48
|
+
|
|
49
|
+
3. COMMERCIAL LICENSE
|
|
50
|
+
|
|
51
|
+
A separate commercial license is available for organizations that:
|
|
52
|
+
|
|
53
|
+
- Want to use HelixMind without AGPL-3.0 obligations
|
|
54
|
+
(e.g., in proprietary/closed-source products or SaaS offerings)
|
|
55
|
+
- Want access to premium features not included in this repository,
|
|
56
|
+
such as: Jarvis Task Daemon, Validation Matrix, Security Monitor,
|
|
57
|
+
3D Brain Management, Autonomous Mode, and Web Dashboard
|
|
58
|
+
- Need enterprise support, SLAs, or custom integrations
|
|
59
|
+
|
|
60
|
+
The commercial license removes the AGPL requirement to open-source
|
|
61
|
+
your modifications and includes all premium features.
|
|
62
|
+
|
|
63
|
+
For commercial licensing inquiries, visit:
|
|
64
|
+
https://helix-mind.ai or contact: license@helix-mind.ai
|
|
65
|
+
|
|
66
|
+
4. TRADEMARKS
|
|
67
|
+
|
|
68
|
+
The names "HelixMind", "Spiral Memory", the HelixMind logo, and
|
|
69
|
+
associated branding are trademarks of HelixMind. This license does
|
|
70
|
+
not grant permission to use these trademarks except as required for
|
|
71
|
+
reasonable attribution as described above.
|
|
72
|
+
|
|
73
|
+
===========================================================================
|
package/README.md
ADDED
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# HelixMind
|
|
4
|
+
|
|
5
|
+
**Open Source AI Coding Agent with Persistent Spiral Memory**
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/helixmind)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
[](https://nodejs.org)
|
|
10
|
+
[](https://www.typescriptlang.org/)
|
|
11
|
+
[](https://github.com/DancingTedDanson011/HelixMind)
|
|
12
|
+
|
|
13
|
+
*An autonomous coding agent that remembers context across sessions, learns from every interaction, and works with any AI provider.*
|
|
14
|
+
|
|
15
|
+
[Installation](#installation) -- [Open Source vs Connected](#open-source-vs-connected) -- [Features](#features) -- [Quick Start](#quick-start) -- [Documentation](#documentation)
|
|
16
|
+
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Installation
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Run directly (no install needed)
|
|
25
|
+
npx helixmind
|
|
26
|
+
|
|
27
|
+
# Or install globally
|
|
28
|
+
npm install -g helixmind
|
|
29
|
+
helixmind
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Requirements
|
|
33
|
+
|
|
34
|
+
- Node.js 18+
|
|
35
|
+
- An API key for at least one provider: Anthropic, OpenAI, or Ollama (local, no key needed)
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Open Source vs Connected
|
|
40
|
+
|
|
41
|
+
When you start HelixMind for the first time, you choose how to use it:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
+----------------------------------------------------------------------------+
|
|
45
|
+
| Welcome to HelixMind |
|
|
46
|
+
| |
|
|
47
|
+
| Login - free, unlock everything Open Source - no account needed |
|
|
48
|
+
| |
|
|
49
|
+
| [v] Jarvis Task Daemon [v] AI Agent + 22 Tools |
|
|
50
|
+
| [v] Validation Matrix [v] Spiral Memory |
|
|
51
|
+
| [v] Security Monitor [v] Anthropic/OpenAI/Ollama |
|
|
52
|
+
| [v] Autonomous Mode [x] No Jarvis / No Validation |
|
|
53
|
+
| [v] 3D Brain Management [x] No Monitor / No Security |
|
|
54
|
+
| [v] 3 Brains + Live WS [x] No Brain Management |
|
|
55
|
+
| |
|
|
56
|
+
| No credit card - Free forever - works offline |
|
|
57
|
+
+----------------------------------------------------------------------------+
|
|
58
|
+
-> [1] Login / [2] Open Source:
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
| | Open Source | Connected (Free Account) |
|
|
62
|
+
|---|---|---|
|
|
63
|
+
| AI Agent with 22 Tools | Yes | Yes |
|
|
64
|
+
| Spiral Memory (5 levels) | Yes | Yes |
|
|
65
|
+
| Anthropic / OpenAI / Ollama | Yes | Yes |
|
|
66
|
+
| Checkpoints and Undo | Yes | Yes |
|
|
67
|
+
| Bug Journal | Yes | Yes |
|
|
68
|
+
| Browser Automation | Yes | Yes |
|
|
69
|
+
| Web Knowledge Enrichment | Yes | Yes |
|
|
70
|
+
| Swarm (parallel workers) | Yes | Yes |
|
|
71
|
+
| MCP Server | Yes | Yes |
|
|
72
|
+
| Jarvis Task Daemon | - | Yes |
|
|
73
|
+
| Validation Matrix | - | Yes |
|
|
74
|
+
| Security Monitor | - | Yes |
|
|
75
|
+
| 3D Brain Management | - | Yes |
|
|
76
|
+
| Autonomous Mode | - | Yes |
|
|
77
|
+
| Web Dashboard Remote Control | - | Yes |
|
|
78
|
+
|
|
79
|
+
**Both modes are fully functional coding agents.** The open source mode includes everything you need for day-to-day AI-assisted development. Connected mode adds advanced orchestration and monitoring features via a free account at [helix-mind.ai](https://helix-mind.ai).
|
|
80
|
+
|
|
81
|
+
You can switch anytime by running `helixmind login`.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Features
|
|
86
|
+
|
|
87
|
+
### 22 Agent Tools
|
|
88
|
+
|
|
89
|
+
HelixMind operates as an autonomous coding agent with built-in tools:
|
|
90
|
+
|
|
91
|
+
| Tool | Description |
|
|
92
|
+
|:-----|:------------|
|
|
93
|
+
| `read_file` / `write_file` / `edit_file` | Read, create, and modify files |
|
|
94
|
+
| `list_dir` / `search_files` / `find_files` | Navigate and search the codebase |
|
|
95
|
+
| `run_command` | Execute shell commands (sandboxed) |
|
|
96
|
+
| `git_status` / `git_commit` / `git_diff` / `git_log` | Full Git integration |
|
|
97
|
+
| `spiral_store` / `spiral_query` / `spiral_status` | Interact with spiral memory |
|
|
98
|
+
| `web_research` | Search the internet and extract knowledge |
|
|
99
|
+
| `bug_report` / `bug_list` | Track and manage bugs |
|
|
100
|
+
| `browser_navigate` / `browser_click` / `browser_type` / `browser_screenshot` / `browser_read` / `browser_eval` | Control a headless browser |
|
|
101
|
+
|
|
102
|
+
All tools go through a 3-tier permission system: **auto** (safe operations), **ask** (confirm first), **dangerous** (requires explicit approval). Use `--yolo` to auto-approve everything.
|
|
103
|
+
|
|
104
|
+
### Spiral Memory
|
|
105
|
+
|
|
106
|
+
A 5-level hierarchical memory that persists across sessions:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
Level 1 - Focus Most relevant, recent context
|
|
110
|
+
Level 2 - Active Related files, dependencies, web knowledge
|
|
111
|
+
Level 3 - Reference Decisions, patterns, code structure
|
|
112
|
+
Level 4 - Archive Compressed summaries, old sessions
|
|
113
|
+
Level 5 - Deep Long-term knowledge, project history
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Context flows between levels based on relevance, recency, and usage. Web knowledge enrichment automatically fetches and stores relevant information from the internet as you work.
|
|
117
|
+
|
|
118
|
+
### Swarm Mode
|
|
119
|
+
|
|
120
|
+
For complex multi-task requests, HelixMind automatically decomposes the work and spawns parallel worker sessions:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Auto-detected when you send multi-part requests
|
|
124
|
+
> "Create a user model, add CRUD endpoints, and write tests for each"
|
|
125
|
+
|
|
126
|
+
# Or force it manually
|
|
127
|
+
/swarm refactor auth module, update all tests, fix the CI pipeline
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Each worker gets its own session with file-level locking to prevent conflicts. Results are merged and summarized when all workers complete.
|
|
131
|
+
|
|
132
|
+
### Checkpoints
|
|
133
|
+
|
|
134
|
+
Every tool call and chat message creates an automatic checkpoint. Double-tap `ESC` to open the checkpoint browser and revert to any previous state (chat history, code changes, or both).
|
|
135
|
+
|
|
136
|
+
### Bug Journal
|
|
137
|
+
|
|
138
|
+
Bugs are automatically detected from your messages (in English and German) and tracked in `.helixmind/bugs.json`. Each bug gets evidence, status, and persists across sessions.
|
|
139
|
+
|
|
140
|
+
### Browser Automation
|
|
141
|
+
|
|
142
|
+
Headless Chrome integration via Puppeteer for web testing, scraping, and visual analysis:
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
/browser https://example.com
|
|
146
|
+
> "Click the login button and fill in the form"
|
|
147
|
+
> "Take a screenshot and analyze the layout"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Multi-Provider Support
|
|
151
|
+
|
|
152
|
+
| Provider | Models | Setup |
|
|
153
|
+
|:---------|:-------|:------|
|
|
154
|
+
| Anthropic | Claude Sonnet, Opus, Haiku | `ANTHROPIC_API_KEY=sk-ant-...` |
|
|
155
|
+
| OpenAI | GPT-4o, GPT-4, o1, o3 | `OPENAI_API_KEY=sk-...` |
|
|
156
|
+
| Ollama | Any local model | No key needed (auto-detected) |
|
|
157
|
+
|
|
158
|
+
Switch providers at runtime with `/model`.
|
|
159
|
+
|
|
160
|
+
### MCP Server
|
|
161
|
+
|
|
162
|
+
HelixMind includes a Model Context Protocol server for integration with other tools:
|
|
163
|
+
|
|
164
|
+
- Claude Code
|
|
165
|
+
- Cursor
|
|
166
|
+
- VS Code (Copilot)
|
|
167
|
+
- Windsurf
|
|
168
|
+
- JetBrains AI
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Quick Start
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
# Start interactive chat
|
|
176
|
+
helixmind
|
|
177
|
+
|
|
178
|
+
# Initialize in a project (creates .helixmind/)
|
|
179
|
+
helixmind init
|
|
180
|
+
|
|
181
|
+
# Send a single message
|
|
182
|
+
helixmind chat -m "fix all lint errors in src/"
|
|
183
|
+
|
|
184
|
+
# YOLO mode - auto-approve everything
|
|
185
|
+
helixmind chat --yolo
|
|
186
|
+
|
|
187
|
+
# Skip permission prompts
|
|
188
|
+
helixmind chat -s
|
|
189
|
+
|
|
190
|
+
# Feed files into spiral memory
|
|
191
|
+
helixmind feed src/ --deep
|
|
192
|
+
|
|
193
|
+
# Watch files and update spiral live
|
|
194
|
+
helixmind feed src/ --watch
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## CLI Commands
|
|
200
|
+
|
|
201
|
+
| Command | Description |
|
|
202
|
+
|:--------|:------------|
|
|
203
|
+
| `helixmind` | Start interactive chat (default) |
|
|
204
|
+
| `helixmind init` | Initialize HelixMind in project |
|
|
205
|
+
| `helixmind chat -m "..."` | Send a single message |
|
|
206
|
+
| `helixmind chat --yolo` | Auto-approve all operations |
|
|
207
|
+
| `helixmind chat -s` | Skip permission prompts |
|
|
208
|
+
| `helixmind feed [paths...]` | Feed files into spiral |
|
|
209
|
+
| `helixmind feed --deep` | Deep analysis with intent detection |
|
|
210
|
+
| `helixmind feed --watch` | Watch and auto-update spiral |
|
|
211
|
+
| `helixmind spiral status` | Show spiral metrics |
|
|
212
|
+
| `helixmind spiral search <query>` | Search spiral context |
|
|
213
|
+
| `helixmind spiral compact` | Trigger spiral compaction |
|
|
214
|
+
| `helixmind config set <k> <v>` | Set config value |
|
|
215
|
+
| `helixmind config list` | Show all config |
|
|
216
|
+
| `helixmind export [dir]` | Export spiral to .helixmind.zip |
|
|
217
|
+
| `helixmind import <zip>` | Import spiral from archive |
|
|
218
|
+
| `helixmind login` | Authenticate (switch to Connected mode) |
|
|
219
|
+
| `helixmind logout` | Remove stored auth |
|
|
220
|
+
|
|
221
|
+
### Slash Commands (inside chat)
|
|
222
|
+
|
|
223
|
+
| Command | Description |
|
|
224
|
+
|:--------|:------------|
|
|
225
|
+
| `/help` | Show all commands |
|
|
226
|
+
| `/model` | Switch AI provider/model |
|
|
227
|
+
| `/spiral` | Show spiral status |
|
|
228
|
+
| `/brain` | Open 3D brain visualization |
|
|
229
|
+
| `/context` | Show assembled context |
|
|
230
|
+
| `/tokens` | Token usage stats |
|
|
231
|
+
| `/undo` | Undo last file change |
|
|
232
|
+
| `/diff` | Show current file changes |
|
|
233
|
+
| `/git` | Git operations |
|
|
234
|
+
| `/sessions` | Manage background sessions |
|
|
235
|
+
| `/browser` | Start browser session |
|
|
236
|
+
| `/bugs` | View bug journal |
|
|
237
|
+
| `/swarm <msg>` | Force swarm execution |
|
|
238
|
+
| `/auto` | Start autonomous mode |
|
|
239
|
+
| `/security` | Run security audit |
|
|
240
|
+
| `/yolo` | Toggle YOLO mode |
|
|
241
|
+
| `/exit` | Quit |
|
|
242
|
+
|
|
243
|
+
### Keyboard Shortcuts
|
|
244
|
+
|
|
245
|
+
| Key | Action |
|
|
246
|
+
|:----|:-------|
|
|
247
|
+
| `ESC ESC` | Emergency stop / checkpoint browser |
|
|
248
|
+
| `Ctrl+C` | Exit |
|
|
249
|
+
| `Ctrl+L` | Clear screen |
|
|
250
|
+
| `Ctrl+PageUp/Down` | Switch session tabs |
|
|
251
|
+
| `Tab` | Autocomplete command |
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## Configuration
|
|
256
|
+
|
|
257
|
+
### Environment Variables
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
ANTHROPIC_API_KEY=sk-ant-... # For Claude
|
|
261
|
+
OPENAI_API_KEY=sk-... # For OpenAI/GPT
|
|
262
|
+
# Ollama: no key needed (auto-detected on localhost:11434)
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Project Config
|
|
266
|
+
|
|
267
|
+
Create `.helixmind/config.json` in your project root:
|
|
268
|
+
|
|
269
|
+
```json
|
|
270
|
+
{
|
|
271
|
+
"provider": "anthropic",
|
|
272
|
+
"model": "claude-sonnet-4-20250514"
|
|
273
|
+
}
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
Or use the CLI:
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
helixmind config set provider anthropic
|
|
280
|
+
helixmind config set model claude-sonnet-4-20250514
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## Tech Stack
|
|
286
|
+
|
|
287
|
+
| Component | Technology |
|
|
288
|
+
|:----------|:-----------|
|
|
289
|
+
| Language | TypeScript (strict, ESM) |
|
|
290
|
+
| AI Providers | Anthropic SDK, OpenAI SDK, Ollama |
|
|
291
|
+
| Database | better-sqlite3 + sqlite-vec (vector search) |
|
|
292
|
+
| Embeddings | HuggingFace Transformers (MiniLM-L6-v2) |
|
|
293
|
+
| Browser | Puppeteer (headless Chrome) |
|
|
294
|
+
| Testing | Vitest (979 tests) |
|
|
295
|
+
| MCP | Model Context Protocol SDK |
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## Development
|
|
300
|
+
|
|
301
|
+
```bash
|
|
302
|
+
git clone https://github.com/DancingTedDanson011/HelixMind.git
|
|
303
|
+
cd HelixMind
|
|
304
|
+
|
|
305
|
+
npm install
|
|
306
|
+
npm run build
|
|
307
|
+
npm run dev # Dev mode with watch
|
|
308
|
+
npm test # Run 979 tests
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## License
|
|
314
|
+
|
|
315
|
+
[AGPL-3.0](LICENSE) -- Free for open-source use. Commercial licenses available.
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
<div align="center">
|
|
320
|
+
|
|
321
|
+
**[helix-mind.ai](https://helix-mind.ai)**
|
|
322
|
+
|
|
323
|
+
</div>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const SECURITY_PROMPT = "Perform a comprehensive SECURITY AUDIT of this codebase.\n\nCheck every file systematically for:\n1. **Command Injection** \u2014 user input passed to shell commands without sanitization\n2. **Path Traversal** \u2014 user-controlled paths that could escape the project root\n3. **XSS / Injection** \u2014 unsanitized output in HTML/templates\n4. **Hardcoded Secrets** \u2014 API keys, passwords, tokens in source code\n5. **Insecure Dependencies** \u2014 check package.json for known vulnerable packages\n6. **Missing Input Validation** \u2014 unvalidated user input at boundaries\n7. **Unsafe File Operations** \u2014 writing to arbitrary paths, following symlinks\n8. **Information Disclosure** \u2014 verbose error messages, debug endpoints\n9. **Authentication Issues** \u2014 missing auth checks, weak token generation\n10. **Race Conditions** \u2014 TOCTOU, concurrent access without locks\n\nFor EACH finding, report:\n- **Severity**: CRITICAL / HIGH / MEDIUM / LOW\n- **File**: exact file path and line number\n- **Issue**: what's wrong and why it's dangerous\n- **Fix**: specific code change needed\n\nAfter the report, automatically fix all CRITICAL and HIGH severity issues.";
|
|
2
|
+
export interface AutonomousCallbacks {
|
|
3
|
+
sendMessage: (prompt: string) => Promise<string>;
|
|
4
|
+
isAborted: () => boolean;
|
|
5
|
+
onRoundStart: (round: number) => void;
|
|
6
|
+
onRoundEnd: (round: number, summary: string) => void;
|
|
7
|
+
updateStatus: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function runAutonomousLoop(callbacks: AutonomousCallbacks, initialGoal?: string): Promise<number>;
|
|
10
|
+
export declare const MONITOR_MODES: readonly [{
|
|
11
|
+
readonly key: "passive";
|
|
12
|
+
readonly label: "🔍 Passive";
|
|
13
|
+
readonly description: "Read-only scan — alerts only, no changes";
|
|
14
|
+
}, {
|
|
15
|
+
readonly key: "defensive";
|
|
16
|
+
readonly label: "🛡️ Defensive";
|
|
17
|
+
readonly description: "Auto-block threats — IP blocks, port closes, secret rotation";
|
|
18
|
+
}, {
|
|
19
|
+
readonly key: "active";
|
|
20
|
+
readonly label: "⚔️ Active";
|
|
21
|
+
readonly description: "Full control — honeypots, counter-intel, approval required";
|
|
22
|
+
}];
|
|
23
|
+
export declare const MONITOR_WARNINGS: Record<string, string[]>;
|
|
24
|
+
//# sourceMappingURL=autonomous.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autonomous.d.ts","sourceRoot":"","sources":["../../../src/cli/agent/autonomous.ts"],"names":[],"mappings":"AAqCA,eAAO,MAAM,eAAe,sqCAoB+C,CAAC;AAE5E,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AA+BD,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,mBAAmB,EAC9B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAiFjB;AAMD,eAAO,MAAM,aAAa;;;;;;;;;;;;EAIhB,CAAC;AAEX,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAarD,CAAC"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Autonomous work mode — HelixMind continuously scans and fixes issues.
|
|
3
|
+
* Runs until nothing more to optimize or /stop is called.
|
|
4
|
+
*/
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
import { renderInfo } from '../ui/chat-view.js';
|
|
7
|
+
const SCAN_PROMPT = `You are in AUTONOMOUS MODE. Scan this repository thoroughly for the most impactful issue to fix.
|
|
8
|
+
|
|
9
|
+
Priority order:
|
|
10
|
+
1. CRITICAL bugs or logic errors that cause crashes or wrong behavior
|
|
11
|
+
2. Security vulnerabilities (injection, path traversal, hardcoded secrets)
|
|
12
|
+
3. Missing error handling that could cause unhandled exceptions
|
|
13
|
+
4. Broken or missing tests for important functionality
|
|
14
|
+
5. Performance bottlenecks
|
|
15
|
+
6. Dead code, unused imports, inconsistent patterns
|
|
16
|
+
7. Code quality improvements
|
|
17
|
+
|
|
18
|
+
RULES:
|
|
19
|
+
- Pick ONE issue — the most impactful one
|
|
20
|
+
- Fix it completely (code + test if applicable)
|
|
21
|
+
- End with a single-line summary starting with "DONE:" describing what you fixed
|
|
22
|
+
- If you genuinely cannot find ANY issue worth fixing, respond with exactly: ALL_TASKS_COMPLETE`;
|
|
23
|
+
function continuePrompt(completed) {
|
|
24
|
+
return `You are in AUTONOMOUS MODE (round ${completed.length + 1}).
|
|
25
|
+
|
|
26
|
+
Already completed:
|
|
27
|
+
${completed.map((t, i) => ` ${i + 1}. ${t}`).join('\n')}
|
|
28
|
+
|
|
29
|
+
Continue scanning for MORE issues in DIFFERENT areas of the codebase.
|
|
30
|
+
Pick the next most impactful issue and fix it completely.
|
|
31
|
+
|
|
32
|
+
End with a single-line summary starting with "DONE:" describing what you fixed.
|
|
33
|
+
If you genuinely cannot find anything more to improve: ALL_TASKS_COMPLETE`;
|
|
34
|
+
}
|
|
35
|
+
export const SECURITY_PROMPT = `Perform a comprehensive SECURITY AUDIT of this codebase.
|
|
36
|
+
|
|
37
|
+
Check every file systematically for:
|
|
38
|
+
1. **Command Injection** — user input passed to shell commands without sanitization
|
|
39
|
+
2. **Path Traversal** — user-controlled paths that could escape the project root
|
|
40
|
+
3. **XSS / Injection** — unsanitized output in HTML/templates
|
|
41
|
+
4. **Hardcoded Secrets** — API keys, passwords, tokens in source code
|
|
42
|
+
5. **Insecure Dependencies** — check package.json for known vulnerable packages
|
|
43
|
+
6. **Missing Input Validation** — unvalidated user input at boundaries
|
|
44
|
+
7. **Unsafe File Operations** — writing to arbitrary paths, following symlinks
|
|
45
|
+
8. **Information Disclosure** — verbose error messages, debug endpoints
|
|
46
|
+
9. **Authentication Issues** — missing auth checks, weak token generation
|
|
47
|
+
10. **Race Conditions** — TOCTOU, concurrent access without locks
|
|
48
|
+
|
|
49
|
+
For EACH finding, report:
|
|
50
|
+
- **Severity**: CRITICAL / HIGH / MEDIUM / LOW
|
|
51
|
+
- **File**: exact file path and line number
|
|
52
|
+
- **Issue**: what's wrong and why it's dangerous
|
|
53
|
+
- **Fix**: specific code change needed
|
|
54
|
+
|
|
55
|
+
After the report, automatically fix all CRITICAL and HIGH severity issues.`;
|
|
56
|
+
function goalPrompt(goal) {
|
|
57
|
+
return `You are in AUTONOMOUS MODE with a specific goal.
|
|
58
|
+
|
|
59
|
+
GOAL: ${goal}
|
|
60
|
+
|
|
61
|
+
Work on this goal step by step. Break it down into subtasks if needed.
|
|
62
|
+
Fix, implement, or change whatever is necessary to achieve the goal.
|
|
63
|
+
|
|
64
|
+
RULES:
|
|
65
|
+
- Focus exclusively on the given goal
|
|
66
|
+
- Work methodically — one subtask at a time
|
|
67
|
+
- End each round with a single-line summary starting with "DONE:" describing what you accomplished
|
|
68
|
+
- When the goal is fully achieved, respond with exactly: ALL_TASKS_COMPLETE`;
|
|
69
|
+
}
|
|
70
|
+
function continueGoalPrompt(goal, completed) {
|
|
71
|
+
return `You are in AUTONOMOUS MODE (round ${completed.length + 1}).
|
|
72
|
+
|
|
73
|
+
GOAL: ${goal}
|
|
74
|
+
|
|
75
|
+
Already completed:
|
|
76
|
+
${completed.map((t, i) => ` ${i + 1}. ${t}`).join('\n')}
|
|
77
|
+
|
|
78
|
+
Continue working towards the goal. Pick the next subtask and complete it.
|
|
79
|
+
|
|
80
|
+
End with a single-line summary starting with "DONE:" describing what you accomplished.
|
|
81
|
+
When the goal is fully achieved: ALL_TASKS_COMPLETE`;
|
|
82
|
+
}
|
|
83
|
+
export async function runAutonomousLoop(callbacks, initialGoal) {
|
|
84
|
+
const completed = [];
|
|
85
|
+
let round = 0;
|
|
86
|
+
let goal = initialGoal;
|
|
87
|
+
const d = chalk.dim;
|
|
88
|
+
const c = chalk.hex('#00d4ff');
|
|
89
|
+
process.stdout.write('\n');
|
|
90
|
+
process.stdout.write(d('\u256D\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256E') + '\n');
|
|
91
|
+
process.stdout.write(d('\u2502 ') + c('\u{1F504} AUTONOMOUS MODE') + d(' \u2502') + '\n');
|
|
92
|
+
if (goal) {
|
|
93
|
+
process.stdout.write(d('\u2502') + d(' \u2502') + '\n');
|
|
94
|
+
// Truncate goal to fit in the box (39 chars max)
|
|
95
|
+
const goalDisplay = goal.length > 39 ? goal.slice(0, 36) + '...' : goal;
|
|
96
|
+
const padding = ' '.repeat(Math.max(0, 39 - goalDisplay.length));
|
|
97
|
+
process.stdout.write(d('\u2502 ') + chalk.white.bold('Goal: ') + goalDisplay + padding + d('\u2502') + '\n');
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
process.stdout.write(d('\u2502') + d(' \u2502') + '\n');
|
|
101
|
+
process.stdout.write(d('\u2502 ') + 'HelixMind will continuously scan and fix' + d(' \u2502') + '\n');
|
|
102
|
+
process.stdout.write(d('\u2502 ') + 'issues until nothing remains.' + d(' \u2502') + '\n');
|
|
103
|
+
}
|
|
104
|
+
process.stdout.write(d('\u2502') + d(' \u2502') + '\n');
|
|
105
|
+
process.stdout.write(d('\u2502 ') + d('/stop or ESC to stop') + d(' \u2502') + '\n');
|
|
106
|
+
process.stdout.write(d('\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256F') + '\n\n');
|
|
107
|
+
while (!callbacks.isAborted()) {
|
|
108
|
+
round++;
|
|
109
|
+
callbacks.onRoundStart(round);
|
|
110
|
+
callbacks.updateStatus();
|
|
111
|
+
let prompt;
|
|
112
|
+
if (goal) {
|
|
113
|
+
prompt = round === 1 ? goalPrompt(goal) : continueGoalPrompt(goal, completed);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
prompt = round === 1 ? SCAN_PROMPT : continuePrompt(completed);
|
|
117
|
+
}
|
|
118
|
+
process.stdout.write(chalk.dim(` \u2500\u2500 Round ${round} `) + chalk.dim('\u2500'.repeat(35)) + '\n');
|
|
119
|
+
try {
|
|
120
|
+
const resultText = await callbacks.sendMessage(prompt);
|
|
121
|
+
if (callbacks.isAborted())
|
|
122
|
+
break;
|
|
123
|
+
// Check if agent says it's done
|
|
124
|
+
if (resultText.includes('ALL_TASKS_COMPLETE')) {
|
|
125
|
+
if (goal) {
|
|
126
|
+
// Goal achieved — transition to general scan mode
|
|
127
|
+
process.stdout.write('\n');
|
|
128
|
+
renderInfo(chalk.green(` \u2705 Goal achieved (${completed.length} tasks). Switching to general scan mode...`));
|
|
129
|
+
process.stdout.write('\n');
|
|
130
|
+
goal = undefined; // switch to scan mode for subsequent rounds
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
// General scan found nothing — truly done
|
|
135
|
+
process.stdout.write('\n');
|
|
136
|
+
renderInfo(chalk.green(` \u2705 Autonomous mode complete \u2014 ${completed.length} tasks finished.`));
|
|
137
|
+
process.stdout.write('\n');
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// Extract summary from "DONE: ..." line or last line
|
|
142
|
+
const summary = extractSummary(resultText);
|
|
143
|
+
completed.push(summary);
|
|
144
|
+
callbacks.onRoundEnd(round, summary);
|
|
145
|
+
renderInfo(chalk.green(` \u2713 Round ${round}: ${summary}`));
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
if (callbacks.isAborted())
|
|
149
|
+
break;
|
|
150
|
+
renderInfo(chalk.red(` \u2717 Round ${round} error: ${err}`));
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
if (callbacks.isAborted()) {
|
|
154
|
+
process.stdout.write('\n');
|
|
155
|
+
renderInfo(chalk.yellow(` \u23F9 Autonomous mode stopped after ${completed.length} tasks.`));
|
|
156
|
+
process.stdout.write('\n');
|
|
157
|
+
}
|
|
158
|
+
return completed.length;
|
|
159
|
+
}
|
|
160
|
+
// ---------------------------------------------------------------------------
|
|
161
|
+
// Monitor mode helpers
|
|
162
|
+
// ---------------------------------------------------------------------------
|
|
163
|
+
export const MONITOR_MODES = [
|
|
164
|
+
{ key: 'passive', label: '\u{1F50D} Passive', description: 'Read-only scan \u2014 alerts only, no changes' },
|
|
165
|
+
{ key: 'defensive', label: '\u{1F6E1}\uFE0F Defensive', description: 'Auto-block threats \u2014 IP blocks, port closes, secret rotation' },
|
|
166
|
+
{ key: 'active', label: '\u2694\uFE0F Active', description: 'Full control \u2014 honeypots, counter-intel, approval required' },
|
|
167
|
+
];
|
|
168
|
+
export const MONITOR_WARNINGS = {
|
|
169
|
+
defensive: [
|
|
170
|
+
'Block attacking IPs via iptables/fail2ban',
|
|
171
|
+
'Kill suspicious processes',
|
|
172
|
+
'Rotate compromised secrets',
|
|
173
|
+
'Write firewall rules',
|
|
174
|
+
],
|
|
175
|
+
active: [
|
|
176
|
+
'All defensive actions, plus:',
|
|
177
|
+
'Deploy honeypot services',
|
|
178
|
+
'Attacker profiling & counter-intel',
|
|
179
|
+
'Deception infrastructure',
|
|
180
|
+
],
|
|
181
|
+
};
|
|
182
|
+
function extractSummary(text) {
|
|
183
|
+
// Look for "DONE: ..." line
|
|
184
|
+
const doneMatch = text.match(/DONE:\s*(.+)/i);
|
|
185
|
+
if (doneMatch) {
|
|
186
|
+
const s = doneMatch[1].trim();
|
|
187
|
+
return s.length > 120 ? s.slice(0, 117) + '...' : s;
|
|
188
|
+
}
|
|
189
|
+
// Fallback: last non-empty line
|
|
190
|
+
const lines = text.trim().split('\n').filter(l => l.trim());
|
|
191
|
+
const last = lines[lines.length - 1]?.trim() || text.slice(0, 100);
|
|
192
|
+
return last.length > 120 ? last.slice(0, 117) + '...' : last;
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=autonomous.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autonomous.js","sourceRoot":"","sources":["../../../src/cli/agent/autonomous.ts"],"names":[],"mappings":"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"}
|