@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 +3 -2
- package/agent-skill/pi-research/SKILL.md +1 -1
- package/docs/ARCHITECTURE.md +7 -3
- package/docs/CHANGELOG.md +15 -1
- package/package.json +7 -7
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
|
-
|
|
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
|
|
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.
|
|
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
|
|
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -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.
|
|
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.
|
|
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
|
|
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
|
-
- **
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
160
|
-
"@typescript-eslint/parser": "^8.
|
|
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.
|
|
167
|
+
"vite": "^8.2.2",
|
|
168
168
|
"vitest": "^5.0.0"
|
|
169
169
|
}
|
|
170
170
|
}
|