@staticn0va/wigolo 0.6.2 → 0.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SKILL.md +30 -8
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +12 -1
- 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 +162 -0
- package/dist/cli/init.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 +116 -0
- package/dist/cli/setup-mcp.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 +32 -0
- package/dist/cli/status.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 +2 -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 +101 -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 +25 -0
- package/dist/cli/tui/banner.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 +33 -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 +89 -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 +88 -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 +98 -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 +44 -0
- package/dist/cli/tui/detect-helpers.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 +19 -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 +124 -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 +28 -0
- package/dist/cli/tui/format.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 +31 -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 +73 -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 +28 -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 +15 -0
- package/dist/cli/tui/status-format.d.ts.map +1 -0
- package/dist/cli/tui/status-format.js +45 -0
- package/dist/cli/tui/status-format.js.map +1 -0
- package/dist/cli/tui/status-python.d.ts +7 -0
- package/dist/cli/tui/status-python.d.ts.map +1 -0
- package/dist/cli/tui/status-python.js +24 -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 +101 -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 +94 -0
- package/dist/cli/tui/tui-reporter.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 +25 -0
- package/dist/cli/tui/verify-suggestions.js.map +1 -0
- package/dist/cli/tui/verify.d.ts +19 -0
- package/dist/cli/tui/verify.d.ts.map +1 -0
- package/dist/cli/tui/verify.js +138 -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 +12 -0
- package/dist/cli/tui/version.js.map +1 -0
- package/dist/cli/warmup.d.ts +2 -1
- package/dist/cli/warmup.d.ts.map +1 -1
- package/dist/cli/warmup.js +147 -208
- package/dist/cli/warmup.js.map +1 -1
- package/dist/daemon/http-server.js +1 -1
- package/dist/daemon/http-server.js.map +1 -1
- package/dist/embedding/embed.d.ts +0 -1
- package/dist/embedding/embed.d.ts.map +1 -1
- package/dist/embedding/embed.js +0 -3
- package/dist/embedding/embed.js.map +1 -1
- package/dist/extraction/extract.d.ts.map +1 -1
- package/dist/extraction/extract.js +6 -0
- package/dist/extraction/extract.js.map +1 -1
- package/dist/extraction/markdown.d.ts +2 -0
- package/dist/extraction/markdown.d.ts.map +1 -1
- package/dist/extraction/markdown.js +70 -0
- package/dist/extraction/markdown.js.map +1 -1
- package/dist/extraction/pipeline.d.ts.map +1 -1
- package/dist/extraction/pipeline.js +32 -7
- 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 +1 -1
- package/dist/extraction/readability.js.map +1 -1
- package/dist/extraction/site-extractors/github.js +1 -1
- package/dist/extraction/site-extractors/github.js.map +1 -1
- package/dist/extraction/site-extractors/mdn.js +1 -1
- package/dist/extraction/site-extractors/mdn.js.map +1 -1
- package/dist/extraction/site-extractors/stackoverflow.js +1 -1
- package/dist/extraction/site-extractors/stackoverflow.js.map +1 -1
- package/dist/extraction/structured.d.ts +4 -0
- package/dist/extraction/structured.d.ts.map +1 -0
- package/dist/extraction/structured.js +206 -0
- package/dist/extraction/structured.js.map +1 -0
- package/dist/fetch/lightpanda.js +1 -1
- package/dist/fetch/lightpanda.js.map +1 -1
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +6 -6
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +56 -50
- package/dist/instructions.js.map +1 -1
- package/dist/research/brief.d.ts +3 -0
- package/dist/research/brief.d.ts.map +1 -0
- package/dist/research/brief.js +79 -0
- package/dist/research/brief.js.map +1 -0
- package/dist/research/pipeline.d.ts.map +1 -1
- package/dist/research/pipeline.js +44 -1
- package/dist/research/pipeline.js.map +1 -1
- package/dist/research/synthesize.js +1 -1
- package/dist/research/synthesize.js.map +1 -1
- package/dist/search/answer-synthesis.d.ts +6 -0
- package/dist/search/answer-synthesis.d.ts.map +1 -1
- package/dist/search/answer-synthesis.js +54 -0
- package/dist/search/answer-synthesis.js.map +1 -1
- package/dist/search/dedup.d.ts +1 -0
- package/dist/search/dedup.d.ts.map +1 -1
- package/dist/search/dedup.js +4 -0
- package/dist/search/dedup.js.map +1 -1
- package/dist/search/find-similar.d.ts.map +1 -1
- package/dist/search/find-similar.js +41 -1
- package/dist/search/find-similar.js.map +1 -1
- package/dist/search/highlights.d.ts +10 -0
- package/dist/search/highlights.d.ts.map +1 -0
- package/dist/search/highlights.js +103 -0
- package/dist/search/highlights.js.map +1 -0
- package/dist/search/rerank.d.ts +1 -0
- package/dist/search/rerank.d.ts.map +1 -1
- package/dist/search/rerank.js +27 -2
- package/dist/search/rerank.js.map +1 -1
- package/dist/search/searxng.d.ts.map +1 -1
- package/dist/search/searxng.js +11 -7
- package/dist/search/searxng.js.map +1 -1
- package/dist/search/truncate.d.ts +2 -0
- package/dist/search/truncate.d.ts.map +1 -0
- package/dist/search/truncate.js +17 -0
- package/dist/search/truncate.js.map +1 -0
- package/dist/searxng/docker.d.ts.map +1 -1
- package/dist/searxng/docker.js +6 -2
- package/dist/searxng/docker.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +15 -6
- package/dist/server.js.map +1 -1
- package/dist/tools/agent.d.ts +2 -2
- package/dist/tools/agent.d.ts.map +1 -1
- package/dist/tools/agent.js +1 -1
- package/dist/tools/agent.js.map +1 -1
- package/dist/tools/extract.d.ts.map +1 -1
- package/dist/tools/extract.js +19 -1
- package/dist/tools/extract.js.map +1 -1
- package/dist/tools/fetch.d.ts.map +1 -1
- package/dist/tools/fetch.js +8 -1
- package/dist/tools/fetch.js.map +1 -1
- package/dist/tools/research.d.ts +1 -1
- package/dist/tools/research.d.ts.map +1 -1
- package/dist/tools/research.js +1 -1
- package/dist/tools/research.js.map +1 -1
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +121 -30
- package/dist/tools/search.js.map +1 -1
- package/dist/types.d.ts +60 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -1
package/SKILL.md
CHANGED
|
@@ -12,13 +12,13 @@ tools:
|
|
|
12
12
|
- name: fetch
|
|
13
13
|
description: Fetch one URL, return clean markdown. Auto-routes between HTTP and Playwright. Supports sections, auth, screenshots, browser actions.
|
|
14
14
|
- name: search
|
|
15
|
-
description: Search the web, return extracted markdown per result. Single query or array of query variants. Domain, category, date filters.
|
|
15
|
+
description: Search the web, return extracted markdown per result. Single query or array of query variants. Domain, category, date filters. Formats include FlashRank-scored highlights with citations for host-LLM synthesis.
|
|
16
16
|
- name: crawl
|
|
17
17
|
description: Crawl a site from a seed URL. BFS, DFS, sitemap, or map (URL-only) strategies with regex include/exclude filters.
|
|
18
18
|
- name: cache
|
|
19
19
|
description: FTS5 search over previously fetched content. URL glob, date filters, stats, clear, and change detection via re-fetch.
|
|
20
20
|
- name: extract
|
|
21
|
-
description: Structured extraction from URL or raw HTML. Modes: selector (CSS), tables, metadata (meta + JSON-LD), schema (heuristic field matching).
|
|
21
|
+
description: Structured extraction from URL or raw HTML. Modes: selector (CSS), tables, metadata (meta + JSON-LD), schema (heuristic field matching), structured (tables + dl + JSON-LD + chart hints + key-value pairs in one call).
|
|
22
22
|
- name: find_similar
|
|
23
23
|
description: Find pages similar to a URL or concept. Hybrid cache (FTS5 + embeddings) + optional web supplement.
|
|
24
24
|
- name: research
|
|
@@ -31,6 +31,16 @@ tools:
|
|
|
31
31
|
|
|
32
32
|
Local-first web search MCP server for AI coding agents. Ships eight tools over stdio. All network results land in a local SQLite cache.
|
|
33
33
|
|
|
34
|
+
## Host-LLM synthesis (read me first)
|
|
35
|
+
|
|
36
|
+
Wigolo has no internal LLM. It returns *structured evidence* so the calling model (you) writes the final answer. Fold structure into your reply rather than collapsing it away:
|
|
37
|
+
|
|
38
|
+
- `search` with `format: "highlights"` — FlashRank-scored passages + `citations`. Quote and cite [N].
|
|
39
|
+
- `research` — when MCP sampling is unavailable (common), the output carries a `brief` with `topics`, `highlights`, `key_findings`. Use it as the scaffold for the report you write.
|
|
40
|
+
- `find_similar` — may return a `cold_start` string. Pass it to the user; it explains why results came from the web and how to warm the cache.
|
|
41
|
+
- `extract` with `mode: "structured"` — one call for tables + `<dl>` definitions + JSON-LD + chart hints + key-value pairs.
|
|
42
|
+
- `fetch` metadata — surfaces `og_type`, `canonical_url`, and `og_image`; use `canonical_url` to dedupe tracked/canonical URLs.
|
|
43
|
+
|
|
34
44
|
## Quick Setup
|
|
35
45
|
|
|
36
46
|
**Claude Code:**
|
|
@@ -100,7 +110,8 @@ Parameters:
|
|
|
100
110
|
- `category`: `"general"` | `"news"` | `"code"` | `"docs"` | `"papers"` | `"images"`
|
|
101
111
|
- `language`: string
|
|
102
112
|
- `search_engines`: `string[]` — override engine selection
|
|
103
|
-
- `format`: `"full"` (default) | `"context"` (token-budgeted string) | `"answer"` (synthesized via MCP sampling) | `"stream_answer"` (answer + phase progress notifications)
|
|
113
|
+
- `format`: `"full"` (default) | `"context"` (token-budgeted string) | `"highlights"` (FlashRank-scored passages + citations) | `"answer"` (synthesized via MCP sampling; falls back to `highlights` when unsupported) | `"stream_answer"` (answer + phase progress notifications)
|
|
114
|
+
- `max_highlights`: number (default `10`) — cap when `format: "highlights"`
|
|
104
115
|
- `force_refresh`: boolean
|
|
105
116
|
|
|
106
117
|
Example:
|
|
@@ -156,7 +167,7 @@ Structured extraction from URL or raw HTML.
|
|
|
156
167
|
|
|
157
168
|
Parameters:
|
|
158
169
|
- `url` OR `html` (one required; `url` wins if both provided)
|
|
159
|
-
- `mode`: `"metadata"` (default) | `"selector"` | `"tables"` | `"schema"`
|
|
170
|
+
- `mode`: `"metadata"` (default) | `"selector"` | `"tables"` | `"schema"` | `"structured"` (tables + `<dl>` definitions + JSON-LD + chart hints + microdata/data-attr/grid key-value pairs in one call)
|
|
160
171
|
- `css_selector`: string — required for `mode: "selector"`
|
|
161
172
|
- `multiple`: boolean (default `false`) — return all matches, selector mode only
|
|
162
173
|
- `schema`: JSON Schema object with `properties` — required for `mode: "schema"`
|
|
@@ -166,7 +177,7 @@ Example:
|
|
|
166
177
|
{ "url": "https://example.com/product", "mode": "schema", "schema": { "type": "object", "properties": { "price": { "type": "string" }, "name": { "type": "string" }, "sku": { "type": "string" } } } }
|
|
167
178
|
```
|
|
168
179
|
|
|
169
|
-
Tip: `mode: "schema"` does heuristic matching over CSS classes, ARIA labels, microdata, and JSON-LD — no LLM call required.
|
|
180
|
+
Tip: `mode: "schema"` does heuristic matching over CSS classes, ARIA labels, microdata, and JSON-LD — no LLM call required. `mode: "structured"` returns every structured pattern on the page (`tables`, `definitions`, `jsonld`, `chart_hints`, `key_value_pairs`) in one response — prefer it over chaining multiple extract calls.
|
|
170
181
|
|
|
171
182
|
### find_similar
|
|
172
183
|
|
|
@@ -184,7 +195,7 @@ Example:
|
|
|
184
195
|
{ "url": "https://react.dev/reference/react/useState", "max_results": 8, "include_domains": ["react.dev", "developer.mozilla.org"] }
|
|
185
196
|
```
|
|
186
197
|
|
|
187
|
-
Tip: uses hybrid 3-way
|
|
198
|
+
Tip: uses hybrid 3-way RRF fusion — FTS5 + sentence-transformer embeddings + live web search. Each result carries `match_signals` with `embedding_rank`, `fts5_rank`, and `fused_score`. If the cache is empty or embeddings aren't set up, the response includes a `cold_start` string — pass it to the user to explain why results came from the web.
|
|
188
199
|
|
|
189
200
|
### research
|
|
190
201
|
|
|
@@ -203,7 +214,7 @@ Example:
|
|
|
203
214
|
{ "question": "How do modern JS bundlers tree-shake ESM vs CJS?", "depth": "standard", "include_domains": ["webpack.js.org", "rollupjs.org", "esbuild.github.io", "vitejs.dev"] }
|
|
204
215
|
```
|
|
205
216
|
|
|
206
|
-
Tip: `research` checks cache internally — no need to pre-probe.
|
|
217
|
+
Tip: `research` checks cache internally — no need to pre-probe. With MCP sampling, the tool synthesizes the report directly. Without sampling (the common case), the output ships a `brief` with `topics`, `highlights`, and `key_findings`, plus the raw sources — the host LLM writes the final report from the brief.
|
|
207
218
|
|
|
208
219
|
### agent
|
|
209
220
|
|
|
@@ -280,6 +291,16 @@ agent({ "prompt": "Find latency and pricing for top 5 edge compute providers", "
|
|
|
280
291
|
extract({ "url": "https://en.wikipedia.org/wiki/List_of_programming_languages", "mode": "tables" })
|
|
281
292
|
```
|
|
282
293
|
|
|
294
|
+
**One-shot structured brief.** Tables + definition lists + JSON-LD + chart hints + key-value pairs in one call.
|
|
295
|
+
```json
|
|
296
|
+
extract({ "url": "https://example.com/product-page", "mode": "structured" })
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
**Direct quotes with citations.** FlashRank passages are ideal for host-LLM synthesis.
|
|
300
|
+
```json
|
|
301
|
+
search({ "query": "react server components data fetching", "format": "highlights", "max_highlights": 6, "include_domains": ["react.dev", "nextjs.org"] })
|
|
302
|
+
```
|
|
303
|
+
|
|
283
304
|
## Parameter Cheat Sheet
|
|
284
305
|
|
|
285
306
|
| Situation | Tool + parameters |
|
|
@@ -292,10 +313,11 @@ extract({ "url": "https://en.wikipedia.org/wiki/List_of_programming_languages",
|
|
|
292
313
|
| Single heading from long page | `fetch` + `section: "..."` |
|
|
293
314
|
| Behind login | `fetch` / `crawl` + `use_auth: true` |
|
|
294
315
|
| Direct answer (sampling client) | `search` + `format: "answer"` |
|
|
316
|
+
| FlashRank-scored quotes + citations | `search` + `format: "highlights"` |
|
|
295
317
|
| LLM-ready context blob | `search` + `format: "context"` |
|
|
296
318
|
| Complex question, multi-source | `research` + `depth: "standard"` |
|
|
297
319
|
| Structured multi-page extraction | `agent` + `schema` |
|
|
298
|
-
| One-page structured data | `extract` + `mode: "
|
|
320
|
+
| One-page structured data | `extract` + `mode: "structured"` (everything) or `"schema"` / `"tables"` (targeted) |
|
|
299
321
|
| Change tracking | `cache` + `check_changes: true` |
|
|
300
322
|
|
|
301
323
|
## Anti-Patterns
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type Command = 'mcp' | 'warmup' | 'serve' | 'health' | 'doctor' | 'auth' | 'plugin' | 'shell';
|
|
1
|
+
export type Command = 'mcp' | 'warmup' | 'serve' | 'health' | 'doctor' | 'auth' | 'plugin' | 'shell' | 'init' | 'setup' | 'status';
|
|
2
2
|
export interface ParsedCommand {
|
|
3
3
|
command: Command;
|
|
4
4
|
args: string[];
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEnI,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAeD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAQ1D"}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
const KNOWN_COMMANDS = new Set([
|
|
1
|
+
const KNOWN_COMMANDS = new Set([
|
|
2
|
+
'warmup',
|
|
3
|
+
'serve',
|
|
4
|
+
'health',
|
|
5
|
+
'doctor',
|
|
6
|
+
'auth',
|
|
7
|
+
'plugin',
|
|
8
|
+
'shell',
|
|
9
|
+
'init',
|
|
10
|
+
'setup',
|
|
11
|
+
'status',
|
|
12
|
+
]);
|
|
2
13
|
export function parseCommand(argv) {
|
|
3
14
|
const first = argv[0];
|
|
4
15
|
if (first && KNOWN_COMMANDS.has(first)) {
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAOA,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAOA,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC;IAClD,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;IACP,QAAQ;CACT,CAAC,CAAC;AAEH,MAAM,UAAU,YAAY,CAAC,IAAc;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEtB,IAAI,KAAK,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,OAAO,EAAE,KAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAoEA,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAsG7D"}
|
package/dist/cli/init.js
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { renderBanner } from './tui/banner.js';
|
|
2
|
+
import { getPackageVersion } from './tui/version.js';
|
|
3
|
+
import { runSystemCheck } from './tui/system-check.js';
|
|
4
|
+
import { ok, fail, warn, info } from './tui/format.js';
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
import { parseInitFlags, FlagParseError } from './tui/flags.js';
|
|
7
|
+
import { runWarmup } from './warmup.js';
|
|
8
|
+
import { detectAgents } from './tui/agents.js';
|
|
9
|
+
import { selectAgents, NotTtyError } from './tui/select-agents.js';
|
|
10
|
+
import { applyConfigs } from './tui/config-writer.js';
|
|
11
|
+
import { runVerify } from './tui/verify.js';
|
|
12
|
+
import { autoReporter } from './tui/reporter-auto.js';
|
|
13
|
+
import { getConfig } from '../config.js';
|
|
14
|
+
const INIT_USAGE = [
|
|
15
|
+
'Usage: wigolo init [options]',
|
|
16
|
+
'',
|
|
17
|
+
'Options:',
|
|
18
|
+
' --non-interactive, -y Skip interactive prompts',
|
|
19
|
+
' --agents=<csv> Comma-separated agent ids (required with --non-interactive)',
|
|
20
|
+
' --skip-verify Skip the post-install verify step',
|
|
21
|
+
' --plain Force plain (non-TUI) output',
|
|
22
|
+
' --help, -h Show this message',
|
|
23
|
+
'',
|
|
24
|
+
].join('\n');
|
|
25
|
+
function out(line = '') {
|
|
26
|
+
process.stdout.write(`${line}\n`);
|
|
27
|
+
}
|
|
28
|
+
function renderSystemCheck(result) {
|
|
29
|
+
out(chalk.bold(' Checking your system...'));
|
|
30
|
+
if (result.node.ok) {
|
|
31
|
+
out(` ${ok(`Node.js ${result.node.version}`)}`);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
out(` ${fail(`Node.js ${result.node.version ?? '(unknown)'}`)}`);
|
|
35
|
+
if (result.node.message)
|
|
36
|
+
out(` ${chalk.gray(result.node.message)}`);
|
|
37
|
+
}
|
|
38
|
+
if (result.python.ok) {
|
|
39
|
+
out(` ${ok(`Python ${result.python.version} (${result.python.binary})`)}`);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
out(` ${fail('Python 3 not found')}`);
|
|
43
|
+
if (result.python.message)
|
|
44
|
+
out(` ${chalk.gray(result.python.message)}`);
|
|
45
|
+
out(` ${chalk.gray('Install: https://python.org/downloads or `brew install python3`')}`);
|
|
46
|
+
}
|
|
47
|
+
if (result.docker.ok) {
|
|
48
|
+
const ver = result.docker.version ?? '';
|
|
49
|
+
out(` ${ok(`Docker ${ver} ${chalk.gray('(optional, available)')}`.trim())}`);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
out(` ${warn(`Docker not found ${chalk.gray('(optional — only needed for docker-mode SearXNG)')}`)}`);
|
|
53
|
+
}
|
|
54
|
+
if (result.disk.ok) {
|
|
55
|
+
out(` ${ok(`Disk: ${result.disk.freeMb} MB free`)}`);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
out(` ${warn(`Disk: ${result.disk.message ?? 'low free space'}`)}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function renderHardFailure() {
|
|
62
|
+
out();
|
|
63
|
+
out(chalk.red.bold(' Setup cannot continue until the issues above are resolved.'));
|
|
64
|
+
}
|
|
65
|
+
export async function runInit(args) {
|
|
66
|
+
let flags;
|
|
67
|
+
try {
|
|
68
|
+
flags = parseInitFlags(args);
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
if (err instanceof FlagParseError) {
|
|
72
|
+
process.stderr.write(`${err.message}\n`);
|
|
73
|
+
process.stderr.write(INIT_USAGE);
|
|
74
|
+
return 2;
|
|
75
|
+
}
|
|
76
|
+
throw err;
|
|
77
|
+
}
|
|
78
|
+
if (flags.help) {
|
|
79
|
+
process.stderr.write(INIT_USAGE);
|
|
80
|
+
return 0;
|
|
81
|
+
}
|
|
82
|
+
if (flags.nonInteractive && flags.agents.length === 0) {
|
|
83
|
+
process.stderr.write('--non-interactive requires --agents=<csv>\n');
|
|
84
|
+
process.stderr.write(INIT_USAGE);
|
|
85
|
+
return 2;
|
|
86
|
+
}
|
|
87
|
+
const version = getPackageVersion();
|
|
88
|
+
process.stdout.write(renderBanner(version));
|
|
89
|
+
const sysResult = await runSystemCheck();
|
|
90
|
+
renderSystemCheck(sysResult);
|
|
91
|
+
if (sysResult.hardFailure) {
|
|
92
|
+
renderHardFailure();
|
|
93
|
+
return 1;
|
|
94
|
+
}
|
|
95
|
+
out();
|
|
96
|
+
out(` ${info('System check passed.')}`);
|
|
97
|
+
out();
|
|
98
|
+
const reporter = autoReporter({ plain: flags.plain, command: 'init' });
|
|
99
|
+
try {
|
|
100
|
+
await runWarmup(['--all'], reporter);
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
104
|
+
process.stderr.write(`Warmup failed: ${message}\n`);
|
|
105
|
+
return 1;
|
|
106
|
+
}
|
|
107
|
+
let detected;
|
|
108
|
+
try {
|
|
109
|
+
detected = detectAgents({});
|
|
110
|
+
}
|
|
111
|
+
catch (err) {
|
|
112
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
113
|
+
process.stderr.write(`Agent detection failed: ${message}\n`);
|
|
114
|
+
return 1;
|
|
115
|
+
}
|
|
116
|
+
let selected;
|
|
117
|
+
if (flags.nonInteractive) {
|
|
118
|
+
selected = [...flags.agents];
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
try {
|
|
122
|
+
selected = await selectAgents(detected);
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
if (err instanceof NotTtyError) {
|
|
126
|
+
process.stderr.write('init requires an interactive terminal.\n');
|
|
127
|
+
process.stderr.write('Use --non-interactive --agents=<comma-list> in scripts or CI.\n');
|
|
128
|
+
return 2;
|
|
129
|
+
}
|
|
130
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
131
|
+
process.stderr.write(`Selection failed: ${message}\n`);
|
|
132
|
+
return 1;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if (selected.length === 0) {
|
|
136
|
+
process.stderr.write('No agents selected — nothing to do.\n');
|
|
137
|
+
return 0;
|
|
138
|
+
}
|
|
139
|
+
const config = getConfig();
|
|
140
|
+
try {
|
|
141
|
+
await applyConfigs(detected, selected, {});
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
145
|
+
process.stderr.write(`Writing configs failed: ${message}\n`);
|
|
146
|
+
return 1;
|
|
147
|
+
}
|
|
148
|
+
if (!flags.skipVerify) {
|
|
149
|
+
try {
|
|
150
|
+
const verifyResult = await runVerify(config.dataDir, reporter);
|
|
151
|
+
if (!verifyResult.allPassed) {
|
|
152
|
+
reporter.note('Some checks failed. The CLI will still continue.');
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
157
|
+
process.stderr.write(`Verify failed: ${message}\n`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return 0;
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-mcp.d.ts","sourceRoot":"","sources":["../../src/cli/setup-mcp.ts"],"names":[],"mappings":"AAsBA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAoGjE"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { detectAgents } from './tui/agents.js';
|
|
2
|
+
import { selectAgents, NotTtyError } from './tui/select-agents.js';
|
|
3
|
+
import { applyConfigs } from './tui/config-writer.js';
|
|
4
|
+
import { printAddMcpBanner } from './tui/banner.js';
|
|
5
|
+
import { parseSetupMcpFlags, FlagParseError } from './tui/flags.js';
|
|
6
|
+
const USAGE = [
|
|
7
|
+
'Usage: wigolo setup <subcommand> [options]',
|
|
8
|
+
'',
|
|
9
|
+
'Subcommands:',
|
|
10
|
+
' mcp Configure wigolo in your AI tools (Claude Code, Cursor, ...)',
|
|
11
|
+
'',
|
|
12
|
+
'Examples:',
|
|
13
|
+
' npx @staticn0va/wigolo setup mcp',
|
|
14
|
+
' npx @staticn0va/wigolo setup mcp --non-interactive --agents=claude-code,cursor',
|
|
15
|
+
].join('\n');
|
|
16
|
+
function writeErr(line) {
|
|
17
|
+
process.stderr.write(`${line}\n`);
|
|
18
|
+
}
|
|
19
|
+
export async function runSetupMcp(args) {
|
|
20
|
+
const sub = args[0];
|
|
21
|
+
if (!sub) {
|
|
22
|
+
writeErr(USAGE);
|
|
23
|
+
return 2;
|
|
24
|
+
}
|
|
25
|
+
if (sub !== 'mcp') {
|
|
26
|
+
writeErr(`Unknown subcommand: ${sub}`);
|
|
27
|
+
writeErr(USAGE);
|
|
28
|
+
return 2;
|
|
29
|
+
}
|
|
30
|
+
let flags;
|
|
31
|
+
try {
|
|
32
|
+
flags = parseSetupMcpFlags(args);
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
if (err instanceof FlagParseError) {
|
|
36
|
+
writeErr(err.message);
|
|
37
|
+
writeErr(USAGE);
|
|
38
|
+
return 2;
|
|
39
|
+
}
|
|
40
|
+
throw err;
|
|
41
|
+
}
|
|
42
|
+
if (flags.help) {
|
|
43
|
+
writeErr(USAGE);
|
|
44
|
+
return 0;
|
|
45
|
+
}
|
|
46
|
+
printAddMcpBanner();
|
|
47
|
+
let detected;
|
|
48
|
+
try {
|
|
49
|
+
detected = await detectAgents({});
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
53
|
+
writeErr(`Agent detection failed: ${message}`);
|
|
54
|
+
return 1;
|
|
55
|
+
}
|
|
56
|
+
if (detected.length === 0) {
|
|
57
|
+
writeErr('No supported AI tools detected on this machine.');
|
|
58
|
+
writeErr('Supported: Claude Code, Cursor, VS Code, Zed, Gemini CLI, Windsurf, Codex, OpenCode.');
|
|
59
|
+
writeErr('Install one of them, then re-run: npx @staticn0va/wigolo setup mcp');
|
|
60
|
+
return 0;
|
|
61
|
+
}
|
|
62
|
+
let selected = [];
|
|
63
|
+
if (flags.nonInteractive) {
|
|
64
|
+
if (flags.agents.length === 0) {
|
|
65
|
+
writeErr('--non-interactive requires --agents=<csv>');
|
|
66
|
+
writeErr(USAGE);
|
|
67
|
+
return 2;
|
|
68
|
+
}
|
|
69
|
+
selected = [...flags.agents];
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
try {
|
|
73
|
+
selected = await selectAgents(detected);
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
if (err instanceof NotTtyError) {
|
|
77
|
+
writeErr('setup mcp requires an interactive terminal.');
|
|
78
|
+
writeErr('Use --non-interactive --agents=<comma-list> in scripts or CI.');
|
|
79
|
+
return 2;
|
|
80
|
+
}
|
|
81
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
82
|
+
writeErr(`Selection failed: ${message}`);
|
|
83
|
+
return 1;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (selected.length === 0) {
|
|
87
|
+
writeErr('No agents selected — nothing to do.');
|
|
88
|
+
return 0;
|
|
89
|
+
}
|
|
90
|
+
let results;
|
|
91
|
+
try {
|
|
92
|
+
results = await applyConfigs(detected, selected, {});
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
96
|
+
writeErr(`Writing configs failed: ${message}`);
|
|
97
|
+
return 1;
|
|
98
|
+
}
|
|
99
|
+
writeErr('');
|
|
100
|
+
writeErr('Summary:');
|
|
101
|
+
let hadError = false;
|
|
102
|
+
for (const r of results) {
|
|
103
|
+
const name = r.displayName;
|
|
104
|
+
if (r.ok) {
|
|
105
|
+
writeErr(` ✓ ${name}: ${r.configPath ?? r.code}`);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
hadError = true;
|
|
109
|
+
const loc = r.configPath ? ` (${r.configPath})` : '';
|
|
110
|
+
writeErr(` ✗ ${name}: ${r.message ?? r.code}${loc}`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
writeErr('');
|
|
114
|
+
return hadError ? 1 : 0;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=setup-mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-mcp.js","sourceRoot":"","sources":["../../src/cli/setup-mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"AAYA,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BhE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import { getConfig } from '../config.js';
|
|
3
|
+
import { getBootstrapState } from '../searxng/bootstrap.js';
|
|
4
|
+
import { readCacheStats } from './tui/status-cache.js';
|
|
5
|
+
import { probePythonPackages } from './tui/status-python.js';
|
|
6
|
+
import { readConnectedAgents } from './tui/status-agents.js';
|
|
7
|
+
import { formatStatus } from './tui/status-format.js';
|
|
8
|
+
const require = createRequire(import.meta.url);
|
|
9
|
+
const pkg = require('../../package.json');
|
|
10
|
+
export async function runStatus(_args) {
|
|
11
|
+
const dataDir = getConfig().dataDir;
|
|
12
|
+
const bootstrap = getBootstrapState(dataDir);
|
|
13
|
+
const searxng = bootstrap === null ? 'pending' :
|
|
14
|
+
bootstrap.status === 'ready' ? 'ready' :
|
|
15
|
+
bootstrap.status === 'failed' ? 'failed' :
|
|
16
|
+
'pending';
|
|
17
|
+
const python = probePythonPackages(dataDir);
|
|
18
|
+
const cache = readCacheStats(dataDir);
|
|
19
|
+
const agents = readConnectedAgents({});
|
|
20
|
+
const bag = {
|
|
21
|
+
version: pkg.version ?? '0.0.0',
|
|
22
|
+
searxng,
|
|
23
|
+
flashrank: python.flashrank,
|
|
24
|
+
trafilatura: python.trafilatura,
|
|
25
|
+
embeddings: python.embeddings,
|
|
26
|
+
cache,
|
|
27
|
+
agents,
|
|
28
|
+
};
|
|
29
|
+
process.stderr.write(formatStatus(bag));
|
|
30
|
+
return 0;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAkB,MAAM,wBAAwB,CAAC;AAEtE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAgB,CAAC;AAEzD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAe;IAC7C,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC;IAEpC,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,OAAO,GACX,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAChC,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACxC,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC1C,SAAS,CAAC;IAEZ,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAEvC,MAAM,GAAG,GAAc;QACrB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,OAAO;QAC/B,OAAO;QACP,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,KAAK;QACL,MAAM;KACP,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type AgentId = 'claude-code' | 'cursor' | 'vscode' | 'zed' | 'gemini-cli' | 'windsurf' | 'codex' | 'opencode';
|
|
2
|
+
export type InstallType = 'cli-command' | 'config-file' | 'config-toml';
|
|
3
|
+
export interface AgentDescriptor {
|
|
4
|
+
id: AgentId;
|
|
5
|
+
displayName: string;
|
|
6
|
+
installType: InstallType;
|
|
7
|
+
/** Returns true when wigolo can plausibly install into this agent on this machine. */
|
|
8
|
+
detect(opts: {
|
|
9
|
+
cwd: string;
|
|
10
|
+
home: string;
|
|
11
|
+
}): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Returns the path wigolo will write its MCP config to (or read from for status).
|
|
14
|
+
* Returns null for cli-command agents (Claude Code).
|
|
15
|
+
*/
|
|
16
|
+
configPath(opts: {
|
|
17
|
+
cwd: string;
|
|
18
|
+
home: string;
|
|
19
|
+
}): string | null;
|
|
20
|
+
}
|
|
21
|
+
export interface DetectedAgent {
|
|
22
|
+
id: AgentId;
|
|
23
|
+
displayName: string;
|
|
24
|
+
detected: boolean;
|
|
25
|
+
configPath: string | null;
|
|
26
|
+
installType: InstallType;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=agents-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents-types.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/agents-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GACf,aAAa,GACb,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,YAAY,GACZ,UAAU,GACV,OAAO,GACP,UAAU,CAAC;AAEf,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,CAAC;AAExE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,sFAAsF;IACtF,MAAM,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;IACrD;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,GAAG,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,WAAW,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents-types.js","sourceRoot":"","sources":["../../../src/cli/tui/agents-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AgentDescriptor, DetectedAgent } from './agents-types.js';
|
|
2
|
+
import { fileExists } from './detect-helpers.js';
|
|
3
|
+
export type { AgentId, AgentDescriptor, DetectedAgent, InstallType } from './agents-types.js';
|
|
4
|
+
export declare const AGENTS: readonly AgentDescriptor[];
|
|
5
|
+
export interface DetectAgentsOptions {
|
|
6
|
+
cwd?: string;
|
|
7
|
+
home?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function detectAgents(opts?: DetectAgentsOptions): DetectedAgent[];
|
|
10
|
+
export { fileExists };
|
|
11
|
+
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/agents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAA2B,UAAU,EAAmB,MAAM,qBAAqB,CAAC;AAE3F,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAyF9F,eAAO,MAAM,MAAM,EAAE,SAAS,eAAe,EAS5C,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE,mBAAwB,GAAG,aAAa,EAAE,CAY5E;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|