@staticn0va/wigolo 0.1.0 → 0.1.1
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 +1 -1
- package/README.md +195 -73
- package/SKILL.md +382 -0
- package/assets/blocks/claude-code/CLAUDE.md.block +20 -0
- package/assets/blocks/claude-code/wigolo-command.md +40 -0
- package/assets/blocks/cursor/wigolo.mdc +46 -0
- package/assets/blocks/gemini-cli/GEMINI.md.block +18 -0
- package/assets/blocks/vscode/copilot-instructions.md.block +18 -0
- package/assets/skills/wigolo/SKILL.md +50 -0
- package/assets/skills/wigolo/rules/cache-first.md +30 -0
- package/assets/skills/wigolo/rules/synthesis.md +43 -0
- package/assets/skills/wigolo-agent/SKILL.md +73 -0
- package/assets/skills/wigolo-crawl/SKILL.md +60 -0
- package/assets/skills/wigolo-extract/SKILL.md +59 -0
- package/assets/skills/wigolo-fetch/SKILL.md +65 -0
- package/assets/skills/wigolo-find-similar/SKILL.md +72 -0
- package/assets/skills/wigolo-research/SKILL.md +77 -0
- package/assets/skills/wigolo-search/SKILL.md +78 -0
- package/dist/agent/executor.d.ts +33 -0
- package/dist/agent/executor.d.ts.map +1 -0
- package/dist/agent/executor.js +233 -0
- package/dist/agent/executor.js.map +1 -0
- package/dist/agent/pipeline.d.ts +5 -0
- package/dist/agent/pipeline.d.ts.map +1 -0
- package/dist/agent/pipeline.js +208 -0
- package/dist/agent/pipeline.js.map +1 -0
- package/dist/agent/planner.d.ts +13 -0
- package/dist/agent/planner.d.ts.map +1 -0
- package/dist/agent/planner.js +271 -0
- package/dist/agent/planner.js.map +1 -0
- package/dist/agent/relevance.d.ts +15 -0
- package/dist/agent/relevance.d.ts.map +1 -0
- package/dist/agent/relevance.js +60 -0
- package/dist/agent/relevance.js.map +1 -0
- package/dist/cache/backfill-embeddings.d.ts +23 -0
- package/dist/cache/backfill-embeddings.d.ts.map +1 -0
- package/dist/cache/backfill-embeddings.js +105 -0
- package/dist/cache/backfill-embeddings.js.map +1 -0
- package/dist/cache/change-detector.d.ts +7 -0
- package/dist/cache/change-detector.d.ts.map +1 -0
- package/dist/cache/change-detector.js +43 -0
- package/dist/cache/change-detector.js.map +1 -0
- package/dist/cache/db.d.ts +1 -0
- package/dist/cache/db.d.ts.map +1 -1
- package/dist/cache/db.js +94 -22
- package/dist/cache/db.js.map +1 -1
- package/dist/cache/diff-summary.d.ts +2 -0
- package/dist/cache/diff-summary.d.ts.map +1 -0
- package/dist/cache/diff-summary.js +82 -0
- package/dist/cache/diff-summary.js.map +1 -0
- package/dist/cache/migrations/runner.d.ts +29 -0
- package/dist/cache/migrations/runner.d.ts.map +1 -0
- package/dist/cache/migrations/runner.js +147 -0
- package/dist/cache/migrations/runner.js.map +1 -0
- package/dist/cache/sqlite-vec-store.d.ts +42 -0
- package/dist/cache/sqlite-vec-store.d.ts.map +1 -0
- package/dist/cache/sqlite-vec-store.js +176 -0
- package/dist/cache/sqlite-vec-store.js.map +1 -0
- package/dist/cache/store.d.ts +46 -1
- package/dist/cache/store.d.ts.map +1 -1
- package/dist/cache/store.js +362 -168
- package/dist/cache/store.js.map +1 -1
- package/dist/cli/agents/antigravity.d.ts +20 -0
- package/dist/cli/agents/antigravity.d.ts.map +1 -0
- package/dist/cli/agents/antigravity.js +49 -0
- package/dist/cli/agents/antigravity.js.map +1 -0
- package/dist/cli/agents/claude-code.d.ts +25 -0
- package/dist/cli/agents/claude-code.d.ts.map +1 -0
- package/dist/cli/agents/claude-code.js +111 -0
- package/dist/cli/agents/claude-code.js.map +1 -0
- package/dist/cli/agents/cursor.d.ts +21 -0
- package/dist/cli/agents/cursor.d.ts.map +1 -0
- package/dist/cli/agents/cursor.js +58 -0
- package/dist/cli/agents/cursor.js.map +1 -0
- package/dist/cli/agents/gemini-cli.d.ts +21 -0
- package/dist/cli/agents/gemini-cli.d.ts.map +1 -0
- package/dist/cli/agents/gemini-cli.js +55 -0
- package/dist/cli/agents/gemini-cli.js.map +1 -0
- package/dist/cli/agents/registry.d.ts +21 -0
- package/dist/cli/agents/registry.d.ts.map +1 -0
- package/dist/cli/agents/registry.js +27 -0
- package/dist/cli/agents/registry.js.map +1 -0
- package/dist/cli/agents/utils.d.ts +26 -0
- package/dist/cli/agents/utils.d.ts.map +1 -0
- package/dist/cli/agents/utils.js +136 -0
- package/dist/cli/agents/utils.js.map +1 -0
- package/dist/cli/agents/vscode.d.ts +21 -0
- package/dist/cli/agents/vscode.d.ts.map +1 -0
- package/dist/cli/agents/vscode.js +62 -0
- package/dist/cli/agents/vscode.js.map +1 -0
- package/dist/cli/auth.d.ts +2 -0
- package/dist/cli/auth.d.ts.map +1 -0
- package/dist/cli/auth.js +94 -0
- package/dist/cli/auth.js.map +1 -0
- package/dist/cli/backfill.d.ts +2 -0
- package/dist/cli/backfill.d.ts.map +1 -0
- package/dist/cli/backfill.js +58 -0
- package/dist/cli/backfill.js.map +1 -0
- package/dist/cli/daemon.d.ts +6 -1
- package/dist/cli/daemon.d.ts.map +1 -1
- package/dist/cli/daemon.js +61 -3
- package/dist/cli/daemon.js.map +1 -1
- package/dist/cli/doctor.d.ts +8 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +318 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/health.d.ts +1 -1
- package/dist/cli/health.d.ts.map +1 -1
- package/dist/cli/health.js +42 -3
- package/dist/cli/health.js.map +1 -1
- package/dist/cli/help.d.ts +6 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +63 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +35 -7
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +2 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +201 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/plugin.d.ts +5 -0
- package/dist/cli/plugin.d.ts.map +1 -0
- package/dist/cli/plugin.js +185 -0
- package/dist/cli/plugin.js.map +1 -0
- package/dist/cli/setup-mcp.d.ts +2 -0
- package/dist/cli/setup-mcp.d.ts.map +1 -0
- package/dist/cli/setup-mcp.js +114 -0
- package/dist/cli/setup-mcp.js.map +1 -0
- package/dist/cli/shell.d.ts +2 -0
- package/dist/cli/shell.d.ts.map +1 -0
- package/dist/cli/shell.js +86 -0
- package/dist/cli/shell.js.map +1 -0
- package/dist/cli/status.d.ts +2 -0
- package/dist/cli/status.d.ts.map +1 -0
- package/dist/cli/status.js +31 -0
- package/dist/cli/status.js.map +1 -0
- package/dist/cli/telemetry.d.ts +10 -0
- package/dist/cli/telemetry.d.ts.map +1 -0
- package/dist/cli/telemetry.js +56 -0
- package/dist/cli/telemetry.js.map +1 -0
- package/dist/cli/tui/agents-types.d.ts +28 -0
- package/dist/cli/tui/agents-types.d.ts.map +1 -0
- package/dist/cli/tui/agents-types.js +1 -0
- package/dist/cli/tui/agents-types.js.map +1 -0
- package/dist/cli/tui/agents.d.ts +11 -0
- package/dist/cli/tui/agents.d.ts.map +1 -0
- package/dist/cli/tui/agents.js +93 -0
- package/dist/cli/tui/agents.js.map +1 -0
- package/dist/cli/tui/banner.d.ts +3 -0
- package/dist/cli/tui/banner.d.ts.map +1 -0
- package/dist/cli/tui/banner.js +30 -0
- package/dist/cli/tui/banner.js.map +1 -0
- package/dist/cli/tui/components/AgentSelect.d.ts +13 -0
- package/dist/cli/tui/components/AgentSelect.d.ts.map +1 -0
- package/dist/cli/tui/components/AgentSelect.js +116 -0
- package/dist/cli/tui/components/AgentSelect.js.map +1 -0
- package/dist/cli/tui/components/Banner.d.ts +6 -0
- package/dist/cli/tui/components/Banner.d.ts.map +1 -0
- package/dist/cli/tui/components/Banner.js +25 -0
- package/dist/cli/tui/components/Banner.js.map +1 -0
- package/dist/cli/tui/components/BrowserSelect.d.ts +7 -0
- package/dist/cli/tui/components/BrowserSelect.d.ts.map +1 -0
- package/dist/cli/tui/components/BrowserSelect.js +19 -0
- package/dist/cli/tui/components/BrowserSelect.js.map +1 -0
- package/dist/cli/tui/components/InstallProgress.d.ts +9 -0
- package/dist/cli/tui/components/InstallProgress.d.ts.map +1 -0
- package/dist/cli/tui/components/InstallProgress.js +67 -0
- package/dist/cli/tui/components/InstallProgress.js.map +1 -0
- package/dist/cli/tui/components/SkillInstall.d.ts +14 -0
- package/dist/cli/tui/components/SkillInstall.d.ts.map +1 -0
- package/dist/cli/tui/components/SkillInstall.js +94 -0
- package/dist/cli/tui/components/SkillInstall.js.map +1 -0
- package/dist/cli/tui/components/Summary.d.ts +22 -0
- package/dist/cli/tui/components/Summary.d.ts.map +1 -0
- package/dist/cli/tui/components/Summary.js +135 -0
- package/dist/cli/tui/components/Summary.js.map +1 -0
- package/dist/cli/tui/components/SystemCheck.d.ts +8 -0
- package/dist/cli/tui/components/SystemCheck.d.ts.map +1 -0
- package/dist/cli/tui/components/SystemCheck.js +71 -0
- package/dist/cli/tui/components/SystemCheck.js.map +1 -0
- package/dist/cli/tui/components/Verification.d.ts +8 -0
- package/dist/cli/tui/components/Verification.d.ts.map +1 -0
- package/dist/cli/tui/components/Verification.js +63 -0
- package/dist/cli/tui/components/Verification.js.map +1 -0
- package/dist/cli/tui/config-writer-cli.d.ts +12 -0
- package/dist/cli/tui/config-writer-cli.d.ts.map +1 -0
- package/dist/cli/tui/config-writer-cli.js +39 -0
- package/dist/cli/tui/config-writer-cli.js.map +1 -0
- package/dist/cli/tui/config-writer-json.d.ts +16 -0
- package/dist/cli/tui/config-writer-json.d.ts.map +1 -0
- package/dist/cli/tui/config-writer-json.js +86 -0
- package/dist/cli/tui/config-writer-json.js.map +1 -0
- package/dist/cli/tui/config-writer-toml.d.ts +16 -0
- package/dist/cli/tui/config-writer-toml.d.ts.map +1 -0
- package/dist/cli/tui/config-writer-toml.js +83 -0
- package/dist/cli/tui/config-writer-toml.js.map +1 -0
- package/dist/cli/tui/config-writer.d.ts +25 -0
- package/dist/cli/tui/config-writer.d.ts.map +1 -0
- package/dist/cli/tui/config-writer.js +101 -0
- package/dist/cli/tui/config-writer.js.map +1 -0
- package/dist/cli/tui/detect-helpers.d.ts +6 -0
- package/dist/cli/tui/detect-helpers.d.ts.map +1 -0
- package/dist/cli/tui/detect-helpers.js +45 -0
- package/dist/cli/tui/detect-helpers.js.map +1 -0
- package/dist/cli/tui/extras-prompt.d.ts +7 -0
- package/dist/cli/tui/extras-prompt.d.ts.map +1 -0
- package/dist/cli/tui/extras-prompt.js +42 -0
- package/dist/cli/tui/extras-prompt.js.map +1 -0
- package/dist/cli/tui/flags-types.d.ts +19 -0
- package/dist/cli/tui/flags-types.d.ts.map +1 -0
- package/dist/cli/tui/flags-types.js +23 -0
- package/dist/cli/tui/flags-types.js.map +1 -0
- package/dist/cli/tui/flags.d.ts +5 -0
- package/dist/cli/tui/flags.d.ts.map +1 -0
- package/dist/cli/tui/flags.js +132 -0
- package/dist/cli/tui/flags.js.map +1 -0
- package/dist/cli/tui/format.d.ts +14 -0
- package/dist/cli/tui/format.d.ts.map +1 -0
- package/dist/cli/tui/format.js +37 -0
- package/dist/cli/tui/format.js.map +1 -0
- package/dist/cli/tui/hooks/useAgentDetect.d.ts +6 -0
- package/dist/cli/tui/hooks/useAgentDetect.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useAgentDetect.js +19 -0
- package/dist/cli/tui/hooks/useAgentDetect.js.map +1 -0
- package/dist/cli/tui/hooks/useInstall.d.ts +14 -0
- package/dist/cli/tui/hooks/useInstall.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useInstall.js +90 -0
- package/dist/cli/tui/hooks/useInstall.js.map +1 -0
- package/dist/cli/tui/hooks/useSystemCheck.d.ts +13 -0
- package/dist/cli/tui/hooks/useSystemCheck.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useSystemCheck.js +95 -0
- package/dist/cli/tui/hooks/useSystemCheck.js.map +1 -0
- package/dist/cli/tui/hooks/useVerify.d.ts +14 -0
- package/dist/cli/tui/hooks/useVerify.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useVerify.js +71 -0
- package/dist/cli/tui/hooks/useVerify.js.map +1 -0
- package/dist/cli/tui/ink-init.d.ts +2 -0
- package/dist/cli/tui/ink-init.d.ts.map +1 -0
- package/dist/cli/tui/ink-init.js +198 -0
- package/dist/cli/tui/ink-init.js.map +1 -0
- package/dist/cli/tui/reporter-auto.d.ts +7 -0
- package/dist/cli/tui/reporter-auto.d.ts.map +1 -0
- package/dist/cli/tui/reporter-auto.js +15 -0
- package/dist/cli/tui/reporter-auto.js.map +1 -0
- package/dist/cli/tui/reporter.d.ts +26 -0
- package/dist/cli/tui/reporter.d.ts.map +1 -0
- package/dist/cli/tui/reporter.js +32 -0
- package/dist/cli/tui/reporter.js.map +1 -0
- package/dist/cli/tui/run-command.d.ts +14 -0
- package/dist/cli/tui/run-command.d.ts.map +1 -0
- package/dist/cli/tui/run-command.js +72 -0
- package/dist/cli/tui/run-command.js.map +1 -0
- package/dist/cli/tui/select-agents.d.ts +6 -0
- package/dist/cli/tui/select-agents.d.ts.map +1 -0
- package/dist/cli/tui/select-agents.js +32 -0
- package/dist/cli/tui/select-agents.js.map +1 -0
- package/dist/cli/tui/status-agents.d.ts +11 -0
- package/dist/cli/tui/status-agents.d.ts.map +1 -0
- package/dist/cli/tui/status-agents.js +53 -0
- package/dist/cli/tui/status-agents.js.map +1 -0
- package/dist/cli/tui/status-cache.d.ts +6 -0
- package/dist/cli/tui/status-cache.d.ts.map +1 -0
- package/dist/cli/tui/status-cache.js +39 -0
- package/dist/cli/tui/status-cache.js.map +1 -0
- package/dist/cli/tui/status-format.d.ts +14 -0
- package/dist/cli/tui/status-format.d.ts.map +1 -0
- package/dist/cli/tui/status-format.js +41 -0
- package/dist/cli/tui/status-format.js.map +1 -0
- package/dist/cli/tui/status-python.d.ts +6 -0
- package/dist/cli/tui/status-python.d.ts.map +1 -0
- package/dist/cli/tui/status-python.js +30 -0
- package/dist/cli/tui/status-python.js.map +1 -0
- package/dist/cli/tui/system-check.d.ts +24 -0
- package/dist/cli/tui/system-check.d.ts.map +1 -0
- package/dist/cli/tui/system-check.js +103 -0
- package/dist/cli/tui/system-check.js.map +1 -0
- package/dist/cli/tui/tui-reporter.d.ts +19 -0
- package/dist/cli/tui/tui-reporter.d.ts.map +1 -0
- package/dist/cli/tui/tui-reporter.js +95 -0
- package/dist/cli/tui/tui-reporter.js.map +1 -0
- package/dist/cli/tui/utils/config-writer.d.ts +3 -0
- package/dist/cli/tui/utils/config-writer.d.ts.map +1 -0
- package/dist/cli/tui/utils/config-writer.js +22 -0
- package/dist/cli/tui/utils/config-writer.js.map +1 -0
- package/dist/cli/tui/utils/suppress-logs.d.ts +3 -0
- package/dist/cli/tui/utils/suppress-logs.d.ts.map +1 -0
- package/dist/cli/tui/utils/suppress-logs.js +11 -0
- package/dist/cli/tui/utils/suppress-logs.js.map +1 -0
- package/dist/cli/tui/verify-suggestions.d.ts +5 -0
- package/dist/cli/tui/verify-suggestions.d.ts.map +1 -0
- package/dist/cli/tui/verify-suggestions.js +20 -0
- package/dist/cli/tui/verify-suggestions.js.map +1 -0
- package/dist/cli/tui/verify.d.ts +14 -0
- package/dist/cli/tui/verify.d.ts.map +1 -0
- package/dist/cli/tui/verify.js +101 -0
- package/dist/cli/tui/verify.js.map +1 -0
- package/dist/cli/tui/version.d.ts +2 -0
- package/dist/cli/tui/version.d.ts.map +1 -0
- package/dist/cli/tui/version.js +14 -0
- package/dist/cli/tui/version.js.map +1 -0
- package/dist/cli/uninstall.d.ts +2 -0
- package/dist/cli/uninstall.d.ts.map +1 -0
- package/dist/cli/uninstall.js +57 -0
- package/dist/cli/uninstall.js.map +1 -0
- package/dist/cli/warmup.d.ts +10 -2
- package/dist/cli/warmup.d.ts.map +1 -1
- package/dist/cli/warmup.js +226 -93
- package/dist/cli/warmup.js.map +1 -1
- package/dist/config.d.ts +28 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +106 -56
- package/dist/config.js.map +1 -1
- package/dist/crawl/crawler.d.ts +6 -0
- package/dist/crawl/crawler.d.ts.map +1 -1
- package/dist/crawl/crawler.js +210 -209
- package/dist/crawl/crawler.js.map +1 -1
- package/dist/crawl/dedup.d.ts +1 -0
- package/dist/crawl/dedup.d.ts.map +1 -1
- package/dist/crawl/dedup.js +124 -81
- package/dist/crawl/dedup.js.map +1 -1
- package/dist/crawl/etag-incremental.d.ts +43 -0
- package/dist/crawl/etag-incremental.d.ts.map +1 -0
- package/dist/crawl/etag-incremental.js +94 -0
- package/dist/crawl/etag-incremental.js.map +1 -0
- package/dist/crawl/index-to-vec.d.ts +10 -0
- package/dist/crawl/index-to-vec.d.ts.map +1 -0
- package/dist/crawl/index-to-vec.js +44 -0
- package/dist/crawl/index-to-vec.js.map +1 -0
- package/dist/crawl/mapper.js +136 -164
- package/dist/crawl/mapper.js.map +1 -1
- package/dist/crawl/rate-limiter.js +63 -66
- package/dist/crawl/rate-limiter.js.map +1 -1
- package/dist/crawl/robots.js +58 -57
- package/dist/crawl/robots.js.map +1 -1
- package/dist/crawl/sitemap-first.d.ts +12 -0
- package/dist/crawl/sitemap-first.d.ts.map +1 -0
- package/dist/crawl/sitemap-first.js +47 -0
- package/dist/crawl/sitemap-first.js.map +1 -0
- package/dist/crawl/sitemap.js +33 -32
- package/dist/crawl/sitemap.js.map +1 -1
- package/dist/crawl/url-utils.d.ts +1 -0
- package/dist/crawl/url-utils.d.ts.map +1 -1
- package/dist/crawl/url-utils.js +49 -37
- package/dist/crawl/url-utils.js.map +1 -1
- package/dist/daemon/health-check.d.ts +16 -0
- package/dist/daemon/health-check.d.ts.map +1 -0
- package/dist/daemon/health-check.js +33 -0
- package/dist/daemon/health-check.js.map +1 -0
- package/dist/daemon/http-server.d.ts +26 -0
- package/dist/daemon/http-server.d.ts.map +1 -0
- package/dist/daemon/http-server.js +275 -0
- package/dist/daemon/http-server.js.map +1 -0
- package/dist/daemon/proxy.d.ts +10 -0
- package/dist/daemon/proxy.d.ts.map +1 -0
- package/dist/daemon/proxy.js +93 -0
- package/dist/daemon/proxy.js.map +1 -0
- package/dist/embedding/embed.d.ts +59 -0
- package/dist/embedding/embed.d.ts.map +1 -0
- package/dist/embedding/embed.js +233 -0
- package/dist/embedding/embed.js.map +1 -0
- package/dist/embedding/fastembed-provider.d.ts +19 -0
- package/dist/embedding/fastembed-provider.d.ts.map +1 -0
- package/dist/embedding/fastembed-provider.js +51 -0
- package/dist/embedding/fastembed-provider.js.map +1 -0
- package/dist/embedding/key-terms.d.ts +12 -0
- package/dist/embedding/key-terms.d.ts.map +1 -0
- package/dist/embedding/key-terms.js +234 -0
- package/dist/embedding/key-terms.js.map +1 -0
- package/dist/extraction/boilerplate.d.ts +15 -0
- package/dist/extraction/boilerplate.d.ts.map +1 -0
- package/dist/extraction/boilerplate.js +52 -0
- package/dist/extraction/boilerplate.js.map +1 -0
- package/dist/extraction/defuddle.d.ts.map +1 -1
- package/dist/extraction/defuddle.js +27 -23
- package/dist/extraction/defuddle.js.map +1 -1
- package/dist/extraction/extract.d.ts.map +1 -1
- package/dist/extraction/extract.js +76 -76
- package/dist/extraction/extract.js.map +1 -1
- package/dist/extraction/jsonld.js +50 -54
- package/dist/extraction/jsonld.js.map +1 -1
- package/dist/extraction/lang-hints.d.ts +2 -0
- package/dist/extraction/lang-hints.d.ts.map +1 -0
- package/dist/extraction/lang-hints.js +30 -0
- package/dist/extraction/lang-hints.js.map +1 -0
- package/dist/extraction/llm-fallback.d.ts +17 -0
- package/dist/extraction/llm-fallback.d.ts.map +1 -0
- package/dist/extraction/llm-fallback.js +130 -0
- package/dist/extraction/llm-fallback.js.map +1 -0
- package/dist/extraction/markdown-sanitize.d.ts +2 -0
- package/dist/extraction/markdown-sanitize.d.ts.map +1 -0
- package/dist/extraction/markdown-sanitize.js +151 -0
- package/dist/extraction/markdown-sanitize.js.map +1 -0
- package/dist/extraction/markdown.d.ts +11 -0
- package/dist/extraction/markdown.d.ts.map +1 -1
- package/dist/extraction/markdown.js +195 -91
- package/dist/extraction/markdown.js.map +1 -1
- package/dist/extraction/pipeline.d.ts +8 -0
- package/dist/extraction/pipeline.d.ts.map +1 -1
- package/dist/extraction/pipeline.js +57 -91
- package/dist/extraction/pipeline.js.map +1 -1
- package/dist/extraction/readability.d.ts +1 -1
- package/dist/extraction/readability.d.ts.map +1 -1
- package/dist/extraction/readability.js +28 -29
- package/dist/extraction/readability.js.map +1 -1
- package/dist/extraction/schema.d.ts +12 -0
- package/dist/extraction/schema.d.ts.map +1 -1
- package/dist/extraction/schema.js +135 -72
- package/dist/extraction/schema.js.map +1 -1
- package/dist/extraction/site-extractors/docs-generic.d.ts.map +1 -1
- package/dist/extraction/site-extractors/docs-generic.js +81 -91
- package/dist/extraction/site-extractors/docs-generic.js.map +1 -1
- package/dist/extraction/site-extractors/github.d.ts.map +1 -1
- package/dist/extraction/site-extractors/github.js +87 -95
- package/dist/extraction/site-extractors/github.js.map +1 -1
- package/dist/extraction/site-extractors/mdn.d.ts.map +1 -1
- package/dist/extraction/site-extractors/mdn.js +46 -54
- package/dist/extraction/site-extractors/mdn.js.map +1 -1
- package/dist/extraction/site-extractors/stackoverflow.d.ts.map +1 -1
- package/dist/extraction/site-extractors/stackoverflow.js +71 -80
- package/dist/extraction/site-extractors/stackoverflow.js.map +1 -1
- package/dist/extraction/structured-data.d.ts +4 -0
- package/dist/extraction/structured-data.d.ts.map +1 -0
- package/dist/extraction/structured-data.js +173 -0
- package/dist/extraction/structured-data.js.map +1 -0
- package/dist/extraction/structured.d.ts +4 -0
- package/dist/extraction/structured.d.ts.map +1 -0
- package/dist/extraction/structured.js +163 -0
- package/dist/extraction/structured.js.map +1 -0
- package/dist/extraction/v1/classifier.d.ts +3 -0
- package/dist/extraction/v1/classifier.d.ts.map +1 -0
- package/dist/extraction/v1/classifier.js +110 -0
- package/dist/extraction/v1/classifier.js.map +1 -0
- package/dist/extraction/v1/extract-provider.d.ts +16 -0
- package/dist/extraction/v1/extract-provider.d.ts.map +1 -0
- package/dist/extraction/v1/extract-provider.js +43 -0
- package/dist/extraction/v1/extract-provider.js.map +1 -0
- package/dist/extraction/v1/local-llm.d.ts +8 -0
- package/dist/extraction/v1/local-llm.d.ts.map +1 -0
- package/dist/extraction/v1/local-llm.js +58 -0
- package/dist/extraction/v1/local-llm.js.map +1 -0
- package/dist/extraction/v1/news.d.ts +3 -0
- package/dist/extraction/v1/news.d.ts.map +1 -0
- package/dist/extraction/v1/news.js +61 -0
- package/dist/extraction/v1/news.js.map +1 -0
- package/dist/extraction/v1/product.d.ts +3 -0
- package/dist/extraction/v1/product.d.ts.map +1 -0
- package/dist/extraction/v1/product.js +166 -0
- package/dist/extraction/v1/product.js.map +1 -0
- package/dist/extraction/v1/recipe.d.ts +3 -0
- package/dist/extraction/v1/recipe.d.ts.map +1 -0
- package/dist/extraction/v1/recipe.js +136 -0
- package/dist/extraction/v1/recipe.js.map +1 -0
- package/dist/extraction/v1/routed.d.ts +17 -0
- package/dist/extraction/v1/routed.d.ts.map +1 -0
- package/dist/extraction/v1/routed.js +68 -0
- package/dist/extraction/v1/routed.js.map +1 -0
- package/dist/extraction/v1/schemas/Article.d.ts +11 -0
- package/dist/extraction/v1/schemas/Article.d.ts.map +1 -0
- package/dist/extraction/v1/schemas/Article.js +23 -0
- package/dist/extraction/v1/schemas/Article.js.map +1 -0
- package/dist/extraction/v1/schemas/CodeSnippet.d.ts +9 -0
- package/dist/extraction/v1/schemas/CodeSnippet.d.ts.map +1 -0
- package/dist/extraction/v1/schemas/CodeSnippet.js +90 -0
- package/dist/extraction/v1/schemas/CodeSnippet.js.map +1 -0
- package/dist/extraction/v1/schemas/EventListing.d.ts +10 -0
- package/dist/extraction/v1/schemas/EventListing.d.ts.map +1 -0
- package/dist/extraction/v1/schemas/EventListing.js +122 -0
- package/dist/extraction/v1/schemas/EventListing.js.map +1 -0
- package/dist/extraction/v1/schemas/Paper.d.ts +10 -0
- package/dist/extraction/v1/schemas/Paper.d.ts.map +1 -0
- package/dist/extraction/v1/schemas/Paper.js +156 -0
- package/dist/extraction/v1/schemas/Paper.js.map +1 -0
- package/dist/extraction/v1/schemas/Product.d.ts +17 -0
- package/dist/extraction/v1/schemas/Product.d.ts.map +1 -0
- package/dist/extraction/v1/schemas/Product.js +149 -0
- package/dist/extraction/v1/schemas/Product.js.map +1 -0
- package/dist/extraction/v1/schemas/Recipe.d.ts +14 -0
- package/dist/extraction/v1/schemas/Recipe.d.ts.map +1 -0
- package/dist/extraction/v1/schemas/Recipe.js +160 -0
- package/dist/extraction/v1/schemas/Recipe.js.map +1 -0
- package/dist/extraction/v1/schemas/index.d.ts +13 -0
- package/dist/extraction/v1/schemas/index.d.ts.map +1 -0
- package/dist/extraction/v1/schemas/index.js +44 -0
- package/dist/extraction/v1/schemas/index.js.map +1 -0
- package/dist/extraction/v1/site-extractors.d.ts +5 -0
- package/dist/extraction/v1/site-extractors.d.ts.map +1 -0
- package/dist/extraction/v1/site-extractors.js +31 -0
- package/dist/extraction/v1/site-extractors.js.map +1 -0
- package/dist/fetch/action-executor.d.ts +28 -0
- package/dist/fetch/action-executor.d.ts.map +1 -0
- package/dist/fetch/action-executor.js +88 -0
- package/dist/fetch/action-executor.js.map +1 -0
- package/dist/fetch/auth.d.ts +2 -1
- package/dist/fetch/auth.d.ts.map +1 -1
- package/dist/fetch/auth.js +56 -26
- package/dist/fetch/auth.js.map +1 -1
- package/dist/fetch/browser-pool.d.ts +30 -11
- package/dist/fetch/browser-pool.d.ts.map +1 -1
- package/dist/fetch/browser-pool.js +303 -127
- package/dist/fetch/browser-pool.js.map +1 -1
- package/dist/fetch/browser-selector.d.ts +17 -0
- package/dist/fetch/browser-selector.d.ts.map +1 -0
- package/dist/fetch/browser-selector.js +72 -0
- package/dist/fetch/browser-selector.js.map +1 -0
- package/dist/fetch/browser-types.d.ts +3 -0
- package/dist/fetch/browser-types.d.ts.map +1 -0
- package/dist/fetch/browser-types.js +45 -0
- package/dist/fetch/browser-types.js.map +1 -0
- package/dist/fetch/cdp-client.d.ts +9 -0
- package/dist/fetch/cdp-client.d.ts.map +1 -0
- package/dist/fetch/cdp-client.js +89 -0
- package/dist/fetch/cdp-client.js.map +1 -0
- package/dist/fetch/content-check.js +39 -46
- package/dist/fetch/content-check.js.map +1 -1
- package/dist/fetch/http-client.d.ts +4 -0
- package/dist/fetch/http-client.d.ts.map +1 -1
- package/dist/fetch/http-client.js +147 -128
- package/dist/fetch/http-client.js.map +1 -1
- package/dist/fetch/lightpanda.d.ts +28 -0
- package/dist/fetch/lightpanda.d.ts.map +1 -0
- package/dist/fetch/lightpanda.js +174 -0
- package/dist/fetch/lightpanda.js.map +1 -0
- package/dist/fetch/playwright-tier.d.ts +19 -0
- package/dist/fetch/playwright-tier.d.ts.map +1 -0
- package/dist/fetch/playwright-tier.js +76 -0
- package/dist/fetch/playwright-tier.js.map +1 -0
- package/dist/fetch/router.d.ts +49 -3
- package/dist/fetch/router.d.ts.map +1 -1
- package/dist/fetch/router.js +185 -81
- package/dist/fetch/router.js.map +1 -1
- package/dist/index.js +97 -17
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +31 -0
- package/dist/instructions.d.ts.map +1 -0
- package/dist/instructions.js +245 -0
- package/dist/instructions.js.map +1 -0
- package/dist/integrations/cloud/llm/anthropic.d.ts +3 -0
- package/dist/integrations/cloud/llm/anthropic.d.ts.map +1 -0
- package/dist/integrations/cloud/llm/anthropic.js +41 -0
- package/dist/integrations/cloud/llm/anthropic.js.map +1 -0
- package/dist/integrations/cloud/llm/cache.d.ts +5 -0
- package/dist/integrations/cloud/llm/cache.d.ts.map +1 -0
- package/dist/integrations/cloud/llm/cache.js +49 -0
- package/dist/integrations/cloud/llm/cache.js.map +1 -0
- package/dist/integrations/cloud/llm/gemini.d.ts +3 -0
- package/dist/integrations/cloud/llm/gemini.d.ts.map +1 -0
- package/dist/integrations/cloud/llm/gemini.js +37 -0
- package/dist/integrations/cloud/llm/gemini.js.map +1 -0
- package/dist/integrations/cloud/llm/groq.d.ts +3 -0
- package/dist/integrations/cloud/llm/groq.d.ts.map +1 -0
- package/dist/integrations/cloud/llm/groq.js +74 -0
- package/dist/integrations/cloud/llm/groq.js.map +1 -0
- package/dist/integrations/cloud/llm/hash.d.ts +3 -0
- package/dist/integrations/cloud/llm/hash.d.ts.map +1 -0
- package/dist/integrations/cloud/llm/hash.js +26 -0
- package/dist/integrations/cloud/llm/hash.js.map +1 -0
- package/dist/integrations/cloud/llm/openai.d.ts +3 -0
- package/dist/integrations/cloud/llm/openai.d.ts.map +1 -0
- package/dist/integrations/cloud/llm/openai.js +43 -0
- package/dist/integrations/cloud/llm/openai.js.map +1 -0
- package/dist/integrations/cloud/llm/select.d.ts +5 -0
- package/dist/integrations/cloud/llm/select.d.ts.map +1 -0
- package/dist/integrations/cloud/llm/select.js +30 -0
- package/dist/integrations/cloud/llm/select.js.map +1 -0
- package/dist/integrations/cloud/llm/types.d.ts +24 -0
- package/dist/integrations/cloud/llm/types.d.ts.map +1 -0
- package/dist/integrations/cloud/llm/types.js +1 -0
- package/dist/integrations/cloud/llm/types.js.map +1 -0
- package/dist/integrations/cloud/llm/validate.d.ts +6 -0
- package/dist/integrations/cloud/llm/validate.d.ts.map +1 -0
- package/dist/integrations/cloud/llm/validate.js +63 -0
- package/dist/integrations/cloud/llm/validate.js.map +1 -0
- package/dist/logger.d.ts +4 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +71 -30
- package/dist/logger.js.map +1 -1
- package/dist/pdf-parse.d.js +1 -0
- package/dist/pdf-parse.d.js.map +1 -0
- package/dist/plugins/loader.d.ts +20 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +157 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/registry.d.ts +26 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +71 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/plugins/validate.d.ts +9 -0
- package/dist/plugins/validate.d.ts.map +1 -0
- package/dist/plugins/validate.js +79 -0
- package/dist/plugins/validate.js.map +1 -0
- package/dist/providers/embed-provider.d.ts +11 -0
- package/dist/providers/embed-provider.d.ts.map +1 -0
- package/dist/providers/embed-provider.js +24 -0
- package/dist/providers/embed-provider.js.map +1 -0
- package/dist/providers/extract-provider.d.ts +23 -0
- package/dist/providers/extract-provider.d.ts.map +1 -0
- package/dist/providers/extract-provider.js +25 -0
- package/dist/providers/extract-provider.js.map +1 -0
- package/dist/providers/rerank-provider.d.ts +16 -0
- package/dist/providers/rerank-provider.d.ts.map +1 -0
- package/dist/providers/rerank-provider.js +28 -0
- package/dist/providers/rerank-provider.js.map +1 -0
- package/dist/providers/search-provider.d.ts +25 -0
- package/dist/providers/search-provider.d.ts.map +1 -0
- package/dist/providers/search-provider.js +44 -0
- package/dist/providers/search-provider.js.map +1 -0
- package/dist/providers/vector-store.d.ts +27 -0
- package/dist/providers/vector-store.d.ts.map +1 -0
- package/dist/providers/vector-store.js +27 -0
- package/dist/providers/vector-store.js.map +1 -0
- package/dist/python-env.d.ts +9 -0
- package/dist/python-env.d.ts.map +1 -0
- package/dist/python-env.js +13 -0
- package/dist/python-env.js.map +1 -0
- package/dist/repl/commands/agent.d.ts +5 -0
- package/dist/repl/commands/agent.d.ts.map +1 -0
- package/dist/repl/commands/agent.js +62 -0
- package/dist/repl/commands/agent.js.map +1 -0
- package/dist/repl/commands/cache.d.ts +4 -0
- package/dist/repl/commands/cache.d.ts.map +1 -0
- package/dist/repl/commands/cache.js +43 -0
- package/dist/repl/commands/cache.js.map +1 -0
- package/dist/repl/commands/crawl.d.ts +7 -0
- package/dist/repl/commands/crawl.d.ts.map +1 -0
- package/dist/repl/commands/crawl.js +44 -0
- package/dist/repl/commands/crawl.js.map +1 -0
- package/dist/repl/commands/extract.d.ts +5 -0
- package/dist/repl/commands/extract.d.ts.map +1 -0
- package/dist/repl/commands/extract.js +47 -0
- package/dist/repl/commands/extract.js.map +1 -0
- package/dist/repl/commands/fetch.d.ts +5 -0
- package/dist/repl/commands/fetch.d.ts.map +1 -0
- package/dist/repl/commands/fetch.js +67 -0
- package/dist/repl/commands/fetch.js.map +1 -0
- package/dist/repl/commands/find-similar.d.ts +5 -0
- package/dist/repl/commands/find-similar.d.ts.map +1 -0
- package/dist/repl/commands/find-similar.js +74 -0
- package/dist/repl/commands/find-similar.js.map +1 -0
- package/dist/repl/commands/research.d.ts +5 -0
- package/dist/repl/commands/research.d.ts.map +1 -0
- package/dist/repl/commands/research.js +65 -0
- package/dist/repl/commands/research.js.map +1 -0
- package/dist/repl/commands/search.d.ts +5 -0
- package/dist/repl/commands/search.d.ts.map +1 -0
- package/dist/repl/commands/search.js +74 -0
- package/dist/repl/commands/search.js.map +1 -0
- package/dist/repl/commands/types.d.ts +9 -0
- package/dist/repl/commands/types.d.ts.map +1 -0
- package/dist/repl/commands/types.js +1 -0
- package/dist/repl/commands/types.js.map +1 -0
- package/dist/repl/formatters.d.ts +13 -0
- package/dist/repl/formatters.d.ts.map +1 -0
- package/dist/repl/formatters.js +283 -0
- package/dist/repl/formatters.js.map +1 -0
- package/dist/repl/parser.d.ts +9 -0
- package/dist/repl/parser.d.ts.map +1 -0
- package/dist/repl/parser.js +86 -0
- package/dist/repl/parser.js.map +1 -0
- package/dist/repl/shell.d.ts +8 -0
- package/dist/repl/shell.d.ts.map +1 -0
- package/dist/repl/shell.js +184 -0
- package/dist/repl/shell.js.map +1 -0
- package/dist/research/branch-exploration.d.ts +14 -0
- package/dist/research/branch-exploration.d.ts.map +1 -0
- package/dist/research/branch-exploration.js +100 -0
- package/dist/research/branch-exploration.js.map +1 -0
- package/dist/research/brief.d.ts +5 -0
- package/dist/research/brief.d.ts.map +1 -0
- package/dist/research/brief.js +242 -0
- package/dist/research/brief.js.map +1 -0
- package/dist/research/citation-graph.d.ts +9 -0
- package/dist/research/citation-graph.d.ts.map +1 -0
- package/dist/research/citation-graph.js +114 -0
- package/dist/research/citation-graph.js.map +1 -0
- package/dist/research/decompose.d.ts +14 -0
- package/dist/research/decompose.d.ts.map +1 -0
- package/dist/research/decompose.js +439 -0
- package/dist/research/decompose.js.map +1 -0
- package/dist/research/pipeline.d.ts +5 -0
- package/dist/research/pipeline.d.ts.map +1 -0
- package/dist/research/pipeline.js +269 -0
- package/dist/research/pipeline.js.map +1 -0
- package/dist/research/synthesis-local.d.ts +16 -0
- package/dist/research/synthesis-local.d.ts.map +1 -0
- package/dist/research/synthesis-local.js +73 -0
- package/dist/research/synthesis-local.js.map +1 -0
- package/dist/research/synthesize.d.ts +10 -0
- package/dist/research/synthesize.d.ts.map +1 -0
- package/dist/research/synthesize.js +137 -0
- package/dist/research/synthesize.js.map +1 -0
- package/dist/search/answer-synthesis.d.ts +33 -0
- package/dist/search/answer-synthesis.d.ts.map +1 -0
- package/dist/search/answer-synthesis.js +244 -0
- package/dist/search/answer-synthesis.js.map +1 -0
- package/dist/search/context-formatter.d.ts +3 -0
- package/dist/search/context-formatter.d.ts.map +1 -0
- package/dist/search/context-formatter.js +56 -0
- package/dist/search/context-formatter.js.map +1 -0
- package/dist/search/dedup.d.ts +1 -0
- package/dist/search/dedup.d.ts.map +1 -1
- package/dist/search/dedup.js +40 -32
- package/dist/search/dedup.js.map +1 -1
- package/dist/search/engines/arxiv.d.ts +7 -0
- package/dist/search/engines/arxiv.d.ts.map +1 -0
- package/dist/search/engines/arxiv.js +70 -0
- package/dist/search/engines/arxiv.js.map +1 -0
- package/dist/search/engines/bing-news.d.ts +7 -0
- package/dist/search/engines/bing-news.d.ts.map +1 -0
- package/dist/search/engines/bing-news.js +97 -0
- package/dist/search/engines/bing-news.js.map +1 -0
- package/dist/search/engines/bing.d.ts +1 -0
- package/dist/search/engines/bing.d.ts.map +1 -1
- package/dist/search/engines/bing.js +100 -44
- package/dist/search/engines/bing.js.map +1 -1
- package/dist/search/engines/devdocs.d.ts +6 -0
- package/dist/search/engines/devdocs.d.ts.map +1 -0
- package/dist/search/engines/devdocs.js +56 -0
- package/dist/search/engines/devdocs.js.map +1 -0
- package/dist/search/engines/duckduckgo.d.ts.map +1 -1
- package/dist/search/engines/duckduckgo.js +56 -44
- package/dist/search/engines/duckduckgo.js.map +1 -1
- package/dist/search/engines/github-code.d.ts +7 -0
- package/dist/search/engines/github-code.d.ts.map +1 -0
- package/dist/search/engines/github-code.js +55 -0
- package/dist/search/engines/github-code.js.map +1 -0
- package/dist/search/engines/hn-algolia.d.ts +7 -0
- package/dist/search/engines/hn-algolia.d.ts.map +1 -0
- package/dist/search/engines/hn-algolia.js +76 -0
- package/dist/search/engines/hn-algolia.js.map +1 -0
- package/dist/search/engines/lobsters.d.ts +7 -0
- package/dist/search/engines/lobsters.d.ts.map +1 -0
- package/dist/search/engines/lobsters.js +83 -0
- package/dist/search/engines/lobsters.js.map +1 -0
- package/dist/search/engines/mdn.d.ts +7 -0
- package/dist/search/engines/mdn.d.ts.map +1 -0
- package/dist/search/engines/mdn.js +48 -0
- package/dist/search/engines/mdn.js.map +1 -0
- package/dist/search/engines/semantic-scholar.d.ts +7 -0
- package/dist/search/engines/semantic-scholar.d.ts.map +1 -0
- package/dist/search/engines/semantic-scholar.js +69 -0
- package/dist/search/engines/semantic-scholar.js.map +1 -0
- package/dist/search/engines/stackoverflow.d.ts +7 -0
- package/dist/search/engines/stackoverflow.d.ts.map +1 -0
- package/dist/search/engines/stackoverflow.js +73 -0
- package/dist/search/engines/stackoverflow.js.map +1 -0
- package/dist/search/engines/startpage.d.ts.map +1 -1
- package/dist/search/engines/startpage.js +65 -46
- package/dist/search/engines/startpage.js.map +1 -1
- package/dist/search/evidence.d.ts +25 -0
- package/dist/search/evidence.d.ts.map +1 -0
- package/dist/search/evidence.js +220 -0
- package/dist/search/evidence.js.map +1 -0
- package/dist/search/filters.js +49 -55
- package/dist/search/filters.js.map +1 -1
- package/dist/search/find-similar/crawl-rank.d.ts +9 -0
- package/dist/search/find-similar/crawl-rank.d.ts.map +1 -0
- package/dist/search/find-similar/crawl-rank.js +272 -0
- package/dist/search/find-similar/crawl-rank.js.map +1 -0
- package/dist/search/find-similar/mode.d.ts +4 -0
- package/dist/search/find-similar/mode.d.ts.map +1 -0
- package/dist/search/find-similar/mode.js +12 -0
- package/dist/search/find-similar/mode.js.map +1 -0
- package/dist/search/find-similar.d.ts +5 -0
- package/dist/search/find-similar.d.ts.map +1 -0
- package/dist/search/find-similar.js +509 -0
- package/dist/search/find-similar.js.map +1 -0
- package/dist/search/highlights.d.ts +19 -0
- package/dist/search/highlights.d.ts.map +1 -0
- package/dist/search/highlights.js +167 -0
- package/dist/search/highlights.js.map +1 -0
- package/dist/search/language-filter.d.ts +29 -0
- package/dist/search/language-filter.d.ts.map +1 -0
- package/dist/search/language-filter.js +126 -0
- package/dist/search/language-filter.js.map +1 -0
- package/dist/search/legacy/searxng-orchestrator.d.ts +4 -0
- package/dist/search/legacy/searxng-orchestrator.d.ts.map +1 -0
- package/dist/search/legacy/searxng-orchestrator.js +501 -0
- package/dist/search/legacy/searxng-orchestrator.js.map +1 -0
- package/dist/search/legacy/searxng-provider.d.ts +7 -0
- package/dist/search/legacy/searxng-provider.d.ts.map +1 -0
- package/dist/search/legacy/searxng-provider.js +11 -0
- package/dist/search/legacy/searxng-provider.js.map +1 -0
- package/dist/search/multi-query.d.ts +25 -0
- package/dist/search/multi-query.d.ts.map +1 -0
- package/dist/search/multi-query.js +228 -0
- package/dist/search/multi-query.js.map +1 -0
- package/dist/search/query.js +32 -34
- package/dist/search/query.js.map +1 -1
- package/dist/search/rerank.d.ts +3 -1
- package/dist/search/rerank.d.ts.map +1 -1
- package/dist/search/rerank.js +44 -35
- package/dist/search/rerank.js.map +1 -1
- package/dist/search/reranker/authority-boost.d.ts +3 -0
- package/dist/search/reranker/authority-boost.d.ts.map +1 -0
- package/dist/search/reranker/authority-boost.js +179 -0
- package/dist/search/reranker/authority-boost.js.map +1 -0
- package/dist/search/reranker/consensus-boost.d.ts +3 -0
- package/dist/search/reranker/consensus-boost.d.ts.map +1 -0
- package/dist/search/reranker/consensus-boost.js +27 -0
- package/dist/search/reranker/consensus-boost.js.map +1 -0
- package/dist/search/reranker/recency-boost.d.ts +3 -0
- package/dist/search/reranker/recency-boost.d.ts.map +1 -0
- package/dist/search/reranker/recency-boost.js +13 -0
- package/dist/search/reranker/recency-boost.js.map +1 -0
- package/dist/search/reranker/recency.d.ts +3 -0
- package/dist/search/reranker/recency.d.ts.map +1 -0
- package/dist/search/reranker/recency.js +23 -0
- package/dist/search/reranker/recency.js.map +1 -0
- package/dist/search/reranker/transformers-rerank-provider.d.ts +12 -0
- package/dist/search/reranker/transformers-rerank-provider.d.ts.map +1 -0
- package/dist/search/reranker/transformers-rerank-provider.js +78 -0
- package/dist/search/reranker/transformers-rerank-provider.js.map +1 -0
- package/dist/search/rrf.d.ts +17 -0
- package/dist/search/rrf.d.ts.map +1 -0
- package/dist/search/rrf.js +39 -0
- package/dist/search/rrf.js.map +1 -0
- package/dist/search/sampling.d.ts +25 -0
- package/dist/search/sampling.d.ts.map +1 -0
- package/dist/search/sampling.js +52 -0
- package/dist/search/sampling.js.map +1 -0
- package/dist/search/searxng.d.ts.map +1 -1
- package/dist/search/searxng.js +69 -79
- package/dist/search/searxng.js.map +1 -1
- package/dist/search/tokens.d.ts +3 -0
- package/dist/search/tokens.d.ts.map +1 -0
- package/dist/search/tokens.js +39 -0
- package/dist/search/tokens.js.map +1 -0
- package/dist/search/truncate.d.ts +6 -0
- package/dist/search/truncate.d.ts.map +1 -0
- package/dist/search/truncate.js +26 -0
- package/dist/search/truncate.js.map +1 -0
- package/dist/search/url-unwrap.d.ts +3 -0
- package/dist/search/url-unwrap.d.ts.map +1 -0
- package/dist/search/url-unwrap.js +43 -0
- package/dist/search/url-unwrap.js.map +1 -0
- package/dist/search/v1/context-rank.d.ts +13 -0
- package/dist/search/v1/context-rank.d.ts.map +1 -0
- package/dist/search/v1/context-rank.js +74 -0
- package/dist/search/v1/context-rank.js.map +1 -0
- package/dist/search/v1/engine-base.d.ts +27 -0
- package/dist/search/v1/engine-base.d.ts.map +1 -0
- package/dist/search/v1/engine-base.js +110 -0
- package/dist/search/v1/engine-base.js.map +1 -0
- package/dist/search/v1/intent-router.d.ts +22 -0
- package/dist/search/v1/intent-router.d.ts.map +1 -0
- package/dist/search/v1/intent-router.js +138 -0
- package/dist/search/v1/intent-router.js.map +1 -0
- package/dist/search/v1/orchestrator.d.ts +24 -0
- package/dist/search/v1/orchestrator.d.ts.map +1 -0
- package/dist/search/v1/orchestrator.js +163 -0
- package/dist/search/v1/orchestrator.js.map +1 -0
- package/dist/search/v1/recency-boost.d.ts +9 -0
- package/dist/search/v1/recency-boost.d.ts.map +1 -0
- package/dist/search/v1/recency-boost.js +37 -0
- package/dist/search/v1/recency-boost.js.map +1 -0
- package/dist/search/v1/recent-cache-dedup.d.ts +6 -0
- package/dist/search/v1/recent-cache-dedup.d.ts.map +1 -0
- package/dist/search/v1/recent-cache-dedup.js +85 -0
- package/dist/search/v1/recent-cache-dedup.js.map +1 -0
- package/dist/search/v1/rss/feed-config.d.ts +21 -0
- package/dist/search/v1/rss/feed-config.d.ts.map +1 -0
- package/dist/search/v1/rss/feed-config.js +90 -0
- package/dist/search/v1/rss/feed-config.js.map +1 -0
- package/dist/search/v1/rss/feed-parser.d.ts +14 -0
- package/dist/search/v1/rss/feed-parser.d.ts.map +1 -0
- package/dist/search/v1/rss/feed-parser.js +104 -0
- package/dist/search/v1/rss/feed-parser.js.map +1 -0
- package/dist/search/v1/rss/feed-poller.d.ts +22 -0
- package/dist/search/v1/rss/feed-poller.d.ts.map +1 -0
- package/dist/search/v1/rss/feed-poller.js +102 -0
- package/dist/search/v1/rss/feed-poller.js.map +1 -0
- package/dist/search/v1/rss/feed-store.d.ts +30 -0
- package/dist/search/v1/rss/feed-store.d.ts.map +1 -0
- package/dist/search/v1/rss/feed-store.js +134 -0
- package/dist/search/v1/rss/feed-store.js.map +1 -0
- package/dist/search/v1/rss/rss-engine.d.ts +6 -0
- package/dist/search/v1/rss/rss-engine.d.ts.map +1 -0
- package/dist/search/v1/rss/rss-engine.js +28 -0
- package/dist/search/v1/rss/rss-engine.js.map +1 -0
- package/dist/search/v1/v1-provider.d.ts +7 -0
- package/dist/search/v1/v1-provider.d.ts.map +1 -0
- package/dist/search/v1/v1-provider.js +68 -0
- package/dist/search/v1/v1-provider.js.map +1 -0
- package/dist/search/v1/verticals/code.d.ts +4 -0
- package/dist/search/v1/verticals/code.d.ts.map +1 -0
- package/dist/search/v1/verticals/code.js +20 -0
- package/dist/search/v1/verticals/code.js.map +1 -0
- package/dist/search/v1/verticals/docs.d.ts +4 -0
- package/dist/search/v1/verticals/docs.d.ts.map +1 -0
- package/dist/search/v1/verticals/docs.js +20 -0
- package/dist/search/v1/verticals/docs.js.map +1 -0
- package/dist/search/v1/verticals/general.d.ts +4 -0
- package/dist/search/v1/verticals/general.d.ts.map +1 -0
- package/dist/search/v1/verticals/general.js +22 -0
- package/dist/search/v1/verticals/general.js.map +1 -0
- package/dist/search/v1/verticals/news.d.ts +10 -0
- package/dist/search/v1/verticals/news.d.ts.map +1 -0
- package/dist/search/v1/verticals/news.js +52 -0
- package/dist/search/v1/verticals/news.js.map +1 -0
- package/dist/search/v1/verticals/papers.d.ts +4 -0
- package/dist/search/v1/verticals/papers.d.ts.map +1 -0
- package/dist/search/v1/verticals/papers.js +23 -0
- package/dist/search/v1/verticals/papers.js.map +1 -0
- package/dist/search/validator.js +31 -31
- package/dist/search/validator.js.map +1 -1
- package/dist/searxng/bootstrap.d.ts +30 -0
- package/dist/searxng/bootstrap.d.ts.map +1 -1
- package/dist/searxng/bootstrap.js +223 -85
- package/dist/searxng/bootstrap.js.map +1 -1
- package/dist/searxng/docker.d.ts.map +1 -1
- package/dist/searxng/docker.js +69 -60
- package/dist/searxng/docker.js.map +1 -1
- package/dist/searxng/process.d.ts +13 -1
- package/dist/searxng/process.d.ts.map +1 -1
- package/dist/searxng/process.js +231 -164
- package/dist/searxng/process.js.map +1 -1
- package/dist/server/backend-status.d.ts +13 -0
- package/dist/server/backend-status.d.ts.map +1 -0
- package/dist/server/backend-status.js +40 -0
- package/dist/server/backend-status.js.map +1 -0
- package/dist/server/tool-schemas.d.ts +549 -0
- package/dist/server/tool-schemas.d.ts.map +1 -0
- package/dist/server/tool-schemas.js +464 -0
- package/dist/server/tool-schemas.js.map +1 -0
- package/dist/server/warmup-on-start.d.ts +9 -0
- package/dist/server/warmup-on-start.d.ts.map +1 -0
- package/dist/server/warmup-on-start.js +55 -0
- package/dist/server/warmup-on-start.js.map +1 -0
- package/dist/server.d.ts +17 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +454 -297
- package/dist/server.js.map +1 -1
- package/dist/tools/agent.d.ts +5 -0
- package/dist/tools/agent.d.ts.map +1 -0
- package/dist/tools/agent.js +128 -0
- package/dist/tools/agent.js.map +1 -0
- package/dist/tools/cache.d.ts +2 -1
- package/dist/tools/cache.d.ts.map +1 -1
- package/dist/tools/cache.js +175 -44
- package/dist/tools/cache.js.map +1 -1
- package/dist/tools/crawl.d.ts.map +1 -1
- package/dist/tools/crawl.js +171 -88
- package/dist/tools/crawl.js.map +1 -1
- package/dist/tools/extract.d.ts +2 -2
- package/dist/tools/extract.d.ts.map +1 -1
- package/dist/tools/extract.js +175 -59
- package/dist/tools/extract.js.map +1 -1
- package/dist/tools/fetch.d.ts +2 -2
- package/dist/tools/fetch.d.ts.map +1 -1
- package/dist/tools/fetch.js +161 -68
- package/dist/tools/fetch.js.map +1 -1
- package/dist/tools/find-similar.d.ts +5 -0
- package/dist/tools/find-similar.d.ts.map +1 -0
- package/dist/tools/find-similar.js +127 -0
- package/dist/tools/find-similar.js.map +1 -0
- package/dist/tools/research.d.ts +5 -0
- package/dist/tools/research.d.ts.map +1 -0
- package/dist/tools/research.js +107 -0
- package/dist/tools/research.js.map +1 -0
- package/dist/tools/search.d.ts +10 -2
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +13 -158
- package/dist/tools/search.js.map +1 -1
- package/dist/types.d.ts +350 -7
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +6 -1
- package/dist/types.js.map +1 -1
- package/dist/util/mode.d.ts +4 -0
- package/dist/util/mode.d.ts.map +1 -0
- package/dist/util/mode.js +34 -0
- package/dist/util/mode.js.map +1 -0
- package/package.json +78 -8
- package/dist/extraction/trafilatura.d.ts +0 -6
- package/dist/extraction/trafilatura.d.ts.map +0 -1
- package/dist/extraction/trafilatura.js +0 -105
- package/dist/extraction/trafilatura.js.map +0 -1
- package/dist/search/flashrank.d.ts +0 -12
- package/dist/search/flashrank.d.ts.map +0 -1
- package/dist/search/flashrank.js +0 -63
- package/dist/search/flashrank.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/cli/tui/verify.ts"],"sourcesContent":["import { execSync } from 'node:child_process';\nimport { SearxngProcess } from '../../searxng/process.js';\nimport { getPythonBin } from '../../python-env.js';\nimport { getRerankProvider } from '../../providers/rerank-provider.js';\nimport type { WarmupReporter } from './reporter.js';\nimport { suggestionsFromResult } from './verify-suggestions.js';\n\nexport interface VerifyResult {\n searxng: 'ok' | 'failed';\n searxngUrl?: string;\n searxngError?: string;\n reranker: 'ok' | 'missing';\n rerankerError?: string;\n embeddings: 'ok' | 'missing';\n embeddingsError?: string;\n embeddingsDim?: number;\n allPassed: boolean;\n}\n\nconst SEARXNG_LABEL = 'Starting search engine (searxng)';\nconst RERANKER_LABEL = 'Checking ML reranker (cross-encoder)';\nconst EMBEDDINGS_LABEL = 'Checking embeddings';\n\nexport async function runVerify(\n dataDir: string,\n reporter: WarmupReporter,\n): Promise<VerifyResult> {\n const result: VerifyResult = {\n searxng: 'failed',\n reranker: 'missing',\n embeddings: 'missing',\n allPassed: false,\n };\n\n const proc = new SearxngProcess(`${dataDir}/searxng`, dataDir);\n\n reporter.start('searxng', SEARXNG_LABEL);\n let url: string | null = null;\n try {\n url = await proc.start();\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n result.searxng = 'failed';\n result.searxngError = message;\n reporter.fail('searxng', message);\n try { await proc.stop(); } catch { /* already dead */ }\n return finalize(result, reporter);\n }\n\n if (!url) {\n result.searxng = 'failed';\n result.searxngError = 'did not return a listening URL';\n reporter.fail('searxng', 'did not return a listening URL');\n try { await proc.stop(); } catch { /* already dead */ }\n return finalize(result, reporter);\n }\n\n result.searxng = 'ok';\n result.searxngUrl = url;\n reporter.success('searxng', url);\n\n const py = getPythonBin(dataDir);\n\n const rerankerProbe = await runRerankerProbe(reporter);\n result.reranker = rerankerProbe.state;\n if (rerankerProbe.error) result.rerankerError = rerankerProbe.error;\n\n const { state: embeddingsState, error: embeddingsError, dim } = runEmbeddingsProbe(py, reporter);\n result.embeddings = embeddingsState;\n if (embeddingsError) result.embeddingsError = embeddingsError;\n if (typeof dim === 'number') result.embeddingsDim = dim;\n\n try { await proc.stop(); } catch { /* best effort */ }\n return finalize(result);\n}\n\nasync function runRerankerProbe(\n reporter: WarmupReporter,\n): Promise<{ state: 'ok' | 'missing'; error?: string }> {\n reporter.start('reranker', RERANKER_LABEL);\n try {\n const provider = await getRerankProvider();\n await provider.rerank('warmup', [{ id: '0', text: 'hello world' }]);\n reporter.success('reranker', `installed (${provider.modelId})`);\n return { state: 'ok' };\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n reporter.fail('reranker', 'not installed');\n return { state: 'missing', error: message };\n }\n}\n\nfunction runEmbeddingsProbe(\n py: string,\n reporter: WarmupReporter,\n): { state: 'ok' | 'missing'; error?: string; dim?: number } {\n reporter.start('embeddings', EMBEDDINGS_LABEL);\n try {\n const script = 'import sentence_transformers, sys; m = sentence_transformers.SentenceTransformer.load if False else None; print(384)';\n const out = execSync(`${py} -c \"${script}\"`, { stdio: 'pipe', timeout: 30000 });\n const text = (out instanceof Buffer ? out.toString('utf-8') : String(out)).trim();\n const parsed = Number.parseInt(text, 10);\n if (!Number.isFinite(parsed)) {\n reporter.fail('embeddings', 'could not parse dim');\n return { state: 'missing', error: 'could not parse embeddings dim' };\n }\n reporter.success('embeddings', `${parsed}-dim`);\n return { state: 'ok', dim: parsed };\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n reporter.fail('embeddings', 'not installed');\n return { state: 'missing', error: message };\n }\n}\n\nfunction finalize(result: VerifyResult, reporter?: WarmupReporter): VerifyResult {\n result.allPassed =\n result.searxng === 'ok' &&\n result.reranker === 'ok' &&\n result.embeddings === 'ok';\n if (!result.allPassed && reporter) {\n for (const note of suggestionsFromResult(result)) reporter.note(note);\n }\n return result;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/version.ts"],"names":[],"mappings":"AAQA,wBAAgB,iBAAiB,IAAI,MAAM,CAO1C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
const require2 = createRequire(import.meta.url);
|
|
3
|
+
function getPackageVersion() {
|
|
4
|
+
try {
|
|
5
|
+
const pkg = require2("../../../package.json");
|
|
6
|
+
return pkg.version ?? "0.0.0";
|
|
7
|
+
} catch {
|
|
8
|
+
return "unknown";
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
getPackageVersion
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/cli/tui/version.ts"],"sourcesContent":["import { createRequire } from 'node:module';\n\nconst require = createRequire(import.meta.url);\n\ninterface PackageJson {\n version?: string;\n}\n\nexport function getPackageVersion(): string {\n try {\n const pkg = require('../../../package.json') as PackageJson;\n return pkg.version ?? '0.0.0';\n } catch {\n return 'unknown';\n }\n}\n"],"mappings":"AAAA,SAAS,qBAAqB;AAE9B,MAAMA,WAAU,cAAc,YAAY,GAAG;AAMtC,SAAS,oBAA4B;AAC1C,MAAI;AACF,UAAM,MAAMA,SAAQ,uBAAuB;AAC3C,WAAO,IAAI,WAAW;AAAA,EACxB,QAAQ;AACN,WAAO;AAAA,EACT;AACF;","names":["require"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/cli/uninstall.ts"],"names":[],"mappings":"AAEA,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAmDlE"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { detectInstalledHandlers } from "./agents/registry.js";
|
|
2
|
+
async function runUninstall(args) {
|
|
3
|
+
const help = args.includes("--help") || args.includes("-h");
|
|
4
|
+
if (help) {
|
|
5
|
+
process.stderr.write([
|
|
6
|
+
"Usage: wigolo uninstall",
|
|
7
|
+
"",
|
|
8
|
+
"Removes all wigolo agent integrations:",
|
|
9
|
+
" - MCP server config",
|
|
10
|
+
" - Global instructions block",
|
|
11
|
+
" - Skills (~/.claude/skills/wigolo*/)",
|
|
12
|
+
" - Slash command (~/.claude/commands/wigolo.md)",
|
|
13
|
+
"",
|
|
14
|
+
"Does NOT remove ~/.wigolo data (cache, search engine, embeddings).",
|
|
15
|
+
"For a full cleanup run: rm -rf ~/.wigolo",
|
|
16
|
+
""
|
|
17
|
+
].join("\n"));
|
|
18
|
+
return 0;
|
|
19
|
+
}
|
|
20
|
+
const handlers = detectInstalledHandlers();
|
|
21
|
+
if (handlers.length === 0) {
|
|
22
|
+
process.stdout.write("No agent integrations detected. Nothing to remove.\n");
|
|
23
|
+
return 0;
|
|
24
|
+
}
|
|
25
|
+
let totalRemoved = 0;
|
|
26
|
+
for (const handler of handlers) {
|
|
27
|
+
process.stdout.write(`
|
|
28
|
+
Removing ${handler.displayName}...
|
|
29
|
+
`);
|
|
30
|
+
try {
|
|
31
|
+
const { removed } = await handler.uninstall();
|
|
32
|
+
if (removed.length === 0) {
|
|
33
|
+
process.stdout.write(" (nothing to remove)\n");
|
|
34
|
+
} else {
|
|
35
|
+
for (const item of removed) {
|
|
36
|
+
process.stdout.write(` \u2713 Removed ${item}
|
|
37
|
+
`);
|
|
38
|
+
totalRemoved++;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
} catch (err) {
|
|
42
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
43
|
+
process.stderr.write(` ! Failed: ${message}
|
|
44
|
+
`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
process.stdout.write(`
|
|
48
|
+
Done. ${totalRemoved} item(s) removed.
|
|
49
|
+
`);
|
|
50
|
+
process.stdout.write("Note: ~/.wigolo data (cache, search engine) preserved.\n");
|
|
51
|
+
process.stdout.write("For full cleanup: rm -rf ~/.wigolo\n");
|
|
52
|
+
return 0;
|
|
53
|
+
}
|
|
54
|
+
export {
|
|
55
|
+
runUninstall
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=uninstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/cli/uninstall.ts"],"sourcesContent":["import { detectInstalledHandlers } from './agents/registry.js';\n\nexport async function runUninstall(args: string[]): Promise<number> {\n const help = args.includes('--help') || args.includes('-h');\n if (help) {\n process.stderr.write([\n 'Usage: wigolo uninstall',\n '',\n 'Removes all wigolo agent integrations:',\n ' - MCP server config',\n ' - Global instructions block',\n ' - Skills (~/.claude/skills/wigolo*/)',\n ' - Slash command (~/.claude/commands/wigolo.md)',\n '',\n 'Does NOT remove ~/.wigolo data (cache, search engine, embeddings).',\n 'For a full cleanup run: rm -rf ~/.wigolo',\n '',\n ].join('\\n'));\n return 0;\n }\n\n const handlers = detectInstalledHandlers();\n\n if (handlers.length === 0) {\n process.stdout.write('No agent integrations detected. Nothing to remove.\\n');\n return 0;\n }\n\n let totalRemoved = 0;\n\n for (const handler of handlers) {\n process.stdout.write(`\\nRemoving ${handler.displayName}...\\n`);\n try {\n const { removed } = await handler.uninstall();\n if (removed.length === 0) {\n process.stdout.write(' (nothing to remove)\\n');\n } else {\n for (const item of removed) {\n process.stdout.write(` ✓ Removed ${item}\\n`);\n totalRemoved++;\n }\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n process.stderr.write(` ! Failed: ${message}\\n`);\n }\n }\n\n process.stdout.write(`\\nDone. ${totalRemoved} item(s) removed.\\n`);\n process.stdout.write('Note: ~/.wigolo data (cache, search engine) preserved.\\n');\n process.stdout.write('For full cleanup: rm -rf ~/.wigolo\\n');\n\n return 0;\n}\n"],"mappings":"AAAA,SAAS,+BAA+B;AAExC,eAAsB,aAAa,MAAiC;AAClE,QAAM,OAAO,KAAK,SAAS,QAAQ,KAAK,KAAK,SAAS,IAAI;AAC1D,MAAI,MAAM;AACR,YAAQ,OAAO,MAAM;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,EAAE,KAAK,IAAI,CAAC;AACZ,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,wBAAwB;AAEzC,MAAI,SAAS,WAAW,GAAG;AACzB,YAAQ,OAAO,MAAM,sDAAsD;AAC3E,WAAO;AAAA,EACT;AAEA,MAAI,eAAe;AAEnB,aAAW,WAAW,UAAU;AAC9B,YAAQ,OAAO,MAAM;AAAA,WAAc,QAAQ,WAAW;AAAA,CAAO;AAC7D,QAAI;AACF,YAAM,EAAE,QAAQ,IAAI,MAAM,QAAQ,UAAU;AAC5C,UAAI,QAAQ,WAAW,GAAG;AACxB,gBAAQ,OAAO,MAAM,yBAAyB;AAAA,MAChD,OAAO;AACL,mBAAW,QAAQ,SAAS;AAC1B,kBAAQ,OAAO,MAAM,oBAAe,IAAI;AAAA,CAAI;AAC5C;AAAA,QACF;AAAA,MACF;AAAA,IACF,SAAS,KAAK;AACZ,YAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC/D,cAAQ,OAAO,MAAM,eAAe,OAAO;AAAA,CAAI;AAAA,IACjD;AAAA,EACF;AAEA,UAAQ,OAAO,MAAM;AAAA,QAAW,YAAY;AAAA,CAAqB;AACjE,UAAQ,OAAO,MAAM,0DAA0D;AAC/E,UAAQ,OAAO,MAAM,sCAAsC;AAE3D,SAAO;AACT;","names":[]}
|
package/dist/cli/warmup.d.ts
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
|
+
import type { WarmupReporter } from './tui/reporter.js';
|
|
1
2
|
export interface WarmupResult {
|
|
2
3
|
playwright: 'ok' | 'failed';
|
|
3
4
|
playwrightError?: string;
|
|
4
5
|
searxng: 'ready' | 'bootstrapped' | 'failed' | 'no_python';
|
|
5
6
|
searxngError?: string;
|
|
6
|
-
trafilatura?: 'ok' | 'failed' | 'skipped';
|
|
7
7
|
reranker?: 'ok' | 'failed';
|
|
8
8
|
rerankerError?: string;
|
|
9
|
+
firefox?: 'ok' | 'failed';
|
|
10
|
+
firefoxError?: string;
|
|
11
|
+
webkit?: 'ok' | 'failed';
|
|
12
|
+
webkitError?: string;
|
|
13
|
+
embeddings?: 'ok' | 'failed';
|
|
14
|
+
embeddingsError?: string;
|
|
15
|
+
lightpanda?: 'ok' | 'failed';
|
|
16
|
+
lightpandaError?: string;
|
|
9
17
|
}
|
|
10
|
-
export declare function runWarmup(flags?: string[]): Promise<WarmupResult>;
|
|
18
|
+
export declare function runWarmup(flags?: string[], reporter?: WarmupReporter): Promise<WarmupResult>;
|
|
11
19
|
//# sourceMappingURL=warmup.d.ts.map
|
package/dist/cli/warmup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warmup.d.ts","sourceRoot":"","sources":["../../src/cli/warmup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"warmup.d.ts","sourceRoot":"","sources":["../../src/cli/warmup.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,IAAI,GAAG,QAAQ,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,GAAG,cAAc,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAqMD,wBAAsB,SAAS,CAC7B,KAAK,GAAE,MAAM,EAAO,EACpB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,YAAY,CAAC,CAmEvB"}
|
package/dist/cli/warmup.js
CHANGED
|
@@ -1,107 +1,240 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { existsSync, readFileSync, rmSync, mkdirSync, createWriteStream, chmodSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { getConfig } from "../config.js";
|
|
4
|
+
import { checkPythonAvailable, bootstrapNativeSearxng, getBootstrapState } from "../searxng/bootstrap.js";
|
|
5
|
+
import { isProcessAlive } from "../searxng/process.js";
|
|
6
|
+
import { getRerankProvider } from "../providers/rerank-provider.js";
|
|
7
|
+
import { runCommand } from "./tui/run-command.js";
|
|
8
|
+
import { autoReporter } from "./tui/reporter-auto.js";
|
|
9
|
+
import { runVerify as runVerifyTui } from "./tui/verify.js";
|
|
10
|
+
function wipeSearxngState(dataDir, reporter) {
|
|
11
|
+
const bootstrapLockPath = join(dataDir, "bootstrap.lock");
|
|
12
|
+
if (existsSync(bootstrapLockPath)) {
|
|
10
13
|
try {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
const lock = JSON.parse(readFileSync(bootstrapLockPath, "utf-8"));
|
|
15
|
+
if (lock.pid && isProcessAlive(lock.pid)) {
|
|
16
|
+
throw new Error(
|
|
17
|
+
`Cannot --force: another wigolo bootstrap is in progress (pid ${lock.pid}). Kill it first: kill ${lock.pid}`
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
} catch (err) {
|
|
21
|
+
if (err instanceof Error && err.message.startsWith("Cannot --force")) throw err;
|
|
19
22
|
}
|
|
23
|
+
}
|
|
24
|
+
rmSync(join(dataDir, "state.json"), { force: true });
|
|
25
|
+
rmSync(join(dataDir, "searxng"), { recursive: true, force: true });
|
|
26
|
+
rmSync(bootstrapLockPath, { force: true });
|
|
27
|
+
rmSync(join(dataDir, "searxng.lock"), { force: true });
|
|
28
|
+
rmSync(join(dataDir, "searxng.port"), { force: true });
|
|
29
|
+
reporter.note("Wiped search engine state, install, and locks (--force)");
|
|
20
30
|
}
|
|
21
|
-
function
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
catch (err) {
|
|
32
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
33
|
-
log(`Trafilatura install failed: ${message}`);
|
|
34
|
-
return 'failed';
|
|
35
|
-
}
|
|
31
|
+
async function installPlaywright(reporter) {
|
|
32
|
+
reporter.start("playwright", "Installing browser engine (chromium)");
|
|
33
|
+
const r = await runCommand("npx", ["playwright", "install", "chromium"], { timeout: 18e4 });
|
|
34
|
+
if (r.code === 0) {
|
|
35
|
+
reporter.success("playwright", "installed");
|
|
36
|
+
return { playwright: "ok" };
|
|
37
|
+
}
|
|
38
|
+
const message = (r.stderr || r.stdout || `exit ${r.code}`).trim();
|
|
39
|
+
reporter.fail("playwright", message);
|
|
40
|
+
return { playwright: "failed", playwrightError: message };
|
|
36
41
|
}
|
|
37
|
-
function
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
47
|
-
log(`FlashRank install failed: ${message}`);
|
|
48
|
-
return { reranker: 'failed', rerankerError: message };
|
|
42
|
+
async function installReranker(reporter) {
|
|
43
|
+
reporter.start("reranker", "Downloading ML reranker model (cross-encoder)");
|
|
44
|
+
try {
|
|
45
|
+
const provider = await getRerankProvider();
|
|
46
|
+
const scored = await provider.rerank("warmup", [
|
|
47
|
+
{ id: "0", text: "hello world" }
|
|
48
|
+
]);
|
|
49
|
+
if (scored.length !== 1) {
|
|
50
|
+
throw new Error(`unexpected rerank shape (results=${scored.length})`);
|
|
49
51
|
}
|
|
52
|
+
reporter.success("reranker", `model ${provider.modelId} ready`);
|
|
53
|
+
return { reranker: "ok" };
|
|
54
|
+
} catch (err) {
|
|
55
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
56
|
+
reporter.fail("reranker", message);
|
|
57
|
+
return { reranker: "failed", rerankerError: message };
|
|
58
|
+
}
|
|
50
59
|
}
|
|
51
|
-
function
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
+
async function installFirefox(reporter) {
|
|
61
|
+
reporter.start("firefox", "Installing browser engine (firefox)");
|
|
62
|
+
const r = await runCommand("npx", ["playwright", "install", "firefox"], { timeout: 18e4 });
|
|
63
|
+
if (r.code === 0) {
|
|
64
|
+
reporter.success("firefox", "installed");
|
|
65
|
+
return { firefox: "ok" };
|
|
66
|
+
}
|
|
67
|
+
const message = (r.stderr || r.stdout || `exit ${r.code}`).trim();
|
|
68
|
+
reporter.fail("firefox", message);
|
|
69
|
+
return { firefox: "failed", firefoxError: message };
|
|
70
|
+
}
|
|
71
|
+
async function installWebkit(reporter) {
|
|
72
|
+
reporter.start("webkit", "Installing browser engine (webkit)");
|
|
73
|
+
const r = await runCommand("npx", ["playwright", "install", "webkit"], { timeout: 18e4 });
|
|
74
|
+
if (r.code === 0) {
|
|
75
|
+
reporter.success("webkit", "installed");
|
|
76
|
+
return { webkit: "ok" };
|
|
77
|
+
}
|
|
78
|
+
const message = (r.stderr || r.stdout || `exit ${r.code}`).trim();
|
|
79
|
+
reporter.fail("webkit", message);
|
|
80
|
+
return { webkit: "failed", webkitError: message };
|
|
81
|
+
}
|
|
82
|
+
async function installEmbeddings(reporter) {
|
|
83
|
+
reporter.start("embeddings", "Downloading semantic embeddings model (fastembed)");
|
|
84
|
+
try {
|
|
85
|
+
const { FastembedEmbedProvider } = await import("../embedding/fastembed-provider.js");
|
|
86
|
+
const provider = new FastembedEmbedProvider();
|
|
87
|
+
await provider.warmup();
|
|
88
|
+
const [vec] = await provider.embed(["warmup"]);
|
|
89
|
+
if (!vec || vec.length !== provider.dim) {
|
|
90
|
+
throw new Error(`unexpected embedding shape (dim=${vec?.length ?? "undef"})`);
|
|
60
91
|
}
|
|
61
|
-
|
|
92
|
+
reporter.success("embeddings", `model ${provider.modelId} ready`);
|
|
93
|
+
return { embeddings: "ok" };
|
|
94
|
+
} catch (err) {
|
|
95
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
96
|
+
reporter.fail("embeddings", message);
|
|
97
|
+
return { embeddings: "failed", embeddingsError: message };
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function getLightpandaUrl() {
|
|
101
|
+
const platform = process.platform;
|
|
102
|
+
const arch = process.arch;
|
|
103
|
+
const base = "https://github.com/lightpanda-io/browser/releases/download/nightly";
|
|
104
|
+
if (platform === "darwin" && arch === "arm64") return `${base}/lightpanda-aarch64-macos`;
|
|
105
|
+
if (platform === "linux" && arch === "x64") return `${base}/lightpanda-x86_64-linux`;
|
|
106
|
+
throw new Error(`Lightpanda not available for ${platform}/${arch}`);
|
|
62
107
|
}
|
|
63
|
-
|
|
64
|
-
|
|
108
|
+
async function installLightpanda(reporter) {
|
|
109
|
+
try {
|
|
65
110
|
const config = getConfig();
|
|
66
|
-
const
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
await bootstrapNativeSearxng(config.dataDir);
|
|
73
|
-
log('SearXNG bootstrapped successfully');
|
|
74
|
-
searxngResult = { searxng: 'bootstrapped' };
|
|
75
|
-
}
|
|
76
|
-
catch (err) {
|
|
77
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
78
|
-
log(`SearXNG bootstrap failed: ${message}`);
|
|
79
|
-
searxngResult = { searxng: 'failed', searxngError: message };
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
searxngResult = searxngCheck;
|
|
84
|
-
}
|
|
85
|
-
const flagSet = new Set(flags);
|
|
86
|
-
let trafStatus = 'skipped';
|
|
87
|
-
if (flagSet.has('--trafilatura') || flagSet.has('--all')) {
|
|
88
|
-
trafStatus = installTrafilatura();
|
|
89
|
-
}
|
|
90
|
-
let rerankerResult = {};
|
|
91
|
-
if (flagSet.has('--reranker') || flagSet.has('--all')) {
|
|
92
|
-
rerankerResult = installFlashRank();
|
|
111
|
+
const binDir = join(config.dataDir, "bin");
|
|
112
|
+
const binPath = join(binDir, "lightpanda");
|
|
113
|
+
if (existsSync(binPath)) {
|
|
114
|
+
reporter.start("lightpanda", "Installing Lightpanda");
|
|
115
|
+
reporter.success("lightpanda", "already installed");
|
|
116
|
+
return { lightpanda: "ok" };
|
|
93
117
|
}
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
118
|
+
const url = getLightpandaUrl();
|
|
119
|
+
mkdirSync(binDir, { recursive: true });
|
|
120
|
+
const head = await fetch(url, { method: "HEAD" });
|
|
121
|
+
const totalBytes = Number(head.headers.get("content-length") ?? 0);
|
|
122
|
+
reporter.start("lightpanda", "Downloading Lightpanda", { totalBytes: totalBytes || void 0 });
|
|
123
|
+
const resp = await fetch(url);
|
|
124
|
+
if (!resp.ok || !resp.body) {
|
|
125
|
+
throw new Error(`HTTP ${resp.status}`);
|
|
101
126
|
}
|
|
102
|
-
|
|
103
|
-
|
|
127
|
+
let downloaded = 0;
|
|
128
|
+
const reader = resp.body.getReader();
|
|
129
|
+
const ws = createWriteStream(binPath);
|
|
130
|
+
try {
|
|
131
|
+
while (true) {
|
|
132
|
+
const { done, value } = await reader.read();
|
|
133
|
+
if (done) break;
|
|
134
|
+
if (!ws.write(value)) await new Promise((resolve) => ws.once("drain", resolve));
|
|
135
|
+
downloaded += value.byteLength;
|
|
136
|
+
if (totalBytes > 0) reporter.progress("lightpanda", downloaded / totalBytes);
|
|
137
|
+
}
|
|
138
|
+
} finally {
|
|
139
|
+
ws.end();
|
|
140
|
+
await new Promise((resolve) => ws.once("finish", () => resolve()));
|
|
104
141
|
}
|
|
105
|
-
|
|
142
|
+
chmodSync(binPath, 493);
|
|
143
|
+
reporter.success("lightpanda", "installed");
|
|
144
|
+
return { lightpanda: "ok" };
|
|
145
|
+
} catch (err) {
|
|
146
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
147
|
+
reporter.fail("lightpanda", message);
|
|
148
|
+
return { lightpanda: "failed", lightpandaError: message };
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
async function runSearxngPhase(dataDir, reporter) {
|
|
152
|
+
const state = getBootstrapState(dataDir);
|
|
153
|
+
if (state?.status === "ready") {
|
|
154
|
+
reporter.start("searxng", "Checking search engine (searxng)");
|
|
155
|
+
reporter.success("searxng", "already set up");
|
|
156
|
+
return { searxng: "ready" };
|
|
157
|
+
}
|
|
158
|
+
if (!checkPythonAvailable()) {
|
|
159
|
+
reporter.start("searxng", "Checking search engine (searxng)");
|
|
160
|
+
reporter.fail("searxng", "Python 3 not found \u2014 install Python 3 or set SEARXNG_MODE=docker");
|
|
161
|
+
return { searxng: "no_python" };
|
|
162
|
+
}
|
|
163
|
+
reporter.start("searxng", "Bootstrapping search engine (searxng) \u2014 this may take a minute");
|
|
164
|
+
try {
|
|
165
|
+
await bootstrapNativeSearxng(dataDir);
|
|
166
|
+
reporter.success("searxng", "bootstrapped");
|
|
167
|
+
return { searxng: "bootstrapped" };
|
|
168
|
+
} catch (err) {
|
|
169
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
170
|
+
reporter.fail("searxng", message);
|
|
171
|
+
return { searxng: "failed", searxngError: message };
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
async function runVerify(dataDir, reporter) {
|
|
175
|
+
reporter.note("");
|
|
176
|
+
reporter.note("Verifying setup...");
|
|
177
|
+
await runVerifyTui(dataDir, reporter);
|
|
178
|
+
reporter.note("");
|
|
179
|
+
reporter.note("\u2713 Done. Connect to your AI tool:");
|
|
180
|
+
reporter.note(" claude mcp add wigolo -- npx @staticn0va/wigolo");
|
|
181
|
+
}
|
|
182
|
+
async function runWarmup(flags = [], reporter) {
|
|
183
|
+
const flagSet = new Set(flags);
|
|
184
|
+
const plain = flagSet.has("--plain");
|
|
185
|
+
const reporterImpl = reporter ?? autoReporter({ plain });
|
|
186
|
+
const config = getConfig();
|
|
187
|
+
if (flagSet.has("--force")) {
|
|
188
|
+
wipeSearxngState(config.dataDir, reporterImpl);
|
|
189
|
+
}
|
|
190
|
+
reporterImpl.note("Starting wigolo warmup");
|
|
191
|
+
const pwResult = await installPlaywright(reporterImpl);
|
|
192
|
+
const searxngResult = await runSearxngPhase(config.dataDir, reporterImpl);
|
|
193
|
+
let rerankerResult = {};
|
|
194
|
+
if (flagSet.has("--reranker") || flagSet.has("--all")) {
|
|
195
|
+
rerankerResult = await installReranker(reporterImpl);
|
|
196
|
+
}
|
|
197
|
+
let firefoxResult = {};
|
|
198
|
+
if (flagSet.has("--firefox") || flagSet.has("--all")) {
|
|
199
|
+
firefoxResult = await installFirefox(reporterImpl);
|
|
200
|
+
}
|
|
201
|
+
let webkitResult = {};
|
|
202
|
+
if (flagSet.has("--webkit") || flagSet.has("--all")) {
|
|
203
|
+
webkitResult = await installWebkit(reporterImpl);
|
|
204
|
+
}
|
|
205
|
+
let embeddingsResult = {};
|
|
206
|
+
if (flagSet.has("--embeddings") || flagSet.has("--all")) {
|
|
207
|
+
embeddingsResult = await installEmbeddings(reporterImpl);
|
|
208
|
+
}
|
|
209
|
+
let lightpandaResult = {};
|
|
210
|
+
if (flagSet.has("--lightpanda") || flagSet.has("--all")) {
|
|
211
|
+
lightpandaResult = await installLightpanda(reporterImpl);
|
|
212
|
+
}
|
|
213
|
+
const result = {
|
|
214
|
+
...pwResult,
|
|
215
|
+
...searxngResult,
|
|
216
|
+
...rerankerResult,
|
|
217
|
+
...firefoxResult,
|
|
218
|
+
...webkitResult,
|
|
219
|
+
...embeddingsResult,
|
|
220
|
+
...lightpandaResult
|
|
221
|
+
};
|
|
222
|
+
reporterImpl.note("");
|
|
223
|
+
reporterImpl.note("Summary:");
|
|
224
|
+
reporterImpl.note(` Browser: ${result.playwright}${result.playwrightError ? ` (${result.playwrightError})` : ""}`);
|
|
225
|
+
reporterImpl.note(` Search engine: ${result.searxng}${result.searxngError ? ` (${result.searxngError})` : ""}`);
|
|
226
|
+
if (result.reranker) reporterImpl.note(` ML reranker: ${result.reranker}${result.rerankerError ? ` (${result.rerankerError})` : ""}`);
|
|
227
|
+
if (result.firefox) reporterImpl.note(` Firefox: ${result.firefox}${result.firefoxError ? ` (${result.firefoxError})` : ""}`);
|
|
228
|
+
if (result.webkit) reporterImpl.note(` WebKit: ${result.webkit}${result.webkitError ? ` (${result.webkitError})` : ""}`);
|
|
229
|
+
if (result.embeddings) reporterImpl.note(` Embeddings: ${result.embeddings}${result.embeddingsError ? ` (${result.embeddingsError})` : ""}`);
|
|
230
|
+
if (result.lightpanda) reporterImpl.note(` Lightpanda: ${result.lightpanda}${result.lightpandaError ? ` (${result.lightpandaError})` : ""}`);
|
|
231
|
+
if (flagSet.has("--verify") || flagSet.has("--all")) {
|
|
232
|
+
await runVerify(config.dataDir, reporterImpl);
|
|
233
|
+
}
|
|
234
|
+
reporterImpl.finish();
|
|
235
|
+
return result;
|
|
106
236
|
}
|
|
237
|
+
export {
|
|
238
|
+
runWarmup
|
|
239
|
+
};
|
|
107
240
|
//# sourceMappingURL=warmup.js.map
|
package/dist/cli/warmup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warmup.js","sourceRoot":"","sources":["../../src/cli/warmup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/cli/warmup.ts"],"sourcesContent":["import { existsSync, readFileSync, rmSync, mkdirSync, createWriteStream, chmodSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { getConfig } from '../config.js';\nimport { checkPythonAvailable, bootstrapNativeSearxng, getBootstrapState } from '../searxng/bootstrap.js';\nimport { isProcessAlive } from '../searxng/process.js';\nimport { getRerankProvider } from '../providers/rerank-provider.js';\nimport { runCommand } from './tui/run-command.js';\nimport type { WarmupReporter } from './tui/reporter.js';\nimport { autoReporter } from './tui/reporter-auto.js';\nimport { runVerify as runVerifyTui } from './tui/verify.js';\n\nexport interface WarmupResult {\n playwright: 'ok' | 'failed';\n playwrightError?: string;\n searxng: 'ready' | 'bootstrapped' | 'failed' | 'no_python';\n searxngError?: string;\n reranker?: 'ok' | 'failed';\n rerankerError?: string;\n firefox?: 'ok' | 'failed';\n firefoxError?: string;\n webkit?: 'ok' | 'failed';\n webkitError?: string;\n embeddings?: 'ok' | 'failed';\n embeddingsError?: string;\n lightpanda?: 'ok' | 'failed';\n lightpandaError?: string;\n}\n\nfunction wipeSearxngState(dataDir: string, reporter: WarmupReporter): void {\n const bootstrapLockPath = join(dataDir, 'bootstrap.lock');\n if (existsSync(bootstrapLockPath)) {\n try {\n const lock = JSON.parse(readFileSync(bootstrapLockPath, 'utf-8')) as { pid?: number };\n if (lock.pid && isProcessAlive(lock.pid)) {\n throw new Error(\n `Cannot --force: another wigolo bootstrap is in progress (pid ${lock.pid}). ` +\n `Kill it first: kill ${lock.pid}`,\n );\n }\n } catch (err) {\n if (err instanceof Error && err.message.startsWith('Cannot --force')) throw err;\n }\n }\n rmSync(join(dataDir, 'state.json'), { force: true });\n rmSync(join(dataDir, 'searxng'), { recursive: true, force: true });\n rmSync(bootstrapLockPath, { force: true });\n rmSync(join(dataDir, 'searxng.lock'), { force: true });\n rmSync(join(dataDir, 'searxng.port'), { force: true });\n reporter.note('Wiped search engine state, install, and locks (--force)');\n}\n\nasync function installPlaywright(reporter: WarmupReporter): Promise<Pick<WarmupResult, 'playwright' | 'playwrightError'>> {\n reporter.start('playwright', 'Installing browser engine (chromium)');\n const r = await runCommand('npx', ['playwright', 'install', 'chromium'], { timeout: 180000 });\n if (r.code === 0) {\n reporter.success('playwright', 'installed');\n return { playwright: 'ok' };\n }\n const message = (r.stderr || r.stdout || `exit ${r.code}`).trim();\n reporter.fail('playwright', message);\n return { playwright: 'failed', playwrightError: message };\n}\n\nasync function installReranker(\n reporter: WarmupReporter,\n): Promise<Pick<WarmupResult, 'reranker' | 'rerankerError'>> {\n reporter.start('reranker', 'Downloading ML reranker model (cross-encoder)');\n try {\n const provider = await getRerankProvider();\n // Smoke-test end-to-end: warmup loads model + tokenizer, then a single\n // rerank call exercises the inference path.\n const scored = await provider.rerank('warmup', [\n { id: '0', text: 'hello world' },\n ]);\n if (scored.length !== 1) {\n throw new Error(`unexpected rerank shape (results=${scored.length})`);\n }\n reporter.success('reranker', `model ${provider.modelId} ready`);\n return { reranker: 'ok' };\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n reporter.fail('reranker', message);\n return { reranker: 'failed', rerankerError: message };\n }\n}\n\nasync function installFirefox(reporter: WarmupReporter): Promise<Pick<WarmupResult, 'firefox' | 'firefoxError'>> {\n reporter.start('firefox', 'Installing browser engine (firefox)');\n const r = await runCommand('npx', ['playwright', 'install', 'firefox'], { timeout: 180000 });\n if (r.code === 0) {\n reporter.success('firefox', 'installed');\n return { firefox: 'ok' };\n }\n const message = (r.stderr || r.stdout || `exit ${r.code}`).trim();\n reporter.fail('firefox', message);\n return { firefox: 'failed', firefoxError: message };\n}\n\nasync function installWebkit(reporter: WarmupReporter): Promise<Pick<WarmupResult, 'webkit' | 'webkitError'>> {\n reporter.start('webkit', 'Installing browser engine (webkit)');\n const r = await runCommand('npx', ['playwright', 'install', 'webkit'], { timeout: 180000 });\n if (r.code === 0) {\n reporter.success('webkit', 'installed');\n return { webkit: 'ok' };\n }\n const message = (r.stderr || r.stdout || `exit ${r.code}`).trim();\n reporter.fail('webkit', message);\n return { webkit: 'failed', webkitError: message };\n}\n\nasync function installEmbeddings(reporter: WarmupReporter): Promise<Pick<WarmupResult, 'embeddings' | 'embeddingsError'>> {\n reporter.start('embeddings', 'Downloading semantic embeddings model (fastembed)');\n try {\n const { FastembedEmbedProvider } = await import('../embedding/fastembed-provider.js');\n const provider = new FastembedEmbedProvider();\n await provider.warmup();\n // Probe to ensure the ONNX model can actually produce a vector end-to-end.\n const [vec] = await provider.embed(['warmup']);\n if (!vec || vec.length !== provider.dim) {\n throw new Error(`unexpected embedding shape (dim=${vec?.length ?? 'undef'})`);\n }\n reporter.success('embeddings', `model ${provider.modelId} ready`);\n return { embeddings: 'ok' };\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n reporter.fail('embeddings', message);\n return { embeddings: 'failed', embeddingsError: message };\n }\n}\n\nfunction getLightpandaUrl(): string {\n const platform = process.platform;\n const arch = process.arch;\n const base = 'https://github.com/lightpanda-io/browser/releases/download/nightly';\n if (platform === 'darwin' && arch === 'arm64') return `${base}/lightpanda-aarch64-macos`;\n if (platform === 'linux' && arch === 'x64') return `${base}/lightpanda-x86_64-linux`;\n throw new Error(`Lightpanda not available for ${platform}/${arch}`);\n}\n\nasync function installLightpanda(reporter: WarmupReporter): Promise<Pick<WarmupResult, 'lightpanda' | 'lightpandaError'>> {\n try {\n const config = getConfig();\n const binDir = join(config.dataDir, 'bin');\n const binPath = join(binDir, 'lightpanda');\n if (existsSync(binPath)) {\n reporter.start('lightpanda', 'Installing Lightpanda');\n reporter.success('lightpanda', 'already installed');\n return { lightpanda: 'ok' };\n }\n const url = getLightpandaUrl();\n mkdirSync(binDir, { recursive: true });\n\n const head = await fetch(url, { method: 'HEAD' });\n const totalBytes = Number(head.headers.get('content-length') ?? 0);\n\n reporter.start('lightpanda', 'Downloading Lightpanda', { totalBytes: totalBytes || undefined });\n\n const resp = await fetch(url);\n if (!resp.ok || !resp.body) {\n throw new Error(`HTTP ${resp.status}`);\n }\n\n let downloaded = 0;\n const reader = resp.body.getReader();\n const ws = createWriteStream(binPath);\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n if (!ws.write(value)) await new Promise<void>((resolve) => ws.once('drain', resolve));\n downloaded += value.byteLength;\n if (totalBytes > 0) reporter.progress('lightpanda', downloaded / totalBytes);\n }\n } finally {\n ws.end();\n await new Promise<void>((resolve) => ws.once('finish', () => resolve()));\n }\n\n chmodSync(binPath, 0o755);\n reporter.success('lightpanda', 'installed');\n return { lightpanda: 'ok' };\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n reporter.fail('lightpanda', message);\n return { lightpanda: 'failed', lightpandaError: message };\n }\n}\n\nasync function runSearxngPhase(dataDir: string, reporter: WarmupReporter): Promise<Pick<WarmupResult, 'searxng' | 'searxngError'>> {\n const state = getBootstrapState(dataDir);\n if (state?.status === 'ready') {\n reporter.start('searxng', 'Checking search engine (searxng)');\n reporter.success('searxng', 'already set up');\n return { searxng: 'ready' };\n }\n\n if (!checkPythonAvailable()) {\n reporter.start('searxng', 'Checking search engine (searxng)');\n reporter.fail('searxng', 'Python 3 not found — install Python 3 or set SEARXNG_MODE=docker');\n return { searxng: 'no_python' };\n }\n\n reporter.start('searxng', 'Bootstrapping search engine (searxng) — this may take a minute');\n try {\n await bootstrapNativeSearxng(dataDir);\n reporter.success('searxng', 'bootstrapped');\n return { searxng: 'bootstrapped' };\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n reporter.fail('searxng', message);\n return { searxng: 'failed', searxngError: message };\n }\n}\n\nasync function runVerify(dataDir: string, reporter: WarmupReporter): Promise<void> {\n reporter.note('');\n reporter.note('Verifying setup...');\n await runVerifyTui(dataDir, reporter);\n reporter.note('');\n reporter.note('✓ Done. Connect to your AI tool:');\n reporter.note(' claude mcp add wigolo -- npx @staticn0va/wigolo');\n}\n\nexport async function runWarmup(\n flags: string[] = [],\n reporter?: WarmupReporter,\n): Promise<WarmupResult> {\n const flagSet = new Set(flags);\n const plain = flagSet.has('--plain');\n const reporterImpl = reporter ?? autoReporter({ plain });\n\n const config = getConfig();\n\n if (flagSet.has('--force')) {\n wipeSearxngState(config.dataDir, reporterImpl);\n }\n\n reporterImpl.note('Starting wigolo warmup');\n\n const pwResult = await installPlaywright(reporterImpl);\n const searxngResult = await runSearxngPhase(config.dataDir, reporterImpl);\n\n let rerankerResult: Pick<WarmupResult, 'reranker' | 'rerankerError'> = {};\n if (flagSet.has('--reranker') || flagSet.has('--all')) {\n rerankerResult = await installReranker(reporterImpl);\n }\n\n let firefoxResult: Pick<WarmupResult, 'firefox' | 'firefoxError'> = {};\n if (flagSet.has('--firefox') || flagSet.has('--all')) {\n firefoxResult = await installFirefox(reporterImpl);\n }\n\n let webkitResult: Pick<WarmupResult, 'webkit' | 'webkitError'> = {};\n if (flagSet.has('--webkit') || flagSet.has('--all')) {\n webkitResult = await installWebkit(reporterImpl);\n }\n\n let embeddingsResult: Pick<WarmupResult, 'embeddings' | 'embeddingsError'> = {};\n if (flagSet.has('--embeddings') || flagSet.has('--all')) {\n embeddingsResult = await installEmbeddings(reporterImpl);\n }\n\n let lightpandaResult: Pick<WarmupResult, 'lightpanda' | 'lightpandaError'> = {};\n if (flagSet.has('--lightpanda') || flagSet.has('--all')) {\n lightpandaResult = await installLightpanda(reporterImpl);\n }\n\n const result: WarmupResult = {\n ...pwResult,\n ...searxngResult,\n ...rerankerResult,\n ...firefoxResult,\n ...webkitResult,\n ...embeddingsResult,\n ...lightpandaResult,\n };\n\n reporterImpl.note('');\n reporterImpl.note('Summary:');\n reporterImpl.note(` Browser: ${result.playwright}${result.playwrightError ? ` (${result.playwrightError})` : ''}`);\n reporterImpl.note(` Search engine: ${result.searxng}${result.searxngError ? ` (${result.searxngError})` : ''}`);\n if (result.reranker) reporterImpl.note(` ML reranker: ${result.reranker}${result.rerankerError ? ` (${result.rerankerError})` : ''}`);\n if (result.firefox) reporterImpl.note(` Firefox: ${result.firefox}${result.firefoxError ? ` (${result.firefoxError})` : ''}`);\n if (result.webkit) reporterImpl.note(` WebKit: ${result.webkit}${result.webkitError ? ` (${result.webkitError})` : ''}`);\n if (result.embeddings) reporterImpl.note(` Embeddings: ${result.embeddings}${result.embeddingsError ? ` (${result.embeddingsError})` : ''}`);\n if (result.lightpanda) reporterImpl.note(` Lightpanda: ${result.lightpanda}${result.lightpandaError ? ` (${result.lightpandaError})` : ''}`);\n\n if (flagSet.has('--verify') || flagSet.has('--all')) {\n await runVerify(config.dataDir, reporterImpl);\n }\n\n reporterImpl.finish();\n return result;\n}\n"],"mappings":"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","names":[]}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BrowserType } from './types.js';
|
|
1
2
|
export interface Config {
|
|
2
3
|
searxngUrl: string | null;
|
|
3
4
|
searxngMode: 'native' | 'docker';
|
|
@@ -16,9 +17,12 @@ export interface Config {
|
|
|
16
17
|
browserFallbackThreshold: number;
|
|
17
18
|
authStatePath: string | null;
|
|
18
19
|
chromeProfilePath: string | null;
|
|
20
|
+
cdpUrl: string | null;
|
|
19
21
|
dataDir: string;
|
|
20
22
|
cacheTtlSearch: number;
|
|
21
23
|
cacheTtlContent: number;
|
|
24
|
+
fastStaleMaxHours: number;
|
|
25
|
+
fastTimeoutMs: number;
|
|
22
26
|
crawlConcurrency: number;
|
|
23
27
|
crawlDelayMs: number;
|
|
24
28
|
crawlPrivateConcurrency: number;
|
|
@@ -31,10 +35,32 @@ export interface Config {
|
|
|
31
35
|
braveApiKey: string | null;
|
|
32
36
|
logLevel: 'debug' | 'info' | 'warn' | 'error';
|
|
33
37
|
logFormat: 'json' | 'text';
|
|
34
|
-
|
|
35
|
-
reranker: 'flashrank' | 'none' | 'custom';
|
|
38
|
+
reranker: 'onnx' | 'none' | 'custom';
|
|
36
39
|
rerankerModel: string;
|
|
40
|
+
rerankerMaxLength: number;
|
|
41
|
+
rerankerReadyTimeoutMs: number;
|
|
42
|
+
rerankerRequestTimeoutMs: number;
|
|
43
|
+
rerankerIdleTimeoutMs: number;
|
|
37
44
|
relevanceThreshold: number;
|
|
45
|
+
bootstrapMaxAttempts: number;
|
|
46
|
+
bootstrapBackoffSeconds: number[];
|
|
47
|
+
healthProbeIntervalMs: number;
|
|
48
|
+
daemonPort: number;
|
|
49
|
+
daemonHost: string;
|
|
50
|
+
pluginsDir: string;
|
|
51
|
+
browserTypes: BrowserType[];
|
|
52
|
+
shellHistoryPath: string;
|
|
53
|
+
multiQueryConcurrency: number;
|
|
54
|
+
multiQueryMax: number;
|
|
55
|
+
embeddingModel: string;
|
|
56
|
+
embeddingIdleTimeoutMs: number;
|
|
57
|
+
embeddingMaxTextLength: number;
|
|
58
|
+
lightpandaUrl: string | null;
|
|
59
|
+
lightpandaEnabled: boolean;
|
|
60
|
+
lightpandaFailureThreshold: number;
|
|
61
|
+
llmProvider: string | null;
|
|
62
|
+
llmCacheTtlDays: number;
|
|
63
|
+
llmMaxCallsPerRequest: number;
|
|
38
64
|
}
|
|
39
65
|
export declare function getConfig(): Config;
|
|
40
66
|
export declare function resetConfig(): void;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wBAAwB,EAAE,MAAM,CAAC;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0BAA0B,EAAE,MAAM,CAAC;IACnC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AA6BD,wBAAgB,SAAS,IAAI,MAAM,CAqFlC;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
|