pi-webveil 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -49,7 +49,7 @@ Then `webveil search "…"` / `web_fetch` work with no config.
49
49
  > export WEBVEIL_BASE_URL=http://127.0.0.1:8888 # or wherever your instance listens
50
50
  > ```
51
51
  >
52
- > or set `baseUrl` in `.pi/webveil.json` (see config seam below).
52
+ > or set `baseUrl` in `webveil.json` (see config seam below).
53
53
 
54
54
  ### Other SearXNG install options
55
55
 
@@ -170,8 +170,11 @@ backends and for `web_fetch`. See
170
170
  webveil on `socks5` does NOT route your `git push` through the proxy. See
171
171
  [Anonymous egress](#anonymous-egress-mullvad--tor) and
172
172
  [`work/notes/findings/mullvad-socks5-egress-mechanics.md`](work/notes/findings/mullvad-socks5-egress-mechanics.md).
173
- - **config seam**, per-folder resolution: env > nearest `.pi/webveil.json` walking up from
174
- cwd > global `~/.pi/agent/webveil.json` > defaults. Per folder = per account/egress.
173
+ - **config seam**, per-folder resolution: env > nearest `webveil.json` walking up from
174
+ cwd > global `$XDG_CONFIG_HOME/webveil/config.json` (default
175
+ `~/.config/webveil/config.json`) > defaults. Per folder = per account/egress. The
176
+ project file is a frontend-neutral `webveil.json` read identically by the CLI and the
177
+ pi extension. See [`docs/adr/0002`](docs/adr/0002-config-file-location-neutral-webveil-json.md).
175
178
  - **extractor seam**, `urlToMarkdown` via `distilly/fetch` by default, injected with
176
179
  webveil's egress-bound `fetch`; a backend's own `/extract` (Tavily-compat) may override
177
180
  it. Owns the context-friendly markdown + size presets (`s`/`m`/`l`/`f`). See
@@ -193,7 +196,7 @@ export WEBVEIL_EGRESS_URL=socks5://10.64.0.1:1080 # Mullvad
193
196
  # or socks5://127.0.0.1:9050 # Tor
194
197
  ```
195
198
 
196
- or per folder in `.pi/webveil.json`:
199
+ or per folder in `webveil.json`:
197
200
 
