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
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync, mkdirSync, existsSync, chmodSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
// Keep in sync with KNOWN_PROVIDERS in providers/registry.ts
|
|
4
|
+
// Auto-merge in load() ensures existing configs get new models automatically
|
|
5
|
+
const DEFAULT_MODELS = {
|
|
6
|
+
anthropic: ['claude-sonnet-4-6', 'claude-opus-4-6', 'claude-haiku-4-5-20251001'],
|
|
7
|
+
openai: ['gpt-4o', 'gpt-4o-mini', 'gpt-4-turbo', 'o1', 'o1-mini', 'o3-mini'],
|
|
8
|
+
deepseek: ['deepseek-chat', 'deepseek-reasoner'],
|
|
9
|
+
groq: ['llama-3.3-70b-versatile', 'llama-3.1-8b-instant', 'mixtral-8x7b-32768'],
|
|
10
|
+
together: ['meta-llama/Llama-3.3-70B-Instruct-Turbo', 'mistralai/Mixtral-8x22B-Instruct-v0.1'],
|
|
11
|
+
ollama: ['qwen3-coder:30b', 'qwen2.5-coder:32b', 'qwen2.5-coder:14b', 'qwen2.5-coder:7b', 'deepseek-r1:32b', 'deepseek-r1:14b', 'deepseek-coder-v2:16b', 'llama3.3', 'codellama:34b'],
|
|
12
|
+
openrouter: ['anthropic/claude-sonnet-4', 'openai/gpt-4o', 'google/gemini-2.0-flash-exp'],
|
|
13
|
+
zai: [
|
|
14
|
+
'glm-5', 'glm-5-code',
|
|
15
|
+
'glm-4.7', 'glm-4.7-flashx', 'glm-4.7-flash',
|
|
16
|
+
'glm-4.6',
|
|
17
|
+
'glm-4.5', 'glm-4.5-x', 'glm-4.5-air', 'glm-4.5-airx', 'glm-4.5-flash',
|
|
18
|
+
],
|
|
19
|
+
};
|
|
20
|
+
const DEFAULT_BASE_URLS = {
|
|
21
|
+
deepseek: 'https://api.deepseek.com',
|
|
22
|
+
groq: 'https://api.groq.com/openai/v1',
|
|
23
|
+
together: 'https://api.together.xyz/v1',
|
|
24
|
+
ollama: 'http://localhost:11434/v1',
|
|
25
|
+
openrouter: 'https://openrouter.ai/api/v1',
|
|
26
|
+
zai: 'https://api.z.ai/api/paas/v4',
|
|
27
|
+
};
|
|
28
|
+
const DEFAULT_CONFIG = {
|
|
29
|
+
provider: 'anthropic',
|
|
30
|
+
apiKey: '',
|
|
31
|
+
model: 'claude-sonnet-4-6',
|
|
32
|
+
providers: {},
|
|
33
|
+
spiral: {
|
|
34
|
+
enabled: true,
|
|
35
|
+
autoStore: true,
|
|
36
|
+
maxTokensBudget: 40000,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
export class ConfigStore {
|
|
40
|
+
configPath;
|
|
41
|
+
config;
|
|
42
|
+
constructor(configDir) {
|
|
43
|
+
mkdirSync(configDir, { recursive: true });
|
|
44
|
+
this.configPath = join(configDir, 'config.json');
|
|
45
|
+
this.config = this.load();
|
|
46
|
+
}
|
|
47
|
+
load() {
|
|
48
|
+
if (!existsSync(this.configPath)) {
|
|
49
|
+
this.save(DEFAULT_CONFIG);
|
|
50
|
+
return { ...DEFAULT_CONFIG, providers: {}, spiral: { ...DEFAULT_CONFIG.spiral } };
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
const raw = JSON.parse(readFileSync(this.configPath, 'utf-8'));
|
|
54
|
+
// Auto-merge: add new default models to existing providers
|
|
55
|
+
if (raw.providers) {
|
|
56
|
+
for (const [name, defaults] of Object.entries(DEFAULT_MODELS)) {
|
|
57
|
+
const stored = raw.providers[name];
|
|
58
|
+
if (stored?.models) {
|
|
59
|
+
const existing = new Set(stored.models);
|
|
60
|
+
for (const m of defaults) {
|
|
61
|
+
if (!existing.has(m))
|
|
62
|
+
stored.models.push(m);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
...DEFAULT_CONFIG,
|
|
69
|
+
...raw,
|
|
70
|
+
providers: raw.providers ?? {},
|
|
71
|
+
spiral: { ...DEFAULT_CONFIG.spiral, ...(raw.spiral ?? {}) },
|
|
72
|
+
relay: raw.relay ?? undefined,
|
|
73
|
+
voice: raw.voice ?? undefined,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return { ...DEFAULT_CONFIG, providers: {}, spiral: { ...DEFAULT_CONFIG.spiral } };
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
save(config) {
|
|
81
|
+
writeFileSync(this.configPath, JSON.stringify(config, null, 2), { encoding: 'utf-8', mode: 0o600 });
|
|
82
|
+
// H9: Ensure restrictive permissions on config file (contains API keys)
|
|
83
|
+
try {
|
|
84
|
+
chmodSync(this.configPath, 0o600);
|
|
85
|
+
}
|
|
86
|
+
catch { /* Windows may not support chmod */ }
|
|
87
|
+
}
|
|
88
|
+
getAll() {
|
|
89
|
+
return this.config;
|
|
90
|
+
}
|
|
91
|
+
get(key) {
|
|
92
|
+
const parts = key.split('.');
|
|
93
|
+
let current = this.config;
|
|
94
|
+
for (const part of parts) {
|
|
95
|
+
if (current === null || current === undefined || typeof current !== 'object')
|
|
96
|
+
return undefined;
|
|
97
|
+
current = current[part];
|
|
98
|
+
}
|
|
99
|
+
return current;
|
|
100
|
+
}
|
|
101
|
+
set(key, value) {
|
|
102
|
+
const parts = key.split('.');
|
|
103
|
+
const record = this.config;
|
|
104
|
+
if (parts.length === 1) {
|
|
105
|
+
record[key] = value;
|
|
106
|
+
}
|
|
107
|
+
else if (parts.length === 2) {
|
|
108
|
+
const [section, prop] = parts;
|
|
109
|
+
// Auto-create section objects (e.g. relay.url when relay doesn't exist yet)
|
|
110
|
+
if (!record[section] || typeof record[section] !== 'object') {
|
|
111
|
+
record[section] = {};
|
|
112
|
+
}
|
|
113
|
+
record[section][prop] = value;
|
|
114
|
+
}
|
|
115
|
+
this.save(this.config);
|
|
116
|
+
}
|
|
117
|
+
// --- Provider management ---
|
|
118
|
+
/** Add or update a provider with an API key */
|
|
119
|
+
addProvider(name, apiKey, baseURL) {
|
|
120
|
+
const models = DEFAULT_MODELS[name] ?? [];
|
|
121
|
+
const url = baseURL ?? DEFAULT_BASE_URLS[name];
|
|
122
|
+
this.config.providers[name] = {
|
|
123
|
+
apiKey,
|
|
124
|
+
models,
|
|
125
|
+
...(url ? { baseURL: url } : {}),
|
|
126
|
+
};
|
|
127
|
+
// If this is the first provider, make it active
|
|
128
|
+
if (!this.config.apiKey) {
|
|
129
|
+
this.config.provider = name;
|
|
130
|
+
this.config.apiKey = apiKey;
|
|
131
|
+
this.config.model = models[0] ?? '';
|
|
132
|
+
}
|
|
133
|
+
this.save(this.config);
|
|
134
|
+
}
|
|
135
|
+
/** Remove a provider and its API key */
|
|
136
|
+
removeProvider(name) {
|
|
137
|
+
if (!this.config.providers[name])
|
|
138
|
+
return false;
|
|
139
|
+
delete this.config.providers[name];
|
|
140
|
+
// If we removed the active provider, switch to another
|
|
141
|
+
if (this.config.provider === name) {
|
|
142
|
+
const remaining = Object.keys(this.config.providers);
|
|
143
|
+
if (remaining.length > 0) {
|
|
144
|
+
const next = remaining[0];
|
|
145
|
+
this.config.provider = next;
|
|
146
|
+
this.config.apiKey = this.config.providers[next].apiKey;
|
|
147
|
+
this.config.model = this.config.providers[next].models[0] ?? '';
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
this.config.apiKey = '';
|
|
151
|
+
this.config.model = '';
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
this.save(this.config);
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
/** Switch to a specific provider + model */
|
|
158
|
+
switchProvider(name, model) {
|
|
159
|
+
const entry = this.config.providers[name];
|
|
160
|
+
if (!entry)
|
|
161
|
+
return false;
|
|
162
|
+
this.config.provider = name;
|
|
163
|
+
this.config.apiKey = entry.apiKey;
|
|
164
|
+
this.config.model = model ?? entry.models[0] ?? '';
|
|
165
|
+
this.save(this.config);
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
/** Switch model within the current provider */
|
|
169
|
+
switchModel(model) {
|
|
170
|
+
this.config.model = model;
|
|
171
|
+
this.save(this.config);
|
|
172
|
+
}
|
|
173
|
+
/** Get all stored providers */
|
|
174
|
+
getProviders() {
|
|
175
|
+
return Object.entries(this.config.providers).map(([name, entry]) => ({
|
|
176
|
+
name,
|
|
177
|
+
entry,
|
|
178
|
+
active: name === this.config.provider,
|
|
179
|
+
}));
|
|
180
|
+
}
|
|
181
|
+
/** Get available models for a provider */
|
|
182
|
+
getModels(providerName) {
|
|
183
|
+
const name = providerName ?? this.config.provider;
|
|
184
|
+
return this.config.providers[name]?.models ?? DEFAULT_MODELS[name] ?? [];
|
|
185
|
+
}
|
|
186
|
+
/** Check if any API key is configured */
|
|
187
|
+
hasApiKey() {
|
|
188
|
+
return !!this.config.apiKey && this.config.apiKey.length > 0;
|
|
189
|
+
}
|
|
190
|
+
/** Mask an API key for display (show first 8 + last 4) */
|
|
191
|
+
static maskKey(key) {
|
|
192
|
+
if (key.length <= 12)
|
|
193
|
+
return '***';
|
|
194
|
+
return key.slice(0, 8) + '...' + key.slice(-4);
|
|
195
|
+
}
|
|
196
|
+
/** Check if authenticated with HelixMind web platform */
|
|
197
|
+
isLoggedIn() {
|
|
198
|
+
return !!this.config.relay?.apiKey;
|
|
199
|
+
}
|
|
200
|
+
/** Get auth info or null if not logged in */
|
|
201
|
+
getAuthInfo() {
|
|
202
|
+
if (!this.config.relay?.apiKey)
|
|
203
|
+
return null;
|
|
204
|
+
return {
|
|
205
|
+
apiKey: this.config.relay.apiKey,
|
|
206
|
+
url: this.config.relay.url ?? '',
|
|
207
|
+
userId: this.config.relay.userId,
|
|
208
|
+
email: this.config.relay.userEmail,
|
|
209
|
+
plan: this.config.relay.plan,
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
/** Clear auth data (logout) */
|
|
213
|
+
clearAuth() {
|
|
214
|
+
if (this.config.relay) {
|
|
215
|
+
delete this.config.relay.apiKey;
|
|
216
|
+
delete this.config.relay.userId;
|
|
217
|
+
delete this.config.relay.userEmail;
|
|
218
|
+
delete this.config.relay.plan;
|
|
219
|
+
delete this.config.relay.loginAt;
|
|
220
|
+
}
|
|
221
|
+
this.save(this.config);
|
|
222
|
+
}
|
|
223
|
+
listFlat() {
|
|
224
|
+
const entries = [];
|
|
225
|
+
for (const [key, value] of Object.entries(this.config)) {
|
|
226
|
+
if (key === 'providers') {
|
|
227
|
+
for (const [pName, pEntry] of Object.entries(value)) {
|
|
228
|
+
entries.push({ key: `providers.${pName}.apiKey`, value: ConfigStore.maskKey(pEntry.apiKey) });
|
|
229
|
+
entries.push({ key: `providers.${pName}.models`, value: pEntry.models.join(', ') });
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
else if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
233
|
+
for (const [subKey, subValue] of Object.entries(value)) {
|
|
234
|
+
entries.push({ key: `${key}.${subKey}`, value: subValue });
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
else if (key === 'apiKey') {
|
|
238
|
+
entries.push({ key, value: value ? ConfigStore.maskKey(value) : '(not set)' });
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
entries.push({ key, value });
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return entries;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/cli/config/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Directory Trust System — asks the user to confirm trust before
|
|
3
|
+
* creating project-local data (.helixmind/) in a new directory.
|
|
4
|
+
*
|
|
5
|
+
* Trusted directories are stored in ~/.helixmind/trusted-dirs.json.
|
|
6
|
+
* System-protected directories are always rejected (no prompt).
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Check if a directory is a system-protected directory where we should
|
|
10
|
+
* never attempt to create .helixmind/.
|
|
11
|
+
*/
|
|
12
|
+
export declare function isSystemDirectory(dir: string): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Check if a directory is already trusted.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isDirectoryTrusted(dir: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Add a directory to the trusted list.
|
|
19
|
+
*/
|
|
20
|
+
export declare function trustDirectory(dir: string): void;
|
|
21
|
+
//# sourceMappingURL=trust.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust.d.ts","sourceRoot":"","sources":["../../../src/cli/config/trust.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiCH;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAStD;AA2BD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAoBvD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAQhD"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Directory Trust System — asks the user to confirm trust before
|
|
3
|
+
* creating project-local data (.helixmind/) in a new directory.
|
|
4
|
+
*
|
|
5
|
+
* Trusted directories are stored in ~/.helixmind/trusted-dirs.json.
|
|
6
|
+
* System-protected directories are always rejected (no prompt).
|
|
7
|
+
*/
|
|
8
|
+
import { join } from 'node:path';
|
|
9
|
+
import { homedir, platform } from 'node:os';
|
|
10
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
11
|
+
const TRUST_FILE = join(homedir(), '.helixmind', 'trusted-dirs.json');
|
|
12
|
+
/** Directories that should NEVER have .helixmind/ created in them */
|
|
13
|
+
const SYSTEM_DIRS_WIN = [
|
|
14
|
+
'C:\\Windows',
|
|
15
|
+
'C:\\Program Files',
|
|
16
|
+
'C:\\Program Files (x86)',
|
|
17
|
+
'C:\\ProgramData',
|
|
18
|
+
];
|
|
19
|
+
const SYSTEM_DIRS_UNIX = [
|
|
20
|
+
'/usr',
|
|
21
|
+
'/bin',
|
|
22
|
+
'/sbin',
|
|
23
|
+
'/etc',
|
|
24
|
+
'/var',
|
|
25
|
+
'/tmp',
|
|
26
|
+
'/opt',
|
|
27
|
+
'/lib',
|
|
28
|
+
'/lib64',
|
|
29
|
+
'/boot',
|
|
30
|
+
'/dev',
|
|
31
|
+
'/proc',
|
|
32
|
+
'/sys',
|
|
33
|
+
'/root',
|
|
34
|
+
];
|
|
35
|
+
/**
|
|
36
|
+
* Check if a directory is a system-protected directory where we should
|
|
37
|
+
* never attempt to create .helixmind/.
|
|
38
|
+
*/
|
|
39
|
+
export function isSystemDirectory(dir) {
|
|
40
|
+
const normalized = dir.replace(/\//g, '\\');
|
|
41
|
+
const lower = normalized.toLowerCase();
|
|
42
|
+
if (platform() === 'win32') {
|
|
43
|
+
return SYSTEM_DIRS_WIN.some(sys => lower.startsWith(sys.toLowerCase()));
|
|
44
|
+
}
|
|
45
|
+
return SYSTEM_DIRS_UNIX.some(sys => dir.startsWith(sys));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Load the list of trusted directories.
|
|
49
|
+
*/
|
|
50
|
+
function loadTrustedDirs() {
|
|
51
|
+
try {
|
|
52
|
+
if (existsSync(TRUST_FILE)) {
|
|
53
|
+
return JSON.parse(readFileSync(TRUST_FILE, 'utf-8'));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// Corrupted file — start fresh
|
|
58
|
+
}
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Save the list of trusted directories.
|
|
63
|
+
*/
|
|
64
|
+
function saveTrustedDirs(dirs) {
|
|
65
|
+
const parentDir = join(homedir(), '.helixmind');
|
|
66
|
+
if (!existsSync(parentDir)) {
|
|
67
|
+
mkdirSync(parentDir, { recursive: true });
|
|
68
|
+
}
|
|
69
|
+
writeFileSync(TRUST_FILE, JSON.stringify(dirs, null, 2), 'utf-8');
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Check if a directory is already trusted.
|
|
73
|
+
*/
|
|
74
|
+
export function isDirectoryTrusted(dir) {
|
|
75
|
+
// Home directory is always trusted
|
|
76
|
+
if (dir === homedir())
|
|
77
|
+
return true;
|
|
78
|
+
// Subdirectories of home are trusted if parent is trusted
|
|
79
|
+
const home = homedir();
|
|
80
|
+
if (dir.startsWith(home)) {
|
|
81
|
+
// Direct children of home (Desktop, Documents, etc.) are always trusted
|
|
82
|
+
const relative = dir.slice(home.length + 1);
|
|
83
|
+
const depth = relative.split(/[/\\]/).length;
|
|
84
|
+
if (depth <= 1)
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
// If .helixmind/ already exists, it was previously trusted
|
|
88
|
+
if (existsSync(join(dir, '.helixmind')))
|
|
89
|
+
return true;
|
|
90
|
+
// Check the trust list
|
|
91
|
+
const trusted = loadTrustedDirs();
|
|
92
|
+
const normalized = dir.replace(/\\/g, '/').toLowerCase();
|
|
93
|
+
return trusted.some(t => t.replace(/\\/g, '/').toLowerCase() === normalized);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Add a directory to the trusted list.
|
|
97
|
+
*/
|
|
98
|
+
export function trustDirectory(dir) {
|
|
99
|
+
const trusted = loadTrustedDirs();
|
|
100
|
+
const normalized = dir.replace(/\\/g, '/').toLowerCase();
|
|
101
|
+
if (!trusted.some(t => t.replace(/\\/g, '/').toLowerCase() === normalized)) {
|
|
102
|
+
trusted.push(dir);
|
|
103
|
+
saveTrustedDirs(trusted);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=trust.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust.js","sourceRoot":"","sources":["../../../src/cli/config/trust.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ProjectInfo } from './project.js';
|
|
2
|
+
import type { SpiralQueryResult } from '../../types.js';
|
|
3
|
+
import type { ExecutionPlan } from '../agent/plan-types.js';
|
|
4
|
+
export interface ModelIdentity {
|
|
5
|
+
provider: string;
|
|
6
|
+
model: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function assembleSystemPrompt(project: ProjectInfo | null, spiralContext: SpiralQueryResult, sessionContext?: string, identity?: ModelIdentity, bugSummary?: string | null, jarvisIdentity?: string | null, learningSummary?: string | null, planModeActive?: boolean, activePlan?: ExecutionPlan | null): string;
|
|
9
|
+
//# sourceMappingURL=assembler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assembler.d.ts","sourceRoot":"","sources":["../../../src/cli/context/assembler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA+D5D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,aAAa,EAAE,iBAAiB,EAChC,cAAc,CAAC,EAAE,MAAM,EACvB,QAAQ,CAAC,EAAE,aAAa,EACxB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,EAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,EAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,EAC/B,cAAc,CAAC,EAAE,OAAO,EACxB,UAAU,CAAC,EAAE,aAAa,GAAG,IAAI,GAChC,MAAM,CAkDR"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { platform } from 'node:os';
|
|
2
|
+
const BASE_INSTRUCTIONS = `You are HelixMind, an expert AI coding assistant with persistent spiral memory.
|
|
3
|
+
You help developers write, debug, and understand code. You are direct, concise, and precise.
|
|
4
|
+
|
|
5
|
+
<tone>
|
|
6
|
+
- Be concise. Short responses for simple questions. Detailed only when necessary.
|
|
7
|
+
- Use GitHub-flavored markdown for formatting in your responses.
|
|
8
|
+
- When referencing code, use the pattern \`file_path:line_number\` so the user can navigate to it.
|
|
9
|
+
- Do NOT use emojis unless the user does.
|
|
10
|
+
- Do NOT add unnecessary filler, pleasantries, or preamble. Get to the point.
|
|
11
|
+
- When explaining changes, focus on the "why" not the "what" — the user can see the code.
|
|
12
|
+
</tone>
|
|
13
|
+
|
|
14
|
+
<code_quality>
|
|
15
|
+
- Write clean, idiomatic code following the project's existing conventions.
|
|
16
|
+
- Match the style, patterns, and dependencies already used in the project.
|
|
17
|
+
- Provide complete, working code — never use placeholders, TODOs, or "// rest of code here".
|
|
18
|
+
- Only modify what was requested. Do not refactor surrounding code, add docstrings, or "improve" things that weren't asked for.
|
|
19
|
+
- Do not over-engineer. Three similar lines are better than a premature abstraction.
|
|
20
|
+
- Do not add error handling for scenarios that cannot happen. Trust internal code.
|
|
21
|
+
- Be careful not to introduce security vulnerabilities (injection, XSS, etc.).
|
|
22
|
+
</code_quality>
|
|
23
|
+
|
|
24
|
+
<tools>
|
|
25
|
+
Tool selection guide — use the right tool for the job:
|
|
26
|
+
- **read_file**: Use WHEN you need full contents of a specific file you know by path.
|
|
27
|
+
- **search_files**: Use WHEN you need to find text patterns across multiple files. Returns matching lines + context. Faster than reading all files.
|
|
28
|
+
- **find_files**: Use WHEN you need to locate files by name or pattern (e.g., "*.test.ts").
|
|
29
|
+
- **list_directory**: Use WHEN you need to see what files exist in a directory.
|
|
30
|
+
- **edit_file**: Use WHEN you need to modify a specific part of a file. Always read the file first.
|
|
31
|
+
- **write_file**: Use WHEN you need to create a new file or fully replace an existing one.
|
|
32
|
+
- **run_command**: Use ONLY for build, test, git, or tasks that specifically require shell execution. NEVER use for file reading, searching, or listing.
|
|
33
|
+
- Read files before modifying them. Never suggest changes to code you haven't read.
|
|
34
|
+
- Prefer editing existing files over creating new ones.
|
|
35
|
+
</tools>
|
|
36
|
+
|
|
37
|
+
<approach>
|
|
38
|
+
- For bugs: investigate root cause first. Read errors, reproduce, review changes. Do NOT guess fixes.
|
|
39
|
+
- For new features: understand existing patterns before writing code.
|
|
40
|
+
- If your approach is blocked after 2–3 attempts, reconsider the strategy instead of retrying.
|
|
41
|
+
- Focus on the user's current directory and files. Don't wander to unrelated directories.
|
|
42
|
+
- Only make changes that are directly requested or clearly necessary.
|
|
43
|
+
</approach>
|
|
44
|
+
|
|
45
|
+
<verification>
|
|
46
|
+
- Before giving your final answer, verify all changes are complete and correct.
|
|
47
|
+
- If you edited files, confirm the edits are consistent and nothing is left broken.
|
|
48
|
+
- If a tool call failed, explain what went wrong and whether it was resolved.
|
|
49
|
+
- If you encountered errors, confirm they have been addressed.
|
|
50
|
+
- After multi-step operations, briefly summarize what was done and any remaining steps.
|
|
51
|
+
</verification>
|
|
52
|
+
|
|
53
|
+
<conversation_awareness>
|
|
54
|
+
CRITICAL — never repeat yourself:
|
|
55
|
+
- NEVER repeat the same explanation or answer structure you already gave. If you are about to write something similar to a previous response, STOP.
|
|
56
|
+
- If the user asks the same question again, briefly reference your earlier answer and ask what specifically is unclear.
|
|
57
|
+
- Build upon previous responses — do not restart explanations from scratch.
|
|
58
|
+
- Vary your response structure. If your last answer used a table, use prose next time.
|
|
59
|
+
- Check the "Session Working Memory" section below for topics you already covered. If a topic appears in "Topics already covered", reference it: "As I mentioned earlier, [brief callback]. What would you like to dive deeper into?"
|
|
60
|
+
- Repetitive answers appear unintelligent and waste the user's time.
|
|
61
|
+
</conversation_awareness>`;
|
|
62
|
+
export function assembleSystemPrompt(project, spiralContext, sessionContext, identity, bugSummary, jarvisIdentity, learningSummary, planModeActive, activePlan) {
|
|
63
|
+
const sections = [BASE_INSTRUCTIONS];
|
|
64
|
+
// Dynamic model identity — so the agent knows what it is
|
|
65
|
+
if (identity && !jarvisIdentity) {
|
|
66
|
+
sections.push(`## Identity\nYou are running as **${identity.model}** via the **${identity.provider}** provider.\nWhen asked who or what you are, say you are HelixMind powered by ${identity.model}. Do NOT claim to be a different model or provider.`);
|
|
67
|
+
}
|
|
68
|
+
else if (identity && jarvisIdentity) {
|
|
69
|
+
sections.push(`## Model\nRunning on **${identity.model}** via **${identity.provider}**.\nYour identity and persona are defined by the Jarvis section below. This model info is for reference only — follow the Jarvis persona.`);
|
|
70
|
+
}
|
|
71
|
+
// Environment context (OS, CWD, shell)
|
|
72
|
+
sections.push(buildEnvironmentSection());
|
|
73
|
+
// Session working memory (short-term context)
|
|
74
|
+
if (sessionContext) {
|
|
75
|
+
sections.push(sessionContext);
|
|
76
|
+
}
|
|
77
|
+
// Project context
|
|
78
|
+
if (project && project.name !== 'unknown') {
|
|
79
|
+
sections.push(buildProjectSection(project));
|
|
80
|
+
}
|
|
81
|
+
// Spiral context (L1 → L2 → L3)
|
|
82
|
+
const spiralSection = buildSpiralSection(spiralContext);
|
|
83
|
+
if (spiralSection) {
|
|
84
|
+
sections.push(spiralSection);
|
|
85
|
+
}
|
|
86
|
+
// Bug journal context
|
|
87
|
+
if (bugSummary) {
|
|
88
|
+
sections.push(bugSummary);
|
|
89
|
+
}
|
|
90
|
+
// Learning memory context (failure patterns)
|
|
91
|
+
if (learningSummary) {
|
|
92
|
+
sections.push(learningSummary);
|
|
93
|
+
}
|
|
94
|
+
// Jarvis identity + ethics context (injected when Jarvis daemon is active)
|
|
95
|
+
if (jarvisIdentity) {
|
|
96
|
+
sections.push(jarvisIdentity);
|
|
97
|
+
}
|
|
98
|
+
// Plan mode instructions
|
|
99
|
+
if (planModeActive) {
|
|
100
|
+
sections.push(buildPlanModeSection(activePlan));
|
|
101
|
+
}
|
|
102
|
+
return sections.join('\n\n---\n\n');
|
|
103
|
+
}
|
|
104
|
+
function buildEnvironmentSection() {
|
|
105
|
+
const os = platform();
|
|
106
|
+
const cwd = process.cwd();
|
|
107
|
+
const lines = ['## Environment'];
|
|
108
|
+
lines.push(`Working directory: ${cwd}`);
|
|
109
|
+
lines.push(`OS: ${os}`);
|
|
110
|
+
if (os === 'win32') {
|
|
111
|
+
lines.push(`Shell: cmd.exe (Windows)`);
|
|
112
|
+
lines.push(`Windows-specific run_command rules:
|
|
113
|
+
- Use "dir" not "ls", "type" not "cat", "findstr" not "grep", "where" not "which"
|
|
114
|
+
- No "head", "tail", "pwd", "find", "wc" — these do not exist on Windows
|
|
115
|
+
- Paths use backslashes: C:\\Users\\...
|
|
116
|
+
- Chain commands with: "cmd1 && cmd2"
|
|
117
|
+
- Each run_command starts fresh in the working directory — cd does NOT persist`);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
lines.push(`Shell: bash`);
|
|
121
|
+
lines.push(`Each run_command starts fresh in the working directory — cd does NOT persist.`);
|
|
122
|
+
}
|
|
123
|
+
return lines.join('\n');
|
|
124
|
+
}
|
|
125
|
+
function buildProjectSection(project) {
|
|
126
|
+
const lines = ['## Project Context'];
|
|
127
|
+
lines.push(`Project: ${project.name} (${project.type})`);
|
|
128
|
+
if (project.frameworks.length > 0) {
|
|
129
|
+
lines.push(`Frameworks: ${project.frameworks.join(', ')}`);
|
|
130
|
+
}
|
|
131
|
+
if (project.files.length > 0) {
|
|
132
|
+
const fileList = project.files
|
|
133
|
+
.slice(0, 20)
|
|
134
|
+
.map(f => ` - ${f.path}`)
|
|
135
|
+
.join('\n');
|
|
136
|
+
lines.push(`Key files:\n${fileList}`);
|
|
137
|
+
}
|
|
138
|
+
return lines.join('\n');
|
|
139
|
+
}
|
|
140
|
+
function buildSpiralSection(result) {
|
|
141
|
+
if (result.node_count === 0)
|
|
142
|
+
return null;
|
|
143
|
+
const lines = ['## Spiral Memory Context'];
|
|
144
|
+
const sections = [
|
|
145
|
+
{ label: 'Focus (highly relevant)', nodes: result.level_1 },
|
|
146
|
+
{ label: 'Active (recent context)', nodes: result.level_2 },
|
|
147
|
+
{ label: 'Reference (background)', nodes: result.level_3 },
|
|
148
|
+
{ label: 'Archive (historical)', nodes: result.level_4 },
|
|
149
|
+
{ label: 'Deep Archive (distant)', nodes: result.level_5 },
|
|
150
|
+
];
|
|
151
|
+
for (const { label, nodes } of sections) {
|
|
152
|
+
if (nodes.length > 0) {
|
|
153
|
+
lines.push(`### ${label}:`);
|
|
154
|
+
for (const node of nodes) {
|
|
155
|
+
lines.push(`- [${node.type}] ${node.content}`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return lines.join('\n');
|
|
160
|
+
}
|
|
161
|
+
function buildPlanModeSection(activePlan) {
|
|
162
|
+
const lines = ['## Plan Mode'];
|
|
163
|
+
if (!activePlan || activePlan.status === 'drafting' || activePlan.status === 'pending_approval') {
|
|
164
|
+
// Planning phase — read-only exploration
|
|
165
|
+
lines.push(`You are in PLAN MODE. Only read-only tools are available (read_file, list_directory, search_files, find_files, git_status, git_log, git_diff, spiral_query).
|
|
166
|
+
|
|
167
|
+
Your task:
|
|
168
|
+
1. Explore the codebase thoroughly to understand the relevant code.
|
|
169
|
+
2. After exploration, produce a structured execution plan as a JSON code block.
|
|
170
|
+
|
|
171
|
+
The plan must follow this exact format:
|
|
172
|
+
\`\`\`json
|
|
173
|
+
{
|
|
174
|
+
"title": "Short descriptive title",
|
|
175
|
+
"description": "Why this plan and what it achieves",
|
|
176
|
+
"steps": [
|
|
177
|
+
{
|
|
178
|
+
"title": "Step title",
|
|
179
|
+
"description": "What this step does and why",
|
|
180
|
+
"tools": ["edit_file", "write_file"],
|
|
181
|
+
"affectedFiles": ["src/path/to/file.ts"],
|
|
182
|
+
"dependencies": []
|
|
183
|
+
}
|
|
184
|
+
]
|
|
185
|
+
}
|
|
186
|
+
\`\`\`
|
|
187
|
+
|
|
188
|
+
Rules:
|
|
189
|
+
- Each step should be a coherent unit of work (1-5 tool calls).
|
|
190
|
+
- List ALL files that will be modified or created.
|
|
191
|
+
- Use "dependencies" to reference step indices (0-based) that must complete first.
|
|
192
|
+
- Do NOT execute any write operations — only explore and plan.`);
|
|
193
|
+
}
|
|
194
|
+
else if (activePlan.status === 'executing') {
|
|
195
|
+
// Execution phase — show active plan context
|
|
196
|
+
const completed = activePlan.steps.filter(s => s.status === 'done');
|
|
197
|
+
const current = activePlan.steps.find(s => s.status === 'running');
|
|
198
|
+
const pending = activePlan.steps.filter(s => s.status === 'pending');
|
|
199
|
+
lines.push(`Executing plan: "${activePlan.title}"`);
|
|
200
|
+
lines.push(`Progress: ${completed.length}/${activePlan.steps.length} steps completed.`);
|
|
201
|
+
if (completed.length > 0) {
|
|
202
|
+
lines.push(`\nCompleted steps:`);
|
|
203
|
+
for (const step of completed) {
|
|
204
|
+
lines.push(`- [DONE] ${step.title}${step.result ? ': ' + step.result.slice(0, 100) : ''}`);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
if (current) {
|
|
208
|
+
lines.push(`\nCurrent step: ${current.title}`);
|
|
209
|
+
lines.push(current.description);
|
|
210
|
+
}
|
|
211
|
+
if (pending.length > 0) {
|
|
212
|
+
lines.push(`\nRemaining: ${pending.length} steps`);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return lines.join('\n');
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=assembler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assembler.js","sourceRoot":"","sources":["../../../src/cli/context/assembler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface ProjectFile {
|
|
2
|
+
path: string;
|
|
3
|
+
size: number;
|
|
4
|
+
}
|
|
5
|
+
export interface ProjectInfo {
|
|
6
|
+
name: string;
|
|
7
|
+
type: 'node' | 'python' | 'rust' | 'go' | 'unknown';
|
|
8
|
+
frameworks: string[];
|
|
9
|
+
files: ProjectFile[];
|
|
10
|
+
summary: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function analyzeProject(dir: string): Promise<ProjectInfo>;
|
|
13
|
+
//# sourceMappingURL=project.d.ts.map
|