@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.
Files changed (71) hide show
  1. package/README.md +6 -1
  2. package/dist/adapters/engine.d.ts.map +1 -1
  3. package/dist/adapters/engine.js +10 -0
  4. package/dist/adapters/engine.js.map +1 -1
  5. package/dist/adapters/openclaw-plugin.d.ts.map +1 -1
  6. package/dist/adapters/openclaw-plugin.js +24 -3
  7. package/dist/adapters/openclaw-plugin.js.map +1 -1
  8. package/dist/adapters/openclaw.d.ts.map +1 -1
  9. package/dist/adapters/openclaw.js +7 -2
  10. package/dist/adapters/openclaw.js.map +1 -1
  11. package/dist/cli.js +254 -72
  12. package/dist/cli.js.map +1 -1
  13. package/dist/config.d.ts +5 -0
  14. package/dist/config.d.ts.map +1 -1
  15. package/dist/config.js +13 -0
  16. package/dist/config.js.map +1 -1
  17. package/dist/feed/cron.d.ts +17 -0
  18. package/dist/feed/cron.d.ts.map +1 -1
  19. package/dist/feed/cron.js +197 -18
  20. package/dist/feed/cron.js.map +1 -1
  21. package/dist/feed/selfcheck.d.ts.map +1 -1
  22. package/dist/feed/selfcheck.js +205 -54
  23. package/dist/feed/selfcheck.js.map +1 -1
  24. package/dist/index.d.ts +1 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +7 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/installers.d.ts.map +1 -1
  29. package/dist/installers.js +91 -5
  30. package/dist/installers.js.map +1 -1
  31. package/dist/runtime/approvals.d.ts +38 -0
  32. package/dist/runtime/approvals.d.ts.map +1 -0
  33. package/dist/runtime/approvals.js +227 -0
  34. package/dist/runtime/approvals.js.map +1 -0
  35. package/dist/runtime/evaluator.d.ts.map +1 -1
  36. package/dist/runtime/evaluator.js +54 -0
  37. package/dist/runtime/evaluator.js.map +1 -1
  38. package/dist/runtime/protect.d.ts +2 -0
  39. package/dist/runtime/protect.d.ts.map +1 -1
  40. package/dist/runtime/protect.js +81 -9
  41. package/dist/runtime/protect.js.map +1 -1
  42. package/dist/runtime/self-command.d.ts +2 -0
  43. package/dist/runtime/self-command.d.ts.map +1 -0
  44. package/dist/runtime/self-command.js +93 -0
  45. package/dist/runtime/self-command.js.map +1 -0
  46. package/dist/tests/adapter.test.js +8 -0
  47. package/dist/tests/adapter.test.js.map +1 -1
  48. package/dist/tests/cli-connect.test.js +118 -1
  49. package/dist/tests/cli-connect.test.js.map +1 -1
  50. package/dist/tests/cli-init.test.js +123 -0
  51. package/dist/tests/cli-init.test.js.map +1 -1
  52. package/dist/tests/cli-subscribe.test.js +176 -0
  53. package/dist/tests/cli-subscribe.test.js.map +1 -1
  54. package/dist/tests/feed-cron.test.js +236 -0
  55. package/dist/tests/feed-cron.test.js.map +1 -1
  56. package/dist/tests/feed-selfcheck.test.js +81 -0
  57. package/dist/tests/feed-selfcheck.test.js.map +1 -1
  58. package/dist/tests/installer.test.js +78 -2
  59. package/dist/tests/installer.test.js.map +1 -1
  60. package/dist/tests/integration.test.js +64 -0
  61. package/dist/tests/integration.test.js.map +1 -1
  62. package/dist/tests/runtime-cloud.test.js +406 -0
  63. package/dist/tests/runtime-cloud.test.js.map +1 -1
  64. package/docs/claude-code.md +3 -2
  65. package/docs/cloud-connect.md +16 -3
  66. package/docs/cloud-native-api.md +26 -118
  67. package/docs/codex.md +13 -1
  68. package/docs/openclaw.md +32 -1
  69. package/docs/privacy-boundary.md +0 -1
  70. package/package.json +1 -1
  71. 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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"}
@@ -36,6 +36,7 @@ Recommended matchers:
36
36
  ## Decisions
37
37
 
38
38
  - `allow` and `warn` exit `0`
39
- - `require_approval` and `block` exit `2`
39
+ - `require_approval` is returned as Claude Code's native `ask` response when available
40
+ - `block` exits `2`
40
41
 
41
- Connected Cloud approvals print the approval id when creation succeeds.
42
+ Cloud-connected runs still enforce locally. AgentGuard does not require a Cloud approval page for runtime confirmation.
@@ -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, and approval workflows.
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` creates `/api/v1/approvals` and blocks the action until reviewed.
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