@red-codes/agentguard 1.0.0 → 1.1.1

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 (434) hide show
  1. package/dist/args.d.ts.map +1 -0
  2. package/dist/args.js.map +1 -0
  3. package/dist/bin.d.ts.map +1 -0
  4. package/dist/bin.js +29190 -0
  5. package/dist/bin.js.map +7 -0
  6. package/dist/colors.d.ts.map +1 -0
  7. package/dist/colors.js.map +1 -0
  8. package/dist/commands/adoption.d.ts +2 -0
  9. package/dist/commands/adoption.d.ts.map +1 -0
  10. package/dist/commands/adoption.js +172 -0
  11. package/dist/commands/adoption.js.map +1 -0
  12. package/dist/commands/analytics.d.ts +3 -0
  13. package/dist/commands/analytics.d.ts.map +1 -0
  14. package/dist/commands/analytics.js +7 -0
  15. package/dist/commands/analytics.js.map +1 -0
  16. package/dist/commands/audit-verify.d.ts +3 -0
  17. package/dist/commands/audit-verify.d.ts.map +1 -0
  18. package/dist/commands/audit-verify.js +94 -0
  19. package/dist/commands/audit-verify.js.map +1 -0
  20. package/dist/commands/auto-setup.d.ts +28 -0
  21. package/dist/commands/auto-setup.d.ts.map +1 -0
  22. package/dist/commands/auto-setup.js +146 -0
  23. package/dist/commands/auto-setup.js.map +1 -0
  24. package/dist/commands/ci-check.d.ts +13 -0
  25. package/dist/commands/ci-check.d.ts.map +1 -0
  26. package/dist/commands/ci-check.js +286 -0
  27. package/dist/commands/ci-check.js.map +1 -0
  28. package/dist/commands/claude-hook.d.ts +2 -0
  29. package/dist/commands/claude-hook.d.ts.map +1 -0
  30. package/dist/commands/claude-hook.js +254 -0
  31. package/dist/commands/claude-hook.js.map +1 -0
  32. package/dist/commands/claude-init.d.ts.map +1 -0
  33. package/dist/commands/claude-init.js +401 -0
  34. package/dist/commands/claude-init.js.map +1 -0
  35. package/dist/commands/config.d.ts +39 -0
  36. package/dist/commands/config.d.ts.map +1 -0
  37. package/dist/commands/config.js +368 -0
  38. package/dist/commands/config.js.map +1 -0
  39. package/dist/commands/demo.d.ts +2 -0
  40. package/dist/commands/demo.d.ts.map +1 -0
  41. package/dist/commands/demo.js +100 -0
  42. package/dist/commands/demo.js.map +1 -0
  43. package/dist/commands/diff.d.ts +3 -0
  44. package/dist/commands/diff.d.ts.map +1 -0
  45. package/dist/commands/diff.js +364 -0
  46. package/dist/commands/diff.js.map +1 -0
  47. package/dist/commands/evidence-pr.d.ts +3 -0
  48. package/dist/commands/evidence-pr.d.ts.map +1 -0
  49. package/dist/commands/evidence-pr.js +162 -0
  50. package/dist/commands/evidence-pr.js.map +1 -0
  51. package/dist/commands/export.d.ts +22 -0
  52. package/dist/commands/export.d.ts.map +1 -0
  53. package/dist/commands/export.js +92 -0
  54. package/dist/commands/export.js.map +1 -0
  55. package/dist/commands/guard.d.ts +21 -0
  56. package/dist/commands/guard.d.ts.map +1 -0
  57. package/dist/commands/guard.js +272 -0
  58. package/dist/commands/guard.js.map +1 -0
  59. package/dist/commands/import.d.ts +3 -0
  60. package/dist/commands/import.d.ts.map +1 -0
  61. package/dist/{cli/commands → commands}/import.js +25 -26
  62. package/dist/commands/import.js.map +1 -0
  63. package/dist/commands/init.d.ts +5 -0
  64. package/dist/commands/init.d.ts.map +1 -0
  65. package/dist/commands/init.js +1288 -0
  66. package/dist/commands/init.js.map +1 -0
  67. package/dist/commands/inspect.d.ts +4 -0
  68. package/dist/commands/inspect.d.ts.map +1 -0
  69. package/dist/{cli/commands → commands}/inspect.js +97 -70
  70. package/dist/commands/inspect.js.map +1 -0
  71. package/dist/commands/learn.d.ts +2 -0
  72. package/dist/commands/learn.d.ts.map +1 -0
  73. package/dist/commands/learn.js +264 -0
  74. package/dist/commands/learn.js.map +1 -0
  75. package/dist/commands/migrate.d.ts +3 -0
  76. package/dist/commands/migrate.d.ts.map +1 -0
  77. package/dist/commands/migrate.js +270 -0
  78. package/dist/commands/migrate.js.map +1 -0
  79. package/dist/commands/plugin.d.ts.map +1 -0
  80. package/dist/{cli/commands → commands}/plugin.js +2 -2
  81. package/dist/commands/plugin.js.map +1 -0
  82. package/dist/commands/policy-verify.d.ts +46 -0
  83. package/dist/commands/policy-verify.d.ts.map +1 -0
  84. package/dist/commands/policy-verify.js +173 -0
  85. package/dist/commands/policy-verify.js.map +1 -0
  86. package/dist/commands/policy.d.ts +27 -0
  87. package/dist/commands/policy.d.ts.map +1 -0
  88. package/dist/commands/policy.js +590 -0
  89. package/dist/commands/policy.js.map +1 -0
  90. package/dist/{cli/commands → commands}/replay.d.ts +2 -1
  91. package/dist/commands/replay.d.ts.map +1 -0
  92. package/dist/{cli/commands → commands}/replay.js +78 -12
  93. package/dist/commands/replay.js.map +1 -0
  94. package/dist/commands/session-viewer.d.ts +5 -0
  95. package/dist/commands/session-viewer.d.ts.map +1 -0
  96. package/dist/commands/session-viewer.js +462 -0
  97. package/dist/commands/session-viewer.js.map +1 -0
  98. package/dist/commands/simulate.d.ts +7 -0
  99. package/dist/commands/simulate.d.ts.map +1 -0
  100. package/dist/commands/simulate.js +505 -0
  101. package/dist/commands/simulate.js.map +1 -0
  102. package/dist/commands/status.d.ts +2 -0
  103. package/dist/commands/status.d.ts.map +1 -0
  104. package/dist/commands/status.js +212 -0
  105. package/dist/commands/status.js.map +1 -0
  106. package/dist/commands/traces.d.ts +24 -0
  107. package/dist/commands/traces.d.ts.map +1 -0
  108. package/dist/commands/traces.js +282 -0
  109. package/dist/commands/traces.js.map +1 -0
  110. package/dist/commands/trust.d.ts +6 -0
  111. package/dist/commands/trust.d.ts.map +1 -0
  112. package/dist/commands/trust.js +129 -0
  113. package/dist/commands/trust.js.map +1 -0
  114. package/dist/evidence-summary.d.ts +35 -0
  115. package/dist/evidence-summary.d.ts.map +1 -0
  116. package/dist/evidence-summary.js +202 -0
  117. package/dist/evidence-summary.js.map +1 -0
  118. package/dist/{cli/file-event-store.d.ts → file-event-store.d.ts} +1 -1
  119. package/dist/file-event-store.d.ts.map +1 -0
  120. package/dist/{cli/file-event-store.js → file-event-store.js} +1 -1
  121. package/dist/file-event-store.js.map +1 -0
  122. package/{hooks → dist/hooks}/post-commit +3 -1
  123. package/{hooks → dist/hooks}/post-merge +3 -1
  124. package/dist/hooks/pre-commit +29 -0
  125. package/dist/policy-resolver.d.ts +32 -0
  126. package/dist/policy-resolver.d.ts.map +1 -0
  127. package/dist/policy-resolver.js +171 -0
  128. package/dist/policy-resolver.js.map +1 -0
  129. package/dist/{cli/recorder.d.ts → recorder.d.ts} +1 -1
  130. package/dist/recorder.d.ts.map +1 -0
  131. package/dist/{cli/recorder.js → recorder.js} +1 -1
  132. package/dist/recorder.js.map +1 -0
  133. package/dist/replay-timeline-html.d.ts +21 -0
  134. package/dist/replay-timeline-html.d.ts.map +1 -0
  135. package/dist/replay-timeline-html.js +414 -0
  136. package/dist/replay-timeline-html.js.map +1 -0
  137. package/dist/replay.d.ts.map +1 -0
  138. package/dist/{cli/replay.js → replay.js} +92 -1
  139. package/dist/replay.js.map +1 -0
  140. package/dist/{cli/session-store.d.ts → session-store.d.ts} +5 -0
  141. package/dist/session-store.d.ts.map +1 -0
  142. package/dist/{cli/session-store.js → session-store.js} +1 -0
  143. package/dist/session-store.js.map +1 -0
  144. package/dist/session-viewer-html.d.ts +10 -0
  145. package/dist/session-viewer-html.d.ts.map +1 -0
  146. package/dist/session-viewer-html.js +737 -0
  147. package/dist/session-viewer-html.js.map +1 -0
  148. package/dist/templates/ci-only.yaml +103 -0
  149. package/dist/templates/development.yaml +107 -0
  150. package/dist/templates/permissive.yaml +87 -0
  151. package/dist/templates/strict.yaml +112 -0
  152. package/dist/tui.d.ts +3 -0
  153. package/dist/tui.d.ts.map +1 -0
  154. package/dist/tui.js +2 -0
  155. package/dist/tui.js.map +1 -0
  156. package/package.json +42 -53
  157. package/README.md +0 -298
  158. package/dist/adapters/claude-code.d.ts +0 -24
  159. package/dist/adapters/claude-code.d.ts.map +0 -1
  160. package/dist/adapters/claude-code.js +0 -99
  161. package/dist/adapters/claude-code.js.map +0 -1
  162. package/dist/adapters/file.d.ts +0 -3
  163. package/dist/adapters/file.d.ts.map +0 -1
  164. package/dist/adapters/file.js +0 -35
  165. package/dist/adapters/file.js.map +0 -1
  166. package/dist/adapters/git.d.ts +0 -3
  167. package/dist/adapters/git.d.ts.map +0 -1
  168. package/dist/adapters/git.js +0 -61
  169. package/dist/adapters/git.js.map +0 -1
  170. package/dist/adapters/registry.d.ts +0 -5
  171. package/dist/adapters/registry.d.ts.map +0 -1
  172. package/dist/adapters/registry.js +0 -15
  173. package/dist/adapters/registry.js.map +0 -1
  174. package/dist/adapters/shell.d.ts +0 -8
  175. package/dist/adapters/shell.d.ts.map +0 -1
  176. package/dist/adapters/shell.js +0 -27
  177. package/dist/adapters/shell.js.map +0 -1
  178. package/dist/cli/args.d.ts.map +0 -1
  179. package/dist/cli/args.js.map +0 -1
  180. package/dist/cli/bin.d.ts.map +0 -1
  181. package/dist/cli/bin.js +0 -5769
  182. package/dist/cli/bin.js.map +0 -7
  183. package/dist/cli/colors.d.ts.map +0 -1
  184. package/dist/cli/colors.js.map +0 -1
  185. package/dist/cli/commands/claude-hook.d.ts +0 -2
  186. package/dist/cli/commands/claude-hook.d.ts.map +0 -1
  187. package/dist/cli/commands/claude-hook.js +0 -110
  188. package/dist/cli/commands/claude-hook.js.map +0 -1
  189. package/dist/cli/commands/claude-init.d.ts.map +0 -1
  190. package/dist/cli/commands/claude-init.js +0 -150
  191. package/dist/cli/commands/claude-init.js.map +0 -1
  192. package/dist/cli/commands/export.d.ts +0 -11
  193. package/dist/cli/commands/export.d.ts.map +0 -1
  194. package/dist/cli/commands/export.js +0 -113
  195. package/dist/cli/commands/export.js.map +0 -1
  196. package/dist/cli/commands/guard.d.ts +0 -12
  197. package/dist/cli/commands/guard.d.ts.map +0 -1
  198. package/dist/cli/commands/guard.js +0 -145
  199. package/dist/cli/commands/guard.js.map +0 -1
  200. package/dist/cli/commands/import.d.ts +0 -2
  201. package/dist/cli/commands/import.d.ts.map +0 -1
  202. package/dist/cli/commands/import.js.map +0 -1
  203. package/dist/cli/commands/inspect.d.ts +0 -3
  204. package/dist/cli/commands/inspect.d.ts.map +0 -1
  205. package/dist/cli/commands/inspect.js.map +0 -1
  206. package/dist/cli/commands/plugin.d.ts.map +0 -1
  207. package/dist/cli/commands/plugin.js.map +0 -1
  208. package/dist/cli/commands/replay.d.ts.map +0 -1
  209. package/dist/cli/commands/replay.js.map +0 -1
  210. package/dist/cli/file-event-store.d.ts.map +0 -1
  211. package/dist/cli/file-event-store.js.map +0 -1
  212. package/dist/cli/policy-resolver.d.ts +0 -4
  213. package/dist/cli/policy-resolver.d.ts.map +0 -1
  214. package/dist/cli/policy-resolver.js +0 -62
  215. package/dist/cli/policy-resolver.js.map +0 -1
  216. package/dist/cli/recorder.d.ts.map +0 -1
  217. package/dist/cli/recorder.js.map +0 -1
  218. package/dist/cli/replay.d.ts.map +0 -1
  219. package/dist/cli/replay.js.map +0 -1
  220. package/dist/cli/session-store.d.ts.map +0 -1
  221. package/dist/cli/session-store.js.map +0 -1
  222. package/dist/cli/tui.d.ts +0 -24
  223. package/dist/cli/tui.d.ts.map +0 -1
  224. package/dist/cli/tui.js +0 -197
  225. package/dist/cli/tui.js.map +0 -1
  226. package/dist/core/actions.d.ts +0 -11
  227. package/dist/core/actions.d.ts.map +0 -1
  228. package/dist/core/actions.js +0 -112
  229. package/dist/core/actions.js.map +0 -1
  230. package/dist/core/adapters.d.ts +0 -19
  231. package/dist/core/adapters.d.ts.map +0 -1
  232. package/dist/core/adapters.js +0 -85
  233. package/dist/core/adapters.js.map +0 -1
  234. package/dist/core/execution-log/bridge.d.ts +0 -12
  235. package/dist/core/execution-log/bridge.d.ts.map +0 -1
  236. package/dist/core/execution-log/bridge.js +0 -112
  237. package/dist/core/execution-log/bridge.js.map +0 -1
  238. package/dist/core/execution-log/event-log.d.ts +0 -7
  239. package/dist/core/execution-log/event-log.d.ts.map +0 -1
  240. package/dist/core/execution-log/event-log.js +0 -103
  241. package/dist/core/execution-log/event-log.js.map +0 -1
  242. package/dist/core/execution-log/event-projections.d.ts +0 -28
  243. package/dist/core/execution-log/event-projections.d.ts.map +0 -1
  244. package/dist/core/execution-log/event-projections.js +0 -272
  245. package/dist/core/execution-log/event-projections.js.map +0 -1
  246. package/dist/core/execution-log/event-schema.d.ts +0 -56
  247. package/dist/core/execution-log/event-schema.d.ts.map +0 -1
  248. package/dist/core/execution-log/event-schema.js +0 -160
  249. package/dist/core/execution-log/event-schema.js.map +0 -1
  250. package/dist/core/execution-log/index.d.ts +0 -7
  251. package/dist/core/execution-log/index.d.ts.map +0 -1
  252. package/dist/core/execution-log/index.js +0 -13
  253. package/dist/core/execution-log/index.js.map +0 -1
  254. package/dist/core/hash.d.ts +0 -5
  255. package/dist/core/hash.d.ts.map +0 -1
  256. package/dist/core/hash.js +0 -13
  257. package/dist/core/hash.js.map +0 -1
  258. package/dist/core/rng.d.ts +0 -29
  259. package/dist/core/rng.d.ts.map +0 -1
  260. package/dist/core/rng.js +0 -48
  261. package/dist/core/rng.js.map +0 -1
  262. package/dist/core/types.d.ts +0 -746
  263. package/dist/core/types.d.ts.map +0 -1
  264. package/dist/core/types.js +0 -8
  265. package/dist/core/types.js.map +0 -1
  266. package/dist/events/bus.d.ts +0 -24
  267. package/dist/events/bus.d.ts.map +0 -1
  268. package/dist/events/bus.js +0 -64
  269. package/dist/events/bus.js.map +0 -1
  270. package/dist/events/decision-jsonl.d.ts +0 -8
  271. package/dist/events/decision-jsonl.d.ts.map +0 -1
  272. package/dist/events/decision-jsonl.js +0 -44
  273. package/dist/events/decision-jsonl.js.map +0 -1
  274. package/dist/events/jsonl.d.ts +0 -8
  275. package/dist/events/jsonl.d.ts.map +0 -1
  276. package/dist/events/jsonl.js +0 -46
  277. package/dist/events/jsonl.js.map +0 -1
  278. package/dist/events/schema.d.ts +0 -59
  279. package/dist/events/schema.d.ts.map +0 -1
  280. package/dist/events/schema.js +0 -296
  281. package/dist/events/schema.js.map +0 -1
  282. package/dist/events/store.d.ts +0 -7
  283. package/dist/events/store.d.ts.map +0 -1
  284. package/dist/events/store.js +0 -64
  285. package/dist/events/store.js.map +0 -1
  286. package/dist/invariants/checker.d.ts +0 -15
  287. package/dist/invariants/checker.d.ts.map +0 -1
  288. package/dist/invariants/checker.js +0 -52
  289. package/dist/invariants/checker.js.map +0 -1
  290. package/dist/invariants/definitions.d.ts +0 -33
  291. package/dist/invariants/definitions.d.ts.map +0 -1
  292. package/dist/invariants/definitions.js +0 -168
  293. package/dist/invariants/definitions.js.map +0 -1
  294. package/dist/kernel/aab.d.ts +0 -26
  295. package/dist/kernel/aab.d.ts.map +0 -1
  296. package/dist/kernel/aab.js +0 -149
  297. package/dist/kernel/aab.js.map +0 -1
  298. package/dist/kernel/blast-radius.d.ts +0 -60
  299. package/dist/kernel/blast-radius.d.ts.map +0 -1
  300. package/dist/kernel/blast-radius.js +0 -146
  301. package/dist/kernel/blast-radius.js.map +0 -1
  302. package/dist/kernel/decision.d.ts +0 -40
  303. package/dist/kernel/decision.d.ts.map +0 -1
  304. package/dist/kernel/decision.js +0 -92
  305. package/dist/kernel/decision.js.map +0 -1
  306. package/dist/kernel/decisions/factory.d.ts +0 -12
  307. package/dist/kernel/decisions/factory.d.ts.map +0 -1
  308. package/dist/kernel/decisions/factory.js +0 -56
  309. package/dist/kernel/decisions/factory.js.map +0 -1
  310. package/dist/kernel/decisions/types.d.ts +0 -70
  311. package/dist/kernel/decisions/types.d.ts.map +0 -1
  312. package/dist/kernel/decisions/types.js +0 -5
  313. package/dist/kernel/decisions/types.js.map +0 -1
  314. package/dist/kernel/evidence.d.ts +0 -29
  315. package/dist/kernel/evidence.d.ts.map +0 -1
  316. package/dist/kernel/evidence.js +0 -61
  317. package/dist/kernel/evidence.js.map +0 -1
  318. package/dist/kernel/kernel.d.ts +0 -47
  319. package/dist/kernel/kernel.d.ts.map +0 -1
  320. package/dist/kernel/kernel.js +0 -377
  321. package/dist/kernel/kernel.js.map +0 -1
  322. package/dist/kernel/monitor.d.ts +0 -35
  323. package/dist/kernel/monitor.d.ts.map +0 -1
  324. package/dist/kernel/monitor.js +0 -144
  325. package/dist/kernel/monitor.js.map +0 -1
  326. package/dist/kernel/replay-comparator.d.ts +0 -72
  327. package/dist/kernel/replay-comparator.d.ts.map +0 -1
  328. package/dist/kernel/replay-comparator.js +0 -251
  329. package/dist/kernel/replay-comparator.js.map +0 -1
  330. package/dist/kernel/replay-engine.d.ts +0 -108
  331. package/dist/kernel/replay-engine.d.ts.map +0 -1
  332. package/dist/kernel/replay-engine.js +0 -241
  333. package/dist/kernel/replay-engine.js.map +0 -1
  334. package/dist/kernel/replay-processor.d.ts +0 -109
  335. package/dist/kernel/replay-processor.d.ts.map +0 -1
  336. package/dist/kernel/replay-processor.js +0 -118
  337. package/dist/kernel/replay-processor.js.map +0 -1
  338. package/dist/kernel/simulation/filesystem-simulator.d.ts +0 -3
  339. package/dist/kernel/simulation/filesystem-simulator.d.ts.map +0 -1
  340. package/dist/kernel/simulation/filesystem-simulator.js +0 -81
  341. package/dist/kernel/simulation/filesystem-simulator.js.map +0 -1
  342. package/dist/kernel/simulation/git-simulator.d.ts +0 -5
  343. package/dist/kernel/simulation/git-simulator.d.ts.map +0 -1
  344. package/dist/kernel/simulation/git-simulator.js +0 -115
  345. package/dist/kernel/simulation/git-simulator.js.map +0 -1
  346. package/dist/kernel/simulation/package-simulator.d.ts +0 -5
  347. package/dist/kernel/simulation/package-simulator.d.ts.map +0 -1
  348. package/dist/kernel/simulation/package-simulator.js +0 -164
  349. package/dist/kernel/simulation/package-simulator.js.map +0 -1
  350. package/dist/kernel/simulation/registry.d.ts +0 -3
  351. package/dist/kernel/simulation/registry.d.ts.map +0 -1
  352. package/dist/kernel/simulation/registry.js +0 -24
  353. package/dist/kernel/simulation/registry.js.map +0 -1
  354. package/dist/kernel/simulation/types.d.ts +0 -35
  355. package/dist/kernel/simulation/types.d.ts.map +0 -1
  356. package/dist/kernel/simulation/types.js +0 -4
  357. package/dist/kernel/simulation/types.js.map +0 -1
  358. package/dist/plugins/discovery.d.ts +0 -45
  359. package/dist/plugins/discovery.d.ts.map +0 -1
  360. package/dist/plugins/discovery.js +0 -89
  361. package/dist/plugins/discovery.js.map +0 -1
  362. package/dist/plugins/index.d.ts +0 -10
  363. package/dist/plugins/index.d.ts.map +0 -1
  364. package/dist/plugins/index.js +0 -7
  365. package/dist/plugins/index.js.map +0 -1
  366. package/dist/plugins/registry.d.ts +0 -52
  367. package/dist/plugins/registry.d.ts.map +0 -1
  368. package/dist/plugins/registry.js +0 -148
  369. package/dist/plugins/registry.js.map +0 -1
  370. package/dist/plugins/sandbox.d.ts +0 -87
  371. package/dist/plugins/sandbox.d.ts.map +0 -1
  372. package/dist/plugins/sandbox.js +0 -122
  373. package/dist/plugins/sandbox.js.map +0 -1
  374. package/dist/plugins/types.d.ts +0 -61
  375. package/dist/plugins/types.d.ts.map +0 -1
  376. package/dist/plugins/types.js +0 -16
  377. package/dist/plugins/types.js.map +0 -1
  378. package/dist/plugins/validator.d.ts +0 -36
  379. package/dist/plugins/validator.d.ts.map +0 -1
  380. package/dist/plugins/validator.js +0 -276
  381. package/dist/plugins/validator.js.map +0 -1
  382. package/dist/policy/evaluator.d.ts +0 -41
  383. package/dist/policy/evaluator.d.ts.map +0 -1
  384. package/dist/policy/evaluator.js +0 -111
  385. package/dist/policy/evaluator.js.map +0 -1
  386. package/dist/policy/loader.d.ts +0 -13
  387. package/dist/policy/loader.d.ts.map +0 -1
  388. package/dist/policy/loader.js +0 -118
  389. package/dist/policy/loader.js.map +0 -1
  390. package/dist/policy/pack-loader.d.ts +0 -40
  391. package/dist/policy/pack-loader.d.ts.map +0 -1
  392. package/dist/policy/pack-loader.js +0 -138
  393. package/dist/policy/pack-loader.js.map +0 -1
  394. package/dist/policy/yaml-loader.d.ts +0 -23
  395. package/dist/policy/yaml-loader.d.ts.map +0 -1
  396. package/dist/policy/yaml-loader.js +0 -222
  397. package/dist/policy/yaml-loader.js.map +0 -1
  398. package/dist/renderers/index.d.ts +0 -6
  399. package/dist/renderers/index.d.ts.map +0 -1
  400. package/dist/renderers/index.js +0 -4
  401. package/dist/renderers/index.js.map +0 -1
  402. package/dist/renderers/registry.d.ts +0 -39
  403. package/dist/renderers/registry.d.ts.map +0 -1
  404. package/dist/renderers/registry.js +0 -97
  405. package/dist/renderers/registry.js.map +0 -1
  406. package/dist/renderers/tui-renderer.d.ts +0 -18
  407. package/dist/renderers/tui-renderer.d.ts.map +0 -1
  408. package/dist/renderers/tui-renderer.js +0 -57
  409. package/dist/renderers/tui-renderer.js.map +0 -1
  410. package/dist/renderers/types.d.ts +0 -52
  411. package/dist/renderers/types.d.ts.map +0 -1
  412. package/dist/renderers/types.js +0 -4
  413. package/dist/renderers/types.js.map +0 -1
  414. package/dist/telemetry/index.d.ts +0 -3
  415. package/dist/telemetry/index.d.ts.map +0 -1
  416. package/dist/telemetry/index.js +0 -2
  417. package/dist/telemetry/index.js.map +0 -1
  418. package/dist/telemetry/runtimeLogger.d.ts +0 -9
  419. package/dist/telemetry/runtimeLogger.d.ts.map +0 -1
  420. package/dist/telemetry/runtimeLogger.js +0 -68
  421. package/dist/telemetry/runtimeLogger.js.map +0 -1
  422. package/dist/telemetry/types.d.ts +0 -22
  423. package/dist/telemetry/types.d.ts.map +0 -1
  424. package/dist/telemetry/types.js +0 -4
  425. package/dist/telemetry/types.js.map +0 -1
  426. package/hooks/pre-commit +0 -28
  427. /package/dist/{cli/args.d.ts → args.d.ts} +0 -0
  428. /package/dist/{cli/args.js → args.js} +0 -0
  429. /package/dist/{cli/bin.d.ts → bin.d.ts} +0 -0
  430. /package/dist/{cli/colors.d.ts → colors.d.ts} +0 -0
  431. /package/dist/{cli/colors.js → colors.js} +0 -0
  432. /package/dist/{cli/commands → commands}/claude-init.d.ts +0 -0
  433. /package/dist/{cli/commands → commands}/plugin.d.ts +0 -0
  434. /package/dist/{cli/replay.d.ts → replay.d.ts} +0 -0
