@lincoln504/pi-research 1.3.6 → 1.3.8

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
@@ -1,9 +1,9 @@
1
1
  <p align="center">
2
- <img src="https://raw.githubusercontent.com/Lincoln504/pi-research/main/docs/media/banner.jpg" alt="pi-research" width="100%" />
2
+ <img src="https://raw.githubusercontent.com/Lincoln504/pi-research/main/docs/media/banner.jpg" alt="pi-research: free unlimited web search and knowledge store for coding agents" width="100%" />
3
3
  </p>
4
4
 
5
5
  <p align="center">
6
- <strong>Local web research and knowledge store</strong>
6
+ <strong>Free unlimited web search &amp; knowledge store for coding agents</strong>
7
7
  </p>
8
8
 
9
9
  <p align="center">
@@ -22,62 +22,64 @@
22
22
 
23
23
  ---
24
24
 
25
- <a href="https://github.com/Lincoln504/pi-research/actions/workflows/ci.yml"><img alt="Build status" src="https://img.shields.io/github/actions/workflow/status/Lincoln504/pi-research/ci.yml?style=flat-square&branch=main" /></a> <a href="https://www.npmjs.com/package/@lincoln504/pi-research"><img alt="npm version" src="https://img.shields.io/npm/v/@lincoln504/pi-research.svg?style=flat-square" /></a>
25
+ <a href="https://github.com/Lincoln504/pi-research/actions/workflows/ci.yml"><img alt="Build status" src="https://img.shields.io/github/actions/workflow/status/Lincoln504/pi-research/ci.yml?style=flat-square&branch=main" /></a><br />
26
+ <a href="https://www.npmjs.com/package/@lincoln504/pi-research"><img alt="npm version" src="https://img.shields.io/npm/v/@lincoln504/pi-research.svg?style=flat-square" /></a><br />
27
+ <a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-97ca00?style=flat-square" /></a><br />
28
+ <a href="https://github.com/Lincoln504/pi-research"><img alt="GitHub repository" src="https://img.shields.io/badge/GitHub-Lincoln504%2Fpi--research-181717?style=flat-square&logo=github&logoColor=white" /></a>
26
29
 
