pando-ai 0.2.4 → 0.2.5
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 +14 -13
- package/bin/pando-ai.js +22 -2
- package/dist/cli.js +170 -149
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -26,8 +26,11 @@ npx -y pando-ai
|
|
|
26
26
|
|
|
27
27
|
On a terminal this opens the **firewall console**: it detects whether `codex`
|
|
28
28
|
and `claude` are protected, offers to install supervised launchers for any that
|
|
29
|
-
aren't, and shows current status and policy.
|
|
30
|
-
`
|
|
29
|
+
aren't, and shows current status and policy. It also installs a persistent
|
|
30
|
+
`~/.pando/bin/pando-ai` command shim, so future commands such as
|
|
31
|
+
`pando-ai uninstall` work even when the first run came from `npx`. After
|
|
32
|
+
installation you keep running `codex` and `claude` normally — Pando supervises
|
|
33
|
+
each launch.
|
|
31
34
|
|
|
32
35
|
## How it works
|
|
33
36
|
|
|
@@ -179,9 +182,9 @@ provider-bound gateway enforcement is disabled.
|
|
|
179
182
|
## Surfaces
|
|
180
183
|
|
|
181
184
|
```bash
|
|
182
|
-
pando-ai # firewall console (TTY): status
|
|
185
|
+
pando-ai # firewall console (TTY): status, install, uninstall
|
|
183
186
|
pando-ai install # force a (re)install pass
|
|
184
|
-
pando-ai uninstall # remove Pando shims, managed PATH block, and install
|
|
187
|
+
pando-ai uninstall # remove Pando shims, managed PATH block, install state, and global npm install when detected
|
|
185
188
|
pando-ai serve [path] # stdio MCP server for MCP clients
|
|
186
189
|
pando-ai serve-http # HTTP MCP server
|
|
187
190
|
pando-ai gateway # run the firewall gateway in the foreground (debug)
|
|
@@ -202,15 +205,13 @@ pando-ai uninstall
|
|
|
202
205
|
```
|
|
203
206
|
|
|
204
207
|
This removes Pando-owned `codex`/`claude` shims from `~/.pando/bin`, removes
|
|
205
|
-
the
|
|
206
|
-
`~/.pando/state.json` so
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
npm uninstall -g pando-ai
|
|
213
|
-
```
|
|
208
|
+
the Pando-owned `pando-ai` command shim, removes the managed PATH block from
|
|
209
|
+
your shell startup file when present, and deletes `~/.pando/state.json` so
|
|
210
|
+
declined/install state does not suppress future setup prompts. It does not
|
|
211
|
+
delete policy files, logs, or other user data. If the command is running from a
|
|
212
|
+
global npm install, it also removes that global `pando-ai` package
|
|
213
|
+
automatically. `npx` runs are temporary, so there is no persistent npm package
|
|
214
|
+
to remove in that case.
|
|
214
215
|
|
|
215
216
|
## MCP serve mode
|
|
216
217
|
|
package/bin/pando-ai.js
CHANGED
|
@@ -29,10 +29,30 @@ const current = parseNodeVersion(process.version);
|
|
|
29
29
|
if (!isSupportedNode(current)) {
|
|
30
30
|
const detected = current ? `${current.major}.${current.minor}.${current.patch}` : process.version;
|
|
31
31
|
console.error(
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
"\n" +
|
|
33
|
+
`[pando] pando-ai requires Node.js 22.5.0 or newer. Detected ${detected}.\n` +
|
|
34
|
+
"[pando] Please update Node.js, then re-run: npx -y pando-ai\n",
|
|
34
35
|
);
|
|
35
36
|
process.exit(1);
|
|
36
37
|
}
|
|
37
38
|
|
|
39
|
+
const originalEmitWarning = process.emitWarning;
|
|
40
|
+
process.emitWarning = function pandoEmitWarning(warning, ...args) {
|
|
41
|
+
const text =
|
|
42
|
+
typeof warning === "string"
|
|
43
|
+
? warning
|
|
44
|
+
: warning && typeof warning === "object" && "message" in warning
|
|
45
|
+
? String(warning.message)
|
|
46
|
+
: "";
|
|
47
|
+
const type = typeof args[0] === "string" ? args[0] : undefined;
|
|
48
|
+
if (
|
|
49
|
+
type === "ExperimentalWarning" ||
|
|
50
|
+
text.includes("SQLite is an experimental feature") ||
|
|
51
|
+
text.includes("localStorage is not available")
|
|
52
|
+
) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
return originalEmitWarning.call(process, warning, ...args);
|
|
56
|
+
};
|
|
57
|
+
|
|
38
58
|
require("../dist/cli.js");
|