@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
@@ -1,241 +0,0 @@
1
- // Replay Engine — reconstructs governance sessions from persisted JSONL event streams.
2
- //
3
- // Loads domain events from .agentguard/events/<runId>.jsonl, groups them into
4
- // action encounters (REQUESTED → ALLOWED/DENIED → EXECUTED/FAILED), and provides
5
- // a programmatic API for session analysis, comparators, and CLI display.
6
- import { readFileSync, existsSync, readdirSync } from 'node:fs';
7
- import { join } from 'node:path';
8
- import { ACTION_REQUESTED, ACTION_ALLOWED, ACTION_DENIED, ACTION_ESCALATED, ACTION_EXECUTED, ACTION_FAILED, DECISION_RECORDED, SIMULATION_COMPLETED, POLICY_DENIED, INVARIANT_VIOLATION, BLAST_RADIUS_EXCEEDED, MERGE_GUARD_FAILURE, RUN_STARTED, RUN_ENDED, } from '../events/schema.js';
9
- // ---------------------------------------------------------------------------
10
- // Constants
11
- // ---------------------------------------------------------------------------
12
- const DEFAULT_BASE_DIR = '.agentguard';
13
- const EVENTS_DIR = 'events';
14
- /** Event kinds that represent governance violations/denials. */
15
- const GOVERNANCE_EVENT_KINDS = new Set([
16
- POLICY_DENIED,
17
- INVARIANT_VIOLATION,
18
- BLAST_RADIUS_EXCEEDED,
19
- MERGE_GUARD_FAILURE,
20
- ]);
21
- /** Event kinds that represent action lifecycle decisions. */
22
- const DECISION_EVENT_KINDS = new Set([ACTION_ALLOWED, ACTION_DENIED]);
23
- /** Event kinds that represent action execution outcomes. */
24
- const EXECUTION_EVENT_KINDS = new Set([ACTION_EXECUTED, ACTION_FAILED]);
25
- // ---------------------------------------------------------------------------
26
- // JSONL Loading
27
- // ---------------------------------------------------------------------------
28
- /**
29
- * Load domain events from a JSONL file.
30
- * Each line is a JSON-serialized DomainEvent.
31
- * Malformed lines are silently skipped.
32
- */
33
- export function loadEventsFromJsonl(filePath) {
34
- if (!existsSync(filePath)) {
35
- return [];
36
- }
37
- const content = readFileSync(filePath, 'utf8');
38
- const events = [];
39
- for (const line of content.split('\n')) {
40
- const trimmed = line.trim();
41
- if (!trimmed)
42
- continue;
43
- try {
44
- events.push(JSON.parse(trimmed));
45
- }
46
- catch {
47
- // Skip malformed lines
48
- }
49
- }
50
- return events;
51
- }
52
- /**
53
- * Resolve the JSONL file path for a given run ID.
54
- */
55
- export function resolveEventFilePath(runId, baseDir) {
56
- return join(baseDir || DEFAULT_BASE_DIR, EVENTS_DIR, `${runId}.jsonl`);
57
- }
58
- /**
59
- * List all available run IDs that have stored events.
60
- */
61
- export function listRunIds(baseDir) {
62
- const eventsDir = join(baseDir || DEFAULT_BASE_DIR, EVENTS_DIR);
63
- if (!existsSync(eventsDir))
64
- return [];
65
- return readdirSync(eventsDir)
66
- .filter((f) => f.endsWith('.jsonl'))
67
- .map((f) => f.replace('.jsonl', ''))
68
- .sort()
69
- .reverse();
70
- }
71
- // ---------------------------------------------------------------------------
72
- // Event Grouping
73
- // ---------------------------------------------------------------------------
74
- /**
75
- * Group a flat list of events into action encounters.
76
- * Events are correlated by their position in the stream — each ActionRequested
77
- * event starts a new encounter, and subsequent events are attached to it until
78
- * the next ActionRequested.
79
- */
80
- function groupEventsIntoActions(events) {
81
- const actions = [];
82
- let currentActionEvents = [];
83
- let actionIndex = 0;
84
- function flushAction() {
85
- if (currentActionEvents.length === 0)
86
- return;
87
- const requested = currentActionEvents.find((e) => e.kind === ACTION_REQUESTED) || null;
88
- if (!requested) {
89
- // No ActionRequested — these are orphan events, skip
90
- currentActionEvents = [];
91
- return;
92
- }
93
- const decisionEvent = currentActionEvents.find((e) => DECISION_EVENT_KINDS.has(e.kind)) || null;
94
- const executionEvent = currentActionEvents.find((e) => EXECUTION_EVENT_KINDS.has(e.kind)) || null;
95
- const simulationEvent = currentActionEvents.find((e) => e.kind === SIMULATION_COMPLETED) || null;
96
- const decisionRecordEvent = currentActionEvents.find((e) => e.kind === DECISION_RECORDED) || null;
97
- const escalationEvent = currentActionEvents.find((e) => e.kind === ACTION_ESCALATED) || null;
98
- const governanceEvents = currentActionEvents.filter((e) => GOVERNANCE_EVENT_KINDS.has(e.kind));
99
- const allowed = decisionEvent?.kind === ACTION_ALLOWED;
100
- const executed = executionEvent !== null;
101
- const succeeded = executionEvent?.kind === ACTION_EXECUTED;
102
- actions.push({
103
- index: actionIndex++,
104
- requestedEvent: requested,
105
- decisionEvent,
106
- executionEvent,
107
- simulationEvent,
108
- decisionRecordEvent,
109
- escalationEvent,
110
- governanceEvents,
111
- allowed,
112
- executed,
113
- succeeded,
114
- actionType: requested.actionType || 'unknown',
115
- target: requested.target || '',
116
- });
117
- currentActionEvents = [];
118
- }
119
- for (const event of events) {
120
- if (event.kind === ACTION_REQUESTED && currentActionEvents.length > 0) {
121
- flushAction();
122
- }
123
- currentActionEvents.push(event);
124
- }
125
- // Flush the last action
126
- flushAction();
127
- return actions;
128
- }
129
- // ---------------------------------------------------------------------------
130
- // Summary Generation
131
- // ---------------------------------------------------------------------------
132
- function buildSummary(events, actions) {
133
- const actionTypes = {};
134
- const denialReasons = [];
135
- let violations = 0;
136
- let escalations = 0;
137
- let simulationsRun = 0;
138
- for (const action of actions) {
139
- const type = action.actionType;
140
- actionTypes[type] = (actionTypes[type] || 0) + 1;
141
- if (!action.allowed && action.decisionEvent) {
142
- const reason = action.decisionEvent.reason || 'unknown';
143
- denialReasons.push(reason);
144
- }
145
- violations += action.governanceEvents.length;
146
- if (action.escalationEvent)
147
- escalations++;
148
- if (action.simulationEvent)
149
- simulationsRun++;
150
- }
151
- const timestamps = events.map((e) => e.timestamp);
152
- const durationMs = timestamps.length >= 2 ? Math.max(...timestamps) - Math.min(...timestamps) : 0;
153
- return {
154
- totalActions: actions.length,
155
- allowed: actions.filter((a) => a.allowed).length,
156
- denied: actions.filter((a) => !a.allowed).length,
157
- executed: actions.filter((a) => a.executed).length,
158
- failed: actions.filter((a) => a.executed && !a.succeeded).length,
159
- violations,
160
- escalations,
161
- simulationsRun,
162
- durationMs,
163
- actionTypes,
164
- denialReasons,
165
- };
166
- }
167
- // ---------------------------------------------------------------------------
168
- // Replay Engine API
169
- // ---------------------------------------------------------------------------
170
- /**
171
- * Load a replay session from a JSONL event file by run ID.
172
- * Returns null if the file does not exist.
173
- */
174
- export function loadReplaySession(runId, options = {}) {
175
- const filePath = resolveEventFilePath(runId, options.baseDir);
176
- const events = loadEventsFromJsonl(filePath);
177
- if (events.length === 0)
178
- return null;
179
- return buildReplaySession(runId, events);
180
- }
181
- /**
182
- * Build a replay session from an in-memory event array.
183
- * Useful for testing and when events are already loaded.
184
- */
185
- export function buildReplaySession(runId, events) {
186
- // Sort events by timestamp for deterministic ordering
187
- const sorted = [...events].sort((a, b) => a.timestamp - b.timestamp);
188
- const startEvent = sorted.find((e) => e.kind === RUN_STARTED) || null;
189
- const endEvent = sorted.find((e) => e.kind === RUN_ENDED) || null;
190
- const actions = groupEventsIntoActions(sorted);
191
- const summary = buildSummary(sorted, actions);
192
- return {
193
- runId,
194
- events: sorted,
195
- actions,
196
- summary,
197
- startEvent,
198
- endEvent,
199
- };
200
- }
201
- /**
202
- * Iterator for stepping through action encounters one at a time.
203
- * Yields ReplayAction objects in chronological order.
204
- */
205
- export function* iterateActions(session) {
206
- for (const action of session.actions) {
207
- yield action;
208
- }
209
- }
210
- /**
211
- * Filter a replay session's actions by a predicate.
212
- * Returns a new session with only matching actions (events are not filtered).
213
- */
214
- export function filterActions(session, predicate) {
215
- const filteredActions = session.actions.filter(predicate);
216
- const summary = buildSummary(session.events, filteredActions);
217
- return {
218
- ...session,
219
- actions: filteredActions,
220
- summary,
221
- };
222
- }
223
- /**
224
- * Get the most recent run ID from stored events.
225
- * Returns null if no runs exist.
226
- */
227
- export function getLatestRunId(baseDir) {
228
- const runIds = listRunIds(baseDir);
229
- return runIds.length > 0 ? runIds[0] : null;
230
- }
231
- /**
232
- * Extract the event kinds present in a session as a frequency map.
233
- */
234
- export function getEventKindCounts(session) {
235
- const counts = {};
236
- for (const event of session.events) {
237
- counts[event.kind] = (counts[event.kind] || 0) + 1;
238
- }
239
- return counts;
240
- }
241
- //# sourceMappingURL=replay-engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"replay-engine.js","sourceRoot":"","sources":["../../src/kernel/replay-engine.ts"],"names":[],"mappings":"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"}
@@ -1,109 +0,0 @@
1
- import type { DomainEvent } from '../core/types.js';
2
- import type { ReplayAction, ReplaySession } from './replay-engine.js';
3
- /**
4
- * A replay processor observes a replay event stream and produces results.
5
- *
6
- * Processors are read-only observers — they MUST NOT mutate the session,
7
- * events, or actions passed to them. The pipeline freezes inputs before
8
- * dispatching to enforce this contract at runtime.
9
- *
10
- * Lifecycle:
11
- * onSessionStart → onEvent (per event) → onAction (per action) → onSessionEnd
12
- *
13
- * All methods are optional. Implement only the hooks you need.
14
- *
15
- * Example:
16
- * ```ts
17
- * const counter: ReplayProcessor = {
18
- * id: 'denial-counter',
19
- * name: 'Denial Counter',
20
- * onAction(action) {
21
- * if (!action.allowed) this._count++;
22
- * },
23
- * getResults() {
24
- * return { denials: this._count };
25
- * },
26
- * };
27
- * ```
28
- */
29
- export interface ReplayProcessor {
30
- /** Unique identifier for this processor. */
31
- readonly id: string;
32
- /** Human-readable name. */
33
- readonly name: string;
34
- /** Optional description of what this processor does. */
35
- readonly description?: string;
36
- /** Called once when session replay begins. */
37
- onSessionStart?(session: ReplaySession): void | Promise<void>;
38
- /** Called for each event in the session, in timestamp order. */
39
- onEvent?(event: DomainEvent): void | Promise<void>;
40
- /** Called for each reconstructed action encounter, in order. */
41
- onAction?(action: ReplayAction): void | Promise<void>;
42
- /** Called once when session replay ends. */
43
- onSessionEnd?(session: ReplaySession): void | Promise<void>;
44
- /** Return accumulated results after processing. */
45
- getResults?(): Record<string, unknown>;
46
- }
47
- /** Registry for managing replay processors. */
48
- export interface ReplayProcessorRegistry {
49
- /** Register a processor. Throws if a processor with the same id exists. */
50
- register(processor: ReplayProcessor): void;
51
- /** Remove a processor by id. Returns true if found and removed. */
52
- unregister(processorId: string): boolean;
53
- /** Get a processor by id. Returns undefined if not found. */
54
- get(processorId: string): ReplayProcessor | undefined;
55
- /** List all registered processors in registration order. */
56
- list(): readonly ReplayProcessor[];
57
- /** Check if a processor is registered. */
58
- has(processorId: string): boolean;
59
- /** Number of registered processors. */
60
- count(): number;
61
- }
62
- /** Create a new replay processor registry. */
63
- export declare function createReplayProcessorRegistry(): ReplayProcessorRegistry;
64
- /** Result of a single processor's execution. */
65
- export interface ProcessorResult {
66
- /** Processor id. */
67
- readonly processorId: string;
68
- /** Processor name. */
69
- readonly processorName: string;
70
- /** Whether the processor completed without errors. */
71
- readonly success: boolean;
72
- /** Error message if the processor failed. */
73
- readonly error?: string;
74
- /** Results returned by getResults(), if available. */
75
- readonly data: Readonly<Record<string, unknown>>;
76
- /** Time taken by this processor in milliseconds. */
77
- readonly durationMs: number;
78
- }
79
- /** Aggregate result of running all processors in the pipeline. */
80
- export interface ReplayProcessorPipelineResult {
81
- /** The session that was processed. */
82
- readonly sessionId: string;
83
- /** Total number of processors that ran. */
84
- readonly processorsRun: number;
85
- /** Number of processors that completed successfully. */
86
- readonly successes: number;
87
- /** Number of processors that failed. */
88
- readonly failures: number;
89
- /** Per-processor results, in execution order. */
90
- readonly results: readonly ProcessorResult[];
91
- /** Collected error messages from failed processors. */
92
- readonly errors: readonly string[];
93
- /** Total pipeline duration in milliseconds. */
94
- readonly durationMs: number;
95
- }
96
- /**
97
- * Run all registered processors against a replay session.
98
- *
99
- * Processors are invoked in registration order. Each processor receives:
100
- * 1. onSessionStart(session)
101
- * 2. onEvent(event) for each event in timestamp order
102
- * 3. onAction(action) for each action encounter in order
103
- * 4. onSessionEnd(session)
104
- *
105
- * Processor failures are isolated — a failing processor does not prevent
106
- * others from running. Errors are collected in the pipeline result.
107
- */
108
- export declare function runReplayProcessorPipeline(session: ReplaySession, registry: ReplayProcessorRegistry): Promise<ReplayProcessorPipelineResult>;
109
- //# sourceMappingURL=replay-processor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"replay-processor.d.ts","sourceRoot":"","sources":["../../src/kernel/replay-processor.ts"],"names":[],"mappings":"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"}
@@ -1,118 +0,0 @@
1
- // Replay Processor Plugin Interface — allows third-party extensions to observe
2
- // and analyze replay event streams without modifying them.
3
- //
4
- // Processors are registered in a pipeline and invoked in order during session
5
- // replay. Each processor receives session lifecycle callbacks (start, event,
6
- // action, end) and can accumulate results for downstream consumption.
7
- //
8
- // This is the foundation for custom replay visualizations, analytics,
9
- // compliance reporters, and transformation pipelines.
10
- /** Create a new replay processor registry. */
11
- export function createReplayProcessorRegistry() {
12
- const processors = new Map();
13
- return {
14
- register(processor) {
15
- if (!processor.id || typeof processor.id !== 'string') {
16
- throw new Error('Processor must have a non-empty string id');
17
- }
18
- if (!processor.name || typeof processor.name !== 'string') {
19
- throw new Error('Processor must have a non-empty string name');
20
- }
21
- if (processors.has(processor.id)) {
22
- throw new Error(`Processor "${processor.id}" is already registered`);
23
- }
24
- processors.set(processor.id, processor);
25
- },
26
- unregister(processorId) {
27
- return processors.delete(processorId);
28
- },
29
- get(processorId) {
30
- return processors.get(processorId);
31
- },
32
- list() {
33
- return [...processors.values()];
34
- },
35
- has(processorId) {
36
- return processors.has(processorId);
37
- },
38
- count() {
39
- return processors.size;
40
- },
41
- };
42
- }
43
- // ---------------------------------------------------------------------------
44
- // Pipeline
45
- // ---------------------------------------------------------------------------
46
- /**
47
- * Run all registered processors against a replay session.
48
- *
49
- * Processors are invoked in registration order. Each processor receives:
50
- * 1. onSessionStart(session)
51
- * 2. onEvent(event) for each event in timestamp order
52
- * 3. onAction(action) for each action encounter in order
53
- * 4. onSessionEnd(session)
54
- *
55
- * Processor failures are isolated — a failing processor does not prevent
56
- * others from running. Errors are collected in the pipeline result.
57
- */
58
- export async function runReplayProcessorPipeline(session, registry) {
59
- const pipelineStart = Date.now();
60
- const processors = registry.list();
61
- const results = [];
62
- const errors = [];
63
- for (const processor of processors) {
64
- const processorStart = Date.now();
65
- let success = true;
66
- let error;
67
- let data = {};
68
- try {
69
- // 1. Session start
70
- if (processor.onSessionStart) {
71
- await processor.onSessionStart(session);
72
- }
73
- // 2. Per-event callbacks
74
- if (processor.onEvent) {
75
- for (const event of session.events) {
76
- await processor.onEvent(event);
77
- }
78
- }
79
- // 3. Per-action callbacks
80
- if (processor.onAction) {
81
- for (const action of session.actions) {
82
- await processor.onAction(action);
83
- }
84
- }
85
- // 4. Session end
86
- if (processor.onSessionEnd) {
87
- await processor.onSessionEnd(session);
88
- }
89
- // 5. Collect results
90
- if (processor.getResults) {
91
- data = processor.getResults();
92
- }
93
- }
94
- catch (err) {
95
- success = false;
96
- error = err instanceof Error ? err.message : String(err);
97
- errors.push(`Processor "${processor.id}": ${error}`);
98
- }
99
- results.push({
100
- processorId: processor.id,
101
- processorName: processor.name,
102
- success,
103
- error,
104
- data,
105
- durationMs: Date.now() - processorStart,
106
- });
107
- }
108
- return {
109
- sessionId: session.runId,
110
- processorsRun: processors.length,
111
- successes: results.filter((r) => r.success).length,
112
- failures: results.filter((r) => !r.success).length,
113
- results,
114
- errors,
115
- durationMs: Date.now() - pipelineStart,
116
- };
117
- }
118
- //# sourceMappingURL=replay-processor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"replay-processor.js","sourceRoot":"","sources":["../../src/kernel/replay-processor.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { ActionSimulator } from './types.js';
2
- export declare function createFilesystemSimulator(): ActionSimulator;
3
- //# sourceMappingURL=filesystem-simulator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"filesystem-simulator.d.ts","sourceRoot":"","sources":["../../../src/kernel/simulation/filesystem-simulator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,YAAY,CAAC;AA4DpE,wBAAgB,yBAAyB,IAAI,eAAe,CAsC3D"}
@@ -1,81 +0,0 @@
1
- // Filesystem simulator — predicts impact of file operations.
2
- // Evaluates path sensitivity without touching the filesystem.
3
- const FILE_ACTIONS = new Set(['file.write', 'file.delete']);
4
- // Reuses sensitive path patterns from no-secret-exposure invariant
5
- const SENSITIVE_PATTERNS = ['.env', 'credentials', '.pem', '.key', 'secret', 'token'];
6
- const CONFIG_PATTERNS = [
7
- 'package.json',
8
- 'tsconfig.json',
9
- 'eslint',
10
- '.prettierrc',
11
- 'webpack.config',
12
- 'vite.config',
13
- 'next.config',
14
- 'jest.config',
15
- 'vitest.config',
16
- '.babelrc',
17
- 'babel.config',
18
- ];
19
- const LOCKFILE_PATTERNS = ['package-lock.json', 'yarn.lock', 'pnpm-lock.yaml'];
20
- const CI_PATTERNS = ['.github/', '.gitlab-ci', 'Jenkinsfile', '.circleci/', 'Dockerfile'];
21
- function assessPathRisk(target) {
22
- const lower = target.toLowerCase();
23
- const reasons = [];
24
- let riskLevel = 'low';
25
- // Check sensitive files (highest risk)
26
- if (SENSITIVE_PATTERNS.some((p) => lower.includes(p))) {
27
- riskLevel = 'high';
28
- reasons.push(`Sensitive file: ${target}`);
29
- }
30
- // Check lockfiles
31
- if (LOCKFILE_PATTERNS.some((p) => lower.includes(p))) {
32
- riskLevel = riskLevel === 'high' ? 'high' : 'medium';
33
- reasons.push(`Lockfile modification: ${target}`);
34
- }
35
- // Check CI/CD configs
36
- if (CI_PATTERNS.some((p) => lower.includes(p))) {
37
- riskLevel = riskLevel === 'high' ? 'high' : 'medium';
38
- reasons.push(`CI/CD config: ${target}`);
39
- }
40
- // Check project configs
41
- if (CONFIG_PATTERNS.some((p) => lower.includes(p))) {
42
- riskLevel = riskLevel === 'low' ? 'medium' : riskLevel;
43
- reasons.push(`Project config: ${target}`);
44
- }
45
- return { riskLevel, reasons };
46
- }
47
- export function createFilesystemSimulator() {
48
- return {
49
- id: 'filesystem-simulator',
50
- supports(intent) {
51
- return FILE_ACTIONS.has(intent.action);
52
- },
53
- async simulate(intent) {
54
- const start = Date.now();
55
- const target = intent.target || '';
56
- const { riskLevel, reasons } = assessPathRisk(target);
57
- const predictedChanges = [];
58
- const details = {};
59
- if (intent.action === 'file.delete') {
60
- predictedChanges.push(`Delete: ${target}`);
61
- details.operation = 'delete';
62
- }
63
- else {
64
- predictedChanges.push(`Write: ${target}`);
65
- details.operation = 'write';
66
- }
67
- predictedChanges.push(...reasons);
68
- details.pathRisk = riskLevel;
69
- details.sensitiveMatch = SENSITIVE_PATTERNS.some((p) => target.toLowerCase().includes(p));
70
- return {
71
- predictedChanges,
72
- blastRadius: intent.filesAffected || 1,
73
- riskLevel,
74
- details,
75
- simulatorId: 'filesystem-simulator',
76
- durationMs: Date.now() - start,
77
- };
78
- },
79
- };
80
- }
81
- //# sourceMappingURL=filesystem-simulator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"filesystem-simulator.js","sourceRoot":"","sources":["../../../src/kernel/simulation/filesystem-simulator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import type { ActionSimulator } from './types.js';
2
- /** Validate a branch name to prevent command injection */
3
- export declare function isValidBranchName(name: string): boolean;
4
- export declare function createGitSimulator(): ActionSimulator;
5
- //# sourceMappingURL=git-simulator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-simulator.d.ts","sourceRoot":"","sources":["../../../src/kernel/simulation/git-simulator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,YAAY,CAAC;AAOpE,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMvD;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAqGpD"}