@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,7 @@
1
+ export interface SimulateOptions {
2
+ json?: boolean;
3
+ policy?: string;
4
+ plan?: string;
5
+ }
6
+ export declare function simulate(args: string[], options?: SimulateOptions): Promise<number>;
7
+ //# sourceMappingURL=simulate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulate.d.ts","sourceRoot":"","sources":["../../src/commands/simulate.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAuXD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwH7F"}
@@ -0,0 +1,505 @@
1
+ // CLI command: agentguard simulate — standalone impact analysis.
2
+ // Runs an action through the simulation registry and displays predicted impact
3
+ // without executing the action. Optionally evaluates the action against policy
4
+ // rules and invariants, returning non-zero exit codes for denials.
5
+ import { readFileSync } from 'node:fs';
6
+ import { normalizeIntent, createSimulatorRegistry, createGitSimulator, createFilesystemSimulator, createPackageSimulator, simulatePlan, createDependencyGraphSimulator, } from '@red-codes/kernel';
7
+ import { evaluate, loadPolicies } from '@red-codes/policy';
8
+ import { loadPolicyDefs } from '../policy-resolver.js';
9
+ import { checkAllInvariants, buildSystemState, DEFAULT_INVARIANTS } from '@red-codes/invariants';
10
+ import { ACTION_TYPES } from '@red-codes/core';
11
+ import { bold, color, dim } from '../colors.js';
12
+ /** Exit codes — 0 = allowed, 1 = input error, 2 = policy denied, 3 = invariant violated */
13
+ const EXIT_OK = 0;
14
+ const EXIT_INPUT_ERROR = 1;
15
+ const EXIT_POLICY_DENIED = 2;
16
+ const EXIT_INVARIANT_VIOLATION = 3;
17
+ const RISK_COLORS = {
18
+ low: 'green',
19
+ medium: 'yellow',
20
+ high: 'red',
21
+ };
22
+ /**
23
+ * Build a NormalizedIntent from CLI args. Three modes:
24
+ * 1. JSON positional arg → pass through AAB normalizeIntent (same as guard command)
25
+ * 2. Structured flags (--action, --target, etc.) → construct intent directly
26
+ * 3. Stdin JSON (when piped) → handled by caller before invoking this
27
+ */
28
+ function buildIntent(args) {
29
+ // Mode 1: JSON string as first positional arg
30
+ const firstArg = args.find((a) => !a.startsWith('--'));
31
+ if (firstArg) {
32
+ try {
33
+ const raw = JSON.parse(firstArg);
34
+ return normalizeIntent(raw);
35
+ }
36
+ catch {
37
+ // Not JSON — fall through to structured flags
38
+ }
39
+ }
40
+ // Mode 2: Structured flags — construct NormalizedIntent directly
41
+ const action = flagValue(args, '--action');
42
+ const target = flagValue(args, '--target');
43
+ const command = flagValue(args, '--command');
44
+ const branch = flagValue(args, '--branch');
45
+ if (!action && !command)
46
+ return null;
47
+ return {
48
+ action: action || 'shell.exec',
49
+ target: target || '',
50
+ agent: 'cli',
51
+ branch: branch || undefined,
52
+ command: command || undefined,
53
+ destructive: false,
54
+ };
55
+ }
56
+ function flagValue(args, flag) {
57
+ const idx = args.indexOf(flag);
58
+ return idx !== -1 && idx + 1 < args.length ? args[idx + 1] : undefined;
59
+ }
60
+ /** Build system state from simulation result + intent for invariant checking */
61
+ function buildStateFromSimulation(intent, result) {
62
+ const isGitPush = intent.action === 'git.push' || intent.action === 'git.force-push';
63
+ const isForcePush = intent.action === 'git.force-push';
64
+ return buildSystemState({
65
+ modifiedFiles: result.predictedChanges,
66
+ targetBranch: intent.branch || '',
67
+ directPush: isGitPush,
68
+ forcePush: isForcePush,
69
+ isPush: isGitPush,
70
+ filesAffected: result.blastRadius,
71
+ simulatedBlastRadius: result.blastRadius,
72
+ simulatedRiskLevel: result.riskLevel,
73
+ currentTarget: intent.target,
74
+ currentCommand: intent.command || '',
75
+ });
76
+ }
77
+ /** Evaluate the simulated action against policy rules and invariants */
78
+ function evaluateGovernance(intent, result, policyPath) {
79
+ let policyResult = null;
80
+ // Load and evaluate policy
81
+ const policyDefs = loadPolicyDefs(policyPath);
82
+ if (policyDefs.length > 0) {
83
+ const { policies } = loadPolicies(policyDefs);
84
+ if (policies.length > 0) {
85
+ policyResult = evaluate(intent, policies);
86
+ }
87
+ }
88
+ // Check invariants against simulated state
89
+ const state = buildStateFromSimulation(intent, result);
90
+ const { violations } = checkAllInvariants(DEFAULT_INVARIANTS, state);
91
+ const invariantViolations = violations.map((v) => ({
92
+ invariant: v.invariant.name,
93
+ expected: v.result.expected,
94
+ actual: v.result.actual,
95
+ }));
96
+ const policyAllowed = policyResult ? policyResult.allowed : true;
97
+ const invariantsHold = invariantViolations.length === 0;
98
+ return {
99
+ policyResult,
100
+ invariantViolations,
101
+ allowed: policyAllowed && invariantsHold,
102
+ };
103
+ }
104
+ function renderTextOutput(result) {
105
+ const riskColor = RISK_COLORS[result.riskLevel] || 'white';
106
+ process.stderr.write(`\n ${bold('Simulation Result')}\n`);
107
+ process.stderr.write(` ${dim('─'.repeat(50))}\n\n`);
108
+ process.stderr.write(` ${dim('Simulator:')} ${result.simulatorId}\n`);
109
+ process.stderr.write(` ${dim('Risk level:')} ${color(result.riskLevel.toUpperCase(), riskColor)}\n`);
110
+ process.stderr.write(` ${dim('Blast radius:')} ${result.blastRadius}\n`);
111
+ process.stderr.write(` ${dim('Duration:')} ${result.durationMs}ms\n\n`);
112
+ if (result.predictedChanges.length > 0) {
113
+ process.stderr.write(` ${bold('Predicted Changes')}\n`);
114
+ for (const change of result.predictedChanges) {
115
+ process.stderr.write(` ${color('•', riskColor)} ${change}\n`);
116
+ }
117
+ process.stderr.write('\n');
118
+ }
119
+ if (Object.keys(result.details).length > 0) {
120
+ process.stderr.write(` ${bold('Details')}\n`);
121
+ for (const [key, value] of Object.entries(result.details)) {
122
+ const display = typeof value === 'object' ? JSON.stringify(value) : String(value);
123
+ process.stderr.write(` ${dim(key + ':')} ${display}\n`);
124
+ }
125
+ process.stderr.write('\n');
126
+ }
127
+ }
128
+ function renderGovernanceOutput(gov) {
129
+ process.stderr.write(` ${bold('Governance Evaluation')}\n`);
130
+ process.stderr.write(` ${dim('─'.repeat(50))}\n\n`);
131
+ if (gov.policyResult) {
132
+ const policyColor = gov.policyResult.allowed ? 'green' : 'red';
133
+ const policyIcon = gov.policyResult.allowed ? 'ALLOW' : 'DENY';
134
+ process.stderr.write(` ${dim('Policy:')} ${color(policyIcon, policyColor)} ${gov.policyResult.reason}\n`);
135
+ }
136
+ else {
137
+ process.stderr.write(` ${dim('Policy:')} ${dim('No policy loaded')}\n`);
138
+ }
139
+ if (gov.invariantViolations.length === 0) {
140
+ process.stderr.write(` ${dim('Invariants:')} ${color('PASS', 'green')} All invariants hold\n`);
141
+ }
142
+ else {
143
+ process.stderr.write(` ${dim('Invariants:')} ${color('FAIL', 'red')} ${gov.invariantViolations.length} violation(s)\n`);
144
+ for (const v of gov.invariantViolations) {
145
+ process.stderr.write(` ${color('✗', 'red')} ${v.invariant}: ${v.actual}\n`);
146
+ }
147
+ }
148
+ process.stderr.write('\n');
149
+ const verdict = gov.allowed ? color('ALLOWED', 'green') : color('DENIED', 'red');
150
+ process.stderr.write(` ${bold('Verdict:')} ${verdict}\n\n`);
151
+ }
152
+ function renderPlanTextOutput(planResult) {
153
+ const cf = planResult.compositeForecast;
154
+ const riskColor = RISK_COLORS[cf.riskLevel] || 'white';
155
+ process.stderr.write(`\n ${bold('Plan Simulation Result')}\n`);
156
+ process.stderr.write(` ${dim('─'.repeat(50))}\n\n`);
157
+ process.stderr.write(` ${dim('Total steps:')} ${cf.totalSteps}\n`);
158
+ process.stderr.write(` ${dim('Simulated:')} ${cf.simulatedSteps}\n`);
159
+ process.stderr.write(` ${dim('Risk level:')} ${color(cf.riskLevel.toUpperCase(), riskColor)}\n`);
160
+ process.stderr.write(` ${dim('Blast radius:')} ${cf.blastRadiusScore}\n`);
161
+ process.stderr.write(` ${dim('Test risk:')} ${cf.testRiskScore}/100\n`);
162
+ process.stderr.write(` ${dim('Duration:')} ${planResult.durationMs}ms\n\n`);
163
+ // Per-step summary
164
+ process.stderr.write(` ${bold('Steps')}\n`);
165
+ for (const step of planResult.steps) {
166
+ const label = step.label || step.intent.action;
167
+ const icon = step.result ? color('●', RISK_COLORS[step.result.riskLevel] || 'white') : dim('○');
168
+ const risk = step.result ? ` (${step.result.riskLevel})` : ' (no simulator)';
169
+ process.stderr.write(` ${icon} ${dim(`[${step.index}]`)} ${label}${dim(risk)}\n`);
170
+ }
171
+ process.stderr.write('\n');
172
+ // Interactions
173
+ if (planResult.interactions.length > 0) {
174
+ process.stderr.write(` ${bold('Interactions')}\n`);
175
+ for (const interaction of planResult.interactions) {
176
+ const icon = interaction.type === 'cumulative-risk' ? color('⚠', 'red') : color('↔', 'yellow');
177
+ process.stderr.write(` ${icon} ${interaction.description}\n`);
178
+ }
179
+ process.stderr.write('\n');
180
+ }
181
+ // Predicted files
182
+ if (cf.predictedFiles.length > 0) {
183
+ process.stderr.write(` ${bold('Predicted Files')}\n`);
184
+ for (const file of cf.predictedFiles) {
185
+ process.stderr.write(` ${color('•', riskColor)} ${file}\n`);
186
+ }
187
+ process.stderr.write('\n');
188
+ }
189
+ }
190
+ function printUsage() {
191
+ process.stderr.write(`
192
+ ${bold('Usage:')} agentguard simulate <action-json> [flags]
193
+ agentguard simulate --action <type> --target <path> [flags]
194
+ agentguard simulate --plan <actions.json>
195
+ echo '{"tool":"Bash","command":"..."}' | agentguard simulate --policy policy.yaml
196
+
197
+ ${bold('Examples:')}
198
+ agentguard simulate '{"tool":"Bash","command":"git push origin main"}'
199
+ agentguard simulate --action file.write --target .env
200
+ agentguard simulate --action git.push --branch main
201
+ agentguard simulate --action shell.exec --command "npm install express"
202
+ agentguard simulate --action file.delete --target package-lock.json --json
203
+ agentguard simulate --action file.write --target .env --policy agentguard.yaml
204
+ agentguard simulate --plan plan.json
205
+ agentguard simulate --plan plan.json --policy agentguard.yaml --json
206
+
207
+ ${bold('Flags:')}
208
+ --action <type> Action type (e.g., file.write, git.push, shell.exec)
209
+ --target <path> Target file or resource path
210
+ --command <cmd> Shell command (for shell.exec actions)
211
+ --branch <name> Git branch name
212
+ --plan <file> JSON file containing an action plan (array of actions)
213
+ --policy <file> Policy file (YAML/JSON) to evaluate against
214
+ --json Output raw result as JSON
215
+
216
+ ${bold('Exit Codes:')}
217
+ 0 Action would be allowed
218
+ 1 Input error (missing action, unknown type, no simulator)
219
+ 2 Action would be denied by policy
220
+ 3 Action would violate an invariant
221
+
222
+ ${bold('Supported action types for simulation:')}
223
+ file.write, file.delete → Filesystem simulator
224
+ git.push, git.merge, → Git simulator
225
+ git.force-push, git.branch.delete
226
+ shell.exec (npm/yarn/pnpm) → Package simulator
227
+
228
+ ${bold('Plan file format:')}
229
+ [
230
+ { "tool": "Write", "file": "src/config.ts", "label": "Write config" },
231
+ { "tool": "Bash", "command": "npm test", "label": "Run tests" },
232
+ { "tool": "Bash", "command": "git push origin main", "label": "Push" }
233
+ ]
234
+ `);
235
+ }
236
+ /** Read stdin if data is piped (non-TTY). Returns null if stdin is a TTY or empty. */
237
+ async function readStdin() {
238
+ // Only read stdin when it's explicitly piped (isTTY is exactly false or undefined with data)
239
+ if (process.stdin.isTTY)
240
+ return null;
241
+ // Race stdin read against a short timeout to avoid hanging when no data is piped
242
+ return new Promise((resolve) => {
243
+ const chunks = [];
244
+ let resolved = false;
245
+ const onData = (chunk) => {
246
+ chunks.push(chunk);
247
+ };
248
+ const onEnd = () => {
249
+ if (!resolved) {
250
+ resolved = true;
251
+ clearTimeout(timeout);
252
+ process.stdin.off('data', onData);
253
+ process.stdin.off('end', onEnd);
254
+ process.stdin.off('error', onError);
255
+ const text = Buffer.concat(chunks).toString('utf8').trim();
256
+ resolve(text.length > 0 ? text : null);
257
+ }
258
+ };
259
+ const onError = () => {
260
+ if (!resolved) {
261
+ resolved = true;
262
+ clearTimeout(timeout);
263
+ process.stdin.off('data', onData);
264
+ process.stdin.off('end', onEnd);
265
+ process.stdin.off('error', onError);
266
+ resolve(null);
267
+ }
268
+ };
269
+ const timeout = setTimeout(() => {
270
+ if (!resolved) {
271
+ resolved = true;
272
+ process.stdin.off('data', onData);
273
+ process.stdin.off('end', onEnd);
274
+ process.stdin.off('error', onError);
275
+ process.stdin.pause();
276
+ resolve(null);
277
+ }
278
+ }, 500);
279
+ process.stdin.on('data', onData);
280
+ process.stdin.on('end', onEnd);
281
+ process.stdin.on('error', onError);
282
+ process.stdin.resume();
283
+ });
284
+ }
285
+ /** Load and parse a plan file, returning normalized steps */
286
+ function loadPlanFile(planPath, jsonOutput) {
287
+ try {
288
+ const raw = readFileSync(planPath, 'utf8');
289
+ const parsed = JSON.parse(raw);
290
+ if (!Array.isArray(parsed) || parsed.length === 0) {
291
+ if (jsonOutput) {
292
+ process.stdout.write(JSON.stringify({ error: 'Plan file must contain a non-empty JSON array' }) + '\n');
293
+ }
294
+ else {
295
+ process.stderr.write(` ${color('Error:', 'red')} Plan file must contain a non-empty JSON array.\n`);
296
+ }
297
+ return null;
298
+ }
299
+ const steps = parsed.map((entry) => {
300
+ const label = typeof entry.label === 'string' ? entry.label : undefined;
301
+ const intent = normalizeIntent(entry);
302
+ return { intent, label };
303
+ });
304
+ return { steps };
305
+ }
306
+ catch (err) {
307
+ const message = err instanceof Error ? err.message : String(err);
308
+ if (jsonOutput) {
309
+ process.stdout.write(JSON.stringify({ error: `Failed to load plan: ${message}` }) + '\n');
310
+ }
311
+ else {
312
+ process.stderr.write(` ${color('Error:', 'red')} Failed to load plan: ${message}\n`);
313
+ }
314
+ return null;
315
+ }
316
+ }
317
+ export async function simulate(args, options = {}) {
318
+ const jsonOutput = options.json || args.includes('--json');
319
+ const policyPath = options.policy || flagValue(args, '--policy');
320
+ const planPath = options.plan || flagValue(args, '--plan');
321
+ // Build simulator registry with all built-in simulators
322
+ const simulators = createSimulatorRegistry();
323
+ simulators.register(createGitSimulator());
324
+ simulators.register(createFilesystemSimulator());
325
+ simulators.register(createDependencyGraphSimulator());
326
+ simulators.register(createPackageSimulator());
327
+ // Plan mode: simulate a batch of actions
328
+ if (planPath) {
329
+ return simulatePlanCommand(planPath, simulators, policyPath, jsonOutput);
330
+ }
331
+ // Single-action mode (existing behavior)
332
+ // Try to build intent from args first, fall back to stdin
333
+ let intent = buildIntent(args);
334
+ if (!intent) {
335
+ const stdinData = await readStdin();
336
+ if (stdinData) {
337
+ try {
338
+ const raw = JSON.parse(stdinData);
339
+ intent = normalizeIntent(raw);
340
+ }
341
+ catch {
342
+ if (jsonOutput) {
343
+ process.stdout.write(JSON.stringify({ error: 'Invalid JSON on stdin' }) + '\n');
344
+ }
345
+ else {
346
+ process.stderr.write(` ${color('Error:', 'red')} Invalid JSON on stdin.\n`);
347
+ }
348
+ return EXIT_INPUT_ERROR;
349
+ }
350
+ }
351
+ }
352
+ if (!intent) {
353
+ if (jsonOutput) {
354
+ process.stdout.write(JSON.stringify({ error: 'No action provided' }) + '\n');
355
+ }
356
+ else {
357
+ process.stderr.write(` ${color('Error:', 'red')} No action provided.\n`);
358
+ printUsage();
359
+ }
360
+ return EXIT_INPUT_ERROR;
361
+ }
362
+ // Validate the action type is recognized when provided via --action flag
363
+ const actionArg = flagValue(args, '--action');
364
+ if (actionArg && !ACTION_TYPES[actionArg]) {
365
+ const validTypes = Object.keys(ACTION_TYPES).join(', ');
366
+ if (jsonOutput) {
367
+ process.stdout.write(JSON.stringify({ error: `Unknown action type: ${actionArg}`, validTypes }) + '\n');
368
+ }
369
+ else {
370
+ process.stderr.write(` ${color('Error:', 'red')} Unknown action type: ${actionArg}\n`);
371
+ process.stderr.write(` ${dim('Valid types:')} ${validTypes}\n`);
372
+ }
373
+ return EXIT_INPUT_ERROR;
374
+ }
375
+ // Find a simulator that supports this intent
376
+ const simulator = simulators.find(intent);
377
+ if (!simulator) {
378
+ if (jsonOutput) {
379
+ process.stdout.write(JSON.stringify({
380
+ error: `No simulator supports action: ${intent.action}`,
381
+ intent: { action: intent.action, target: intent.target },
382
+ }) + '\n');
383
+ }
384
+ else {
385
+ process.stderr.write(` ${color('No simulator available', 'yellow')} for action ${bold(intent.action)}\n`);
386
+ process.stderr.write(` ${dim('Supported:')} file.write, file.delete, git.push, git.merge, git.force-push, git.branch.delete, shell.exec (npm/yarn/pnpm)\n`);
387
+ }
388
+ return EXIT_INPUT_ERROR;
389
+ }
390
+ // Run the simulation
391
+ const result = await simulator.simulate(intent, {});
392
+ // Evaluate governance (policy + invariants) if --policy is provided
393
+ const gov = policyPath ? evaluateGovernance(intent, result, policyPath) : null;
394
+ if (jsonOutput) {
395
+ const output = { ...result };
396
+ if (gov) {
397
+ output.governance = {
398
+ allowed: gov.allowed,
399
+ policy: gov.policyResult
400
+ ? {
401
+ decision: gov.policyResult.decision,
402
+ reason: gov.policyResult.reason,
403
+ matchedRule: gov.policyResult.matchedRule,
404
+ }
405
+ : null,
406
+ invariantViolations: gov.invariantViolations,
407
+ };
408
+ }
409
+ process.stdout.write(JSON.stringify(output) + '\n');
410
+ }
411
+ else {
412
+ renderTextOutput(result);
413
+ if (gov) {
414
+ renderGovernanceOutput(gov);
415
+ }
416
+ }
417
+ // Determine exit code based on governance evaluation
418
+ if (gov) {
419
+ if (gov.policyResult && !gov.policyResult.allowed)
420
+ return EXIT_POLICY_DENIED;
421
+ if (gov.invariantViolations.length > 0)
422
+ return EXIT_INVARIANT_VIOLATION;
423
+ }
424
+ return EXIT_OK;
425
+ }
426
+ /** Handle plan-level simulation via --plan flag */
427
+ async function simulatePlanCommand(planPath, simulators, policyPath, jsonOutput) {
428
+ const plan = loadPlanFile(planPath, jsonOutput);
429
+ if (!plan)
430
+ return EXIT_INPUT_ERROR;
431
+ const planResult = await simulatePlan(plan.steps, simulators);
432
+ // Evaluate governance for each step that produced a result
433
+ let worstExit = EXIT_OK;
434
+ const stepGovernance = [];
435
+ if (policyPath) {
436
+ let hasPolicyDenial = false;
437
+ let hasInvariantViolation = false;
438
+ for (const step of planResult.steps) {
439
+ if (step.result) {
440
+ const gov = evaluateGovernance(step.intent, step.result, policyPath);
441
+ stepGovernance.push(gov);
442
+ if (gov.policyResult && !gov.policyResult.allowed)
443
+ hasPolicyDenial = true;
444
+ if (gov.invariantViolations.length > 0)
445
+ hasInvariantViolation = true;
446
+ }
447
+ else {
448
+ stepGovernance.push(null);
449
+ }
450
+ }
451
+ // Policy denial takes priority over invariant violation (matching single-action behavior)
452
+ if (hasPolicyDenial)
453
+ worstExit = EXIT_POLICY_DENIED;
454
+ else if (hasInvariantViolation)
455
+ worstExit = EXIT_INVARIANT_VIOLATION;
456
+ }
457
+ if (jsonOutput) {
458
+ const output = {
459
+ steps: planResult.steps,
460
+ interactions: planResult.interactions,
461
+ compositeForecast: planResult.compositeForecast,
462
+ durationMs: planResult.durationMs,
463
+ };
464
+ if (policyPath) {
465
+ output.governance = {
466
+ allowed: worstExit === EXIT_OK,
467
+ steps: stepGovernance.map((gov) => gov
468
+ ? {
469
+ allowed: gov.allowed,
470
+ policy: gov.policyResult
471
+ ? {
472
+ decision: gov.policyResult.decision,
473
+ reason: gov.policyResult.reason,
474
+ }
475
+ : null,
476
+ invariantViolations: gov.invariantViolations,
477
+ }
478
+ : null),
479
+ };
480
+ }
481
+ process.stdout.write(JSON.stringify(output) + '\n');
482
+ }
483
+ else {
484
+ renderPlanTextOutput(planResult);
485
+ if (policyPath && stepGovernance.some((g) => g !== null)) {
486
+ process.stderr.write(` ${bold('Governance Evaluation')}\n`);
487
+ process.stderr.write(` ${dim('─'.repeat(50))}\n\n`);
488
+ for (let i = 0; i < stepGovernance.length; i++) {
489
+ const gov = stepGovernance[i];
490
+ if (!gov)
491
+ continue;
492
+ const step = planResult.steps[i];
493
+ const label = step.label || step.intent.action;
494
+ const govColor = gov.allowed ? 'green' : 'red';
495
+ const verdict = gov.allowed ? 'ALLOW' : 'DENY';
496
+ process.stderr.write(` ${dim(`[${i}]`)} ${label}: ${color(verdict, govColor)}\n`);
497
+ }
498
+ process.stderr.write('\n');
499
+ const overallVerdict = worstExit === EXIT_OK ? color('ALLOWED', 'green') : color('DENIED', 'red');
500
+ process.stderr.write(` ${bold('Verdict:')} ${overallVerdict}\n\n`);
501
+ }
502
+ }
503
+ return worstExit;
504
+ }
505
+ //# sourceMappingURL=simulate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulate.js","sourceRoot":"","sources":["../../src/commands/simulate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function status(args: string[]): Promise<number>;
2
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAuBA,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA8E5D"}