hackmyagent 0.7.2 → 0.8.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 (393) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +172 -261
  3. package/dist/abgr/controls.d.ts +35 -0
  4. package/dist/abgr/controls.d.ts.map +1 -0
  5. package/dist/abgr/controls.js +1058 -0
  6. package/dist/abgr/controls.js.map +1 -0
  7. package/dist/abgr/detector.d.ts +45 -0
  8. package/dist/abgr/detector.d.ts.map +1 -0
  9. package/dist/abgr/detector.js +175 -0
  10. package/dist/abgr/detector.js.map +1 -0
  11. package/dist/abgr/index.d.ts +24 -0
  12. package/dist/abgr/index.d.ts.map +1 -0
  13. package/dist/abgr/index.js +50 -0
  14. package/dist/abgr/index.js.map +1 -0
  15. package/dist/abgr/scorer.d.ts +36 -0
  16. package/dist/abgr/scorer.d.ts.map +1 -0
  17. package/dist/abgr/scorer.js +205 -0
  18. package/dist/abgr/scorer.js.map +1 -0
  19. package/dist/abgr/templates.d.ts +35 -0
  20. package/dist/abgr/templates.d.ts.map +1 -0
  21. package/dist/abgr/templates.js +668 -0
  22. package/dist/abgr/templates.js.map +1 -0
  23. package/dist/abgr/tier.d.ts +27 -0
  24. package/dist/abgr/tier.d.ts.map +1 -0
  25. package/dist/abgr/tier.js +115 -0
  26. package/dist/abgr/tier.js.map +1 -0
  27. package/dist/abgr/types.d.ts +59 -0
  28. package/dist/abgr/types.d.ts.map +1 -0
  29. package/dist/abgr/types.js +10 -0
  30. package/dist/abgr/types.js.map +1 -0
  31. package/dist/agent-scan/checks.d.ts +6 -0
  32. package/dist/agent-scan/checks.d.ts.map +1 -0
  33. package/dist/agent-scan/checks.js +93 -0
  34. package/dist/agent-scan/checks.js.map +1 -0
  35. package/dist/agent-scan/index.d.ts +10 -0
  36. package/dist/agent-scan/index.d.ts.map +1 -0
  37. package/dist/agent-scan/index.js +16 -0
  38. package/dist/agent-scan/index.js.map +1 -0
  39. package/dist/agent-scan/scanner.d.ts +31 -0
  40. package/dist/agent-scan/scanner.d.ts.map +1 -0
  41. package/dist/agent-scan/scanner.js +484 -0
  42. package/dist/agent-scan/scanner.js.map +1 -0
  43. package/dist/agent-scan/types.d.ts +63 -0
  44. package/dist/agent-scan/types.d.ts.map +1 -0
  45. package/dist/agent-scan/types.js +10 -0
  46. package/dist/agent-scan/types.js.map +1 -0
  47. package/dist/arp/cli/index.d.ts +3 -0
  48. package/dist/arp/cli/index.d.ts.map +1 -0
  49. package/dist/arp/cli/index.js +225 -0
  50. package/dist/arp/cli/index.js.map +1 -0
  51. package/dist/arp/config/loader.d.ts +8 -0
  52. package/dist/arp/config/loader.d.ts.map +1 -0
  53. package/dist/arp/config/loader.js +102 -0
  54. package/dist/arp/config/loader.js.map +1 -0
  55. package/dist/arp/enforcement/kill-switch.d.ts +22 -0
  56. package/dist/arp/enforcement/kill-switch.d.ts.map +1 -0
  57. package/dist/arp/enforcement/kill-switch.js +122 -0
  58. package/dist/arp/enforcement/kill-switch.js.map +1 -0
  59. package/dist/arp/engine/event-engine.d.ts +29 -0
  60. package/dist/arp/engine/event-engine.d.ts.map +1 -0
  61. package/dist/arp/engine/event-engine.js +233 -0
  62. package/dist/arp/engine/event-engine.js.map +1 -0
  63. package/dist/arp/index.d.ts +81 -0
  64. package/dist/arp/index.d.ts.map +1 -0
  65. package/dist/arp/index.js +239 -0
  66. package/dist/arp/index.js.map +1 -0
  67. package/dist/arp/intelligence/adapters.d.ts +45 -0
  68. package/dist/arp/intelligence/adapters.d.ts.map +1 -0
  69. package/dist/arp/intelligence/adapters.js +222 -0
  70. package/dist/arp/intelligence/adapters.js.map +1 -0
  71. package/dist/arp/intelligence/anomaly.d.ts +32 -0
  72. package/dist/arp/intelligence/anomaly.d.ts.map +1 -0
  73. package/dist/arp/intelligence/anomaly.js +80 -0
  74. package/dist/arp/intelligence/anomaly.js.map +1 -0
  75. package/dist/arp/intelligence/budget.d.ts +33 -0
  76. package/dist/arp/intelligence/budget.d.ts.map +1 -0
  77. package/dist/arp/intelligence/budget.js +150 -0
  78. package/dist/arp/intelligence/budget.js.map +1 -0
  79. package/dist/arp/intelligence/coordinator.d.ts +43 -0
  80. package/dist/arp/intelligence/coordinator.d.ts.map +1 -0
  81. package/dist/arp/intelligence/coordinator.js +301 -0
  82. package/dist/arp/intelligence/coordinator.js.map +1 -0
  83. package/dist/arp/interceptors/a2a-protocol.d.ts +29 -0
  84. package/dist/arp/interceptors/a2a-protocol.d.ts.map +1 -0
  85. package/dist/arp/interceptors/a2a-protocol.js +111 -0
  86. package/dist/arp/interceptors/a2a-protocol.js.map +1 -0
  87. package/dist/arp/interceptors/filesystem.d.ts +33 -0
  88. package/dist/arp/interceptors/filesystem.d.ts.map +1 -0
  89. package/dist/arp/interceptors/filesystem.js +199 -0
  90. package/dist/arp/interceptors/filesystem.js.map +1 -0
  91. package/dist/arp/interceptors/mcp-protocol.d.ts +25 -0
  92. package/dist/arp/interceptors/mcp-protocol.d.ts.map +1 -0
  93. package/dist/arp/interceptors/mcp-protocol.js +126 -0
  94. package/dist/arp/interceptors/mcp-protocol.js.map +1 -0
  95. package/dist/arp/interceptors/network.d.ts +26 -0
  96. package/dist/arp/interceptors/network.d.ts.map +1 -0
  97. package/dist/arp/interceptors/network.js +146 -0
  98. package/dist/arp/interceptors/network.js.map +1 -0
  99. package/dist/arp/interceptors/process.d.ts +26 -0
  100. package/dist/arp/interceptors/process.d.ts.map +1 -0
  101. package/dist/arp/interceptors/process.js +157 -0
  102. package/dist/arp/interceptors/process.js.map +1 -0
  103. package/dist/arp/interceptors/prompt.d.ts +29 -0
  104. package/dist/arp/interceptors/prompt.d.ts.map +1 -0
  105. package/dist/arp/interceptors/prompt.js +82 -0
  106. package/dist/arp/interceptors/prompt.js.map +1 -0
  107. package/dist/arp/license/index.d.ts +59 -0
  108. package/dist/arp/license/index.d.ts.map +1 -0
  109. package/dist/arp/license/index.js +78 -0
  110. package/dist/arp/license/index.js.map +1 -0
  111. package/dist/arp/monitors/filesystem.d.ts +21 -0
  112. package/dist/arp/monitors/filesystem.d.ts.map +1 -0
  113. package/dist/arp/monitors/filesystem.js +141 -0
  114. package/dist/arp/monitors/filesystem.js.map +1 -0
  115. package/dist/arp/monitors/network.d.ts +32 -0
  116. package/dist/arp/monitors/network.d.ts.map +1 -0
  117. package/dist/arp/monitors/network.js +301 -0
  118. package/dist/arp/monitors/network.js.map +1 -0
  119. package/dist/arp/monitors/process.d.ts +24 -0
  120. package/dist/arp/monitors/process.d.ts.map +1 -0
  121. package/dist/arp/monitors/process.js +205 -0
  122. package/dist/arp/monitors/process.js.map +1 -0
  123. package/dist/arp/patterns/ai-threats.d.ts +48 -0
  124. package/dist/arp/patterns/ai-threats.d.ts.map +1 -0
  125. package/dist/arp/patterns/ai-threats.js +215 -0
  126. package/dist/arp/patterns/ai-threats.js.map +1 -0
  127. package/dist/arp/proxy/forward.d.ts +23 -0
  128. package/dist/arp/proxy/forward.d.ts.map +1 -0
  129. package/dist/arp/proxy/forward.js +152 -0
  130. package/dist/arp/proxy/forward.js.map +1 -0
  131. package/dist/arp/proxy/server.d.ts +45 -0
  132. package/dist/arp/proxy/server.d.ts.map +1 -0
  133. package/dist/arp/proxy/server.js +331 -0
  134. package/dist/arp/proxy/server.js.map +1 -0
  135. package/dist/arp/reporting/local-log.d.ts +22 -0
  136. package/dist/arp/reporting/local-log.d.ts.map +1 -0
  137. package/dist/arp/reporting/local-log.js +116 -0
  138. package/dist/arp/reporting/local-log.js.map +1 -0
  139. package/dist/arp/types.d.ts +230 -0
  140. package/dist/arp/types.d.ts.map +1 -0
  141. package/dist/arp/types.js +4 -0
  142. package/dist/arp/types.js.map +1 -0
  143. package/dist/attack/custom-payloads.d.ts +11 -0
  144. package/dist/attack/custom-payloads.d.ts.map +1 -0
  145. package/dist/attack/custom-payloads.js +108 -0
  146. package/dist/attack/custom-payloads.js.map +1 -0
  147. package/dist/attack/fail-policy.d.ts +16 -0
  148. package/dist/attack/fail-policy.d.ts.map +1 -0
  149. package/dist/attack/fail-policy.js +36 -0
  150. package/dist/attack/fail-policy.js.map +1 -0
  151. package/dist/attack/index.d.ts +12 -0
  152. package/dist/attack/index.d.ts.map +1 -0
  153. package/dist/attack/index.js +30 -0
  154. package/dist/attack/index.js.map +1 -0
  155. package/dist/attack/payloads/a2a-attacks.d.ts +12 -0
  156. package/dist/attack/payloads/a2a-attacks.d.ts.map +1 -0
  157. package/dist/attack/payloads/a2a-attacks.js +221 -0
  158. package/dist/attack/payloads/a2a-attacks.js.map +1 -0
  159. package/dist/attack/payloads/capability-abuse.d.ts +8 -0
  160. package/dist/attack/payloads/capability-abuse.d.ts.map +1 -0
  161. package/dist/attack/payloads/capability-abuse.js +222 -0
  162. package/dist/attack/payloads/capability-abuse.js.map +1 -0
  163. package/dist/attack/payloads/context-manipulation.d.ts +8 -0
  164. package/dist/attack/payloads/context-manipulation.d.ts.map +1 -0
  165. package/dist/attack/payloads/context-manipulation.js +217 -0
  166. package/dist/attack/payloads/context-manipulation.js.map +1 -0
  167. package/dist/attack/payloads/data-exfiltration.d.ts +8 -0
  168. package/dist/attack/payloads/data-exfiltration.d.ts.map +1 -0
  169. package/dist/attack/payloads/data-exfiltration.js +249 -0
  170. package/dist/attack/payloads/data-exfiltration.js.map +1 -0
  171. package/dist/attack/payloads/index.d.ts +29 -0
  172. package/dist/attack/payloads/index.d.ts.map +1 -0
  173. package/dist/attack/payloads/index.js +76 -0
  174. package/dist/attack/payloads/index.js.map +1 -0
  175. package/dist/attack/payloads/jailbreak.d.ts +8 -0
  176. package/dist/attack/payloads/jailbreak.d.ts.map +1 -0
  177. package/dist/attack/payloads/jailbreak.js +265 -0
  178. package/dist/attack/payloads/jailbreak.js.map +1 -0
  179. package/dist/attack/payloads/mcp-exploitation.d.ts +12 -0
  180. package/dist/attack/payloads/mcp-exploitation.d.ts.map +1 -0
  181. package/dist/attack/payloads/mcp-exploitation.js +221 -0
  182. package/dist/attack/payloads/mcp-exploitation.js.map +1 -0
  183. package/dist/attack/payloads/prompt-injection.d.ts +8 -0
  184. package/dist/attack/payloads/prompt-injection.d.ts.map +1 -0
  185. package/dist/attack/payloads/prompt-injection.js +262 -0
  186. package/dist/attack/payloads/prompt-injection.js.map +1 -0
  187. package/dist/attack/scanner.d.ts +84 -0
  188. package/dist/attack/scanner.d.ts.map +1 -0
  189. package/dist/attack/scanner.js +509 -0
  190. package/dist/attack/scanner.js.map +1 -0
  191. package/dist/attack/types.d.ts +153 -0
  192. package/dist/attack/types.d.ts.map +1 -0
  193. package/dist/attack/types.js +46 -0
  194. package/dist/attack/types.js.map +1 -0
  195. package/dist/benchmarks/index.d.ts +16 -0
  196. package/dist/benchmarks/index.d.ts.map +1 -0
  197. package/dist/benchmarks/index.js +27 -0
  198. package/dist/benchmarks/index.js.map +1 -0
  199. package/dist/benchmarks/oasb-1.d.ts +112 -0
  200. package/dist/benchmarks/oasb-1.d.ts.map +1 -0
  201. package/dist/benchmarks/oasb-1.js +1124 -0
  202. package/dist/benchmarks/oasb-1.js.map +1 -0
  203. package/dist/checker/check-skill.d.ts +48 -0
  204. package/dist/checker/check-skill.d.ts.map +1 -0
  205. package/dist/checker/check-skill.js +105 -0
  206. package/dist/checker/check-skill.js.map +1 -0
  207. package/dist/checker/index.d.ts +12 -0
  208. package/dist/checker/index.d.ts.map +1 -0
  209. package/dist/checker/index.js +16 -0
  210. package/dist/checker/index.js.map +1 -0
  211. package/dist/checker/permission-analyzer.d.ts +12 -0
  212. package/dist/checker/permission-analyzer.d.ts.map +1 -0
  213. package/dist/checker/permission-analyzer.js +84 -0
  214. package/dist/checker/permission-analyzer.js.map +1 -0
  215. package/dist/checker/publisher-verifier.d.ts +34 -0
  216. package/dist/checker/publisher-verifier.d.ts.map +1 -0
  217. package/dist/checker/publisher-verifier.js +121 -0
  218. package/dist/checker/publisher-verifier.js.map +1 -0
  219. package/dist/checker/skill-identifier.d.ts +14 -0
  220. package/dist/checker/skill-identifier.d.ts.map +1 -0
  221. package/dist/checker/skill-identifier.js +55 -0
  222. package/dist/checker/skill-identifier.js.map +1 -0
  223. package/dist/cli.d.ts +7 -0
  224. package/dist/cli.d.ts.map +1 -0
  225. package/dist/cli.js +3534 -0
  226. package/dist/cli.js.map +1 -0
  227. package/dist/hardening/index.d.ts +7 -0
  228. package/dist/hardening/index.d.ts.map +1 -0
  229. package/dist/hardening/index.js +9 -0
  230. package/dist/hardening/index.js.map +1 -0
  231. package/dist/hardening/llm-checks.d.ts +18 -0
  232. package/dist/hardening/llm-checks.d.ts.map +1 -0
  233. package/dist/hardening/llm-checks.js +434 -0
  234. package/dist/hardening/llm-checks.js.map +1 -0
  235. package/dist/hardening/mcp-tool-enum.d.ts +45 -0
  236. package/dist/hardening/mcp-tool-enum.d.ts.map +1 -0
  237. package/dist/hardening/mcp-tool-enum.js +315 -0
  238. package/dist/hardening/mcp-tool-enum.js.map +1 -0
  239. package/dist/hardening/scanner.d.ts +147 -0
  240. package/dist/hardening/scanner.d.ts.map +1 -0
  241. package/dist/hardening/scanner.js +5445 -0
  242. package/dist/hardening/scanner.js.map +1 -0
  243. package/dist/hardening/security-check.d.ts +85 -0
  244. package/dist/hardening/security-check.d.ts.map +1 -0
  245. package/dist/hardening/security-check.js +6 -0
  246. package/dist/hardening/security-check.js.map +1 -0
  247. package/dist/hardening/shell-checks.d.ts +21 -0
  248. package/dist/hardening/shell-checks.d.ts.map +1 -0
  249. package/dist/hardening/shell-checks.js +236 -0
  250. package/dist/hardening/shell-checks.js.map +1 -0
  251. package/dist/index.d.ts +38 -4
  252. package/dist/index.d.ts.map +1 -1
  253. package/dist/index.js +91 -3525
  254. package/dist/index.js.map +1 -1
  255. package/dist/mcp-server.js +10 -10
  256. package/dist/mcp-server.js.map +1 -1
  257. package/dist/oasb/config/dvaa-targets.d.ts +13 -0
  258. package/dist/oasb/config/dvaa-targets.d.ts.map +1 -0
  259. package/dist/oasb/config/dvaa-targets.js +89 -0
  260. package/dist/oasb/config/dvaa-targets.js.map +1 -0
  261. package/dist/oasb/harness/arp-wrapper.d.ts +29 -0
  262. package/dist/oasb/harness/arp-wrapper.d.ts.map +1 -0
  263. package/dist/oasb/harness/arp-wrapper.js +134 -0
  264. package/dist/oasb/harness/arp-wrapper.js.map +1 -0
  265. package/dist/oasb/harness/dvaa-client.d.ts +46 -0
  266. package/dist/oasb/harness/dvaa-client.d.ts.map +1 -0
  267. package/dist/oasb/harness/dvaa-client.js +98 -0
  268. package/dist/oasb/harness/dvaa-client.js.map +1 -0
  269. package/dist/oasb/harness/dvaa-manager.d.ts +17 -0
  270. package/dist/oasb/harness/dvaa-manager.d.ts.map +1 -0
  271. package/dist/oasb/harness/dvaa-manager.js +132 -0
  272. package/dist/oasb/harness/dvaa-manager.js.map +1 -0
  273. package/dist/oasb/harness/event-collector.d.ts +33 -0
  274. package/dist/oasb/harness/event-collector.d.ts.map +1 -0
  275. package/dist/oasb/harness/event-collector.js +86 -0
  276. package/dist/oasb/harness/event-collector.js.map +1 -0
  277. package/dist/oasb/harness/metrics.d.ts +14 -0
  278. package/dist/oasb/harness/metrics.d.ts.map +1 -0
  279. package/dist/oasb/harness/metrics.js +56 -0
  280. package/dist/oasb/harness/metrics.js.map +1 -0
  281. package/dist/oasb/harness/mock-llm-adapter.d.ts +34 -0
  282. package/dist/oasb/harness/mock-llm-adapter.d.ts.map +1 -0
  283. package/dist/oasb/harness/mock-llm-adapter.js +69 -0
  284. package/dist/oasb/harness/mock-llm-adapter.js.map +1 -0
  285. package/dist/oasb/harness/types.d.ts +74 -0
  286. package/dist/oasb/harness/types.d.ts.map +1 -0
  287. package/dist/oasb/harness/types.js +3 -0
  288. package/dist/oasb/harness/types.js.map +1 -0
  289. package/dist/plugins/core.d.ts +109 -0
  290. package/dist/plugins/core.d.ts.map +1 -0
  291. package/dist/plugins/core.js +30 -0
  292. package/dist/plugins/core.js.map +1 -0
  293. package/dist/plugins/credvault.d.ts +22 -0
  294. package/dist/plugins/credvault.d.ts.map +1 -0
  295. package/dist/plugins/credvault.js +374 -0
  296. package/dist/plugins/credvault.js.map +1 -0
  297. package/dist/plugins/signcrypt.d.ts +27 -0
  298. package/dist/plugins/signcrypt.d.ts.map +1 -0
  299. package/dist/plugins/signcrypt.js +317 -0
  300. package/dist/plugins/signcrypt.js.map +1 -0
  301. package/dist/plugins/skillguard.d.ts +25 -0
  302. package/dist/plugins/skillguard.d.ts.map +1 -0
  303. package/dist/plugins/skillguard.js +346 -0
  304. package/dist/plugins/skillguard.js.map +1 -0
  305. package/dist/registry/client.d.ts +125 -0
  306. package/dist/registry/client.d.ts.map +1 -0
  307. package/dist/registry/client.js +308 -0
  308. package/dist/registry/client.js.map +1 -0
  309. package/dist/registry/contribution.d.ts +178 -0
  310. package/dist/registry/contribution.d.ts.map +1 -0
  311. package/dist/registry/contribution.js +272 -0
  312. package/dist/registry/contribution.js.map +1 -0
  313. package/dist/registry/index.d.ts +3 -0
  314. package/dist/registry/index.d.ts.map +1 -0
  315. package/dist/registry/index.js +10 -0
  316. package/dist/registry/index.js.map +1 -0
  317. package/dist/scanner/external-scanner.d.ts +13 -0
  318. package/dist/scanner/external-scanner.d.ts.map +1 -0
  319. package/dist/scanner/external-scanner.js +299 -0
  320. package/dist/scanner/external-scanner.js.map +1 -0
  321. package/dist/scanner/index.d.ts +6 -0
  322. package/dist/scanner/index.d.ts.map +1 -0
  323. package/dist/scanner/index.js +9 -0
  324. package/dist/scanner/index.js.map +1 -0
  325. package/dist/scanner/types.d.ts +32 -0
  326. package/dist/scanner/types.d.ts.map +1 -0
  327. package/dist/scanner/types.js +6 -0
  328. package/dist/scanner/types.js.map +1 -0
  329. package/dist/semantic/deep-scan.d.ts +13 -0
  330. package/dist/semantic/deep-scan.d.ts.map +1 -0
  331. package/dist/semantic/deep-scan.js +63 -0
  332. package/dist/semantic/deep-scan.js.map +1 -0
  333. package/dist/semantic/index.d.ts +17 -0
  334. package/dist/semantic/index.d.ts.map +1 -0
  335. package/dist/semantic/index.js +39 -0
  336. package/dist/semantic/index.js.map +1 -0
  337. package/dist/semantic/integration/cost-estimator.d.ts +17 -0
  338. package/dist/semantic/integration/cost-estimator.d.ts.map +1 -0
  339. package/dist/semantic/integration/cost-estimator.js +54 -0
  340. package/dist/semantic/integration/cost-estimator.js.map +1 -0
  341. package/dist/semantic/integration/finding-adapter.d.ts +34 -0
  342. package/dist/semantic/integration/finding-adapter.d.ts.map +1 -0
  343. package/dist/semantic/integration/finding-adapter.js +41 -0
  344. package/dist/semantic/integration/finding-adapter.js.map +1 -0
  345. package/dist/semantic/integration/oasb-upgrader.d.ts +20 -0
  346. package/dist/semantic/integration/oasb-upgrader.d.ts.map +1 -0
  347. package/dist/semantic/integration/oasb-upgrader.js +47 -0
  348. package/dist/semantic/integration/oasb-upgrader.js.map +1 -0
  349. package/dist/semantic/llm/budget.d.ts +50 -0
  350. package/dist/semantic/llm/budget.d.ts.map +1 -0
  351. package/dist/semantic/llm/budget.js +139 -0
  352. package/dist/semantic/llm/budget.js.map +1 -0
  353. package/dist/semantic/llm/cache.d.ts +36 -0
  354. package/dist/semantic/llm/cache.d.ts.map +1 -0
  355. package/dist/semantic/llm/cache.js +103 -0
  356. package/dist/semantic/llm/cache.js.map +1 -0
  357. package/dist/semantic/llm/client.d.ts +49 -0
  358. package/dist/semantic/llm/client.d.ts.map +1 -0
  359. package/dist/semantic/llm/client.js +64 -0
  360. package/dist/semantic/llm/client.js.map +1 -0
  361. package/dist/semantic/llm/index.d.ts +33 -0
  362. package/dist/semantic/llm/index.d.ts.map +1 -0
  363. package/dist/semantic/llm/index.js +129 -0
  364. package/dist/semantic/llm/index.js.map +1 -0
  365. package/dist/semantic/llm/prompts.d.ts +30 -0
  366. package/dist/semantic/llm/prompts.d.ts.map +1 -0
  367. package/dist/semantic/llm/prompts.js +120 -0
  368. package/dist/semantic/llm/prompts.js.map +1 -0
  369. package/dist/semantic/structural/credential-context.d.ts +14 -0
  370. package/dist/semantic/structural/credential-context.d.ts.map +1 -0
  371. package/dist/semantic/structural/credential-context.js +295 -0
  372. package/dist/semantic/structural/credential-context.js.map +1 -0
  373. package/dist/semantic/structural/index.d.ts +28 -0
  374. package/dist/semantic/structural/index.d.ts.map +1 -0
  375. package/dist/semantic/structural/index.js +138 -0
  376. package/dist/semantic/structural/index.js.map +1 -0
  377. package/dist/semantic/structural/instruction.d.ts +19 -0
  378. package/dist/semantic/structural/instruction.d.ts.map +1 -0
  379. package/dist/semantic/structural/instruction.js +167 -0
  380. package/dist/semantic/structural/instruction.js.map +1 -0
  381. package/dist/semantic/structural/mcp-config.d.ts +22 -0
  382. package/dist/semantic/structural/mcp-config.d.ts.map +1 -0
  383. package/dist/semantic/structural/mcp-config.js +294 -0
  384. package/dist/semantic/structural/mcp-config.js.map +1 -0
  385. package/dist/semantic/structural/permission-model.d.ts +16 -0
  386. package/dist/semantic/structural/permission-model.d.ts.map +1 -0
  387. package/dist/semantic/structural/permission-model.js +121 -0
  388. package/dist/semantic/structural/permission-model.js.map +1 -0
  389. package/dist/semantic/types.d.ts +122 -0
  390. package/dist/semantic/types.d.ts.map +1 -0
  391. package/dist/semantic/types.js +10 -0
  392. package/dist/semantic/types.js.map +1 -0
  393. package/package.json +25 -14
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.EventEngine = void 0;
37
+ const crypto = __importStar(require("crypto"));
38
+ const SEVERITY_ORDER = ['info', 'low', 'medium', 'high', 'critical'];
39
+ function severityGte(a, b) {
40
+ return SEVERITY_ORDER.indexOf(a) >= SEVERITY_ORDER.indexOf(b);
41
+ }
42
+ /**
43
+ * Central event bus — receives events from monitors, evaluates rules,
44
+ * decides enforcement actions. The "brain" between monitors and enforcement.
45
+ */
46
+ class EventEngine {
47
+ constructor(config) {
48
+ this.handlers = [];
49
+ this.enforcementHandlers = [];
50
+ this.eventBuffer = [];
51
+ this.maxBufferSize = 10000;
52
+ this.rules = config.rules ?? defaultRules();
53
+ }
54
+ /** Register a handler for all events (for logging, reporting, etc.) */
55
+ onEvent(handler) {
56
+ this.handlers.push(handler);
57
+ }
58
+ /** Register a handler for enforcement actions */
59
+ onEnforcement(handler) {
60
+ this.enforcementHandlers.push(handler);
61
+ }
62
+ /** Emit an event from a monitor — evaluates rules and triggers actions */
63
+ async emit(event) {
64
+ const fullEvent = {
65
+ ...event,
66
+ id: crypto.randomUUID(),
67
+ timestamp: new Date().toISOString(),
68
+ classifiedBy: 'L0-rules',
69
+ };
70
+ // Buffer for threshold rules
71
+ this.eventBuffer.push(fullEvent);
72
+ if (this.eventBuffer.length > this.maxBufferSize) {
73
+ this.eventBuffer = this.eventBuffer.slice(-this.maxBufferSize / 2);
74
+ }
75
+ // Notify all event handlers
76
+ for (const handler of this.handlers) {
77
+ try {
78
+ await handler(fullEvent);
79
+ }
80
+ catch {
81
+ // Handler errors don't block the pipeline
82
+ }
83
+ }
84
+ // Evaluate rules
85
+ const matchedRules = this.evaluateRules(fullEvent);
86
+ for (const rule of matchedRules) {
87
+ // If rule requires LLM confirmation, emit a pending-confirmation event
88
+ // and skip immediate enforcement (L2 will handle it later)
89
+ if (rule.requireLlmConfirmation) {
90
+ fullEvent.data._pendingConfirmation = true;
91
+ fullEvent.data._pendingAction = rule.action;
92
+ fullEvent.data._pendingRule = rule.name;
93
+ continue;
94
+ }
95
+ const result = {
96
+ action: rule.action,
97
+ success: true,
98
+ reason: `Rule "${rule.name}" matched: ${fullEvent.description}`,
99
+ event: fullEvent,
100
+ };
101
+ for (const handler of this.enforcementHandlers) {
102
+ try {
103
+ await handler(result);
104
+ }
105
+ catch {
106
+ // Enforcement handler errors don't block
107
+ }
108
+ }
109
+ }
110
+ return fullEvent;
111
+ }
112
+ /** Update an event's classification (called by L1/L2 after re-analysis) */
113
+ reclassify(event, newCategory, newSeverity, classifiedBy) {
114
+ event.category = newCategory;
115
+ event.severity = newSeverity;
116
+ event.classifiedBy = classifiedBy;
117
+ return event;
118
+ }
119
+ /** Get recent events matching criteria (for threshold evaluation) */
120
+ getRecentEvents(windowMs, source) {
121
+ const cutoff = Date.now() - windowMs;
122
+ return this.eventBuffer.filter((e) => {
123
+ const eventTime = new Date(e.timestamp).getTime();
124
+ if (eventTime < cutoff)
125
+ return false;
126
+ if (source && e.source !== source)
127
+ return false;
128
+ return true;
129
+ });
130
+ }
131
+ evaluateRules(event) {
132
+ const matched = [];
133
+ for (const rule of this.rules) {
134
+ if (this.ruleMatches(rule, event)) {
135
+ matched.push(rule);
136
+ }
137
+ }
138
+ return matched;
139
+ }
140
+ ruleMatches(rule, event) {
141
+ const c = rule.condition;
142
+ if (c.source && c.source !== event.source)
143
+ return false;
144
+ if (c.category && c.category !== event.category)
145
+ return false;
146
+ if (c.minSeverity && !severityGte(event.severity, c.minSeverity))
147
+ return false;
148
+ // Field matching
149
+ if (c.fieldMatch) {
150
+ for (const [key, pattern] of Object.entries(c.fieldMatch)) {
151
+ const value = getNestedValue(event, key);
152
+ if (value === undefined)
153
+ return false;
154
+ if (!matchPattern(String(value), pattern))
155
+ return false;
156
+ }
157
+ }
158
+ // Threshold
159
+ if (c.threshold) {
160
+ const recent = this.getRecentEvents(c.threshold.windowMs, c.source);
161
+ if (recent.length < c.threshold.count)
162
+ return false;
163
+ }
164
+ return true;
165
+ }
166
+ }
167
+ exports.EventEngine = EventEngine;
168
+ function getNestedValue(obj, path) {
169
+ const parts = path.split('.');
170
+ let current = obj;
171
+ for (const part of parts) {
172
+ if (current === null || current === undefined || typeof current !== 'object')
173
+ return undefined;
174
+ current = current[part];
175
+ }
176
+ return current;
177
+ }
178
+ function matchPattern(value, pattern) {
179
+ // Simple glob matching: * matches any sequence
180
+ const regex = new RegExp('^' + pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&').replace(/\\\*/g, '.*') + '$');
181
+ return regex.test(value);
182
+ }
183
+ /** Default rules — sensible security defaults */
184
+ function defaultRules() {
185
+ return [
186
+ {
187
+ name: 'critical-threat',
188
+ condition: { category: 'threat', minSeverity: 'critical' },
189
+ action: 'kill',
190
+ requireLlmConfirmation: true,
191
+ },
192
+ {
193
+ name: 'high-violation',
194
+ condition: { category: 'violation', minSeverity: 'high' },
195
+ action: 'alert',
196
+ },
197
+ {
198
+ name: 'anomaly-burst',
199
+ condition: {
200
+ category: 'anomaly',
201
+ threshold: { count: 10, windowMs: 60000 },
202
+ },
203
+ action: 'alert',
204
+ requireLlmConfirmation: true,
205
+ },
206
+ // AI-layer default rules
207
+ {
208
+ name: 'prompt-injection-detected',
209
+ condition: { source: 'prompt', category: 'threat', minSeverity: 'high' },
210
+ action: 'alert',
211
+ },
212
+ {
213
+ name: 'credential-leak-detected',
214
+ condition: {
215
+ source: 'prompt',
216
+ category: 'threat',
217
+ fieldMatch: { 'data.patternId': 'OL-001' },
218
+ },
219
+ action: 'alert',
220
+ },
221
+ {
222
+ name: 'mcp-exploitation-detected',
223
+ condition: { source: 'mcp-protocol', category: 'threat', minSeverity: 'high' },
224
+ action: 'alert',
225
+ },
226
+ {
227
+ name: 'a2a-spoofing-detected',
228
+ condition: { source: 'a2a-protocol', category: 'threat', minSeverity: 'high' },
229
+ action: 'alert',
230
+ },
231
+ ];
232
+ }
233
+ //# sourceMappingURL=event-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-engine.js","sourceRoot":"","sources":["../../../src/arp/engine/event-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ export declare const VERSION = "0.2.0";
2
+ export type { ARPConfig, ARPEvent, MonitorType, EventCategory, EventSeverity, LLMAdapter, LLMAdapterType, LLMAssessment, LLMResponse, IntelligenceConfig, BudgetState, AlertRule, AlertCondition, MonitorConfig, InterceptorConfig, AILayerConfig, ProxyConfig, ProxyUpstream, EnforcementAction, EnforcementResult, Monitor, } from './types';
3
+ export { EventEngine } from './engine/event-engine';
4
+ export { IntelligenceCoordinator } from './intelligence/coordinator';
5
+ export { BudgetController } from './intelligence/budget';
6
+ export { AnomalyDetector } from './intelligence/anomaly';
7
+ export { AnthropicAdapter, OpenAIAdapter, OllamaAdapter, createAdapter, autoDetectAdapter } from './intelligence/adapters';
8
+ export { ProcessMonitor } from './monitors/process';
9
+ export { NetworkMonitor } from './monitors/network';
10
+ export { FilesystemMonitor } from './monitors/filesystem';
11
+ export { ProcessInterceptor } from './interceptors/process';
12
+ export { NetworkInterceptor } from './interceptors/network';
13
+ export { FilesystemInterceptor } from './interceptors/filesystem';
14
+ export { PromptInterceptor } from './interceptors/prompt';
15
+ export { MCPProtocolInterceptor } from './interceptors/mcp-protocol';
16
+ export { A2AProtocolInterceptor } from './interceptors/a2a-protocol';
17
+ export { EnforcementEngine, type AlertCallback } from './enforcement/kill-switch';
18
+ export { LocalLogger } from './reporting/local-log';
19
+ export { loadConfig, defaultConfig } from './config/loader';
20
+ export { scanText, PATTERN_SETS, ALL_PATTERNS, type ThreatPattern, type ScanResult } from './patterns/ai-threats';
21
+ export { ARPProxy, type ARPProxyDeps } from './proxy/server';
22
+ export { checkLicense, hasFeature, registerLicenseValidator, PREMIUM_FEATURES, type LicenseTier, type LicenseInfo, } from './license';
23
+ import type { ARPConfig, ARPEvent } from './types';
24
+ import { EventEngine } from './engine/event-engine';
25
+ import { IntelligenceCoordinator } from './intelligence/coordinator';
26
+ import { EnforcementEngine, type AlertCallback } from './enforcement/kill-switch';
27
+ /**
28
+ * Agent Runtime Protection — the main entry point.
29
+ *
30
+ * Provides 3-layer intelligent monitoring for AI agents:
31
+ * - L0: Rule-based event classification (free, every event)
32
+ * - L1: Statistical anomaly detection (free, flagged events)
33
+ * - L2: LLM-assisted assessment (micro-prompts, budget-controlled)
34
+ *
35
+ * Usage:
36
+ * const arp = new AgentRuntimeProtection({ agentName: 'my-agent' });
37
+ * await arp.start();
38
+ * // ... agent runs ...
39
+ * await arp.stop();
40
+ */
41
+ export declare class AgentRuntimeProtection {
42
+ private readonly config;
43
+ private readonly engine;
44
+ private readonly intelligence;
45
+ private readonly enforcement;
46
+ private readonly logger;
47
+ private readonly monitors;
48
+ private running;
49
+ constructor(configOrPath?: ARPConfig | string);
50
+ /** Start all monitors */
51
+ start(): Promise<void>;
52
+ /** Stop all monitors and flush logs */
53
+ stop(): Promise<void>;
54
+ /** Check if ARP is running */
55
+ isRunning(): boolean;
56
+ /** Get current status */
57
+ getStatus(): {
58
+ running: boolean;
59
+ monitors: Array<{
60
+ type: string;
61
+ running: boolean;
62
+ }>;
63
+ budget: ReturnType<IntelligenceCoordinator['getBudgetStatus']>;
64
+ pausedPids: number[];
65
+ };
66
+ /** Get recent events */
67
+ getEvents(limit?: number): ARPEvent[];
68
+ /** Resume a paused process */
69
+ resume(pid: number): boolean;
70
+ /** Subscribe to all ARP events (for external integrations, test harnesses, etc.) */
71
+ onEvent(handler: (event: ARPEvent) => void | Promise<void>): void;
72
+ /** Subscribe to all enforcement results */
73
+ onEnforcement(handler: (result: import('./types').EnforcementResult) => void | Promise<void>): void;
74
+ /** Set the alert callback for the enforcement engine */
75
+ setAlertCallback(callback: AlertCallback): void;
76
+ /** Get the event engine (for custom integrations) */
77
+ getEngine(): EventEngine;
78
+ /** Get the enforcement engine (for test harnesses) */
79
+ getEnforcement(): EnforcementEngine;
80
+ }
81
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/arp/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.AgentRuntimeProtection = exports.PREMIUM_FEATURES = exports.registerLicenseValidator = exports.hasFeature = exports.checkLicense = exports.ARPProxy = exports.ALL_PATTERNS = exports.PATTERN_SETS = exports.scanText = exports.defaultConfig = exports.loadConfig = exports.LocalLogger = exports.EnforcementEngine = exports.A2AProtocolInterceptor = exports.MCPProtocolInterceptor = exports.PromptInterceptor = exports.FilesystemInterceptor = exports.NetworkInterceptor = exports.ProcessInterceptor = exports.FilesystemMonitor = exports.NetworkMonitor = exports.ProcessMonitor = exports.autoDetectAdapter = exports.createAdapter = exports.OllamaAdapter = exports.OpenAIAdapter = exports.AnthropicAdapter = exports.AnomalyDetector = exports.BudgetController = exports.IntelligenceCoordinator = exports.EventEngine = exports.VERSION = void 0;
37
+ exports.VERSION = '0.2.0';
38
+ // Re-export components
39
+ var event_engine_1 = require("./engine/event-engine");
40
+ Object.defineProperty(exports, "EventEngine", { enumerable: true, get: function () { return event_engine_1.EventEngine; } });
41
+ var coordinator_1 = require("./intelligence/coordinator");
42
+ Object.defineProperty(exports, "IntelligenceCoordinator", { enumerable: true, get: function () { return coordinator_1.IntelligenceCoordinator; } });
43
+ var budget_1 = require("./intelligence/budget");
44
+ Object.defineProperty(exports, "BudgetController", { enumerable: true, get: function () { return budget_1.BudgetController; } });
45
+ var anomaly_1 = require("./intelligence/anomaly");
46
+ Object.defineProperty(exports, "AnomalyDetector", { enumerable: true, get: function () { return anomaly_1.AnomalyDetector; } });
47
+ var adapters_1 = require("./intelligence/adapters");
48
+ Object.defineProperty(exports, "AnthropicAdapter", { enumerable: true, get: function () { return adapters_1.AnthropicAdapter; } });
49
+ Object.defineProperty(exports, "OpenAIAdapter", { enumerable: true, get: function () { return adapters_1.OpenAIAdapter; } });
50
+ Object.defineProperty(exports, "OllamaAdapter", { enumerable: true, get: function () { return adapters_1.OllamaAdapter; } });
51
+ Object.defineProperty(exports, "createAdapter", { enumerable: true, get: function () { return adapters_1.createAdapter; } });
52
+ Object.defineProperty(exports, "autoDetectAdapter", { enumerable: true, get: function () { return adapters_1.autoDetectAdapter; } });
53
+ var process_1 = require("./monitors/process");
54
+ Object.defineProperty(exports, "ProcessMonitor", { enumerable: true, get: function () { return process_1.ProcessMonitor; } });
55
+ var network_1 = require("./monitors/network");
56
+ Object.defineProperty(exports, "NetworkMonitor", { enumerable: true, get: function () { return network_1.NetworkMonitor; } });
57
+ var filesystem_1 = require("./monitors/filesystem");
58
+ Object.defineProperty(exports, "FilesystemMonitor", { enumerable: true, get: function () { return filesystem_1.FilesystemMonitor; } });
59
+ var process_2 = require("./interceptors/process");
60
+ Object.defineProperty(exports, "ProcessInterceptor", { enumerable: true, get: function () { return process_2.ProcessInterceptor; } });
61
+ var network_2 = require("./interceptors/network");
62
+ Object.defineProperty(exports, "NetworkInterceptor", { enumerable: true, get: function () { return network_2.NetworkInterceptor; } });
63
+ var filesystem_2 = require("./interceptors/filesystem");
64
+ Object.defineProperty(exports, "FilesystemInterceptor", { enumerable: true, get: function () { return filesystem_2.FilesystemInterceptor; } });
65
+ var prompt_1 = require("./interceptors/prompt");
66
+ Object.defineProperty(exports, "PromptInterceptor", { enumerable: true, get: function () { return prompt_1.PromptInterceptor; } });
67
+ var mcp_protocol_1 = require("./interceptors/mcp-protocol");
68
+ Object.defineProperty(exports, "MCPProtocolInterceptor", { enumerable: true, get: function () { return mcp_protocol_1.MCPProtocolInterceptor; } });
69
+ var a2a_protocol_1 = require("./interceptors/a2a-protocol");
70
+ Object.defineProperty(exports, "A2AProtocolInterceptor", { enumerable: true, get: function () { return a2a_protocol_1.A2AProtocolInterceptor; } });
71
+ var kill_switch_1 = require("./enforcement/kill-switch");
72
+ Object.defineProperty(exports, "EnforcementEngine", { enumerable: true, get: function () { return kill_switch_1.EnforcementEngine; } });
73
+ var local_log_1 = require("./reporting/local-log");
74
+ Object.defineProperty(exports, "LocalLogger", { enumerable: true, get: function () { return local_log_1.LocalLogger; } });
75
+ var loader_1 = require("./config/loader");
76
+ Object.defineProperty(exports, "loadConfig", { enumerable: true, get: function () { return loader_1.loadConfig; } });
77
+ Object.defineProperty(exports, "defaultConfig", { enumerable: true, get: function () { return loader_1.defaultConfig; } });
78
+ var ai_threats_1 = require("./patterns/ai-threats");
79
+ Object.defineProperty(exports, "scanText", { enumerable: true, get: function () { return ai_threats_1.scanText; } });
80
+ Object.defineProperty(exports, "PATTERN_SETS", { enumerable: true, get: function () { return ai_threats_1.PATTERN_SETS; } });
81
+ Object.defineProperty(exports, "ALL_PATTERNS", { enumerable: true, get: function () { return ai_threats_1.ALL_PATTERNS; } });
82
+ var server_1 = require("./proxy/server");
83
+ Object.defineProperty(exports, "ARPProxy", { enumerable: true, get: function () { return server_1.ARPProxy; } });
84
+ var license_1 = require("./license");
85
+ Object.defineProperty(exports, "checkLicense", { enumerable: true, get: function () { return license_1.checkLicense; } });
86
+ Object.defineProperty(exports, "hasFeature", { enumerable: true, get: function () { return license_1.hasFeature; } });
87
+ Object.defineProperty(exports, "registerLicenseValidator", { enumerable: true, get: function () { return license_1.registerLicenseValidator; } });
88
+ Object.defineProperty(exports, "PREMIUM_FEATURES", { enumerable: true, get: function () { return license_1.PREMIUM_FEATURES; } });
89
+ const path = __importStar(require("path"));
90
+ const event_engine_2 = require("./engine/event-engine");
91
+ const coordinator_2 = require("./intelligence/coordinator");
92
+ const kill_switch_2 = require("./enforcement/kill-switch");
93
+ const local_log_2 = require("./reporting/local-log");
94
+ const process_3 = require("./monitors/process");
95
+ const network_3 = require("./monitors/network");
96
+ const filesystem_3 = require("./monitors/filesystem");
97
+ const process_4 = require("./interceptors/process");
98
+ const network_4 = require("./interceptors/network");
99
+ const filesystem_4 = require("./interceptors/filesystem");
100
+ const prompt_2 = require("./interceptors/prompt");
101
+ const mcp_protocol_2 = require("./interceptors/mcp-protocol");
102
+ const a2a_protocol_2 = require("./interceptors/a2a-protocol");
103
+ const loader_2 = require("./config/loader");
104
+ /**
105
+ * Agent Runtime Protection — the main entry point.
106
+ *
107
+ * Provides 3-layer intelligent monitoring for AI agents:
108
+ * - L0: Rule-based event classification (free, every event)
109
+ * - L1: Statistical anomaly detection (free, flagged events)
110
+ * - L2: LLM-assisted assessment (micro-prompts, budget-controlled)
111
+ *
112
+ * Usage:
113
+ * const arp = new AgentRuntimeProtection({ agentName: 'my-agent' });
114
+ * await arp.start();
115
+ * // ... agent runs ...
116
+ * await arp.stop();
117
+ */
118
+ class AgentRuntimeProtection {
119
+ constructor(configOrPath) {
120
+ this.monitors = [];
121
+ this.running = false;
122
+ if (typeof configOrPath === 'string') {
123
+ this.config = (0, loader_2.loadConfig)(configOrPath);
124
+ }
125
+ else {
126
+ this.config = configOrPath ?? (0, loader_2.loadConfig)();
127
+ }
128
+ const dataDir = this.config.dataDir ?? path.join(process.cwd(), '.opena2a', 'arp');
129
+ this.engine = new event_engine_2.EventEngine(this.config);
130
+ this.intelligence = new coordinator_2.IntelligenceCoordinator(this.config, dataDir);
131
+ this.enforcement = new kill_switch_2.EnforcementEngine();
132
+ this.logger = new local_log_2.LocalLogger(dataDir);
133
+ // Wire up: events → intelligence → logger
134
+ this.engine.onEvent(async (event) => {
135
+ await this.intelligence.analyze(event);
136
+ this.logger.logEvent(event);
137
+ });
138
+ // Wire up: enforcement → logger
139
+ this.engine.onEnforcement(async (result) => {
140
+ const enforced = await this.enforcement.execute(result.action, result.event);
141
+ this.logger.logEnforcement(enforced);
142
+ });
143
+ // Create monitors based on config
144
+ const mc = this.config.monitors;
145
+ if (mc?.process?.enabled !== false) {
146
+ this.monitors.push(new process_3.ProcessMonitor(this.engine, mc?.process?.intervalMs));
147
+ }
148
+ if (mc?.network?.enabled !== false) {
149
+ this.monitors.push(new network_3.NetworkMonitor(this.engine, mc?.network?.intervalMs, mc?.network?.allowedHosts));
150
+ }
151
+ if (mc?.filesystem?.enabled !== false) {
152
+ this.monitors.push(new filesystem_3.FilesystemMonitor(this.engine, mc?.filesystem?.watchPaths, mc?.filesystem?.allowedPaths));
153
+ }
154
+ // Create interceptors (application-level hooks — zero latency, 100% accuracy)
155
+ const ic = this.config.interceptors;
156
+ if (ic?.process?.enabled) {
157
+ this.monitors.push(new process_4.ProcessInterceptor(this.engine));
158
+ }
159
+ if (ic?.network?.enabled) {
160
+ this.monitors.push(new network_4.NetworkInterceptor(this.engine, ic.network.allowedHosts));
161
+ }
162
+ if (ic?.filesystem?.enabled) {
163
+ this.monitors.push(new filesystem_4.FilesystemInterceptor(this.engine, ic.filesystem.allowedPaths, [dataDir]));
164
+ }
165
+ // Create AI-layer interceptors
166
+ const al = this.config.aiLayer;
167
+ if (al?.prompt?.enabled) {
168
+ this.monitors.push(new prompt_2.PromptInterceptor(this.engine));
169
+ }
170
+ if (al?.mcp?.enabled) {
171
+ this.monitors.push(new mcp_protocol_2.MCPProtocolInterceptor(this.engine, al.mcp.allowedTools));
172
+ }
173
+ if (al?.a2a?.enabled) {
174
+ this.monitors.push(new a2a_protocol_2.A2AProtocolInterceptor(this.engine, al.a2a.trustedAgents));
175
+ }
176
+ }
177
+ /** Start all monitors */
178
+ async start() {
179
+ if (this.running)
180
+ return;
181
+ for (const monitor of this.monitors) {
182
+ await monitor.start();
183
+ }
184
+ this.running = true;
185
+ }
186
+ /** Stop all monitors and flush logs */
187
+ async stop() {
188
+ if (!this.running)
189
+ return;
190
+ for (const monitor of this.monitors) {
191
+ await monitor.stop();
192
+ }
193
+ await this.intelligence.stop();
194
+ this.running = false;
195
+ }
196
+ /** Check if ARP is running */
197
+ isRunning() {
198
+ return this.running;
199
+ }
200
+ /** Get current status */
201
+ getStatus() {
202
+ return {
203
+ running: this.running,
204
+ monitors: this.monitors.map((m) => ({ type: m.type, running: m.isRunning() })),
205
+ budget: this.intelligence.getBudgetStatus(),
206
+ pausedPids: this.enforcement.getPausedPids(),
207
+ };
208
+ }
209
+ /** Get recent events */
210
+ getEvents(limit) {
211
+ return this.logger.readEvents(limit);
212
+ }
213
+ /** Resume a paused process */
214
+ resume(pid) {
215
+ return this.enforcement.resume(pid);
216
+ }
217
+ /** Subscribe to all ARP events (for external integrations, test harnesses, etc.) */
218
+ onEvent(handler) {
219
+ this.engine.onEvent(handler);
220
+ }
221
+ /** Subscribe to all enforcement results */
222
+ onEnforcement(handler) {
223
+ this.engine.onEnforcement(handler);
224
+ }
225
+ /** Set the alert callback for the enforcement engine */
226
+ setAlertCallback(callback) {
227
+ this.enforcement.setAlertCallback(callback);
228
+ }
229
+ /** Get the event engine (for custom integrations) */
230
+ getEngine() {
231
+ return this.engine;
232
+ }
233
+ /** Get the enforcement engine (for test harnesses) */
234
+ getEnforcement() {
235
+ return this.enforcement;
236
+ }
237
+ }
238
+ exports.AgentRuntimeProtection = AgentRuntimeProtection;
239
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/arp/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { LLMAdapter, LLMResponse, LLMAdapterType } from '../types';
2
+ /**
3
+ * Anthropic adapter — uses Messages API with Haiku for cheapest assessments.
4
+ * Reads ANTHROPIC_API_KEY from environment.
5
+ */
6
+ export declare class AnthropicAdapter implements LLMAdapter {
7
+ readonly name = "anthropic";
8
+ private readonly model;
9
+ private readonly apiKey;
10
+ constructor(config?: Record<string, unknown>);
11
+ assess(prompt: string, maxTokens: number): Promise<LLMResponse>;
12
+ estimateCost(inputTokens: number, outputTokens: number): number;
13
+ healthCheck(): Promise<boolean>;
14
+ }
15
+ /**
16
+ * OpenAI adapter — uses Chat Completions API with gpt-4o-mini for cheapest assessments.
17
+ * Reads OPENAI_API_KEY from environment.
18
+ */
19
+ export declare class OpenAIAdapter implements LLMAdapter {
20
+ readonly name = "openai";
21
+ private readonly model;
22
+ private readonly apiKey;
23
+ constructor(config?: Record<string, unknown>);
24
+ assess(prompt: string, maxTokens: number): Promise<LLMResponse>;
25
+ estimateCost(inputTokens: number, outputTokens: number): number;
26
+ healthCheck(): Promise<boolean>;
27
+ }
28
+ /**
29
+ * Ollama adapter — uses local Ollama server for zero-cost assessments.
30
+ * No API key needed. Requires Ollama running locally.
31
+ */
32
+ export declare class OllamaAdapter implements LLMAdapter {
33
+ readonly name = "ollama";
34
+ private readonly model;
35
+ private readonly host;
36
+ constructor(config?: Record<string, unknown>);
37
+ assess(prompt: string, maxTokens: number): Promise<LLMResponse>;
38
+ estimateCost(): number;
39
+ healthCheck(): Promise<boolean>;
40
+ }
41
+ /** Create an adapter from config */
42
+ export declare function createAdapter(type: LLMAdapterType, config?: Record<string, unknown>): LLMAdapter;
43
+ /** Auto-detect the best available adapter */
44
+ export declare function autoDetectAdapter(config?: Record<string, unknown>): LLMAdapter;
45
+ //# sourceMappingURL=adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../../src/arp/intelligence/adapters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAGxE;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,UAAU;IACjD,QAAQ,CAAC,IAAI,eAAe;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKtC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAsBrE,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAKzD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAGtC;AAED;;;GAGG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC9C,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKtC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAqBrE,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAKzD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAGtC;AAED;;;GAGG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC9C,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAElB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKtC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA2BrE,YAAY,IAAI,MAAM;IAIhB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAStC;AAED,oCAAoC;AACpC,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAahG;AAED,6CAA6C;AAC7C,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAE9E"}