@lincoln504/pi-research 1.6.15 → 1.6.16

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
@@ -34,7 +34,7 @@
34
34
 
35
35
  Search and scraping run locally in a stealth browser, with no search provider and no monthly cap. The only cost is LLM tokens.
36
36
 
37
- **Current recommended model:** [`inclusionai/ling-3.0-flash`](https://openrouter.ai/inclusionai/ling-3.0-flash) on OpenRouter.
37
+ Currently recommended model to configure for research: [`openrouter/inclusionai/ling-3.0-flash`](https://openrouter.ai/inclusionai/ling-3.0-flash).
38
38
 
39
39
  ### Install
40
40
 
@@ -69,7 +69,7 @@ Three depth levels (normal, deep, ultra) set the team size and number of rounds.
69
69
 
70
70
  ### Use cases
71
71
 
72
- - Researching inside pi. No API key needed.
72
+ - Researching inside pi. No search subscription needed.
73
73
  - Researching from Claude Code, Codex, or another coding agent while a cheaper or local model drives the run. The main agent's budget stays untouched.
74
74
  - Saving findings to a persistent, searchable knowledge store, scoped globally or per project.
75
75
  - Building agent systems that find and read web content, or collecting a dataset of web sources.
@@ -89,6 +89,7 @@ Three depth levels (normal, deep, ultra) set the team size and number of rounds.
89
89
  - pi. The pi extension uses the host's copy while the standalone CLI and agent skill install it as a dependency.
90
90
  - Local knowledge-store embeddings need `@huggingface/transformers`, an optional dependency. If its native image chain (sharp) cannot install, npm skips it with a warning and the install still succeeds, so everything works except local embeddings. The store tells you how to restore them.
91
91
  - Cloudflare Turnstile and similar systems block scraping on some sites. A run compensates with a wide pool of search results to scrape.
92
+ - npm reports 1 moderate advisory (adm-zip, pulled in by onnxruntime and the camoufox browser downloader) for anything that installs this package. Installs themselves succeed; only a `npm audit` step in your own CI will exit nonzero until the upstream fix ships. See [docs/AUDIT-GATE.md](docs/AUDIT-GATE.md) for the verified details, and do not run `npm audit fix --force` against it (npm's suggested downgrade reintroduces a high-severity advisory).
92
93
 
93
94
  ### Channels
94
95
 
@@ -2,7 +2,7 @@
2
2
  name: pi-research
3
3
  description: "Multi-agent web research for any coding agent. Use for anything requiring current information from the internet — news, trends, product/service/company facts, statistics, people, places, events, APIs, library behavior, or 'what is X / how does X work' questions. Also use to search a local knowledge store of previously researched findings before doing live research. Powered by the pi-research engine (search, stealth scraping, security databases, Stack Exchange). Not for reading local files, running project commands, or analyzing this repository's own source."
4
4
  license: MIT
5
- metadata: { "author": "Lincoln Deen", "version": "1.6.15", "package": "@lincoln504/pi-research", "engine": "pi-research-sdk", "openclaw": { "requires": { "bins": ["node"] } } }
5
+ metadata: { "author": "Lincoln Deen", "version": "1.6.16", "package": "@lincoln504/pi-research", "engine": "pi-research-sdk", "openclaw": { "requires": { "bins": ["node"] } } }
6
6
  allowed-tools: Bash(node:*)
7
7
  ---
8
8
 
@@ -349,7 +349,7 @@ mismatch.
349
349
  Pinned data stack — `apache-arrow` is a direct dependency at `21.1.0`, and `overrides`
350
350
  forces the whole tree to that single version so LanceDB and Arrow share one Arrow instance
351
351
  (mismatched Arrow copies do not interoperate — arrays built by one are rejected by the
352
- other). This sits above `@lancedb/lancedb` 0.37's declared Arrow peer ceiling
352
+ other). This sits above `@lancedb/lancedb` 0.38's declared Arrow peer ceiling
353
353
  (`>=15.0.0 <=18.1.0`) — npm will not even resolve the pairing without the override — and
354
354
  it is verified working, but it should be re-validated whenever `@lancedb/lancedb` is
355
355
  upgraded.
@@ -360,13 +360,17 @@ schema that Arrow 21.2 writes, failing every table open with
360
360
  `Failed to read IPC file: Arrow error: Parser error: Unable to get root as footer:
361
361
  RangeOutOfBounds … UnionVariant { variant: "Type::FixedSizeList" }` — 56 unit and 36
362
362
  integration tests, every one that touches a real table. Do not treat this range as
363
- caret-safe. Note also that every `@lancedb/lancedb` release through 0.37 declares the same
363
+ caret-safe. Re-verified on 2026-09-09 against `@lancedb/lancedb` 0.38.0 (the knowledge-store
364
+ unit suite fails identically on 21.2.0 there). Note also that every `@lancedb/lancedb` release
365
+ through 0.38 declares the same
364
366
  `<=18.1.0` Arrow ceiling, so upgrading LanceDB does not resolve the override; it only
365
367
  changes which pairing needs re-validating.
366
368
 
367
369
  Pinned validation library — `typebox` is pinned to the exact version the pi host packages
368
370
  depend on (`@earendil-works/pi-ai` / `@earendil-works/pi-coding-agent` pin `1.3.7` across
369
- the 0.84.x line). Every
371
+ the 0.84.x AND 0.85.x lines — verified against both 0.85.0 and 0.85.1 on 2026-09-09, after
372
+ an undocumented 1.3.26 drift was caught and realigned; 3,064 unit tests and all four
373
+ type-checks pass against 1.3.7). Every
370
374
  tool's parameter schema is built with TypeBox here and handed across the boundary to pi's
371
375
  tool system, so the two must agree on `Value.Check`/`Convert` semantics. A floating `^1.1.38`
372
376
  range let a fresh consumer install resolve pi-research to a newer TypeBox than pi's, shipping
package/docs/CHANGELOG.md CHANGED
@@ -7,12 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.6.16] - 2026-09-09
11
+
12
+ ### Added
13
+
14
+ - **`docs/AUDIT-GATE.md`: the audit-gate runbook, with reinvestigation directions for every allowlisted advisory.** Covers the triage order (remediate, then override, then allowlist), the required evidence and fields for an exception entry, the reinvestigation triggers (stale-entry warnings, every release, new GHSA, upstream fix PR), and the concrete checklist for the current adm-zip entry (watch cthackers/adm-zip PR #575, check parent ranges, and never take the downgrade "fix", which reintroduces the HIGH CVE-2026-39244). It also documents, verified empirically on npm 11.19.0, what consumers of the published package see: installs and `pi install` succeed with a warning, `npm audit` exits 1, and `npm audit fix --force` ping-pongs between two vulnerable adm-zip versions. The README limitations section states the consumer-visible part; the exceptions JSON, `scripts/audit-gate.cjs`, and both workflows point at the runbook.
15
+
10
16
  ### Changed
11
17
 
12
- - **README: the recommended-model line is now the only bold text.** The Why-bullet lead-ins (No quota and no monthly fee / The index is local / Read-only by design / Search a little or a lot), the uninstall emphasis, and the optional-dependency emphasis are plain text now.
18
+ - **Dependency audit across the board across the board; one real drift fixed, two holds re-verified empirically, everything else already current.** `typebox` is realigned 1.3.26 → 1.3.7: the whole pi 0.85.x line (pi-ai and pi-coding-agent at both 0.85.0 and 0.85.1, checked on the registry) pins 1.3.7, the documented rule is to move in lockstep with the host, and the 1.3.26 pin was an undocumented ride-along from the 1.6.9 upgrade that nothing needed — verified by running all 3,064 unit tests and all four type-checks (TS 6 and TS 7 native, src and tests) against 1.3.7, all green. `impit` moves 0.14.4 → 0.14.5 (patch; no install scripts, so the historical `only-allow pnpm` blocker does not apply; camoufox-js's `^0.14.1` range accepts it). Re-verified, still held: `apache-arrow` stays 21.1.0 — 21.2.0 was re-tested against `@lancedb/lancedb` 0.38.0 (the hold predated it) and the knowledge-store IPC failure reproduces identically (5 test files, 66 RangeOutOfBounds/FixedSizeList errors); `playwright-core` stays 1.60.0 (camoufox-js 0.12.0's peer range still caps `<1.61.0`); `typescript` stays `<6.1.0` (@typescript-eslint 8.70.0's peer ceiling, checked on the registry). Cosmetic range syncs where the lockfile was already ahead: `@typescript-eslint/*` `^8.69.0` → `^8.70.0`, `vite` `^8.0.16` → `^8.2.2` (override synced to match). The pi packages (`@earendil-works/*`) were already at the latest 0.85.1; `jsdom` 30, `vitest` 5, `dependency-cruiser` 18, and `npm-check-updates` 23 sit above the registry's `latest` dist-tags (the newer lines are tagged ahead), so they stay. The lockfile was regenerated with npm 12 (`npm ci --dry-run --legacy-peer-deps` passes under it); the full gate suite is green (lint, 4 type-checks, 3,064 unit tests, dependency-cruiser, build, audit gate with the adm-zip allowlist).
19
+
20
+ ### Security
21
+
22
+ - **New adm-zip advisory GHSA-vwc7-r8mq-g2x9 allowlisted as upstream-blocked.** Moderate: `adm-zip` 0.5.9–0.6.0 follows symlinks at the extraction destination, allowing arbitrary file overwrite (CVE-2026-76845); 0.6.0 is the newest upstream release and is itself affected, so no bumped or overridden version exists. The advisory reaches the production tree through two parents (`onnxruntime-node` and `camoufox-js`), both outside this repo's control, so it ships as a reviewed per-GHSA exception in `config/tooling/audit-exceptions.json` (reason, clearsWhen, reviewed) per the documented policy — the audit gate passes with exactly this one allowlisted advisory and blocks anything else. Consumer impact, verified on npm 11.19: installs and `pi install npm:` succeed with a warning; `npm audit` exits 1 (expected, cosmetic); `npm audit fix --force` must never be run — it downgrades to a version carrying the HIGH CVE-2026-39244.
23
+
24
+ ## [1.6.15] - 2026-09-08
13
25
 
14
26
  ### Changed
15
27
 
28
+ - **README: the recommended-model line is now the only bold text.** The Why-bullet lead-ins (No quota and no monthly fee / The index is local / Read-only by design / Search a little or a lot), the uninstall emphasis, and the optional-dependency emphasis are plain text now.
29
+
16
30
  - **README: full prose pass.** The recommended-model line is just the model name now. Semicolons became ordinary sentences, the staccato all-short-sentence draft was re-mixed into natural sentence rhythm, the How-it-works round loop is spelled out concretely (coordinator plans and starts the search, researchers scrape in parallel, the lead starts another round or writes the report), and the install/uninstall/use-cases/requirements sections were tightened.
17
31
 
18
32
  ## [1.6.14] - 2026-09-08
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lincoln504/pi-research",
3
- "version": "1.6.15",
3
+ "version": "1.6.16",
4
4
  "description": "Web research for your agents with smart and safe tooling + knowledge store",
5
5
  "type": "module",
6
6
  "private": false,
@@ -124,13 +124,13 @@
124
124
  "bgutils-js": "^4.0.3",
125
125
  "camoufox-js": "^0.12.0",
126
126
  "esbuild": "^0.28.2",
127
- "impit": "0.14.4",
127
+ "impit": "0.14.5",
128
128
  "jsdom": "^30.0.1",
129
129
  "node-html-markdown": "^2.0.0",
130
130
  "pdf-oxide-wasm": "^0.3.77",
131
131
  "playwright-core": "1.60.0",
132
132
  "poolifier": "^5.3.2",
133
- "typebox": "1.3.26",
133
+ "typebox": "1.3.7",
134
134
  "undici": "^8.10.2",
135
135
  "youtubei.js": "^18.0.0"
136
136
  },
@@ -146,7 +146,7 @@
146
146
  "node-domexception": "npm:@nolyfill/domexception@^1.0.28",
147
147
  "ua-parser-js": "^1.0.41",
148
148
  "protobufjs": "7.6.5",
149
- "vite": "^8.0.16",
149
+ "vite": "^8.2.2",
150
150
  "adm-zip": "^0.6.0",
151
151
  "jsdom": {
152
152
  "undici": "^8.10.2"
@@ -156,15 +156,15 @@
156
156
  "devDependencies": {
157
157
  "@eslint/js": "^10.0.1",
158
158
  "@types/jsdom": "^30.0.0",
159
- "@typescript-eslint/eslint-plugin": "^8.69.0",
160
- "@typescript-eslint/parser": "^8.69.0",
159
+ "@typescript-eslint/eslint-plugin": "^8.70.0",
160
+ "@typescript-eslint/parser": "^8.70.0",
161
161
  "@vitest/coverage-v8": "^5.0.0",
162
162
  "dependency-cruiser": "^18.2.0",
163
163
  "depngn": "^0.6.0",
164
164
  "eslint": "^10.10.0",
165
165
  "npm-check-updates": "^23.1.0",
166
166
  "typescript": ">=6.0.3 <6.1.0",
167
- "vite": "^8.0.16",
167
+ "vite": "^8.2.2",
168
168
  "vitest": "^5.0.0"
169
169
  }
170
170
  }