@red-codes/agentguard 1.0.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (434) hide show
  1. package/README.md +179 -298
  2. package/dist/args.d.ts.map +1 -0
  3. package/dist/args.js.map +1 -0
  4. package/dist/bin.d.ts.map +1 -0
  5. package/dist/bin.js +29185 -0
  6. package/dist/bin.js.map +7 -0
  7. package/dist/colors.d.ts.map +1 -0
  8. package/dist/colors.js.map +1 -0
  9. package/dist/commands/adoption.d.ts +2 -0
  10. package/dist/commands/adoption.d.ts.map +1 -0
  11. package/dist/commands/adoption.js +172 -0
  12. package/dist/commands/adoption.js.map +1 -0
  13. package/dist/commands/analytics.d.ts +3 -0
  14. package/dist/commands/analytics.d.ts.map +1 -0
  15. package/dist/commands/analytics.js +7 -0
  16. package/dist/commands/analytics.js.map +1 -0
  17. package/dist/commands/audit-verify.d.ts +3 -0
  18. package/dist/commands/audit-verify.d.ts.map +1 -0
  19. package/dist/commands/audit-verify.js +94 -0
  20. package/dist/commands/audit-verify.js.map +1 -0
  21. package/dist/commands/auto-setup.d.ts +28 -0
  22. package/dist/commands/auto-setup.d.ts.map +1 -0
  23. package/dist/commands/auto-setup.js +146 -0
  24. package/dist/commands/auto-setup.js.map +1 -0
  25. package/dist/commands/ci-check.d.ts +13 -0
  26. package/dist/commands/ci-check.d.ts.map +1 -0
  27. package/dist/commands/ci-check.js +286 -0
  28. package/dist/commands/ci-check.js.map +1 -0
  29. package/dist/commands/claude-hook.d.ts +2 -0
  30. package/dist/commands/claude-hook.d.ts.map +1 -0
  31. package/dist/commands/claude-hook.js +254 -0
  32. package/dist/commands/claude-hook.js.map +1 -0
  33. package/dist/commands/claude-init.d.ts.map +1 -0
  34. package/dist/commands/claude-init.js +401 -0
  35. package/dist/commands/claude-init.js.map +1 -0
  36. package/dist/commands/config.d.ts +39 -0
  37. package/dist/commands/config.d.ts.map +1 -0
  38. package/dist/commands/config.js +368 -0
  39. package/dist/commands/config.js.map +1 -0
  40. package/dist/commands/demo.d.ts +2 -0
  41. package/dist/commands/demo.d.ts.map +1 -0
  42. package/dist/commands/demo.js +100 -0
  43. package/dist/commands/demo.js.map +1 -0
  44. package/dist/commands/diff.d.ts +3 -0
  45. package/dist/commands/diff.d.ts.map +1 -0
  46. package/dist/commands/diff.js +364 -0
  47. package/dist/commands/diff.js.map +1 -0
  48. package/dist/commands/evidence-pr.d.ts +3 -0
  49. package/dist/commands/evidence-pr.d.ts.map +1 -0
  50. package/dist/commands/evidence-pr.js +162 -0
  51. package/dist/commands/evidence-pr.js.map +1 -0
  52. package/dist/commands/export.d.ts +22 -0
  53. package/dist/commands/export.d.ts.map +1 -0
  54. package/dist/commands/export.js +92 -0
  55. package/dist/commands/export.js.map +1 -0
  56. package/dist/commands/guard.d.ts +21 -0
  57. package/dist/commands/guard.d.ts.map +1 -0
  58. package/dist/commands/guard.js +272 -0
  59. package/dist/commands/guard.js.map +1 -0
  60. package/dist/commands/import.d.ts +3 -0
  61. package/dist/commands/import.d.ts.map +1 -0
  62. package/dist/{cli/commands → commands}/import.js +25 -26
  63. package/dist/commands/import.js.map +1 -0
  64. package/dist/commands/init.d.ts +5 -0
  65. package/dist/commands/init.d.ts.map +1 -0
  66. package/dist/commands/init.js +1288 -0
  67. package/dist/commands/init.js.map +1 -0
  68. package/dist/commands/inspect.d.ts +4 -0
  69. package/dist/commands/inspect.d.ts.map +1 -0
  70. package/dist/{cli/commands → commands}/inspect.js +97 -70
  71. package/dist/commands/inspect.js.map +1 -0
  72. package/dist/commands/learn.d.ts +2 -0
  73. package/dist/commands/learn.d.ts.map +1 -0
  74. package/dist/commands/learn.js +264 -0
  75. package/dist/commands/learn.js.map +1 -0
  76. package/dist/commands/migrate.d.ts +3 -0
  77. package/dist/commands/migrate.d.ts.map +1 -0
  78. package/dist/commands/migrate.js +270 -0
  79. package/dist/commands/migrate.js.map +1 -0
  80. package/dist/commands/plugin.d.ts.map +1 -0
  81. package/dist/{cli/commands → commands}/plugin.js +2 -2
  82. package/dist/commands/plugin.js.map +1 -0
  83. package/dist/commands/policy-verify.d.ts +46 -0
  84. package/dist/commands/policy-verify.d.ts.map +1 -0
  85. package/dist/commands/policy-verify.js +173 -0
  86. package/dist/commands/policy-verify.js.map +1 -0
  87. package/dist/commands/policy.d.ts +27 -0
  88. package/dist/commands/policy.d.ts.map +1 -0
  89. package/dist/commands/policy.js +590 -0
  90. package/dist/commands/policy.js.map +1 -0
  91. package/dist/{cli/commands → commands}/replay.d.ts +2 -1
  92. package/dist/commands/replay.d.ts.map +1 -0
  93. package/dist/{cli/commands → commands}/replay.js +78 -12
  94. package/dist/commands/replay.js.map +1 -0
  95. package/dist/commands/session-viewer.d.ts +5 -0
  96. package/dist/commands/session-viewer.d.ts.map +1 -0
  97. package/dist/commands/session-viewer.js +462 -0
  98. package/dist/commands/session-viewer.js.map +1 -0
  99. package/dist/commands/simulate.d.ts +7 -0
  100. package/dist/commands/simulate.d.ts.map +1 -0
  101. package/dist/commands/simulate.js +505 -0
  102. package/dist/commands/simulate.js.map +1 -0
  103. package/dist/commands/status.d.ts +2 -0
  104. package/dist/commands/status.d.ts.map +1 -0
  105. package/dist/commands/status.js +212 -0
  106. package/dist/commands/status.js.map +1 -0
  107. package/dist/commands/traces.d.ts +24 -0
  108. package/dist/commands/traces.d.ts.map +1 -0
  109. package/dist/commands/traces.js +282 -0
  110. package/dist/commands/traces.js.map +1 -0
  111. package/dist/commands/trust.d.ts +6 -0
  112. package/dist/commands/trust.d.ts.map +1 -0
  113. package/dist/commands/trust.js +129 -0
  114. package/dist/commands/trust.js.map +1 -0
  115. package/dist/evidence-summary.d.ts +35 -0
  116. package/dist/evidence-summary.d.ts.map +1 -0
  117. package/dist/evidence-summary.js +202 -0
  118. package/dist/evidence-summary.js.map +1 -0
  119. package/dist/{cli/file-event-store.d.ts → file-event-store.d.ts} +1 -1
  120. package/dist/file-event-store.d.ts.map +1 -0
  121. package/dist/{cli/file-event-store.js → file-event-store.js} +1 -1
  122. package/dist/file-event-store.js.map +1 -0
  123. package/{hooks → dist/hooks}/post-commit +3 -1
  124. package/{hooks → dist/hooks}/post-merge +3 -1
  125. package/dist/hooks/pre-commit +29 -0
  126. package/dist/policy-resolver.d.ts +32 -0
  127. package/dist/policy-resolver.d.ts.map +1 -0
  128. package/dist/policy-resolver.js +171 -0
  129. package/dist/policy-resolver.js.map +1 -0
  130. package/dist/{cli/recorder.d.ts → recorder.d.ts} +1 -1
  131. package/dist/recorder.d.ts.map +1 -0
  132. package/dist/{cli/recorder.js → recorder.js} +1 -1
  133. package/dist/recorder.js.map +1 -0
  134. package/dist/replay-timeline-html.d.ts +21 -0
  135. package/dist/replay-timeline-html.d.ts.map +1 -0
  136. package/dist/replay-timeline-html.js +414 -0
  137. package/dist/replay-timeline-html.js.map +1 -0
  138. package/dist/replay.d.ts.map +1 -0
  139. package/dist/{cli/replay.js → replay.js} +92 -1
  140. package/dist/replay.js.map +1 -0
  141. package/dist/{cli/session-store.d.ts → session-store.d.ts} +5 -0
  142. package/dist/session-store.d.ts.map +1 -0
  143. package/dist/{cli/session-store.js → session-store.js} +1 -0
  144. package/dist/session-store.js.map +1 -0
  145. package/dist/session-viewer-html.d.ts +10 -0
  146. package/dist/session-viewer-html.d.ts.map +1 -0
  147. package/dist/session-viewer-html.js +737 -0
  148. package/dist/session-viewer-html.js.map +1 -0
  149. package/dist/templates/ci-only.yaml +103 -0
  150. package/dist/templates/development.yaml +107 -0
  151. package/dist/templates/permissive.yaml +87 -0
  152. package/dist/templates/strict.yaml +112 -0
  153. package/dist/tui.d.ts +3 -0
  154. package/dist/tui.d.ts.map +1 -0
  155. package/dist/tui.js +2 -0
  156. package/dist/tui.js.map +1 -0
  157. package/package.json +42 -53
  158. package/dist/adapters/claude-code.d.ts +0 -24
  159. package/dist/adapters/claude-code.d.ts.map +0 -1
  160. package/dist/adapters/claude-code.js +0 -99
  161. package/dist/adapters/claude-code.js.map +0 -1
  162. package/dist/adapters/file.d.ts +0 -3
  163. package/dist/adapters/file.d.ts.map +0 -1
  164. package/dist/adapters/file.js +0 -35
  165. package/dist/adapters/file.js.map +0 -1
  166. package/dist/adapters/git.d.ts +0 -3
  167. package/dist/adapters/git.d.ts.map +0 -1
  168. package/dist/adapters/git.js +0 -61
  169. package/dist/adapters/git.js.map +0 -1
  170. package/dist/adapters/registry.d.ts +0 -5
  171. package/dist/adapters/registry.d.ts.map +0 -1
  172. package/dist/adapters/registry.js +0 -15
  173. package/dist/adapters/registry.js.map +0 -1
  174. package/dist/adapters/shell.d.ts +0 -8
  175. package/dist/adapters/shell.d.ts.map +0 -1
  176. package/dist/adapters/shell.js +0 -27
  177. package/dist/adapters/shell.js.map +0 -1
  178. package/dist/cli/args.d.ts.map +0 -1
  179. package/dist/cli/args.js.map +0 -1
  180. package/dist/cli/bin.d.ts.map +0 -1
  181. package/dist/cli/bin.js +0 -5769
  182. package/dist/cli/bin.js.map +0 -7
  183. package/dist/cli/colors.d.ts.map +0 -1
  184. package/dist/cli/colors.js.map +0 -1
  185. package/dist/cli/commands/claude-hook.d.ts +0 -2
  186. package/dist/cli/commands/claude-hook.d.ts.map +0 -1
  187. package/dist/cli/commands/claude-hook.js +0 -110
  188. package/dist/cli/commands/claude-hook.js.map +0 -1
  189. package/dist/cli/commands/claude-init.d.ts.map +0 -1
  190. package/dist/cli/commands/claude-init.js +0 -150
  191. package/dist/cli/commands/claude-init.js.map +0 -1
  192. package/dist/cli/commands/export.d.ts +0 -11
  193. package/dist/cli/commands/export.d.ts.map +0 -1
  194. package/dist/cli/commands/export.js +0 -113
  195. package/dist/cli/commands/export.js.map +0 -1
  196. package/dist/cli/commands/guard.d.ts +0 -12
  197. package/dist/cli/commands/guard.d.ts.map +0 -1
  198. package/dist/cli/commands/guard.js +0 -145
  199. package/dist/cli/commands/guard.js.map +0 -1
  200. package/dist/cli/commands/import.d.ts +0 -2
  201. package/dist/cli/commands/import.d.ts.map +0 -1
  202. package/dist/cli/commands/import.js.map +0 -1
  203. package/dist/cli/commands/inspect.d.ts +0 -3
  204. package/dist/cli/commands/inspect.d.ts.map +0 -1
  205. package/dist/cli/commands/inspect.js.map +0 -1
  206. package/dist/cli/commands/plugin.d.ts.map +0 -1
  207. package/dist/cli/commands/plugin.js.map +0 -1
  208. package/dist/cli/commands/replay.d.ts.map +0 -1
  209. package/dist/cli/commands/replay.js.map +0 -1
  210. package/dist/cli/file-event-store.d.ts.map +0 -1
  211. package/dist/cli/file-event-store.js.map +0 -1
  212. package/dist/cli/policy-resolver.d.ts +0 -4
  213. package/dist/cli/policy-resolver.d.ts.map +0 -1
  214. package/dist/cli/policy-resolver.js +0 -62
  215. package/dist/cli/policy-resolver.js.map +0 -1
  216. package/dist/cli/recorder.d.ts.map +0 -1
  217. package/dist/cli/recorder.js.map +0 -1
  218. package/dist/cli/replay.d.ts.map +0 -1
  219. package/dist/cli/replay.js.map +0 -1
  220. package/dist/cli/session-store.d.ts.map +0 -1
  221. package/dist/cli/session-store.js.map +0 -1
  222. package/dist/cli/tui.d.ts +0 -24
  223. package/dist/cli/tui.d.ts.map +0 -1
  224. package/dist/cli/tui.js +0 -197
  225. package/dist/cli/tui.js.map +0 -1
  226. package/dist/core/actions.d.ts +0 -11
  227. package/dist/core/actions.d.ts.map +0 -1
  228. package/dist/core/actions.js +0 -112
  229. package/dist/core/actions.js.map +0 -1
  230. package/dist/core/adapters.d.ts +0 -19
  231. package/dist/core/adapters.d.ts.map +0 -1
  232. package/dist/core/adapters.js +0 -85
  233. package/dist/core/adapters.js.map +0 -1
  234. package/dist/core/execution-log/bridge.d.ts +0 -12
  235. package/dist/core/execution-log/bridge.d.ts.map +0 -1
  236. package/dist/core/execution-log/bridge.js +0 -112
  237. package/dist/core/execution-log/bridge.js.map +0 -1
  238. package/dist/core/execution-log/event-log.d.ts +0 -7
  239. package/dist/core/execution-log/event-log.d.ts.map +0 -1
  240. package/dist/core/execution-log/event-log.js +0 -103
  241. package/dist/core/execution-log/event-log.js.map +0 -1
  242. package/dist/core/execution-log/event-projections.d.ts +0 -28
  243. package/dist/core/execution-log/event-projections.d.ts.map +0 -1
  244. package/dist/core/execution-log/event-projections.js +0 -272
  245. package/dist/core/execution-log/event-projections.js.map +0 -1
  246. package/dist/core/execution-log/event-schema.d.ts +0 -56
  247. package/dist/core/execution-log/event-schema.d.ts.map +0 -1
  248. package/dist/core/execution-log/event-schema.js +0 -160
  249. package/dist/core/execution-log/event-schema.js.map +0 -1
  250. package/dist/core/execution-log/index.d.ts +0 -7
  251. package/dist/core/execution-log/index.d.ts.map +0 -1
  252. package/dist/core/execution-log/index.js +0 -13
  253. package/dist/core/execution-log/index.js.map +0 -1
  254. package/dist/core/hash.d.ts +0 -5
  255. package/dist/core/hash.d.ts.map +0 -1
  256. package/dist/core/hash.js +0 -13
  257. package/dist/core/hash.js.map +0 -1
  258. package/dist/core/rng.d.ts +0 -29
  259. package/dist/core/rng.d.ts.map +0 -1
  260. package/dist/core/rng.js +0 -48
  261. package/dist/core/rng.js.map +0 -1
  262. package/dist/core/types.d.ts +0 -746
  263. package/dist/core/types.d.ts.map +0 -1
  264. package/dist/core/types.js +0 -8
  265. package/dist/core/types.js.map +0 -1
  266. package/dist/events/bus.d.ts +0 -24
  267. package/dist/events/bus.d.ts.map +0 -1
  268. package/dist/events/bus.js +0 -64
  269. package/dist/events/bus.js.map +0 -1
  270. package/dist/events/decision-jsonl.d.ts +0 -8
  271. package/dist/events/decision-jsonl.d.ts.map +0 -1
  272. package/dist/events/decision-jsonl.js +0 -44
  273. package/dist/events/decision-jsonl.js.map +0 -1
  274. package/dist/events/jsonl.d.ts +0 -8
  275. package/dist/events/jsonl.d.ts.map +0 -1
  276. package/dist/events/jsonl.js +0 -46
  277. package/dist/events/jsonl.js.map +0 -1
  278. package/dist/events/schema.d.ts +0 -59
  279. package/dist/events/schema.d.ts.map +0 -1
  280. package/dist/events/schema.js +0 -296
  281. package/dist/events/schema.js.map +0 -1
  282. package/dist/events/store.d.ts +0 -7
  283. package/dist/events/store.d.ts.map +0 -1
  284. package/dist/events/store.js +0 -64
  285. package/dist/events/store.js.map +0 -1
  286. package/dist/invariants/checker.d.ts +0 -15
  287. package/dist/invariants/checker.d.ts.map +0 -1
  288. package/dist/invariants/checker.js +0 -52
  289. package/dist/invariants/checker.js.map +0 -1
  290. package/dist/invariants/definitions.d.ts +0 -33
  291. package/dist/invariants/definitions.d.ts.map +0 -1
  292. package/dist/invariants/definitions.js +0 -168
  293. package/dist/invariants/definitions.js.map +0 -1
  294. package/dist/kernel/aab.d.ts +0 -26
  295. package/dist/kernel/aab.d.ts.map +0 -1
  296. package/dist/kernel/aab.js +0 -149
  297. package/dist/kernel/aab.js.map +0 -1
  298. package/dist/kernel/blast-radius.d.ts +0 -60
  299. package/dist/kernel/blast-radius.d.ts.map +0 -1
  300. package/dist/kernel/blast-radius.js +0 -146
  301. package/dist/kernel/blast-radius.js.map +0 -1
  302. package/dist/kernel/decision.d.ts +0 -40
  303. package/dist/kernel/decision.d.ts.map +0 -1
  304. package/dist/kernel/decision.js +0 -92
  305. package/dist/kernel/decision.js.map +0 -1
  306. package/dist/kernel/decisions/factory.d.ts +0 -12
  307. package/dist/kernel/decisions/factory.d.ts.map +0 -1
  308. package/dist/kernel/decisions/factory.js +0 -56
  309. package/dist/kernel/decisions/factory.js.map +0 -1
  310. package/dist/kernel/decisions/types.d.ts +0 -70
  311. package/dist/kernel/decisions/types.d.ts.map +0 -1
  312. package/dist/kernel/decisions/types.js +0 -5
  313. package/dist/kernel/decisions/types.js.map +0 -1
  314. package/dist/kernel/evidence.d.ts +0 -29
  315. package/dist/kernel/evidence.d.ts.map +0 -1
  316. package/dist/kernel/evidence.js +0 -61
  317. package/dist/kernel/evidence.js.map +0 -1
  318. package/dist/kernel/kernel.d.ts +0 -47
  319. package/dist/kernel/kernel.d.ts.map +0 -1
  320. package/dist/kernel/kernel.js +0 -377
  321. package/dist/kernel/kernel.js.map +0 -1
  322. package/dist/kernel/monitor.d.ts +0 -35
  323. package/dist/kernel/monitor.d.ts.map +0 -1
  324. package/dist/kernel/monitor.js +0 -144
  325. package/dist/kernel/monitor.js.map +0 -1
  326. package/dist/kernel/replay-comparator.d.ts +0 -72
  327. package/dist/kernel/replay-comparator.d.ts.map +0 -1
  328. package/dist/kernel/replay-comparator.js +0 -251
  329. package/dist/kernel/replay-comparator.js.map +0 -1
  330. package/dist/kernel/replay-engine.d.ts +0 -108
  331. package/dist/kernel/replay-engine.d.ts.map +0 -1
  332. package/dist/kernel/replay-engine.js +0 -241
  333. package/dist/kernel/replay-engine.js.map +0 -1
  334. package/dist/kernel/replay-processor.d.ts +0 -109
  335. package/dist/kernel/replay-processor.d.ts.map +0 -1
  336. package/dist/kernel/replay-processor.js +0 -118
  337. package/dist/kernel/replay-processor.js.map +0 -1
  338. package/dist/kernel/simulation/filesystem-simulator.d.ts +0 -3
  339. package/dist/kernel/simulation/filesystem-simulator.d.ts.map +0 -1
  340. package/dist/kernel/simulation/filesystem-simulator.js +0 -81
  341. package/dist/kernel/simulation/filesystem-simulator.js.map +0 -1
  342. package/dist/kernel/simulation/git-simulator.d.ts +0 -5
  343. package/dist/kernel/simulation/git-simulator.d.ts.map +0 -1
  344. package/dist/kernel/simulation/git-simulator.js +0 -115
  345. package/dist/kernel/simulation/git-simulator.js.map +0 -1
  346. package/dist/kernel/simulation/package-simulator.d.ts +0 -5
  347. package/dist/kernel/simulation/package-simulator.d.ts.map +0 -1
  348. package/dist/kernel/simulation/package-simulator.js +0 -164
  349. package/dist/kernel/simulation/package-simulator.js.map +0 -1
  350. package/dist/kernel/simulation/registry.d.ts +0 -3
  351. package/dist/kernel/simulation/registry.d.ts.map +0 -1
  352. package/dist/kernel/simulation/registry.js +0 -24
  353. package/dist/kernel/simulation/registry.js.map +0 -1
  354. package/dist/kernel/simulation/types.d.ts +0 -35
  355. package/dist/kernel/simulation/types.d.ts.map +0 -1
  356. package/dist/kernel/simulation/types.js +0 -4
  357. package/dist/kernel/simulation/types.js.map +0 -1
  358. package/dist/plugins/discovery.d.ts +0 -45
  359. package/dist/plugins/discovery.d.ts.map +0 -1
  360. package/dist/plugins/discovery.js +0 -89
  361. package/dist/plugins/discovery.js.map +0 -1
  362. package/dist/plugins/index.d.ts +0 -10
  363. package/dist/plugins/index.d.ts.map +0 -1
  364. package/dist/plugins/index.js +0 -7
  365. package/dist/plugins/index.js.map +0 -1
  366. package/dist/plugins/registry.d.ts +0 -52
  367. package/dist/plugins/registry.d.ts.map +0 -1
  368. package/dist/plugins/registry.js +0 -148
  369. package/dist/plugins/registry.js.map +0 -1
  370. package/dist/plugins/sandbox.d.ts +0 -87
  371. package/dist/plugins/sandbox.d.ts.map +0 -1
  372. package/dist/plugins/sandbox.js +0 -122
  373. package/dist/plugins/sandbox.js.map +0 -1
  374. package/dist/plugins/types.d.ts +0 -61
  375. package/dist/plugins/types.d.ts.map +0 -1
  376. package/dist/plugins/types.js +0 -16
  377. package/dist/plugins/types.js.map +0 -1
  378. package/dist/plugins/validator.d.ts +0 -36
  379. package/dist/plugins/validator.d.ts.map +0 -1
  380. package/dist/plugins/validator.js +0 -276
  381. package/dist/plugins/validator.js.map +0 -1
  382. package/dist/policy/evaluator.d.ts +0 -41
  383. package/dist/policy/evaluator.d.ts.map +0 -1
  384. package/dist/policy/evaluator.js +0 -111
  385. package/dist/policy/evaluator.js.map +0 -1
  386. package/dist/policy/loader.d.ts +0 -13
  387. package/dist/policy/loader.d.ts.map +0 -1
  388. package/dist/policy/loader.js +0 -118
  389. package/dist/policy/loader.js.map +0 -1
  390. package/dist/policy/pack-loader.d.ts +0 -40
  391. package/dist/policy/pack-loader.d.ts.map +0 -1
  392. package/dist/policy/pack-loader.js +0 -138
  393. package/dist/policy/pack-loader.js.map +0 -1
  394. package/dist/policy/yaml-loader.d.ts +0 -23
  395. package/dist/policy/yaml-loader.d.ts.map +0 -1
  396. package/dist/policy/yaml-loader.js +0 -222
  397. package/dist/policy/yaml-loader.js.map +0 -1
  398. package/dist/renderers/index.d.ts +0 -6
  399. package/dist/renderers/index.d.ts.map +0 -1
  400. package/dist/renderers/index.js +0 -4
  401. package/dist/renderers/index.js.map +0 -1
  402. package/dist/renderers/registry.d.ts +0 -39
  403. package/dist/renderers/registry.d.ts.map +0 -1
  404. package/dist/renderers/registry.js +0 -97
  405. package/dist/renderers/registry.js.map +0 -1
  406. package/dist/renderers/tui-renderer.d.ts +0 -18
  407. package/dist/renderers/tui-renderer.d.ts.map +0 -1
  408. package/dist/renderers/tui-renderer.js +0 -57
  409. package/dist/renderers/tui-renderer.js.map +0 -1
  410. package/dist/renderers/types.d.ts +0 -52
  411. package/dist/renderers/types.d.ts.map +0 -1
  412. package/dist/renderers/types.js +0 -4
  413. package/dist/renderers/types.js.map +0 -1
  414. package/dist/telemetry/index.d.ts +0 -3
  415. package/dist/telemetry/index.d.ts.map +0 -1
  416. package/dist/telemetry/index.js +0 -2
  417. package/dist/telemetry/index.js.map +0 -1
  418. package/dist/telemetry/runtimeLogger.d.ts +0 -9
  419. package/dist/telemetry/runtimeLogger.d.ts.map +0 -1
  420. package/dist/telemetry/runtimeLogger.js +0 -68
  421. package/dist/telemetry/runtimeLogger.js.map +0 -1
  422. package/dist/telemetry/types.d.ts +0 -22
  423. package/dist/telemetry/types.d.ts.map +0 -1
  424. package/dist/telemetry/types.js +0 -4
  425. package/dist/telemetry/types.js.map +0 -1
  426. package/hooks/pre-commit +0 -28
  427. /package/dist/{cli/args.d.ts → args.d.ts} +0 -0
  428. /package/dist/{cli/args.js → args.js} +0 -0
  429. /package/dist/{cli/bin.d.ts → bin.d.ts} +0 -0
  430. /package/dist/{cli/colors.d.ts → colors.d.ts} +0 -0
  431. /package/dist/{cli/colors.js → colors.js} +0 -0
  432. /package/dist/{cli/commands → commands}/claude-init.d.ts +0 -0
  433. /package/dist/{cli/commands → commands}/plugin.d.ts +0 -0
  434. /package/dist/{cli/replay.d.ts → replay.d.ts} +0 -0
