@companion-ai/feynman 0.5.60 → 0.5.61
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 +1 -1
- package/RELEASES.md +4 -0
- package/dist/cli.js +13 -0
- package/metadata/commands.mjs +2 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -59,7 +59,7 @@ Results are saved to `outputs/` (drafts to `papers/`). `/lit`, `/deepresearch`,
|
|
|
59
59
|
|
|
60
60
|
## Sources
|
|
61
61
|
|
|
62
|
-
Feynman searches alphaXiv, Semantic Scholar, OpenAlex, arXiv, PubMed, Europe PMC, bioRxiv, medRxiv, Crossref, the web, and Hugging Face, and reads local PDFs and documents. Free `OPENALEX_API_KEY` and `SEMANTIC_SCHOLAR_API_KEY` keys avoid the shared rate limits. It runs on stock [Pi](https://github.com/earendil-works/pi) with four research agents: researcher, verifier, reviewer, and writer.
|
|
62
|
+
Feynman searches alphaXiv, Semantic Scholar, OpenAlex, arXiv, PubMed, Europe PMC, bioRxiv, medRxiv, Crossref, the web, and Hugging Face, and reads local PDFs and documents. Free `OPENALEX_API_KEY` and `SEMANTIC_SCHOLAR_API_KEY` keys avoid the shared rate limits. It runs on stock [Pi](https://github.com/earendil-works/pi) with four research agents: researcher, verifier, reviewer, and writer. Add your own tools, such as a Zotero library, with `feynman mcp add`.
|
|
63
63
|
|
|
64
64
|
## Telemetry
|
|
65
65
|
|
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.61 - 2026-10-30
|
|
10
|
+
|
|
11
|
+
- **`feynman mcp` adds MCP servers.** Pi has built-in MCP support, but its docs say `pi mcp add`, and `feynman mcp list` used to be sent to the model as a chat question. `feynman mcp add|list|remove` now runs Pi's own command with Feynman's settings, saves servers in `~/.feynman/agent/mcp.json`, and every session loads them. For example, to use your Zotero library with [zotero-mcp](https://github.com/54yyyu/zotero-mcp): `feynman mcp add zotero --env ZOTERO_LOCAL=true -- zotero-mcp`. Pi's own output and help still say `pi mcp`; use `feynman mcp` instead.
|
|
12
|
+
|
|
9
13
|
## v0.5.60 - 2026-10-29
|
|
10
14
|
|
|
11
15
|
- **pi-subagents 0.84.0.**
|
package/dist/cli.js
CHANGED
|
@@ -461,6 +461,19 @@ async function runMain(input) {
|
|
|
461
461
|
await runBundledAlphaCli(appRoot, alphaPassthrough.args, { cwd: alphaPassthrough.cwd });
|
|
462
462
|
return;
|
|
463
463
|
}
|
|
464
|
+
// Pi owns MCP server management; its flags (--env, --url, ...) would fail Feynman's own parser.
|
|
465
|
+
// Servers land in this Feynman home's agent directory, which every Feynman session loads.
|
|
466
|
+
if (rawArgs[0] === "mcp") {
|
|
467
|
+
const piOptions = {
|
|
468
|
+
appRoot,
|
|
469
|
+
workingDir: process.cwd(),
|
|
470
|
+
sessionDir: getDefaultSessionDir(feynmanHome),
|
|
471
|
+
feynmanAgentDir,
|
|
472
|
+
feynmanVersion,
|
|
473
|
+
};
|
|
474
|
+
process.exitCode = await runPi(piOptions, rawArgs, buildPiEnv(piOptions));
|
|
475
|
+
return;
|
|
476
|
+
}
|
|
464
477
|
const parseCliArgs = () => parseArgs({
|
|
465
478
|
args: process.argv.slice(2),
|
|
466
479
|
allowPositionals: true,
|
package/metadata/commands.mjs
CHANGED
|
@@ -138,6 +138,7 @@ export const cliCommandSections = [
|
|
|
138
138
|
{ usage: "feynman packages list", description: "Show core and optional Pi package presets." },
|
|
139
139
|
{ usage: "feynman packages install <preset>", description: "Install optional package presets on demand." },
|
|
140
140
|
{ usage: "feynman packages remove <preset>", description: "Remove an installed optional package preset." },
|
|
141
|
+
{ usage: "feynman mcp <add|list|remove|...>", description: "Add and manage MCP servers, such as a Zotero library. Same as Pi's `mcp` command; servers are stored in ~/.feynman/agent/mcp.json." },
|
|
141
142
|
{ usage: "feynman search status", description: "Show Pi web-access status and config path." },
|
|
142
143
|
{ usage: "feynman search set <provider> [api-key]", description: "Set the web search provider and optionally save its API key." },
|
|
143
144
|
{ usage: "feynman search clear", description: "Reset web search provider to auto while preserving API keys." },
|
|
@@ -169,7 +170,7 @@ export const legacyFlags = [
|
|
|
169
170
|
{ usage: "--setup-preview", description: "Alias for `feynman setup preview`." },
|
|
170
171
|
];
|
|
171
172
|
|
|
172
|
-
export const topLevelCommandNames = ["alpha", "chat", "doctor", "help", "model", "packages", "search", "setup", "status", "update"];
|
|
173
|
+
export const topLevelCommandNames = ["alpha", "chat", "doctor", "help", "mcp", "model", "packages", "search", "setup", "status", "update"];
|
|
173
174
|
|
|
174
175
|
export function formatSlashUsage(command) {
|
|
175
176
|
return `/${command.name}${command.args ? ` ${command.args}` : ""}`;
|