27
- **Free, unlimited web search &amp; scraping — no monthly quota, no subscription.** You pay only for the LLM tokens you use, and it can build a searchable knowledge store locally.
30
+ Search and scraping run locally through a stealth browser with no search provider and no monthly cap. You pay only for the LLM tokens you use.
31
+
32
+ ### Install
33
+
34
+ As a [pi](https://github.com/earendil-works/pi) extension:
35
+
36
+ ```bash
37
+ pi install npm:@lincoln504/pi-research
38
+ ```
39
+
40
+ Standalone, as an [agent skill](docs/AGENT-SKILL.md) for Claude Code, Codex, and OpenClaw:
41
+
42
+ ```bash
43
+ npm install -g @lincoln504/pi-research
44
+ pi-research skill install
45
+ ```
46
+
47
+ In pi it works out of the box on your session's model and pi's configuration. Standalone use (agent skill, CLI, or [SDK](docs/SDK.md)) needs a model configured. See [Configuration](docs/CONFIGURATION.md). The first install pulls the stealth browser engine, which takes a few minutes.
28
48
 
29
49
  ### How it works
30
50
 
31
- A research run loops through agent teams: a coordinator plans and opens with a search, researcher agents scrape and read in parallel, and an evaluator decides whether to go another round or synthesize — ending in one cited Markdown report, with findings optionally saved to the knowledge store.
51
+ A research run loops through agent teams: a coordinator plans and opens with a search, researcher agents scrape and read in parallel, and an evaluator decides whether to go another round or synthesize. The result is one cited Markdown report with findings optionally saved to the knowledge store.
32
52
 
33
- Three depth levels — normal, deep, ultra — set the team size and number of rounds; ask in natural language and the tool picks the right one:
53
+ Three depth levels (normal, deep, ultra) set the team size and number of rounds. Ask in natural language and the tool picks the right one:
34
54
 
35
55
  ![Prompt-driven multi-round research in the pi TUI](https://raw.githubusercontent.com/Lincoln504/pi-research/main/docs/media/02-prompt-research.gif)
36
56
 
37
57
  ### Use cases
38
58
 
39
- - Researching for your [Pi](https://github.com/earendil-works/pi) Coding Agent — plug-and-play, no API key needed.
40
- - Researching from Claude Code, Codex, or another coding agent, with a cheaper lightweight or local model driving the research so it doesn't spend your main agent's budget.
41
- - Populating a dataset or index of web sources.
42
- - Holding research in the knowledge store with a configurable scope — project-specific or globally user-scoped, set per directory from the `/research-config` TUI.
43
- - Using the pi-research agent skill as OpenClaw's web access.
44
- - Building agent systems that find and read web content.
59
+ - Researching for your [Pi](https://github.com/earendil-works/pi) Coding Agent. Plug and play with no API key needed.
60
+ - Researching from Claude Code, Codex, OpenClaw, or another coding agent while a cheaper or local model drives the run so it doesn't spend your main agent's budget.
61
+ - Keeping a persistent and searchable knowledge store of findings, scoped globally or per project.
62
+ - Building agent systems that find and read web content or populating a dataset of web sources.
45
63
 
46
64
  ### Why pi-research
47
65
 
48
- - **Free, unlimited search &amp; scrape — no quota, no monthly fee.** Most AI-search providers cap free searches per month and then charge; results run on *their* index on *their* servers. pi-research's search and scraping layer (DuckDuckGo via a stealth browser) is free and unlimited — you pay only for the LLM tokens you use.
49
- - **You own your index.** Every finding is written into a local [LanceDB](https://lancedb.com) knowledge store on *your* machine — a persistent, searchable index you control and keep, which also seeds future runs so repeat questions get faster, cheaper answers. Findings can also be kept globally, scoped to a single project, or not kept at all — set per directory, changed whenever you like.
50
- - **Cited reports, not raw dumps.** It returns one synthesized, sourced Markdown report instead of pasting raw web content into the conversation — context-efficient and easy to verify.
51
- - **Read-only by design.** Web access runs inside a limited research agent that cannot run shell commands or write, edit, or delete anything. It can read and search files, so treat it as you would any read-only agent with access to your machine.
52
- - **Search a little or a lot** — three depth levels in the pi tool (four via the SDK and standalone CLI, which add the quick depth-0 path). Levels 1 and 2 are recommended for everyday workflow use; level 3 is for larger-scale investigations.
66
+ - **No quota and no monthly fee.** Most AI search providers cap free searches and then charge, with results served from *their* index on *their* servers. pi-research searches and scrapes locally through DuckDuckGo in a stealth browser.
67
+ - **You own your index.** Every finding is written to a local [LanceDB](https://lancedb.com) knowledge store that seeds future runs, so repeat questions get faster and cheaper answers.
68
+ - **Cited reports rather than raw dumps.** You get one sourced Markdown report instead of raw web content pasted into the conversation. Context efficient and easy to verify.
69
+ - **Read-only by design.** The research agent cannot run shell commands or write, edit, or delete anything. It can read and search files, so treat it as you would any read-only agent with access to your machine.
70
+ - **Search a little or a lot.** Depth levels span a quick pass to a large-scale investigation.
53
71
 
54
72
  ### Requirements / limitations
55
73
 
56
74
  - Node.js >= 22.19.0
57
75
  - An LLM with a 100k+ context window (bring your own key or use a local model)
58
- - Internet access
59
- - A residential IP address — search, scraping, and YouTube transcripts all rely on a residential connection. A datacenter/VPS/cloud IP gets bot-blocked by these providers.
60
- - The pi runtime the engine builds on — `@earendil-works/pi-ai`, `@earendil-works/pi-coding-agent`, and `@earendil-works/pi-tui`. The pi extension uses the host's copies; the standalone CLI / agent skill install them as dependencies.
61
- - Cloudflare and similar anti-automation systems block scraping on some sites, so a run will flag pages it can't reach. pi-research compensates with volume: the search tool pulls a large set of results off free DuckDuckGo, giving the model a wide selection of reachable content to cite.
62
-
63
- ### Install
64
-
65
- ```bash
66
- pi install npm:@lincoln504/pi-research
67
- ```
68
-
69
- See [Agent skill](docs/AGENT-SKILL.md) or [SDK](docs/SDK.md) to install standalone (no pi extension).
70
-
71
- The pi extension works out of the box — it runs on your pi session's model and pi's own configuration. To use it standalone (agent skill / CLI), configure a model: set `PI_RESEARCH_MODEL` (e.g. `openai/gpt-4o`) as an environment variable or in `~/.pi/research/config.env` (the CLI also accepts a per-run `--model`), plus `PI_RESEARCH_API_KEY` if you don't use pi; the SDK takes a `model` option. See [Configuration](docs/CONFIGURATION.md).
72
-
73
- The first install pulls the stealth browser engine, which takes a few minutes.
74
-
75
- ### Stability (v1.x.x)
76
+ - Internet access on a residential IP, since search, scraping, and YouTube transcripts get bot-blocked from datacenter/VPS/cloud IPs
77
+ - The [pi runtime](https://github.com/earendil-works/pi). The pi extension uses the host's copy while the standalone CLI and agent skill install it as a dependency.
78
+ - Cloudflare and similar systems block scraping on some sites. A run flags pages it can't reach and compensates with a wide pool of search results to cite.
76
79
 
77
- v0.1.13 (April 2026) was the last release before a rebuild against current pi APIs and the stealth-browser stack. v1.0.0 is the first stable release since. Channels:
80
+ ### Channels
78
81
 
79
- - npm (`npm:@lincoln504/pi-research`) is the stable channel, kept current with breaking pi changes.
80
- - A git install is the development channel: latest commits, first to break.
82
+ npm (`npm:@lincoln504/pi-research`) is the stable channel and is kept current with breaking pi changes. A git install is the development channel. It has the latest commits and breaks first.
81
83
 
82
84
  ### License
83
85
 
@@ -3,8 +3,8 @@
3
3
  pi-research is a pi TUI extension for multi-agent web research. It runs inside the pi
4
4
  process, registers its tools and commands, and manages its own browser worker pool,
5
5
  service registry, and local knowledge store. One engine backs every front-end: besides
6
- the pi extension it is exposed as a standalone CLI, a portable agent skill — the same
7
- skill any skills-aware host runs, including OpenClaw — and a programmatic SDK
6
+ the pi extension it is exposed as a standalone CLI, a portable agent skill (the same
7
+ skill any skills-aware host runs, including OpenClaw) and a programmatic SDK
8
8
  (`src/sdk.ts`).
9
9
 
10
10
  ```
@@ -318,7 +318,7 @@ other). This sits above `@lancedb/lancedb` 0.29's declared Arrow peer ceiling
318
318
  whenever `@lancedb/lancedb` is upgraded.
319
319
 
320
320
  Pinned validation library — `typebox` is pinned to the exact version the pi host packages
321
- depend on (`@earendil-works/pi-ai` / `@earendil-works/pi-coding-agent` 0.83.0 pin `1.3.7`). Every
321
+ depend on (`@earendil-works/pi-ai` / `@earendil-works/pi-coding-agent` 0.84.1 pin `1.3.7`). Every
322
322
  tool's parameter schema is built with TypeBox here and handed across the boundary to pi's
323
323
  tool system, so the two must agree on `Value.Check`/`Convert` semantics. A floating `^1.1.38`
324
324
  range let a fresh consumer install resolve pi-research to a newer TypeBox than pi's, shipping
package/docs/CHANGELOG.md CHANGED
@@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.3.8] - 2026-08-13
9
+
10
+ Presentation and dependency maintenance only. No engine changes.
11
+
12
+ ### Changed
13
+
14
+ - **README refined.** New tagline ("Free unlimited web search & knowledge store for coding agents"), MIT license and GitHub repository badges added with all four badges stacked vertically, both install paths (pi extension and standalone agent skill) shown up top, and a punctuation pass removing em dashes and surplus commas and semicolons from README and the npm description. The punctuation pass now also covers the intro paragraphs of the docs/ pages.
15
+ - **npm description compacted.** The no-search-API-key and no-quotas clause is covered by "free unlimited" and is gone.
16
+ - **docs/ARCHITECTURE.md** typebox pin rationale updated to cite the current pi host version (0.84.1, which still pins typebox 1.3.7).
17
+ - **In-range dependency refresh.** esbuild 0.28.2, undici 8.10.0, eslint 10.8.1, typescript-eslint 8.67.0. Deliberate exact pins (playwright-core 1.60.0, camoufox-js 0.10.x, lancedb 0.29.0, apache-arrow 21.1.0, transformers 4.2.0) unchanged per their documented rationale.
18
+
19
+ ### Security
20
+
21
+ - Production audit gate re-verified. The single allowlisted advisory (GHSA-f88m-g3jw-g9cj, sharp via transformers, unreachable image path) still has no upstream fix; no new advisories.
22
+
23
+ ## [1.3.7] - 2026-08-11
24
+
25
+ Discovery and packaging metadata only — no engine changes.
26
+
27
+ ### Changed
28
+
29
+ - **README rewritten for concision and effectiveness.** The pitch ("free, unlimited web search & deep research for coding agents — no API key, no quota") now leads the page, install moved up to directly under the badges, each claim is stated once, and detail that only matters after adoption moved to `docs/`. 88 → 78 lines.
30
+ - **npm description and keywords rewritten.** The description is now benefit-led and survives catalog truncation; keywords gained `pi-coding-agent`, `web-research`, `deep-research`, `knowledge-store`, `duckduckgo`, and `skills`, and dropped `security` and `stack-exchange`.
31
+
8
32
  ## [1.3.6] - 2026-08-10
9
33
 
10
34
  An independent fresh-eyes review of the entire 1.3.4→1.3.5 diff — the previous
@@ -1,7 +1,7 @@
1
1
  ## Configuration
2
2
 
3
- Every front-end (the pi extension, the standalone CLI / agent skill — the surface
4
- OpenClaw and other skills-aware hosts run — and the SDK) shares one configuration
3
+ Every front-end (the pi extension, the standalone CLI / agent skill that OpenClaw
4
+ and other skills-aware hosts run, and the SDK) shares one configuration
5
5
  model. This document covers the
6
6
  settings exposed in the `/research-config` TUI first, then the complete
7
7
  environment-variable reference, and finally how the configuration layers resolve.
@@ -1,7 +1,7 @@
1
1
  ## Knowledge Store
2
2
 
3
- The knowledge store is a local vector database of past research findings. It is used
4
- in two distinct ways, and it is an optional cache — research works without it:
3
+ The knowledge store is a local vector database of past research findings. It is an
4
+ optional cache (research works without it) and is used in two distinct ways:
5
5
 
6
6
  - **Knowledge-first answering (advisory).** The `research_knowledge_search` tool
7
7
  answers a repeat or overlapping question directly from stored results. The agent is
@@ -1,8 +1,8 @@
1
1
  ## Pi Extension
2
2
 
3
3
  pi-research integrates as a [pi](https://github.com/earendil-works/pi)
4
- extension (`src/index.ts`) — a multi-agent web research engine with a real-time
5
- TUI, registered directly in the pi process.
4
+ extension (`src/index.ts`), a multi-agent web research engine with a real-time
5
+ TUI registered directly in the pi process.
6
6
 
7
7
  ### Usage
8
8
 
package/docs/SDK.md CHANGED
@@ -1,7 +1,7 @@
1
1
  ## SDK
2
2
 
3
- The programmatic SDK for scripts, CI, and custom tooling. For configuration — the
4
- layering model, the TUI settings, and every environment variable — see
3
+ The programmatic SDK for scripts, CI, and custom tooling. For configuration (the
4
+ layering model, the TUI settings, and every environment variable) see
5
5
  [CONFIGURATION.md](CONFIGURATION.md).
6
6
 
7
7
  ### Install
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lincoln504/pi-research",
3
- "version": "1.3.6",
4
- "description": "A set of web research tools (search, scrape, and others) and research agent system that uses them safely and efficiently.",
3
+ "version": "1.3.8",
4
+ "description": "Free unlimited web search and deep research for the Pi coding agent. Local knowledge store. Also works from Claude Code, Codex, and OpenClaw.",
5
5
  "type": "module",
6
6
  "private": false,
7
7
  "main": "./src/index.ts",
@@ -52,16 +52,20 @@
52
52
  "pi",
53
53
  "pi-package",
54
54
  "pi-extension",
55
+ "pi-coding-agent",
55
56
  "openclaw",
56
57
  "agent-skill",
58
+ "skills",
57
59
  "research",
60
+ "web-research",
61
+ "deep-research",
58
62
  "agent",
59
63
  "web-search",
60
64
  "scraping",
65
+ "knowledge-store",
66
+ "duckduckgo",
61
67
  "stealth-browser",
62
- "camoufox",
63
- "security",
64
- "stack-exchange"
68
+ "camoufox"
65
69
  ],
66
70
  "author": "Lincoln Deen",
67
71
  "contributors": [
@@ -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.3.6", "package": "@lincoln504/pi-research", "engine": "pi-research-sdk", "openclaw": { "requires": { "bins": ["node"] } } }
5
+ metadata: { "author": "Lincoln Deen", "version": "1.3.8", "package": "@lincoln504/pi-research", "engine": "pi-research-sdk", "openclaw": { "requires": { "bins": ["node"] } } }
6
6
  allowed-tools: Bash(node:*)
7
7
  ---
8
8