@@ -1,115 +0,0 @@
1
- // Git simulator — predicts impact of git operations.
2
- // Runs git commands to assess risk without modifying state.
3
- import { execFileSync } from 'node:child_process';
4
- const GIT_ACTIONS = new Set(['git.push', 'git.force-push', 'git.merge', 'git.branch.delete']);
5
- /** Valid git ref characters: alphanumeric, hyphens, underscores, dots, slashes */
6
- const SAFE_BRANCH_RE = /^[a-zA-Z0-9._\-/]+$/;
7
- /** Validate a branch name to prevent command injection */
8
- export function isValidBranchName(name) {
9
- if (!name || name.length > 255)
10
- return false;
11
- if (!SAFE_BRANCH_RE.test(name))
12
- return false;
13
- // Reject directory traversal and git special refs
14
- if (name.includes('..') || name.startsWith('-') || name.endsWith('.lock'))
15
- return false;
16
- return true;
17
- }
18
- export function createGitSimulator() {
19
- return {
20
- id: 'git-simulator',
21
- supports(intent) {
22
- return GIT_ACTIONS.has(intent.action);
23
- },
24
- async simulate(intent, context) {
25
- const start = Date.now();
26
- const predictedChanges = [];
27
- const details = {};
28
- let blastRadius = 0;
29
- let riskLevel = 'low';
30
- // Force push is always high risk
31
- if (intent.action === 'git.force-push') {
32
- riskLevel = 'high';
33
- predictedChanges.push('Force push will rewrite remote history');
34
- details.forcePush = true;
35
- blastRadius = 100; // Maximum blast radius signal
36
- }
37
- // Count unpushed commits
38
- const branch = intent.branch || intent.target || '';
39
- if (branch && (intent.action === 'git.push' || intent.action === 'git.force-push')) {
40
- if (!isValidBranchName(branch)) {
41
- details.invalidBranch = true;
42
- riskLevel = 'high';
43
- predictedChanges.push(`Rejected invalid branch name: ${branch}`);
44
- }
45
- else
46
- try {
47
- const count = execFileSync('git', ['rev-list', '--count', `origin/${branch}..HEAD`], {
48
- encoding: 'utf8',
49
- timeout: 5000,
50
- }).trim();
51
- const unpushed = parseInt(count, 10);
52
- if (!isNaN(unpushed)) {
53
- details.unpushedCommits = unpushed;
54
- blastRadius = Math.max(blastRadius, unpushed);
55
- predictedChanges.push(`${unpushed} unpushed commit(s) to ${branch}`);
56
- if (unpushed > 10)
57
- riskLevel = riskLevel === 'high' ? 'high' : 'medium';
58
- }
59
- }
60
- catch {
61
- // Branch may not have a remote — not an error
62
- details.remoteTrackingError = true;
63
- }
64
- }
65
- // Check for protected branch push
66
- const protectedBranches = context.protectedBranches || ['main', 'master'];
67
- if (branch && protectedBranches.includes(branch)) {
68
- riskLevel = riskLevel === 'low' ? 'medium' : riskLevel;
69
- predictedChanges.push(`Push targets protected branch: ${branch}`);
70
- details.protectedBranch = true;
71
- }
72
- // Git merge: check for conflicts
73
- if (intent.action === 'git.merge' && branch) {
74
- if (!isValidBranchName(branch)) {
75
- details.invalidBranch = true;
76
- riskLevel = 'high';
77
- predictedChanges.push(`Rejected invalid branch name: ${branch}`);
78
- }
79
- else
80
- try {
81
- const diffStat = execFileSync('git', ['diff', '--stat', `HEAD...${branch}`], {
82
- encoding: 'utf8',
83
- timeout: 5000,
84
- }).trim();
85
- const fileCount = (diffStat.match(/\d+ files? changed/)?.[0] || '').match(/\d+/)?.[0];
86
- if (fileCount) {
87
- const count = parseInt(fileCount, 10);
88
- blastRadius = Math.max(blastRadius, count);
89
- predictedChanges.push(`Merge would affect ${count} file(s)`);
90
- if (count > 20)
91
- riskLevel = riskLevel === 'high' ? 'high' : 'medium';
92
- }
93
- }
94
- catch {
95
- details.mergeSimError = true;
96
- }
97
- }
98
- // Branch delete
99
- if (intent.action === 'git.branch.delete') {
100
- predictedChanges.push(`Delete branch: ${branch}`);
101
- riskLevel = protectedBranches.includes(branch) ? 'high' : 'low';
102
- blastRadius = protectedBranches.includes(branch) ? 100 : 1;
103
- }
104
- return {
105
- predictedChanges,
106
- blastRadius,
107
- riskLevel,
108
- details,
109
- simulatorId: 'git-simulator',
110
- durationMs: Date.now() - start,
111
- };
112
- },
113
- };
114
- }
115
- //# sourceMappingURL=git-simulator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-simulator.js","sourceRoot":"","sources":["../../../src/kernel/simulation/git-simulator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import type { ActionSimulator } from './types.js';
2
- /** Parse npm install command into safe argument list, rejecting dangerous inputs */
3
- export declare function parseNpmInstallArgs(command: string): string[];
4
- export declare function createPackageSimulator(): ActionSimulator;
5
- //# sourceMappingURL=package-simulator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-simulator.d.ts","sourceRoot":"","sources":["../../../src/kernel/simulation/package-simulator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,YAAY,CAAC;AAwCpE,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CA4B7D;AAiCD,wBAAgB,sBAAsB,IAAI,eAAe,CAyExD"}
@@ -1,164 +0,0 @@
1
- // Package simulator — predicts impact of package management operations.
2
- // Uses `npm install --dry-run` to preview dependency changes.
3
- import { execFileSync } from 'node:child_process';
4
- const INSTALL_PATTERNS = [
5
- /\bnpm\s+install\b/,
6
- /\bnpm\s+i\b/,
7
- /\byarn\s+add\b/,
8
- /\bpnpm\s+add\b/,
9
- /\bpnpm\s+install\b/,
10
- /\bnpm\s+uninstall\b/,
11
- /\bnpm\s+remove\b/,
12
- /\byarn\s+remove\b/,
13
- /\bpnpm\s+remove\b/,
14
- ];
15
- function isPackageCommand(command) {
16
- if (!command)
17
- return false;
18
- return INSTALL_PATTERNS.some((p) => p.test(command));
19
- }
20
- /** Safe characters for npm package specifiers: @scope/name@version */
21
- const SAFE_NPM_ARG_RE = /^[@a-zA-Z0-9._\-/^~>=<]+$/;
22
- /** Allowed npm flags for dry-run simulation (no shell metacharacters) */
23
- const ALLOWED_NPM_FLAGS = new Set([
24
- '-D',
25
- '--save-dev',
26
- '-E',
27
- '--save-exact',
28
- '-O',
29
- '--save-optional',
30
- '-g',
31
- '--global',
32
- '--legacy-peer-deps',
33
- '--no-save',
34
- '--save',
35
- ]);
36
- /** Characters that indicate shell operators — stop processing if found */
37
- const SHELL_META_RE = /[;|&$`'"\\(){}!<>]/;
38
- /** Parse npm install command into safe argument list, rejecting dangerous inputs */
39
- export function parseNpmInstallArgs(command) {
40
- // Split on whitespace and drop the leading 'npm install' / 'npm i'
41
- const tokens = command.trim().split(/\s+/);
42
- const args = [];
43
- let pastCommand = false;
44
- for (const token of tokens) {
45
- // Skip 'npm' and 'install'/'i'
46
- if (!pastCommand) {
47
- if (token === 'npm' || token === 'install' || token === 'i')
48
- continue;
49
- pastCommand = true;
50
- }
51
- // Stop entirely if any token contains shell metacharacters
52
- if (SHELL_META_RE.test(token))
53
- break;
54
- // Accept known flags
55
- if (token.startsWith('-') && ALLOWED_NPM_FLAGS.has(token)) {
56
- args.push(token);
57
- continue;
58
- }
59
- // Accept safe package specifiers (reject shell metacharacters)
60
- if (!token.startsWith('-') && SAFE_NPM_ARG_RE.test(token)) {
61
- args.push(token);
62
- continue;
63
- }
64
- // Reject anything else (unknown flags, etc.)
65
- }
66
- return args;
67
- }
68
- function parseNpmDryRunOutput(output) {
69
- let added = 0;
70
- let removed = 0;
71
- let changed = 0;
72
- const packages = [];
73
- // Parse "added X packages" style output
74
- const addedMatch = output.match(/added\s+(\d+)\s+package/);
75
- if (addedMatch)
76
- added = parseInt(addedMatch[1], 10);
77
- const removedMatch = output.match(/removed\s+(\d+)\s+package/);
78
- if (removedMatch)
79
- removed = parseInt(removedMatch[1], 10);
80
- const changedMatch = output.match(/changed\s+(\d+)\s+package/);
81
- if (changedMatch)
82
- changed = parseInt(changedMatch[1], 10);
83
- // Extract package names from lines like "+ package@version"
84
- const lines = output.split('\n');
85
- for (const line of lines) {
86
- const pkgMatch = line.match(/[+\-]\s+(\S+@\S+)/);
87
- if (pkgMatch)
88
- packages.push(pkgMatch[1]);
89
- }
90
- return { added, removed, changed, packages };
91
- }
92
- export function createPackageSimulator() {
93
- return {
94
- id: 'package-simulator',
95
- supports(intent) {
96
- return intent.action === 'shell.exec' && isPackageCommand(intent.command);
97
- },
98
- async simulate(intent) {
99
- const start = Date.now();
100
- const command = intent.command || '';
101
- const predictedChanges = [];
102
- const details = {};
103
- let blastRadius = 0;
104
- let riskLevel = 'low';
105
- // Try npm install --dry-run to preview changes
106
- if (/\bnpm\s+(install|i)\b/.test(command)) {
107
- const args = parseNpmInstallArgs(command);
108
- try {
109
- const output = execFileSync('npm', ['install', '--dry-run', ...args], {
110
- encoding: 'utf8',
111
- timeout: 30000,
112
- env: { ...process.env, npm_config_fund: 'false', npm_config_audit: 'false' },
113
- });
114
- const parsed = parseNpmDryRunOutput(output);
115
- details.npmDryRun = parsed;
116
- blastRadius = parsed.added + parsed.removed + parsed.changed;
117
- if (parsed.added > 0)
118
- predictedChanges.push(`${parsed.added} packages added`);
119
- if (parsed.removed > 0)
120
- predictedChanges.push(`${parsed.removed} packages removed`);
121
- if (parsed.changed > 0)
122
- predictedChanges.push(`${parsed.changed} packages changed`);
123
- if (parsed.packages.length > 0) {
124
- details.affectedPackages = parsed.packages;
125
- }
126
- }
127
- catch {
128
- // Dry-run failed — estimate from command
129
- details.dryRunFailed = true;
130
- predictedChanges.push('Package installation (dry-run unavailable)');
131
- blastRadius = 10; // Conservative estimate
132
- }
133
- }
134
- else {
135
- // For yarn/pnpm or remove commands, do basic analysis
136
- predictedChanges.push(`Package operation: ${command}`);
137
- blastRadius = 5; // Conservative estimate
138
- details.estimatedOnly = true;
139
- }
140
- // Risk assessment
141
- if (blastRadius > 50) {
142
- riskLevel = 'high';
143
- }
144
- else if (blastRadius > 10) {
145
- riskLevel = 'medium';
146
- }
147
- // Check for global installs (always medium+ risk)
148
- if (/\s-g\b|\s--global\b/.test(command)) {
149
- riskLevel = riskLevel === 'high' ? 'high' : 'medium';
150
- predictedChanges.push('Global package installation');
151
- details.globalInstall = true;
152
- }
153
- return {
154
- predictedChanges,
155
- blastRadius,
156
- riskLevel,
157
- details,
158
- simulatorId: 'package-simulator',
159
- durationMs: Date.now() - start,
160
- };
161
- },
162
- };
163
- }
164
- //# sourceMappingURL=package-simulator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-simulator.js","sourceRoot":"","sources":["../../../src/kernel/simulation/package-simulator.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { SimulatorRegistry } from './types.js';
2
- export declare function createSimulatorRegistry(): SimulatorRegistry;
3
- //# sourceMappingURL=registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/kernel/simulation/registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAErE,wBAAgB,uBAAuB,IAAI,iBAAiB,CAqB3D"}
@@ -1,24 +0,0 @@
1
- // Simulator registry — routes intents to the correct ActionSimulator.
2
- // Same array-based pattern as AdapterRegistry.
3
- export function createSimulatorRegistry() {
4
- const simulators = [];
5
- return {
6
- register(simulator) {
7
- // Prevent duplicate registration
8
- if (simulators.some((s) => s.id === simulator.id))
9
- return;
10
- simulators.push(simulator);
11
- },
12
- find(intent) {
13
- for (const simulator of simulators) {
14
- if (simulator.supports(intent))
15
- return simulator;
16
- }
17
- return null;
18
- },
19
- all() {
20
- return [...simulators];
21
- },
22
- };
23
- }
24
- //# sourceMappingURL=registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/kernel/simulation/registry.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,+CAA+C;AAK/C,MAAM,UAAU,uBAAuB;IACrC,MAAM,UAAU,GAAsB,EAAE,CAAC;IAEzC,OAAO;QACL,QAAQ,CAAC,SAA0B;YACjC,iCAAiC;YACjC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC;gBAAE,OAAO;YAC1D,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,MAAwB;YAC3B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAAE,OAAO,SAAS,CAAC;YACnD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,GAAG;YACD,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,35 +0,0 @@
1
- import type { NormalizedIntent } from '../../policy/evaluator.js';
2
- /** Result of simulating an action before execution */
3
- export interface SimulationResult {
4
- /** Human-readable list of predicted changes */
5
- predictedChanges: string[];
6
- /** Estimated number of files/entities affected */
7
- blastRadius: number;
8
- /** Overall risk assessment */
9
- riskLevel: 'low' | 'medium' | 'high';
10
- /** Simulator-specific details */
11
- details: Record<string, unknown>;
12
- /** Which simulator produced this result */
13
- simulatorId: string;
14
- /** How long the simulation took (ms) */
15
- durationMs: number;
16
- }
17
- /** An action simulator predicts the impact of an action before execution */
18
- export interface ActionSimulator {
19
- /** Unique simulator identifier */
20
- readonly id: string;
21
- /** Check if this simulator can handle the given intent */
22
- supports(intent: NormalizedIntent): boolean;
23
- /** Simulate the action and predict its impact */
24
- simulate(intent: NormalizedIntent, context: Record<string, unknown>): Promise<SimulationResult>;
25
- }
26
- /** Registry of action simulators, routes intents to the correct simulator */
27
- export interface SimulatorRegistry {
28
- /** Register a simulator */
29
- register(simulator: ActionSimulator): void;
30
- /** Find a simulator that supports the given intent */
31
- find(intent: NormalizedIntent): ActionSimulator | null;
32
- /** Get all registered simulators */
33
- all(): ActionSimulator[];
34
- }
35
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/kernel/simulation/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,4EAA4E;AAC5E,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAC5C,iDAAiD;IACjD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACjG;AAED,6EAA6E;AAC7E,MAAM,WAAW,iBAAiB;IAChC,2BAA2B;IAC3B,QAAQ,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAC3C,sDAAsD;IACtD,IAAI,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe,GAAG,IAAI,CAAC;IACvD,oCAAoC;IACpC,GAAG,IAAI,eAAe,EAAE,CAAC;CAC1B"}
@@ -1,4 +0,0 @@
1
- // Simulation types — pre-execution impact prediction interfaces.
2
- // Pure type definitions. No DOM, no Node.js-specific APIs.
3
- export {};
4
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/kernel/simulation/types.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,2DAA2D"}
@@ -1,45 +0,0 @@
1
- import type { PluginType } from './types.js';
2
- /** A discovered plugin that has not yet been installed */
3
- export interface DiscoveredPlugin {
4
- /** Package or directory name */
5
- readonly name: string;
6
- /** Plugin version */
7
- readonly version: string;
8
- /** Brief description */
9
- readonly description: string;
10
- /** Plugin type if determinable */
11
- readonly type?: PluginType;
12
- /** Where this plugin was discovered */
13
- readonly source: 'npm' | 'local';
14
- /** Source-specific identifier (npm package name or file path) */
15
- readonly sourceId: string;
16
- }
17
- /** Options for npm registry search */
18
- export interface NpmSearchOptions {
19
- /** npm registry URL (default: https://registry.npmjs.org) */
20
- readonly registryUrl?: string;
21
- /** Search keyword (default: "agentguard-plugin") */
22
- readonly keyword?: string;
23
- /** Maximum results to return (default: 20) */
24
- readonly limit?: number;
25
- }
26
- /** Options for local directory search */
27
- export interface LocalSearchOptions {
28
- /** Directory to scan for plugins */
29
- readonly directory: string;
30
- }
31
- /**
32
- * Search the npm registry for AgentGuard plugins.
33
- *
34
- * Searches for packages with the "agentguard-plugin" keyword.
35
- * Uses the npm registry search API (/-/v1/search).
36
- */
37
- export declare function searchNpmPlugins(query?: string, options?: NpmSearchOptions): Promise<readonly DiscoveredPlugin[]>;
38
- /**
39
- * Search a local directory for AgentGuard plugins.
40
- *
41
- * Scans subdirectories for package.json files that contain
42
- * an "agentguard" field with plugin manifest data.
43
- */
44
- export declare function searchLocalPlugins(options: LocalSearchOptions): readonly DiscoveredPlugin[];
45
- //# sourceMappingURL=discovery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/plugins/discovery.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO,CAAC;IACjC,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,sCAAsC;AACtC,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC,oCAAoC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CA0BtC;AAcD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,SAAS,gBAAgB,EAAE,CA4C3F"}
@@ -1,89 +0,0 @@
1
- // Plugin discovery — search for available AgentGuard plugins.
2
- //
3
- // Supports two discovery sources:
4
- // 1. npm registry — search for packages with "agentguard-plugin" keyword
5
- // 2. Local directory — scan a directory for plugin manifests
6
- //
7
- // Discovery is read-only — it finds plugins but does not install them.
8
- // Use the PluginRegistry to install discovered plugins.
9
- import { readdirSync, readFileSync, existsSync, statSync } from 'node:fs';
10
- import { join } from 'node:path';
11
- /**
12
- * Search the npm registry for AgentGuard plugins.
13
- *
14
- * Searches for packages with the "agentguard-plugin" keyword.
15
- * Uses the npm registry search API (/-/v1/search).
16
- */
17
- export async function searchNpmPlugins(query, options) {
18
- const registryUrl = options?.registryUrl ?? 'https://registry.npmjs.org';
19
- const keyword = options?.keyword ?? 'agentguard-plugin';
20
- const limit = options?.limit ?? 20;
21
- const searchTerms = query ? `${keyword} ${query}` : keyword;
22
- const url = `${registryUrl}/-/v1/search?text=keywords:${encodeURIComponent(searchTerms)}&size=${limit}`;
23
- try {
24
- const response = await fetch(url);
25
- if (!response.ok) {
26
- return [];
27
- }
28
- const data = (await response.json());
29
- return (data.objects ?? []).map((obj) => ({
30
- name: obj.package.name,
31
- version: obj.package.version,
32
- description: obj.package.description ?? '',
33
- source: 'npm',
34
- sourceId: obj.package.name,
35
- }));
36
- }
37
- catch {
38
- // Network error or invalid response — return empty
39
- return [];
40
- }
41
- }
42
- /**
43
- * Search a local directory for AgentGuard plugins.
44
- *
45
- * Scans subdirectories for package.json files that contain
46
- * an "agentguard" field with plugin manifest data.
47
- */
48
- export function searchLocalPlugins(options) {
49
- const { directory } = options;
50
- if (!existsSync(directory)) {
51
- return [];
52
- }
53
- const results = [];
54
- try {
55
- const entries = readdirSync(directory);
56
- for (const entry of entries) {
57
- const entryPath = join(directory, entry);
58
- const stat = statSync(entryPath);
59
- if (!stat.isDirectory())
60
- continue;
61
- const pkgPath = join(entryPath, 'package.json');
62
- if (!existsSync(pkgPath))
63
- continue;
64
- try {
65
- const raw = readFileSync(pkgPath, 'utf8');
66
- const pkg = JSON.parse(raw);
67
- // Check for agentguard manifest in package.json
68
- if (pkg.agentguard) {
69
- results.push({
70
- name: pkg.name ?? entry,
71
- version: pkg.version ?? '0.0.0',
72
- description: pkg.description ?? '',
73
- type: pkg.agentguard.type,
74
- source: 'local',
75
- sourceId: entryPath,
76
- });
77
- }
78
- }
79
- catch {
80
- // Invalid package.json — skip
81
- }
82
- }
83
- }
84
- catch {
85
- // Directory read error — return what we have
86
- }
87
- return results;
88
- }
89
- //# sourceMappingURL=discovery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/plugins/discovery.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- export type { PluginType, PluginCapability, PluginManifest, PluginValidationError, PluginValidationResult, SandboxViolation, SandboxConfig, } from './types.js';
2
- export { VALID_CAPABILITIES } from './types.js';
3
- export { validateManifest, validatePlugin, checkApiVersionCompatibility } from './validator.js';
4
- export type { PluginSandbox, SandboxExecutionResult, SandboxRegistry } from './sandbox.js';
5
- export { createPluginSandbox, createSandboxRegistry } from './sandbox.js';
6
- export type { InstalledPlugin, PluginRegistry, PluginRegistryOptions } from './registry.js';
7
- export { createPluginRegistry } from './registry.js';
8
- export type { DiscoveredPlugin, NpmSearchOptions, LocalSearchOptions } from './discovery.js';
9
- export { searchNpmPlugins, searchLocalPlugins } from './discovery.js';
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAEhG,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE3F,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1E,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE7F,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,7 +0,0 @@
1
- // Plugin system — re-exports for public API.
2
- export { VALID_CAPABILITIES } from './types.js';
3
- export { validateManifest, validatePlugin, checkApiVersionCompatibility } from './validator.js';
4
- export { createPluginSandbox, createSandboxRegistry } from './sandbox.js';
5
- export { createPluginRegistry } from './registry.js';
6
- export { searchNpmPlugins, searchLocalPlugins } from './discovery.js';
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAY7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAIhG,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAI1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAIrD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,52 +0,0 @@
1
- import type { PluginManifest, PluginType, PluginValidationResult } from './types.js';
2
- /** Metadata stored for each installed plugin */
3
- export interface InstalledPlugin {
4
- /** The validated plugin manifest */
5
- readonly manifest: PluginManifest;
6
- /** Where the plugin was installed from (local path, npm package name) */
7
- readonly source: string;
8
- /** ISO timestamp of when the plugin was installed */
9
- readonly installedAt: string;
10
- /** Whether the plugin is currently enabled */
11
- readonly enabled: boolean;
12
- }
13
- /** Options for creating a plugin registry */
14
- export interface PluginRegistryOptions {
15
- /** Directory to store the registry file (default: .agentguard) */
16
- readonly storageDir?: string;
17
- /** Host API version for compatibility checks (default: "1.0.0") */
18
- readonly hostVersion?: string;
19
- }
20
- /** Plugin registry — manages installed plugin lifecycle */
21
- export interface PluginRegistry {
22
- /** Install a plugin from a manifest and source. Validates before registering. */
23
- install(manifest: PluginManifest, source: string): PluginValidationResult;
24
- /** Remove a plugin by ID. Returns true if found and removed. */
25
- remove(pluginId: string): boolean;
26
- /** Get an installed plugin by ID */
27
- get(pluginId: string): InstalledPlugin | undefined;
28
- /** Check if a plugin is installed */
29
- has(pluginId: string): boolean;
30
- /** Enable a plugin. Returns false if not found. */
31
- enable(pluginId: string): boolean;
32
- /** Disable a plugin. Returns false if not found. */
33
- disable(pluginId: string): boolean;
34
- /** List all installed plugins */
35
- list(): readonly InstalledPlugin[];
36
- /** List plugins filtered by type */
37
- listByType(type: PluginType): readonly InstalledPlugin[];
38
- /** Number of installed plugins */
39
- count(): number;
40
- /** Persist the registry to disk */
41
- save(): void;
42
- /** Reload the registry from disk */
43
- reload(): void;
44
- }
45
- /**
46
- * Create a plugin registry backed by a JSON file.
47
- *
48
- * The registry validates manifests at install time using the existing
49
- * plugin validator and persists the installed plugin list to disk.
50
- */
51
- export declare function createPluginRegistry(options?: PluginRegistryOptions): PluginRegistry;
52
- //# sourceMappingURL=registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGrF,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAQD,6CAA6C;AAC7C,MAAM,WAAW,qBAAqB;IACpC,kEAAkE;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,sBAAsB,CAAC;IAE1E,gEAAgE;IAChE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAElC,oCAAoC;IACpC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;IAEnD,qCAAqC;IACrC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAE/B,mDAAmD;IACnD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAElC,oDAAoD;IACpD,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAEnC,iCAAiC;IACjC,IAAI,IAAI,SAAS,eAAe,EAAE,CAAC;IAEnC,oCAAoC;IACpC,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,eAAe,EAAE,CAAC;IAEzD,kCAAkC;IAClC,KAAK,IAAI,MAAM,CAAC;IAEhB,mCAAmC;IACnC,IAAI,IAAI,IAAI,CAAC;IAEb,oCAAoC;IACpC,MAAM,IAAI,IAAI,CAAC;CAChB;AAKD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,cAAc,CAoJpF"}