vibecheck-ai 2.0.1 → 5.0.0

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 (456) hide show
  1. package/bin/.generated +25 -0
  2. package/bin/_deprecations.js +463 -0
  3. package/bin/_router.js +46 -0
  4. package/bin/cli-hygiene.js +241 -0
  5. package/bin/dev/run-v2-torture.js +30 -0
  6. package/bin/registry.js +656 -0
  7. package/bin/runners/CLI_REFACTOR_SUMMARY.md +229 -0
  8. package/bin/runners/ENHANCEMENT_GUIDE.md +121 -0
  9. package/bin/runners/REPORT_AUDIT.md +64 -0
  10. package/bin/runners/cli-utils.js +1070 -0
  11. package/bin/runners/context/ai-task-decomposer.js +337 -0
  12. package/bin/runners/context/analyzer.js +513 -0
  13. package/bin/runners/context/api-contracts.js +427 -0
  14. package/bin/runners/context/context-diff.js +342 -0
  15. package/bin/runners/context/context-pruner.js +291 -0
  16. package/bin/runners/context/dependency-graph.js +414 -0
  17. package/bin/runners/context/generators/claude.js +107 -0
  18. package/bin/runners/context/generators/codex.js +108 -0
  19. package/bin/runners/context/generators/copilot.js +119 -0
  20. package/bin/runners/context/generators/cursor-enhanced.js +2525 -0
  21. package/bin/runners/context/generators/cursor.js +514 -0
  22. package/bin/runners/context/generators/mcp.js +169 -0
  23. package/bin/runners/context/generators/windsurf.js +180 -0
  24. package/bin/runners/context/git-context.js +304 -0
  25. package/bin/runners/context/index.js +1110 -0
  26. package/bin/runners/context/insights.js +173 -0
  27. package/bin/runners/context/mcp-server/generate-rules.js +337 -0
  28. package/bin/runners/context/mcp-server/index.js +1176 -0
  29. package/bin/runners/context/mcp-server/package.json +24 -0
  30. package/bin/runners/context/memory.js +200 -0
  31. package/bin/runners/context/monorepo.js +215 -0
  32. package/bin/runners/context/multi-repo-federation.js +404 -0
  33. package/bin/runners/context/patterns.js +253 -0
  34. package/bin/runners/context/proof-context.js +1264 -0
  35. package/bin/runners/context/security-scanner.js +541 -0
  36. package/bin/runners/context/semantic-search.js +350 -0
  37. package/bin/runners/context/shared.js +264 -0
  38. package/bin/runners/context/team-conventions.js +336 -0
  39. package/bin/runners/lib/__tests__/entitlements-v2.test.js +295 -0
  40. package/bin/runners/lib/agent-firewall/ai/false-positive-analyzer.js +474 -0
  41. package/bin/runners/lib/agent-firewall/change-packet/builder.js +488 -0
  42. package/bin/runners/lib/agent-firewall/change-packet/schema.json +228 -0
  43. package/bin/runners/lib/agent-firewall/change-packet/store.js +200 -0
  44. package/bin/runners/lib/agent-firewall/claims/claim-types.js +21 -0
  45. package/bin/runners/lib/agent-firewall/claims/extractor.js +303 -0
  46. package/bin/runners/lib/agent-firewall/claims/patterns.js +24 -0
  47. package/bin/runners/lib/agent-firewall/critic/index.js +151 -0
  48. package/bin/runners/lib/agent-firewall/critic/judge.js +432 -0
  49. package/bin/runners/lib/agent-firewall/critic/prompts.js +305 -0
  50. package/bin/runners/lib/agent-firewall/enforcement/gateway.js +1059 -0
  51. package/bin/runners/lib/agent-firewall/enforcement/index.js +98 -0
  52. package/bin/runners/lib/agent-firewall/enforcement/mode.js +318 -0
  53. package/bin/runners/lib/agent-firewall/enforcement/orchestrator.js +484 -0
  54. package/bin/runners/lib/agent-firewall/enforcement/proof-artifact.js +418 -0
  55. package/bin/runners/lib/agent-firewall/enforcement/schemas/change-event.schema.json +173 -0
  56. package/bin/runners/lib/agent-firewall/enforcement/schemas/intent.schema.json +181 -0
  57. package/bin/runners/lib/agent-firewall/enforcement/schemas/verdict.schema.json +222 -0
  58. package/bin/runners/lib/agent-firewall/enforcement/verdict-v2.js +333 -0
  59. package/bin/runners/lib/agent-firewall/evidence/auth-evidence.js +88 -0
  60. package/bin/runners/lib/agent-firewall/evidence/contract-evidence.js +75 -0
  61. package/bin/runners/lib/agent-firewall/evidence/env-evidence.js +127 -0
  62. package/bin/runners/lib/agent-firewall/evidence/resolver.js +102 -0
  63. package/bin/runners/lib/agent-firewall/evidence/route-evidence.js +213 -0
  64. package/bin/runners/lib/agent-firewall/evidence/side-effect-evidence.js +145 -0
  65. package/bin/runners/lib/agent-firewall/fs-hook/daemon.js +19 -0
  66. package/bin/runners/lib/agent-firewall/fs-hook/installer.js +87 -0
  67. package/bin/runners/lib/agent-firewall/fs-hook/watcher.js +184 -0
  68. package/bin/runners/lib/agent-firewall/git-hook/pre-commit.js +163 -0
  69. package/bin/runners/lib/agent-firewall/ide-extension/cursor.js +107 -0
  70. package/bin/runners/lib/agent-firewall/ide-extension/vscode.js +68 -0
  71. package/bin/runners/lib/agent-firewall/ide-extension/windsurf.js +66 -0
  72. package/bin/runners/lib/agent-firewall/index.js +200 -0
  73. package/bin/runners/lib/agent-firewall/integration/index.js +20 -0
  74. package/bin/runners/lib/agent-firewall/integration/ship-gate.js +437 -0
  75. package/bin/runners/lib/agent-firewall/intent/alignment-engine.js +634 -0
  76. package/bin/runners/lib/agent-firewall/intent/auto-detect.js +426 -0
  77. package/bin/runners/lib/agent-firewall/intent/index.js +102 -0
  78. package/bin/runners/lib/agent-firewall/intent/schema.js +352 -0
  79. package/bin/runners/lib/agent-firewall/intent/store.js +283 -0
  80. package/bin/runners/lib/agent-firewall/interception/fs-interceptor.js +502 -0
  81. package/bin/runners/lib/agent-firewall/interception/index.js +23 -0
  82. package/bin/runners/lib/agent-firewall/interceptor/base.js +308 -0
  83. package/bin/runners/lib/agent-firewall/interceptor/cursor.js +35 -0
  84. package/bin/runners/lib/agent-firewall/interceptor/vscode.js +35 -0
  85. package/bin/runners/lib/agent-firewall/interceptor/windsurf.js +34 -0
  86. package/bin/runners/lib/agent-firewall/lawbook/distributor.js +465 -0
  87. package/bin/runners/lib/agent-firewall/lawbook/evaluator.js +604 -0
  88. package/bin/runners/lib/agent-firewall/lawbook/index.js +304 -0
  89. package/bin/runners/lib/agent-firewall/lawbook/registry.js +514 -0
  90. package/bin/runners/lib/agent-firewall/lawbook/schema.js +420 -0
  91. package/bin/runners/lib/agent-firewall/logger.js +141 -0
  92. package/bin/runners/lib/agent-firewall/policy/default-policy.json +90 -0
  93. package/bin/runners/lib/agent-firewall/policy/engine.js +103 -0
  94. package/bin/runners/lib/agent-firewall/policy/loader.js +451 -0
  95. package/bin/runners/lib/agent-firewall/policy/rules/auth-drift.js +50 -0
  96. package/bin/runners/lib/agent-firewall/policy/rules/contract-drift.js +50 -0
  97. package/bin/runners/lib/agent-firewall/policy/rules/fake-success.js +79 -0
  98. package/bin/runners/lib/agent-firewall/policy/rules/ghost-env.js +227 -0
  99. package/bin/runners/lib/agent-firewall/policy/rules/ghost-route.js +191 -0
  100. package/bin/runners/lib/agent-firewall/policy/rules/scope.js +93 -0
  101. package/bin/runners/lib/agent-firewall/policy/rules/unsafe-side-effect.js +57 -0
  102. package/bin/runners/lib/agent-firewall/policy/schema.json +183 -0
  103. package/bin/runners/lib/agent-firewall/policy/verdict.js +54 -0
  104. package/bin/runners/lib/agent-firewall/proposal/extractor.js +394 -0
  105. package/bin/runners/lib/agent-firewall/proposal/index.js +212 -0
  106. package/bin/runners/lib/agent-firewall/proposal/schema.js +251 -0
  107. package/bin/runners/lib/agent-firewall/proposal/validator.js +386 -0
  108. package/bin/runners/lib/agent-firewall/reality/index.js +332 -0
  109. package/bin/runners/lib/agent-firewall/reality/state.js +625 -0
  110. package/bin/runners/lib/agent-firewall/reality/watcher.js +322 -0
  111. package/bin/runners/lib/agent-firewall/risk/index.js +173 -0
  112. package/bin/runners/lib/agent-firewall/risk/scorer.js +328 -0
  113. package/bin/runners/lib/agent-firewall/risk/thresholds.js +322 -0
  114. package/bin/runners/lib/agent-firewall/risk/vectors.js +421 -0
  115. package/bin/runners/lib/agent-firewall/session/collector.js +451 -0
  116. package/bin/runners/lib/agent-firewall/session/index.js +26 -0
  117. package/bin/runners/lib/agent-firewall/simulator/diff-simulator.js +472 -0
  118. package/bin/runners/lib/agent-firewall/simulator/import-resolver.js +346 -0
  119. package/bin/runners/lib/agent-firewall/simulator/index.js +181 -0
  120. package/bin/runners/lib/agent-firewall/simulator/route-validator.js +380 -0
  121. package/bin/runners/lib/agent-firewall/time-machine/incident-correlator.js +661 -0
  122. package/bin/runners/lib/agent-firewall/time-machine/index.js +267 -0
  123. package/bin/runners/lib/agent-firewall/time-machine/replay-engine.js +436 -0
  124. package/bin/runners/lib/agent-firewall/time-machine/state-reconstructor.js +490 -0
  125. package/bin/runners/lib/agent-firewall/time-machine/timeline-builder.js +530 -0
  126. package/bin/runners/lib/agent-firewall/truthpack/index.js +67 -0
  127. package/bin/runners/lib/agent-firewall/truthpack/loader.js +137 -0
  128. package/bin/runners/lib/agent-firewall/unblock/planner.js +337 -0
  129. package/bin/runners/lib/agent-firewall/utils/ignore-checker.js +118 -0
  130. package/bin/runners/lib/ai-bridge.js +416 -0
  131. package/bin/runners/lib/analysis-core.js +309 -0
  132. package/bin/runners/lib/analyzers.js +2500 -0
  133. package/bin/runners/lib/api-client.js +269 -0
  134. package/bin/runners/lib/approve-output.js +235 -0
  135. package/bin/runners/lib/artifact-envelope.js +540 -0
  136. package/bin/runners/lib/assets/vibecheck-logo.png +0 -0
  137. package/bin/runners/lib/audit-bridge.js +391 -0
  138. package/bin/runners/lib/auth-shared.js +977 -0
  139. package/bin/runners/lib/auth-truth.js +193 -0
  140. package/bin/runners/lib/auth.js +215 -0
  141. package/bin/runners/lib/authority-badge.js +425 -0
  142. package/bin/runners/lib/backup.js +62 -0
  143. package/bin/runners/lib/billing.js +107 -0
  144. package/bin/runners/lib/checkpoint.js +941 -0
  145. package/bin/runners/lib/claims.js +118 -0
  146. package/bin/runners/lib/classify-output.js +204 -0
  147. package/bin/runners/lib/cleanup/engine.js +571 -0
  148. package/bin/runners/lib/cleanup/index.js +53 -0
  149. package/bin/runners/lib/cleanup/output.js +375 -0
  150. package/bin/runners/lib/cleanup/rules.js +1060 -0
  151. package/bin/runners/lib/cli-output.js +400 -0
  152. package/bin/runners/lib/cli-ui.js +540 -0
  153. package/bin/runners/lib/compliance-bridge-new.js +0 -0
  154. package/bin/runners/lib/compliance-bridge.js +165 -0
  155. package/bin/runners/lib/contracts/auth-contract.js +202 -0
  156. package/bin/runners/lib/contracts/env-contract.js +181 -0
  157. package/bin/runners/lib/contracts/external-contract.js +206 -0
  158. package/bin/runners/lib/contracts/guard.js +168 -0
  159. package/bin/runners/lib/contracts/index.js +89 -0
  160. package/bin/runners/lib/contracts/plan-validator.js +311 -0
  161. package/bin/runners/lib/contracts/route-contract.js +199 -0
  162. package/bin/runners/lib/contracts.js +804 -0
  163. package/bin/runners/lib/default-config.js +127 -0
  164. package/bin/runners/lib/detect.js +89 -0
  165. package/bin/runners/lib/detectors-v2.js +622 -0
  166. package/bin/runners/lib/doctor/autofix.js +254 -0
  167. package/bin/runners/lib/doctor/diagnosis-receipt.js +454 -0
  168. package/bin/runners/lib/doctor/failure-signatures.js +526 -0
  169. package/bin/runners/lib/doctor/fix-script.js +336 -0
  170. package/bin/runners/lib/doctor/index.js +37 -0
  171. package/bin/runners/lib/doctor/modules/build-tools.js +453 -0
  172. package/bin/runners/lib/doctor/modules/dependencies.js +325 -0
  173. package/bin/runners/lib/doctor/modules/index.js +105 -0
  174. package/bin/runners/lib/doctor/modules/network.js +250 -0
  175. package/bin/runners/lib/doctor/modules/os-quirks.js +706 -0
  176. package/bin/runners/lib/doctor/modules/project.js +312 -0
  177. package/bin/runners/lib/doctor/modules/repo-integrity.js +485 -0
  178. package/bin/runners/lib/doctor/modules/runtime.js +224 -0
  179. package/bin/runners/lib/doctor/modules/security.js +350 -0
  180. package/bin/runners/lib/doctor/modules/system.js +213 -0
  181. package/bin/runners/lib/doctor/modules/vibecheck.js +394 -0
  182. package/bin/runners/lib/doctor/reporter.js +262 -0
  183. package/bin/runners/lib/doctor/safe-repair.js +384 -0
  184. package/bin/runners/lib/doctor/service.js +262 -0
  185. package/bin/runners/lib/doctor/types.js +113 -0
  186. package/bin/runners/lib/doctor/ui.js +263 -0
  187. package/bin/runners/lib/doctor-enhanced.js +233 -0
  188. package/bin/runners/lib/doctor-output.js +226 -0
  189. package/bin/runners/lib/doctor-v2.js +608 -0
  190. package/bin/runners/lib/drift.js +425 -0
  191. package/bin/runners/lib/enforcement.js +72 -0
  192. package/bin/runners/lib/engine/ast-cache.js +210 -0
  193. package/bin/runners/lib/engine/auth-extractor.js +211 -0
  194. package/bin/runners/lib/engine/billing-extractor.js +112 -0
  195. package/bin/runners/lib/engine/enforcement-extractor.js +100 -0
  196. package/bin/runners/lib/engine/env-extractor.js +207 -0
  197. package/bin/runners/lib/engine/express-extractor.js +208 -0
  198. package/bin/runners/lib/engine/extractors.js +849 -0
  199. package/bin/runners/lib/engine/index.js +207 -0
  200. package/bin/runners/lib/engine/repo-index.js +514 -0
  201. package/bin/runners/lib/engine/types.js +124 -0
  202. package/bin/runners/lib/engines/accessibility-engine.js +190 -0
  203. package/bin/runners/lib/engines/api-consistency-engine.js +162 -0
  204. package/bin/runners/lib/engines/ast-cache.js +99 -0
  205. package/bin/runners/lib/engines/attack-detector.js +1192 -0
  206. package/bin/runners/lib/engines/code-quality-engine.js +255 -0
  207. package/bin/runners/lib/engines/console-logs-engine.js +115 -0
  208. package/bin/runners/lib/engines/cross-file-analysis-engine.js +268 -0
  209. package/bin/runners/lib/engines/dead-code-engine.js +198 -0
  210. package/bin/runners/lib/engines/deprecated-api-engine.js +226 -0
  211. package/bin/runners/lib/engines/empty-catch-engine.js +150 -0
  212. package/bin/runners/lib/engines/file-filter.js +131 -0
  213. package/bin/runners/lib/engines/hardcoded-secrets-engine.js +251 -0
  214. package/bin/runners/lib/engines/mock-data-engine.js +272 -0
  215. package/bin/runners/lib/engines/parallel-processor.js +71 -0
  216. package/bin/runners/lib/engines/performance-issues-engine.js +265 -0
  217. package/bin/runners/lib/engines/security-vulnerabilities-engine.js +243 -0
  218. package/bin/runners/lib/engines/todo-fixme-engine.js +115 -0
  219. package/bin/runners/lib/engines/type-aware-engine.js +152 -0
  220. package/bin/runners/lib/engines/unsafe-regex-engine.js +225 -0
  221. package/bin/runners/lib/engines/vibecheck-engines/README.md +53 -0
  222. package/bin/runners/lib/engines/vibecheck-engines/index.js +15 -0
  223. package/bin/runners/lib/engines/vibecheck-engines/lib/ast-cache.js +164 -0
  224. package/bin/runners/lib/engines/vibecheck-engines/lib/code-quality-engine.js +291 -0
  225. package/bin/runners/lib/engines/vibecheck-engines/lib/console-logs-engine.js +83 -0
  226. package/bin/runners/lib/engines/vibecheck-engines/lib/dead-code-engine.js +198 -0
  227. package/bin/runners/lib/engines/vibecheck-engines/lib/deprecated-api-engine.js +275 -0
  228. package/bin/runners/lib/engines/vibecheck-engines/lib/empty-catch-engine.js +167 -0
  229. package/bin/runners/lib/engines/vibecheck-engines/lib/file-filter.js +217 -0
  230. package/bin/runners/lib/engines/vibecheck-engines/lib/hardcoded-secrets-engine.js +139 -0
  231. package/bin/runners/lib/engines/vibecheck-engines/lib/mock-data-engine.js +140 -0
  232. package/bin/runners/lib/engines/vibecheck-engines/lib/parallel-processor.js +164 -0
  233. package/bin/runners/lib/engines/vibecheck-engines/lib/performance-issues-engine.js +234 -0
  234. package/bin/runners/lib/engines/vibecheck-engines/lib/type-aware-engine.js +217 -0
  235. package/bin/runners/lib/engines/vibecheck-engines/lib/unsafe-regex-engine.js +78 -0
  236. package/bin/runners/lib/engines/vibecheck-engines/package.json +13 -0
  237. package/bin/runners/lib/enterprise-detect.js +603 -0
  238. package/bin/runners/lib/enterprise-init.js +942 -0
  239. package/bin/runners/lib/entitlements-v2.js +265 -0
  240. package/bin/runners/lib/entitlements.generated.js +0 -0
  241. package/bin/runners/lib/entitlements.js +340 -0
  242. package/bin/runners/lib/env-resolver.js +417 -0
  243. package/bin/runners/lib/env-template.js +66 -0
  244. package/bin/runners/lib/env.js +189 -0
  245. package/bin/runners/lib/error-handler.js +368 -0
  246. package/bin/runners/lib/error-messages.js +289 -0
  247. package/bin/runners/lib/evidence-pack.js +684 -0
  248. package/bin/runners/lib/exit-codes.js +275 -0
  249. package/bin/runners/lib/extractors/client-calls.js +990 -0
  250. package/bin/runners/lib/extractors/fastify-route-dump.js +573 -0
  251. package/bin/runners/lib/extractors/fastify-routes.js +426 -0
  252. package/bin/runners/lib/extractors/index.js +363 -0
  253. package/bin/runners/lib/extractors/next-routes.js +524 -0
  254. package/bin/runners/lib/extractors/proof-graph.js +431 -0
  255. package/bin/runners/lib/extractors/route-matcher.js +451 -0
  256. package/bin/runners/lib/extractors/truthpack-v2.js +377 -0
  257. package/bin/runners/lib/extractors/ui-bindings.js +547 -0
  258. package/bin/runners/lib/finding-id.js +69 -0
  259. package/bin/runners/lib/finding-sorter.js +89 -0
  260. package/bin/runners/lib/findings-schema.js +281 -0
  261. package/bin/runners/lib/fingerprint.js +377 -0
  262. package/bin/runners/lib/firewall-prompt.js +50 -0
  263. package/bin/runners/lib/fix-output.js +228 -0
  264. package/bin/runners/lib/global-flags.js +250 -0
  265. package/bin/runners/lib/graph/graph-builder.js +265 -0
  266. package/bin/runners/lib/graph/html-renderer.js +413 -0
  267. package/bin/runners/lib/graph/index.js +32 -0
  268. package/bin/runners/lib/graph/runtime-collector.js +215 -0
  269. package/bin/runners/lib/graph/static-extractor.js +518 -0
  270. package/bin/runners/lib/help-formatter.js +413 -0
  271. package/bin/runners/lib/html-proof-report.js +913 -0
  272. package/bin/runners/lib/html-report.js +650 -0
  273. package/bin/runners/lib/init-wizard.js +601 -0
  274. package/bin/runners/lib/interactive-menu.js +1496 -0
  275. package/bin/runners/lib/json-output.js +76 -0
  276. package/bin/runners/lib/llm.js +75 -0
  277. package/bin/runners/lib/logger.js +38 -0
  278. package/bin/runners/lib/meter.js +61 -0
  279. package/bin/runners/lib/missions/briefing.js +427 -0
  280. package/bin/runners/lib/missions/checkpoint.js +753 -0
  281. package/bin/runners/lib/missions/evidence.js +126 -0
  282. package/bin/runners/lib/missions/hardening.js +851 -0
  283. package/bin/runners/lib/missions/plan.js +648 -0
  284. package/bin/runners/lib/missions/safety-gates.js +645 -0
  285. package/bin/runners/lib/missions/schema.js +478 -0
  286. package/bin/runners/lib/missions/templates.js +317 -0
  287. package/bin/runners/lib/next-action.js +560 -0
  288. package/bin/runners/lib/packs/bundle.js +675 -0
  289. package/bin/runners/lib/packs/evidence-pack.js +671 -0
  290. package/bin/runners/lib/packs/pack-factory.js +837 -0
  291. package/bin/runners/lib/packs/permissions-pack.js +686 -0
  292. package/bin/runners/lib/packs/proof-graph-pack.js +779 -0
  293. package/bin/runners/lib/patch.js +40 -0
  294. package/bin/runners/lib/permissions/auth-model.js +213 -0
  295. package/bin/runners/lib/permissions/idor-prover.js +205 -0
  296. package/bin/runners/lib/permissions/index.js +45 -0
  297. package/bin/runners/lib/permissions/matrix-builder.js +198 -0
  298. package/bin/runners/lib/pkgjson.js +28 -0
  299. package/bin/runners/lib/policy.js +295 -0
  300. package/bin/runners/lib/polish/accessibility.js +62 -0
  301. package/bin/runners/lib/polish/analyzer.js +93 -0
  302. package/bin/runners/lib/polish/backend.js +87 -0
  303. package/bin/runners/lib/polish/configuration.js +83 -0
  304. package/bin/runners/lib/polish/documentation.js +83 -0
  305. package/bin/runners/lib/polish/frontend.js +817 -0
  306. package/bin/runners/lib/polish/index.js +27 -0
  307. package/bin/runners/lib/polish/infrastructure.js +80 -0
  308. package/bin/runners/lib/polish/internationalization.js +85 -0
  309. package/bin/runners/lib/polish/libraries.js +180 -0
  310. package/bin/runners/lib/polish/observability.js +75 -0
  311. package/bin/runners/lib/polish/performance.js +64 -0
  312. package/bin/runners/lib/polish/privacy.js +110 -0
  313. package/bin/runners/lib/polish/resilience.js +92 -0
  314. package/bin/runners/lib/polish/security.js +78 -0
  315. package/bin/runners/lib/polish/seo.js +71 -0
  316. package/bin/runners/lib/polish/styles.js +62 -0
  317. package/bin/runners/lib/polish/utils.js +104 -0
  318. package/bin/runners/lib/preflight.js +142 -0
  319. package/bin/runners/lib/prerequisites.js +149 -0
  320. package/bin/runners/lib/prove-output.js +220 -0
  321. package/bin/runners/lib/reality/correlation-detectors.js +359 -0
  322. package/bin/runners/lib/reality/index.js +318 -0
  323. package/bin/runners/lib/reality/request-hashing.js +416 -0
  324. package/bin/runners/lib/reality/request-mapper.js +453 -0
  325. package/bin/runners/lib/reality/safety-rails.js +463 -0
  326. package/bin/runners/lib/reality/semantic-snapshot.js +408 -0
  327. package/bin/runners/lib/reality/toast-detector.js +393 -0
  328. package/bin/runners/lib/reality-findings.js +84 -0
  329. package/bin/runners/lib/reality-output.js +231 -0
  330. package/bin/runners/lib/receipts.js +179 -0
  331. package/bin/runners/lib/redact.js +29 -0
  332. package/bin/runners/lib/replay/capsule-manager.js +154 -0
  333. package/bin/runners/lib/replay/index.js +263 -0
  334. package/bin/runners/lib/replay/player.js +348 -0
  335. package/bin/runners/lib/replay/recorder.js +331 -0
  336. package/bin/runners/lib/report-engine.js +626 -0
  337. package/bin/runners/lib/report-html.js +1233 -0
  338. package/bin/runners/lib/report-output.js +366 -0
  339. package/bin/runners/lib/report-templates.js +967 -0
  340. package/bin/runners/lib/report.js +135 -0
  341. package/bin/runners/lib/route-detection.js +1209 -0
  342. package/bin/runners/lib/route-truth.js +1322 -0
  343. package/bin/runners/lib/safelist/index.js +96 -0
  344. package/bin/runners/lib/safelist/integration.js +334 -0
  345. package/bin/runners/lib/safelist/matcher.js +696 -0
  346. package/bin/runners/lib/safelist/schema.js +948 -0
  347. package/bin/runners/lib/safelist/store.js +438 -0
  348. package/bin/runners/lib/sandbox/index.js +59 -0
  349. package/bin/runners/lib/sandbox/proof-chain.js +399 -0
  350. package/bin/runners/lib/sandbox/sandbox-runner.js +205 -0
  351. package/bin/runners/lib/sandbox/worktree.js +174 -0
  352. package/bin/runners/lib/scan-cache.js +330 -0
  353. package/bin/runners/lib/scan-output-schema.js +344 -0
  354. package/bin/runners/lib/scan-output.js +631 -0
  355. package/bin/runners/lib/scan-runner.js +135 -0
  356. package/bin/runners/lib/schema-validator.js +350 -0
  357. package/bin/runners/lib/schemas/ajv-validator.js +464 -0
  358. package/bin/runners/lib/schemas/contracts.schema.json +160 -0
  359. package/bin/runners/lib/schemas/error-envelope.schema.json +105 -0
  360. package/bin/runners/lib/schemas/finding-v3.schema.json +151 -0
  361. package/bin/runners/lib/schemas/finding.schema.json +100 -0
  362. package/bin/runners/lib/schemas/mission-pack.schema.json +206 -0
  363. package/bin/runners/lib/schemas/proof-graph.schema.json +176 -0
  364. package/bin/runners/lib/schemas/reality-report.schema.json +162 -0
  365. package/bin/runners/lib/schemas/report-artifact.schema.json +120 -0
  366. package/bin/runners/lib/schemas/run-request.schema.json +108 -0
  367. package/bin/runners/lib/schemas/share-pack.schema.json +180 -0
  368. package/bin/runners/lib/schemas/ship-manifest.schema.json +251 -0
  369. package/bin/runners/lib/schemas/ship-report.schema.json +117 -0
  370. package/bin/runners/lib/schemas/truthpack-v2.schema.json +303 -0
  371. package/bin/runners/lib/schemas/validator.js +465 -0
  372. package/bin/runners/lib/schemas/verdict.schema.json +140 -0
  373. package/bin/runners/lib/score-history.js +282 -0
  374. package/bin/runners/lib/security-bridge.js +249 -0
  375. package/bin/runners/lib/server-usage.js +513 -0
  376. package/bin/runners/lib/share-pack.js +239 -0
  377. package/bin/runners/lib/ship-gate.js +832 -0
  378. package/bin/runners/lib/ship-manifest.js +1153 -0
  379. package/bin/runners/lib/ship-output-enterprise.js +239 -0
  380. package/bin/runners/lib/ship-output.js +1128 -0
  381. package/bin/runners/lib/snippets.js +67 -0
  382. package/bin/runners/lib/status-output.js +340 -0
  383. package/bin/runners/lib/terminal-ui.js +356 -0
  384. package/bin/runners/lib/truth.js +1691 -0
  385. package/bin/runners/lib/ui.js +562 -0
  386. package/bin/runners/lib/unified-cli-output.js +947 -0
  387. package/bin/runners/lib/unified-output.js +197 -0
  388. package/bin/runners/lib/upsell.js +410 -0
  389. package/bin/runners/lib/usage.js +153 -0
  390. package/bin/runners/lib/validate-patch.js +156 -0
  391. package/bin/runners/lib/verdict-engine.js +628 -0
  392. package/bin/runners/lib/verification.js +345 -0
  393. package/bin/runners/lib/why-tree.js +650 -0
  394. package/bin/runners/reality/engine.js +917 -0
  395. package/bin/runners/reality/flows.js +122 -0
  396. package/bin/runners/reality/report.js +378 -0
  397. package/bin/runners/reality/session.js +193 -0
  398. package/bin/runners/runAIAgent.js +229 -0
  399. package/bin/runners/runAgent.d.ts +5 -0
  400. package/bin/runners/runAgent.js +161 -0
  401. package/bin/runners/runAllowlist.js +418 -0
  402. package/bin/runners/runApprove.js +320 -0
  403. package/bin/runners/runAudit.js +692 -0
  404. package/bin/runners/runAuth.js +731 -0
  405. package/bin/runners/runCI.js +353 -0
  406. package/bin/runners/runCheckpoint.js +530 -0
  407. package/bin/runners/runClassify.js +928 -0
  408. package/bin/runners/runCleanup.js +343 -0
  409. package/bin/runners/runContext.d.ts +4 -0
  410. package/bin/runners/runContext.js +175 -0
  411. package/bin/runners/runDoctor.js +877 -0
  412. package/bin/runners/runEvidencePack.js +362 -0
  413. package/bin/runners/runFirewall.d.ts +5 -0
  414. package/bin/runners/runFirewall.js +134 -0
  415. package/bin/runners/runFirewallHook.d.ts +5 -0
  416. package/bin/runners/runFirewallHook.js +56 -0
  417. package/bin/runners/runFix.js +1355 -0
  418. package/bin/runners/runForge.js +451 -0
  419. package/bin/runners/runGuard.js +262 -0
  420. package/bin/runners/runInit.js +1927 -0
  421. package/bin/runners/runIntent.js +906 -0
  422. package/bin/runners/runKickoff.js +878 -0
  423. package/bin/runners/runLabs.js +424 -0
  424. package/bin/runners/runLaunch.js +2000 -0
  425. package/bin/runners/runLink.js +785 -0
  426. package/bin/runners/runMcp.js +1875 -0
  427. package/bin/runners/runPacks.js +2089 -0
  428. package/bin/runners/runPolish.d.ts +4 -0
  429. package/bin/runners/runPolish.js +390 -0
  430. package/bin/runners/runPromptFirewall.js +211 -0
  431. package/bin/runners/runProve.js +1411 -0
  432. package/bin/runners/runQuickstart.js +531 -0
  433. package/bin/runners/runReality.js +2260 -0
  434. package/bin/runners/runReport.js +726 -0
  435. package/bin/runners/runRuntime.js +110 -0
  436. package/bin/runners/runSafelist.js +1190 -0
  437. package/bin/runners/runScan.js +688 -0
  438. package/bin/runners/runShield.js +1282 -0
  439. package/bin/runners/runShip.js +1660 -0
  440. package/bin/runners/runTruth.d.ts +5 -0
  441. package/bin/runners/runTruth.js +101 -0
  442. package/bin/runners/runValidate.js +179 -0
  443. package/bin/runners/runWatch.js +478 -0
  444. package/bin/runners/utils.js +360 -0
  445. package/bin/scan.js +617 -0
  446. package/bin/vibecheck.js +1617 -0
  447. package/dist/guardrail/index.d.ts +2405 -0
  448. package/dist/guardrail/index.js +9747 -0
  449. package/dist/guardrail/index.js.map +1 -0
  450. package/dist/scanner/index.d.ts +282 -0
  451. package/dist/scanner/index.js +3395 -0
  452. package/dist/scanner/index.js.map +1 -0
  453. package/package.json +123 -104
  454. package/README.md +0 -491
  455. package/dist/index.js +0 -99711
  456. package/dist/index.js.map +0 -1
