@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 @@
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,KAAK,QAA4B,CAAC;AAC/C,eAAO,MAAM,IAAI,QAA4B,CAAC;AAC9C,eAAO,MAAM,GAAG,QAA4B,CAAC;AAE7C,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAUrC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQ9C,CAAC;AAEF,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExC;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGzD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.js","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,uDAAuD;AAEvD,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AAEtC,MAAM,GAAG,GAAG,OAAO,CAAC;AACpB,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/C,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9C,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAE7C,MAAM,CAAC,MAAM,EAAE,GAA2B;IACxC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;IACjC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;IAC/B,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;IACjC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;IAChC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;IACnC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;IAChC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;IACjC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;CACjC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,OAAO;IAChB,YAAY,EAAE,SAAS;IACvB,QAAQ,EAAE,KAAK;IACf,EAAE,EAAE,MAAM;CACX,CAAC;AAEF,MAAM,UAAU,KAAK,CAAC,IAAY,EAAE,EAAU;IAC5C,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAY;IAC/B,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,IAAY;IAC9B,OAAO,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAW;IAChC,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAW,EAAE,KAAa;IAC/C,MAAM,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACjD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function adoption(args: string[]): Promise<number>;
2
+ //# sourceMappingURL=adoption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adoption.d.ts","sourceRoot":"","sources":["../../src/commands/adoption.ts"],"names":[],"mappings":"AA0IA,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAgF9D"}
@@ -0,0 +1,172 @@
1
+ // CLI command: agentguard adoption — analyze what percentage of agent tool calls go through governance.
2
+ // Reads Claude session JSONL (which logs all tool calls) and cross-references with AgentGuard
3
+ // governance events in SQLite.
4
+ import { readFileSync, readdirSync, statSync } from 'node:fs';
5
+ import { join, resolve } from 'node:path';
6
+ import { homedir } from 'node:os';
7
+ import { parseArgs } from '../args.js';
8
+ // ---------------------------------------------------------------------------
9
+ // Session auto-detection
10
+ // ---------------------------------------------------------------------------
11
+ /**
12
+ * Auto-detect the most recent Claude session JSONL file.
13
+ * Looks in ~/.claude/projects/ directories for .jsonl files.
14
+ */
15
+ function autoDetectSession() {
16
+ const claudeDir = join(homedir(), '.claude', 'projects');
17
+ let bestPath = null;
18
+ let bestMtime = -1;
19
+ function scanDir(dir, depth) {
20
+ if (depth > 3)
21
+ return;
22
+ let entries;
23
+ try {
24
+ entries = readdirSync(dir);
25
+ }
26
+ catch {
27
+ return;
28
+ }
29
+ for (const entry of entries) {
30
+ const fullPath = join(dir, entry);
31
+ let stat;
32
+ try {
33
+ stat = statSync(fullPath);
34
+ }
35
+ catch {
36
+ continue;
37
+ }
38
+ if (stat.isDirectory()) {
39
+ scanDir(fullPath, depth + 1);
40
+ }
41
+ else if (entry.endsWith('.jsonl')) {
42
+ const mtime = stat.mtimeMs;
43
+ if (mtime > bestMtime) {
44
+ bestMtime = mtime;
45
+ bestPath = fullPath;
46
+ }
47
+ }
48
+ }
49
+ }
50
+ scanDir(claudeDir, 0);
51
+ return bestPath;
52
+ }
53
+ // ---------------------------------------------------------------------------
54
+ // Output formatting
55
+ // ---------------------------------------------------------------------------
56
+ const ANSI = {
57
+ reset: '\x1b[0m',
58
+ bold: '\x1b[1m',
59
+ dim: '\x1b[2m',
60
+ green: '\x1b[32m',
61
+ yellow: '\x1b[33m',
62
+ red: '\x1b[31m',
63
+ cyan: '\x1b[36m',
64
+ };
65
+ function adoptionColor(pct) {
66
+ if (pct >= 80)
67
+ return ANSI.green;
68
+ if (pct >= 50)
69
+ return ANSI.yellow;
70
+ return ANSI.red;
71
+ }
72
+ function renderAdoptionReport(result, sessionPath, jsonOutput) {
73
+ if (jsonOutput) {
74
+ process.stdout.write(JSON.stringify(result, null, 2) + '\n');
75
+ return;
76
+ }
77
+ const color = adoptionColor(result.adoptionPct);
78
+ process.stderr.write('\n');
79
+ process.stderr.write(` ${ANSI.bold}Adoption Analytics${ANSI.reset} ${ANSI.dim}(session: ${sessionPath})${ANSI.reset}\n`);
80
+ process.stderr.write(` ${ANSI.dim}${'─'.repeat(60)}${ANSI.reset}\n`);
81
+ process.stderr.write('\n');
82
+ process.stderr.write(` ${ANSI.bold}Overall Adoption:${ANSI.reset} ${color}${result.adoptionPct.toFixed(1)}%${ANSI.reset}\n`);
83
+ process.stderr.write(` Total tool calls: ${result.totalToolCalls}\n` +
84
+ ` Governed: ${ANSI.green}${result.governedActions}${ANSI.reset}\n` +
85
+ ` Ungoverned: ${result.ungoverned > 0 ? ANSI.red : ANSI.dim}${result.ungoverned}${ANSI.reset}\n`);
86
+ const toolEntries = Object.entries(result.byTool);
87
+ if (toolEntries.length > 0) {
88
+ process.stderr.write('\n');
89
+ process.stderr.write(` ${ANSI.bold}Per-Tool Breakdown${ANSI.reset}\n`);
90
+ process.stderr.write(` ${ANSI.dim}${'─'.repeat(40)}${ANSI.reset}\n`);
91
+ const maxToolLen = Math.max(...toolEntries.map(([t]) => t.length));
92
+ for (const [tool, counts] of toolEntries.sort(([a], [b]) => a.localeCompare(b))) {
93
+ const toolPct = counts.total > 0 ? (counts.governed / counts.total) * 100 : 0;
94
+ const tc = adoptionColor(toolPct);
95
+ process.stderr.write(` ${tool.padEnd(maxToolLen + 2)} ` +
96
+ `${tc}${toolPct.toFixed(0).padStart(3)}%${ANSI.reset}` +
97
+ ` ${ANSI.dim}(${counts.governed}/${counts.total})${ANSI.reset}\n`);
98
+ }
99
+ }
100
+ process.stderr.write('\n');
101
+ if (result.adoptionPct < 100 && result.ungoverned > 0) {
102
+ process.stderr.write(` ${ANSI.dim}Tip: Run ${ANSI.reset}${ANSI.cyan}agentguard auto-setup${ANSI.reset}` +
103
+ `${ANSI.dim} to configure Claude Code hooks and improve adoption.${ANSI.reset}\n\n`);
104
+ }
105
+ }
106
+ // ---------------------------------------------------------------------------
107
+ // Public command
108
+ // ---------------------------------------------------------------------------
109
+ export async function adoption(args) {
110
+ const parsed = parseArgs(args, {
111
+ boolean: ['--json', '--help', '-h'],
112
+ string: ['--session', '--store', '--db-path'],
113
+ });
114
+ const jsonOutput = parsed.flags['json'] === true;
115
+ const sessionFlag = parsed.flags['session'];
116
+ const dbPathFlag = parsed.flags['db-path'];
117
+ // 1. Resolve session JSONL path
118
+ const sessionPath = sessionFlag ? resolve(sessionFlag) : autoDetectSession();
119
+ if (!sessionPath) {
120
+ process.stderr.write('\n No Claude session JSONL found.\n' +
121
+ ' Provide one with: agentguard adoption --session <path>\n' +
122
+ ' Or ensure ~/.claude/projects/ exists with recorded sessions.\n\n');
123
+ return 1;
124
+ }
125
+ // 2. Parse tool calls from session
126
+ let lines;
127
+ try {
128
+ lines = readFileSync(sessionPath, 'utf8').split('\n');
129
+ }
130
+ catch (err) {
131
+ const msg = err instanceof Error ? err.message : String(err);
132
+ process.stderr.write(` Error reading session file: ${msg}\n`);
133
+ return 1;
134
+ }
135
+ const { parseSessionToolCalls } = await import('@red-codes/storage');
136
+ const toolCalls = parseSessionToolCalls(lines);
137
+ if (toolCalls.length === 0) {
138
+ process.stderr.write(`\n No tool_use entries found in session file: ${sessionPath}\n` +
139
+ ' Ensure the session file contains Claude Code tool call records.\n\n');
140
+ return 0;
141
+ }
142
+ // 3. Load governance events from SQLite
143
+ const storageConfig = {
144
+ backend: 'sqlite',
145
+ dbPath: dbPathFlag ?? process.env['AGENTGUARD_DB_PATH'],
146
+ };
147
+ const { createStorageBundle, queryEventsByKindAcrossRuns } = await import('@red-codes/storage');
148
+ let govEvents = [];
149
+ try {
150
+ const storage = await createStorageBundle(storageConfig);
151
+ if (storage.db) {
152
+ const db = storage.db;
153
+ const requested = queryEventsByKindAcrossRuns(db, 'ActionRequested');
154
+ const allowed = queryEventsByKindAcrossRuns(db, 'ActionAllowed');
155
+ const denied = queryEventsByKindAcrossRuns(db, 'ActionDenied');
156
+ govEvents = [...requested, ...allowed, ...denied];
157
+ storage.close();
158
+ }
159
+ }
160
+ catch {
161
+ // SQLite not available or no data — continue with empty governance events
162
+ process.stderr.write(' Note: Could not load governance events from SQLite. Adoption will show 0%.\n' +
163
+ ' Ensure AgentGuard has recorded governance sessions.\n');
164
+ }
165
+ // 4. Correlate
166
+ const { correlateWithGovernance } = await import('@red-codes/storage');
167
+ const result = correlateWithGovernance(toolCalls, govEvents);
168
+ // 5. Display results
169
+ renderAdoptionReport(result, sessionPath, jsonOutput);
170
+ return 0;
171
+ }
172
+ //# sourceMappingURL=adoption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adoption.js","sourceRoot":"","sources":["../../src/commands/adoption.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { StorageConfig } from '@red-codes/storage';
2
+ export declare function analytics(_args: string[], _storageConfig?: StorageConfig): Promise<number>;
3
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/commands/analytics.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhG"}
@@ -0,0 +1,7 @@
1
+ // CLI command: agentguard analytics — cross-session violation pattern analysis.
2
+ // Advanced analytics have moved to AgentGuard Cloud.
3
+ export async function analytics(_args, _storageConfig) {
4
+ console.log('Advanced analytics available in AgentGuard Cloud. Visit https://agentguard.dev');
5
+ return 0;
6
+ }
7
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/commands/analytics.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,qDAAqD;AAIrD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAe,EAAE,cAA8B;IAC7E,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;IAC9F,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { StorageConfig } from '@red-codes/storage';
2
+ export declare function auditVerify(args: string[], storageConfig?: StorageConfig): Promise<number>;
3
+ //# sourceMappingURL=audit-verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-verify.d.ts","sourceRoot":"","sources":["../../src/commands/audit-verify.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAyCxD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAyDhG"}
@@ -0,0 +1,94 @@
1
+ // CLI command: agentguard audit-verify — generate enforcement audit report
2
+ // from SQLite decision records.
3
+ import { generateEnforcementAudit, formatEnforcementAudit } from '@red-codes/kernel';
4
+ async function loadDecisionsFromSqlite(runId, storageConfig) {
5
+ const config = storageConfig ?? { backend: 'sqlite' };
6
+ const { createStorageBundle } = await import('@red-codes/storage');
7
+ const storage = await createStorageBundle(config);
8
+ if (!storage.db)
9
+ return [];
10
+ const { loadRunDecisions } = await import('@red-codes/storage');
11
+ const db = storage.db;
12
+ const decisions = loadRunDecisions(db, runId);
13
+ storage.close();
14
+ return decisions;
15
+ }
16
+ async function listRuns(storageConfig) {
17
+ const config = storageConfig ?? { backend: 'sqlite' };
18
+ const { createStorageBundle } = await import('@red-codes/storage');
19
+ const storage = await createStorageBundle(config);
20
+ if (!storage.db)
21
+ return [];
22
+ const { listRunIds } = await import('@red-codes/storage');
23
+ const db = storage.db;
24
+ const runs = listRunIds(db);
25
+ storage.close();
26
+ return runs;
27
+ }
28
+ async function getLastRunId(storageConfig) {
29
+ const config = storageConfig ?? { backend: 'sqlite' };
30
+ const { createStorageBundle } = await import('@red-codes/storage');
31
+ const storage = await createStorageBundle(config);
32
+ if (!storage.db)
33
+ return null;
34
+ const { getLatestRunId } = await import('@red-codes/storage');
35
+ const db = storage.db;
36
+ const runId = getLatestRunId(db);
37
+ storage.close();
38
+ return runId;
39
+ }
40
+ export async function auditVerify(args, storageConfig) {
41
+ const wantsJson = args.includes('--json');
42
+ const wantsList = args.includes('--list');
43
+ const wantsLast = args.includes('--last');
44
+ // List available runs
45
+ if (wantsList) {
46
+ const runs = await listRuns(storageConfig);
47
+ if (runs.length === 0) {
48
+ console.log(' No governance runs found.');
49
+ return 0;
50
+ }
51
+ console.log(`\n Governance runs (${runs.length}):\n`);
52
+ for (const r of runs.slice(0, 20)) {
53
+ console.log(` ${r}`);
54
+ }
55
+ console.log('');
56
+ return 0;
57
+ }
58
+ // Resolve run ID
59
+ let runId = null;
60
+ if (wantsLast) {
61
+ runId = await getLastRunId(storageConfig);
62
+ if (!runId) {
63
+ console.error(' No governance runs found.');
64
+ return 1;
65
+ }
66
+ }
67
+ else {
68
+ // First positional argument that isn't a flag
69
+ runId = args.find((a) => !a.startsWith('--')) || null;
70
+ if (!runId) {
71
+ runId = await getLastRunId(storageConfig);
72
+ if (!runId) {
73
+ console.error(' Usage: agentguard audit-verify [runId] [--last] [--json]');
74
+ return 1;
75
+ }
76
+ }
77
+ }
78
+ // Load decisions from SQLite
79
+ const decisions = await loadDecisionsFromSqlite(runId, storageConfig);
80
+ // Generate enforcement audit report
81
+ const report = generateEnforcementAudit({
82
+ runId,
83
+ decisions,
84
+ chainVerified: true, // SQLite provides integrity via database constraints
85
+ });
86
+ if (wantsJson) {
87
+ console.log(JSON.stringify(report, null, 2));
88
+ }
89
+ else {
90
+ console.log(formatEnforcementAudit(report));
91
+ }
92
+ return 0;
93
+ }
94
+ //# sourceMappingURL=audit-verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-verify.js","sourceRoot":"","sources":["../../src/commands/audit-verify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export interface AutoSetupResult {
2
+ detected: boolean;
3
+ hooksMissing: boolean;
4
+ installed: boolean;
5
+ source: string | null;
6
+ skipped: string | null;
7
+ }
8
+ /** Check if agentguard is listed in package.json dependencies. */
9
+ export declare function detectAgentGuardDependency(cwd?: string): {
10
+ found: boolean;
11
+ source: string | null;
12
+ };
13
+ /** Check if Claude Code environment exists (.claude/ directory). */
14
+ export declare function detectClaudeCodeEnvironment(cwd?: string): boolean;
15
+ /** Check if AgentGuard hooks are already installed in settings.json. */
16
+ export declare function detectExistingHooks(cwd?: string): boolean;
17
+ /**
18
+ * Auto-detect AgentGuard in the project and configure Claude Code hooks if needed.
19
+ *
20
+ * Detection checks (in order):
21
+ * 1. Is agentguard listed in package.json dependencies?
22
+ * 2. Does .claude/ directory exist (Claude Code environment)?
23
+ * 3. Are hooks already installed?
24
+ *
25
+ * If agentguard is a dependency and hooks are missing, runs claude-init automatically.
26
+ */
27
+ export declare function autoSetup(args?: string[]): Promise<AutoSetupResult>;
28
+ //# sourceMappingURL=auto-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-setup.d.ts","sourceRoot":"","sources":["../../src/commands/auto-setup.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,kEAAkE;AAClE,wBAAgB,0BAA0B,CAAC,GAAG,GAAE,MAAsB,GAAG;IACvE,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAsBA;AAED,oEAAoE;AACpE,wBAAgB,2BAA2B,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAEhF;AAED,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAqBxE;AAED;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAqG7E"}
@@ -0,0 +1,146 @@
1
+ // agentguard auto-setup — detect AgentGuard in project and auto-configure Claude Code hooks
2
+ import { readFileSync, existsSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+ import { homedir } from 'node:os';
5
+ import { RESET, BOLD, DIM, FG } from '../colors.js';
6
+ import { claudeInit } from './claude-init.js';
7
+ import { resolveMainRepoRoot } from '@red-codes/core';
8
+ const HOOK_MARKER = 'claude-hook';
9
+ /** Check if agentguard is listed in package.json dependencies. */
10
+ export function detectAgentGuardDependency(cwd = process.cwd()) {
11
+ const pkgPath = join(cwd, 'package.json');
12
+ if (!existsSync(pkgPath)) {
13
+ return { found: false, source: null };
14
+ }
15
+ try {
16
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
17
+ const deps = pkg.dependencies ?? {};
18
+ const devDeps = pkg.devDependencies ?? {};
19
+ // Check for published package name or monorepo workspace name
20
+ const candidates = ['@red-codes/agentguard', 'agentguard'];
21
+ for (const name of candidates) {
22
+ if (name in deps)
23
+ return { found: true, source: `dependencies["${name}"]` };
24
+ if (name in devDeps)
25
+ return { found: true, source: `devDependencies["${name}"]` };
26
+ }
27
+ }
28
+ catch {
29
+ // Corrupt package.json — treat as not found
30
+ }
31
+ return { found: false, source: null };
32
+ }
33
+ /** Check if Claude Code environment exists (.claude/ directory). */
34
+ export function detectClaudeCodeEnvironment(cwd = process.cwd()) {
35
+ return existsSync(join(cwd, '.claude'));
36
+ }
37
+ /** Check if AgentGuard hooks are already installed in settings.json. */
38
+ export function detectExistingHooks(cwd = process.cwd()) {
39
+ const localPath = join(cwd, '.claude', 'settings.json');
40
+ const globalPath = join(homedir(), '.claude', 'settings.json');
41
+ for (const settingsPath of [localPath, globalPath]) {
42
+ if (existsSync(settingsPath)) {
43
+ try {
44
+ const settings = JSON.parse(readFileSync(settingsPath, 'utf8'));
45
+ const preToolUse = settings?.hooks?.PreToolUse ?? [];
46
+ const hasHook = preToolUse.some((entry) => {
47
+ const hooks = entry.hooks ?? [];
48
+ return hooks.some((h) => h.command && h.command.includes(HOOK_MARKER));
49
+ });
50
+ if (hasHook)
51
+ return true;
52
+ }
53
+ catch {
54
+ // Corrupt settings — treat as no hooks
55
+ }
56
+ }
57
+ }
58
+ return false;
59
+ }
60
+ /**
61
+ * Auto-detect AgentGuard in the project and configure Claude Code hooks if needed.
62
+ *
63
+ * Detection checks (in order):
64
+ * 1. Is agentguard listed in package.json dependencies?
65
+ * 2. Does .claude/ directory exist (Claude Code environment)?
66
+ * 3. Are hooks already installed?
67
+ *
68
+ * If agentguard is a dependency and hooks are missing, runs claude-init automatically.
69
+ */
70
+ export async function autoSetup(args = []) {
71
+ const quiet = args.includes('--quiet') || args.includes('-q');
72
+ const dryRun = args.includes('--dry-run');
73
+ const cwd = resolveMainRepoRoot();
74
+ const result = {
75
+ detected: false,
76
+ hooksMissing: false,
77
+ installed: false,
78
+ source: null,
79
+ skipped: null,
80
+ };
81
+ if (!quiet) {
82
+ process.stderr.write('\n');
83
+ process.stderr.write(` ${BOLD}AgentGuard Auto-Setup${RESET}\n\n`);
84
+ }
85
+ // Step 1: Detect agentguard in package.json
86
+ const dep = detectAgentGuardDependency(cwd);
87
+ // Also check if we're in the agentguard dev repo (has apps/cli/src/bin.ts)
88
+ const isDevRepo = existsSync(join(cwd, 'apps', 'cli', 'src', 'bin.ts'));
89
+ if (!dep.found && !isDevRepo) {
90
+ result.skipped = 'AgentGuard not found in package.json dependencies';
91
+ if (!quiet) {
92
+ process.stderr.write(` ${FG.yellow}⊘${RESET} AgentGuard not detected in ${FG.cyan}package.json${RESET}\n`);
93
+ process.stderr.write(` ${DIM}Install: npm install --save-dev @red-codes/agentguard${RESET}\n`);
94
+ process.stderr.write(` ${DIM}Or run: agentguard claude-init (to configure manually)${RESET}\n\n`);
95
+ }
96
+ return result;
97
+ }
98
+ result.detected = true;
99
+ result.source = isDevRepo ? 'agentguard-dev-repo' : dep.source;
100
+ if (!quiet) {
101
+ const sourceLabel = isDevRepo ? 'dev repo' : dep.source;
102
+ process.stderr.write(` ${FG.green}✓${RESET} AgentGuard detected ${DIM}(${sourceLabel})${RESET}\n`);
103
+ }
104
+ // Step 2: Check if hooks are already installed
105
+ if (detectExistingHooks(cwd)) {
106
+ result.hooksMissing = false;
107
+ result.skipped = 'Hooks already installed';
108
+ if (!quiet) {
109
+ process.stderr.write(` ${FG.green}✓${RESET} Claude Code hooks already installed\n`);
110
+ process.stderr.write(`\n ${DIM}No action needed — governance is active.${RESET}\n\n`);
111
+ }
112
+ return result;
113
+ }
114
+ result.hooksMissing = true;
115
+ // Step 3: Check Claude Code environment
116
+ const hasClaudeDir = detectClaudeCodeEnvironment(cwd);
117
+ if (!quiet) {
118
+ if (hasClaudeDir) {
119
+ process.stderr.write(` ${FG.green}✓${RESET} Claude Code environment detected ${DIM}(.claude/)${RESET}\n`);
120
+ }
121
+ else {
122
+ process.stderr.write(` ${DIM}ℹ${RESET} .claude/ directory will be created\n`);
123
+ }
124
+ process.stderr.write(` ${FG.yellow}!${RESET} Hooks not configured — auto-installing...\n\n`);
125
+ }
126
+ // Resolve forwarded args before dry-run check so the message reflects actual flags
127
+ const storeIdx = args.findIndex((a) => a === '--store');
128
+ const storeBackend = storeIdx !== -1 && args[storeIdx + 1] ? args[storeIdx + 1] : 'sqlite';
129
+ const dbPathIdx = args.findIndex((a) => a === '--db-path');
130
+ const forwardArgs = ['--store', storeBackend];
131
+ if (dbPathIdx !== -1 && args[dbPathIdx + 1]) {
132
+ forwardArgs.push('--db-path', args[dbPathIdx + 1]);
133
+ }
134
+ // Step 4: Auto-install (delegate to claude-init)
135
+ if (dryRun) {
136
+ result.skipped = 'Dry run — skipped installation';
137
+ if (!quiet) {
138
+ process.stderr.write(` ${DIM}[dry-run] Would run: agentguard claude-init --store ${storeBackend}${RESET}\n\n`);
139
+ }
140
+ return result;
141
+ }
142
+ await claudeInit(forwardArgs);
143
+ result.installed = true;
144
+ return result;
145
+ }
146
+ //# sourceMappingURL=auto-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-setup.js","sourceRoot":"","sources":["../../src/commands/auto-setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { StorageConfig } from '@red-codes/storage';
2
+ export interface CiCheckResult {
3
+ readonly runId: string;
4
+ readonly totalActions: number;
5
+ readonly allowed: number;
6
+ readonly denied: number;
7
+ readonly violations: number;
8
+ readonly escalations: number;
9
+ readonly denialReasons: readonly string[];
10
+ readonly pass: boolean;
11
+ }
12
+ export declare function ciCheck(args: string[], storageConfig?: StorageConfig): Promise<number>;
13
+ //# sourceMappingURL=ci-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-check.d.ts","sourceRoot":"","sources":["../../src/commands/ci-check.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAQxD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAmND,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAmH5F"}