pi-webveil 0.1.2 → 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
@@ -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;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"}
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,8 +5,9 @@
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. We add NO
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
10
11
  // custom TUI: pi's default text renderer displays the tool result's text content
11
12
  // (no commands/widgets/statusline; see the PRD "Out of Scope").
12
13
  import { search as coreSearch, fetch as coreFetch, } from 'webveil';
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.2",
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,8 +5,9 @@
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. We add NO
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
10
11
  // custom TUI: pi's default text renderer displays the tool result's text content
11
12
  // (no commands/widgets/statusline; see the PRD "Out of Scope").
12
13