@goplus/agentguard 1.1.18 → 1.1.26
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 +6 -1
- package/dist/adapters/engine.d.ts.map +1 -1
- package/dist/adapters/engine.js +10 -0
- package/dist/adapters/engine.js.map +1 -1
- package/dist/adapters/openclaw-plugin.d.ts.map +1 -1
- package/dist/adapters/openclaw-plugin.js +24 -3
- package/dist/adapters/openclaw-plugin.js.map +1 -1
- package/dist/adapters/openclaw.d.ts.map +1 -1
- package/dist/adapters/openclaw.js +7 -2
- package/dist/adapters/openclaw.js.map +1 -1
- package/dist/cli.js +254 -72
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +5 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +13 -0
- package/dist/config.js.map +1 -1
- package/dist/feed/cron.d.ts +17 -0
- package/dist/feed/cron.d.ts.map +1 -1
- package/dist/feed/cron.js +197 -18
- package/dist/feed/cron.js.map +1 -1
- package/dist/feed/selfcheck.d.ts.map +1 -1
- package/dist/feed/selfcheck.js +205 -54
- package/dist/feed/selfcheck.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/installers.d.ts.map +1 -1
- package/dist/installers.js +91 -5
- package/dist/installers.js.map +1 -1
- package/dist/runtime/approvals.d.ts +38 -0
- package/dist/runtime/approvals.d.ts.map +1 -0
- package/dist/runtime/approvals.js +227 -0
- package/dist/runtime/approvals.js.map +1 -0
- package/dist/runtime/evaluator.d.ts.map +1 -1
- package/dist/runtime/evaluator.js +54 -0
- package/dist/runtime/evaluator.js.map +1 -1
- package/dist/runtime/protect.d.ts +2 -0
- package/dist/runtime/protect.d.ts.map +1 -1
- package/dist/runtime/protect.js +81 -9
- package/dist/runtime/protect.js.map +1 -1
- package/dist/runtime/self-command.d.ts +2 -0
- package/dist/runtime/self-command.d.ts.map +1 -0
- package/dist/runtime/self-command.js +93 -0
- package/dist/runtime/self-command.js.map +1 -0
- package/dist/tests/adapter.test.js +8 -0
- package/dist/tests/adapter.test.js.map +1 -1
- package/dist/tests/cli-connect.test.js +118 -1
- package/dist/tests/cli-connect.test.js.map +1 -1
- package/dist/tests/cli-init.test.js +123 -0
- package/dist/tests/cli-init.test.js.map +1 -1
- package/dist/tests/cli-subscribe.test.js +176 -0
- package/dist/tests/cli-subscribe.test.js.map +1 -1
- package/dist/tests/feed-cron.test.js +236 -0
- package/dist/tests/feed-cron.test.js.map +1 -1
- package/dist/tests/feed-selfcheck.test.js +81 -0
- package/dist/tests/feed-selfcheck.test.js.map +1 -1
- package/dist/tests/installer.test.js +78 -2
- package/dist/tests/installer.test.js.map +1 -1
- package/dist/tests/integration.test.js +64 -0
- package/dist/tests/integration.test.js.map +1 -1
- package/dist/tests/runtime-cloud.test.js +406 -0
- package/dist/tests/runtime-cloud.test.js.map +1 -1
- package/docs/claude-code.md +3 -2
- package/docs/cloud-connect.md +16 -3
- package/docs/cloud-native-api.md +26 -118
- package/docs/codex.md +13 -1
- package/docs/openclaw.md +32 -1
- package/docs/privacy-boundary.md +0 -1
- package/package.json +1 -1
- package/skills/agentguard/SKILL.md +14 -4
|
@@ -12,6 +12,7 @@ const evaluator_js_1 = require("../runtime/evaluator.js");
|
|
|
12
12
|
const policy_js_1 = require("../runtime/policy.js");
|
|
13
13
|
const redaction_js_1 = require("../runtime/redaction.js");
|
|
14
14
|
const audit_js_1 = require("../runtime/audit.js");
|
|
15
|
+
const approvals_js_1 = require("../runtime/approvals.js");
|
|
15
16
|
const protect_js_1 = require("../runtime/protect.js");
|
|
16
17
|
const config_js_1 = require("../config.js");
|
|
17
18
|
const client_js_1 = require("../cloud/client.js");
|
|
@@ -144,6 +145,32 @@ const client_js_1 = require("../cloud/client.js");
|
|
|
144
145
|
process.env.AGENTGUARD_HOME = previousHome;
|
|
145
146
|
}
|
|
146
147
|
});
|
|
148
|
+
(0, node_test_1.it)('clears API key credentials when connecting with an Agent JWT', () => {
|
|
149
|
+
const previousHome = process.env.AGENTGUARD_HOME;
|
|
150
|
+
process.env.AGENTGUARD_HOME = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-connect-jwt-'));
|
|
151
|
+
try {
|
|
152
|
+
(0, config_js_1.connectCloud)({
|
|
153
|
+
apiKey: 'ag_live_test_key_123456',
|
|
154
|
+
cloudUrl: 'https://agentguard.example',
|
|
155
|
+
});
|
|
156
|
+
const config = (0, config_js_1.connectAgentJwt)({
|
|
157
|
+
agentId: 'agt_jwt_shadow_test',
|
|
158
|
+
agentJwt: 'agent.jwt.shadow',
|
|
159
|
+
agentRegisterUrl: 'https://agentguard.example/activate?token=shadow',
|
|
160
|
+
cloudUrl: 'https://agentguard.example',
|
|
161
|
+
});
|
|
162
|
+
strict_1.default.equal(config.apiKey, undefined);
|
|
163
|
+
strict_1.default.equal(config.agentId, 'agt_jwt_shadow_test');
|
|
164
|
+
strict_1.default.equal(config.agentJwt, 'agent.jwt.shadow');
|
|
165
|
+
strict_1.default.equal(config.agentRegisterUrl, 'https://agentguard.example/activate?token=shadow');
|
|
166
|
+
}
|
|
167
|
+
finally {
|
|
168
|
+
if (previousHome === undefined)
|
|
169
|
+
delete process.env.AGENTGUARD_HOME;
|
|
170
|
+
else
|
|
171
|
+
process.env.AGENTGUARD_HOME = previousHome;
|
|
172
|
+
}
|
|
173
|
+
});
|
|
147
174
|
(0, node_test_1.it)('evaluates local action with cached Cloud policy shape', async () => {
|
|
148
175
|
const policy = (0, policy_js_1.getDefaultEffectiveRuntimePolicy)();
|
|
149
176
|
policy.policyVersion = 'runtime-test';
|
|
@@ -213,6 +240,225 @@ const client_js_1 = require("../cloud/client.js");
|
|
|
213
240
|
strict_1.default.ok(audit.includes('[REDACTED]'));
|
|
214
241
|
strict_1.default.ok(!audit.includes('secret-value'));
|
|
215
242
|
});
|
|
243
|
+
(0, node_test_1.it)('skips AgentGuard CLI commands before local audit or Cloud reporting', async () => {
|
|
244
|
+
const originalFetch = globalThis.fetch;
|
|
245
|
+
const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-self-cli-'));
|
|
246
|
+
const requests = [];
|
|
247
|
+
globalThis.fetch = (async (input) => {
|
|
248
|
+
requests.push(String(input));
|
|
249
|
+
throw new Error('unexpected cloud request');
|
|
250
|
+
});
|
|
251
|
+
try {
|
|
252
|
+
const config = {
|
|
253
|
+
version: 1,
|
|
254
|
+
level: 'balanced',
|
|
255
|
+
cloudUrl: 'https://agentguard.example',
|
|
256
|
+
apiKey: 'ag_live_test_key_123456',
|
|
257
|
+
policyCachePath: (0, node_path_1.join)(dir, 'policy.json'),
|
|
258
|
+
auditPath: (0, node_path_1.join)(dir, 'audit.jsonl'),
|
|
259
|
+
eventSpoolPath: (0, node_path_1.join)(dir, 'spool.jsonl'),
|
|
260
|
+
};
|
|
261
|
+
const result = await (0, protect_js_1.protectAction)({
|
|
262
|
+
config,
|
|
263
|
+
stdinText: JSON.stringify({
|
|
264
|
+
tool_name: 'Bash',
|
|
265
|
+
tool_input: { command: 'AGENTGUARD_AGENT_HOST=codex agentguard protect --json' },
|
|
266
|
+
session_id: 'sess_test',
|
|
267
|
+
}),
|
|
268
|
+
});
|
|
269
|
+
strict_1.default.equal(result, null);
|
|
270
|
+
strict_1.default.deepEqual(requests, []);
|
|
271
|
+
strict_1.default.equal((0, node_fs_1.existsSync)(config.auditPath), false);
|
|
272
|
+
strict_1.default.equal((0, node_fs_1.existsSync)(config.eventSpoolPath), false);
|
|
273
|
+
}
|
|
274
|
+
finally {
|
|
275
|
+
globalThis.fetch = originalFetch;
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
(0, node_test_1.it)('skips AgentGuard CLI commands from alternate tool argument shapes', async () => {
|
|
279
|
+
const originalFetch = globalThis.fetch;
|
|
280
|
+
const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-self-cli-args-'));
|
|
281
|
+
const requests = [];
|
|
282
|
+
globalThis.fetch = (async (input) => {
|
|
283
|
+
requests.push(String(input));
|
|
284
|
+
throw new Error('unexpected cloud request');
|
|
285
|
+
});
|
|
286
|
+
try {
|
|
287
|
+
const config = {
|
|
288
|
+
version: 1,
|
|
289
|
+
level: 'balanced',
|
|
290
|
+
cloudUrl: 'https://agentguard.example',
|
|
291
|
+
apiKey: 'ag_live_test_key_123456',
|
|
292
|
+
policyCachePath: (0, node_path_1.join)(dir, 'policy.json'),
|
|
293
|
+
auditPath: (0, node_path_1.join)(dir, 'audit.jsonl'),
|
|
294
|
+
eventSpoolPath: (0, node_path_1.join)(dir, 'spool.jsonl'),
|
|
295
|
+
};
|
|
296
|
+
const result = await (0, protect_js_1.protectAction)({
|
|
297
|
+
config,
|
|
298
|
+
actionType: 'shell',
|
|
299
|
+
stdinText: JSON.stringify({
|
|
300
|
+
toolName: 'terminal',
|
|
301
|
+
args: { cmd: 'agentguard disconnect' },
|
|
302
|
+
sessionId: 'sess_test',
|
|
303
|
+
}),
|
|
304
|
+
});
|
|
305
|
+
strict_1.default.equal(result, null);
|
|
306
|
+
strict_1.default.deepEqual(requests, []);
|
|
307
|
+
strict_1.default.equal((0, node_fs_1.existsSync)(config.auditPath), false);
|
|
308
|
+
strict_1.default.equal((0, node_fs_1.existsSync)(config.eventSpoolPath), false);
|
|
309
|
+
}
|
|
310
|
+
finally {
|
|
311
|
+
globalThis.fetch = originalFetch;
|
|
312
|
+
}
|
|
313
|
+
});
|
|
314
|
+
(0, node_test_1.it)('honors allowed command patterns without allowing compound shell commands', async () => {
|
|
315
|
+
const policy = (0, policy_js_1.getDefaultEffectiveRuntimePolicy)();
|
|
316
|
+
policy.blockedCommandPatterns = ['agentguard'];
|
|
317
|
+
policy.allowedCommandPatterns = ['agentguard'];
|
|
318
|
+
const allowed = await (0, evaluator_js_1.evaluateLocalAction)(policy, {
|
|
319
|
+
sessionId: 'sess_test',
|
|
320
|
+
agentHost: 'openclaw',
|
|
321
|
+
actionType: 'shell',
|
|
322
|
+
toolName: 'exec',
|
|
323
|
+
input: 'agentguard disconnect',
|
|
324
|
+
});
|
|
325
|
+
strict_1.default.equal(allowed.decision, 'allow');
|
|
326
|
+
strict_1.default.equal(allowed.riskScore, 0);
|
|
327
|
+
strict_1.default.deepEqual(allowed.reasons, []);
|
|
328
|
+
const compound = await (0, evaluator_js_1.evaluateLocalAction)(policy, {
|
|
329
|
+
sessionId: 'sess_test',
|
|
330
|
+
agentHost: 'openclaw',
|
|
331
|
+
actionType: 'shell',
|
|
332
|
+
toolName: 'exec',
|
|
333
|
+
input: 'agentguard status; rm -rf /',
|
|
334
|
+
});
|
|
335
|
+
strict_1.default.equal(compound.decision, 'block');
|
|
336
|
+
const multiline = await (0, evaluator_js_1.evaluateLocalAction)(policy, {
|
|
337
|
+
sessionId: 'sess_test',
|
|
338
|
+
agentHost: 'openclaw',
|
|
339
|
+
actionType: 'shell',
|
|
340
|
+
toolName: 'exec',
|
|
341
|
+
input: 'agentguard status\nrm -rf /',
|
|
342
|
+
});
|
|
343
|
+
strict_1.default.equal(multiline.decision, 'block');
|
|
344
|
+
});
|
|
345
|
+
(0, node_test_1.it)('skips supported agent CLI commands before local audit or Cloud reporting', async () => {
|
|
346
|
+
const originalFetch = globalThis.fetch;
|
|
347
|
+
const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-agent-cli-'));
|
|
348
|
+
const requests = [];
|
|
349
|
+
globalThis.fetch = (async (input) => {
|
|
350
|
+
requests.push(String(input));
|
|
351
|
+
throw new Error('unexpected cloud request');
|
|
352
|
+
});
|
|
353
|
+
try {
|
|
354
|
+
const config = {
|
|
355
|
+
version: 1,
|
|
356
|
+
level: 'balanced',
|
|
357
|
+
cloudUrl: 'https://agentguard.example',
|
|
358
|
+
apiKey: 'ag_live_test_key_123456',
|
|
359
|
+
policyCachePath: (0, node_path_1.join)(dir, 'policy.json'),
|
|
360
|
+
auditPath: (0, node_path_1.join)(dir, 'audit.jsonl'),
|
|
361
|
+
eventSpoolPath: (0, node_path_1.join)(dir, 'spool.jsonl'),
|
|
362
|
+
};
|
|
363
|
+
for (const command of [
|
|
364
|
+
'openclaw gateway restart',
|
|
365
|
+
'qclaw gateway restart',
|
|
366
|
+
'hermes config reload',
|
|
367
|
+
'codex --version',
|
|
368
|
+
'claude mcp list',
|
|
369
|
+
'claude-code --version',
|
|
370
|
+
'cursor-agent --version',
|
|
371
|
+
'cursor --version',
|
|
372
|
+
'gemini --version',
|
|
373
|
+
'copilot --version',
|
|
374
|
+
'gh copilot explain "git status"',
|
|
375
|
+
'env AGENTGUARD_AGENT_HOST=openclaw openclaw gateway restart',
|
|
376
|
+
'command codex --version',
|
|
377
|
+
]) {
|
|
378
|
+
const result = await (0, protect_js_1.protectAction)({
|
|
379
|
+
config,
|
|
380
|
+
stdinText: JSON.stringify({
|
|
381
|
+
tool_name: 'Bash',
|
|
382
|
+
tool_input: { command },
|
|
383
|
+
session_id: 'sess_test',
|
|
384
|
+
}),
|
|
385
|
+
});
|
|
386
|
+
strict_1.default.equal(result, null);
|
|
387
|
+
}
|
|
388
|
+
strict_1.default.deepEqual(requests, []);
|
|
389
|
+
strict_1.default.equal((0, node_fs_1.existsSync)(config.auditPath), false);
|
|
390
|
+
strict_1.default.equal((0, node_fs_1.existsSync)(config.eventSpoolPath), false);
|
|
391
|
+
}
|
|
392
|
+
finally {
|
|
393
|
+
globalThis.fetch = originalFetch;
|
|
394
|
+
}
|
|
395
|
+
});
|
|
396
|
+
(0, node_test_1.it)('does not skip compound shell commands just because they mention agentguard', async () => {
|
|
397
|
+
const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-compound-cli-'));
|
|
398
|
+
const config = {
|
|
399
|
+
version: 1,
|
|
400
|
+
level: 'balanced',
|
|
401
|
+
cloudUrl: 'https://agentguard.example',
|
|
402
|
+
policyCachePath: (0, node_path_1.join)(dir, 'policy.json'),
|
|
403
|
+
auditPath: (0, node_path_1.join)(dir, 'audit.jsonl'),
|
|
404
|
+
eventSpoolPath: (0, node_path_1.join)(dir, 'spool.jsonl'),
|
|
405
|
+
};
|
|
406
|
+
const result = await (0, protect_js_1.protectAction)({
|
|
407
|
+
config,
|
|
408
|
+
stdinText: JSON.stringify({
|
|
409
|
+
tool_name: 'Bash',
|
|
410
|
+
tool_input: { command: 'agentguard status; rm -rf /' },
|
|
411
|
+
session_id: 'sess_test',
|
|
412
|
+
}),
|
|
413
|
+
});
|
|
414
|
+
strict_1.default.ok(result);
|
|
415
|
+
strict_1.default.equal(result.decision.decision, 'block');
|
|
416
|
+
strict_1.default.equal((0, node_fs_1.existsSync)(config.auditPath), true);
|
|
417
|
+
});
|
|
418
|
+
(0, node_test_1.it)('does not skip multiline shell commands just because they start with agent CLIs', async () => {
|
|
419
|
+
const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-agent-multiline-cli-'));
|
|
420
|
+
const config = {
|
|
421
|
+
version: 1,
|
|
422
|
+
level: 'balanced',
|
|
423
|
+
cloudUrl: 'https://agentguard.example',
|
|
424
|
+
policyCachePath: (0, node_path_1.join)(dir, 'policy.json'),
|
|
425
|
+
auditPath: (0, node_path_1.join)(dir, 'audit.jsonl'),
|
|
426
|
+
eventSpoolPath: (0, node_path_1.join)(dir, 'spool.jsonl'),
|
|
427
|
+
};
|
|
428
|
+
const result = await (0, protect_js_1.protectAction)({
|
|
429
|
+
config,
|
|
430
|
+
stdinText: JSON.stringify({
|
|
431
|
+
tool_name: 'Bash',
|
|
432
|
+
tool_input: { command: 'openclaw gateway status\nrm -rf /' },
|
|
433
|
+
session_id: 'sess_test',
|
|
434
|
+
}),
|
|
435
|
+
});
|
|
436
|
+
strict_1.default.ok(result);
|
|
437
|
+
strict_1.default.equal(result.decision.decision, 'block');
|
|
438
|
+
strict_1.default.equal((0, node_fs_1.existsSync)(config.auditPath), true);
|
|
439
|
+
});
|
|
440
|
+
(0, node_test_1.it)('does not skip compound shell commands just because they mention agent CLIs', async () => {
|
|
441
|
+
const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-agent-compound-cli-'));
|
|
442
|
+
const config = {
|
|
443
|
+
version: 1,
|
|
444
|
+
level: 'balanced',
|
|
445
|
+
cloudUrl: 'https://agentguard.example',
|
|
446
|
+
policyCachePath: (0, node_path_1.join)(dir, 'policy.json'),
|
|
447
|
+
auditPath: (0, node_path_1.join)(dir, 'audit.jsonl'),
|
|
448
|
+
eventSpoolPath: (0, node_path_1.join)(dir, 'spool.jsonl'),
|
|
449
|
+
};
|
|
450
|
+
const result = await (0, protect_js_1.protectAction)({
|
|
451
|
+
config,
|
|
452
|
+
stdinText: JSON.stringify({
|
|
453
|
+
tool_name: 'Bash',
|
|
454
|
+
tool_input: { command: 'openclaw gateway status; rm -rf /' },
|
|
455
|
+
session_id: 'sess_test',
|
|
456
|
+
}),
|
|
457
|
+
});
|
|
458
|
+
strict_1.default.ok(result);
|
|
459
|
+
strict_1.default.equal(result.decision.decision, 'block');
|
|
460
|
+
strict_1.default.equal((0, node_fs_1.existsSync)(config.auditPath), true);
|
|
461
|
+
});
|
|
216
462
|
(0, node_test_1.it)('protectAction still returns policy decision when local audit write fails', async () => {
|
|
217
463
|
const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-audit-fail-'));
|
|
218
464
|
const policy = (0, policy_js_1.getDefaultEffectiveRuntimePolicy)();
|
|
@@ -237,6 +483,99 @@ const client_js_1 = require("../cloud/client.js");
|
|
|
237
483
|
});
|
|
238
484
|
strict_1.default.equal(result?.decision.decision, 'block');
|
|
239
485
|
});
|
|
486
|
+
(0, node_test_1.it)('does not audit or sync empty safe local runtime decisions', async () => {
|
|
487
|
+
const originalFetch = globalThis.fetch;
|
|
488
|
+
const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-safe-noop-'));
|
|
489
|
+
const policy = (0, policy_js_1.getDefaultEffectiveRuntimePolicy)();
|
|
490
|
+
const requests = [];
|
|
491
|
+
globalThis.fetch = (async (input) => {
|
|
492
|
+
const url = String(input);
|
|
493
|
+
requests.push(url);
|
|
494
|
+
if (url.endsWith('/api/v1/policies/effective')) {
|
|
495
|
+
return jsonResponse({ success: true, data: policy });
|
|
496
|
+
}
|
|
497
|
+
if (url.endsWith('/api/v1/events/ingest')) {
|
|
498
|
+
throw new Error('safe decisions should not be synced');
|
|
499
|
+
}
|
|
500
|
+
return jsonResponse({ success: false, error: { message: 'not found' } }, 404);
|
|
501
|
+
});
|
|
502
|
+
try {
|
|
503
|
+
const config = {
|
|
504
|
+
version: 1,
|
|
505
|
+
level: 'balanced',
|
|
506
|
+
cloudUrl: 'https://agentguard.example',
|
|
507
|
+
apiKey: 'ag_live_test_key_123456',
|
|
508
|
+
policyCachePath: (0, node_path_1.join)(dir, 'policy.json'),
|
|
509
|
+
auditPath: (0, node_path_1.join)(dir, 'audit.jsonl'),
|
|
510
|
+
eventSpoolPath: (0, node_path_1.join)(dir, 'spool.jsonl'),
|
|
511
|
+
};
|
|
512
|
+
const result = await (0, protect_js_1.protectAction)({
|
|
513
|
+
config,
|
|
514
|
+
stdinText: JSON.stringify({
|
|
515
|
+
tool_name: 'Bash',
|
|
516
|
+
tool_input: { command: 'echo hello' },
|
|
517
|
+
session_id: 'sess_safe',
|
|
518
|
+
}),
|
|
519
|
+
});
|
|
520
|
+
strict_1.default.equal(result, null);
|
|
521
|
+
strict_1.default.deepEqual(requests, ['https://agentguard.example/api/v1/policies/effective']);
|
|
522
|
+
strict_1.default.equal((0, node_fs_1.existsSync)(config.auditPath), false);
|
|
523
|
+
strict_1.default.equal((0, node_fs_1.existsSync)(config.eventSpoolPath), false);
|
|
524
|
+
}
|
|
525
|
+
finally {
|
|
526
|
+
globalThis.fetch = originalFetch;
|
|
527
|
+
}
|
|
528
|
+
});
|
|
529
|
+
(0, node_test_1.it)('does not intercept empty safe Cloud require_approval decisions', async () => {
|
|
530
|
+
const originalFetch = globalThis.fetch;
|
|
531
|
+
const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-cloud-safe-noop-'));
|
|
532
|
+
const requests = [];
|
|
533
|
+
globalThis.fetch = (async (input) => {
|
|
534
|
+
const url = String(input);
|
|
535
|
+
requests.push(url);
|
|
536
|
+
if (url.endsWith('/api/v1/actions/evaluate')) {
|
|
537
|
+
return jsonResponse({
|
|
538
|
+
success: true,
|
|
539
|
+
data: {
|
|
540
|
+
actionId: 'act_cloud_empty_safe',
|
|
541
|
+
decision: 'require_approval',
|
|
542
|
+
riskScore: 0,
|
|
543
|
+
riskLevel: 'safe',
|
|
544
|
+
reasons: [],
|
|
545
|
+
policyVersion: 'cloud-test',
|
|
546
|
+
},
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
return jsonResponse({ success: false, error: { message: 'not found' } }, 404);
|
|
550
|
+
});
|
|
551
|
+
try {
|
|
552
|
+
const config = {
|
|
553
|
+
version: 1,
|
|
554
|
+
level: 'balanced',
|
|
555
|
+
cloudUrl: 'https://agentguard.example',
|
|
556
|
+
apiKey: 'ag_live_test_key_123456',
|
|
557
|
+
policyCachePath: (0, node_path_1.join)(dir, 'policy.json'),
|
|
558
|
+
auditPath: (0, node_path_1.join)(dir, 'audit.jsonl'),
|
|
559
|
+
eventSpoolPath: (0, node_path_1.join)(dir, 'spool.jsonl'),
|
|
560
|
+
};
|
|
561
|
+
const result = await (0, protect_js_1.protectAction)({
|
|
562
|
+
config,
|
|
563
|
+
decisionMode: 'cloud',
|
|
564
|
+
stdinText: JSON.stringify({
|
|
565
|
+
tool_name: 'Bash',
|
|
566
|
+
tool_input: { command: 'echo hello' },
|
|
567
|
+
session_id: 'sess_cloud_safe',
|
|
568
|
+
}),
|
|
569
|
+
});
|
|
570
|
+
strict_1.default.equal(result, null);
|
|
571
|
+
strict_1.default.deepEqual(requests, ['https://agentguard.example/api/v1/actions/evaluate']);
|
|
572
|
+
strict_1.default.equal((0, node_fs_1.existsSync)(config.auditPath), false);
|
|
573
|
+
strict_1.default.equal((0, node_fs_1.existsSync)(config.eventSpoolPath), false);
|
|
574
|
+
}
|
|
575
|
+
finally {
|
|
576
|
+
globalThis.fetch = originalFetch;
|
|
577
|
+
}
|
|
578
|
+
});
|
|
240
579
|
(0, node_test_1.it)('syncs redacted audit events and uses agent approval by default on require_approval', async () => {
|
|
241
580
|
const originalFetch = globalThis.fetch;
|
|
242
581
|
const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-cloud-ok-'));
|
|
@@ -287,6 +626,73 @@ const client_js_1 = require("../cloud/client.js");
|
|
|
287
626
|
globalThis.fetch = originalFetch;
|
|
288
627
|
}
|
|
289
628
|
});
|
|
629
|
+
(0, node_test_1.it)('stores pending approvals with expiration and cleans expired records', async () => {
|
|
630
|
+
const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-approval-expiry-'));
|
|
631
|
+
const config = {
|
|
632
|
+
version: 1,
|
|
633
|
+
level: 'balanced',
|
|
634
|
+
policyCachePath: (0, node_path_1.join)(dir, 'policy.json'),
|
|
635
|
+
auditPath: (0, node_path_1.join)(dir, 'audit.jsonl'),
|
|
636
|
+
eventSpoolPath: (0, node_path_1.join)(dir, 'spool.jsonl'),
|
|
637
|
+
approvalStorePath: (0, node_path_1.join)(dir, 'approvals.json'),
|
|
638
|
+
};
|
|
639
|
+
const result = await (0, protect_js_1.protectAction)({
|
|
640
|
+
config,
|
|
641
|
+
agentHost: 'codex',
|
|
642
|
+
stdinText: JSON.stringify({
|
|
643
|
+
tool_name: 'Bash',
|
|
644
|
+
tool_input: { command: 'cat ~/.ssh/id_rsa.pub' },
|
|
645
|
+
session_id: 'sess_approval_expiry',
|
|
646
|
+
}),
|
|
647
|
+
});
|
|
648
|
+
strict_1.default.equal(result?.decision.decision, 'require_approval');
|
|
649
|
+
strict_1.default.equal(result?.pendingApproval?.status, 'pending');
|
|
650
|
+
strict_1.default.ok(result?.pendingApproval?.expiresAt);
|
|
651
|
+
strict_1.default.equal((0, approvals_js_1.listPendingApprovals)(config.approvalStorePath).length, 1);
|
|
652
|
+
const removed = (0, approvals_js_1.cleanupExpiredApprovals)(config.approvalStorePath, new Date(Date.parse(result.pendingApproval.expiresAt) + 1));
|
|
653
|
+
strict_1.default.equal(removed, 1);
|
|
654
|
+
strict_1.default.equal((0, approvals_js_1.listPendingApprovals)(config.approvalStorePath).length, 0);
|
|
655
|
+
});
|
|
656
|
+
(0, node_test_1.it)('approves one pending action once and consumes the grant on retry', async () => {
|
|
657
|
+
const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-approval-once-'));
|
|
658
|
+
const config = {
|
|
659
|
+
version: 1,
|
|
660
|
+
level: 'balanced',
|
|
661
|
+
policyCachePath: (0, node_path_1.join)(dir, 'policy.json'),
|
|
662
|
+
auditPath: (0, node_path_1.join)(dir, 'audit.jsonl'),
|
|
663
|
+
eventSpoolPath: (0, node_path_1.join)(dir, 'spool.jsonl'),
|
|
664
|
+
approvalStorePath: (0, node_path_1.join)(dir, 'approvals.json'),
|
|
665
|
+
};
|
|
666
|
+
const stdinText = JSON.stringify({
|
|
667
|
+
tool_name: 'Bash',
|
|
668
|
+
tool_input: { command: 'cat ~/.ssh/id_rsa.pub' },
|
|
669
|
+
session_id: 'sess_approval_once',
|
|
670
|
+
});
|
|
671
|
+
const blocked = await (0, protect_js_1.protectAction)({ config, agentHost: 'codex', stdinText });
|
|
672
|
+
strict_1.default.equal(blocked?.decision.decision, 'require_approval');
|
|
673
|
+
const approved = (0, approvals_js_1.approvePendingApproval)(config.approvalStorePath, {
|
|
674
|
+
actionId: blocked.decision.actionId,
|
|
675
|
+
once: true,
|
|
676
|
+
});
|
|
677
|
+
strict_1.default.equal(approved.status, 'approved');
|
|
678
|
+
const allowedRetry = await (0, protect_js_1.protectAction)({ config, agentHost: 'codex', stdinText });
|
|
679
|
+
strict_1.default.equal(allowedRetry?.decision.decision, 'allow');
|
|
680
|
+
strict_1.default.equal(allowedRetry?.event.decision, 'allow');
|
|
681
|
+
strict_1.default.equal(allowedRetry?.event.metadata?.approvedByLocalGrant, true);
|
|
682
|
+
strict_1.default.match((0, node_fs_1.readFileSync)(config.auditPath, 'utf8'), /approvedByLocalGrant/);
|
|
683
|
+
const blockedAgain = await (0, protect_js_1.protectAction)({ config, agentHost: 'codex', stdinText });
|
|
684
|
+
strict_1.default.equal(blockedAgain?.decision.decision, 'require_approval');
|
|
685
|
+
});
|
|
686
|
+
(0, node_test_1.it)('does not collapse internal whitespace when fingerprinting approved actions', () => {
|
|
687
|
+
const base = {
|
|
688
|
+
sessionId: 'sess_fingerprint',
|
|
689
|
+
agentHost: 'codex',
|
|
690
|
+
actionType: 'shell',
|
|
691
|
+
toolName: 'Bash',
|
|
692
|
+
cwd: '/workspace',
|
|
693
|
+
};
|
|
694
|
+
strict_1.default.notEqual((0, approvals_js_1.actionFingerprint)({ ...base, input: 'printf "a b"' }), (0, approvals_js_1.actionFingerprint)({ ...base, input: 'printf "a b"' }));
|
|
695
|
+
});
|
|
290
696
|
(0, node_test_1.it)('formats Claude Code agent approval as a PreToolUse ask response', () => {
|
|
291
697
|
const result = {
|
|
292
698
|
policySource: 'cloud',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-cloud.test.js","sourceRoot":"","sources":["../../src/tests/runtime-cloud.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime-cloud.test.js","sourceRoot":"","sources":["../../src/tests/runtime-cloud.test.ts"],"names":[],"mappings":"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"}
|
package/docs/claude-code.md
CHANGED
|
@@ -36,6 +36,7 @@ Recommended matchers:
|
|
|
36
36
|
## Decisions
|
|
37
37
|
|
|
38
38
|
- `allow` and `warn` exit `0`
|
|
39
|
-
- `require_approval`
|
|
39
|
+
- `require_approval` is returned as Claude Code's native `ask` response when available
|
|
40
|
+
- `block` exits `2`
|
|
40
41
|
|
|
41
|
-
|
|
42
|
+
Cloud-connected runs still enforce locally. AgentGuard does not require a Cloud approval page for runtime confirmation.
|
package/docs/cloud-connect.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Connect AgentGuard OSS to AgentGuard Cloud
|
|
2
2
|
|
|
3
|
-
AgentGuard is local-first. Cloud is optional and adds hosted policy, redacted audit sync, session timelines
|
|
3
|
+
AgentGuard is local-first. Cloud is optional and adds hosted policy, redacted audit sync, and session timelines.
|
|
4
4
|
|
|
5
5
|
## Install and initialize
|
|
6
6
|
|
|
@@ -13,12 +13,25 @@ This creates `~/.agentguard/config.json`, `~/.agentguard/audit.jsonl`, and local
|
|
|
13
13
|
|
|
14
14
|
## Connect Cloud
|
|
15
15
|
|
|
16
|
+
OpenClaw users can connect without an API key after initialization:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
agentguard init --agent openclaw
|
|
20
|
+
agentguard connect
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
In this mode, `connect` registers a local Agent JWT, prints an activation link,
|
|
24
|
+
and may send that link to the latest OpenClaw channel. Open the link to bind the
|
|
25
|
+
local agent to your AgentGuard account.
|
|
26
|
+
|
|
27
|
+
API-key auth is also supported:
|
|
28
|
+
|
|
16
29
|
```bash
|
|
17
30
|
AGENTGUARD_API_KEY=ag_live_xxxxx \
|
|
18
31
|
agentguard connect --url https://agentguard.gopluslabs.io
|
|
19
32
|
```
|
|
20
33
|
|
|
21
|
-
`connect` stores the API key locally, fetches `/api/v1/policies/effective`, and caches the policy. If Cloud is unavailable, AgentGuard keeps enforcing with cached policy or the bundled default policy.
|
|
34
|
+
With API-key auth, `connect` stores the API key locally, fetches `/api/v1/policies/effective`, and caches the policy. With Agent JWT auth, `connect` stores the local agent credential instead of an API key. If Cloud is unavailable, AgentGuard keeps enforcing with cached policy or the bundled default policy.
|
|
22
35
|
|
|
23
36
|
Prefer `AGENTGUARD_API_KEY` or an ignored `.env.local` file over passing secrets as CLI flags, because shell history can persist command-line arguments.
|
|
24
37
|
|
|
@@ -28,7 +41,7 @@ Prefer `AGENTGUARD_API_KEY` or an ignored `.env.local` file over passing secrets
|
|
|
28
41
|
2. AgentGuard evaluates locally by default.
|
|
29
42
|
3. Local audit is written to `~/.agentguard/audit.jsonl`.
|
|
30
43
|
4. Connected clients sync redacted audit events to `/api/v1/events/ingest`.
|
|
31
|
-
5. `require_approval`
|
|
44
|
+
5. `require_approval` is handled by the agent host's native permission channel when one is available. If the host cannot safely resume an approved call, AgentGuard blocks locally and asks the user to retry only after intentionally changing local policy.
|
|
32
45
|
|
|
33
46
|
Use `AGENTGUARD_DECISION_MODE=cloud` or `agentguard protect --decision-mode cloud` only when Cloud should be authoritative for a specific hook.
|
|
34
47
|
|