@companion-ai/feynman 0.5.63 → 0.5.64

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/RELEASES.md CHANGED
@@ -6,6 +6,10 @@ GitHub release notes are generated from the matching `## vX.Y.Z` section in this
6
6
 
7
7
  ## Unreleased
8
8
 
9
+ ## v0.5.64 - 2026-11-05
10
+
11
+ - **pi-subagents 0.85.0 and pi-web-access 0.47.0.** Workflow scripts that launch parallel researchers now run in a locked-down process, a research prompt with long runs of separators or `git` options no longer stalls a workflow, and resuming a background run no longer trusts files that run could rewrite (runs started before this update must be relaunched). Fetching a GitHub repository now returns READMEs up to 100K characters instead of 8K, and on Windows cloned repositories go to your temp folder instead of `C:\tmp`. `feynman search set` now also accepts the new `sofya` and `outcrawl` search providers, which are used only when you pick them. `/lit` now launches parallel researchers with the same workflow form as `/deepresearch`, fixing a first-call `parallel is not defined` failure.
12
+
9
13
  ## v0.5.63 - 2026-11-04
10
14
 
11
15
  - **pi-btw 0.8.1.** While a `/btw` side question is being answered, messages you submit in the main editor are no longer held until it finishes; the answer streams in the overlay. Side threads also no longer repeat the working directory section of the system prompt.
@@ -9,7 +9,7 @@ export const PI_WEB_SEARCH_PROVIDERS = [
9
9
  "tavily", "you", "firecrawl", "jina", "searxng", "degoog", "duckduckgo", "perplexity", "gemini", "kimi", "exa",
10
10
  "serpdive", "kagi", "ollama", "anysearch", "xai", "mistral", "brightdata", "serpbase", "serpapi", "serper", "serply",
11
11
  "valyu", "bocha", "xcrawl", "baizhi", "zai", "keenable", "ceramic", "deepseek", "linkup", "ninerouter",
12
- "cloudflare", "searchapi", "tabstack",
12
+ "cloudflare", "searchapi", "outcrawl", "sofya", "tabstack",
13
13
  ];
14
14
  // The web-search.json field holding a provider's key (searxng and ninerouter take their base URL);
15
15
  // undefined for providers with nothing to set.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@companion-ai/feynman",
3
- "version": "0.5.63",
3
+ "version": "0.5.64",
4
4
  "description": "The open source AI research agent.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -85,8 +85,8 @@
85
85
  "fast-xml-parser": "5.11.2",
86
86
  "pi-btw": "0.8.1",
87
87
  "pi-docparser": "4.0.0",
88
- "pi-subagents": "0.84.0",
89
- "pi-web-access": "0.46.0",
88
+ "pi-subagents": "0.85.0",
89
+ "pi-web-access": "0.47.0",
90
90
  "posthog-node": "^5.53.0",
91
91
  "undici": "^8.12.3"
92
92
  },
package/prompts/lit.md CHANGED
@@ -12,7 +12,15 @@ Derive a short slug from the topic (lowercase, hyphens, no filler words, ≤5 wo
12
12
 
13
13
  1. **Plan** — Outline the scope: key questions, source types to search (papers, web, repos), time period, expected sections, and a small task ledger plus verification log. When the input appears to name a lab, PI, author, institution lab page, or author profile, run the review as a publication-corpus review: find the lab/author identity first, collect the reachable publication list, then map the research trajectory across that corpus. Write the plan to `outputs/.plans/<slug>.md`. Briefly summarize the plan to the user and continue immediately in the same turn with the next tool call; never end a turn with a message that only announces what you will do next. Do not ask for confirmation or wait for a proceed response unless the user explicitly requested plan review.
14
14
  - When updating the plan ledger later, keep edits small and valid. If an `edit` tool call fails with a JSON parse error or the replacement would require embedding a large markdown block, rewrite the full corrected plan file with the file-writing tool instead, then continue to final artifact/provenance verification.
15
- 2. **Gather** — Use the `researcher` subagent when the sweep is wide enough to benefit from delegated paper triage before synthesis. For narrow topics, search directly. Researcher outputs go to `outputs/.drafts/<slug>-research-*.md`; pass that path as each researcher's `output`. For publication-corpus reviews, the lead agent owns identity resolution and writes `notes/<slug>-publications.md` with reachable titles, years, venues, URLs/DOIs, and gaps before delegating trajectory synthesis. Prefer lab publication pages, author profiles, arXiv/OpenReview/Semantic Scholar pages, and paper search results that expose stable source URLs. Do not silently skip assigned questions; mark them `done`, `blocked`, or `superseded`.
15
+ 2. **Gather** — Use the `researcher` subagent when the sweep is wide enough to benefit from delegated paper triage before synthesis. For narrow topics, search directly. Researcher outputs go to `outputs/.drafts/<slug>-research-*.md`. For publication-corpus reviews, the lead agent owns identity resolution and writes `notes/<slug>-publications.md` with reachable titles, years, venues, URLs/DOIs, and gaps before delegating trajectory synthesis. Prefer lab publication pages, author profiles, arXiv/OpenReview/Semantic Scholar pages, and paper search results that expose stable source URLs. Do not silently skip assigned questions; mark them `done`, `blocked`, or `superseded`.
16
+ - For parallel researchers, write a workflow script that returns `await runs.all([...])` to `outputs/.plans/<slug>-workflow.js` with the write tool. In a later tool call, run `subagent` with `{ "workflow": "./outputs/.plans/<slug>-workflow.js", "async": true, "globalConcurrencyLimit": 4 }`. Each item has a unique `key`, an `agent`, and a short `task` naming its output path; items take no `output` field. Only `runs.all` is available; there is no `parallel()`.
17
+
18
+ ```js
19
+ return await runs.all([
20
+ { key: "foundations", agent: "researcher", task: "Read outputs/.plans/<slug>.md and write outputs/.drafts/<slug>-research-foundations.md." },
21
+ { key: "recent", agent: "researcher", task: "Read outputs/.plans/<slug>.md and write outputs/.drafts/<slug>-research-recent.md." },
22
+ ]);
23
+ ```
16
24
  3. **Synthesize** — Separate consensus, disagreements, and open questions. For publication-corpus reviews, also identify 3-5 research trajectories and the 3-5 papers that most changed the corpus direction; rank them by contrastive originality, methodology strength, and relationship to prior art rather than by author prestige alone. When useful, propose concrete next experiments or follow-up reading. Use Mermaid diagrams for taxonomies, method pipelines, or lab trajectory maps when the structure is source-supported and changes the reader's research decision. Keep the output to research evidence, source coverage, and next research decisions; do not create non-research operational artifacts from a literature review run.
17
25
  4. **Cite** — Spawn the `verifier` agent to add inline citations and verify every source URL in the draft.
18
26
  5. **Verify** — Spawn the `reviewer` agent to check the cited draft for unsupported claims, logical gaps, zombie sections, and single-source critical findings. Fix FATAL issues before delivering. Note MAJOR issues in Open Questions. If FATAL issues were found, run one more verification pass after the fixes.