@red-codes/agentguard 1.0.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (434) hide show
  1. package/README.md +179 -298
  2. package/dist/args.d.ts.map +1 -0
  3. package/dist/args.js.map +1 -0
  4. package/dist/bin.d.ts.map +1 -0
  5. package/dist/bin.js +29185 -0
  6. package/dist/bin.js.map +7 -0
  7. package/dist/colors.d.ts.map +1 -0
  8. package/dist/colors.js.map +1 -0
  9. package/dist/commands/adoption.d.ts +2 -0
  10. package/dist/commands/adoption.d.ts.map +1 -0
  11. package/dist/commands/adoption.js +172 -0
  12. package/dist/commands/adoption.js.map +1 -0
  13. package/dist/commands/analytics.d.ts +3 -0
  14. package/dist/commands/analytics.d.ts.map +1 -0
  15. package/dist/commands/analytics.js +7 -0
  16. package/dist/commands/analytics.js.map +1 -0
  17. package/dist/commands/audit-verify.d.ts +3 -0
  18. package/dist/commands/audit-verify.d.ts.map +1 -0
  19. package/dist/commands/audit-verify.js +94 -0
  20. package/dist/commands/audit-verify.js.map +1 -0
  21. package/dist/commands/auto-setup.d.ts +28 -0
  22. package/dist/commands/auto-setup.d.ts.map +1 -0
  23. package/dist/commands/auto-setup.js +146 -0
  24. package/dist/commands/auto-setup.js.map +1 -0
  25. package/dist/commands/ci-check.d.ts +13 -0
  26. package/dist/commands/ci-check.d.ts.map +1 -0
  27. package/dist/commands/ci-check.js +286 -0
  28. package/dist/commands/ci-check.js.map +1 -0
  29. package/dist/commands/claude-hook.d.ts +2 -0
  30. package/dist/commands/claude-hook.d.ts.map +1 -0
  31. package/dist/commands/claude-hook.js +254 -0
  32. package/dist/commands/claude-hook.js.map +1 -0
  33. package/dist/commands/claude-init.d.ts.map +1 -0
  34. package/dist/commands/claude-init.js +401 -0
  35. package/dist/commands/claude-init.js.map +1 -0
  36. package/dist/commands/config.d.ts +39 -0
  37. package/dist/commands/config.d.ts.map +1 -0
  38. package/dist/commands/config.js +368 -0
  39. package/dist/commands/config.js.map +1 -0
  40. package/dist/commands/demo.d.ts +2 -0
  41. package/dist/commands/demo.d.ts.map +1 -0
  42. package/dist/commands/demo.js +100 -0
  43. package/dist/commands/demo.js.map +1 -0
  44. package/dist/commands/diff.d.ts +3 -0
  45. package/dist/commands/diff.d.ts.map +1 -0
  46. package/dist/commands/diff.js +364 -0
  47. package/dist/commands/diff.js.map +1 -0
  48. package/dist/commands/evidence-pr.d.ts +3 -0
  49. package/dist/commands/evidence-pr.d.ts.map +1 -0
  50. package/dist/commands/evidence-pr.js +162 -0
  51. package/dist/commands/evidence-pr.js.map +1 -0
  52. package/dist/commands/export.d.ts +22 -0
  53. package/dist/commands/export.d.ts.map +1 -0
  54. package/dist/commands/export.js +92 -0
  55. package/dist/commands/export.js.map +1 -0
  56. package/dist/commands/guard.d.ts +21 -0
  57. package/dist/commands/guard.d.ts.map +1 -0
  58. package/dist/commands/guard.js +272 -0
  59. package/dist/commands/guard.js.map +1 -0
  60. package/dist/commands/import.d.ts +3 -0
  61. package/dist/commands/import.d.ts.map +1 -0
  62. package/dist/{cli/commands → commands}/import.js +25 -26
  63. package/dist/commands/import.js.map +1 -0
  64. package/dist/commands/init.d.ts +5 -0
  65. package/dist/commands/init.d.ts.map +1 -0
  66. package/dist/commands/init.js +1288 -0
  67. package/dist/commands/init.js.map +1 -0
  68. package/dist/commands/inspect.d.ts +4 -0
  69. package/dist/commands/inspect.d.ts.map +1 -0
  70. package/dist/{cli/commands → commands}/inspect.js +97 -70
  71. package/dist/commands/inspect.js.map +1 -0
  72. package/dist/commands/learn.d.ts +2 -0
  73. package/dist/commands/learn.d.ts.map +1 -0
  74. package/dist/commands/learn.js +264 -0
  75. package/dist/commands/learn.js.map +1 -0
  76. package/dist/commands/migrate.d.ts +3 -0
  77. package/dist/commands/migrate.d.ts.map +1 -0
  78. package/dist/commands/migrate.js +270 -0
  79. package/dist/commands/migrate.js.map +1 -0
  80. package/dist/commands/plugin.d.ts.map +1 -0
  81. package/dist/{cli/commands → commands}/plugin.js +2 -2
  82. package/dist/commands/plugin.js.map +1 -0
  83. package/dist/commands/policy-verify.d.ts +46 -0
  84. package/dist/commands/policy-verify.d.ts.map +1 -0
  85. package/dist/commands/policy-verify.js +173 -0
  86. package/dist/commands/policy-verify.js.map +1 -0
  87. package/dist/commands/policy.d.ts +27 -0
  88. package/dist/commands/policy.d.ts.map +1 -0
  89. package/dist/commands/policy.js +590 -0
  90. package/dist/commands/policy.js.map +1 -0
  91. package/dist/{cli/commands → commands}/replay.d.ts +2 -1
  92. package/dist/commands/replay.d.ts.map +1 -0
  93. package/dist/{cli/commands → commands}/replay.js +78 -12
  94. package/dist/commands/replay.js.map +1 -0
  95. package/dist/commands/session-viewer.d.ts +5 -0
  96. package/dist/commands/session-viewer.d.ts.map +1 -0
  97. package/dist/commands/session-viewer.js +462 -0
  98. package/dist/commands/session-viewer.js.map +1 -0
  99. package/dist/commands/simulate.d.ts +7 -0
  100. package/dist/commands/simulate.d.ts.map +1 -0
  101. package/dist/commands/simulate.js +505 -0
  102. package/dist/commands/simulate.js.map +1 -0
  103. package/dist/commands/status.d.ts +2 -0
  104. package/dist/commands/status.d.ts.map +1 -0
  105. package/dist/commands/status.js +212 -0
  106. package/dist/commands/status.js.map +1 -0
  107. package/dist/commands/traces.d.ts +24 -0
  108. package/dist/commands/traces.d.ts.map +1 -0
  109. package/dist/commands/traces.js +282 -0
  110. package/dist/commands/traces.js.map +1 -0
  111. package/dist/commands/trust.d.ts +6 -0
  112. package/dist/commands/trust.d.ts.map +1 -0
  113. package/dist/commands/trust.js +129 -0
  114. package/dist/commands/trust.js.map +1 -0
  115. package/dist/evidence-summary.d.ts +35 -0
  116. package/dist/evidence-summary.d.ts.map +1 -0
  117. package/dist/evidence-summary.js +202 -0
  118. package/dist/evidence-summary.js.map +1 -0
  119. package/dist/{cli/file-event-store.d.ts → file-event-store.d.ts} +1 -1
  120. package/dist/file-event-store.d.ts.map +1 -0
  121. package/dist/{cli/file-event-store.js → file-event-store.js} +1 -1
  122. package/dist/file-event-store.js.map +1 -0
  123. package/{hooks → dist/hooks}/post-commit +3 -1
  124. package/{hooks → dist/hooks}/post-merge +3 -1
  125. package/dist/hooks/pre-commit +29 -0
  126. package/dist/policy-resolver.d.ts +32 -0
  127. package/dist/policy-resolver.d.ts.map +1 -0
  128. package/dist/policy-resolver.js +171 -0
  129. package/dist/policy-resolver.js.map +1 -0
  130. package/dist/{cli/recorder.d.ts → recorder.d.ts} +1 -1
  131. package/dist/recorder.d.ts.map +1 -0
  132. package/dist/{cli/recorder.js → recorder.js} +1 -1
  133. package/dist/recorder.js.map +1 -0
  134. package/dist/replay-timeline-html.d.ts +21 -0
  135. package/dist/replay-timeline-html.d.ts.map +1 -0
  136. package/dist/replay-timeline-html.js +414 -0
  137. package/dist/replay-timeline-html.js.map +1 -0
  138. package/dist/replay.d.ts.map +1 -0
  139. package/dist/{cli/replay.js → replay.js} +92 -1
  140. package/dist/replay.js.map +1 -0
  141. package/dist/{cli/session-store.d.ts → session-store.d.ts} +5 -0
  142. package/dist/session-store.d.ts.map +1 -0
  143. package/dist/{cli/session-store.js → session-store.js} +1 -0
  144. package/dist/session-store.js.map +1 -0
  145. package/dist/session-viewer-html.d.ts +10 -0
  146. package/dist/session-viewer-html.d.ts.map +1 -0
  147. package/dist/session-viewer-html.js +737 -0
  148. package/dist/session-viewer-html.js.map +1 -0
  149. package/dist/templates/ci-only.yaml +103 -0
  150. package/dist/templates/development.yaml +107 -0
  151. package/dist/templates/permissive.yaml +87 -0
  152. package/dist/templates/strict.yaml +112 -0
  153. package/dist/tui.d.ts +3 -0
  154. package/dist/tui.d.ts.map +1 -0
  155. package/dist/tui.js +2 -0
  156. package/dist/tui.js.map +1 -0
  157. package/package.json +42 -53
  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,270 @@
