@red-codes/agentguard 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (434) hide show
  1. package/dist/args.d.ts.map +1 -0
  2. package/dist/args.js.map +1 -0
  3. package/dist/bin.d.ts.map +1 -0
  4. package/dist/bin.js +29190 -0
  5. package/dist/bin.js.map +7 -0
  6. package/dist/colors.d.ts.map +1 -0
  7. package/dist/colors.js.map +1 -0
  8. package/dist/commands/adoption.d.ts +2 -0
  9. package/dist/commands/adoption.d.ts.map +1 -0
  10. package/dist/commands/adoption.js +172 -0
  11. package/dist/commands/adoption.js.map +1 -0
  12. package/dist/commands/analytics.d.ts +3 -0
  13. package/dist/commands/analytics.d.ts.map +1 -0
  14. package/dist/commands/analytics.js +7 -0
  15. package/dist/commands/analytics.js.map +1 -0
  16. package/dist/commands/audit-verify.d.ts +3 -0
  17. package/dist/commands/audit-verify.d.ts.map +1 -0
  18. package/dist/commands/audit-verify.js +94 -0
  19. package/dist/commands/audit-verify.js.map +1 -0
  20. package/dist/commands/auto-setup.d.ts +28 -0
  21. package/dist/commands/auto-setup.d.ts.map +1 -0
  22. package/dist/commands/auto-setup.js +146 -0
  23. package/dist/commands/auto-setup.js.map +1 -0
  24. package/dist/commands/ci-check.d.ts +13 -0
  25. package/dist/commands/ci-check.d.ts.map +1 -0
  26. package/dist/commands/ci-check.js +286 -0
  27. package/dist/commands/ci-check.js.map +1 -0
  28. package/dist/commands/claude-hook.d.ts +2 -0
  29. package/dist/commands/claude-hook.d.ts.map +1 -0
  30. package/dist/commands/claude-hook.js +254 -0
  31. package/dist/commands/claude-hook.js.map +1 -0
  32. package/dist/commands/claude-init.d.ts.map +1 -0
  33. package/dist/commands/claude-init.js +401 -0
  34. package/dist/commands/claude-init.js.map +1 -0
  35. package/dist/commands/config.d.ts +39 -0
  36. package/dist/commands/config.d.ts.map +1 -0
  37. package/dist/commands/config.js +368 -0
  38. package/dist/commands/config.js.map +1 -0
  39. package/dist/commands/demo.d.ts +2 -0
  40. package/dist/commands/demo.d.ts.map +1 -0
  41. package/dist/commands/demo.js +100 -0
  42. package/dist/commands/demo.js.map +1 -0
  43. package/dist/commands/diff.d.ts +3 -0
  44. package/dist/commands/diff.d.ts.map +1 -0
  45. package/dist/commands/diff.js +364 -0
  46. package/dist/commands/diff.js.map +1 -0
  47. package/dist/commands/evidence-pr.d.ts +3 -0
  48. package/dist/commands/evidence-pr.d.ts.map +1 -0
  49. package/dist/commands/evidence-pr.js +162 -0
  50. package/dist/commands/evidence-pr.js.map +1 -0
  51. package/dist/commands/export.d.ts +22 -0
  52. package/dist/commands/export.d.ts.map +1 -0
  53. package/dist/commands/export.js +92 -0
  54. package/dist/commands/export.js.map +1 -0
  55. package/dist/commands/guard.d.ts +21 -0
  56. package/dist/commands/guard.d.ts.map +1 -0
  57. package/dist/commands/guard.js +272 -0
  58. package/dist/commands/guard.js.map +1 -0
  59. package/dist/commands/import.d.ts +3 -0
  60. package/dist/commands/import.d.ts.map +1 -0
  61. package/dist/{cli/commands → commands}/import.js +25 -26
  62. package/dist/commands/import.js.map +1 -0
  63. package/dist/commands/init.d.ts +5 -0
  64. package/dist/commands/init.d.ts.map +1 -0
  65. package/dist/commands/init.js +1288 -0
  66. package/dist/commands/init.js.map +1 -0
  67. package/dist/commands/inspect.d.ts +4 -0
  68. package/dist/commands/inspect.d.ts.map +1 -0
  69. package/dist/{cli/commands → commands}/inspect.js +97 -70
  70. package/dist/commands/inspect.js.map +1 -0
  71. package/dist/commands/learn.d.ts +2 -0
  72. package/dist/commands/learn.d.ts.map +1 -0
  73. package/dist/commands/learn.js +264 -0
  74. package/dist/commands/learn.js.map +1 -0
  75. package/dist/commands/migrate.d.ts +3 -0
  76. package/dist/commands/migrate.d.ts.map +1 -0
  77. package/dist/commands/migrate.js +270 -0
  78. package/dist/commands/migrate.js.map +1 -0
  79. package/dist/commands/plugin.d.ts.map +1 -0
  80. package/dist/{cli/commands → commands}/plugin.js +2 -2
  81. package/dist/commands/plugin.js.map +1 -0
  82. package/dist/commands/policy-verify.d.ts +46 -0
  83. package/dist/commands/policy-verify.d.ts.map +1 -0
  84. package/dist/commands/policy-verify.js +173 -0
  85. package/dist/commands/policy-verify.js.map +1 -0
  86. package/dist/commands/policy.d.ts +27 -0
  87. package/dist/commands/policy.d.ts.map +1 -0
  88. package/dist/commands/policy.js +590 -0
  89. package/dist/commands/policy.js.map +1 -0
  90. package/dist/{cli/commands → commands}/replay.d.ts +2 -1
  91. package/dist/commands/replay.d.ts.map +1 -0
  92. package/dist/{cli/commands → commands}/replay.js +78 -12
  93. package/dist/commands/replay.js.map +1 -0
  94. package/dist/commands/session-viewer.d.ts +5 -0
  95. package/dist/commands/session-viewer.d.ts.map +1 -0
  96. package/dist/commands/session-viewer.js +462 -0
  97. package/dist/commands/session-viewer.js.map +1 -0
  98. package/dist/commands/simulate.d.ts +7 -0
  99. package/dist/commands/simulate.d.ts.map +1 -0
  100. package/dist/commands/simulate.js +505 -0
  101. package/dist/commands/simulate.js.map +1 -0
  102. package/dist/commands/status.d.ts +2 -0
  103. package/dist/commands/status.d.ts.map +1 -0
  104. package/dist/commands/status.js +212 -0
  105. package/dist/commands/status.js.map +1 -0
  106. package/dist/commands/traces.d.ts +24 -0
  107. package/dist/commands/traces.d.ts.map +1 -0
  108. package/dist/commands/traces.js +282 -0
  109. package/dist/commands/traces.js.map +1 -0
  110. package/dist/commands/trust.d.ts +6 -0
  111. package/dist/commands/trust.d.ts.map +1 -0
  112. package/dist/commands/trust.js +129 -0
  113. package/dist/commands/trust.js.map +1 -0
  114. package/dist/evidence-summary.d.ts +35 -0
  115. package/dist/evidence-summary.d.ts.map +1 -0
  116. package/dist/evidence-summary.js +202 -0
  117. package/dist/evidence-summary.js.map +1 -0
  118. package/dist/{cli/file-event-store.d.ts → file-event-store.d.ts} +1 -1
  119. package/dist/file-event-store.d.ts.map +1 -0
  120. package/dist/{cli/file-event-store.js → file-event-store.js} +1 -1
  121. package/dist/file-event-store.js.map +1 -0
  122. package/{hooks → dist/hooks}/post-commit +3 -1
  123. package/{hooks → dist/hooks}/post-merge +3 -1
  124. package/dist/hooks/pre-commit +29 -0
  125. package/dist/policy-resolver.d.ts +32 -0
  126. package/dist/policy-resolver.d.ts.map +1 -0
  127. package/dist/policy-resolver.js +171 -0
  128. package/dist/policy-resolver.js.map +1 -0
  129. package/dist/{cli/recorder.d.ts → recorder.d.ts} +1 -1
  130. package/dist/recorder.d.ts.map +1 -0
  131. package/dist/{cli/recorder.js → recorder.js} +1 -1
  132. package/dist/recorder.js.map +1 -0
  133. package/dist/replay-timeline-html.d.ts +21 -0
  134. package/dist/replay-timeline-html.d.ts.map +1 -0
  135. package/dist/replay-timeline-html.js +414 -0
  136. package/dist/replay-timeline-html.js.map +1 -0
  137. package/dist/replay.d.ts.map +1 -0
  138. package/dist/{cli/replay.js → replay.js} +92 -1
  139. package/dist/replay.js.map +1 -0
  140. package/dist/{cli/session-store.d.ts → session-store.d.ts} +5 -0
  141. package/dist/session-store.d.ts.map +1 -0
  142. package/dist/{cli/session-store.js → session-store.js} +1 -0
  143. package/dist/session-store.js.map +1 -0
  144. package/dist/session-viewer-html.d.ts +10 -0
  145. package/dist/session-viewer-html.d.ts.map +1 -0
  146. package/dist/session-viewer-html.js +737 -0
  147. package/dist/session-viewer-html.js.map +1 -0
  148. package/dist/templates/ci-only.yaml +103 -0
  149. package/dist/templates/development.yaml +107 -0
  150. package/dist/templates/permissive.yaml +87 -0
  151. package/dist/templates/strict.yaml +112 -0
  152. package/dist/tui.d.ts +3 -0
  153. package/dist/tui.d.ts.map +1 -0
  154. package/dist/tui.js +2 -0
  155. package/dist/tui.js.map +1 -0
  156. package/package.json +42 -53
  157. package/README.md +0 -298
  158. package/dist/adapters/claude-code.d.ts +0 -24
  159. package/dist/adapters/claude-code.d.ts.map +0 -1
  160. package/dist/adapters/claude-code.js +0 -99
  161. package/dist/adapters/claude-code.js.map +0 -1
  162. package/dist/adapters/file.d.ts +0 -3
  163. package/dist/adapters/file.d.ts.map +0 -1
  164. package/dist/adapters/file.js +0 -35
  165. package/dist/adapters/file.js.map +0 -1
  166. package/dist/adapters/git.d.ts +0 -3
  167. package/dist/adapters/git.d.ts.map +0 -1
  168. package/dist/adapters/git.js +0 -61
  169. package/dist/adapters/git.js.map +0 -1
  170. package/dist/adapters/registry.d.ts +0 -5
  171. package/dist/adapters/registry.d.ts.map +0 -1
  172. package/dist/adapters/registry.js +0 -15
  173. package/dist/adapters/registry.js.map +0 -1
  174. package/dist/adapters/shell.d.ts +0 -8
  175. package/dist/adapters/shell.d.ts.map +0 -1
  176. package/dist/adapters/shell.js +0 -27
  177. package/dist/adapters/shell.js.map +0 -1
  178. package/dist/cli/args.d.ts.map +0 -1
  179. package/dist/cli/args.js.map +0 -1
  180. package/dist/cli/bin.d.ts.map +0 -1
  181. package/dist/cli/bin.js +0 -5769
  182. package/dist/cli/bin.js.map +0 -7
  183. package/dist/cli/colors.d.ts.map +0 -1
  184. package/dist/cli/colors.js.map +0 -1
  185. package/dist/cli/commands/claude-hook.d.ts +0 -2
  186. package/dist/cli/commands/claude-hook.d.ts.map +0 -1
  187. package/dist/cli/commands/claude-hook.js +0 -110
  188. package/dist/cli/commands/claude-hook.js.map +0 -1
  189. package/dist/cli/commands/claude-init.d.ts.map +0 -1
  190. package/dist/cli/commands/claude-init.js +0 -150
  191. package/dist/cli/commands/claude-init.js.map +0 -1
  192. package/dist/cli/commands/export.d.ts +0 -11
  193. package/dist/cli/commands/export.d.ts.map +0 -1
  194. package/dist/cli/commands/export.js +0 -113
  195. package/dist/cli/commands/export.js.map +0 -1
  196. package/dist/cli/commands/guard.d.ts +0 -12
  197. package/dist/cli/commands/guard.d.ts.map +0 -1
  198. package/dist/cli/commands/guard.js +0 -145
  199. package/dist/cli/commands/guard.js.map +0 -1
  200. package/dist/cli/commands/import.d.ts +0 -2
  201. package/dist/cli/commands/import.d.ts.map +0 -1
  202. package/dist/cli/commands/import.js.map +0 -1
  203. package/dist/cli/commands/inspect.d.ts +0 -3
  204. package/dist/cli/commands/inspect.d.ts.map +0 -1
  205. package/dist/cli/commands/inspect.js.map +0 -1
  206. package/dist/cli/commands/plugin.d.ts.map +0 -1
  207. package/dist/cli/commands/plugin.js.map +0 -1
  208. package/dist/cli/commands/replay.d.ts.map +0 -1
  209. package/dist/cli/commands/replay.js.map +0 -1
  210. package/dist/cli/file-event-store.d.ts.map +0 -1
  211. package/dist/cli/file-event-store.js.map +0 -1
  212. package/dist/cli/policy-resolver.d.ts +0 -4
  213. package/dist/cli/policy-resolver.d.ts.map +0 -1
  214. package/dist/cli/policy-resolver.js +0 -62
  215. package/dist/cli/policy-resolver.js.map +0 -1
  216. package/dist/cli/recorder.d.ts.map +0 -1
  217. package/dist/cli/recorder.js.map +0 -1
  218. package/dist/cli/replay.d.ts.map +0 -1
  219. package/dist/cli/replay.js.map +0 -1
  220. package/dist/cli/session-store.d.ts.map +0 -1
  221. package/dist/cli/session-store.js.map +0 -1
  222. package/dist/cli/tui.d.ts +0 -24
  223. package/dist/cli/tui.d.ts.map +0 -1
  224. package/dist/cli/tui.js +0 -197
  225. package/dist/cli/tui.js.map +0 -1
  226. package/dist/core/actions.d.ts +0 -11
  227. package/dist/core/actions.d.ts.map +0 -1
  228. package/dist/core/actions.js +0 -112
  229. package/dist/core/actions.js.map +0 -1
  230. package/dist/core/adapters.d.ts +0 -19
  231. package/dist/core/adapters.d.ts.map +0 -1
  232. package/dist/core/adapters.js +0 -85
  233. package/dist/core/adapters.js.map +0 -1
  234. package/dist/core/execution-log/bridge.d.ts +0 -12
  235. package/dist/core/execution-log/bridge.d.ts.map +0 -1
  236. package/dist/core/execution-log/bridge.js +0 -112
  237. package/dist/core/execution-log/bridge.js.map +0 -1
  238. package/dist/core/execution-log/event-log.d.ts +0 -7
  239. package/dist/core/execution-log/event-log.d.ts.map +0 -1
  240. package/dist/core/execution-log/event-log.js +0 -103
  241. package/dist/core/execution-log/event-log.js.map +0 -1
  242. package/dist/core/execution-log/event-projections.d.ts +0 -28
  243. package/dist/core/execution-log/event-projections.d.ts.map +0 -1
  244. package/dist/core/execution-log/event-projections.js +0 -272
  245. package/dist/core/execution-log/event-projections.js.map +0 -1
  246. package/dist/core/execution-log/event-schema.d.ts +0 -56
  247. package/dist/core/execution-log/event-schema.d.ts.map +0 -1
  248. package/dist/core/execution-log/event-schema.js +0 -160
  249. package/dist/core/execution-log/event-schema.js.map +0 -1
  250. package/dist/core/execution-log/index.d.ts +0 -7
  251. package/dist/core/execution-log/index.d.ts.map +0 -1
  252. package/dist/core/execution-log/index.js +0 -13
  253. package/dist/core/execution-log/index.js.map +0 -1
  254. package/dist/core/hash.d.ts +0 -5
  255. package/dist/core/hash.d.ts.map +0 -1
  256. package/dist/core/hash.js +0 -13
  257. package/dist/core/hash.js.map +0 -1
  258. package/dist/core/rng.d.ts +0 -29
  259. package/dist/core/rng.d.ts.map +0 -1
  260. package/dist/core/rng.js +0 -48
  261. package/dist/core/rng.js.map +0 -1
  262. package/dist/core/types.d.ts +0 -746
  263. package/dist/core/types.d.ts.map +0 -1
  264. package/dist/core/types.js +0 -8
  265. package/dist/core/types.js.map +0 -1
  266. package/dist/events/bus.d.ts +0 -24
  267. package/dist/events/bus.d.ts.map +0 -1
  268. package/dist/events/bus.js +0 -64
  269. package/dist/events/bus.js.map +0 -1
  270. package/dist/events/decision-jsonl.d.ts +0 -8
  271. package/dist/events/decision-jsonl.d.ts.map +0 -1
  272. package/dist/events/decision-jsonl.js +0 -44
  273. package/dist/events/decision-jsonl.js.map +0 -1
  274. package/dist/events/jsonl.d.ts +0 -8
  275. package/dist/events/jsonl.d.ts.map +0 -1
  276. package/dist/events/jsonl.js +0 -46
  277. package/dist/events/jsonl.js.map +0 -1
  278. package/dist/events/schema.d.ts +0 -59
  279. package/dist/events/schema.d.ts.map +0 -1
  280. package/dist/events/schema.js +0 -296
  281. package/dist/events/schema.js.map +0 -1
  282. package/dist/events/store.d.ts +0 -7
  283. package/dist/events/store.d.ts.map +0 -1
  284. package/dist/events/store.js +0 -64
  285. package/dist/events/store.js.map +0 -1
  286. package/dist/invariants/checker.d.ts +0 -15
  287. package/dist/invariants/checker.d.ts.map +0 -1
  288. package/dist/invariants/checker.js +0 -52
  289. package/dist/invariants/checker.js.map +0 -1
  290. package/dist/invariants/definitions.d.ts +0 -33
  291. package/dist/invariants/definitions.d.ts.map +0 -1
  292. package/dist/invariants/definitions.js +0 -168
  293. package/dist/invariants/definitions.js.map +0 -1
  294. package/dist/kernel/aab.d.ts +0 -26
  295. package/dist/kernel/aab.d.ts.map +0 -1
  296. package/dist/kernel/aab.js +0 -149
  297. package/dist/kernel/aab.js.map +0 -1
  298. package/dist/kernel/blast-radius.d.ts +0 -60
  299. package/dist/kernel/blast-radius.d.ts.map +0 -1
  300. package/dist/kernel/blast-radius.js +0 -146
  301. package/dist/kernel/blast-radius.js.map +0 -1
  302. package/dist/kernel/decision.d.ts +0 -40
  303. package/dist/kernel/decision.d.ts.map +0 -1
  304. package/dist/kernel/decision.js +0 -92
  305. package/dist/kernel/decision.js.map +0 -1
  306. package/dist/kernel/decisions/factory.d.ts +0 -12
  307. package/dist/kernel/decisions/factory.d.ts.map +0 -1
  308. package/dist/kernel/decisions/factory.js +0 -56
  309. package/dist/kernel/decisions/factory.js.map +0 -1
  310. package/dist/kernel/decisions/types.d.ts +0 -70
  311. package/dist/kernel/decisions/types.d.ts.map +0 -1
  312. package/dist/kernel/decisions/types.js +0 -5
  313. package/dist/kernel/decisions/types.js.map +0 -1
  314. package/dist/kernel/evidence.d.ts +0 -29
  315. package/dist/kernel/evidence.d.ts.map +0 -1
  316. package/dist/kernel/evidence.js +0 -61
  317. package/dist/kernel/evidence.js.map +0 -1
  318. package/dist/kernel/kernel.d.ts +0 -47
  319. package/dist/kernel/kernel.d.ts.map +0 -1
  320. package/dist/kernel/kernel.js +0 -377
  321. package/dist/kernel/kernel.js.map +0 -1
  322. package/dist/kernel/monitor.d.ts +0 -35
  323. package/dist/kernel/monitor.d.ts.map +0 -1
  324. package/dist/kernel/monitor.js +0 -144
  325. package/dist/kernel/monitor.js.map +0 -1
  326. package/dist/kernel/replay-comparator.d.ts +0 -72
  327. package/dist/kernel/replay-comparator.d.ts.map +0 -1
  328. package/dist/kernel/replay-comparator.js +0 -251
  329. package/dist/kernel/replay-comparator.js.map +0 -1
  330. package/dist/kernel/replay-engine.d.ts +0 -108
  331. package/dist/kernel/replay-engine.d.ts.map +0 -1
  332. package/dist/kernel/replay-engine.js +0 -241
  333. package/dist/kernel/replay-engine.js.map +0 -1
  334. package/dist/kernel/replay-processor.d.ts +0 -109
  335. package/dist/kernel/replay-processor.d.ts.map +0 -1
  336. package/dist/kernel/replay-processor.js +0 -118
  337. package/dist/kernel/replay-processor.js.map +0 -1
  338. package/dist/kernel/simulation/filesystem-simulator.d.ts +0 -3
  339. package/dist/kernel/simulation/filesystem-simulator.d.ts.map +0 -1
  340. package/dist/kernel/simulation/filesystem-simulator.js +0 -81
  341. package/dist/kernel/simulation/filesystem-simulator.js.map +0 -1
  342. package/dist/kernel/simulation/git-simulator.d.ts +0 -5
  343. package/dist/kernel/simulation/git-simulator.d.ts.map +0 -1
  344. package/dist/kernel/simulation/git-simulator.js +0 -115
  345. package/dist/kernel/simulation/git-simulator.js.map +0 -1
  346. package/dist/kernel/simulation/package-simulator.d.ts +0 -5
  347. package/dist/kernel/simulation/package-simulator.d.ts.map +0 -1
  348. package/dist/kernel/simulation/package-simulator.js +0 -164
  349. package/dist/kernel/simulation/package-simulator.js.map +0 -1
  350. package/dist/kernel/simulation/registry.d.ts +0 -3
  351. package/dist/kernel/simulation/registry.d.ts.map +0 -1
  352. package/dist/kernel/simulation/registry.js +0 -24
  353. package/dist/kernel/simulation/registry.js.map +0 -1
  354. package/dist/kernel/simulation/types.d.ts +0 -35
  355. package/dist/kernel/simulation/types.d.ts.map +0 -1
  356. package/dist/kernel/simulation/types.js +0 -4
  357. package/dist/kernel/simulation/types.js.map +0 -1
  358. package/dist/plugins/discovery.d.ts +0 -45
  359. package/dist/plugins/discovery.d.ts.map +0 -1
  360. package/dist/plugins/discovery.js +0 -89
  361. package/dist/plugins/discovery.js.map +0 -1
  362. package/dist/plugins/index.d.ts +0 -10
  363. package/dist/plugins/index.d.ts.map +0 -1
  364. package/dist/plugins/index.js +0 -7
  365. package/dist/plugins/index.js.map +0 -1
  366. package/dist/plugins/registry.d.ts +0 -52
  367. package/dist/plugins/registry.d.ts.map +0 -1
  368. package/dist/plugins/registry.js +0 -148
  369. package/dist/plugins/registry.js.map +0 -1
  370. package/dist/plugins/sandbox.d.ts +0 -87
  371. package/dist/plugins/sandbox.d.ts.map +0 -1
  372. package/dist/plugins/sandbox.js +0 -122
  373. package/dist/plugins/sandbox.js.map +0 -1
  374. package/dist/plugins/types.d.ts +0 -61
  375. package/dist/plugins/types.d.ts.map +0 -1
  376. package/dist/plugins/types.js +0 -16
  377. package/dist/plugins/types.js.map +0 -1
  378. package/dist/plugins/validator.d.ts +0 -36
  379. package/dist/plugins/validator.d.ts.map +0 -1
  380. package/dist/plugins/validator.js +0 -276
  381. package/dist/plugins/validator.js.map +0 -1
  382. package/dist/policy/evaluator.d.ts +0 -41
  383. package/dist/policy/evaluator.d.ts.map +0 -1
  384. package/dist/policy/evaluator.js +0 -111
  385. package/dist/policy/evaluator.js.map +0 -1
  386. package/dist/policy/loader.d.ts +0 -13
  387. package/dist/policy/loader.d.ts.map +0 -1
  388. package/dist/policy/loader.js +0 -118
  389. package/dist/policy/loader.js.map +0 -1
  390. package/dist/policy/pack-loader.d.ts +0 -40
  391. package/dist/policy/pack-loader.d.ts.map +0 -1
  392. package/dist/policy/pack-loader.js +0 -138
  393. package/dist/policy/pack-loader.js.map +0 -1
  394. package/dist/policy/yaml-loader.d.ts +0 -23
  395. package/dist/policy/yaml-loader.d.ts.map +0 -1
  396. package/dist/policy/yaml-loader.js +0 -222
  397. package/dist/policy/yaml-loader.js.map +0 -1
  398. package/dist/renderers/index.d.ts +0 -6
  399. package/dist/renderers/index.d.ts.map +0 -1
  400. package/dist/renderers/index.js +0 -4
  401. package/dist/renderers/index.js.map +0 -1
  402. package/dist/renderers/registry.d.ts +0 -39
  403. package/dist/renderers/registry.d.ts.map +0 -1
  404. package/dist/renderers/registry.js +0 -97
  405. package/dist/renderers/registry.js.map +0 -1
  406. package/dist/renderers/tui-renderer.d.ts +0 -18
  407. package/dist/renderers/tui-renderer.d.ts.map +0 -1
  408. package/dist/renderers/tui-renderer.js +0 -57
  409. package/dist/renderers/tui-renderer.js.map +0 -1
  410. package/dist/renderers/types.d.ts +0 -52
  411. package/dist/renderers/types.d.ts.map +0 -1
  412. package/dist/renderers/types.js +0 -4
  413. package/dist/renderers/types.js.map +0 -1
  414. package/dist/telemetry/index.d.ts +0 -3
  415. package/dist/telemetry/index.d.ts.map +0 -1
  416. package/dist/telemetry/index.js +0 -2
  417. package/dist/telemetry/index.js.map +0 -1
  418. package/dist/telemetry/runtimeLogger.d.ts +0 -9
  419. package/dist/telemetry/runtimeLogger.d.ts.map +0 -1
  420. package/dist/telemetry/runtimeLogger.js +0 -68
  421. package/dist/telemetry/runtimeLogger.js.map +0 -1
  422. package/dist/telemetry/types.d.ts +0 -22
  423. package/dist/telemetry/types.d.ts.map +0 -1
  424. package/dist/telemetry/types.js +0 -4
  425. package/dist/telemetry/types.js.map +0 -1
  426. package/hooks/pre-commit +0 -28
  427. /package/dist/{cli/args.d.ts → args.d.ts} +0 -0
  428. /package/dist/{cli/args.js → args.js} +0 -0
  429. /package/dist/{cli/bin.d.ts → bin.d.ts} +0 -0
  430. /package/dist/{cli/colors.d.ts → colors.d.ts} +0 -0
  431. /package/dist/{cli/colors.js → colors.js} +0 -0
  432. /package/dist/{cli/commands → commands}/claude-init.d.ts +0 -0
  433. /package/dist/{cli/commands → commands}/plugin.d.ts +0 -0
  434. /package/dist/{cli/replay.d.ts → replay.d.ts} +0 -0
