@agentguard-run/burn 0.2.1 → 0.2.2
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/CHANGELOG.md +9 -0
- package/README.md +9 -2
- package/dist/src/cli.js +1 -1
- package/dist/src/status.js +6 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.2 (2026-09-03)
|
|
4
|
+
|
|
5
|
+
- Codex: `status` and `init codex --write` now say, every time, that the
|
|
6
|
+
hook must be trusted once with `/hooks` inside Codex. Verified that an
|
|
7
|
+
untrusted hook stalls `codex exec` with no output the first time a spawn
|
|
8
|
+
would be gated, from `hooks.json` and from `config.toml` alike.
|
|
9
|
+
- Verified the installed Claude Code hook end to end from the global
|
|
10
|
+
install: 0.2s on a 1.95B-token transcript, decision recorded.
|
|
11
|
+
|
|
3
12
|
## 0.2.1 (2026-09-03)
|
|
4
13
|
|
|
5
14
|
Finishing the product so it can be used, and a live Codex canary.
|
package/README.md
CHANGED
|
@@ -155,8 +155,15 @@ spawn through with the reason on the ledger. Two things the docs got wrong
|
|
|
155
155
|
and the wire settled: the tool arrives as `spawn_agent` (the docs say it
|
|
156
156
|
"matches as Agent"; the matcher covers both), and project-local hooks only
|
|
157
157
|
load when the project is trusted. The captured payloads are in
|
|
158
|
-
`fixtures/codex-0.151.0-pretooluse.json` and drive a test.
|
|
159
|
-
|
|
158
|
+
`fixtures/codex-0.151.0-pretooluse.json` and drive a test.
|
|
159
|
+
|
|
160
|
+
One step Codex makes you do by hand: after `init codex --write`, open
|
|
161
|
+
`codex`, run `/hooks`, and trust the AgentGuard hook. Codex requires this
|
|
162
|
+
once per hook source, and there is no CLI for it. Until it is done,
|
|
163
|
+
`codex exec` stalls the first time a spawn would be gated (verified: it
|
|
164
|
+
hangs with no output; the same with hooks defined in `config.toml`).
|
|
165
|
+
`status` repeats this under the codex line because it cannot see whether
|
|
166
|
+
trust was granted.
|
|
160
167
|
|
|
161
168
|
**Cursor** is verified against the documented schema (`permission`,
|
|
162
169
|
`user_message`, `agent_message`; `~/.cursor/hooks.json` with `failClosed`),
|
package/dist/src/cli.js
CHANGED
|
@@ -163,7 +163,7 @@ async function main(argv) {
|
|
|
163
163
|
process.stderr.write(`init: host must be claude, cursor or codex\n`);
|
|
164
164
|
return 64;
|
|
165
165
|
}
|
|
166
|
-
const label = { claude: '', cursor: 'Cursor support is BETA: verified against the documented hook schema, not yet against every installed build. "failClosed": true means a crashed hook denies the subagent.', codex: 'Codex support is BETA: a live deny, allow and override canary passed on codex-cli 0.151.0; transcript usage is best-effort and marked estimated
|
|
166
|
+
const label = { claude: '', cursor: 'Cursor support is BETA: verified against the documented hook schema, not yet against every installed build. "failClosed": true means a crashed hook denies the subagent.', codex: 'Codex support is BETA: a live deny, allow and override canary passed on codex-cli 0.151.0; transcript usage is best-effort and marked estimated.\nONE MORE STEP: open codex, run /hooks, and trust the AgentGuard hook. Codex requires this once per hook source; until then `codex exec` stalls the first time a spawn would be gated.' }[target];
|
|
167
167
|
const tail = `Installed in ${policy.mode} mode. Nothing is blocked until you run: agentguard-burn enforce\n`;
|
|
168
168
|
if (has('--write')) {
|
|
169
169
|
let result;
|
package/dist/src/status.js
CHANGED
|
@@ -68,6 +68,12 @@ function renderHostHealth(hosts) {
|
|
|
68
68
|
else
|
|
69
69
|
state = `installed, hook command ok (${h.file.replace(process.env.HOME ?? '', '~')})`;
|
|
70
70
|
lines.push(` ${name.padEnd(13)} ${state}`);
|
|
71
|
+
if (h.host === 'codex' && h.installed && h.commandExists) {
|
|
72
|
+
// Codex requires a one-time trust of each hook source. We cannot see
|
|
73
|
+
// whether it has been granted, and an untrusted hook stalls codex exec
|
|
74
|
+
// the first time it would fire, so say it every time.
|
|
75
|
+
lines.push(` ${''.padEnd(13)} trust it once: open codex, run /hooks, trust the AgentGuard hook. Until then codex exec stalls when a spawn would be gated.`);
|
|
76
|
+
}
|
|
71
77
|
}
|
|
72
78
|
return lines.join('\n');
|
|
73
79
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentguard-run/burn",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Local runaway-agent circuit breaker for AI coding agents and local model runtimes. One policy across Claude Code, Cursor, Codex, Ollama, vLLM, LM Studio and raw orchestrators: detects fan-out storms and sustained token burn, blocks the next spawn, and proves what happened with content-free signed receipts. Nothing leaves the machine.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"type": "commonjs",
|