@@ -0,0 +1,590 @@
1
+ // CLI command: agentguard policy — policy management tools.
2
+ //
3
+ // Subcommands:
4
+ // validate <file> Validate a policy file without starting the runtime
5
+ // suggest Suggest policy rules based on violation patterns
6
+ // verify <file> Verify a policy change resolves historical violations
7
+ import { readFileSync, existsSync } from 'node:fs';
8
+ import { resolve } from 'node:path';
9
+ import { parseArgs } from '../args.js';
10
+ import { bold, color, dim } from '../colors.js';
11
+ import { validatePolicy, VALID_ACTIONS } from '@red-codes/policy';
12
+ import { parseYamlPolicy } from '@red-codes/policy';
13
+ import { ACTION_TYPES } from '@red-codes/core';
14
+ import { verifyPolicyFix } from './policy-verify.js';
15
+ // ---------------------------------------------------------------------------
16
+ // Validation Logic
17
+ // ---------------------------------------------------------------------------
18
+ /**
19
+ * Parse a policy file (YAML or JSON) and return the raw parsed object.
20
+ * Returns null and an error message if parsing fails.
21
+ */
22
+ function parseFile(filePath, content) {
23
+ if (filePath.endsWith('.yaml') || filePath.endsWith('.yml')) {
24
+ try {
25
+ const def = parseYamlPolicy(content);
26
+ // Convert YamlPolicyDef to a generic record for validatePolicy
27
+ const record = {};
28
+ if (def.id)
29
+ record.id = def.id;
30
+ if (def.name)
31
+ record.name = def.name;
32
+ if (def.description)
33
+ record.description = def.description;
34
+ if (def.severity !== undefined)
35
+ record.severity = def.severity;
36
+ if (def.extends)
37
+ record.extends = def.extends;
38
+ if (def.rules) {
39
+ record.rules = def.rules.map((r) => {
40
+ const rule = {};
41
+ if (r.action)
42
+ rule.action = r.action;
43
+ if (r.effect)
44
+ rule.effect = r.effect;
45
+ if (r.target)
46
+ rule.conditions = { scope: [r.target] };
47
+ if (r.branches) {
48
+ rule.conditions = { ...rule.conditions, branches: r.branches };
49
+ }
50
+ if (r.limit !== undefined) {
51
+ rule.conditions = { ...rule.conditions, limit: r.limit };
52
+ }
53
+ if (r.requireTests !== undefined) {
54
+ rule.conditions = { ...rule.conditions, requireTests: r.requireTests };
55
+ }
56
+ if (r.requireFormat !== undefined) {
57
+ rule.conditions = { ...rule.conditions, requireFormat: r.requireFormat };
58
+ }
59
+ if (r.reason)
60
+ rule.reason = r.reason;
61
+ return rule;
62
+ });
63
+ }
64
+ return { parsed: record, error: null };
65
+ }
66
+ catch (e) {
67
+ return {
68
+ parsed: {},
69
+ error: `YAML parse error: ${e instanceof Error ? e.message : String(e)}`,
70
+ };
71
+ }
72
+ }
73
+ try {
74
+ const parsed = JSON.parse(content);
75
+ if (typeof parsed !== 'object' || parsed === null) {
76
+ return { parsed: {}, error: 'JSON root must be an object' };
77
+ }
78
+ return { parsed, error: null };
79
+ }
80
+ catch (e) {
81
+ return {
82
+ parsed: {},
83
+ error: `JSON parse error: ${e instanceof Error ? e.message : String(e)}`,
84
+ };
85
+ }
86
+ }
87
+ /**
88
+ * Run strict-mode checks — best practice recommendations that go beyond
89
+ * basic structural validation.
90
+ */
91
+ function strictChecks(parsed) {
92
+ const warnings = [];
93
+ const info = [];
94
+ const rules = parsed.rules;
95
+ if (!Array.isArray(rules))
96
+ return { warnings, info };
97
+ // Check for unrecognized action patterns against both policy VALID_ACTIONS
98
+ // and the canonical ACTION_TYPES registry from src/core/actions.ts
99
+ for (let i = 0; i < rules.length; i++) {
100
+ const rule = rules[i];
101
+ const actions = Array.isArray(rule.action) ? rule.action : [rule.action];
102
+ for (const action of actions) {
103
+ if (typeof action === 'string' && action !== '*' && !action.endsWith('.*')) {
104
+ if (!VALID_ACTIONS.has(action) && !ACTION_TYPES[action]) {
105
+ warnings.push({
106
+ level: 'warning',
107
+ message: `Unrecognized action "${action}" — not found in canonical action registry or policy actions`,
108
+ rule: i,
109
+ });
110
+ }
111
+ }
112
+ }
113
+ }
114
+ // Check for rule conflicts: same action pattern with both allow and deny rules
115
+ const actionEffects = new Map();
116
+ for (let i = 0; i < rules.length; i++) {
117
+ const rule = rules[i];
118
+ const actions = Array.isArray(rule.action) ? rule.action : [rule.action];
119
+ const effect = rule.effect;
120
+ if (effect !== 'allow' && effect !== 'deny')
121
+ continue;
122
+ for (const action of actions) {
123
+ if (typeof action !== 'string')
124
+ continue;
125
+ let entry = actionEffects.get(action);
126
+ if (!entry) {
127
+ entry = { allow: [], deny: [] };
128
+ actionEffects.set(action, entry);
129
+ }
130
+ entry[effect].push(i);
131
+ }
132
+ }
133
+ for (const [action, effects] of actionEffects) {
134
+ if (effects.allow.length > 0 && effects.deny.length > 0) {
135
+ warnings.push({
136
+ level: 'warning',
137
+ message: `Conflicting rules for "${action}": deny in rules [${effects.deny.join(', ')}] and allow in rules [${effects.allow.join(', ')}] — deny rules take precedence`,
138
+ });
139
+ }
140
+ }
141
+ // Check for missing description
142
+ if (!parsed.description) {
143
+ info.push({
144
+ level: 'info',
145
+ message: 'Policy has no description — consider adding one for documentation',
146
+ });
147
+ }
148
+ // Check if there are no deny rules
149
+ const hasDenyRule = rules.some((r) => r.effect === 'deny');
150
+ if (!hasDenyRule) {
151
+ warnings.push({
152
+ level: 'warning',
153
+ message: 'Policy has no deny rules — all actions will be allowed',
154
+ });
155
+ }
156
+ // Check for overlapping rules (same action + effect appearing multiple times)
157
+ const ruleSignatures = new Map();
158
+ for (let i = 0; i < rules.length; i++) {
159
+ const rule = rules[i];
160
+ const actions = Array.isArray(rule.action) ? rule.action : [rule.action];
161
+ for (const action of actions) {
162
+ const sig = `${action}:${rule.effect}`;
163
+ const existing = ruleSignatures.get(sig);
164
+ if (existing) {
165
+ existing.push(i);
166
+ }
167
+ else {
168
+ ruleSignatures.set(sig, [i]);
169
+ }
170
+ }
171
+ }
172
+ for (const [sig, indices] of ruleSignatures) {
173
+ if (indices.length > 1) {
174
+ const [action, effect] = sig.split(':');
175
+ info.push({
176
+ level: 'info',
177
+ message: `Multiple ${effect} rules for "${action}" (rules ${indices.join(', ')}) — later rules may be unreachable`,
178
+ });
179
+ }
180
+ }
181
+ // Check for deny-then-allow on the same action (potential shadow)
182
+ for (let i = 0; i < rules.length; i++) {
183
+ const rule = rules[i];
184
+ if (rule.effect !== 'allow')
185
+ continue;
186
+ const allowActions = Array.isArray(rule.action) ? rule.action : [rule.action];
187
+ for (const action of allowActions) {
188
+ // Check if a broader deny rule exists (e.g., deny on * or on action.*)
189
+ for (let j = 0; j < rules.length; j++) {
190
+ if (j === i)
191
+ continue;
192
+ const other = rules[j];
193
+ if (other.effect !== 'deny')
194
+ continue;
195
+ const denyActions = Array.isArray(other.action) ? other.action : [other.action];
196
+ for (const denyAction of denyActions) {
197
+ if (denyAction === '*' && typeof action === 'string') {
198
+ // Wildcard deny blocks everything — allow rule creates an exception
199
+ info.push({
200
+ level: 'info',
201
+ message: `Rule ${i} (allow "${action}") creates an exception to rule ${j} (deny "*")`,
202
+ rule: i,
203
+ });
204
+ }
205
+ }
206
+ }
207
+ }
208
+ }
209
+ return { warnings, info };
210
+ }
211
+ /**
212
+ * Validate a policy file and return structured results.
213
+ */
214
+ export function validatePolicyFile(filePath) {
215
+ const errors = [];
216
+ const warnings = [];
217
+ const info = [];
218
+ const absPath = resolve(filePath);
219
+ if (!existsSync(absPath)) {
220
+ return {
221
+ file: filePath,
222
+ valid: false,
223
+ errors: [{ level: 'error', message: `File not found: ${absPath}` }],
224
+ warnings: [],
225
+ info: [],
226
+ ruleCount: 0,
227
+ };
228
+ }
229
+ let content;
230
+ try {
231
+ content = readFileSync(absPath, 'utf8');
232
+ }
233
+ catch (e) {
234
+ return {
235
+ file: filePath,
236
+ valid: false,
237
+ errors: [
238
+ {
239
+ level: 'error',
240
+ message: `Cannot read file: ${e instanceof Error ? e.message : String(e)}`,
241
+ },
242
+ ],
243
+ warnings: [],
244
+ info: [],
245
+ ruleCount: 0,
246
+ };
247
+ }
248
+ if (!content.trim()) {
249
+ return {
250
+ file: filePath,
251
+ valid: false,
252
+ errors: [{ level: 'error', message: 'File is empty' }],
253
+ warnings: [],
254
+ info: [],
255
+ ruleCount: 0,
256
+ };
257
+ }
258
+ // Step 1: Parse
259
+ const { parsed, error: parseError } = parseFile(absPath, content);
260
+ if (parseError) {
261
+ return {
262
+ file: filePath,
263
+ valid: false,
264
+ errors: [{ level: 'error', message: parseError }],
265
+ warnings: [],
266
+ info: [],
267
+ ruleCount: 0,
268
+ };
269
+ }
270
+ // Step 2: Structural validation using existing validatePolicy
271
+ const result = validatePolicy(parsed);
272
+ if (!result.valid) {
273
+ for (const err of result.errors) {
274
+ errors.push({ level: 'error', message: err });
275
+ }
276
+ }
277
+ const ruleCount = Array.isArray(parsed.rules) ? parsed.rules.length : 0;
278
+ return {
279
+ file: filePath,
280
+ valid: errors.length === 0,
281
+ errors,
282
+ warnings,
283
+ info,
284
+ ruleCount,
285
+ };
286
+ }
287
+ /**
288
+ * Validate a policy file with optional strict checks.
289
+ */
290
+ export function validatePolicyFileStrict(filePath, strict) {
291
+ const result = validatePolicyFile(filePath);
292
+ if (!result.valid || !strict)
293
+ return result;
294
+ // Run strict checks on the parsed content
295
+ const absPath = resolve(filePath);
296
+ const content = readFileSync(absPath, 'utf8');
297
+ const { parsed } = parseFile(absPath, content);
298
+ const { warnings, info } = strictChecks(parsed);
299
+ return {
300
+ ...result,
301
+ warnings: [...result.warnings, ...warnings],
302
+ info: [...result.info, ...info],
303
+ };
304
+ }
305
+ // ---------------------------------------------------------------------------
306
+ // Output Formatting
307
+ // ---------------------------------------------------------------------------
308
+ function formatTerminalResult(result) {
309
+ const lines = [];
310
+ const icon = result.valid ? color('\u2713', 'green') : color('\u2717', 'red');
311
+ const verdict = result.valid ? color('VALID', 'green') : color('INVALID', 'red');
312
+ lines.push('');
313
+ lines.push(` ${icon} Policy Validation — ${verdict}`);
314
+ lines.push(` File: ${dim(result.file)}`);
315
+ lines.push(` Rules: ${result.ruleCount}`);
316
+ if (result.errors.length > 0) {
317
+ lines.push('');
318
+ lines.push(` ${color('Errors:', 'red')}`);
319
+ for (const issue of result.errors) {
320
+ const ruleRef = issue.rule !== undefined ? ` ${dim(`(rule ${issue.rule})`)}` : '';
321
+ lines.push(` ${color('\u2717', 'red')} ${issue.message}${ruleRef}`);
322
+ }
323
+ }
324
+ if (result.warnings.length > 0) {
325
+ lines.push('');
326
+ lines.push(` ${color('Warnings:', 'yellow')}`);
327
+ for (const issue of result.warnings) {
328
+ const ruleRef = issue.rule !== undefined ? ` ${dim(`(rule ${issue.rule})`)}` : '';
329
+ lines.push(` ${color('!', 'yellow')} ${issue.message}${ruleRef}`);
330
+ }
331
+ }
332
+ if (result.info.length > 0) {
333
+ lines.push('');
334
+ lines.push(` ${color('Info:', 'cyan')}`);
335
+ for (const issue of result.info) {
336
+ const ruleRef = issue.rule !== undefined ? ` ${dim(`(rule ${issue.rule})`)}` : '';
337
+ lines.push(` ${color('\u2139', 'cyan')} ${issue.message}${ruleRef}`);
338
+ }
339
+ }
340
+ lines.push('');
341
+ return lines.join('\n');
342
+ }
343
+ // ---------------------------------------------------------------------------
344
+ // Subcommand: validate
345
+ // ---------------------------------------------------------------------------
346
+ async function policyValidate(args) {
347
+ const parsed = parseArgs(args, {
348
+ boolean: ['--json', '--strict', '--verify'],
349
+ string: ['--dir', '-d'],
350
+ alias: { '-d': '--dir' },
351
+ });
352
+ const jsonOutput = !!parsed.flags.json;
353
+ const strict = !!parsed.flags.strict;
354
+ const verify = !!parsed.flags.verify;
355
+ const baseDir = parsed.flags.dir ?? '.agentguard';
356
+ const filePath = parsed.positional[0];
357
+ if (!filePath) {
358
+ process.stderr.write('\n Usage: agentguard policy validate <file> [flags]\n');
359
+ process.stderr.write('\n Flags:\n');
360
+ process.stderr.write(' --json Output as JSON\n');
361
+ process.stderr.write(' --strict Include best-practice recommendations\n');
362
+ process.stderr.write(' --verify Verify policy resolves historical violations\n');
363
+ process.stderr.write(' --dir, -d Base directory for session data (default: .agentguard)\n\n');
364
+ return 1;
365
+ }
366
+ const result = validatePolicyFileStrict(filePath, strict);
367
+ if (jsonOutput && !verify) {
368
+ process.stdout.write(JSON.stringify(result, null, 2) + '\n');
369
+ }
370
+ else if (!verify) {
371
+ process.stderr.write(formatTerminalResult(result));
372
+ }
373
+ if (!result.valid) {
374
+ if (verify && jsonOutput) {
375
+ process.stdout.write(JSON.stringify(result, null, 2) + '\n');
376
+ }
377
+ else if (verify) {
378
+ process.stderr.write(formatTerminalResult(result));
379
+ }
380
+ return 1;
381
+ }
382
+ // If --verify, run fix verification after successful validation
383
+ if (verify) {
384
+ const verifyResult = verifyPolicyFix(filePath, baseDir);
385
+ if (jsonOutput) {
386
+ process.stdout.write(JSON.stringify({ validation: result, verification: verifyResult }, null, 2) + '\n');
387
+ }
388
+ else {
389
+ process.stderr.write(formatTerminalResult(result));
390
+ process.stderr.write(formatVerifyResult(verifyResult));
391
+ }
392
+ // Return non-zero if regressions detected
393
+ if (verifyResult.regressionCount > 0)
394
+ return 3;
395
+ }
396
+ if (result.warnings.length > 0)
397
+ return 2;
398
+ return 0;
399
+ }
400
+ // ---------------------------------------------------------------------------
401
+ // Subcommand: suggest
402
+ // ---------------------------------------------------------------------------
403
+ async function policySuggest(_args) {
404
+ console.log('Advanced policy suggestions are available in AgentGuard Cloud. Visit https://agentguard.dev');
405
+ return 0;
406
+ }
407
+ // ---------------------------------------------------------------------------
408
+ // Verify Output Formatting
409
+ // ---------------------------------------------------------------------------
410
+ function formatVerifyResult(result) {
411
+ const lines = [];
412
+ lines.push('');
413
+ lines.push(` ${bold('Policy Fix Verification')}`);
414
+ lines.push(` Sessions analyzed: ${result.sessionsAnalyzed}`);
415
+ lines.push(` Historical violations: ${result.totalViolations}`);
416
+ lines.push('');
417
+ if (result.totalViolations === 0) {
418
+ lines.push(` ${dim('No historical violations found — nothing to verify.')}`);
419
+ lines.push('');
420
+ return lines.join('\n');
421
+ }
422
+ // Summary
423
+ const resolvedPct = result.totalViolations > 0
424
+ ? Math.round((result.resolvedCount / result.totalViolations) * 100)
425
+ : 0;
426
+ lines.push(` ${color('\u2713', 'green')} Resolved: ${result.resolvedCount}/${result.totalViolations} (${resolvedPct}%)`);
427
+ lines.push(` ${result.remainingCount > 0 ? color('\u2022', 'yellow') : color('\u2713', 'green')} Remaining: ${result.remainingCount}`);
428
+ lines.push(` ${result.regressionCount > 0 ? color('\u2717', 'red') : color('\u2713', 'green')} Regressions: ${result.regressionCount}`);
429
+ // Resolved details (show first 5)
430
+ if (result.resolved.length > 0) {
431
+ lines.push('');
432
+ lines.push(` ${color('Resolved violations:', 'green')}`);
433
+ const show = result.resolved.slice(0, 5);
434
+ for (const v of show) {
435
+ lines.push(` ${color('\u2713', 'green')} ${v.actionType} → ${dim(v.target)} ${dim(`(was: ${v.originalReason})`)}`);
436
+ }
437
+ if (result.resolved.length > 5) {
438
+ lines.push(` ${dim(`... and ${result.resolved.length - 5} more`)}`);
439
+ }
440
+ }
441
+ // Remaining details (show first 5)
442
+ if (result.remaining.length > 0) {
443
+ lines.push('');
444
+ lines.push(` ${color('Remaining violations:', 'yellow')}`);
445
+ const show = result.remaining.slice(0, 5);
446
+ for (const v of show) {
447
+ lines.push(` ${color('\u2022', 'yellow')} ${v.actionType} → ${dim(v.target)} ${dim(`(${v.newReason})`)}`);
448
+ }
449
+ if (result.remaining.length > 5) {
450
+ lines.push(` ${dim(`... and ${result.remaining.length - 5} more`)}`);
451
+ }
452
+ }
453
+ // Regressions (show all — these are critical)
454
+ if (result.regressions.length > 0) {
455
+ lines.push('');
456
+ lines.push(` ${color('Regressions (previously allowed, now denied):', 'red')}`);
457
+ const show = result.regressions.slice(0, 10);
458
+ for (const r of show) {
459
+ lines.push(` ${color('\u2717', 'red')} ${r.actionType} → ${dim(r.target)} ${dim(`(${r.reason})`)}`);
460
+ }
461
+ if (result.regressions.length > 10) {
462
+ lines.push(` ${dim(`... and ${result.regressions.length - 10} more`)}`);
463
+ }
464
+ }
465
+ lines.push('');
466
+ return lines.join('\n');
467
+ }
468
+ // ---------------------------------------------------------------------------
469
+ // Subcommand: verify
470
+ // ---------------------------------------------------------------------------
471
+ async function policyVerify(args) {
472
+ const parsed = parseArgs(args, {
473
+ boolean: ['--json'],
474
+ string: ['--dir', '-d'],
475
+ alias: { '-d': '--dir' },
476
+ });
477
+ const jsonOutput = !!parsed.flags.json;
478
+ const baseDir = parsed.flags.dir ?? '.agentguard';
479
+ const filePath = parsed.positional[0];
480
+ if (!filePath) {
481
+ process.stderr.write('\n Usage: agentguard policy verify <file> [flags]\n');
482
+ process.stderr.write('\n Verify whether a policy change resolves historical violations.\n');
483
+ process.stderr.write('\n Flags:\n');
484
+ process.stderr.write(' --json Output as JSON\n');
485
+ process.stderr.write(' --dir, -d Base directory for session data (default: .agentguard)\n\n');
486
+ return 1;
487
+ }
488
+ // First validate
489
+ const validation = validatePolicyFile(filePath);
490
+ if (!validation.valid) {
491
+ if (jsonOutput) {
492
+ process.stdout.write(JSON.stringify({ validation, verification: null }, null, 2) + '\n');
493
+ }
494
+ else {
495
+ process.stderr.write(formatTerminalResult(validation));
496
+ process.stderr.write(`\n ${color('Cannot verify — policy has validation errors.', 'red')}\n\n`);
497
+ }
498
+ return 1;
499
+ }
500
+ // Run verification
501
+ const result = verifyPolicyFix(filePath, baseDir);
502
+ if (jsonOutput) {
503
+ process.stdout.write(JSON.stringify({ validation, verification: result }, null, 2) + '\n');
504
+ }
505
+ else {
506
+ process.stderr.write(formatTerminalResult(validation));
507
+ process.stderr.write(formatVerifyResult(result));
508
+ }
509
+ if (result.regressionCount > 0)
510
+ return 3;
511
+ return 0;
512
+ }
513
+ // ---------------------------------------------------------------------------
514
+ // Main Command Router
515
+ // ---------------------------------------------------------------------------
516
+ /**
517
+ * Main policy command handler.
518
+ * Routes to the appropriate subcommand based on the first argument.
519
+ */
520
+ export async function policy(args) {
521
+ const subcommand = args[0];
522
+ switch (subcommand) {
523
+ case 'validate':
524
+ return policyValidate(args.slice(1));
525
+ case 'suggest':
526
+ return policySuggest(args.slice(1));
527
+ case 'verify':
528
+ return policyVerify(args.slice(1));
529
+ case undefined:
530
+ case 'help':
531
+ case '--help':
532
+ case '-h':
533
+ printPolicyHelp();
534
+ return 0;
535
+ default:
536
+ console.error(` Unknown policy subcommand: ${subcommand}`);
537
+ console.error(' Run "agentguard policy help" for usage info.');
538
+ return 1;
539
+ }
540
+ }
541
+ function printPolicyHelp() {
542
+ console.log(`
543
+ ${bold('agentguard policy')} — Policy management tools
544
+
545
+ ${bold('Usage:')}
546
+ agentguard policy <command> [options]
547
+
548
+ ${bold('Commands:')}
549
+ validate <file> Validate a policy file (YAML or JSON)
550
+ suggest Suggest policy rules based on violation patterns
551
+ verify <file> Verify a policy change resolves historical violations
552
+
553
+ ${bold('Flags (validate):')}
554
+ --json Output validation result as JSON
555
+ --strict Include best-practice recommendations
556
+ --verify Also verify policy resolves historical violations
557
+ --dir, -d <path> Base directory for session data (default: .agentguard)
558
+
559
+ ${bold('Flags (suggest):')}
560
+ --format, -f <fmt> Output format: terminal (default), json, yaml, markdown
561
+ --json Output as JSON
562
+ --yaml Output as YAML policy rules
563
+ --markdown, --md Output as Markdown
564
+ --dir, -d <path> Base directory for event data (default: .agentguard)
565
+ --min-cluster <n> Minimum violations to form a pattern (default: 2)
566
+
567
+ ${bold('Flags (verify):')}
568
+ --json Output result as JSON
569
+ --dir, -d <path> Base directory for session data (default: .agentguard)
570
+
571
+ ${bold('Exit codes (verify):')}
572
+ 0 Clean — no regressions, violations resolved or none exist
573
+ 1 Violations remain unresolved
574
+ 3 Regressions detected (previously-allowed actions now denied)
575
+
576
+ ${bold('Examples:')}
577
+ agentguard policy validate agentguard.yaml
578
+ agentguard policy validate my-policy.json --json
579
+ agentguard policy validate agentguard.yaml --strict
580
+ agentguard policy validate agentguard.yaml --verify
581
+ agentguard policy suggest
582
+ agentguard policy suggest --yaml
583
+ agentguard policy suggest --json
584
+ agentguard policy suggest --dir .agentguard --min-cluster 3
585
+ agentguard policy verify agentguard.yaml
586
+ agentguard policy verify my-policy.yaml --json
587
+ agentguard policy verify my-policy.yaml --dir .agentguard
588
+ `);
589
+ }
590
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/commands/policy.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,9 @@
2
2
  * replay command — Replay execution events from a session.
3
3
  *
4
4
  * Supports two modes:
5
- * 1. Governance replay (--run <runId> or --last): Loads JSONL events from the
5
+ * 1. Governance replay (--run <runId> or --last): Loads events from the
6
6
  * AgentGuard event store and reconstructs action encounters using the replay engine.
7
+ * Supports both JSONL (default) and SQLite storage backends via --store flag.
7
8
  * 2. Execution log replay (default): Loads NDJSON execution event logs for raw
8
9
  * event-level display.
9
10
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../src/commands/replay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8H5D"}