@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
@@ -1,138 +0,0 @@
1
- // Policy pack loader — resolves, loads, validates, and merges policy packs.
2
- // Supports local directory packs and npm-style package references.
3
- //
4
- // A policy pack is a YAML or JSON policy file that can be referenced via the
5
- // `extends` key in a policy definition. Packs are loaded and their rules are
6
- // merged with the local policy, with local rules taking precedence.
7
- import { readFileSync, existsSync } from 'node:fs';
8
- import { resolve, join } from 'node:path';
9
- import { loadYamlPolicy } from './yaml-loader.js';
10
- import { validatePolicy } from './loader.js';
11
- /** Candidate filenames when resolving a pack directory */
12
- const PACK_MANIFEST_CANDIDATES = [
13
- 'agentguard-pack.yaml',
14
- 'agentguard-pack.yml',
15
- 'agentguard-pack.json',
16
- 'agentguard.yaml',
17
- 'agentguard.yml',
18
- ];
19
- /**
20
- * Resolve a single pack reference to an absolute file path.
21
- *
22
- * Supports three reference styles:
23
- * 1. Relative path — `"./packs/strict"` or `"./packs/strict.yaml"`
24
- * 2. Absolute path — `"/home/user/packs/strict.yaml"`
25
- * 3. npm package — `"@agentguard/security-pack"` resolved from node_modules
26
- */
27
- export function resolvePackPath(ref, baseDir) {
28
- // 1. Direct file reference (relative or absolute)
29
- const directPath = resolve(baseDir, ref);
30
- if (existsSync(directPath)) {
31
- // If it's a file, use it directly
32
- if (directPath.endsWith('.yaml') ||
33
- directPath.endsWith('.yml') ||
34
- directPath.endsWith('.json')) {
35
- return directPath;
36
- }
37
- // If it's a directory, look for manifest files
38
- for (const candidate of PACK_MANIFEST_CANDIDATES) {
39
- const candidatePath = join(directPath, candidate);
40
- if (existsSync(candidatePath)) {
41
- return candidatePath;
42
- }
43
- }
44
- }
45
- // Try with common extensions if the direct path didn't work
46
- for (const ext of ['.yaml', '.yml', '.json']) {
47
- const withExt = directPath + ext;
48
- if (existsSync(withExt)) {
49
- return withExt;
50
- }
51
- }
52
- // 2. npm package reference — search node_modules
53
- const nodeModulesPath = join(baseDir, 'node_modules', ref);
54
- if (existsSync(nodeModulesPath)) {
55
- for (const candidate of PACK_MANIFEST_CANDIDATES) {
56
- const candidatePath = join(nodeModulesPath, candidate);
57
- if (existsSync(candidatePath)) {
58
- return candidatePath;
59
- }
60
- }
61
- }
62
- return null;
63
- }
64
- /**
65
- * Load a single policy pack from a resolved file path.
66
- */
67
- export function loadPackFile(filePath) {
68
- const content = readFileSync(filePath, 'utf8');
69
- if (filePath.endsWith('.yaml') || filePath.endsWith('.yml')) {
70
- return loadYamlPolicy(content, `pack:${filePath}`);
71
- }
72
- try {
73
- const parsed = JSON.parse(content);
74
- const result = validatePolicy(parsed);
75
- if (!result.valid) {
76
- return null;
77
- }
78
- return {
79
- id: parsed.id || `pack:${filePath}`,
80
- name: parsed.name || 'JSON Pack',
81
- description: parsed.description,
82
- rules: parsed.rules,
83
- severity: parsed.severity ?? 3,
84
- };
85
- }
86
- catch {
87
- return null;
88
- }
89
- }
90
- /**
91
- * Resolve and load all policy packs from an `extends` list.
92
- *
93
- * @param extends_ - Array of pack references (paths or npm package names)
94
- * @param baseDir - Directory to resolve relative paths from
95
- * @returns Loaded pack policies and any errors encountered
96
- */
97
- export function resolveExtends(extends_, baseDir) {
98
- const policies = [];
99
- const errors = [];
100
- const seenIds = new Set();
101
- for (const ref of extends_) {
102
- const resolvedPath = resolvePackPath(ref, baseDir);
103
- if (!resolvedPath) {
104
- errors.push(`Pack not found: "${ref}" (searched from ${baseDir})`);
105
- continue;
106
- }
107
- const pack = loadPackFile(resolvedPath);
108
- if (!pack) {
109
- errors.push(`Failed to load pack: "${ref}" (${resolvedPath})`);
110
- continue;
111
- }
112
- if (seenIds.has(pack.id)) {
113
- errors.push(`Duplicate pack ID: "${pack.id}" from "${ref}"`);
114
- continue;
115
- }
116
- seenIds.add(pack.id);
117
- policies.push(pack);
118
- }
119
- return { policies, errors };
120
- }
121
- /**
122
- * Merge pack policies with a local policy.
123
- *
124
- * Precedence: local rules override pack rules. Within packs, earlier entries
125
- * in the `extends` list take precedence over later entries.
126
- *
127
- * The merge strategy is:
128
- * 1. Collect all rules from packs (in extends order)
129
- * 2. Append local rules (which take precedence during evaluation since
130
- * the evaluator checks deny rules first, then allow rules)
131
- * 3. Return a single merged policy array
132
- */
133
- export function mergePolicies(localPolicy, packPolicies) {
134
- // Pack policies come first (lower precedence in evaluation order)
135
- // Local policy comes last (highest precedence)
136
- return [...packPolicies, localPolicy];
137
- }
138
- //# sourceMappingURL=pack-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pack-loader.js","sourceRoot":"","sources":["../../src/policy/pack-loader.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import type { LoadedPolicy } from './evaluator.js';
2
- export interface YamlPolicyDef {
3
- id?: string;
4
- name?: string;
5
- description?: string;
6
- severity?: number;
7
- extends?: string[];
8
- rules?: YamlRule[];
9
- }
10
- interface YamlRule {
11
- action?: string;
12
- effect?: string;
13
- target?: string;
14
- branches?: string[];
15
- reason?: string;
16
- limit?: number;
17
- requireTests?: boolean;
18
- }
19
- export declare function parseYamlPolicy(yaml: string): YamlPolicyDef;
20
- export declare function loadYamlPolicy(yaml: string, defaultId?: string): LoadedPolicy;
21
- export declare function loadYamlPolicies(yaml: string): LoadedPolicy[];
22
- export {};
23
- //# sourceMappingURL=yaml-loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"yaml-loader.d.ts","sourceRoot":"","sources":["../../src/policy/yaml-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,UAAU,QAAQ;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAkCD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CA2H3D;AAgED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,CAU7E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAE7D"}
@@ -1,222 +0,0 @@
1
- // YAML policy loader — parses simple YAML policy files into LoadedPolicy format.
2
- // Supports the subset of YAML needed for AgentGuard policy definitions.
3
- // No external dependencies — minimal line-based parser for constrained format.
4
- function trimQuotes(s) {
5
- if ((s.startsWith('"') && s.endsWith('"')) || (s.startsWith("'") && s.endsWith("'"))) {
6
- return s.slice(1, -1);
7
- }
8
- return s;
9
- }
10
- function parseValue(raw) {
11
- const s = raw.trim();
12
- if (s === 'true')
13
- return true;
14
- if (s === 'false')
15
- return false;
16
- if (s === 'null' || s === '~')
17
- return '';
18
- if (/^-?\d+$/.test(s))
19
- return parseInt(s, 10);
20
- if (/^-?\d+\.\d+$/.test(s))
21
- return parseFloat(s);
22
- return trimQuotes(s);
23
- }
24
- function parseInlineArray(raw) {
25
- const trimmed = raw.trim();
26
- if (!trimmed.startsWith('[') || !trimmed.endsWith(']'))
27
- return [];
28
- const inner = trimmed.slice(1, -1);
29
- return inner
30
- .split(',')
31
- .map((s) => trimQuotes(s.trim()))
32
- .filter((s) => s.length > 0);
33
- }
34
- function indentLevel(line) {
35
- const match = line.match(/^(\s*)/);
36
- return match ? match[1].length : 0;
37
- }
38
- export function parseYamlPolicy(yaml) {
39
- const lines = yaml.split('\n');
40
- const result = {};
41
- const rules = [];
42
- let currentRule = null;
43
- let inRules = false;
44
- let inBranches = false;
45
- let inExtends = false;
46
- for (const rawLine of lines) {
47
- const line = rawLine.replace(/\r$/, '');
48
- // Skip blank lines and comments
49
- if (!line.trim() || line.trim().startsWith('#'))
50
- continue;
51
- const indent = indentLevel(line);
52
- const trimmed = line.trim();
53
- // Top-level keys (indent 0)
54
- if (indent === 0) {
55
- inRules = false;
56
- inBranches = false;
57
- inExtends = false;
58
- if (currentRule) {
59
- rules.push(currentRule);
60
- currentRule = null;
61
- }
62
- const colonIdx = trimmed.indexOf(':');
63
- if (colonIdx === -1)
64
- continue;
65
- const key = trimmed.slice(0, colonIdx).trim();
66
- const val = trimmed.slice(colonIdx + 1).trim();
67
- switch (key) {
68
- case 'id':
69
- result.id = trimQuotes(val);
70
- break;
71
- case 'name':
72
- result.name = trimQuotes(val);
73
- break;
74
- case 'description':
75
- result.description = trimQuotes(val);
76
- break;
77
- case 'severity':
78
- result.severity = parseInt(val, 10);
79
- break;
80
- case 'extends':
81
- if (val) {
82
- // Inline array: extends: ["@agentguard/security-pack", "./custom"]
83
- const arr = parseInlineArray(val);
84
- if (arr.length > 0) {
85
- result.extends = arr;
86
- }
87
- }
88
- else {
89
- // Multi-line array follows
90
- inExtends = true;
91
- result.extends = [];
92
- }
93
- break;
94
- case 'rules':
95
- inRules = true;
96
- break;
97
- }
98
- continue;
99
- }
100
- // Inside extends array (multi-line)
101
- if (inExtends && trimmed.startsWith('- ')) {
102
- result.extends = result.extends || [];
103
- result.extends.push(trimQuotes(trimmed.slice(2).trim()));
104
- continue;
105
- }
106
- // Inside rules array
107
- if (inRules) {
108
- // New rule entry (- action: ...)
109
- if (trimmed.startsWith('- ')) {
110
- if (currentRule)
111
- rules.push(currentRule);
112
- currentRule = {};
113
- inBranches = false;
114
- const rest = trimmed.slice(2).trim();
115
- const colonIdx = rest.indexOf(':');
116
- if (colonIdx !== -1) {
117
- const key = rest.slice(0, colonIdx).trim();
118
- const val = rest.slice(colonIdx + 1).trim();
119
- applyRuleField(currentRule, key, val);
120
- }
121
- continue;
122
- }
123
- // Continuation of branches array
124
- if (inBranches && trimmed.startsWith('- ') && currentRule) {
125
- currentRule.branches = currentRule.branches || [];
126
- currentRule.branches.push(trimQuotes(trimmed.slice(2).trim()));
127
- continue;
128
- }
129
- // Rule property
130
- if (currentRule) {
131
- inBranches = false;
132
- const colonIdx = trimmed.indexOf(':');
133
- if (colonIdx !== -1) {
134
- const key = trimmed.slice(0, colonIdx).trim();
135
- const val = trimmed.slice(colonIdx + 1).trim();
136
- if (key === 'branches' && !val) {
137
- inBranches = true;
138
- currentRule.branches = [];
139
- continue;
140
- }
141
- applyRuleField(currentRule, key, val);
142
- }
143
- }
144
- }
145
- }
146
- if (currentRule)
147
- rules.push(currentRule);
148
- if (rules.length > 0)
149
- result.rules = rules;
150
- return result;
151
- }
152
- function applyRuleField(rule, key, val) {
153
- switch (key) {
154
- case 'action':
155
- rule.action = trimQuotes(val);
156
- break;
157
- case 'effect':
158
- rule.effect = trimQuotes(val);
159
- break;
160
- case 'target':
161
- rule.target = trimQuotes(val);
162
- break;
163
- case 'reason':
164
- rule.reason = trimQuotes(val);
165
- break;
166
- case 'limit': {
167
- const n = parseValue(val);
168
- if (typeof n === 'number')
169
- rule.limit = n;
170
- break;
171
- }
172
- case 'requireTests':
173
- rule.requireTests = val === 'true';
174
- break;
175
- case 'branches': {
176
- const arr = parseInlineArray(val);
177
- if (arr.length > 0)
178
- rule.branches = arr;
179
- break;
180
- }
181
- }
182
- }
183
- function convertRule(yamlRule) {
184
- const conditions = {};
185
- let hasConditions = false;
186
- if (yamlRule.target) {
187
- conditions.scope = [yamlRule.target];
188
- hasConditions = true;
189
- }
190
- if (yamlRule.branches) {
191
- conditions.branches = yamlRule.branches;
192
- hasConditions = true;
193
- }
194
- if (yamlRule.limit !== undefined) {
195
- conditions.limit = yamlRule.limit;
196
- hasConditions = true;
197
- }
198
- if (yamlRule.requireTests !== undefined) {
199
- conditions.requireTests = yamlRule.requireTests;
200
- hasConditions = true;
201
- }
202
- return {
203
- action: yamlRule.action || '*',
204
- effect: yamlRule.effect || 'deny',
205
- conditions: hasConditions ? conditions : undefined,
206
- reason: yamlRule.reason,
207
- };
208
- }
209
- export function loadYamlPolicy(yaml, defaultId) {
210
- const def = parseYamlPolicy(yaml);
211
- return {
212
- id: def.id || defaultId || 'yaml-policy',
213
- name: def.name || 'YAML Policy',
214
- description: def.description,
215
- rules: (def.rules || []).map(convertRule),
216
- severity: def.severity ?? 3,
217
- };
218
- }
219
- export function loadYamlPolicies(yaml) {
220
- return [loadYamlPolicy(yaml)];
221
- }
222
- //# sourceMappingURL=yaml-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"yaml-loader.js","sourceRoot":"","sources":["../../src/policy/yaml-loader.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- export type { GovernanceRenderer, RendererConfig, RunSummary } from './types.js';
2
- export { createRendererRegistry } from './registry.js';
3
- export type { RendererRegistry } from './registry.js';
4
- export { createTuiRenderer } from './tui-renderer.js';
5
- export type { TuiRendererOptions } from './tui-renderer.js';
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderers/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,4 +0,0 @@
1
- // Renderer plugin system — re-exports for public API.
2
- export { createRendererRegistry } from './registry.js';
3
- export { createTuiRenderer } from './tui-renderer.js';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderers/index.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAItD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAGvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,39 +0,0 @@
1
- import type { GovernanceRenderer, RendererConfig, RunSummary } from './types.js';
2
- import type { KernelResult } from '../kernel/kernel.js';
3
- import type { MonitorDecision } from '../kernel/monitor.js';
4
- import type { GovernanceDecisionRecord } from '../kernel/decisions/types.js';
5
- import type { SimulationResult } from '../kernel/simulation/types.js';
6
- export interface RendererRegistry {
7
- /** Register a renderer. Throws if a renderer with the same ID already exists. */
8
- register(renderer: GovernanceRenderer): void;
9
- /** Unregister a renderer by ID. Calls dispose() if available. Returns true if found. */
10
- unregister(id: string): boolean;
11
- /** Get a registered renderer by ID */
12
- get(id: string): GovernanceRenderer | undefined;
13
- /** List all registered renderer IDs */
14
- list(): string[];
15
- /** Number of registered renderers */
16
- count(): number;
17
- /** Dispatch: run started */
18
- notifyRunStarted(config: RendererConfig): void;
19
- /** Dispatch: action result */
20
- notifyActionResult(result: KernelResult): void;
21
- /** Dispatch: monitor status */
22
- notifyMonitorStatus(decision: MonitorDecision): void;
23
- /** Dispatch: simulation completed */
24
- notifySimulation(simulation: SimulationResult): void;
25
- /** Dispatch: decision record */
26
- notifyDecisionRecord(record: GovernanceDecisionRecord): void;
27
- /** Dispatch: run ended */
28
- notifyRunEnded(summary: RunSummary): void;
29
- /** Dispose all renderers and clear the registry */
30
- disposeAll(): void;
31
- }
32
- /**
33
- * Create a new renderer registry.
34
- *
35
- * Renderers are dispatched in registration order.
36
- * Errors in one renderer do not prevent other renderers from receiving events.
37
- */
38
- export declare function createRendererRegistry(): RendererRegistry;
39
- //# sourceMappingURL=registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/renderers/registry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAE7C,wFAAwF;IACxF,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAEhC,sCAAsC;IACtC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAAC;IAEhD,uCAAuC;IACvC,IAAI,IAAI,MAAM,EAAE,CAAC;IAEjB,qCAAqC;IACrC,KAAK,IAAI,MAAM,CAAC;IAEhB,4BAA4B;IAC5B,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAE/C,8BAA8B;IAC9B,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAE/C,+BAA+B;IAC/B,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IAErD,qCAAqC;IACrC,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAErD,gCAAgC;IAChC,oBAAoB,CAAC,MAAM,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAE7D,0BAA0B;IAC1B,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IAE1C,mDAAmD;IACnD,UAAU,IAAI,IAAI,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,CAkGzD"}
@@ -1,97 +0,0 @@
1
- // Renderer registry — manages multiple governance renderers.
2
- // Dispatches lifecycle events to all registered renderers.
3
- /**
4
- * Create a new renderer registry.
5
- *
6
- * Renderers are dispatched in registration order.
7
- * Errors in one renderer do not prevent other renderers from receiving events.
8
- */
9
- export function createRendererRegistry() {
10
- const renderers = new Map();
11
- const safeCall = (fn) => {
12
- try {
13
- fn();
14
- }
15
- catch {
16
- // Renderer errors are non-fatal — isolate failures
17
- }
18
- };
19
- return {
20
- register(renderer) {
21
- if (renderers.has(renderer.id)) {
22
- throw new Error(`Renderer already registered: "${renderer.id}"`);
23
- }
24
- renderers.set(renderer.id, renderer);
25
- },
26
- unregister(id) {
27
- const renderer = renderers.get(id);
28
- if (!renderer)
29
- return false;
30
- if (renderer.dispose) {
31
- safeCall(() => renderer.dispose());
32
- }
33
- renderers.delete(id);
34
- return true;
35
- },
36
- get(id) {
37
- return renderers.get(id);
38
- },
39
- list() {
40
- return [...renderers.keys()];
41
- },
42
- count() {
43
- return renderers.size;
44
- },
45
- notifyRunStarted(config) {
46
- for (const renderer of renderers.values()) {
47
- if (renderer.onRunStarted) {
48
- safeCall(() => renderer.onRunStarted(config));
49
- }
50
- }
51
- },
52
- notifyActionResult(result) {
53
- for (const renderer of renderers.values()) {
54
- if (renderer.onActionResult) {
55
- safeCall(() => renderer.onActionResult(result));
56
- }
57
- }
58
- },
59
- notifyMonitorStatus(decision) {
60
- for (const renderer of renderers.values()) {
61
- if (renderer.onMonitorStatus) {
62
- safeCall(() => renderer.onMonitorStatus(decision));
63
- }
64
- }
65
- },
66
- notifySimulation(simulation) {
67
- for (const renderer of renderers.values()) {
68
- if (renderer.onSimulation) {
69
- safeCall(() => renderer.onSimulation(simulation));
70
- }
71
- }
72
- },
73
- notifyDecisionRecord(record) {
74
- for (const renderer of renderers.values()) {
75
- if (renderer.onDecisionRecord) {
76
- safeCall(() => renderer.onDecisionRecord(record));
77
- }
78
- }
79
- },
80
- notifyRunEnded(summary) {
81
- for (const renderer of renderers.values()) {
82
- if (renderer.onRunEnded) {
83
- safeCall(() => renderer.onRunEnded(summary));
84
- }
85
- }
86
- },
87
- disposeAll() {
88
- for (const renderer of renderers.values()) {
89
- if (renderer.dispose) {
90
- safeCall(() => renderer.dispose());
91
- }
92
- }
93
- renderers.clear();
94
- },
95
- };
96
- }
97
- //# sourceMappingURL=registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/renderers/registry.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import type { GovernanceRenderer } from './types.js';
2
- export interface TuiRendererOptions {
3
- /** Output stream — defaults to process.stderr */
4
- output?: {
5
- write(s: string): boolean;
6
- };
7
- /** Show verbose output (decision records, reasons) */
8
- verbose?: boolean;
9
- }
10
- /**
11
- * Create a TUI governance renderer.
12
- *
13
- * This is the reference implementation of GovernanceRenderer. It adapts
14
- * the existing tui.ts render functions into the plugin interface, writing
15
- * ANSI-colored output to the configured stream (stderr by default).
16
- */
17
- export declare function createTuiRenderer(options?: TuiRendererOptions): GovernanceRenderer;
18
- //# sourceMappingURL=tui-renderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tui-renderer.d.ts","sourceRoot":"","sources":["../../src/renderers/tui-renderer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAA8B,MAAM,YAAY,CAAC;AAajF,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACvC,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,kBAAkB,CAwDtF"}
@@ -1,57 +0,0 @@
1
- // TUI governance renderer — wraps the existing tui.ts render functions
2
- // into a GovernanceRenderer plugin. Writes ANSI-colored output to a stream.
3
- import { renderBanner, renderKernelResult, renderMonitorStatus, renderDecisionRecord, renderSimulation, } from '../cli/tui.js';
4
- /**
5
- * Create a TUI governance renderer.
6
- *
7
- * This is the reference implementation of GovernanceRenderer. It adapts
8
- * the existing tui.ts render functions into the plugin interface, writing
9
- * ANSI-colored output to the configured stream (stderr by default).
10
- */
11
- export function createTuiRenderer(options = {}) {
12
- const output = options.output ?? process.stderr;
13
- const verbose = options.verbose ?? false;
14
- return {
15
- id: 'tui',
16
- name: 'Terminal UI Renderer',
17
- onRunStarted(config) {
18
- output.write(renderBanner({
19
- policyName: config.policyName,
20
- invariantCount: config.invariantCount,
21
- verbose: config.verbose ?? verbose,
22
- }));
23
- output.write(` \x1b[2mrun: ${config.runId}\x1b[0m\n`);
24
- if (config.simulatorCount && config.simulatorCount > 0) {
25
- output.write(` \x1b[2msimulators: ${config.simulatorCount} active\x1b[0m\n`);
26
- }
27
- output.write('\n');
28
- },
29
- onActionResult(result) {
30
- output.write(renderKernelResult(result, verbose) + '\n');
31
- if (result.decision.violations.length > 0 || !result.allowed) {
32
- output.write(renderMonitorStatus(result.decision) + '\n');
33
- }
34
- },
35
- onMonitorStatus(decision) {
36
- output.write(renderMonitorStatus(decision) + '\n');
37
- },
38
- onSimulation(simulation) {
39
- output.write(renderSimulation(simulation) + '\n');
40
- },
41
- onDecisionRecord(record) {
42
- if (verbose) {
43
- output.write(renderDecisionRecord(record) + '\n');
44
- }
45
- },
46
- onRunEnded(summary) {
47
- const lines = [];
48
- lines.push('');
49
- lines.push(` \x1b[1m\x1b[36mRun Complete\x1b[0m \x1b[2m${summary.runId}\x1b[0m`);
50
- lines.push(` \x1b[2mactions: ${summary.totalActions} | allowed: ${summary.allowed} | denied: ${summary.denied} | violations: ${summary.violations}\x1b[0m`);
51
- lines.push(` \x1b[2mduration: ${summary.durationMs}ms\x1b[0m`);
52
- lines.push('');
53
- output.write(lines.join('\n'));
54
- },
55
- };
56
- }
57
- //# sourceMappingURL=tui-renderer.js.map