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,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run a single dynamic check using a mini-LLM call.
|
|
3
|
+
*/
|
|
4
|
+
export async function dynamicCheck(criterion, output, userRequest, spiralContext, provider) {
|
|
5
|
+
const prompt = buildCheckPrompt(criterion, output, userRequest, spiralContext);
|
|
6
|
+
try {
|
|
7
|
+
const messages = [{ role: 'user', content: prompt }];
|
|
8
|
+
let responseText = '';
|
|
9
|
+
for await (const event of provider.stream(messages, VALIDATION_SYSTEM_PROMPT)) {
|
|
10
|
+
if (event.type === 'text') {
|
|
11
|
+
responseText += event.content;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return parseCheckResponse(criterion, responseText);
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
// On error, pass by default (don't block the user)
|
|
18
|
+
return {
|
|
19
|
+
id: criterion.id,
|
|
20
|
+
passed: true,
|
|
21
|
+
details: `Check skipped (LLM error: ${err.message})`,
|
|
22
|
+
severity: criterion.severity,
|
|
23
|
+
autofix: false,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Run multiple dynamic checks in parallel (batch).
|
|
29
|
+
*/
|
|
30
|
+
export async function runDynamicChecks(criteria, output, userRequest, spiralContext, provider) {
|
|
31
|
+
if (criteria.length === 0)
|
|
32
|
+
return [];
|
|
33
|
+
// Run checks in parallel (max 3 concurrent)
|
|
34
|
+
const results = [];
|
|
35
|
+
const batchSize = 3;
|
|
36
|
+
for (let i = 0; i < criteria.length; i += batchSize) {
|
|
37
|
+
const batch = criteria.slice(i, i + batchSize);
|
|
38
|
+
const batchResults = await Promise.all(batch.map(c => dynamicCheck(c, output, userRequest, spiralContext, provider)));
|
|
39
|
+
results.push(...batchResults);
|
|
40
|
+
}
|
|
41
|
+
return results;
|
|
42
|
+
}
|
|
43
|
+
// ── Prompt Building ──
|
|
44
|
+
const VALIDATION_SYSTEM_PROMPT = `You are a precise code reviewer. You check one specific criterion at a time.
|
|
45
|
+
Answer ONLY in valid JSON format. Be strict but fair.
|
|
46
|
+
If you cannot determine the answer, default to "passed": true.`;
|
|
47
|
+
function buildCheckPrompt(criterion, output, userRequest, spiralContext) {
|
|
48
|
+
// Truncate output to avoid huge prompts
|
|
49
|
+
const truncatedOutput = output.length > 4000 ? output.slice(0, 4000) + '\n...[truncated]' : output;
|
|
50
|
+
const truncatedContext = spiralContext.length > 1000 ? spiralContext.slice(0, 1000) + '\n...[truncated]' : spiralContext;
|
|
51
|
+
return `Check this ONE criterion:
|
|
52
|
+
|
|
53
|
+
CRITERION: ${criterion.description}
|
|
54
|
+
SEVERITY: ${criterion.severity}
|
|
55
|
+
|
|
56
|
+
USER REQUEST: ${userRequest}
|
|
57
|
+
|
|
58
|
+
CODE/OUTPUT:
|
|
59
|
+
\`\`\`
|
|
60
|
+
${truncatedOutput}
|
|
61
|
+
\`\`\`
|
|
62
|
+
|
|
63
|
+
${truncatedContext ? `PROJECT CONTEXT:\n${truncatedContext}\n` : ''}
|
|
64
|
+
Answer ONLY in JSON:
|
|
65
|
+
{
|
|
66
|
+
"passed": true/false,
|
|
67
|
+
"details": "Brief explanation (1-2 sentences)",
|
|
68
|
+
"fix": "Concrete fix if not passed, null otherwise"
|
|
69
|
+
}`;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Parse LLM response into a CheckResult.
|
|
73
|
+
* Handles malformed JSON gracefully.
|
|
74
|
+
*/
|
|
75
|
+
function parseCheckResponse(criterion, response) {
|
|
76
|
+
try {
|
|
77
|
+
// Extract JSON from response (may have surrounding text)
|
|
78
|
+
const jsonMatch = response.match(/\{[\s\S]*\}/);
|
|
79
|
+
if (!jsonMatch) {
|
|
80
|
+
return fallbackResult(criterion, response);
|
|
81
|
+
}
|
|
82
|
+
const parsed = JSON.parse(jsonMatch[0]);
|
|
83
|
+
return {
|
|
84
|
+
id: criterion.id,
|
|
85
|
+
passed: Boolean(parsed.passed),
|
|
86
|
+
details: String(parsed.details || 'No details'),
|
|
87
|
+
fix: parsed.fix || undefined,
|
|
88
|
+
severity: criterion.severity,
|
|
89
|
+
autofix: criterion.autofix && !!parsed.fix,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return fallbackResult(criterion, response);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function fallbackResult(criterion, rawResponse) {
|
|
97
|
+
// Try to infer pass/fail from response text
|
|
98
|
+
const lower = rawResponse.toLowerCase();
|
|
99
|
+
const passed = lower.includes('"passed": true') || lower.includes('"passed":true') ||
|
|
100
|
+
(lower.includes('pass') && !lower.includes('fail') && !lower.includes('not pass'));
|
|
101
|
+
return {
|
|
102
|
+
id: criterion.id,
|
|
103
|
+
passed,
|
|
104
|
+
details: rawResponse.slice(0, 200),
|
|
105
|
+
severity: criterion.severity,
|
|
106
|
+
autofix: false,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=dynamic-checks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-checks.js","sourceRoot":"","sources":["../../../src/cli/validation/dynamic-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { LLMProvider } from '../providers/types.js';
|
|
2
|
+
export interface ValidationModelConfig {
|
|
3
|
+
provider: string;
|
|
4
|
+
model: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Get the validation model config for the given main model.
|
|
8
|
+
* Falls back to using the same provider/model if no mapping exists.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getValidationModelConfig(mainModel: string, mainProvider: string): ValidationModelConfig;
|
|
11
|
+
/**
|
|
12
|
+
* Create a validation LLM provider instance.
|
|
13
|
+
* Uses the same API key as the main provider.
|
|
14
|
+
*/
|
|
15
|
+
export declare function createValidationProvider(mainModel: string, mainProvider: string, apiKey: string): LLMProvider;
|
|
16
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/cli/validation/model.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AA8BD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,qBAAqB,CAevG;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,WAAW,CAMb"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation Model Selection — picks a fast/cheap model for validation checks.
|
|
3
|
+
* The validation model is different from the main agent model (smaller, faster).
|
|
4
|
+
*/
|
|
5
|
+
import { createProvider, KNOWN_PROVIDERS } from '../providers/registry.js';
|
|
6
|
+
/**
|
|
7
|
+
* Map from main agent model to the best validation model.
|
|
8
|
+
* Strategy: use the smallest model from the same provider.
|
|
9
|
+
*/
|
|
10
|
+
const MODEL_MAP = {
|
|
11
|
+
// Anthropic
|
|
12
|
+
'claude-sonnet-4-6': { provider: 'anthropic', model: 'claude-haiku-4-5-20251001' },
|
|
13
|
+
'claude-opus-4-6': { provider: 'anthropic', model: 'claude-haiku-4-5-20251001' },
|
|
14
|
+
'claude-haiku-4-5-20251001': { provider: 'anthropic', model: 'claude-haiku-4-5-20251001' },
|
|
15
|
+
// OpenAI
|
|
16
|
+
'gpt-4o': { provider: 'openai', model: 'gpt-4o-mini' },
|
|
17
|
+
'gpt-4o-mini': { provider: 'openai', model: 'gpt-4o-mini' },
|
|
18
|
+
'gpt-4-turbo': { provider: 'openai', model: 'gpt-4o-mini' },
|
|
19
|
+
'o1': { provider: 'openai', model: 'gpt-4o-mini' },
|
|
20
|
+
'o1-mini': { provider: 'openai', model: 'gpt-4o-mini' },
|
|
21
|
+
'o3-mini': { provider: 'openai', model: 'gpt-4o-mini' },
|
|
22
|
+
// DeepSeek
|
|
23
|
+
'deepseek-chat': { provider: 'deepseek', model: 'deepseek-chat' },
|
|
24
|
+
'deepseek-reasoner': { provider: 'deepseek', model: 'deepseek-chat' },
|
|
25
|
+
// Groq (already fast)
|
|
26
|
+
'llama-3.3-70b-versatile': { provider: 'groq', model: 'llama-3.1-8b-instant' },
|
|
27
|
+
'llama-3.1-8b-instant': { provider: 'groq', model: 'llama-3.1-8b-instant' },
|
|
28
|
+
'mixtral-8x7b-32768': { provider: 'groq', model: 'llama-3.1-8b-instant' },
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Get the validation model config for the given main model.
|
|
32
|
+
* Falls back to using the same provider/model if no mapping exists.
|
|
33
|
+
*/
|
|
34
|
+
export function getValidationModelConfig(mainModel, mainProvider) {
|
|
35
|
+
const mapped = MODEL_MAP[mainModel];
|
|
36
|
+
if (mapped)
|
|
37
|
+
return mapped;
|
|
38
|
+
// Fallback: use same provider, try to find a smaller model
|
|
39
|
+
const providerInfo = KNOWN_PROVIDERS[mainProvider];
|
|
40
|
+
if (providerInfo) {
|
|
41
|
+
// Pick the last (usually smallest) model in the list, or just use the same
|
|
42
|
+
const models = providerInfo.models;
|
|
43
|
+
const smallerModel = models[models.length - 1] || mainModel;
|
|
44
|
+
return { provider: mainProvider, model: smallerModel };
|
|
45
|
+
}
|
|
46
|
+
// Ultimate fallback: same model
|
|
47
|
+
return { provider: mainProvider, model: mainModel };
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create a validation LLM provider instance.
|
|
51
|
+
* Uses the same API key as the main provider.
|
|
52
|
+
*/
|
|
53
|
+
export function createValidationProvider(mainModel, mainProvider, apiKey) {
|
|
54
|
+
const config = getValidationModelConfig(mainModel, mainProvider);
|
|
55
|
+
const providerInfo = KNOWN_PROVIDERS[config.provider];
|
|
56
|
+
const baseURL = providerInfo?.baseURL;
|
|
57
|
+
return createProvider(config.provider, apiKey, config.model, baseURL);
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/cli/validation/model.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAQ3E;;;GAGG;AACH,MAAM,SAAS,GAA0C;IACvD,YAAY;IACZ,mBAAmB,EAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,2BAA2B,EAAE;IAC1F,iBAAiB,EAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,2BAA2B,EAAE;IAC1F,2BAA2B,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,2BAA2B,EAAE;IAE1F,SAAS;IACT,QAAQ,EAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE;IAC7D,aAAa,EAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE;IAC7D,aAAa,EAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE;IAC7D,IAAI,EAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE;IAC7D,SAAS,EAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE;IAC7D,SAAS,EAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE;IAE7D,WAAW;IACX,eAAe,EAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE;IACrE,mBAAmB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE;IAErE,sBAAsB;IACtB,yBAAyB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAC9E,sBAAsB,EAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAC9E,oBAAoB,EAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,EAAE;CAC/E,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAiB,EAAE,YAAoB;IAC9E,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,2DAA2D;IAC3D,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IACnD,IAAI,YAAY,EAAE,CAAC;QACjB,2EAA2E;QAC3E,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;QACnC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC;QAC5D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACzD,CAAC;IAED,gCAAgC;IAChC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAAiB,EACjB,YAAoB,EACpB,MAAc;IAEd,MAAM,MAAM,GAAG,wBAAwB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,YAAY,EAAE,OAAO,CAAC;IAEtC,OAAO,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ValidationResult } from './autofix.js';
|
|
2
|
+
/**
|
|
3
|
+
* Render the validation summary box.
|
|
4
|
+
*/
|
|
5
|
+
export declare function renderValidationSummary(result: ValidationResult, verbose?: boolean): string;
|
|
6
|
+
/**
|
|
7
|
+
* Render a compact one-line validation result (for status bar or non-verbose).
|
|
8
|
+
*/
|
|
9
|
+
export declare function renderValidationOneLine(result: ValidationResult): string;
|
|
10
|
+
/**
|
|
11
|
+
* Show validation start indicator.
|
|
12
|
+
*/
|
|
13
|
+
export declare function renderValidationStart(): string;
|
|
14
|
+
/**
|
|
15
|
+
* Render classification info (for verbose mode).
|
|
16
|
+
*/
|
|
17
|
+
export declare function renderClassification(category: string, complexity: string, criteriaCount: number): string;
|
|
18
|
+
//# sourceMappingURL=reporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../../src/cli/validation/reporter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,cAAc,CAAC;AAGvE;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,GAAE,OAAe,GAAG,MAAM,CA0ElG;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAMxE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAExG"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation Reporter — Terminal UI for validation results.
|
|
3
|
+
* Shows a compact summary box with check results per category.
|
|
4
|
+
*/
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
/**
|
|
7
|
+
* Render the validation summary box.
|
|
8
|
+
*/
|
|
9
|
+
export function renderValidationSummary(result, verbose = false) {
|
|
10
|
+
const totalChecks = result.results.length;
|
|
11
|
+
const passed = result.results.filter(r => r.passed).length;
|
|
12
|
+
const errors = result.results.filter(r => !r.passed && r.severity === 'error').length;
|
|
13
|
+
const warnings = result.results.filter(r => !r.passed && r.severity === 'warning').length;
|
|
14
|
+
const statusIcon = getStatusIcon(result.status);
|
|
15
|
+
const durationStr = result.duration < 1000
|
|
16
|
+
? `${result.duration}ms`
|
|
17
|
+
: `${(result.duration / 1000).toFixed(1)}s`;
|
|
18
|
+
const lines = [];
|
|
19
|
+
// ── Header ──
|
|
20
|
+
const header = `${statusIcon} Validation Matrix \u2500\u2500 ${totalChecks} checks \u2500\u2500 ${result.loops} loop${result.loops !== 1 ? 's' : ''} \u2500\u2500 ${durationStr}`;
|
|
21
|
+
lines.push(chalk.dim('\u256D\u2500\u2500\u2500 ') + headerColor(result.status)(header) + chalk.dim(' \u2500\u2500\u2500\u256E'));
|
|
22
|
+
lines.push(chalk.dim('\u2502'));
|
|
23
|
+
// ── Category summary ──
|
|
24
|
+
if (verbose) {
|
|
25
|
+
// Show every single check
|
|
26
|
+
for (const r of result.results) {
|
|
27
|
+
const icon = r.passed ? chalk.green('\u2705') : (r.severity === 'error' ? chalk.red('\u274C') : chalk.yellow('\u26A0\uFE0F'));
|
|
28
|
+
const detail = r.passed ? chalk.dim(r.details) : chalk.white(r.details);
|
|
29
|
+
lines.push(chalk.dim('\u2502 ') + `${icon} ${chalk.cyan(r.id)} ${detail}`);
|
|
30
|
+
if (!r.passed && r.fix) {
|
|
31
|
+
lines.push(chalk.dim('\u2502 \u2192 ') + chalk.yellow(r.fix));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// Group by category
|
|
37
|
+
const grouped = groupByCategory(result.results);
|
|
38
|
+
for (const [category, checks] of grouped) {
|
|
39
|
+
const categoryPassed = checks.filter(r => r.passed).length;
|
|
40
|
+
const categoryTotal = checks.length;
|
|
41
|
+
const icons = checks.map(r => r.passed ? '\u2705' : (r.severity === 'error' ? '\u274C' : '\u26A0\uFE0F')).join('');
|
|
42
|
+
// Check for autofixed items
|
|
43
|
+
const fixed = checks.filter(r => r.passed && r.autofix);
|
|
44
|
+
const fixedSuffix = fixed.length > 0 ? chalk.dim(` (${fixed.length} fixed)`) : '';
|
|
45
|
+
const label = formatCategory(category);
|
|
46
|
+
const ratio = `${categoryPassed}/${categoryTotal}`;
|
|
47
|
+
lines.push(chalk.dim('\u2502 ') + `${label}: ${icons} ${chalk.dim(ratio)}${fixedSuffix}`);
|
|
48
|
+
}
|
|
49
|
+
// Show failed checks details
|
|
50
|
+
const failed = result.results.filter(r => !r.passed && r.severity === 'error');
|
|
51
|
+
if (failed.length > 0) {
|
|
52
|
+
lines.push(chalk.dim('\u2502'));
|
|
53
|
+
for (const f of failed) {
|
|
54
|
+
lines.push(chalk.dim('\u2502 ') + chalk.red(`\u274C ${f.id}: ${f.details}`));
|
|
55
|
+
if (f.fix) {
|
|
56
|
+
lines.push(chalk.dim('\u2502 \u2192 ') + chalk.yellow(f.fix));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// ── Footer ──
|
|
62
|
+
lines.push(chalk.dim('\u2502'));
|
|
63
|
+
const footerParts = [];
|
|
64
|
+
if (result.fixesApplied > 0) {
|
|
65
|
+
footerParts.push(chalk.cyan(`\u{1F527} ${result.fixesApplied} autofix${result.fixesApplied !== 1 ? 'es' : ''} applied`));
|
|
66
|
+
}
|
|
67
|
+
footerParts.push(`${warnings} warning${warnings !== 1 ? 's' : ''}`);
|
|
68
|
+
footerParts.push(`${errors} error${errors !== 1 ? 's' : ''}`);
|
|
69
|
+
lines.push(chalk.dim('\u2502 ') + footerParts.join(chalk.dim(' \u2502 ')));
|
|
70
|
+
lines.push(chalk.dim('\u2570') + chalk.dim('\u2500'.repeat(60)) + chalk.dim('\u256F'));
|
|
71
|
+
return lines.join('\n');
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Render a compact one-line validation result (for status bar or non-verbose).
|
|
75
|
+
*/
|
|
76
|
+
export function renderValidationOneLine(result) {
|
|
77
|
+
const passed = result.results.filter(r => r.passed).length;
|
|
78
|
+
const total = result.results.length;
|
|
79
|
+
const icon = result.status === 'passed' ? '\u2705' : result.status === 'warnings' ? '\u26A0\uFE0F' : '\u274C';
|
|
80
|
+
return `${icon} Validation: ${passed}/${total} checks passed (${result.duration}ms)`;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Show validation start indicator.
|
|
84
|
+
*/
|
|
85
|
+
export function renderValidationStart() {
|
|
86
|
+
return chalk.dim('\n \u{1F50D} Validating output...\n');
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Render classification info (for verbose mode).
|
|
90
|
+
*/
|
|
91
|
+
export function renderClassification(category, complexity, criteriaCount) {
|
|
92
|
+
return chalk.dim(` \u{1F4CB} Task: ${category} | Complexity: ${complexity} | ${criteriaCount} criteria`);
|
|
93
|
+
}
|
|
94
|
+
// ── Helpers ──
|
|
95
|
+
function getStatusIcon(status) {
|
|
96
|
+
switch (status) {
|
|
97
|
+
case 'passed': return '\u2705';
|
|
98
|
+
case 'warnings': return '\u26A0\uFE0F';
|
|
99
|
+
case 'errors': return '\u274C';
|
|
100
|
+
case 'max_loops': return '\u{1F504}';
|
|
101
|
+
default: return '\u2753';
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function headerColor(status) {
|
|
105
|
+
switch (status) {
|
|
106
|
+
case 'passed': return chalk.green;
|
|
107
|
+
case 'warnings': return chalk.yellow;
|
|
108
|
+
case 'errors': return chalk.red;
|
|
109
|
+
case 'max_loops': return chalk.hex('#FF6600');
|
|
110
|
+
default: return chalk.white;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
function formatCategory(category) {
|
|
114
|
+
const labels = {
|
|
115
|
+
structural: 'Structural ',
|
|
116
|
+
completeness: 'Completeness',
|
|
117
|
+
consistency: 'Consistency ',
|
|
118
|
+
logic: 'Logic ',
|
|
119
|
+
style: 'Style ',
|
|
120
|
+
security: 'Security ',
|
|
121
|
+
performance: 'Performance ',
|
|
122
|
+
quality: 'Quality ',
|
|
123
|
+
};
|
|
124
|
+
return chalk.bold(labels[category] || category.padEnd(12));
|
|
125
|
+
}
|
|
126
|
+
function groupByCategory(results) {
|
|
127
|
+
const grouped = new Map();
|
|
128
|
+
const order = ['structural', 'quality', 'completeness', 'consistency', 'logic', 'style', 'security', 'performance'];
|
|
129
|
+
// Pre-fill in order
|
|
130
|
+
for (const cat of order) {
|
|
131
|
+
grouped.set(cat, []);
|
|
132
|
+
}
|
|
133
|
+
for (const r of results) {
|
|
134
|
+
// Infer category from ID patterns
|
|
135
|
+
const category = inferCategory(r.id);
|
|
136
|
+
const list = grouped.get(category);
|
|
137
|
+
if (list) {
|
|
138
|
+
list.push(r);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
grouped.set(category, [r]);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// Remove empty categories
|
|
145
|
+
for (const [key, val] of grouped) {
|
|
146
|
+
if (val.length === 0)
|
|
147
|
+
grouped.delete(key);
|
|
148
|
+
}
|
|
149
|
+
return grouped;
|
|
150
|
+
}
|
|
151
|
+
const CATEGORY_MAP = {
|
|
152
|
+
// Structural
|
|
153
|
+
'html-valid': 'structural',
|
|
154
|
+
'links-valid': 'structural',
|
|
155
|
+
'ids-unique': 'structural',
|
|
156
|
+
'img-alt': 'structural',
|
|
157
|
+
'syntax-valid': 'structural',
|
|
158
|
+
'status-codes': 'structural',
|
|
159
|
+
'events-bound': 'structural',
|
|
160
|
+
'imports-resolve': 'structural',
|
|
161
|
+
'bracket-balance': 'structural',
|
|
162
|
+
'types-consistent': 'structural',
|
|
163
|
+
'assertions-exist': 'structural',
|
|
164
|
+
'mocks-cleanup': 'structural',
|
|
165
|
+
// Quality
|
|
166
|
+
'code-duplication': 'quality',
|
|
167
|
+
'outdated-references': 'quality',
|
|
168
|
+
// Completeness
|
|
169
|
+
'requirements-met': 'completeness',
|
|
170
|
+
'responsive': 'completeness',
|
|
171
|
+
'bug-addressed': 'completeness',
|
|
172
|
+
'output-format': 'completeness',
|
|
173
|
+
// Consistency
|
|
174
|
+
'style-match': 'consistency',
|
|
175
|
+
'naming-match': 'consistency',
|
|
176
|
+
'response-format': 'consistency',
|
|
177
|
+
'pattern-match': 'consistency',
|
|
178
|
+
// Logic
|
|
179
|
+
'no-dead-code': 'logic',
|
|
180
|
+
'async-await': 'logic',
|
|
181
|
+
'error-handling': 'logic',
|
|
182
|
+
'no-regression': 'logic',
|
|
183
|
+
'edge-cases': 'logic',
|
|
184
|
+
'input-handled': 'logic',
|
|
185
|
+
'no-circular': 'logic',
|
|
186
|
+
'separation': 'logic',
|
|
187
|
+
'false-positive': 'logic',
|
|
188
|
+
'behavior': 'logic',
|
|
189
|
+
// Security
|
|
190
|
+
'sql-injection': 'security',
|
|
191
|
+
'no-hardcoded': 'security',
|
|
192
|
+
'no-secrets': 'security',
|
|
193
|
+
'auth-check': 'security',
|
|
194
|
+
'security-check': 'security',
|
|
195
|
+
};
|
|
196
|
+
function inferCategory(id) {
|
|
197
|
+
if (CATEGORY_MAP[id])
|
|
198
|
+
return CATEGORY_MAP[id];
|
|
199
|
+
if (id.startsWith('dyn-'))
|
|
200
|
+
return 'completeness';
|
|
201
|
+
if (id.startsWith('spiral-style') || id.startsWith('spiral-pattern'))
|
|
202
|
+
return 'consistency';
|
|
203
|
+
if (id.startsWith('spiral-bugs'))
|
|
204
|
+
return 'logic';
|
|
205
|
+
if (id.startsWith('spiral-'))
|
|
206
|
+
return 'completeness';
|
|
207
|
+
return 'structural';
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=reporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../../src/cli/validation/reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spiral-based validation — checks output against project knowledge stored in spiral memory.
|
|
3
|
+
* Queries spiral for known patterns, styles, and previous bugs.
|
|
4
|
+
*/
|
|
5
|
+
import type { SpiralEngine } from '../../spiral/engine.js';
|
|
6
|
+
import type { CheckResult } from './static-checks.js';
|
|
7
|
+
/**
|
|
8
|
+
* Run all spiral-based checks.
|
|
9
|
+
* Queries the spiral for project knowledge and compares against the output.
|
|
10
|
+
*/
|
|
11
|
+
export declare function runSpiralChecks(output: string, engine: SpiralEngine | undefined): Promise<CheckResult[]>;
|
|
12
|
+
//# sourceMappingURL=spiral-checks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spiral-checks.d.ts","sourceRoot":"","sources":["../../../src/cli/validation/spiral-checks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,GAAG,SAAS,GAC/B,OAAO,CAAC,WAAW,EAAE,CAAC,CAsBxB"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run all spiral-based checks.
|
|
3
|
+
* Queries the spiral for project knowledge and compares against the output.
|
|
4
|
+
*/
|
|
5
|
+
export async function runSpiralChecks(output, engine) {
|
|
6
|
+
if (!engine)
|
|
7
|
+
return [];
|
|
8
|
+
const results = [];
|
|
9
|
+
try {
|
|
10
|
+
// 1. Style consistency check
|
|
11
|
+
const styleResult = await checkStyleConsistency(output, engine);
|
|
12
|
+
if (styleResult)
|
|
13
|
+
results.push(styleResult);
|
|
14
|
+
// 2. Pattern consistency check
|
|
15
|
+
const patternResult = await checkPatternConsistency(output, engine);
|
|
16
|
+
if (patternResult)
|
|
17
|
+
results.push(patternResult);
|
|
18
|
+
// 3. Known bug patterns check
|
|
19
|
+
const bugResult = await checkKnownBugPatterns(output, engine);
|
|
20
|
+
if (bugResult)
|
|
21
|
+
results.push(bugResult);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
// Spiral checks are non-critical — don't block on failure
|
|
25
|
+
}
|
|
26
|
+
return results;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Check if the output uses colors/fonts consistent with the project.
|
|
30
|
+
*/
|
|
31
|
+
async function checkStyleConsistency(output, engine) {
|
|
32
|
+
try {
|
|
33
|
+
const styleQuery = await engine.query('project style colors fonts design theme', undefined, [3, 4, 5]);
|
|
34
|
+
if (styleQuery.node_count === 0)
|
|
35
|
+
return null;
|
|
36
|
+
// Extract colors from spiral knowledge
|
|
37
|
+
const spiralText = [
|
|
38
|
+
...styleQuery.level_3.map(n => n.content),
|
|
39
|
+
...styleQuery.level_4.map(n => n.content),
|
|
40
|
+
...styleQuery.level_5.map(n => n.content),
|
|
41
|
+
].join('\n');
|
|
42
|
+
const knownColors = spiralText.match(/#[0-9a-fA-F]{3,8}/g);
|
|
43
|
+
if (!knownColors || knownColors.length === 0)
|
|
44
|
+
return null;
|
|
45
|
+
// Extract colors from output
|
|
46
|
+
const outputColors = output.match(/#[0-9a-fA-F]{3,8}/g);
|
|
47
|
+
if (!outputColors || outputColors.length === 0)
|
|
48
|
+
return null;
|
|
49
|
+
// Check if output uses project colors
|
|
50
|
+
const uniqueKnown = new Set(knownColors.map(c => c.toLowerCase()));
|
|
51
|
+
const uniqueOutput = new Set(outputColors.map(c => c.toLowerCase()));
|
|
52
|
+
const overlap = [...uniqueOutput].filter(c => uniqueKnown.has(c));
|
|
53
|
+
if (overlap.length === 0 && uniqueOutput.size > 0) {
|
|
54
|
+
return {
|
|
55
|
+
id: 'spiral-style',
|
|
56
|
+
passed: false,
|
|
57
|
+
details: `Output uses colors not found in project: ${[...uniqueOutput].slice(0, 3).join(', ')}. Known project colors: ${[...uniqueKnown].slice(0, 3).join(', ')}`,
|
|
58
|
+
fix: `Consider using project colors: ${[...uniqueKnown].slice(0, 3).join(', ')}`,
|
|
59
|
+
severity: 'info',
|
|
60
|
+
autofix: true,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
id: 'spiral-style',
|
|
65
|
+
passed: true,
|
|
66
|
+
details: 'Colors consistent with project',
|
|
67
|
+
severity: 'info',
|
|
68
|
+
autofix: false,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Check if the output follows project coding patterns.
|
|
77
|
+
*/
|
|
78
|
+
async function checkPatternConsistency(output, engine) {
|
|
79
|
+
try {
|
|
80
|
+
const patternQuery = await engine.query('code patterns conventions naming imports', undefined, [4, 5]);
|
|
81
|
+
if (patternQuery.node_count === 0)
|
|
82
|
+
return null;
|
|
83
|
+
const spiralText = [
|
|
84
|
+
...patternQuery.level_4.map(n => n.content),
|
|
85
|
+
...patternQuery.level_5.map(n => n.content),
|
|
86
|
+
].join('\n');
|
|
87
|
+
const issues = [];
|
|
88
|
+
// Check import style consistency
|
|
89
|
+
if (spiralText.includes("from '") && output.includes('from "')) {
|
|
90
|
+
issues.push('Project uses single quotes for imports, output uses double quotes');
|
|
91
|
+
}
|
|
92
|
+
if (spiralText.includes('from "') && output.includes("from '")) {
|
|
93
|
+
issues.push('Project uses double quotes for imports, output uses single quotes');
|
|
94
|
+
}
|
|
95
|
+
// Check semicolon consistency
|
|
96
|
+
const spiralHasSemicolons = (spiralText.match(/;\s*$/gm) || []).length > 5;
|
|
97
|
+
const outputHasSemicolons = (output.match(/;\s*$/gm) || []).length > 2;
|
|
98
|
+
const spiralNoSemicolons = !spiralHasSemicolons && spiralText.includes('const ');
|
|
99
|
+
if (spiralHasSemicolons && !outputHasSemicolons && output.includes('const ')) {
|
|
100
|
+
issues.push('Project uses semicolons, output does not');
|
|
101
|
+
}
|
|
102
|
+
if (spiralNoSemicolons && outputHasSemicolons) {
|
|
103
|
+
issues.push('Project omits semicolons, output uses them');
|
|
104
|
+
}
|
|
105
|
+
if (issues.length > 0) {
|
|
106
|
+
return {
|
|
107
|
+
id: 'spiral-pattern',
|
|
108
|
+
passed: false,
|
|
109
|
+
details: issues.join('; '),
|
|
110
|
+
severity: 'info',
|
|
111
|
+
autofix: true,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
id: 'spiral-pattern',
|
|
116
|
+
passed: true,
|
|
117
|
+
details: 'Follows project patterns',
|
|
118
|
+
severity: 'info',
|
|
119
|
+
autofix: false,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Check if the output repeats known bug patterns from the project history.
|
|
128
|
+
*/
|
|
129
|
+
async function checkKnownBugPatterns(output, engine) {
|
|
130
|
+
try {
|
|
131
|
+
const bugQuery = await engine.query('bug error fix issue problem', undefined, [2, 3]);
|
|
132
|
+
if (bugQuery.node_count === 0)
|
|
133
|
+
return null;
|
|
134
|
+
const bugPatterns = [
|
|
135
|
+
...bugQuery.level_2.map(n => n.content),
|
|
136
|
+
...bugQuery.level_3.map(n => n.content),
|
|
137
|
+
];
|
|
138
|
+
// Simple heuristic: check if output contains patterns that were previously buggy
|
|
139
|
+
const warningPatterns = [];
|
|
140
|
+
for (const bugContent of bugPatterns) {
|
|
141
|
+
// Extract code patterns from bug reports
|
|
142
|
+
const codePatterns = bugContent.match(/`([^`]+)`/g);
|
|
143
|
+
if (codePatterns) {
|
|
144
|
+
for (const pattern of codePatterns) {
|
|
145
|
+
const clean = pattern.replace(/`/g, '');
|
|
146
|
+
if (clean.length > 10 && output.includes(clean)) {
|
|
147
|
+
warningPatterns.push(clean.slice(0, 50));
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
if (warningPatterns.length > 0) {
|
|
153
|
+
return {
|
|
154
|
+
id: 'spiral-bugs',
|
|
155
|
+
passed: false,
|
|
156
|
+
details: `Output contains patterns from previous bugs: ${warningPatterns.join(', ')}`,
|
|
157
|
+
severity: 'warning',
|
|
158
|
+
autofix: false,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
return null; // No known bug patterns found — skip (don't report as pass)
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=spiral-checks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spiral-checks.js","sourceRoot":"","sources":["../../../src/cli/validation/spiral-checks.ts"],"names":[],"mappings":"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"}
|