helixmind 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of helixmind might be problematic. Click here for more details.
- package/LICENSE +20 -0
- package/README.md +207 -0
- package/dist/cli/agent/autonomous.d.ts +10 -0
- package/dist/cli/agent/autonomous.d.ts.map +1 -0
- package/dist/cli/agent/autonomous.js +172 -0
- package/dist/cli/agent/autonomous.js.map +1 -0
- package/dist/cli/agent/loop.d.ts +76 -0
- package/dist/cli/agent/loop.d.ts.map +1 -0
- package/dist/cli/agent/loop.js +333 -0
- package/dist/cli/agent/loop.js.map +1 -0
- package/dist/cli/agent/permissions.d.ts +28 -0
- package/dist/cli/agent/permissions.d.ts.map +1 -0
- package/dist/cli/agent/permissions.js +180 -0
- package/dist/cli/agent/permissions.js.map +1 -0
- package/dist/cli/agent/sandbox.d.ts +17 -0
- package/dist/cli/agent/sandbox.d.ts.map +1 -0
- package/dist/cli/agent/sandbox.js +124 -0
- package/dist/cli/agent/sandbox.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 +49 -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 +51 -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 +36 -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 +32 -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 +38 -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 +18 -0
- package/dist/cli/agent/tools/registry.d.ts.map +1 -0
- package/dist/cli/agent/tools/registry.js +31 -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 +79 -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 +91 -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 +168 -0
- package/dist/cli/auth/callback-server.js.map +1 -0
- package/dist/cli/auth/feature-gate.d.ts +19 -0
- package/dist/cli/auth/feature-gate.d.ts.map +1 -0
- package/dist/cli/auth/feature-gate.js +74 -0
- package/dist/cli/auth/feature-gate.js.map +1 -0
- package/dist/cli/auth/guard.d.ts +10 -0
- package/dist/cli/auth/guard.d.ts.map +1 -0
- package/dist/cli/auth/guard.js +46 -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 +194 -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 +159 -0
- package/dist/cli/brain/archive.js.map +1 -0
- package/dist/cli/brain/control-protocol.d.ts +159 -0
- package/dist/cli/brain/control-protocol.d.ts.map +1 -0
- package/dist/cli/brain/control-protocol.js +41 -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 +67 -0
- package/dist/cli/brain/generator.d.ts.map +1 -0
- package/dist/cli/brain/generator.js +239 -0
- package/dist/cli/brain/generator.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 +173 -0
- package/dist/cli/brain/relay-client.js.map +1 -0
- package/dist/cli/brain/server.d.ts +34 -0
- package/dist/cli/brain/server.d.ts.map +1 -0
- package/dist/cli/brain/server.js +425 -0
- package/dist/cli/brain/server.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 +2072 -0
- package/dist/cli/brain/template.js.map +1 -0
- package/dist/cli/checkpoints/browser.d.ts +27 -0
- package/dist/cli/checkpoints/browser.d.ts.map +1 -0
- package/dist/cli/checkpoints/browser.js +238 -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 +43 -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 +188 -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 +2321 -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 +41 -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 +26 -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 +314 -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 +72 -0
- package/dist/cli/config/store.d.ts.map +1 -0
- package/dist/cli/config/store.js +241 -0
- package/dist/cli/config/store.js.map +1 -0
- package/dist/cli/context/assembler.d.ts +8 -0
- package/dist/cli/context/assembler.d.ts.map +1 -0
- package/dist/cli/context/assembler.js +124 -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 +57 -0
- package/dist/cli/context/session-buffer.d.ts.map +1 -0
- package/dist/cli/context/session-buffer.js +268 -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 +105 -0
- package/dist/cli/context/trimmer.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 +32 -0
- package/dist/cli/feed/pipeline.d.ts.map +1 -0
- package/dist/cli/feed/pipeline.js +242 -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/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +204 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/providers/anthropic.d.ts +10 -0
- package/dist/cli/providers/anthropic.d.ts.map +1 -0
- package/dist/cli/providers/anthropic.js +117 -0
- package/dist/cli/providers/anthropic.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 +13 -0
- package/dist/cli/providers/openai.d.ts.map +1 -0
- package/dist/cli/providers/openai.js +283 -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 +61 -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 +200 -0
- package/dist/cli/sessions/manager.js.map +1 -0
- package/dist/cli/sessions/session.d.ts +54 -0
- package/dist/cli/sessions/session.d.ts.map +1 -0
- package/dist/cli/sessions/session.js +70 -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 +134 -0
- package/dist/cli/sessions/tab-view.js.map +1 -0
- package/dist/cli/ui/activity.d.ts +82 -0
- package/dist/cli/ui/activity.d.ts.map +1 -0
- package/dist/cli/ui/activity.js +309 -0
- package/dist/cli/ui/activity.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 +165 -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 +115 -0
- package/dist/cli/ui/command-suggest.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/progress.d.ts +21 -0
- package/dist/cli/ui/progress.d.ts.map +1 -0
- package/dist/cli/ui/progress.js +125 -0
- package/dist/cli/ui/progress.js.map +1 -0
- package/dist/cli/ui/select-menu.d.ts +22 -0
- package/dist/cli/ui/select-menu.d.ts.map +1 -0
- package/dist/cli/ui/select-menu.js +152 -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 +65 -0
- package/dist/cli/ui/statusbar.d.ts.map +1 -0
- package/dist/cli/ui/statusbar.js +272 -0
- package/dist/cli/ui/statusbar.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 +25 -0
- package/dist/cli/ui/tool-output.d.ts.map +1 -0
- package/dist/cli/ui/tool-output.js +171 -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 +167 -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 +492 -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/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 +43 -0
- package/dist/server.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 +212 -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 +170 -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 +24 -0
- package/dist/spiral/embeddings.d.ts.map +1 -0
- package/dist/spiral/embeddings.js +69 -0
- package/dist/spiral/embeddings.js.map +1 -0
- package/dist/spiral/engine.d.ts +95 -0
- package/dist/spiral/engine.d.ts.map +1 -0
- package/dist/spiral/engine.js +271 -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 +164 -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 +141 -0
- package/dist/storage/database.js.map +1 -0
- package/dist/storage/edges.d.ts +25 -0
- package/dist/storage/edges.d.ts.map +1 -0
- package/dist/storage/edges.js +69 -0
- package/dist/storage/edges.js.map +1 -0
- package/dist/storage/nodes.d.ts +45 -0
- package/dist/storage/nodes.d.ts.map +1 -0
- package/dist/storage/nodes.js +124 -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 +92 -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 +90 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab-view.js","sourceRoot":"","sources":["../../../src/cli/sessions/tab-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
declare function formatElapsed(ms: number): string;
|
|
2
|
+
export declare class ActivityIndicator {
|
|
3
|
+
private interval;
|
|
4
|
+
private frame;
|
|
5
|
+
private stepNum;
|
|
6
|
+
private stepLabel;
|
|
7
|
+
private totalSteps;
|
|
8
|
+
private errors;
|
|
9
|
+
private startTime;
|
|
10
|
+
private _blockMode;
|
|
11
|
+
private _finalElapsed;
|
|
12
|
+
private _originalWrite;
|
|
13
|
+
private _lastBarContent;
|
|
14
|
+
private _redrawScheduled;
|
|
15
|
+
start(): void;
|
|
16
|
+
/** Resume the animation without resetting the timer */
|
|
17
|
+
resumeAnimation(): void;
|
|
18
|
+
/** Pause the animation but keep the timer running (hook stays active) */
|
|
19
|
+
pauseAnimation(): void;
|
|
20
|
+
/** Toggle block mode — shows | prefix when inside a tool block */
|
|
21
|
+
setBlockMode(on: boolean): void;
|
|
22
|
+
setStep(num: number, label: string): void;
|
|
23
|
+
setError(): void;
|
|
24
|
+
/**
|
|
25
|
+
* Stop the activity indicator and write a final status line.
|
|
26
|
+
* Resets scroll region, unhooks stdout, clears bottom row, writes "Done" inline.
|
|
27
|
+
*/
|
|
28
|
+
stop(message?: string): void;
|
|
29
|
+
get isRunning(): boolean;
|
|
30
|
+
get isAnimating(): boolean;
|
|
31
|
+
/** Get elapsed time in ms since start() (or saved value after stop) */
|
|
32
|
+
get elapsed(): number;
|
|
33
|
+
/**
|
|
34
|
+
* Called on terminal resize to update protections while active.
|
|
35
|
+
*/
|
|
36
|
+
handleResize(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Monkey-patch process.stdout.write so that after every normal write,
|
|
39
|
+
* a nextTick redraws the bar. This guarantees the bottom row is never
|
|
40
|
+
* left showing stale content — even if the terminal ignores scroll regions.
|
|
41
|
+
*
|
|
42
|
+
* nextTick batching prevents interrupting multi-part ANSI sequences
|
|
43
|
+
* (e.g. a write of "\x1b[" followed by "31m" won't have a bar redraw
|
|
44
|
+
* injected between them).
|
|
45
|
+
*/
|
|
46
|
+
private _hookStdout;
|
|
47
|
+
/** Restore the original stdout.write */
|
|
48
|
+
private _unhookStdout;
|
|
49
|
+
/** Write directly to the real stdout, bypassing the hook */
|
|
50
|
+
private _rawWrite;
|
|
51
|
+
/**
|
|
52
|
+
* Write content to the bottom terminal row.
|
|
53
|
+
* Uses cursor save/restore so the caller's position is preserved.
|
|
54
|
+
* Empty string = clear the row.
|
|
55
|
+
*/
|
|
56
|
+
private _writeToBottomRow;
|
|
57
|
+
/**
|
|
58
|
+
* Set scroll region to rows 1..(N-1), reserving row N for the bar.
|
|
59
|
+
* Move cursor into the region so readline/prompt don't land on row N.
|
|
60
|
+
*/
|
|
61
|
+
private _setScrollRegion;
|
|
62
|
+
/** Reset scroll region to full screen */
|
|
63
|
+
private _resetScrollRegion;
|
|
64
|
+
private render;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Render a task summary after agent completes.
|
|
68
|
+
*/
|
|
69
|
+
export interface TaskStep {
|
|
70
|
+
num: number;
|
|
71
|
+
tool: string;
|
|
72
|
+
label: string;
|
|
73
|
+
status: 'done' | 'error';
|
|
74
|
+
error?: string;
|
|
75
|
+
}
|
|
76
|
+
export declare function renderTaskSummary(steps: TaskStep[], durationMs?: number): void;
|
|
77
|
+
/**
|
|
78
|
+
* Render a completion indicator after the agent finishes.
|
|
79
|
+
*/
|
|
80
|
+
export declare function renderCompletion(durationMs: number, tokenCount?: number): void;
|
|
81
|
+
export { formatElapsed };
|
|
82
|
+
//# sourceMappingURL=activity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/activity.ts"],"names":[],"mappings":"AA+BA,iBAAS,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQzC;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAA+C;IAC/D,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAK;IAG1B,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,gBAAgB,CAAS;IAEjC,KAAK,IAAI,IAAI;IAYb,uDAAuD;IACvD,eAAe,IAAI,IAAI;IASvB,yEAAyE;IACzE,cAAc,IAAI,IAAI;IAStB,kEAAkE;IAClE,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAI/B,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAMzC,QAAQ,IAAI,IAAI;IAIhB;;;OAGG;IACH,IAAI,CAAC,OAAO,GAAE,MAAe,GAAG,IAAI;IAmCpC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,uEAAuE;IACvE,IAAI,OAAO,IAAI,MAAM,CAGpB;IAED;;OAEG;IACH,YAAY,IAAI,IAAI;IAWpB;;;;;;;;OAQG;IACH,OAAO,CAAC,WAAW;IAoBnB,wCAAwC;IACxC,OAAO,CAAC,aAAa;IAUrB,4DAA4D;IAC5D,OAAO,CAAC,SAAS;IAKjB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAWxB,yCAAyC;IACzC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,MAAM;CAuCf;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CA6B9E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAM9E;AAQD,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
/**
|
|
3
|
+
* Glowing activity indicator with color-wave animation across "HelixMind" text.
|
|
4
|
+
* Shows elapsed time, step info, and error count during agent work.
|
|
5
|
+
*
|
|
6
|
+
* TWO-LAYER protection keeps the bottom row reserved at all costs:
|
|
7
|
+
*
|
|
8
|
+
* Layer 1 — SCROLL REGION (best-effort, terminal-dependent)
|
|
9
|
+
* Sets DECSTBM so rows 1..(N-1) scroll normally, row N is untouchable.
|
|
10
|
+
* Works on Windows Terminal, iTerm, GNOME Terminal, xterm, etc.
|
|
11
|
+
* May not work fully on legacy cmd.exe / conhost.
|
|
12
|
+
*
|
|
13
|
+
* Layer 2 — STDOUT HOOK (bulletproof, works everywhere)
|
|
14
|
+
* Monkey-patches process.stdout.write. After every normal write,
|
|
15
|
+
* a process.nextTick redraws the bar on the bottom row. This catches
|
|
16
|
+
* any content that leaks past the scroll region (or when scroll regions
|
|
17
|
+
* aren't supported). The nextTick batching avoids interrupting
|
|
18
|
+
* multi-part ANSI sequences.
|
|
19
|
+
*/
|
|
20
|
+
const GRADIENT = [
|
|
21
|
+
'#00d4ff', '#00c0f0', '#0aace0', '#1498d0', '#2084c0',
|
|
22
|
+
'#2c70b0', '#385ca0', '#4450a0', '#5040b0', '#6030c0',
|
|
23
|
+
'#7028d0', '#8a2be2', '#7028d0', '#6030c0', '#5040b0',
|
|
24
|
+
'#4450a0', '#385ca0', '#2c70b0', '#2084c0', '#1498d0',
|
|
25
|
+
'#0aace0', '#00c0f0',
|
|
26
|
+
];
|
|
27
|
+
const PULSE_SYMBOLS = ['\u27E1', '\u25C6', '\u27E1', '\u25C7'];
|
|
28
|
+
function formatElapsed(ms) {
|
|
29
|
+
const totalSec = Math.floor(ms / 1000);
|
|
30
|
+
if (totalSec < 60)
|
|
31
|
+
return `${totalSec}s`;
|
|
32
|
+
const min = Math.floor(totalSec / 60);
|
|
33
|
+
const sec = totalSec % 60;
|
|
34
|
+
if (min < 60)
|
|
35
|
+
return `${min}m ${sec}s`;
|
|
36
|
+
const hr = Math.floor(min / 60);
|
|
37
|
+
return `${hr}h ${min % 60}m`;
|
|
38
|
+
}
|
|
39
|
+
export class ActivityIndicator {
|
|
40
|
+
interval = null;
|
|
41
|
+
frame = 0;
|
|
42
|
+
stepNum = 0;
|
|
43
|
+
stepLabel = '';
|
|
44
|
+
totalSteps = 0;
|
|
45
|
+
errors = 0;
|
|
46
|
+
startTime = 0;
|
|
47
|
+
_blockMode = false;
|
|
48
|
+
_finalElapsed = 0;
|
|
49
|
+
// ─── stdout hook state ────────────────────────────────────
|
|
50
|
+
_originalWrite = null;
|
|
51
|
+
_lastBarContent = '';
|
|
52
|
+
_redrawScheduled = false;
|
|
53
|
+
start() {
|
|
54
|
+
this.frame = 0;
|
|
55
|
+
this.stepNum = 0;
|
|
56
|
+
this.stepLabel = '';
|
|
57
|
+
this.totalSteps = 0;
|
|
58
|
+
this.errors = 0;
|
|
59
|
+
this.startTime = Date.now();
|
|
60
|
+
this._hookStdout();
|
|
61
|
+
this._setScrollRegion();
|
|
62
|
+
this.resumeAnimation();
|
|
63
|
+
}
|
|
64
|
+
/** Resume the animation without resetting the timer */
|
|
65
|
+
resumeAnimation() {
|
|
66
|
+
if (this.interval)
|
|
67
|
+
return; // already running
|
|
68
|
+
this.interval = setInterval(() => {
|
|
69
|
+
this.frame++;
|
|
70
|
+
this.render();
|
|
71
|
+
}, 80);
|
|
72
|
+
this.render();
|
|
73
|
+
}
|
|
74
|
+
/** Pause the animation but keep the timer running (hook stays active) */
|
|
75
|
+
pauseAnimation() {
|
|
76
|
+
if (this.interval) {
|
|
77
|
+
clearInterval(this.interval);
|
|
78
|
+
this.interval = null;
|
|
79
|
+
}
|
|
80
|
+
this._lastBarContent = '';
|
|
81
|
+
this._writeToBottomRow('');
|
|
82
|
+
}
|
|
83
|
+
/** Toggle block mode — shows | prefix when inside a tool block */
|
|
84
|
+
setBlockMode(on) {
|
|
85
|
+
this._blockMode = on;
|
|
86
|
+
}
|
|
87
|
+
setStep(num, label) {
|
|
88
|
+
this.stepNum = num;
|
|
89
|
+
this.totalSteps = num;
|
|
90
|
+
this.stepLabel = label;
|
|
91
|
+
}
|
|
92
|
+
setError() {
|
|
93
|
+
this.errors++;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Stop the activity indicator and write a final status line.
|
|
97
|
+
* Resets scroll region, unhooks stdout, clears bottom row, writes "Done" inline.
|
|
98
|
+
*/
|
|
99
|
+
stop(message = 'Done') {
|
|
100
|
+
if (this.startTime > 0) {
|
|
101
|
+
this._finalElapsed = Date.now() - this.startTime;
|
|
102
|
+
}
|
|
103
|
+
const wasAnimating = this.interval !== null;
|
|
104
|
+
if (this.interval) {
|
|
105
|
+
clearInterval(this.interval);
|
|
106
|
+
this.interval = null;
|
|
107
|
+
}
|
|
108
|
+
// Clear the bar, remove all protections
|
|
109
|
+
this._lastBarContent = '';
|
|
110
|
+
this._writeToBottomRow('');
|
|
111
|
+
this._resetScrollRegion();
|
|
112
|
+
this._unhookStdout();
|
|
113
|
+
if (this.startTime > 0 && wasAnimating) {
|
|
114
|
+
// Write colorful final status inline (part of conversation flow)
|
|
115
|
+
const text = 'HelixMind';
|
|
116
|
+
let coloredText = '';
|
|
117
|
+
for (let i = 0; i < text.length; i++) {
|
|
118
|
+
coloredText += chalk.hex(GRADIENT[i * 2 % GRADIENT.length]).bold(text[i]);
|
|
119
|
+
}
|
|
120
|
+
const timeStr = chalk.dim(formatElapsed(this._finalElapsed));
|
|
121
|
+
const pfx = this._blockMode ? ` ${chalk.dim('\u2502')} ` : ' ';
|
|
122
|
+
const icon = message === 'Done' ? chalk.green('\u2713') : chalk.red('\u2717');
|
|
123
|
+
const msgColor = message === 'Done' ? chalk.green(message) : chalk.red(message);
|
|
124
|
+
const finalLine = `${pfx}${icon} ${coloredText} ${msgColor} ${timeStr}`;
|
|
125
|
+
process.stdout.write(`${finalLine}\n`);
|
|
126
|
+
}
|
|
127
|
+
this.startTime = 0;
|
|
128
|
+
this._blockMode = false;
|
|
129
|
+
}
|
|
130
|
+
get isRunning() {
|
|
131
|
+
return this.startTime > 0;
|
|
132
|
+
}
|
|
133
|
+
get isAnimating() {
|
|
134
|
+
return this.interval !== null;
|
|
135
|
+
}
|
|
136
|
+
/** Get elapsed time in ms since start() (or saved value after stop) */
|
|
137
|
+
get elapsed() {
|
|
138
|
+
if (this.startTime > 0)
|
|
139
|
+
return Date.now() - this.startTime;
|
|
140
|
+
return this._finalElapsed;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Called on terminal resize to update protections while active.
|
|
144
|
+
*/
|
|
145
|
+
handleResize() {
|
|
146
|
+
if (this.isRunning) {
|
|
147
|
+
this._setScrollRegion();
|
|
148
|
+
if (this._lastBarContent) {
|
|
149
|
+
this._writeToBottomRow(this._lastBarContent);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// ─── Layer 2: stdout write hook ───────────────────────────
|
|
154
|
+
/**
|
|
155
|
+
* Monkey-patch process.stdout.write so that after every normal write,
|
|
156
|
+
* a nextTick redraws the bar. This guarantees the bottom row is never
|
|
157
|
+
* left showing stale content — even if the terminal ignores scroll regions.
|
|
158
|
+
*
|
|
159
|
+
* nextTick batching prevents interrupting multi-part ANSI sequences
|
|
160
|
+
* (e.g. a write of "\x1b[" followed by "31m" won't have a bar redraw
|
|
161
|
+
* injected between them).
|
|
162
|
+
*/
|
|
163
|
+
_hookStdout() {
|
|
164
|
+
if (!process.stdout.isTTY || this._originalWrite)
|
|
165
|
+
return;
|
|
166
|
+
this._originalWrite = process.stdout.write.bind(process.stdout);
|
|
167
|
+
const self = this;
|
|
168
|
+
process.stdout.write = function (...args) {
|
|
169
|
+
const result = self._originalWrite(...args);
|
|
170
|
+
// Schedule a single bar redraw after current synchronous writes finish
|
|
171
|
+
if (self._lastBarContent && !self._redrawScheduled) {
|
|
172
|
+
self._redrawScheduled = true;
|
|
173
|
+
process.nextTick(() => {
|
|
174
|
+
self._redrawScheduled = false;
|
|
175
|
+
if (self._lastBarContent) {
|
|
176
|
+
self._writeToBottomRow(self._lastBarContent);
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
return result;
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/** Restore the original stdout.write */
|
|
184
|
+
_unhookStdout() {
|
|
185
|
+
if (this._originalWrite) {
|
|
186
|
+
process.stdout.write = this._originalWrite;
|
|
187
|
+
this._originalWrite = null;
|
|
188
|
+
}
|
|
189
|
+
this._redrawScheduled = false;
|
|
190
|
+
}
|
|
191
|
+
// ─── Low-level rendering ──────────────────────────────────
|
|
192
|
+
/** Write directly to the real stdout, bypassing the hook */
|
|
193
|
+
_rawWrite(data) {
|
|
194
|
+
const write = this._originalWrite || process.stdout.write.bind(process.stdout);
|
|
195
|
+
write(data);
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Write content to the bottom terminal row.
|
|
199
|
+
* Uses cursor save/restore so the caller's position is preserved.
|
|
200
|
+
* Empty string = clear the row.
|
|
201
|
+
*/
|
|
202
|
+
_writeToBottomRow(content) {
|
|
203
|
+
const row = process.stdout.rows || 24;
|
|
204
|
+
this._rawWrite('\x1b[?25l' + // Hide cursor (prevents flash)
|
|
205
|
+
'\x1b7' + // Save cursor position
|
|
206
|
+
`\x1b[${row};1H` + // Move to bottom row, col 1
|
|
207
|
+
'\x1b[2K' + // Clear entire line
|
|
208
|
+
content + // Write content (or nothing to just clear)
|
|
209
|
+
'\x1b8' + // Restore cursor position
|
|
210
|
+
'\x1b[?25h');
|
|
211
|
+
}
|
|
212
|
+
// ─── Layer 1: scroll region (best-effort) ─────────────────
|
|
213
|
+
/**
|
|
214
|
+
* Set scroll region to rows 1..(N-1), reserving row N for the bar.
|
|
215
|
+
* Move cursor into the region so readline/prompt don't land on row N.
|
|
216
|
+
*/
|
|
217
|
+
_setScrollRegion() {
|
|
218
|
+
if (!process.stdout.isTTY)
|
|
219
|
+
return;
|
|
220
|
+
const rows = process.stdout.rows || 24;
|
|
221
|
+
if (rows < 4)
|
|
222
|
+
return;
|
|
223
|
+
const regionEnd = rows - 1;
|
|
224
|
+
this._rawWrite(`\x1b[1;${regionEnd}r` + // Set scroll region
|
|
225
|
+
`\x1b[${regionEnd};1H`);
|
|
226
|
+
}
|
|
227
|
+
/** Reset scroll region to full screen */
|
|
228
|
+
_resetScrollRegion() {
|
|
229
|
+
if (!process.stdout.isTTY)
|
|
230
|
+
return;
|
|
231
|
+
this._rawWrite('\x1b[r');
|
|
232
|
+
}
|
|
233
|
+
// ─── Animation rendering ──────────────────────────────────
|
|
234
|
+
render() {
|
|
235
|
+
if (!this.interval)
|
|
236
|
+
return;
|
|
237
|
+
// Pulsing symbol
|
|
238
|
+
const symbolIdx = Math.floor(this.frame / 4) % PULSE_SYMBOLS.length;
|
|
239
|
+
const symbolColor = GRADIENT[this.frame % GRADIENT.length];
|
|
240
|
+
const symbol = chalk.hex(symbolColor)(PULSE_SYMBOLS[symbolIdx]);
|
|
241
|
+
// Wave-colored "HelixMind" text
|
|
242
|
+
const text = 'HelixMind';
|
|
243
|
+
let coloredText = '';
|
|
244
|
+
for (let i = 0; i < text.length; i++) {
|
|
245
|
+
const gradIdx = (i * 2 + this.frame) % GRADIENT.length;
|
|
246
|
+
coloredText += chalk.hex(GRADIENT[gradIdx]).bold(text[i]);
|
|
247
|
+
}
|
|
248
|
+
// Animated dots
|
|
249
|
+
const dotCount = (Math.floor(this.frame / 5) % 3) + 1;
|
|
250
|
+
const dots = chalk.hex(symbolColor)('.'.repeat(dotCount).padEnd(3));
|
|
251
|
+
// Elapsed time
|
|
252
|
+
const elapsed = Date.now() - this.startTime;
|
|
253
|
+
const timeStr = chalk.dim(formatElapsed(elapsed));
|
|
254
|
+
const pfx = this._blockMode ? ` ${chalk.dim('\u2502')} ` : ' ';
|
|
255
|
+
let line = `${pfx}${symbol} ${coloredText} working${dots} ${timeStr}`;
|
|
256
|
+
// Step indicator
|
|
257
|
+
if (this.stepNum > 0) {
|
|
258
|
+
const stepColor = this.errors > 0 ? chalk.yellow : chalk.dim;
|
|
259
|
+
line += ` ${stepColor(`[Step ${this.stepNum}]`)}`;
|
|
260
|
+
if (this.stepLabel) {
|
|
261
|
+
line += ` ${chalk.dim(this.stepLabel.slice(0, 40))}`;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
this._lastBarContent = ` ${line}`;
|
|
265
|
+
this._writeToBottomRow(this._lastBarContent);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
export function renderTaskSummary(steps, durationMs) {
|
|
269
|
+
if (steps.length === 0)
|
|
270
|
+
return;
|
|
271
|
+
const done = steps.filter(s => s.status === 'done').length;
|
|
272
|
+
const errors = steps.filter(s => s.status === 'error').length;
|
|
273
|
+
process.stdout.write('\n');
|
|
274
|
+
process.stdout.write(chalk.dim(' \u250C\u2500 Task Summary \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n'));
|
|
275
|
+
for (const step of steps) {
|
|
276
|
+
const icon = step.status === 'done'
|
|
277
|
+
? chalk.green('\u2713')
|
|
278
|
+
: chalk.red('\u2717');
|
|
279
|
+
const label = step.status === 'error'
|
|
280
|
+
? `${step.label} ${chalk.red(`(${step.error?.slice(0, 40) || 'error'})`)}`
|
|
281
|
+
: step.label;
|
|
282
|
+
process.stdout.write(chalk.dim(` \u2502 `) + `${icon} ${chalk.dim(`Step ${step.num}:`)} ${label}\n`);
|
|
283
|
+
}
|
|
284
|
+
const summaryText = errors > 0
|
|
285
|
+
? `${done} done, ${chalk.red(`${errors} error${errors > 1 ? 's' : ''}`)}`
|
|
286
|
+
: `${done} steps completed`;
|
|
287
|
+
const durationText = durationMs != null
|
|
288
|
+
? chalk.dim(` in ${formatElapsed(durationMs)}`)
|
|
289
|
+
: '';
|
|
290
|
+
process.stdout.write(chalk.dim(` \u2502\n \u2502 ${summaryText}${durationText}\n`));
|
|
291
|
+
process.stdout.write(chalk.dim(' \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n'));
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Render a completion indicator after the agent finishes.
|
|
295
|
+
*/
|
|
296
|
+
export function renderCompletion(durationMs, tokenCount) {
|
|
297
|
+
const timeStr = formatElapsed(durationMs);
|
|
298
|
+
const tokenStr = tokenCount ? ` \u00B7 ${formatTokens(tokenCount)} tokens` : '';
|
|
299
|
+
process.stdout.write(` ${chalk.green('\u2713')} ${chalk.dim(`Done in ${timeStr}${tokenStr}`)}\n`);
|
|
300
|
+
}
|
|
301
|
+
function formatTokens(n) {
|
|
302
|
+
if (n < 1000)
|
|
303
|
+
return String(n);
|
|
304
|
+
if (n < 100_000)
|
|
305
|
+
return (n / 1000).toFixed(1) + 'k';
|
|
306
|
+
return Math.round(n / 1000) + 'k';
|
|
307
|
+
}
|
|
308
|
+
export { formatElapsed };
|
|
309
|
+
//# sourceMappingURL=activity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../../../src/cli/ui/activity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare function renderMarkdown(text: string): string;
|
|
2
|
+
export declare function renderUserMessage(message: string): void;
|
|
3
|
+
export declare function renderAssistantStart(): void;
|
|
4
|
+
export declare function renderStreamToken(token: string): void;
|
|
5
|
+
export declare function getLastAnswerRow(): number;
|
|
6
|
+
export declare function renderAssistantEnd(fullText: string): void;
|
|
7
|
+
export declare function renderError(message: string): void;
|
|
8
|
+
export declare function renderInfo(message: string): void;
|
|
9
|
+
export declare function renderSpiralStatus(nodeCount: number, l1: number, l2: number, l3: number, l4?: number, l5?: number): void;
|
|
10
|
+
//# sourceMappingURL=chat-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-view.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/chat-view.ts"],"names":[],"mappings":"AA4CA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEvD;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAErD;AAQD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAmED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAqBzD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,GAAE,MAAU,EACd,EAAE,GAAE,MAAU,GACb,IAAI,CAUN"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { Marked } from 'marked';
|
|
2
|
+
import { markedTerminal } from 'marked-terminal';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { theme } from './theme.js';
|
|
5
|
+
// Configure marked for terminal output with Claude Code-quality rendering
|
|
6
|
+
const marked = new Marked();
|
|
7
|
+
marked.use(markedTerminal({
|
|
8
|
+
// Code blocks: clean borders with syntax highlighting
|
|
9
|
+
code: chalk.hex('#e6e6e6'),
|
|
10
|
+
codespan: chalk.hex('#00d4ff'),
|
|
11
|
+
// Headings: bold with brand color hierarchy
|
|
12
|
+
heading: chalk.hex('#00d4ff').bold,
|
|
13
|
+
// Strong/emphasis
|
|
14
|
+
strong: chalk.bold,
|
|
15
|
+
em: chalk.italic,
|
|
16
|
+
// Links
|
|
17
|
+
href: chalk.hex('#4169e1').underline,
|
|
18
|
+
// Lists
|
|
19
|
+
listitem: chalk.white,
|
|
20
|
+
// Tables
|
|
21
|
+
tableOptions: {
|
|
22
|
+
chars: {
|
|
23
|
+
top: '\u2500', 'top-mid': '\u252C', 'top-left': '\u250C', 'top-right': '\u2510',
|
|
24
|
+
bottom: '\u2500', 'bottom-mid': '\u2534', 'bottom-left': '\u2514', 'bottom-right': '\u2518',
|
|
25
|
+
left: '\u2502', 'left-mid': '\u251C', mid: '\u2500', 'mid-mid': '\u253C',
|
|
26
|
+
right: '\u2502', 'right-mid': '\u2524', middle: '\u2502',
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
// Blockquotes
|
|
30
|
+
blockquote: chalk.hex('#6c757d').italic,
|
|
31
|
+
// Paragraphs
|
|
32
|
+
paragraph: chalk.white,
|
|
33
|
+
// Horizontal rules
|
|
34
|
+
hr: chalk.dim,
|
|
35
|
+
// Width
|
|
36
|
+
width: Math.max(60, (process.stdout.columns || 80) - 8),
|
|
37
|
+
// Reflowing
|
|
38
|
+
reflowText: true,
|
|
39
|
+
// Tab size
|
|
40
|
+
tab: 2,
|
|
41
|
+
}));
|
|
42
|
+
export function renderMarkdown(text) {
|
|
43
|
+
try {
|
|
44
|
+
return marked.parse(text).trim();
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return text;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export function renderUserMessage(message) {
|
|
51
|
+
process.stdout.write(`\n${theme.userLabel} ${message}\n\n`);
|
|
52
|
+
}
|
|
53
|
+
export function renderAssistantStart() {
|
|
54
|
+
process.stdout.write(`${theme.aiLabel} `);
|
|
55
|
+
}
|
|
56
|
+
export function renderStreamToken(token) {
|
|
57
|
+
process.stdout.write(token);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Renders the final assistant answer with a visible separator.
|
|
61
|
+
* Saves the cursor row so we can scroll back to it later.
|
|
62
|
+
*/
|
|
63
|
+
let lastAnswerStartRow = -1;
|
|
64
|
+
export function getLastAnswerRow() {
|
|
65
|
+
return lastAnswerStartRow;
|
|
66
|
+
}
|
|
67
|
+
/** Strip ANSI escape codes to get visible character count */
|
|
68
|
+
function stripAnsi(str) {
|
|
69
|
+
return str.replace(/\x1b\[[0-9;]*m/g, '');
|
|
70
|
+
}
|
|
71
|
+
/** Wrap a single line (may contain ANSI codes) to fit within maxWidth visible characters */
|
|
72
|
+
function wrapLine(line, maxWidth) {
|
|
73
|
+
const visLen = stripAnsi(line).length;
|
|
74
|
+
if (visLen <= maxWidth)
|
|
75
|
+
return [line];
|
|
76
|
+
// Word-wrap: split on spaces, reassemble into chunks
|
|
77
|
+
const words = line.split(/( +)/); // keep spaces as separate tokens
|
|
78
|
+
const lines = [];
|
|
79
|
+
let current = '';
|
|
80
|
+
let currentVis = 0;
|
|
81
|
+
for (const word of words) {
|
|
82
|
+
const wordVis = stripAnsi(word).length;
|
|
83
|
+
if (currentVis + wordVis > maxWidth && currentVis > 0) {
|
|
84
|
+
lines.push(current);
|
|
85
|
+
current = '';
|
|
86
|
+
currentVis = 0;
|
|
87
|
+
// Skip leading spaces on new line
|
|
88
|
+
if (word.trim() === '')
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
current += word;
|
|
92
|
+
currentVis += wordVis;
|
|
93
|
+
}
|
|
94
|
+
if (current)
|
|
95
|
+
lines.push(current);
|
|
96
|
+
// Fallback: if a single word is wider than max, hard-break it
|
|
97
|
+
const result = [];
|
|
98
|
+
for (const l of lines) {
|
|
99
|
+
if (stripAnsi(l).length <= maxWidth) {
|
|
100
|
+
result.push(l);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
// Hard break — character by character tracking visible width
|
|
104
|
+
let chunk = '';
|
|
105
|
+
let chunkVis = 0;
|
|
106
|
+
let i = 0;
|
|
107
|
+
const raw = l;
|
|
108
|
+
while (i < raw.length) {
|
|
109
|
+
// Check for ANSI escape sequence
|
|
110
|
+
const ansiMatch = raw.slice(i).match(/^\x1b\[[0-9;]*m/);
|
|
111
|
+
if (ansiMatch) {
|
|
112
|
+
chunk += ansiMatch[0];
|
|
113
|
+
i += ansiMatch[0].length;
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
if (chunkVis >= maxWidth) {
|
|
117
|
+
result.push(chunk);
|
|
118
|
+
chunk = '';
|
|
119
|
+
chunkVis = 0;
|
|
120
|
+
}
|
|
121
|
+
chunk += raw[i];
|
|
122
|
+
chunkVis++;
|
|
123
|
+
i++;
|
|
124
|
+
}
|
|
125
|
+
if (chunk)
|
|
126
|
+
result.push(chunk);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return result.length > 0 ? result : [line];
|
|
130
|
+
}
|
|
131
|
+
export function renderAssistantEnd(fullText) {
|
|
132
|
+
// Clear the raw stream line
|
|
133
|
+
process.stdout.write('\r\x1b[K');
|
|
134
|
+
// Render formatted markdown
|
|
135
|
+
const formatted = renderMarkdown(fullText);
|
|
136
|
+
const contentWidth = Math.max(40, (process.stdout.columns || 80) - 6);
|
|
137
|
+
// Wrap each line to fit within terminal width
|
|
138
|
+
const rawLines = formatted.split('\n');
|
|
139
|
+
const outputLines = [];
|
|
140
|
+
for (const line of rawLines) {
|
|
141
|
+
const wrapped = wrapLine(line, contentWidth);
|
|
142
|
+
for (const w of wrapped) {
|
|
143
|
+
outputLines.push(` ${w}`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
const output = outputLines.join('\n');
|
|
147
|
+
// Clean output: label + content + subtle separator
|
|
148
|
+
process.stdout.write(`\n ${theme.aiLabel}\n\n${output}\n\n`);
|
|
149
|
+
}
|
|
150
|
+
export function renderError(message) {
|
|
151
|
+
process.stdout.write(`\n ${theme.error('\u2717 Error:')} ${message}\n`);
|
|
152
|
+
}
|
|
153
|
+
export function renderInfo(message) {
|
|
154
|
+
process.stdout.write(` ${theme.dim(message)}\n`);
|
|
155
|
+
}
|
|
156
|
+
export function renderSpiralStatus(nodeCount, l1, l2, l3, l4 = 0, l5 = 0) {
|
|
157
|
+
process.stdout.write(`${theme.dim('Spiral:')} ` +
|
|
158
|
+
`${theme.spiralL1(`L1:${l1}`)} ` +
|
|
159
|
+
`${theme.spiralL2(`L2:${l2}`)} ` +
|
|
160
|
+
`${theme.spiralL3(`L3:${l3}`)} ` +
|
|
161
|
+
`${theme.spiralL4(`L4:${l4}`)} ` +
|
|
162
|
+
`${theme.spiralL5(`L5:${l5}`)} ` +
|
|
163
|
+
`${theme.dim(`(${nodeCount} total)`)}\n`);
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=chat-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-view.js","sourceRoot":"","sources":["../../../src/cli/ui/chat-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface CommandDef {
|
|
2
|
+
cmd: string;
|
|
3
|
+
description: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Get matching command suggestions for a partial input.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getSuggestions(partial: string, max?: number): CommandDef[];
|
|
9
|
+
/**
|
|
10
|
+
* Get the best single suggestion for Tab completion.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getBestCompletion(partial: string): string | null;
|
|
13
|
+
/**
|
|
14
|
+
* Write command suggestions as overlay above the status bar.
|
|
15
|
+
* Uses ANSI cursor positioning to avoid disturbing readline.
|
|
16
|
+
*/
|
|
17
|
+
export declare function writeSuggestions(suggestions: CommandDef[]): void;
|
|
18
|
+
/**
|
|
19
|
+
* Clear previously rendered suggestions.
|
|
20
|
+
*/
|
|
21
|
+
export declare function clearSuggestions(count: number): void;
|
|
22
|
+
//# sourceMappingURL=command-suggest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-suggest.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/command-suggest.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AA6CD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,UAAU,EAAE,CAgBrE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIhE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAiBhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAYpD"}
|