@@ -0,0 +1,368 @@
1
+ // agentguard config — unified configuration management
2
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
3
+ import { join, dirname } from 'node:path';
4
+ import { homedir } from 'node:os';
5
+ import { RESET, BOLD, DIM, FG } from '../colors.js';
6
+ import { findDefaultPolicy } from '../policy-resolver.js';
7
+ import { detectExistingHooks } from './auto-setup.js';
8
+ const CONFIG_FILENAME = 'config.yaml';
9
+ const DEFAULT_CONFIG = {
10
+ storage: 'sqlite',
11
+ autoSetup: true,
12
+ viewer: { autoOpen: true },
13
+ };
14
+ /**
15
+ * Resolve configuration by layering:
16
+ * 1. Defaults
17
+ * 2. User-level (~/.agentguard/config.yaml)
18
+ * 3. Project-level (.agentguard/config.yaml)
19
+ *
20
+ * Higher layers override lower layers (project > user > defaults).
21
+ */
22
+ export function resolveConfig(cwd = process.cwd()) {
23
+ const config = { ...DEFAULT_CONFIG, viewer: { ...DEFAULT_CONFIG.viewer } };
24
+ // User-level config
25
+ const userConfig = loadConfigFile(join(homedir(), '.agentguard', CONFIG_FILENAME));
26
+ if (userConfig)
27
+ mergeConfig(config, userConfig);
28
+ // Project-level config
29
+ const projectConfig = loadConfigFile(join(cwd, '.agentguard', CONFIG_FILENAME));
30
+ if (projectConfig)
31
+ mergeConfig(config, projectConfig);
32
+ return config;
33
+ }
34
+ /** Load a config file from disk. Returns null if not found or invalid. */
35
+ export function loadConfigFile(filePath) {
36
+ if (!existsSync(filePath))
37
+ return null;
38
+ try {
39
+ const content = readFileSync(filePath, 'utf8').trim();
40
+ if (!content)
41
+ return null;
42
+ // Simple YAML key-value parser (no external dependency)
43
+ return parseSimpleYaml(content);
44
+ }
45
+ catch {
46
+ return null;
47
+ }
48
+ }
49
+ /** Save a config object to a YAML file. */
50
+ export function saveConfigFile(filePath, config) {
51
+ const dir = dirname(filePath);
52
+ if (!existsSync(dir)) {
53
+ mkdirSync(dir, { recursive: true });
54
+ }
55
+ const yaml = serializeSimpleYaml(config);
56
+ writeFileSync(filePath, yaml, 'utf8');
57
+ }
58
+ /** Get a nested config value by dot-separated key path. */
59
+ export function getConfigValue(config, key) {
60
+ const parts = key.split('.');
61
+ let current = config;
62
+ for (const part of parts) {
63
+ if (current === null || current === undefined || typeof current !== 'object') {
64
+ return undefined;
65
+ }
66
+ current = current[part];
67
+ }
68
+ return current;
69
+ }
70
+ const PROTOTYPE_POISON_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
71
+ /** Set a nested config value by dot-separated key path. */
72
+ export function setConfigValue(config, key, value) {
73
+ const parts = key.split('.');
74
+ let current = config;
75
+ for (let i = 0; i < parts.length - 1; i++) {
76
+ const part = parts[i];
77
+ if (PROTOTYPE_POISON_KEYS.has(part))
78
+ return;
79
+ if (!(part in current) || typeof current[part] !== 'object' || current[part] === null) {
80
+ current[part] = {};
81
+ }
82
+ current = current[part];
83
+ }
84
+ const lastKey = parts[parts.length - 1];
85
+ if (PROTOTYPE_POISON_KEYS.has(lastKey))
86
+ return;
87
+ // Type coercion for known boolean/number fields
88
+ if (value === 'true') {
89
+ current[lastKey] = true;
90
+ }
91
+ else if (value === 'false') {
92
+ current[lastKey] = false;
93
+ }
94
+ else {
95
+ current[lastKey] = value;
96
+ }
97
+ }
98
+ /** Valid top-level config keys and their descriptions. */
99
+ const CONFIG_KEYS = {
100
+ storage: 'Storage backend (sqlite)',
101
+ dbPath: 'SQLite database file path',
102
+ policy: 'Default policy file path',
103
+ autoSetup: 'Auto-detect and configure hooks on session start',
104
+ 'viewer.autoOpen': 'Auto-open session viewer in browser',
105
+ };
106
+ /**
107
+ * CLI handler for `agentguard config` command.
108
+ *
109
+ * Subcommands:
110
+ * show Display all resolved config (user + project + defaults)
111
+ * get <key> Get a specific config value
112
+ * set <key> <value> Set a config value (project-level by default, --global for user-level)
113
+ * path Show config file locations
114
+ * keys List available config keys
115
+ */
116
+ export async function config(args) {
117
+ const sub = args[0];
118
+ switch (sub) {
119
+ case 'show':
120
+ return showConfig(args.slice(1));
121
+ case 'get':
122
+ return getConfig(args.slice(1));
123
+ case 'set':
124
+ return setConfig(args.slice(1));
125
+ case 'path':
126
+ return showPaths();
127
+ case 'keys':
128
+ return showKeys();
129
+ case 'help':
130
+ case undefined:
131
+ return showConfigHelp();
132
+ default:
133
+ process.stderr.write(` ${FG.red}Error:${RESET} Unknown subcommand: ${sub}\n`);
134
+ process.stderr.write(` ${DIM}Run "agentguard config help" for usage.${RESET}\n`);
135
+ return 1;
136
+ }
137
+ }
138
+ function showConfig(args) {
139
+ const json = args.includes('--json');
140
+ const cwd = process.cwd();
141
+ const resolved = resolveConfig(cwd);
142
+ // Also detect runtime context
143
+ const policyPath = resolved.policy ?? findDefaultPolicy() ?? null;
144
+ const hooksInstalled = detectExistingHooks(cwd);
145
+ if (json) {
146
+ console.log(JSON.stringify({ ...resolved, _runtime: { policyPath, hooksInstalled } }, null, 2));
147
+ return 0;
148
+ }
149
+ process.stderr.write('\n');
150
+ process.stderr.write(` ${BOLD}AgentGuard Configuration${RESET}\n\n`);
151
+ process.stderr.write(` ${BOLD}Settings${RESET}\n`);
152
+ process.stderr.write(` ${DIM}storage${RESET} ${resolved.storage ?? 'sqlite'}\n`);
153
+ process.stderr.write(` ${DIM}dbPath${RESET} ${resolved.dbPath ?? '~/.agentguard/agentguard.db (default)'}\n`);
154
+ process.stderr.write(` ${DIM}policy${RESET} ${policyPath ?? 'none (fail-open)'}\n`);
155
+ process.stderr.write(` ${DIM}autoSetup${RESET} ${resolved.autoSetup !== false ? 'true' : 'false'}\n`);
156
+ process.stderr.write(` ${DIM}viewer.autoOpen${RESET} ${resolved.viewer?.autoOpen !== false ? 'true' : 'false'}\n`);
157
+ process.stderr.write('\n');
158
+ process.stderr.write(` ${BOLD}Runtime${RESET}\n`);
159
+ const hooksIcon = hooksInstalled ? `${FG.green}✓${RESET}` : `${FG.red}✗${RESET}`;
160
+ process.stderr.write(` ${DIM}hooks${RESET} ${hooksIcon} ${hooksInstalled ? 'installed' : 'not installed'}\n`);
161
+ process.stderr.write('\n');
162
+ process.stderr.write(` ${BOLD}Config files${RESET}\n`);
163
+ const userPath = join(homedir(), '.agentguard', CONFIG_FILENAME);
164
+ const projectPath = join(cwd, '.agentguard', CONFIG_FILENAME);
165
+ process.stderr.write(` ${DIM}user${RESET} ${existsSync(userPath) ? FG.green + '●' + RESET : FG.gray + '○' + RESET} ${userPath}\n`);
166
+ process.stderr.write(` ${DIM}project${RESET} ${existsSync(projectPath) ? FG.green + '●' + RESET : FG.gray + '○' + RESET} ${projectPath}\n`);
167
+ process.stderr.write('\n');
168
+ return 0;
169
+ }
170
+ function getConfig(args) {
171
+ const key = args[0];
172
+ if (!key) {
173
+ process.stderr.write(` ${FG.red}Error:${RESET} Missing key. Usage: agentguard config get <key>\n`);
174
+ return 1;
175
+ }
176
+ if (!(key in CONFIG_KEYS)) {
177
+ process.stderr.write(` ${FG.red}Error:${RESET} Unknown key: ${key}\n`);
178
+ process.stderr.write(` ${DIM}Valid keys: ${Object.keys(CONFIG_KEYS).join(', ')}${RESET}\n`);
179
+ return 1;
180
+ }
181
+ const resolved = resolveConfig();
182
+ const value = getConfigValue(resolved, key);
183
+ console.log(value === undefined ? '' : String(value));
184
+ return 0;
185
+ }
186
+ function setConfig(args) {
187
+ const isGlobal = args.includes('--global') || args.includes('-g');
188
+ const filtered = args.filter((a) => a !== '--global' && a !== '-g');
189
+ const key = filtered[0];
190
+ const value = filtered[1];
191
+ if (!key || value === undefined) {
192
+ process.stderr.write(` ${FG.red}Error:${RESET} Usage: agentguard config set <key> <value> [--global]\n`);
193
+ return 1;
194
+ }
195
+ if (!(key in CONFIG_KEYS)) {
196
+ process.stderr.write(` ${FG.red}Error:${RESET} Unknown key: ${key}\n`);
197
+ process.stderr.write(` ${DIM}Valid keys: ${Object.keys(CONFIG_KEYS).join(', ')}${RESET}\n`);
198
+ return 1;
199
+ }
200
+ // Validate storage values
201
+ if (key === 'storage' && value !== 'sqlite') {
202
+ process.stderr.write(` ${FG.red}Error:${RESET} Invalid storage backend: ${value}. Must be "sqlite".\n`);
203
+ return 1;
204
+ }
205
+ const configDir = isGlobal ? join(homedir(), '.agentguard') : join(process.cwd(), '.agentguard');
206
+ const configPath = join(configDir, CONFIG_FILENAME);
207
+ // Load existing config or start fresh
208
+ const existing = loadConfigFile(configPath) ?? {};
209
+ setConfigValue(existing, key, value);
210
+ saveConfigFile(configPath, existing);
211
+ const scope = isGlobal ? 'user' : 'project';
212
+ process.stderr.write(` ${FG.green}✓${RESET} Set ${FG.cyan}${key}${RESET} = ${value} ${DIM}(${scope})${RESET}\n`);
213
+ return 0;
214
+ }
215
+ function showPaths() {
216
+ const userPath = join(homedir(), '.agentguard', CONFIG_FILENAME);
217
+ const projectPath = join(process.cwd(), '.agentguard', CONFIG_FILENAME);
218
+ process.stderr.write('\n');
219
+ process.stderr.write(` ${BOLD}Config file locations${RESET} (higher precedence listed last)\n\n`);
220
+ process.stderr.write(` ${DIM}user${RESET} ${existsSync(userPath) ? FG.green + '●' : FG.gray + '○'}${RESET} ${userPath}\n`);
221
+ process.stderr.write(` ${DIM}project${RESET} ${existsSync(projectPath) ? FG.green + '●' : FG.gray + '○'}${RESET} ${projectPath}\n`);
222
+ process.stderr.write('\n');
223
+ return 0;
224
+ }
225
+ function showKeys() {
226
+ process.stderr.write('\n');
227
+ process.stderr.write(` ${BOLD}Available config keys${RESET}\n\n`);
228
+ for (const [key, desc] of Object.entries(CONFIG_KEYS)) {
229
+ process.stderr.write(` ${FG.cyan}${key}${RESET} ${DIM}${desc}${RESET}\n`);
230
+ }
231
+ process.stderr.write('\n');
232
+ return 0;
233
+ }
234
+ function showConfigHelp() {
235
+ process.stderr.write(`
236
+ ${BOLD}agentguard config${RESET} — Manage AgentGuard configuration
237
+
238
+ ${BOLD}Usage:${RESET}
239
+ agentguard config show [--json] Display resolved configuration
240
+ agentguard config get <key> Get a specific value
241
+ agentguard config set <key> <value> Set a project-level value
242
+ agentguard config set <key> <value> -g Set a user-level value
243
+ agentguard config path Show config file paths
244
+ agentguard config keys List available keys
245
+
246
+ ${BOLD}Config layers${RESET} (highest precedence last):
247
+ 1. Built-in defaults
248
+ 2. User: ~/.agentguard/config.yaml
249
+ 3. Project: .agentguard/config.yaml
250
+
251
+ ${BOLD}Examples:${RESET}
252
+ agentguard config show
253
+ agentguard config set storage sqlite
254
+ agentguard config set autoSetup false --global
255
+ agentguard config get viewer.autoOpen
256
+ `);
257
+ return 0;
258
+ }
259
+ // --- Simple YAML parser/serializer (no external deps) ---
260
+ function parseSimpleYaml(content) {
261
+ const config = {};
262
+ const lines = content.split('\n');
263
+ let currentSection = null;
264
+ for (const line of lines) {
265
+ const trimmed = line.trim();
266
+ if (!trimmed || trimmed.startsWith('#'))
267
+ continue;
268
+ // Nested key (2-space indent): belongs to current section
269
+ if (line.startsWith(' ') && currentSection) {
270
+ const match = trimmed.match(/^(\w+):\s*(.+)$/);
271
+ if (match) {
272
+ const parent = config[currentSection];
273
+ if (parent && typeof parent === 'object') {
274
+ parent[match[1]] = parseYamlValue(match[2]);
275
+ }
276
+ }
277
+ continue;
278
+ }
279
+ // Section header (key with no value or object value)
280
+ const sectionMatch = trimmed.match(/^(\w+):\s*$/);
281
+ if (sectionMatch) {
282
+ currentSection = sectionMatch[1];
283
+ config[currentSection] = {};
284
+ continue;
285
+ }
286
+ // Top-level key: value
287
+ const kvMatch = trimmed.match(/^(\w+):\s*(.+)$/);
288
+ if (kvMatch) {
289
+ currentSection = null;
290
+ config[kvMatch[1]] = parseYamlValue(kvMatch[2]);
291
+ }
292
+ }
293
+ return config;
294
+ }
295
+ function parseYamlValue(raw) {
296
+ const trimmed = raw.trim();
297
+ if (trimmed === 'true')
298
+ return true;
299
+ if (trimmed === 'false')
300
+ return false;
301
+ if (trimmed === 'null' || trimmed === '~')
302
+ return undefined;
303
+ if (/^\d+$/.test(trimmed))
304
+ return parseInt(trimmed, 10);
305
+ // Strip quotes
306
+ if ((trimmed.startsWith('"') && trimmed.endsWith('"')) ||
307
+ (trimmed.startsWith("'") && trimmed.endsWith("'"))) {
308
+ return trimmed.slice(1, -1);
309
+ }
310
+ return trimmed;
311
+ }
312
+ function serializeSimpleYaml(config) {
313
+ const lines = [
314
+ '# AgentGuard configuration',
315
+ '# Docs: https://github.com/AgentGuardHQ/agent-guard',
316
+ '',
317
+ ];
318
+ const obj = config;
319
+ for (const [key, value] of Object.entries(obj)) {
320
+ if (value === undefined)
321
+ continue;
322
+ if (typeof value === 'object' && value !== null) {
323
+ lines.push(`${key}:`);
324
+ for (const [subKey, subValue] of Object.entries(value)) {
325
+ if (subValue === undefined)
326
+ continue;
327
+ lines.push(` ${subKey}: ${formatYamlValue(subValue)}`);
328
+ }
329
+ }
330
+ else {
331
+ lines.push(`${key}: ${formatYamlValue(value)}`);
332
+ }
333
+ }
334
+ lines.push('');
335
+ return lines.join('\n');
336
+ }
337
+ function formatYamlValue(value) {
338
+ if (typeof value === 'boolean')
339
+ return String(value);
340
+ if (typeof value === 'number')
341
+ return String(value);
342
+ if (typeof value === 'string') {
343
+ // Quote strings with spaces or special characters
344
+ if (/[\s:#{}[\],&*?|>!'"%@`\\]/.test(value)) {
345
+ return `"${value.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
346
+ }
347
+ return value;
348
+ }
349
+ return String(value);
350
+ }
351
+ function mergeConfig(target, source) {
352
+ if (source.storage !== undefined)
353
+ target.storage = source.storage;
354
+ if (source.dbPath !== undefined)
355
+ target.dbPath = source.dbPath;
356
+ if (source.policy !== undefined)
357
+ target.policy = source.policy;
358
+ if (source.autoSetup !== undefined)
359
+ target.autoSetup = source.autoSetup;
360
+ if (source.viewer) {
361
+ if (!target.viewer)
362
+ target.viewer = {};
363
+ if (source.viewer.autoOpen !== undefined) {
364
+ target.viewer.autoOpen = source.viewer.autoOpen;
365
+ }
366
+ }
367
+ }
368
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAatD,MAAM,eAAe,GAAG,aAAa,CAAC;AACtC,MAAM,cAAc,GAAqB;IACvC,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;CAC3B,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACvD,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,MAAM,EAAE,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;IAE3E,oBAAoB;IACpB,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;IACnF,IAAI,UAAU;QAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAEhD,uBAAuB;IACvB,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;IAChF,IAAI,aAAa;QAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEtD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,wDAAwD;QACxD,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,MAAwB;IACvE,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACzC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,cAAc,CAAC,MAAwB,EAAE,GAAW;IAClE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,OAAO,GAAY,MAAM,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC7E,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,GAAI,OAAmC,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;AAEjF,2DAA2D;AAC3D,MAAM,UAAU,cAAc,CAAC,MAAwB,EAAE,GAAW,EAAE,KAAa;IACjF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,OAAO,GAA4B,MAAiC,CAAC;IAEzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QAC5C,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACtF,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAA4B,CAAC;IACrD,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxC,IAAI,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO;IAE/C,gDAAgD;IAChD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1B,CAAC;SAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,0DAA0D;AAC1D,MAAM,WAAW,GAA2B;IAC1C,OAAO,EAAE,0BAA0B;IACnC,MAAM,EAAE,2BAA2B;IACnC,MAAM,EAAE,0BAA0B;IAClC,SAAS,EAAE,kDAAkD;IAC7D,iBAAiB,EAAE,qCAAqC;CACzD,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAc;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,KAAK,KAAK;YACR,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,KAAK,KAAK;YACR,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,KAAK,MAAM;YACT,OAAO,SAAS,EAAE,CAAC;QACrB,KAAK,MAAM;YACT,OAAO,QAAQ,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS;YACZ,OAAO,cAAc,EAAE,CAAC;QAC1B;YACE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,KAAK,wBAAwB,GAAG,IAAI,CAAC,CAAC;YAC/E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,0CAA0C,KAAK,IAAI,CAAC,CAAC;YAClF,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAc;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAEpC,8BAA8B;IAC9B,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,iBAAiB,EAAE,IAAI,IAAI,CAAC;IAClE,MAAM,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAEhD,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAChG,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,2BAA2B,KAAK,MAAM,CAAC,CAAC;IAEtE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,WAAW,KAAK,IAAI,CAAC,CAAC;IACpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,KAAK,aAAa,QAAQ,CAAC,OAAO,IAAI,QAAQ,IAAI,CAAC,CAAC;IAC3F,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,GAAG,SAAS,KAAK,cAAc,QAAQ,CAAC,MAAM,IAAI,uCAAuC,IAAI,CACnG,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,KAAK,cAAc,UAAU,IAAI,kBAAkB,IAAI,CAAC,CAAC;IAC/F,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,GAAG,YAAY,KAAK,WAAW,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,CACxF,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,GAAG,kBAAkB,KAAK,KAAK,QAAQ,CAAC,MAAM,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,CAC/F,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,UAAU,KAAK,IAAI,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;IACjF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,GAAG,QAAQ,KAAK,eAAe,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,IAAI,CACpG,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,eAAe,KAAK,IAAI,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,GAAG,OAAO,KAAK,QAAQ,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,IAAI,QAAQ,IAAI,CAClH,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,GAAG,UAAU,KAAK,KAAK,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,IAAI,WAAW,IAAI,CACxH,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE3B,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,EAAE,CAAC,GAAG,SAAS,KAAK,oDAAoD,CAC9E,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,KAAK,iBAAiB,GAAG,IAAI,CAAC,CAAC;QACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,eAAe,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;QAC7F,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;IACpE,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE1B,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,EAAE,CAAC,GAAG,SAAS,KAAK,0DAA0D,CACpF,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,KAAK,iBAAiB,GAAG,IAAI,CAAC,CAAC;QACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,eAAe,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;QAC7F,OAAO,CAAC,CAAC;IACX,CAAC;IAED,0BAA0B;IAC1B,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,EAAE,CAAC,GAAG,SAAS,KAAK,6BAA6B,KAAK,uBAAuB,CACnF,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;IACjG,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAEpD,sCAAsC;IACtC,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAClD,cAAc,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAErC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,EAAE,CAAC,KAAK,IAAI,KAAK,SAAS,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,MAAM,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,CAC7F,CAAC;IACF,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,SAAS;IAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IAExE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,IAAI,wBAAwB,KAAK,sCAAsC,CAC7E,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,GAAG,OAAO,KAAK,QAAQ,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,IAAI,QAAQ,IAAI,CAC1G,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,GAAG,UAAU,KAAK,KAAK,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,IAAI,WAAW,IAAI,CAChH,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,wBAAwB,KAAK,MAAM,CAAC,CAAC;IACnE,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,KAAK,GAAG,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IACnB,IAAI,oBAAoB,KAAK;;IAE7B,IAAI,SAAS,KAAK;;;;;;;;IAQlB,IAAI,gBAAgB,KAAK;;;;;IAKzB,IAAI,YAAY,KAAK;;;;;CAKxB,CAAC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,2DAA2D;AAE3D,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,cAAc,GAAkB,IAAI,CAAC;IAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAElD,0DAA0D;QAC1D,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,cAAc,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC/C,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAwC,CAAC;gBAC7E,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACzC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;YACD,SAAS;QACX,CAAC;QAED,qDAAqD;QACrD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,YAAY,EAAE,CAAC;YACjB,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;YAC5B,SAAS;QACX,CAAC;QAED,uBAAuB;QACvB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,cAAc,GAAG,IAAI,CAAC;YACtB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,OAAO,MAA0B,CAAC;AACpC,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,SAAS,CAAC;IAC5D,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACxD,eAAe;IACf,IACE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAClD,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAwB;IACnD,MAAM,KAAK,GAAa;QACtB,4BAA4B;QAC5B,qDAAqD;QACrD,EAAE;KACH,CAAC;IAEF,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAElC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YACtB,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;gBAClF,IAAI,QAAQ,KAAK,SAAS;oBAAE,SAAS;gBACrC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,KAAK,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,kDAAkD;QAClD,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;QAClE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,WAAW,CAAC,MAAwB,EAAE,MAAwB;IACrE,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAClE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/D,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/D,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACxE,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QAClD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function demo(): Promise<number>;
2
+ //# sourceMappingURL=demo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo.d.ts","sourceRoot":"","sources":["../../src/commands/demo.ts"],"names":[],"mappings":"AAuEA,wBAAsB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CA4D5C"}
@@ -0,0 +1,100 @@
1
+ // agentguard demo — showcase governance in action with simulated tool calls
2
+ import { RESET, BOLD, DIM, FG } from '../colors.js';
3
+ const DEMO_ACTIONS = [
4
+ {
5
+ tool: 'Read',
6
+ description: 'Read a source file',
7
+ input: { file_path: 'src/index.ts' },
8
+ expected: 'ALLOW',
9
+ reason: 'file.read — reading is always safe',
10
+ },
11
+ {
12
+ tool: 'Write',
13
+ description: 'Write a new component',
14
+ input: { file_path: 'src/utils.ts', content: 'export const add = (a, b) => a + b;' },
15
+ expected: 'ALLOW',
16
+ reason: 'file.write — non-sensitive file, allowed by default',
17
+ },
18
+ {
19
+ tool: 'Bash',
20
+ description: 'Run tests',
21
+ input: { command: 'npm test' },
22
+ expected: 'ALLOW',
23
+ reason: 'shell.exec — safe command, no destructive patterns',
24
+ },
25
+ {
26
+ tool: 'Write',
27
+ description: 'Modify .env secrets file',
28
+ input: { file_path: '.env', content: 'API_KEY=sk-leaked-secret' },
29
+ expected: 'DENY',
30
+ reason: 'file.write → .env — secrets files must not be modified',
31
+ },
32
+ {
33
+ tool: 'Bash',
34
+ description: 'Push to main branch',
35
+ input: { command: 'git push origin main' },
36
+ expected: 'DENY',
37
+ reason: 'git.push → main — direct push to protected branch',
38
+ },
39
+ {
40
+ tool: 'Bash',
41
+ description: 'Force push to rewrite history',
42
+ input: { command: 'git push --force origin feature' },
43
+ expected: 'DENY',
44
+ reason: 'git.force-push — force push rewrites shared history',
45
+ },
46
+ {
47
+ tool: 'Bash',
48
+ description: 'Delete everything recursively',
49
+ input: { command: 'rm -rf /' },
50
+ expected: 'DENY',
51
+ reason: 'shell.exec → rm -rf — destructive shell command blocked',
52
+ },
53
+ {
54
+ tool: 'Write',
55
+ description: 'Modify SSH private key',
56
+ input: { file_path: '~/.ssh/id_rsa', content: 'compromised' },
57
+ expected: 'DENY',
58
+ reason: 'file.write → id_rsa — SSH private keys must not be modified',
59
+ },
60
+ ];
61
+ export async function demo() {
62
+ const write = (s) => process.stderr.write(s);
63
+ write('\n');
64
+ write(` ${BOLD}AgentGuard Demo${RESET} — governance decisions in real time\n`);
65
+ write(` ${DIM}Simulating 8 AI agent tool calls against the default policy...${RESET}\n\n`);
66
+ let allowed = 0;
67
+ let denied = 0;
68
+ for (let i = 0; i < DEMO_ACTIONS.length; i++) {
69
+ const action = DEMO_ACTIONS[i];
70
+ const num = `${i + 1}`.padStart(2);
71
+ // Show the tool call
72
+ const toolColor = action.expected === 'DENY' ? FG.red : FG.green;
73
+ write(` ${DIM}${num}.${RESET} ${BOLD}${action.tool}${RESET} ${DIM}→${RESET} ${action.description}\n`);
74
+ // Show the input
75
+ const inputStr = action.tool === 'Bash'
76
+ ? ` ${DIM}$ ${action.input.command}${RESET}\n`
77
+ : ` ${DIM}${action.input.file_path || ''}${RESET}\n`;
78
+ write(inputStr);
79
+ // Show the decision
80
+ if (action.expected === 'ALLOW') {
81
+ write(` ${FG.green}✓ ALLOW${RESET} ${DIM}${action.reason}${RESET}\n`);
82
+ allowed++;
83
+ }
84
+ else {
85
+ write(` ${toolColor}✗ DENY${RESET} ${DIM}${action.reason}${RESET}\n`);
86
+ denied++;
87
+ }
88
+ write('\n');
89
+ }
90
+ // Summary
91
+ write(` ${BOLD}Summary${RESET}\n`);
92
+ write(` ${FG.green}${allowed} allowed${RESET} ${FG.red}${denied} blocked${RESET} ${DIM}${DEMO_ACTIONS.length} total actions evaluated${RESET}\n\n`);
93
+ write(` ${DIM}Every decision is recorded to ${FG.cyan}.agentguard/${RESET}${DIM} for audit.${RESET}\n`);
94
+ write(` ${DIM}Customize rules in ${FG.cyan}agentguard.yaml${RESET}${DIM} to match your project.${RESET}\n\n`);
95
+ write(` ${BOLD}Get started:${RESET}\n`);
96
+ write(` ${DIM}$ ${FG.cyan}npx agentguard claude-init${RESET} ${DIM}— install Claude Code hooks${RESET}\n`);
97
+ write(` ${DIM}$ ${FG.cyan}agentguard simulate --action git.push --branch main${RESET} ${DIM}— try a simulation${RESET}\n\n`);
98
+ return 0;
99
+ }
100
+ //# sourceMappingURL=demo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo.js","sourceRoot":"","sources":["../../src/commands/demo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { StorageConfig } from '@red-codes/storage';
2
+ export declare function diff(args: string[], storageConfig?: StorageConfig): Promise<void>;
3
+ //# sourceMappingURL=diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA0SxD,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA2FvF"}