198
201
  ```json
199
202
  { "egress": { "mode": "socks5", "url": "socks5://10.64.0.1:1080" } }
@@ -287,7 +290,7 @@ a promise); `LOC` is the actual line count of the built file.
287
290
  | src/cli.ts (incur frontend) | 106 | ~80 |
288
291
  | src/core/search.ts | 104 | ~90 |
289
292
  | src/core/fetch.ts | 132 | ~90 |
290
- | src/core/config.ts | 106 | ~80 |
293
+ | src/core/config.ts | 128 | ~80 |
291
294
  | src/core/egress.ts | 106 | ~70 |
292
295
  | src/core/http.ts | 62 | ~60 |
293
296
  | src/core/extract.ts | 82 | ~60 |
@@ -297,7 +300,7 @@ a promise); `LOC` is the actual line count of the built file.
297
300
  | src/core/backends/searxng.ts | 70 | ~90 |
298
301
  | src/core/backends/tavily-compat.ts | 156 | ~90 |
299
302
  | src/core/backends/custom.ts | 159 | ~70 |
300
- | **subtotal** | 1408 | |
303
+ | **subtotal** | 1430 | |
301
304
 
302
305
  ### `packages/pi-webveil` (pi extension frontend)
303
306
 
@@ -305,7 +308,7 @@ a promise); `LOC` is the actual line count of the built file.
305
308
  | ------------ | --: | -----: |
306
309
  | src/index.ts | 168 | ~90 |
307
310
 
308
- **Total own source: 1576 LOC** (excluding deps).
311
+ **Total own source: 1598 LOC** (excluding deps).
309
312
 
310
313
  > Reality vs. target: several modules currently exceed their `CONTEXT.md` ceilings (notably
311
314
  > `tavily-compat.ts`, `custom.ts`, `pi-webveil/src/index.ts`), and two built modules
package/dist/index.d.ts CHANGED
@@ -33,7 +33,6 @@ interface ToolDef {
33
33
  description: string;
34
34
  parameters: unknown;
35
35
  execute(toolCallId: string, params: Record<string, unknown>, signal: AbortSignal | undefined, onUpdate: unknown, ctx: ToolCtx): Promise<ToolResult>;
36
- renderResult?(result: ToolResult): string[];
37
36
  }
38
37
  /** The slice of pi's `ExtensionAPI` the extension uses: just `registerTool`. */
39
38
  interface PiLike {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,EACN,MAAM,IAAI,UAAU,EACpB,KAAK,IAAI,SAAS,EAGlB,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC7B,MAAM,CAAC,EAAE,OAAO,UAAU,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC;CACzB;AAED;;;;;GAKG;AACH,UAAU,OAAO;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,gFAAgF;AAChF,UAAU,UAAU;IACnB,OAAO,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,wEAAwE;AACxE,UAAU,OAAO;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CACN,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,QAAQ,EAAE,OAAO,EACjB,GAAG,EAAE,OAAO,GACV,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,YAAY,CAAC,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CAAC;CAC5C;AAED,gFAAgF;AAChF,UAAU,MAAM;IACf,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CAClC;AAkDD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,IAAI,CA+C5E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,EACN,MAAM,IAAI,UAAU,EACpB,KAAK,IAAI,SAAS,EAGlB,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC7B,MAAM,CAAC,EAAE,OAAO,UAAU,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC;CACzB;AAED;;;;;GAKG;AACH,UAAU,OAAO;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,gFAAgF;AAChF,UAAU,UAAU;IACnB,OAAO,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,wEAAwE;AACxE,UAAU,OAAO;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CACN,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,QAAQ,EAAE,OAAO,EACjB,GAAG,EAAE,OAAO,GACV,OAAO,CAAC,UAAU,CAAC,CAAC;CACvB;AAED,gFAAgF;AAChF,UAAU,MAAM;IACf,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CAClC;AAkDD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,IAAI,CAqC5E"}
package/dist/index.js CHANGED
@@ -5,10 +5,11 @@
5
5
  // `@ollama/pi-web-search` with nothing else to change (CONTEXT.md "drop-in").
6
6
  //
7
7
  // Both tools call webveil's exported `search()` / `fetch()` IN-PROCESS (no
8
- // shelling). Per-folder config (.pi/webveil.json walking up from the folder) is
9
- // resolved from `ctx.cwd`, so each folder is its own account/egress. An optional
10
- // compact `renderResult` is the only TUI we add (no commands/widgets/statusline;
11
- // see the PRD "Out of Scope").
8
+ // shelling). Per-folder config (the frontend-neutral `webveil.json` walking up
9
+ // from the folder) is resolved from `ctx.cwd`, so each folder is its own
10
+ // account/egress. We add NO
11
+ // custom TUI: pi's default text renderer displays the tool result's text content
12
+ // (no commands/widgets/statusline; see the PRD "Out of Scope").
12
13
  import { search as coreSearch, fetch as coreFetch, } from 'webveil';
13
14
  /** JSON-schema params for `web_search` (Ollama-shaped: `query` + `max_results`). */
14
15
  const SEARCH_PARAMS = {
@@ -77,11 +78,6 @@ export default function piWebveil(pi, deps = {}) {
77
78
  });
78
79
  return textResult(renderSearch(results), { results });
79
80
  },
80
- renderResult(result) {
81
- return result.content
82
- .filter((c) => c.type === 'text')
83
- .flatMap((c) => c.text.split('\n'));
84
- },
85
81
  });
86
82
  pi.registerTool({
87
83
  name: 'web_fetch',
@@ -96,11 +92,6 @@ export default function piWebveil(pi, deps = {}) {
96
92
  });
97
93
  return textResult(renderFetch(page), { page });
98
94
  },
99
- renderResult(result) {
100
- return result.content
101
- .filter((c) => c.type === 'text')
102
- .flatMap((c) => c.text.split('\n'));
103
- },
104
95
  });
105
96
  }
106
97
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-webveil",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Pi extension: web_search and web_fetch tools backed by webveil. A drop-in, anonymity-capable replacement for Ollama's web_search/web_fetch.",
5
5
  "license": "AGPL-3.0-or-later",
6
6
  "keywords": [
@@ -41,7 +41,7 @@
41
41
  ]
42
42
  },
43
43
  "dependencies": {
44
- "webveil": "0.1.1"
44
+ "webveil": "0.2.0"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@types/node": "^25.2.0",
package/src/index.ts CHANGED
@@ -5,10 +5,11 @@
5
5
  // `@ollama/pi-web-search` with nothing else to change (CONTEXT.md "drop-in").
6
6
  //
7
7
  // Both tools call webveil's exported `search()` / `fetch()` IN-PROCESS (no
8
- // shelling). Per-folder config (.pi/webveil.json walking up from the folder) is
9
- // resolved from `ctx.cwd`, so each folder is its own account/egress. An optional
10
- // compact `renderResult` is the only TUI we add (no commands/widgets/statusline;
11
- // see the PRD "Out of Scope").
8
+ // shelling). Per-folder config (the frontend-neutral `webveil.json` walking up
9
+ // from the folder) is resolved from `ctx.cwd`, so each folder is its own
10
+ // account/egress. We add NO
11
+ // custom TUI: pi's default text renderer displays the tool result's text content
12
+ // (no commands/widgets/statusline; see the PRD "Out of Scope").
12
13
 
13
14
  import {
14
15
  search as coreSearch,
@@ -57,7 +58,6 @@ interface ToolDef {
57
58
  onUpdate: unknown,
58
59
  ctx: ToolCtx,
59
60
  ): Promise<ToolResult>;
60
- renderResult?(result: ToolResult): string[];
61
61
  }
62
62
 
63
63
  /** The slice of pi's `ExtensionAPI` the extension uses: just `registerTool`. */
@@ -138,11 +138,6 @@ export default function piWebveil(pi: PiLike, deps: PiWebveilDeps = {}): void {
138
138
  });
139
139
  return textResult(renderSearch(results), {results});
140
140
  },
141
- renderResult(result) {
142
- return result.content
143
- .filter((c) => c.type === 'text')
144
- .flatMap((c) => c.text.split('\n'));
145
- },
146
141
  });
147
142
 
148
143
  pi.registerTool({
@@ -159,10 +154,5 @@ export default function piWebveil(pi: PiLike, deps: PiWebveilDeps = {}): void {
159
154
  });
160
155
  return textResult(renderFetch(page), {page});
161
156
  },
162
- renderResult(result) {
163
- return result.content
164
- .filter((c) => c.type === 'text')
165
- .flatMap((c) => c.text.split('\n'));
166
- },
167
157
  });
168
158
  }