@@ -0,0 +1,502 @@
1
+ /**
2
+ * Real-Time File System Interceptor
3
+ *
4
+ * ═══════════════════════════════════════════════════════════════════════════════
5
+ * AGENT FIREWALL™ - FS INTERCEPTION LAYER
6
+ * ═══════════════════════════════════════════════════════════════════════════════
7
+ *
8
+ * Intercepts file system writes in REAL-TIME and blocks them if they violate
9
+ * the declared intent. This is the "write-time blocking" capability.
10
+ *
11
+ * HOW IT WORKS:
12
+ * 1. Monkey-patches fs.writeFile, fs.writeFileSync, etc.
13
+ * 2. Before any write, checks the content against the enforcement gateway
14
+ * 3. If BLOCKED, throws an error BEFORE the file is written
15
+ * 4. If PASSED, allows the write to proceed
16
+ *
17
+ * IMPORTANT: This should only be activated in IDE mode or when explicitly enabled.
18
+ * In CI/CLI, use the gateway directly instead of patching fs.
19
+ *
20
+ * @module interception/fs-interceptor
21
+ * @version 1.0.0
22
+ */
23
+
24
+ "use strict";
25
+
26
+ const fs = require("fs");
27
+ const path = require("path");
28
+
29
+ // Store original functions
30
+ const originalWriteFile = fs.writeFile;
31
+ const originalWriteFileSync = fs.writeFileSync;
32
+ const originalAppendFile = fs.appendFile;
33
+ const originalAppendFileSync = fs.appendFileSync;
34
+ const originalCopyFile = fs.copyFile;
35
+ const originalCopyFileSync = fs.copyFileSync;
36
+ const originalRename = fs.rename;
37
+ const originalRenameSync = fs.renameSync;
38
+ const originalUnlink = fs.unlink;
39
+ const originalUnlinkSync = fs.unlinkSync;
40
+
41
+ // Interceptor state
42
+ let isActive = false;
43
+ let projectRoot = process.cwd();
44
+ let gateway = null;
45
+ let agentId = "unknown";
46
+ let onBlock = null; // Callback when write is blocked
47
+
48
+ // File patterns to always allow (system files, temp files, etc.)
49
+ const ALWAYS_ALLOW_PATTERNS = [
50
+ /node_modules/,
51
+ /\.vibecheck\//,
52
+ /\.git\//,
53
+ /\.DS_Store/,
54
+ /Thumbs\.db/,
55
+ /\.swp$/,
56
+ /\.swo$/,
57
+ /~$/,
58
+ /\.tmp$/,
59
+ /\.temp$/,
60
+ /\.cache/,
61
+ /\.log$/,
62
+ /package-lock\.json$/,
63
+ /pnpm-lock\.yaml$/,
64
+ /yarn\.lock$/,
65
+ ];
66
+
67
+ // File patterns that should trigger blocking (source code)
68
+ const SOURCE_FILE_PATTERNS = [
69
+ /\.[jt]sx?$/, // JavaScript/TypeScript
70
+ /\.vue$/, // Vue
71
+ /\.svelte$/, // Svelte
72
+ /\.py$/, // Python
73
+ /\.go$/, // Go
74
+ /\.rs$/, // Rust
75
+ /\.rb$/, // Ruby
76
+ /\.php$/, // PHP
77
+ /\.java$/, // Java
78
+ /\.cs$/, // C#
79
+ /\.sql$/, // SQL
80
+ /\.prisma$/, // Prisma
81
+ /\.graphql$/, // GraphQL
82
+ /\.json$/, // JSON (configs)
83
+ /\.ya?ml$/, // YAML
84
+ /\.env/, // Env files
85
+ /\.md$/, // Markdown (docs)
86
+ ];
87
+
88
+ /**
89
+ * Check if a file path should be intercepted
90
+ */
91
+ function shouldIntercept(filePath) {
92
+ // Normalize path
93
+ const normalizedPath = path.resolve(filePath);
94
+
95
+ // Must be within project root
96
+ if (!normalizedPath.startsWith(projectRoot)) {
97
+ return false;
98
+ }
99
+
100
+ // Check always-allow patterns
101
+ for (const pattern of ALWAYS_ALLOW_PATTERNS) {
102
+ if (pattern.test(normalizedPath)) {
103
+ return false;
104
+ }
105
+ }
106
+
107
+ // Check if it's a source file
108
+ for (const pattern of SOURCE_FILE_PATTERNS) {
109
+ if (pattern.test(normalizedPath)) {
110
+ return true;
111
+ }
112
+ }
113
+
114
+ return false;
115
+ }
116
+
117
+ /**
118
+ * Create a BlockedWriteError
119
+ */
120
+ class BlockedWriteError extends Error {
121
+ constructor(verdict) {
122
+ super(`BLOCKED_BY_AGENT_FIREWALL: ${verdict.summary}`);
123
+ this.name = "BlockedWriteError";
124
+ this.code = "EBLOCKED";
125
+ this.verdict = verdict;
126
+ this.violations = verdict.violations;
127
+ }
128
+ }
129
+
130
+ /**
131
+ * Intercept a file write operation
132
+ */
133
+ async function interceptWrite(filePath, content, operation = "write") {
134
+ if (!gateway) {
135
+ console.warn("[FS Interceptor] No gateway configured - allowing write");
136
+ return { allowed: true };
137
+ }
138
+
139
+ // Build change event
140
+ const changeType = operation === "append" ? "file_write" :
141
+ operation === "delete" ? "file_delete" :
142
+ operation === "rename" ? "file_rename" : "file_write";
143
+
144
+ // Get old content if file exists
145
+ let oldContent = null;
146
+ try {
147
+ if (fs.existsSync(filePath)) {
148
+ oldContent = originalReadFileSync(filePath, "utf-8");
149
+ }
150
+ } catch {
151
+ // Ignore read errors
152
+ }
153
+
154
+ const rawChange = {
155
+ type: changeType,
156
+ path: path.relative(projectRoot, filePath),
157
+ content: typeof content === "string" ? content : content?.toString(),
158
+ diff: oldContent ? {
159
+ before: oldContent,
160
+ after: content?.toString() || "",
161
+ } : null,
162
+ };
163
+
164
+ try {
165
+ const verdict = await gateway.intercept(rawChange, {
166
+ agentId,
167
+ interceptionPoint: "fs_hook",
168
+ });
169
+
170
+ if (verdict.decision === "BLOCK") {
171
+ // Call block callback if provided
172
+ if (onBlock) {
173
+ onBlock(filePath, verdict);
174
+ }
175
+
176
+ return { allowed: false, verdict };
177
+ }
178
+
179
+ return { allowed: true, verdict };
180
+ } catch (err) {
181
+ // On error, default to allow (fail-open for fs operations)
182
+ console.warn(`[FS Interceptor] Error during interception: ${err.message}`);
183
+ return { allowed: true, error: err };
184
+ }
185
+ }
186
+
187
+ /**
188
+ * Synchronous intercept (blocking)
189
+ */
190
+ function interceptWriteSync(filePath, content, operation = "write") {
191
+ if (!gateway) {
192
+ return { allowed: true };
193
+ }
194
+
195
+ // For sync operations, we do a quick check instead of full intercept
196
+ const rawChange = {
197
+ type: operation === "delete" ? "file_delete" : "file_write",
198
+ path: path.relative(projectRoot, filePath),
199
+ content: typeof content === "string" ? content : content?.toString(),
200
+ };
201
+
202
+ try {
203
+ const result = gateway.quickCheck(rawChange);
204
+
205
+ if (!result.allowed) {
206
+ if (onBlock) {
207
+ onBlock(filePath, { violations: result.violations });
208
+ }
209
+
210
+ return { allowed: false, violations: result.violations };
211
+ }
212
+
213
+ return { allowed: true };
214
+ } catch (err) {
215
+ // Fail-open
216
+ return { allowed: true, error: err };
217
+ }
218
+ }
219
+
220
+ // Store original readFileSync for internal use
221
+ const originalReadFileSync = fs.readFileSync;
222
+
223
+ /**
224
+ * Create patched writeFile
225
+ */
226
+ function patchedWriteFile(filePath, data, options, callback) {
227
+ // Handle overloads
228
+ if (typeof options === "function") {
229
+ callback = options;
230
+ options = {};
231
+ }
232
+
233
+ const resolvedPath = path.resolve(filePath);
234
+
235
+ if (!shouldIntercept(resolvedPath)) {
236
+ return originalWriteFile.call(fs, filePath, data, options, callback);
237
+ }
238
+
239
+ // Intercept asynchronously
240
+ interceptWrite(resolvedPath, data, "write")
241
+ .then(result => {
242
+ if (!result.allowed) {
243
+ const error = new BlockedWriteError(result.verdict);
244
+ if (callback) callback(error);
245
+ return;
246
+ }
247
+
248
+ originalWriteFile.call(fs, filePath, data, options, callback);
249
+ })
250
+ .catch(err => {
251
+ // On error, proceed with write (fail-open)
252
+ originalWriteFile.call(fs, filePath, data, options, callback);
253
+ });
254
+ }
255
+
256
+ /**
257
+ * Create patched writeFileSync
258
+ */
259
+ function patchedWriteFileSync(filePath, data, options) {
260
+ const resolvedPath = path.resolve(filePath);
261
+
262
+ if (!shouldIntercept(resolvedPath)) {
263
+ return originalWriteFileSync.call(fs, filePath, data, options);
264
+ }
265
+
266
+ const result = interceptWriteSync(resolvedPath, data, "write");
267
+
268
+ if (!result.allowed) {
269
+ throw new BlockedWriteError({
270
+ summary: "Write blocked by Agent Firewall",
271
+ violations: result.violations
272
+ });
273
+ }
274
+
275
+ return originalWriteFileSync.call(fs, filePath, data, options);
276
+ }
277
+
278
+ /**
279
+ * Create patched appendFile
280
+ */
281
+ function patchedAppendFile(filePath, data, options, callback) {
282
+ if (typeof options === "function") {
283
+ callback = options;
284
+ options = {};
285
+ }
286
+
287
+ const resolvedPath = path.resolve(filePath);
288
+
289
+ if (!shouldIntercept(resolvedPath)) {
290
+ return originalAppendFile.call(fs, filePath, data, options, callback);
291
+ }
292
+
293
+ interceptWrite(resolvedPath, data, "append")
294
+ .then(result => {
295
+ if (!result.allowed) {
296
+ const error = new BlockedWriteError(result.verdict);
297
+ if (callback) callback(error);
298
+ return;
299
+ }
300
+
301
+ originalAppendFile.call(fs, filePath, data, options, callback);
302
+ })
303
+ .catch(() => {
304
+ originalAppendFile.call(fs, filePath, data, options, callback);
305
+ });
306
+ }
307
+
308
+ /**
309
+ * Create patched appendFileSync
310
+ */
311
+ function patchedAppendFileSync(filePath, data, options) {
312
+ const resolvedPath = path.resolve(filePath);
313
+
314
+ if (!shouldIntercept(resolvedPath)) {
315
+ return originalAppendFileSync.call(fs, filePath, data, options);
316
+ }
317
+
318
+ const result = interceptWriteSync(resolvedPath, data, "append");
319
+
320
+ if (!result.allowed) {
321
+ throw new BlockedWriteError({
322
+ summary: "Append blocked by Agent Firewall",
323
+ violations: result.violations
324
+ });
325
+ }
326
+
327
+ return originalAppendFileSync.call(fs, filePath, data, options);
328
+ }
329
+
330
+ /**
331
+ * Create patched unlink (delete)
332
+ */
333
+ function patchedUnlink(filePath, callback) {
334
+ const resolvedPath = path.resolve(filePath);
335
+
336
+ if (!shouldIntercept(resolvedPath)) {
337
+ return originalUnlink.call(fs, filePath, callback);
338
+ }
339
+
340
+ interceptWrite(resolvedPath, null, "delete")
341
+ .then(result => {
342
+ if (!result.allowed) {
343
+ const error = new BlockedWriteError(result.verdict);
344
+ if (callback) callback(error);
345
+ return;
346
+ }
347
+
348
+ originalUnlink.call(fs, filePath, callback);
349
+ })
350
+ .catch(() => {
351
+ originalUnlink.call(fs, filePath, callback);
352
+ });
353
+ }
354
+
355
+ /**
356
+ * Create patched unlinkSync
357
+ */
358
+ function patchedUnlinkSync(filePath) {
359
+ const resolvedPath = path.resolve(filePath);
360
+
361
+ if (!shouldIntercept(resolvedPath)) {
362
+ return originalUnlinkSync.call(fs, filePath);
363
+ }
364
+
365
+ const result = interceptWriteSync(resolvedPath, null, "delete");
366
+
367
+ if (!result.allowed) {
368
+ throw new BlockedWriteError({
369
+ summary: "Delete blocked by Agent Firewall",
370
+ violations: result.violations
371
+ });
372
+ }
373
+
374
+ return originalUnlinkSync.call(fs, filePath);
375
+ }
376
+
377
+ // ═══════════════════════════════════════════════════════════════════════════════
378
+ // PUBLIC API
379
+ // ═══════════════════════════════════════════════════════════════════════════════
380
+
381
+ /**
382
+ * Activate file system interception
383
+ *
384
+ * @param {Object} options
385
+ * @param {string} options.projectRoot - Project root directory
386
+ * @param {Object} options.gateway - EnforcementGateway instance
387
+ * @param {string} options.agentId - Agent identifier
388
+ * @param {Function} options.onBlock - Callback when write is blocked
389
+ */
390
+ function activate(options = {}) {
391
+ if (isActive) {
392
+ console.warn("[FS Interceptor] Already active");
393
+ return;
394
+ }
395
+
396
+ projectRoot = options.projectRoot || process.cwd();
397
+ gateway = options.gateway || null;
398
+ agentId = options.agentId || "unknown";
399
+ onBlock = options.onBlock || null;
400
+
401
+ // Patch fs module
402
+ fs.writeFile = patchedWriteFile;
403
+ fs.writeFileSync = patchedWriteFileSync;
404
+ fs.appendFile = patchedAppendFile;
405
+ fs.appendFileSync = patchedAppendFileSync;
406
+ fs.unlink = patchedUnlink;
407
+ fs.unlinkSync = patchedUnlinkSync;
408
+
409
+ isActive = true;
410
+
411
+ console.log(`[FS Interceptor] Activated for ${projectRoot}`);
412
+ }
413
+
414
+ /**
415
+ * Deactivate file system interception
416
+ */
417
+ function deactivate() {
418
+ if (!isActive) return;
419
+
420
+ // Restore original functions
421
+ fs.writeFile = originalWriteFile;
422
+ fs.writeFileSync = originalWriteFileSync;
423
+ fs.appendFile = originalAppendFile;
424
+ fs.appendFileSync = originalAppendFileSync;
425
+ fs.unlink = originalUnlink;
426
+ fs.unlinkSync = originalUnlinkSync;
427
+
428
+ isActive = false;
429
+ gateway = null;
430
+
431
+ console.log("[FS Interceptor] Deactivated");
432
+ }
433
+
434
+ /**
435
+ * Check if interceptor is active
436
+ */
437
+ function isActivated() {
438
+ return isActive;
439
+ }
440
+
441
+ /**
442
+ * Update gateway instance
443
+ */
444
+ function setGateway(newGateway) {
445
+ gateway = newGateway;
446
+ }
447
+
448
+ /**
449
+ * Update agent ID
450
+ */
451
+ function setAgentId(newAgentId) {
452
+ agentId = newAgentId;
453
+ }
454
+
455
+ /**
456
+ * Add pattern to always-allow list
457
+ */
458
+ function addAllowPattern(pattern) {
459
+ if (pattern instanceof RegExp) {
460
+ ALWAYS_ALLOW_PATTERNS.push(pattern);
461
+ } else {
462
+ ALWAYS_ALLOW_PATTERNS.push(new RegExp(pattern));
463
+ }
464
+ }
465
+
466
+ /**
467
+ * Get interception stats
468
+ */
469
+ function getStats() {
470
+ return {
471
+ isActive,
472
+ projectRoot,
473
+ agentId,
474
+ allowPatterns: ALWAYS_ALLOW_PATTERNS.length,
475
+ sourcePatterns: SOURCE_FILE_PATTERNS.length,
476
+ };
477
+ }
478
+
479
+ // ═══════════════════════════════════════════════════════════════════════════════
480
+ // EXPORTS
481
+ // ═══════════════════════════════════════════════════════════════════════════════
482
+
483
+ module.exports = {
484
+ activate,
485
+ deactivate,
486
+ isActivated,
487
+ setGateway,
488
+ setAgentId,
489
+ addAllowPattern,
490
+ getStats,
491
+ BlockedWriteError,
492
+ shouldIntercept,
493
+ // Expose originals for testing
494
+ _originals: {
495
+ writeFile: originalWriteFile,
496
+ writeFileSync: originalWriteFileSync,
497
+ appendFile: originalAppendFile,
498
+ appendFileSync: originalAppendFileSync,
499
+ unlink: originalUnlink,
500
+ unlinkSync: originalUnlinkSync,
501
+ },
502
+ };
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Interception Layer Index
3
+ *
4
+ * Exports all interception mechanisms for the Agent Firewall.
5
+ *
6
+ * @module interception
7
+ */
8
+
9
+ "use strict";
10
+
11
+ const fsInterceptor = require("./fs-interceptor");
12
+
13
+ module.exports = {
14
+ // FS Interceptor
15
+ activateFsInterceptor: fsInterceptor.activate,
16
+ deactivateFsInterceptor: fsInterceptor.deactivate,
17
+ isFsInterceptorActive: fsInterceptor.isActivated,
18
+ setFsGateway: fsInterceptor.setGateway,
19
+ BlockedWriteError: fsInterceptor.BlockedWriteError,
20
+
21
+ // Re-export full module for advanced use
22
+ fsInterceptor,
23
+ };