1
+ // CLI command: agentguard migrate — bulk-import JSONL files into SQLite.
2
+ // Discovers .agentguard/events/*.jsonl and .agentguard/decisions/*.jsonl,
3
+ // parses each line, and inserts into the SQLite database.
4
+ // Idempotent: re-running skips already-imported records (INSERT OR IGNORE).
5
+ import { readFileSync, readdirSync, existsSync } from 'node:fs';
6
+ import { join, basename } from 'node:path';
7
+ import { parseArgs } from '../args.js';
8
+ import { validateEvent } from '@red-codes/events';
9
+ /**
10
+ * Discover JSONL files in a directory, sorted by name (chronological by run ID).
11
+ */
12
+ function discoverJsonlFiles(dir) {
13
+ if (!existsSync(dir))
14
+ return [];
15
+ try {
16
+ return readdirSync(dir)
17
+ .filter((f) => f.endsWith('.jsonl'))
18
+ .sort()
19
+ .map((f) => join(dir, f));
20
+ }
21
+ catch {
22
+ return [];
23
+ }
24
+ }
25
+ /**
26
+ * Extract run ID from a JSONL filename.
27
+ * e.g., "hook_1773216357942_927ukg.jsonl" → "hook_1773216357942_927ukg"
28
+ */
29
+ function runIdFromFilename(filePath) {
30
+ return basename(filePath, '.jsonl');
31
+ }
32
+ /**
33
+ * Parse a JSONL file into lines, skipping empty and malformed lines.
34
+ */
35
+ function parseJsonlLines(filePath) {
36
+ try {
37
+ const content = readFileSync(filePath, 'utf8');
38
+ return content.split('\n').filter((l) => l.trim());
39
+ }
40
+ catch {
41
+ return [];
42
+ }
43
+ }
44
+ export async function migrate(args, storageConfig) {
45
+ const parsed = parseArgs(args, {
46
+ boolean: ['--dry-run', '--verbose'],
47
+ string: ['--dir', '-d', '--db-path'],
48
+ alias: { '-d': '--dir' },
49
+ });
50
+ const dryRun = !!parsed.flags['dry-run'];
51
+ const verbose = !!parsed.flags.verbose;
52
+ const baseDir = parsed.flags.dir || '.agentguard';
53
+ const eventsDir = join(baseDir, 'events');
54
+ const decisionsDir = join(baseDir, 'decisions');
55
+ process.stderr.write('\n \x1b[1mAgentGuard Migration\x1b[0m — JSONL → SQLite\n\n');
56
+ // Discover files
57
+ const eventFiles = discoverJsonlFiles(eventsDir);
58
+ const decisionFiles = discoverJsonlFiles(decisionsDir);
59
+ if (eventFiles.length === 0 && decisionFiles.length === 0) {
60
+ process.stderr.write(` No JSONL files found in ${eventsDir}/ or ${decisionsDir}/\n` + ' Nothing to migrate.\n\n');
61
+ return 0;
62
+ }
63
+ process.stderr.write(` Found ${eventFiles.length} event file(s)\n`);
64
+ process.stderr.write(` Found ${decisionFiles.length} decision file(s)\n`);
65
+ if (dryRun) {
66
+ process.stderr.write('\n \x1b[33m[dry-run]\x1b[0m Would import:\n');
67
+ let totalEvents = 0;
68
+ let totalDecisions = 0;
69
+ for (const f of eventFiles) {
70
+ const lines = parseJsonlLines(f);
71
+ totalEvents += lines.length;
72
+ if (verbose) {
73
+ process.stderr.write(` ${basename(f)}: ${lines.length} events\n`);
74
+ }
75
+ }
76
+ for (const f of decisionFiles) {
77
+ const lines = parseJsonlLines(f);
78
+ totalDecisions += lines.length;
79
+ if (verbose) {
80
+ process.stderr.write(` ${basename(f)}: ${lines.length} decisions\n`);
81
+ }
82
+ }
83
+ process.stderr.write(`\n Events: ${totalEvents}\n`);
84
+ process.stderr.write(` Decisions: ${totalDecisions}\n`);
85
+ process.stderr.write(` Sessions: ${eventFiles.length} (reconstructed from event runs)\n\n`);
86
+ return 0;
87
+ }
88
+ // Initialize SQLite storage
89
+ const config = storageConfig ?? { backend: 'sqlite' };
90
+ const { createStorageBundle } = await import('@red-codes/storage');
91
+ const storage = await createStorageBundle(config);
92
+ if (!storage.db) {
93
+ process.stderr.write(' \x1b[31mError:\x1b[0m SQLite storage backend did not initialize database.\n\n');
94
+ return 1;
95
+ }
96
+ const db = storage.db;
97
+ const stats = {
98
+ filesProcessed: 0,
99
+ eventsImported: 0,
100
+ decisionsImported: 0,
101
+ sessionsCreated: 0,
102
+ errors: 0,
103
+ skipped: 0,
104
+ };
105
+ // Track run timestamps for session reconstruction
106
+ const runTimestamps = new Map();
107
+ // Prepare bulk insert statements
108
+ const insertEvent = db.prepare(`
109
+ INSERT OR IGNORE INTO events (id, run_id, kind, timestamp, fingerprint, data, action_type)
110
+ VALUES (?, ?, ?, ?, ?, ?, ?)
111
+ `);
112
+ const insertDecision = db.prepare(`
113
+ INSERT OR IGNORE INTO decisions (record_id, run_id, timestamp, outcome, action_type, target, reason, data, severity)
114
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
115
+ `);
116
+ const insertSession = db.prepare(`
117
+ INSERT OR IGNORE INTO sessions (id, started_at, ended_at, command, repo, data)
118
+ VALUES (?, ?, ?, ?, ?, ?)
119
+ `);
120
+ // Import events — wrapped in a transaction for performance
121
+ const importEvents = db.transaction(() => {
122
+ for (const filePath of eventFiles) {
123
+ const runId = runIdFromFilename(filePath);
124
+ const lines = parseJsonlLines(filePath);
125
+ let fileEvents = 0;
126
+ for (const line of lines) {
127
+ try {
128
+ const parsed = JSON.parse(line);
129
+ const { valid } = validateEvent(parsed);
130
+ if (!valid) {
131
+ stats.skipped++;
132
+ continue;
133
+ }
134
+ const event = parsed;
135
+ const actionType = typeof parsed.actionType === 'string'
136
+ ? parsed.actionType
137
+ : null;
138
+ insertEvent.run(event.id, runId, event.kind, event.timestamp, event.fingerprint, line, actionType);
139
+ fileEvents++;
140
+ // Track timestamps for session reconstruction
141
+ const existing = runTimestamps.get(runId);
142
+ if (existing) {
143
+ existing.minTs = Math.min(existing.minTs, event.timestamp);
144
+ existing.maxTs = Math.max(existing.maxTs, event.timestamp);
145
+ existing.eventCount++;
146
+ if (event.kind === 'InvariantViolation')
147
+ existing.violationCount++;
148
+ }
149
+ else {
150
+ runTimestamps.set(runId, {
151
+ minTs: event.timestamp,
152
+ maxTs: event.timestamp,
153
+ eventCount: 1,
154
+ decisionCount: 0,
155
+ allowCount: 0,
156
+ denyCount: 0,
157
+ violationCount: event.kind === 'InvariantViolation' ? 1 : 0,
158
+ });
159
+ }
160
+ }
161
+ catch {
162
+ stats.errors++;
163
+ }
164
+ }
165
+ stats.eventsImported += fileEvents;
166
+ stats.filesProcessed++;
167
+ if (verbose) {
168
+ process.stderr.write(` \x1b[32m✓\x1b[0m ${basename(filePath)}: ${fileEvents} events\n`);
169
+ }
170
+ }
171
+ });
172
+ // Import decisions — wrapped in a transaction for performance
173
+ const importDecisions = db.transaction(() => {
174
+ for (const filePath of decisionFiles) {
175
+ const runId = runIdFromFilename(filePath);
176
+ const lines = parseJsonlLines(filePath);
177
+ let fileDecisions = 0;
178
+ for (const line of lines) {
179
+ try {
180
+ const record = JSON.parse(line);
181
+ if (!record.outcome || !record.recordId) {
182
+ stats.skipped++;
183
+ continue;
184
+ }
185
+ const severity = record.policy?.severity ?? null;
186
+ insertDecision.run(record.recordId, runId, record.timestamp, record.outcome, record.action?.type ?? 'unknown', record.action?.target ?? 'unknown', record.reason ?? '', line, severity);
187
+ fileDecisions++;
188
+ // Update run timestamps for session reconstruction
189
+ const hasViolations = (record.invariants?.violations?.length ?? 0) > 0;
190
+ const existing = runTimestamps.get(runId);
191
+ if (existing) {
192
+ existing.minTs = Math.min(existing.minTs, record.timestamp);
193
+ existing.maxTs = Math.max(existing.maxTs, record.timestamp);
194
+ existing.decisionCount++;
195
+ if (record.outcome === 'allow')
196
+ existing.allowCount++;
197
+ if (record.outcome === 'deny')
198
+ existing.denyCount++;
199
+ if (hasViolations)
200
+ existing.violationCount++;
201
+ }
202
+ else {
203
+ runTimestamps.set(runId, {
204
+ minTs: record.timestamp,
205
+ maxTs: record.timestamp,
206
+ eventCount: 0,
207
+ decisionCount: 1,
208
+ allowCount: record.outcome === 'allow' ? 1 : 0,
209
+ denyCount: record.outcome === 'deny' ? 1 : 0,
210
+ violationCount: hasViolations ? 1 : 0,
211
+ });
212
+ }
213
+ }
214
+ catch {
215
+ stats.errors++;
216
+ }
217
+ }
218
+ stats.decisionsImported += fileDecisions;
219
+ stats.filesProcessed++;
220
+ if (verbose) {
221
+ process.stderr.write(` \x1b[32m✓\x1b[0m ${basename(filePath)}: ${fileDecisions} decisions\n`);
222
+ }
223
+ }
224
+ });
225
+ // Execute imports
226
+ try {
227
+ process.stderr.write(' Importing events...\n');
228
+ importEvents();
229
+ process.stderr.write(' Importing decisions...\n');
230
+ importDecisions();
231
+ // Reconstruct sessions from run timestamps
232
+ process.stderr.write(' Reconstructing sessions...\n');
233
+ const createSessions = db.transaction(() => {
234
+ for (const [runId, ts] of runTimestamps) {
235
+ const startedAt = new Date(ts.minTs).toISOString();
236
+ const endedAt = new Date(ts.maxTs).toISOString();
237
+ const data = JSON.stringify({
238
+ status: 'completed',
239
+ source: 'jsonl-migration',
240
+ totalActions: ts.eventCount + ts.decisionCount,
241
+ allowed: ts.allowCount,
242
+ denied: ts.denyCount,
243
+ violations: ts.violationCount,
244
+ durationMs: ts.maxTs - ts.minTs,
245
+ });
246
+ insertSession.run(runId, startedAt, endedAt, 'migrate', null, data);
247
+ stats.sessionsCreated++;
248
+ }
249
+ });
250
+ createSessions();
251
+ }
252
+ finally {
253
+ storage.close();
254
+ }
255
+ // Report results
256
+ process.stderr.write('\n \x1b[32m✓ Migration complete\x1b[0m\n');
257
+ process.stderr.write(` Files processed: ${stats.filesProcessed}\n`);
258
+ process.stderr.write(` Events imported: ${stats.eventsImported}\n`);
259
+ process.stderr.write(` Decisions imported: ${stats.decisionsImported}\n`);
260
+ process.stderr.write(` Sessions created: ${stats.sessionsCreated}\n`);
261
+ if (stats.skipped > 0) {
262
+ process.stderr.write(` Skipped (invalid): ${stats.skipped}\n`);
263
+ }
264
+ if (stats.errors > 0) {
265
+ process.stderr.write(` Errors: ${stats.errors}\n`);
266
+ }
267
+ process.stderr.write('\n');
268
+ return 0;
269
+ }
270
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/commands/plugin.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAqC5D"}
@@ -9,8 +9,8 @@
9
9
  // search [query] Search for plugins on npm
