@companion-ai/feynman 0.5.50 → 0.5.51
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 +5 -0
- package/dist/cli.js +6 -1
- package/dist/index.js +13 -1
- package/package.json +1 -1
package/RELEASES.md
CHANGED
|
@@ -6,6 +6,11 @@ GitHub release notes are generated from the matching `## vX.Y.Z` section in this
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
## v0.5.51 - 2026-10-19
|
|
10
|
+
|
|
11
|
+
- **A damaged `auth.json` says so.** When `~/.feynman/agent/auth.json` isn't valid JSON, for example after a hand edit, every command used to print only `Expected property name or '}' in JSON`. Feynman now names the file and says to fix it, or move it aside and sign in again with `feynman setup`.
|
|
12
|
+
- `feynman --update` points to `feynman update`, and `feynman model setup` points to `feynman model login`.
|
|
13
|
+
|
|
9
14
|
## v0.5.50 - 2026-10-18
|
|
10
15
|
|
|
11
16
|
- **pi-subagents 0.79.1.**
|
package/dist/cli.js
CHANGED
|
@@ -44,6 +44,7 @@ const UNKNOWN_OPTION_HINTS = {
|
|
|
44
44
|
"--json": "feynman --mode json",
|
|
45
45
|
"--work-dir": "feynman --cwd <dir>",
|
|
46
46
|
"--path": "feynman --cwd <dir>",
|
|
47
|
+
"--update": "feynman update",
|
|
47
48
|
};
|
|
48
49
|
// Removed commands fail instead of falling through to a chat prompt.
|
|
49
50
|
const REMOVED_COMMANDS = new Set(["jobs", "paper", "rank", "serve", "watch"]);
|
|
@@ -231,7 +232,11 @@ async function handleModelCommand(subcommand, args, feynmanSettingsPath, feynman
|
|
|
231
232
|
}
|
|
232
233
|
return;
|
|
233
234
|
}
|
|
234
|
-
const setHint = /[/:]/.test(subcommand)
|
|
235
|
+
const setHint = /[/:]/.test(subcommand)
|
|
236
|
+
? `Did you mean \`feynman model set ${subcommand}\`? `
|
|
237
|
+
: subcommand === "setup"
|
|
238
|
+
? "To sign in, run `feynman model login`. "
|
|
239
|
+
: "";
|
|
235
240
|
throw new Error(`Unknown model command: ${subcommand}\n${setHint}Run \`feynman model help\` to see model commands.`);
|
|
236
241
|
}
|
|
237
242
|
async function handleUpdateCommand(piOptions, feynmanVersion, source) {
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { resolve } from "node:path";
|
|
2
|
+
import { getFeynmanAgentDir } from "./config/paths.js";
|
|
1
3
|
import { ensureSupportedNodeVersion } from "./system/node-version.js";
|
|
2
4
|
async function run() {
|
|
3
5
|
ensureSupportedNodeVersion();
|
|
@@ -6,7 +8,17 @@ async function run() {
|
|
|
6
8
|
const { main } = await import("./cli.js");
|
|
7
9
|
await main();
|
|
8
10
|
}
|
|
11
|
+
// Pi throws a bare JSON.parse error for a malformed auth.json, which names no file.
|
|
12
|
+
function describeFatalError(error) {
|
|
13
|
+
if (!(error instanceof Error))
|
|
14
|
+
return String(error);
|
|
15
|
+
if (error instanceof SyntaxError && error.stack?.includes("auth-storage")) {
|
|
16
|
+
const authPath = resolve(getFeynmanAgentDir(), "auth.json");
|
|
17
|
+
return `${authPath} is not valid JSON (${error.message}).\nFix the file, or move it aside and sign in again with \`feynman setup\`.`;
|
|
18
|
+
}
|
|
19
|
+
return error.message;
|
|
20
|
+
}
|
|
9
21
|
run().catch((error) => {
|
|
10
|
-
console.error(
|
|
22
|
+
console.error(describeFatalError(error));
|
|
11
23
|
process.exitCode = 1;
|
|
12
24
|
});
|