@companion-ai/feynman 0.5.34 → 0.5.35
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,13 @@ GitHub release notes are generated from the matching `## vX.Y.Z` section in this
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
## v0.5.35 - 2026-10-11
|
|
10
|
+
|
|
11
|
+
- **PubMed group authors keep their affiliations.** Consortium and study-group authors came back with no affiliations; they now keep them, as individual authors do. Thanks to @KennyMcSimpson (#335).
|
|
12
|
+
- **pi-subagents 0.77.0.** Subagent tools cost the lead agent far fewer tokens per request (the `subagent` tool's definition shrank from about 18,700 to 3,300 characters), and long subagent reports arrive as a preview plus the file path instead of the full text. Updating Feynman while a session is running no longer breaks every subagent launch in that session. A wrong agent or model name now comes back with suggestions.
|
|
13
|
+
- **pi-btw 0.8.0.** The `/btw` side-chat composer completes slash commands, and side threads no longer fail with Anthropic's "references unknown tool" error.
|
|
14
|
+
- `feynman -v` prints the version, and `--json`, `--work-dir` and `--path` now point to `--mode json` and `--cwd <dir>`.
|
|
15
|
+
|
|
9
16
|
## v0.5.34 - 2026-10-09
|
|
10
17
|
|
|
11
18
|
- **OpenAlex lookups that miss now say why.** Looking up a name or title where OpenAlex expects an ID (for example `openalex_get_work:Attention is all you need` or `author: Geoffrey Hinton`), or an ID that does not exist, returned OpenAlex's raw HTML "404 Not Found" page. The error now says no such work, author or source exists and names the search command to use instead, so the agent recovers on its next call.
|
package/bin/feynman.js
CHANGED
|
@@ -34,7 +34,7 @@ if (compareNodeVersions(parseNodeVersion(process.versions.node), parseNodeVersio
|
|
|
34
34
|
const here = import.meta.dirname;
|
|
35
35
|
|
|
36
36
|
// `--version` needs only package.json; answer it without loading the CLI.
|
|
37
|
-
if (process.argv.length === 3 && process.argv[2] === "--version") {
|
|
37
|
+
if (process.argv.length === 3 && (process.argv[2] === "--version" || process.argv[2] === "-v")) {
|
|
38
38
|
const { readFileSync } = await import("node:fs");
|
|
39
39
|
console.log(JSON.parse(readFileSync(resolve(here, "..", "package.json"), "utf8")).version);
|
|
40
40
|
process.exit(0);
|
package/dist/cli.js
CHANGED
|
@@ -39,6 +39,9 @@ const UNKNOWN_OPTION_HINTS = {
|
|
|
39
39
|
"--setup": "feynman setup",
|
|
40
40
|
"--list-models": "feynman model list",
|
|
41
41
|
"--new": "feynman --new-session",
|
|
42
|
+
"--json": "feynman --mode json",
|
|
43
|
+
"--work-dir": "feynman --cwd <dir>",
|
|
44
|
+
"--path": "feynman --cwd <dir>",
|
|
42
45
|
};
|
|
43
46
|
// Removed commands fail instead of falling through to a chat prompt.
|
|
44
47
|
const REMOVED_COMMANDS = new Set(["jobs", "paper", "rank", "serve", "watch"]);
|
|
@@ -51,7 +54,7 @@ function printHelpLine(usage, description) {
|
|
|
51
54
|
function printHelp(appRoot) {
|
|
52
55
|
const workflowCommands = readPromptSpecs(appRoot).filter((command) => command.section === "Research Workflows" && command.topLevelCli);
|
|
53
56
|
printAsciiHeader([
|
|
54
|
-
"
|
|
57
|
+
"The open source AI research agent.",
|
|
55
58
|
"Use `feynman setup` first if this is a new machine.",
|
|
56
59
|
]);
|
|
57
60
|
printSection("Getting Started");
|
|
@@ -465,7 +468,7 @@ async function runMain(input) {
|
|
|
465
468
|
export: { type: "string" },
|
|
466
469
|
fork: { type: "string" },
|
|
467
470
|
help: { type: "boolean", short: "h" },
|
|
468
|
-
version: { type: "boolean" },
|
|
471
|
+
version: { type: "boolean", short: "v" },
|
|
469
472
|
"alpha-login": { type: "boolean" },
|
|
470
473
|
"alpha-logout": { type: "boolean" },
|
|
471
474
|
"alpha-status": { type: "boolean" },
|
|
@@ -133,11 +133,11 @@ function parseAuthors(value: unknown): Array<Record<string, unknown>> {
|
|
|
133
133
|
return listValue(value).map((item) => {
|
|
134
134
|
const author = recordValue(item);
|
|
135
135
|
const collective = textValue(author.CollectiveName);
|
|
136
|
-
if (collective) return { collectiveName: collective, affiliations: [] };
|
|
137
136
|
const affiliations = listValue(author.AffiliationInfo)
|
|
138
137
|
.flatMap((info) => listValue(recordValue(info).Affiliation))
|
|
139
138
|
.map((affiliation) => textValue(affiliation))
|
|
140
139
|
.filter((affiliation): affiliation is string => Boolean(affiliation));
|
|
140
|
+
if (collective) return { collectiveName: collective, affiliations };
|
|
141
141
|
return prune({
|
|
142
142
|
lastName: textValue(author.LastName),
|
|
143
143
|
foreName: textValue(author.ForeName),
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@companion-ai/feynman",
|
|
3
|
-
"version": "0.5.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.5.35",
|
|
4
|
+
"description": "The open source AI research agent.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"engines": {
|
|
@@ -80,9 +80,9 @@
|
|
|
80
80
|
"@clack/prompts": "^1.8.1",
|
|
81
81
|
"@companion-ai/alpha-hub": "0.1.6",
|
|
82
82
|
"fast-xml-parser": "5.11.1",
|
|
83
|
-
"pi-btw": "0.
|
|
83
|
+
"pi-btw": "0.8.0",
|
|
84
84
|
"pi-docparser": "4.0.0",
|
|
85
|
-
"pi-subagents": "0.
|
|
85
|
+
"pi-subagents": "0.77.0",
|
|
86
86
|
"pi-web-access": "0.38.0",
|
|
87
87
|
"posthog-node": "^5.53.0"
|
|
88
88
|
},
|