10
10
  import { readFileSync, existsSync } from 'node:fs';
11
11
  import { join, resolve } from 'node:path';
12
- import { createPluginRegistry } from '../../plugins/registry.js';
13
- import { searchNpmPlugins, searchLocalPlugins } from '../../plugins/discovery.js';
12
+ import { createPluginRegistry } from '@red-codes/plugins';
13
+ import { searchNpmPlugins, searchLocalPlugins } from '@red-codes/plugins';
14
14
  import { bold, color, dim } from '../colors.js';
15
15
  const STORAGE_DIR = '.agentguard';
16
16
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/commands/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { LoadedPolicy } from '@red-codes/policy';
2
+ /** Detail about a single violation and its re-evaluation result */
3
+ export interface ViolationVerifyDetail {
4
+ readonly sessionId: string;
5
+ readonly eventId: string;
6
+ readonly kind: string;
7
+ readonly actionType: string;
8
+ readonly target: string;
9
+ readonly originalReason: string;
10
+ readonly newDecision: 'allow' | 'deny';
11
+ readonly newReason: string;
12
+ }
13
+ /** Detail about a regression — previously-allowed action now denied */
14
+ export interface RegressionDetail {
15
+ readonly sessionId: string;
16
+ readonly eventId: string;
17
+ readonly actionType: string;
18
+ readonly target: string;
19
+ readonly reason: string;
20
+ }
21
+ /** Result of verifying a policy fix against historical sessions */
22
+ export interface PolicyVerifyResult {
23
+ readonly policyFile: string;
24
+ readonly sessionsAnalyzed: number;
25
+ readonly totalViolations: number;
26
+ readonly resolvedCount: number;
27
+ readonly remainingCount: number;
28
+ readonly regressionCount: number;
29
+ readonly resolved: readonly ViolationVerifyDetail[];
30
+ readonly remaining: readonly ViolationVerifyDetail[];
31
+ readonly regressions: readonly RegressionDetail[];
32
+ }
33
+ /**
34
+ * Load a policy file (YAML or JSON) and return the LoadedPolicy array.
35
+ * Throws if the file cannot be parsed or is invalid.
36
+ */
37
+ export declare function loadPolicyFromFile(filePath: string): LoadedPolicy[];
38
+ /**
39
+ * Verify whether a proposed policy resolves historical violations.
40
+ *
41
+ * @param policyPath — path to the new/proposed policy file (YAML or JSON)
42
+ * @param baseDir — base directory for governance session data (default: .agentguard)
43
+ * @returns structured verification result
44
+ */
45
+ export declare function verifyPolicyFix(policyPath: string, baseDir?: string): PolicyVerifyResult;
46
+ //# sourceMappingURL=policy-verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-verify.d.ts","sourceRoot":"","sources":["../../src/commands/policy-verify.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAoB,YAAY,EAAc,MAAM,mBAAmB,CAAC;AAoCpF,mEAAmE;AACnE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,uEAAuE;AACvE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,mEAAmE;AACnE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACnD;AA6CD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAenE;AAMD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,SAAgB,GAAG,kBAAkB,CAwE/F"}
@@ -0,0 +1,173 @@
1
+ // Policy fix verification — tests whether a proposed policy change
2
+ // resolves historical violations without introducing regressions.
3
+ //
4
+ // Given a new policy file and historical governance sessions, this module:
5
+ // 1. Loads all violation events (PolicyDenied, ActionDenied) from session data
6
+ // 2. Re-evaluates each violation-producing action against the new policy
7
+ // 3. Reports which violations are resolved, which remain, and any regressions
8
+ //
9
+ // A "regression" is when an action that was previously allowed would now be
10
+ // denied by the new policy — an unintended side effect of the policy change.
11
+ import { readFileSync, readdirSync, existsSync } from 'node:fs';
12
+ import { resolve, join } from 'node:path';
13
+ import { evaluate } from '@red-codes/policy';
14
+ import { loadYamlPolicy } from '@red-codes/policy';
15
+ import { loadPolicies } from '@red-codes/policy';
16
+ /** List all session IDs present in a base directory (reads sub-directory names). */
17
+ function listSessionIds(baseDir) {
18
+ const eventsDir = join(baseDir, 'events');
19
+ if (!existsSync(eventsDir))
20
+ return [];
21
+ try {
22
+ return readdirSync(eventsDir)
23
+ .filter((name) => name.endsWith('.jsonl'))
24
+ .map((name) => name.replace(/\.jsonl$/, ''));
25
+ }
26
+ catch {
27
+ return [];
28
+ }
29
+ }
30
+ /** Load all events for a session from its JSONL file. */
31
+ function loadSessionEvents(sessionId, baseDir) {
32
+ const filePath = join(baseDir, 'events', `${sessionId}.jsonl`);
33
+ if (!existsSync(filePath))
34
+ return [];
35
+ try {
36
+ return readFileSync(filePath, 'utf8')
37
+ .split('\n')
38
+ .filter(Boolean)
39
+ .map((line) => JSON.parse(line));
40
+ }
41
+ catch {
42
+ return [];
43
+ }
44
+ }
45
+ // ---------------------------------------------------------------------------
46
+ // Event kinds
47
+ // ---------------------------------------------------------------------------
48
+ /** Violation kinds that are caused by policy evaluation (re-evaluatable) */
49
+ const POLICY_VIOLATION_KINDS = new Set(['PolicyDenied', 'ActionDenied']);
50
+ /** Allowed action kinds — used for regression detection */
51
+ const ALLOWED_ACTION_KINDS = new Set(['ActionAllowed', 'ActionExecuted']);
52
+ // ---------------------------------------------------------------------------
53
+ // Intent reconstruction
54
+ // ---------------------------------------------------------------------------
55
+ /**
56
+ * Reconstruct a NormalizedIntent from a stored governance event.
57
+ * Events contain action metadata that was used in the original evaluation.
58
+ * Returns null if the event doesn't contain enough data to reconstruct.
59
+ */
60
+ function reconstructIntent(event) {
61
+ const rec = event;
62
+ const action = rec.actionType ?? rec.action ?? rec.syscall ?? null;
63
+ const target = rec.target ?? rec.file ?? '';
64
+ if (!action)
65
+ return null;
66
+ return {
67
+ action,
68
+ target,
69
+ agent: rec.agent ?? 'unknown',
70
+ branch: rec.branch ?? undefined,
71
+ command: rec.command ?? undefined,
72
+ filesAffected: rec.filesAffected ?? undefined,
73
+ destructive: rec.destructive ?? false,
74
+ };
75
+ }
76
+ // ---------------------------------------------------------------------------
77
+ // Policy loading
78
+ // ---------------------------------------------------------------------------
79
+ /**
80
+ * Load a policy file (YAML or JSON) and return the LoadedPolicy array.
81
+ * Throws if the file cannot be parsed or is invalid.
82
+ */
83
+ export function loadPolicyFromFile(filePath) {
84
+ const absPath = resolve(filePath);
85
+ const content = readFileSync(absPath, 'utf8');
86
+ if (filePath.endsWith('.yaml') || filePath.endsWith('.yml')) {
87
+ return [loadYamlPolicy(content, filePath)];
88
+ }
89
+ const parsed = JSON.parse(content);
90
+ const defs = Array.isArray(parsed) ? parsed : [parsed];
91
+ const { policies, errors } = loadPolicies(defs);
92
+ if (errors.length > 0) {
93
+ throw new Error(`Policy validation errors: ${errors.join('; ')}`);
94
+ }
95
+ return policies;
96
+ }
97
+ // ---------------------------------------------------------------------------
98
+ // Verification engine
99
+ // ---------------------------------------------------------------------------
100
+ /**
101
+ * Verify whether a proposed policy resolves historical violations.
102
+ *
103
+ * @param policyPath — path to the new/proposed policy file (YAML or JSON)
104
+ * @param baseDir — base directory for governance session data (default: .agentguard)
105
+ * @returns structured verification result
106
+ */
107
+ export function verifyPolicyFix(policyPath, baseDir = '.agentguard') {
108
+ const policies = loadPolicyFromFile(policyPath);
109
+ const sessionIds = listSessionIds(baseDir);
110
+ const resolved = [];
111
+ const remaining = [];
112
+ const regressions = [];
113
+ let totalViolations = 0;
114
+ for (const sessionId of sessionIds) {
115
+ const events = loadSessionEvents(sessionId, baseDir);
116
+ for (const event of events) {
117
+ // Check policy-caused violations for resolution
118
+ if (POLICY_VIOLATION_KINDS.has(event.kind)) {
119
+ totalViolations++;
120
+ const intent = reconstructIntent(event);
121
+ if (!intent)
122
+ continue;
123
+ const result = evaluate(intent, policies);
124
+ const rec = event;
125
+ const originalReason = rec.reason ?? event.kind;
126
+ const detail = {
127
+ sessionId,
128
+ eventId: event.id,
129
+ kind: event.kind,
130
+ actionType: intent.action,
131
+ target: intent.target,
132
+ originalReason,
133
+ newDecision: result.decision,
134
+ newReason: result.reason,
135
+ };
136
+ if (result.allowed) {
137
+ resolved.push(detail);
138
+ }
139
+ else {
140
+ remaining.push(detail);
141
+ }
142
+ }
143
+ // Check previously-allowed actions for regressions
144
+ if (ALLOWED_ACTION_KINDS.has(event.kind)) {
145
+ const intent = reconstructIntent(event);
146
+ if (!intent)
147
+ continue;
148
+ const result = evaluate(intent, policies);
149
+ if (!result.allowed) {
150
+ regressions.push({
151
+ sessionId,
152
+ eventId: event.id,
153
+ actionType: intent.action,
154
+ target: intent.target,
155
+ reason: result.reason,
156
+ });
157
+ }
158
+ }
159
+ }
160
+ }
161
+ return {
162
+ policyFile: policyPath,
163
+ sessionsAnalyzed: sessionIds.length,
164
+ totalViolations,
165
+ resolvedCount: resolved.length,
166
+ remainingCount: remaining.length,
167
+ regressionCount: regressions.length,
168
+ resolved,
169
+ remaining,
170
+ regressions,
171
+ };
172
+ }
173
+ //# sourceMappingURL=policy-verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-verify.js","sourceRoot":"","sources":["../../src/commands/policy-verify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export interface ValidationIssue {
2
+ readonly level: 'error' | 'warning' | 'info';
3
+ readonly message: string;
4
+ readonly rule?: number;
5
+ }
6
+ export interface PolicyValidationResult {
7
+ readonly file: string;
8
+ readonly valid: boolean;
9
+ readonly errors: readonly ValidationIssue[];
10
+ readonly warnings: readonly ValidationIssue[];
11
+ readonly info: readonly ValidationIssue[];
12
+ readonly ruleCount: number;
13
+ }
14
+ /**
15
+ * Validate a policy file and return structured results.
16
+ */
17
+ export declare function validatePolicyFile(filePath: string): PolicyValidationResult;
18
+ /**
19
+ * Validate a policy file with optional strict checks.
20
+ */
21
+ export declare function validatePolicyFileStrict(filePath: string, strict: boolean): PolicyValidationResult;
22
+ /**
23
+ * Main policy command handler.
24
+ * Routes to the appropriate subcommand based on the first argument.
25
+ */
26
+ export declare function policy(args: string[]): Promise<number>;
27
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/commands/policy.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,SAAS,eAAe,EAAE,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AA0MD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,sBAAsB,CA+E3E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GACd,sBAAsB,CAgBxB;AA2QD;;;GAGG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAyB5D"}