shield360 1.1.0 → 1.2.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 (393) hide show
  1. package/README.md +330 -3
  2. package/dist/__tests__/build-info.test.js +8 -1
  3. package/dist/__tests__/build-info.test.js.map +1 -1
  4. package/dist/__tests__/code-location.test.js +1 -1
  5. package/dist/__tests__/masking.test.d.ts +1 -0
  6. package/dist/__tests__/masking.test.js +66 -0
  7. package/dist/__tests__/masking.test.js.map +1 -0
  8. package/dist/__tests__/register.e2e.test.d.ts +1 -0
  9. package/dist/__tests__/register.e2e.test.js +264 -0
  10. package/dist/__tests__/register.e2e.test.js.map +1 -0
  11. package/dist/__tests__/register.test.js +60 -0
  12. package/dist/__tests__/register.test.js.map +1 -1
  13. package/dist/agents/__tests__/agents.test.d.ts +1 -0
  14. package/dist/agents/__tests__/agents.test.js +529 -0
  15. package/dist/agents/__tests__/agents.test.js.map +1 -0
  16. package/dist/agents/index.d.ts +15 -0
  17. package/dist/agents/index.js +25 -0
  18. package/dist/agents/index.js.map +1 -0
  19. package/dist/agents/passport.d.ts +92 -0
  20. package/dist/agents/passport.js +301 -0
  21. package/dist/agents/passport.js.map +1 -0
  22. package/dist/agents/policy.d.ts +24 -0
  23. package/dist/agents/policy.js +93 -0
  24. package/dist/agents/policy.js.map +1 -0
  25. package/dist/agents/replay.d.ts +20 -0
  26. package/dist/agents/replay.js +47 -0
  27. package/dist/agents/replay.js.map +1 -0
  28. package/dist/agents/report.d.ts +30 -0
  29. package/dist/agents/report.js +93 -0
  30. package/dist/agents/report.js.map +1 -0
  31. package/dist/agents/types.d.ts +148 -0
  32. package/dist/agents/types.js +37 -0
  33. package/dist/agents/types.js.map +1 -0
  34. package/dist/agents/verifier.d.ts +33 -0
  35. package/dist/agents/verifier.js +276 -0
  36. package/dist/agents/verifier.js.map +1 -0
  37. package/dist/ai-security/__tests__/bench.test.d.ts +1 -0
  38. package/dist/ai-security/__tests__/bench.test.js +50 -0
  39. package/dist/ai-security/__tests__/bench.test.js.map +1 -0
  40. package/dist/ai-security/__tests__/checks.test.d.ts +1 -0
  41. package/dist/ai-security/__tests__/checks.test.js +248 -0
  42. package/dist/ai-security/__tests__/checks.test.js.map +1 -0
  43. package/dist/ai-security/__tests__/config.test.d.ts +1 -0
  44. package/dist/ai-security/__tests__/config.test.js +164 -0
  45. package/dist/ai-security/__tests__/config.test.js.map +1 -0
  46. package/dist/ai-security/__tests__/detection.test.d.ts +1 -0
  47. package/dist/ai-security/__tests__/detection.test.js +114 -0
  48. package/dist/ai-security/__tests__/detection.test.js.map +1 -0
  49. package/dist/ai-security/__tests__/fixtures.d.ts +8 -0
  50. package/dist/ai-security/__tests__/fixtures.js +30 -0
  51. package/dist/ai-security/__tests__/fixtures.js.map +1 -0
  52. package/dist/ai-security/__tests__/hooks.test.d.ts +1 -0
  53. package/dist/ai-security/__tests__/hooks.test.js +174 -0
  54. package/dist/ai-security/__tests__/hooks.test.js.map +1 -0
  55. package/dist/ai-security/__tests__/stream.test.d.ts +1 -0
  56. package/dist/ai-security/__tests__/stream.test.js +85 -0
  57. package/dist/ai-security/__tests__/stream.test.js.map +1 -0
  58. package/dist/ai-security/config.d.ts +94 -0
  59. package/dist/ai-security/config.js +241 -0
  60. package/dist/ai-security/config.js.map +1 -0
  61. package/dist/ai-security/context.d.ts +45 -0
  62. package/dist/ai-security/context.js +108 -0
  63. package/dist/ai-security/context.js.map +1 -0
  64. package/dist/ai-security/custom-kinds.d.ts +23 -0
  65. package/dist/ai-security/custom-kinds.js +97 -0
  66. package/dist/ai-security/custom-kinds.js.map +1 -0
  67. package/dist/ai-security/events.d.ts +77 -0
  68. package/dist/ai-security/events.js +153 -0
  69. package/dist/ai-security/events.js.map +1 -0
  70. package/dist/ai-security/hooks.d.ts +48 -0
  71. package/dist/ai-security/hooks.js +461 -0
  72. package/dist/ai-security/hooks.js.map +1 -0
  73. package/dist/ai-security/index.d.ts +209 -0
  74. package/dist/ai-security/index.js +587 -0
  75. package/dist/ai-security/index.js.map +1 -0
  76. package/dist/ai-security/injection-rules.json +1024 -0
  77. package/dist/ai-security/injection.d.ts +46 -0
  78. package/dist/ai-security/injection.js +635 -0
  79. package/dist/ai-security/injection.js.map +1 -0
  80. package/dist/ai-security/jailbreak.d.ts +38 -0
  81. package/dist/ai-security/jailbreak.js +73 -0
  82. package/dist/ai-security/jailbreak.js.map +1 -0
  83. package/dist/ai-security/limits.d.ts +84 -0
  84. package/dist/ai-security/limits.js +195 -0
  85. package/dist/ai-security/limits.js.map +1 -0
  86. package/dist/ai-security/mcp.d.ts +82 -0
  87. package/dist/ai-security/mcp.js +150 -0
  88. package/dist/ai-security/mcp.js.map +1 -0
  89. package/dist/ai-security/output.d.ts +107 -0
  90. package/dist/ai-security/output.js +390 -0
  91. package/dist/ai-security/output.js.map +1 -0
  92. package/dist/ai-security/policy.d.ts +125 -0
  93. package/dist/ai-security/policy.js +196 -0
  94. package/dist/ai-security/policy.js.map +1 -0
  95. package/dist/ai-security/rag.d.ts +70 -0
  96. package/dist/ai-security/rag.js +174 -0
  97. package/dist/ai-security/rag.js.map +1 -0
  98. package/dist/ai-security/tool-rules.json +203 -0
  99. package/dist/ai-security/tools.d.ts +46 -0
  100. package/dist/ai-security/tools.js +62 -0
  101. package/dist/ai-security/tools.js.map +1 -0
  102. package/dist/budgets/__tests__/budgets.test.d.ts +1 -0
  103. package/dist/budgets/__tests__/budgets.test.js +134 -0
  104. package/dist/budgets/__tests__/budgets.test.js.map +1 -0
  105. package/dist/budgets/auto.d.ts +25 -0
  106. package/dist/budgets/auto.js +63 -0
  107. package/dist/budgets/auto.js.map +1 -0
  108. package/dist/budgets/index.d.ts +110 -0
  109. package/dist/budgets/index.js +239 -0
  110. package/dist/budgets/index.js.map +1 -0
  111. package/dist/customer/__tests__/customer.test.d.ts +1 -0
  112. package/dist/customer/__tests__/customer.test.js +155 -0
  113. package/dist/customer/__tests__/customer.test.js.map +1 -0
  114. package/dist/customer/index.d.ts +48 -0
  115. package/dist/customer/index.js +132 -0
  116. package/dist/customer/index.js.map +1 -0
  117. package/dist/feedback/__tests__/feedback.test.d.ts +1 -0
  118. package/dist/feedback/__tests__/feedback.test.js +80 -0
  119. package/dist/feedback/__tests__/feedback.test.js.map +1 -0
  120. package/dist/feedback/index.d.ts +48 -0
  121. package/dist/feedback/index.js +97 -0
  122. package/dist/feedback/index.js.map +1 -0
  123. package/dist/flags/__tests__/flags.test.d.ts +1 -0
  124. package/dist/flags/__tests__/flags.test.js +301 -0
  125. package/dist/flags/__tests__/flags.test.js.map +1 -0
  126. package/dist/flags/client.d.ts +131 -0
  127. package/dist/flags/client.js +301 -0
  128. package/dist/flags/client.js.map +1 -0
  129. package/dist/flags/engine.d.ts +200 -0
  130. package/dist/flags/engine.js +677 -0
  131. package/dist/flags/engine.js.map +1 -0
  132. package/dist/flags/index.d.ts +4 -0
  133. package/dist/flags/index.js +16 -0
  134. package/dist/flags/index.js.map +1 -0
  135. package/dist/guard/__tests__/findings.test.js +1 -1
  136. package/dist/guard/__tests__/report.test.js +67 -0
  137. package/dist/guard/__tests__/report.test.js.map +1 -1
  138. package/dist/guard/heartbeat.d.ts +34 -0
  139. package/dist/guard/heartbeat.js +83 -0
  140. package/dist/guard/heartbeat.js.map +1 -0
  141. package/dist/guard/integration.d.ts +9 -0
  142. package/dist/guard/integration.js +4 -2
  143. package/dist/guard/integration.js.map +1 -1
  144. package/dist/guard/report.d.ts +24 -1
  145. package/dist/guard/report.js +67 -18
  146. package/dist/guard/report.js.map +1 -1
  147. package/dist/index.d.ts +88 -0
  148. package/dist/index.js +193 -2
  149. package/dist/index.js.map +1 -1
  150. package/dist/instrumentation/__tests__/langchain-wrapper.test.js +1 -1
  151. package/dist/instrumentation/__tests__/langchain-wrapper.test.js.map +1 -1
  152. package/dist/instrumentation/anthropic/wrapper.js +4 -0
  153. package/dist/instrumentation/anthropic/wrapper.js.map +1 -1
  154. package/dist/instrumentation/openai/wrapper.js +6 -0
  155. package/dist/instrumentation/openai/wrapper.js.map +1 -1
  156. package/dist/masking.d.ts +42 -0
  157. package/dist/masking.js +197 -0
  158. package/dist/masking.js.map +1 -0
  159. package/dist/otel/__tests__/app-logs-safety.test.d.ts +1 -0
  160. package/dist/otel/__tests__/app-logs-safety.test.js +129 -0
  161. package/dist/otel/__tests__/app-logs-safety.test.js.map +1 -0
  162. package/dist/otel/__tests__/app-logs.test.d.ts +1 -0
  163. package/dist/otel/__tests__/app-logs.test.js +269 -0
  164. package/dist/otel/__tests__/app-logs.test.js.map +1 -0
  165. package/dist/otel/__tests__/log-auto.test.d.ts +1 -0
  166. package/dist/otel/__tests__/log-auto.test.js +125 -0
  167. package/dist/otel/__tests__/log-auto.test.js.map +1 -0
  168. package/dist/otel/__tests__/log-bridges.test.d.ts +1 -0
  169. package/dist/otel/__tests__/log-bridges.test.js +170 -0
  170. package/dist/otel/__tests__/log-bridges.test.js.map +1 -0
  171. package/dist/otel/__tests__/system-metrics.test.d.ts +1 -0
  172. package/dist/otel/__tests__/system-metrics.test.js +79 -0
  173. package/dist/otel/__tests__/system-metrics.test.js.map +1 -0
  174. package/dist/otel/app-logs.d.ts +80 -0
  175. package/dist/otel/app-logs.js +195 -0
  176. package/dist/otel/app-logs.js.map +1 -0
  177. package/dist/otel/build-info.d.ts +2 -1
  178. package/dist/otel/build-info.js +3 -2
  179. package/dist/otel/build-info.js.map +1 -1
  180. package/dist/otel/events.d.ts +1 -0
  181. package/dist/otel/events.js +21 -12
  182. package/dist/otel/events.js.map +1 -1
  183. package/dist/otel/log-auto.d.ts +44 -0
  184. package/dist/otel/log-auto.js +200 -0
  185. package/dist/otel/log-auto.js.map +1 -0
  186. package/dist/otel/log-bridges.d.ts +54 -0
  187. package/dist/otel/log-bridges.js +307 -0
  188. package/dist/otel/log-bridges.js.map +1 -0
  189. package/dist/otel/system-metrics.d.ts +39 -0
  190. package/dist/otel/system-metrics.js +166 -0
  191. package/dist/otel/system-metrics.js.map +1 -0
  192. package/dist/otel/tracing.js +5 -1
  193. package/dist/otel/tracing.js.map +1 -1
  194. package/dist/protect/__tests__/protect.test.js +4 -0
  195. package/dist/protect/__tests__/protect.test.js.map +1 -1
  196. package/dist/protect/index.js +9 -4
  197. package/dist/protect/index.js.map +1 -1
  198. package/dist/rasp/__tests__/auto-http.test.d.ts +1 -0
  199. package/dist/rasp/__tests__/auto-http.test.js +136 -0
  200. package/dist/rasp/__tests__/auto-http.test.js.map +1 -0
  201. package/dist/rasp/__tests__/baseline.test.d.ts +1 -0
  202. package/dist/rasp/__tests__/baseline.test.js +86 -0
  203. package/dist/rasp/__tests__/baseline.test.js.map +1 -0
  204. package/dist/rasp/__tests__/benign-corpus.test.d.ts +1 -0
  205. package/dist/rasp/__tests__/benign-corpus.test.js +68 -0
  206. package/dist/rasp/__tests__/benign-corpus.test.js.map +1 -0
  207. package/dist/rasp/__tests__/capture-context.test.d.ts +1 -0
  208. package/dist/rasp/__tests__/capture-context.test.js +135 -0
  209. package/dist/rasp/__tests__/capture-context.test.js.map +1 -0
  210. package/dist/rasp/__tests__/code-hook.test.d.ts +1 -0
  211. package/dist/rasp/__tests__/code-hook.test.js +218 -0
  212. package/dist/rasp/__tests__/code-hook.test.js.map +1 -0
  213. package/dist/rasp/__tests__/config-client.test.d.ts +1 -0
  214. package/dist/rasp/__tests__/config-client.test.js +283 -0
  215. package/dist/rasp/__tests__/config-client.test.js.map +1 -0
  216. package/dist/rasp/__tests__/corpus.d.ts +13 -0
  217. package/dist/rasp/__tests__/corpus.js +111 -0
  218. package/dist/rasp/__tests__/corpus.js.map +1 -0
  219. package/dist/rasp/__tests__/custom-rules.test.d.ts +1 -0
  220. package/dist/rasp/__tests__/custom-rules.test.js +276 -0
  221. package/dist/rasp/__tests__/custom-rules.test.js.map +1 -0
  222. package/dist/rasp/__tests__/db-hook.test.d.ts +1 -0
  223. package/dist/rasp/__tests__/db-hook.test.js +438 -0
  224. package/dist/rasp/__tests__/db-hook.test.js.map +1 -0
  225. package/dist/rasp/__tests__/deception.test.d.ts +1 -0
  226. package/dist/rasp/__tests__/deception.test.js +567 -0
  227. package/dist/rasp/__tests__/deception.test.js.map +1 -0
  228. package/dist/rasp/__tests__/detect.test.d.ts +1 -0
  229. package/dist/rasp/__tests__/detect.test.js +276 -0
  230. package/dist/rasp/__tests__/detect.test.js.map +1 -0
  231. package/dist/rasp/__tests__/esm-exports.test.d.ts +1 -0
  232. package/dist/rasp/__tests__/esm-exports.test.js +20 -0
  233. package/dist/rasp/__tests__/esm-exports.test.js.map +1 -0
  234. package/dist/rasp/__tests__/fs-hook.test.d.ts +1 -0
  235. package/dist/rasp/__tests__/fs-hook.test.js +241 -0
  236. package/dist/rasp/__tests__/fs-hook.test.js.map +1 -0
  237. package/dist/rasp/__tests__/hook-contracts.test.d.ts +1 -0
  238. package/dist/rasp/__tests__/hook-contracts.test.js +201 -0
  239. package/dist/rasp/__tests__/hook-contracts.test.js.map +1 -0
  240. package/dist/rasp/__tests__/hook-kit.d.ts +42 -0
  241. package/dist/rasp/__tests__/hook-kit.js +139 -0
  242. package/dist/rasp/__tests__/hook-kit.js.map +1 -0
  243. package/dist/rasp/__tests__/http-hook.test.d.ts +1 -0
  244. package/dist/rasp/__tests__/http-hook.test.js +250 -0
  245. package/dist/rasp/__tests__/http-hook.test.js.map +1 -0
  246. package/dist/rasp/__tests__/iast.test.d.ts +1 -0
  247. package/dist/rasp/__tests__/iast.test.js +361 -0
  248. package/dist/rasp/__tests__/iast.test.js.map +1 -0
  249. package/dist/rasp/__tests__/include-hook.test.d.ts +1 -0
  250. package/dist/rasp/__tests__/include-hook.test.js +122 -0
  251. package/dist/rasp/__tests__/include-hook.test.js.map +1 -0
  252. package/dist/rasp/__tests__/middleware.test.d.ts +1 -0
  253. package/dist/rasp/__tests__/middleware.test.js +302 -0
  254. package/dist/rasp/__tests__/middleware.test.js.map +1 -0
  255. package/dist/rasp/__tests__/process-hook.test.d.ts +1 -0
  256. package/dist/rasp/__tests__/process-hook.test.js +238 -0
  257. package/dist/rasp/__tests__/process-hook.test.js.map +1 -0
  258. package/dist/rasp/__tests__/reporter.test.d.ts +1 -0
  259. package/dist/rasp/__tests__/reporter.test.js +114 -0
  260. package/dist/rasp/__tests__/reporter.test.js.map +1 -0
  261. package/dist/rasp/__tests__/route.test.d.ts +1 -0
  262. package/dist/rasp/__tests__/route.test.js +46 -0
  263. package/dist/rasp/__tests__/route.test.js.map +1 -0
  264. package/dist/rasp/__tests__/rule-expr.test.d.ts +1 -0
  265. package/dist/rasp/__tests__/rule-expr.test.js +151 -0
  266. package/dist/rasp/__tests__/rule-expr.test.js.map +1 -0
  267. package/dist/rasp/__tests__/rule-phases.test.d.ts +1 -0
  268. package/dist/rasp/__tests__/rule-phases.test.js +271 -0
  269. package/dist/rasp/__tests__/rule-phases.test.js.map +1 -0
  270. package/dist/rasp/__tests__/sinks-hook.test.d.ts +1 -0
  271. package/dist/rasp/__tests__/sinks-hook.test.js +177 -0
  272. package/dist/rasp/__tests__/sinks-hook.test.js.map +1 -0
  273. package/dist/rasp/__tests__/targets.test.d.ts +1 -0
  274. package/dist/rasp/__tests__/targets.test.js +82 -0
  275. package/dist/rasp/__tests__/targets.test.js.map +1 -0
  276. package/dist/rasp/__tests__/template-hook.test.d.ts +1 -0
  277. package/dist/rasp/__tests__/template-hook.test.js +254 -0
  278. package/dist/rasp/__tests__/template-hook.test.js.map +1 -0
  279. package/dist/rasp/__tests__/upload.test.d.ts +1 -0
  280. package/dist/rasp/__tests__/upload.test.js +81 -0
  281. package/dist/rasp/__tests__/upload.test.js.map +1 -0
  282. package/dist/rasp/__tests__/vpatch-engine.test.d.ts +1 -0
  283. package/dist/rasp/__tests__/vpatch-engine.test.js +177 -0
  284. package/dist/rasp/__tests__/vpatch-engine.test.js.map +1 -0
  285. package/dist/rasp/auto-http.d.ts +6 -0
  286. package/dist/rasp/auto-http.js +194 -0
  287. package/dist/rasp/auto-http.js.map +1 -0
  288. package/dist/rasp/baseline.d.ts +35 -0
  289. package/dist/rasp/baseline.js +91 -0
  290. package/dist/rasp/baseline.js.map +1 -0
  291. package/dist/rasp/capture.d.ts +76 -0
  292. package/dist/rasp/capture.js +304 -0
  293. package/dist/rasp/capture.js.map +1 -0
  294. package/dist/rasp/config-client.d.ts +122 -0
  295. package/dist/rasp/config-client.js +337 -0
  296. package/dist/rasp/config-client.js.map +1 -0
  297. package/dist/rasp/context.d.ts +65 -0
  298. package/dist/rasp/context.js +68 -0
  299. package/dist/rasp/context.js.map +1 -0
  300. package/dist/rasp/custom-rules.d.ts +68 -0
  301. package/dist/rasp/custom-rules.js +222 -0
  302. package/dist/rasp/custom-rules.js.map +1 -0
  303. package/dist/rasp/data/default-rules.json +199 -0
  304. package/dist/rasp/data/default-sinks.json +4 -0
  305. package/dist/rasp/data/dnslog-domains.json +11 -0
  306. package/dist/rasp/deception.d.ts +70 -0
  307. package/dist/rasp/deception.js +220 -0
  308. package/dist/rasp/deception.js.map +1 -0
  309. package/dist/rasp/detect.d.ts +68 -0
  310. package/dist/rasp/detect.js +671 -0
  311. package/dist/rasp/detect.js.map +1 -0
  312. package/dist/rasp/engine.d.ts +107 -0
  313. package/dist/rasp/engine.js +330 -0
  314. package/dist/rasp/engine.js.map +1 -0
  315. package/dist/rasp/hooks/code.d.ts +20 -0
  316. package/dist/rasp/hooks/code.js +334 -0
  317. package/dist/rasp/hooks/code.js.map +1 -0
  318. package/dist/rasp/hooks/db.d.ts +48 -0
  319. package/dist/rasp/hooks/db.js +322 -0
  320. package/dist/rasp/hooks/db.js.map +1 -0
  321. package/dist/rasp/hooks/esm.d.ts +7 -0
  322. package/dist/rasp/hooks/esm.js +18 -0
  323. package/dist/rasp/hooks/esm.js.map +1 -0
  324. package/dist/rasp/hooks/fs.d.ts +3 -0
  325. package/dist/rasp/hooks/fs.js +206 -0
  326. package/dist/rasp/hooks/fs.js.map +1 -0
  327. package/dist/rasp/hooks/http.d.ts +4 -0
  328. package/dist/rasp/hooks/http.js +213 -0
  329. package/dist/rasp/hooks/http.js.map +1 -0
  330. package/dist/rasp/hooks/include.d.ts +9 -0
  331. package/dist/rasp/hooks/include.js +79 -0
  332. package/dist/rasp/hooks/include.js.map +1 -0
  333. package/dist/rasp/hooks/marks.d.ts +2 -0
  334. package/dist/rasp/hooks/marks.js +16 -0
  335. package/dist/rasp/hooks/marks.js.map +1 -0
  336. package/dist/rasp/hooks/process.d.ts +22 -0
  337. package/dist/rasp/hooks/process.js +191 -0
  338. package/dist/rasp/hooks/process.js.map +1 -0
  339. package/dist/rasp/hooks/sinks.d.ts +54 -0
  340. package/dist/rasp/hooks/sinks.js +329 -0
  341. package/dist/rasp/hooks/sinks.js.map +1 -0
  342. package/dist/rasp/hooks/template.d.ts +21 -0
  343. package/dist/rasp/hooks/template.js +152 -0
  344. package/dist/rasp/hooks/template.js.map +1 -0
  345. package/dist/rasp/iast-rules.d.ts +82 -0
  346. package/dist/rasp/iast-rules.js +240 -0
  347. package/dist/rasp/iast-rules.js.map +1 -0
  348. package/dist/rasp/iast-scope.d.ts +29 -0
  349. package/dist/rasp/iast-scope.js +54 -0
  350. package/dist/rasp/iast-scope.js.map +1 -0
  351. package/dist/rasp/iast.d.ts +81 -0
  352. package/dist/rasp/iast.js +272 -0
  353. package/dist/rasp/iast.js.map +1 -0
  354. package/dist/rasp/index.d.ts +52 -0
  355. package/dist/rasp/index.js +280 -0
  356. package/dist/rasp/index.js.map +1 -0
  357. package/dist/rasp/lexers.d.ts +32 -0
  358. package/dist/rasp/lexers.js +444 -0
  359. package/dist/rasp/lexers.js.map +1 -0
  360. package/dist/rasp/middleware.d.ts +155 -0
  361. package/dist/rasp/middleware.js +568 -0
  362. package/dist/rasp/middleware.js.map +1 -0
  363. package/dist/rasp/model-output.d.ts +14 -0
  364. package/dist/rasp/model-output.js +107 -0
  365. package/dist/rasp/model-output.js.map +1 -0
  366. package/dist/rasp/normalize.d.ts +23 -0
  367. package/dist/rasp/normalize.js +140 -0
  368. package/dist/rasp/normalize.js.map +1 -0
  369. package/dist/rasp/reporter.d.ts +60 -0
  370. package/dist/rasp/reporter.js +230 -0
  371. package/dist/rasp/reporter.js.map +1 -0
  372. package/dist/rasp/rule-expr.d.ts +236 -0
  373. package/dist/rasp/rule-expr.js +1253 -0
  374. package/dist/rasp/rule-expr.js.map +1 -0
  375. package/dist/rasp/template.d.ts +53 -0
  376. package/dist/rasp/template.js +336 -0
  377. package/dist/rasp/template.js.map +1 -0
  378. package/dist/rasp/types.d.ts +110 -0
  379. package/dist/rasp/types.js +51 -0
  380. package/dist/rasp/types.js.map +1 -0
  381. package/dist/rasp/vpatch.d.ts +55 -0
  382. package/dist/rasp/vpatch.js +120 -0
  383. package/dist/rasp/vpatch.js.map +1 -0
  384. package/dist/register.js +52 -11
  385. package/dist/register.js.map +1 -1
  386. package/dist/semantic-convention.d.ts +2 -0
  387. package/dist/semantic-convention.js +5 -0
  388. package/dist/semantic-convention.js.map +1 -1
  389. package/dist/types.d.ts +75 -1
  390. package/dist/zero-code.d.ts +8 -0
  391. package/dist/zero-code.js +38 -0
  392. package/dist/zero-code.js.map +1 -0
  393. package/package.json +18 -2
@@ -5,7 +5,8 @@
5
5
  * When `init` is given a Shield360 URL and API key (or SHIELD360_URL /
6
6
  * SHIELD360_API_KEY), every guard decision other than allow is sent to
7
7
  * `/api/guard/events`: which guard, what it did, the kind of data found, in
8
- * which app, on which host. Never the text that was checked.
8
+ * which app (its service name, as its telemetry reports it), on which host.
9
+ * Never the text that was checked.
9
10
  *
10
11
  * With each report go the values found, masked, and fingerprinted with the
11
12
  * organisation's key (fetched from `/api/guard/config`), so a reviewer can see
@@ -19,6 +20,7 @@
19
20
  */
20
21
  Object.defineProperty(exports, "__esModule", { value: true });
21
22
  exports.EVENT_NAME = void 0;
23
+ exports.postGuardEvents = postGuardEvents;
22
24
  exports.configureGuardReports = configureGuardReports;
23
25
  exports.reportGuardDecision = reportGuardDecision;
24
26
  exports.flushGuardReports = flushGuardReports;
@@ -26,6 +28,7 @@ exports.resetGuardReports = resetGuardReports;
26
28
  const crypto_1 = require("crypto");
27
29
  const os_1 = require("os");
28
30
  const findings_1 = require("./findings");
31
+ const heartbeat_1 = require("./heartbeat");
29
32
  exports.EVENT_NAME = 'shield360.guard.decision';
30
33
  const BATCH = 100;
31
34
  const FLUSH_MS = 2000;
@@ -41,6 +44,7 @@ class Reporter {
41
44
  this.sending = Promise.resolve();
42
45
  /** Settles once the fingerprint key has been fetched (or could not be). */
43
46
  this.keyReady = Promise.resolve();
47
+ this.beat = null;
44
48
  this.timer = setInterval(() => void this.flush(), FLUSH_MS);
45
49
  // Never keep a process alive just to report.
46
50
  this.timer.unref?.();
@@ -62,33 +66,73 @@ class Reporter {
62
66
  return this.sending;
63
67
  }
64
68
  async post(batch) {
65
- const body = JSON.stringify({ resource: this.resource, events: batch });
66
- for (let attempt = 0; attempt < ATTEMPTS; attempt++) {
69
+ await postGuardEvents(this.endpoint, this.apiKey, { resource: this.resource, events: batch }, { label: 'guard report' });
70
+ }
71
+ /** Sends a heartbeat now and then about every five minutes (heartbeat.ts). Never throws. */
72
+ startHeartbeat(guards, sdkVersion) {
73
+ const send = () => {
67
74
  try {
68
- const res = await fetch(this.endpoint, {
69
- method: 'POST',
70
- headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${this.apiKey}` },
71
- body,
72
- });
73
- if (res.ok)
74
- return;
75
- if ([400, 401, 403, 413].includes(res.status)) {
76
- console.warn(`Shield360 rejected guard reports: HTTP ${res.status}`);
77
- return;
78
- }
75
+ this.add({ name: heartbeat_1.HEARTBEAT_EVENT_NAME, time: new Date().toISOString(), attrs: (0, heartbeat_1.heartbeatAttrs)(guards, this.applicationName, sdkVersion) });
76
+ void this.flush().catch(() => undefined);
79
77
  }
80
78
  catch {
81
- // retried below
79
+ // a heartbeat is never worth an error in the app
82
80
  }
83
- await new Promise((r) => setTimeout(r, 500 * (attempt + 1)));
84
- }
85
- console.warn(`Could not deliver ${batch.length} guard report(s) to Shield360`);
81
+ this.beat = setTimeout(send, (0, heartbeat_1.nextDelay)());
82
+ this.beat.unref?.();
83
+ };
84
+ send();
86
85
  }
87
86
  close() {
88
87
  clearInterval(this.timer);
88
+ if (this.beat)
89
+ clearTimeout(this.beat);
90
+ this.beat = null;
89
91
  return this.flush();
90
92
  }
91
93
  }
94
+ /**
95
+ * Posts one batch to `/api/guard/events`: the transport guard reports, the
96
+ * heartbeat and runtime-protection (RASP) events share. Retries a few times,
97
+ * gives up on a refusal, and never throws. Resolves to whether it was accepted.
98
+ */
99
+ async function postGuardEvents(endpoint, apiKey, payload, options = {}) {
100
+ const label = options.label ?? 'guard report';
101
+ const attempts = options.attempts ?? ATTEMPTS;
102
+ const delay = options.retryDelayMs ?? 500;
103
+ const send = options.fetchImpl ?? globalThis.fetch;
104
+ if (typeof send !== 'function')
105
+ return false;
106
+ let body;
107
+ try {
108
+ body = JSON.stringify(payload);
109
+ }
110
+ catch {
111
+ return false;
112
+ }
113
+ for (let attempt = 0; attempt < attempts; attempt++) {
114
+ try {
115
+ const res = await send(endpoint, {
116
+ method: 'POST',
117
+ headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${apiKey}` },
118
+ body,
119
+ });
120
+ if (res.ok)
121
+ return true;
122
+ if ([400, 401, 403, 413].includes(res.status)) {
123
+ console.warn(`Shield360 rejected ${label}s: HTTP ${res.status}`);
124
+ return false;
125
+ }
126
+ }
127
+ catch {
128
+ // retried below
129
+ }
130
+ if (attempt + 1 < attempts)
131
+ await new Promise((r) => setTimeout(r, delay * (attempt + 1)));
132
+ }
133
+ console.warn(`Could not deliver ${payload.events.length} ${label}(s) to Shield360`);
134
+ return false;
135
+ }
92
136
  /** Findings go out fingerprinted if the key has arrived since they were made. */
93
137
  function serialise(event) {
94
138
  const { findings, ...rest } = event;
@@ -122,6 +166,8 @@ function configureGuardReports(opts) {
122
166
  'user.name': user,
123
167
  'deployment.environment': opts.environment,
124
168
  'service.version': opts.sdkVersion || '',
169
+ // The app, by the service name its telemetry uses (security per app).
170
+ 'service.name': opts.applicationName,
125
171
  })) {
126
172
  if (v)
127
173
  resource[k] = v;
@@ -130,6 +176,8 @@ function configureGuardReports(opts) {
130
176
  const base = opts.url.replace(/\/+$/, '');
131
177
  reporter = new Reporter(`${base}/api/guard/events`, opts.apiKey, resource, opts.applicationName);
132
178
  reporter.keyReady = fetchFingerprintKey(base, opts.apiKey);
179
+ if (opts.guards?.length && (0, heartbeat_1.heartbeatEnabled)(opts.heartbeat))
180
+ reporter.startHeartbeat(opts.guards, opts.sdkVersion || '');
133
181
  return true;
134
182
  }
135
183
  /** The organisation's fingerprint key; without it findings are masked only. */
@@ -162,6 +210,7 @@ function reportGuardDecision(guardName, action, classification, phase, findings
162
210
  attrs: {
163
211
  'shield360.guard.event_id': (0, crypto_1.randomUUID)().replace(/-/g, ''),
164
212
  'shield360.guard.client': reporter.applicationName,
213
+ 'shield360.guard.app': reporter.applicationName,
165
214
  'shield360.guard.action': action,
166
215
  'shield360.guard.target': phase,
167
216
  'shield360.guard.kinds': kinds,
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/guard/report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/guard/report.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ import { usingAttributes, injectAdditionalAttributes, setAgentVersion, resetAgen
5
5
  import { runEval, runEvalBatch, fetchEvalTypes } from './evals';
6
6
  import { logScore } from './score';
7
7
  import { TracedSpan, startTrace, trace as traceManual } from './manual-trace';
8
+ import { captureConsole, captureStdio, pinoStream, releaseConsole, releaseStdio, winstonTransport } from './otel/log-bridges';
8
9
  import { PII } from './guard/pii';
9
10
  import { PromptInjection } from './guard/prompt-injection';
10
11
  import { Moderation } from './guard/moderation';
@@ -13,6 +14,12 @@ import { TopicRestriction } from './guard/topic-restriction';
13
14
  import { Schema } from './guard/schema';
14
15
  import { Custom } from './guard/custom';
15
16
  import { Pipeline } from './guard/pipeline';
17
+ import { budgets, configureBudgets, BudgetClient, BudgetExceededError } from './budgets';
18
+ import { setCustomer, withCustomer, getCustomer, CustomerSpanProcessor } from './customer';
19
+ import { aiSecurity, configureAiSecurity, AiSecurityBlockedError } from './ai-security';
20
+ import { feedback, getCurrentSpanId, getCurrentTraceId } from './feedback';
21
+ import { disableRasp, enableRasp } from './rasp';
22
+ import { createLogger } from './otel/app-logs';
16
23
  import { Guard, GuardAction, GuardPhase, GuardError, GuardDeniedError, GuardTimeoutError, GuardConfigError, PipelineResult } from './guard/base';
17
24
  declare class Shield360 extends BaseShield360 {
18
25
  static resource: ReturnType<typeof resourceFromAttributes>;
@@ -54,8 +61,72 @@ declare class Shield360 extends BaseShield360 {
54
61
  static resetAgentVersion: typeof resetAgentVersion;
55
62
  static withAgentVersion: typeof runWithAgentVersion;
56
63
  static getAgentVersion: typeof getCurrentAgentVersion;
64
+ /**
65
+ * Send what one of your users thought of an AI response (thumbs 1/-1 or
66
+ * stars 1-5) against its trace. Server side, with the environment's API
67
+ * key. Resolves to whether it was accepted; never throws.
68
+ */
69
+ static feedback: typeof feedback;
70
+ /** The active span's trace id, to keep with a response so a later rating can name it. */
71
+ static getCurrentTraceId: typeof getCurrentTraceId;
72
+ static getCurrentSpanId: typeof getCurrentSpanId;
57
73
  static startTrace: typeof startTrace;
58
74
  static trace: typeof traceManual;
75
+ /** SHIELD: a logger for application logs; a no-op unless captureLogs is on. */
76
+ static logger: typeof createLogger;
77
+ /** SHIELD: bridges from pino, winston and console to application logs (no-ops unless captureLogs is on). */
78
+ static pinoStream: typeof pinoStream;
79
+ static winstonTransport: typeof winstonTransport;
80
+ static captureConsole: typeof captureConsole;
81
+ static releaseConsole: typeof releaseConsole;
82
+ static captureStdio: typeof captureStdio;
83
+ static releaseStdio: typeof releaseStdio;
84
+ /** Feature flags: `Shield360.flags.getFlag(key, context, default)` and `isEnabled(key, context)`. */
85
+ static flags: import("./flags").FlagsClient;
86
+ /** Budget check: Shield360.budgets.check({ model, estimatedCostUsd }) never throws; see ./budgets. */
87
+ static budgets: {
88
+ check: (options?: import("./budgets").BudgetCheckOptions) => Promise<import("./budgets").BudgetCheckResult>;
89
+ configure: typeof configureBudgets;
90
+ reset: () => void;
91
+ };
92
+ static BudgetExceededError: typeof BudgetExceededError;
93
+ /**
94
+ * Cost per end customer. setCustomer({ tenantId, userId? }) sets a process-wide
95
+ * default (null clears it); withCustomer(customer, fn) scopes one to fn and its
96
+ * async work, winning over the default; getCustomer() returns the one in effect.
97
+ * Invalid ids are dropped silently. The SDK never hashes: Shield360 stores user
98
+ * ids only as a keyed hash, and tenant ids as given unless the organisation opts
99
+ * to hash them. See ./customer.
100
+ */
101
+ static setCustomer: typeof setCustomer;
102
+ /** SHIELD: the runtime kill switch for RASP (env SHIELD360_RASP=off and the signed config's killSwitch win over it). */
103
+ static disableRasp: typeof disableRasp;
104
+ static enableRasp: typeof enableRasp;
105
+ static withCustomer: typeof withCustomer;
106
+ static getCustomer: typeof getCustomer;
107
+ /** AI security pack: Shield360.aiSecurity.scanContext(), scanOutput(), defineTool(), ... See ./ai-security. */
108
+ static aiSecurity: {
109
+ configure: typeof configureAiSecurity;
110
+ policy: typeof import("./ai-security").currentPolicy;
111
+ scanContext: typeof import("./ai-security").scanContext;
112
+ checkPrompt: typeof import("./ai-security").checkPrompt;
113
+ scanOutput: typeof import("./ai-security").scanOutput;
114
+ streamScanner: typeof import("./ai-security").streamScanner;
115
+ withCanary: typeof import("./ai-security").withCanary;
116
+ tagContext: typeof import("./ai-security").tagContext;
117
+ defineTool: typeof import("./ai-security").defineTool;
118
+ authorizeTool: typeof import("./ai-security").authorizeTool;
119
+ checkLimits: typeof import("./ai-security").checkLimits;
120
+ recordUsage: typeof import("./ai-security").recordUsage;
121
+ syncLimitsNow: typeof import("./ai-security").syncLimitsNow;
122
+ checkMcpTools: typeof import("./ai-security").checkMcpTools;
123
+ checkRetrieval: typeof import("./ai-security").checkRetrieval;
124
+ withEndUser: <T>(user: import("./ai-security").EndUserInput | null, fn: () => T) => T;
125
+ setEndUser: typeof import("./ai-security").setEndUser;
126
+ flush: typeof import("./ai-security").flushAiSecurity;
127
+ BlockedError: typeof AiSecurityBlockedError;
128
+ };
129
+ static AiSecurityBlockedError: typeof AiSecurityBlockedError;
59
130
  static init(options?: Shield360Options): void;
60
131
  }
61
132
  declare const shield360: typeof Shield360 & {
@@ -65,9 +136,26 @@ declare const shield360: typeof Shield360 & {
65
136
  export default shield360;
66
137
  export { Shield360, usingAttributes, injectAdditionalAttributes, logScore };
67
138
  export { TracedSpan, startTrace, traceManual as trace };
139
+ export { budgets, BudgetClient, BudgetExceededError };
140
+ export type { BudgetCheckOptions, BudgetCheckResult, BudgetAction, BudgetClientOptions } from './budgets';
141
+ export { createLogger } from './otel/app-logs';
142
+ export type { Shield360Logger, LogLevel } from './otel/app-logs';
143
+ export { FlagsClient, flags } from './flags';
144
+ export type { FlagsOptions, FlagDetail, FlagDefinition, EvaluationContext, Evaluation, FlagValue, PromptRef, PromptFlagOptions, PromptFlagResult, Segment } from './flags';
145
+ export { setCustomer, withCustomer, getCustomer, CustomerSpanProcessor };
146
+ export type { Customer, CustomerInput } from './customer';
147
+ export { aiSecurity, AiSecurityBlockedError };
148
+ export type { AiSecurityPolicy, AiSecurityPolicyInput, AiSecurityEvent, EndUserInput } from './ai-security';
149
+ export type { AiSecurityInitOptions } from './types';
68
150
  export type { Shield360Options } from './types';
69
151
  export type { LogScoreOptions } from './score';
152
+ export { feedback, getCurrentTraceId, getCurrentSpanId } from './feedback';
153
+ export type { FeedbackOptions, FeedbackScale } from './feedback';
70
154
  export { protectTool, authorizeWithShield360, protectReadiness, ProtectDeniedError, ProtectReadinessError, ProtectError } from './protect';
71
155
  export type { ProtectMode, ProtectConfig, ProtectReadiness, ProtectToolOptions, AuthorizeTarget, AuthorizeAnswer } from './protect';
156
+ export { agentVerifier, AGENT_HEADER, MemoryReplayStore } from './agents';
157
+ export type { AgentVerifier, AgentVerifierOptions, AgentCheck, AgentCheckOptions, AgentCheckInput, AgentPolicy, ReplayStore } from './agents';
158
+ export { raspExpress, raspExpressErrorHandler, raspFastify, raspKoa, raspHttp, withRasp, recordRequestBody, recordModelOutput, recordToolArguments, runInRaspScope, disableRasp, enableRasp, raspActive, isRaspBlocked, RaspBlockedError, Shield360RaspBlocked, } from './rasp';
159
+ export type { RaspOptions, RaspMode, AttackType as RaspAttackType, ConfigPublicKey } from './rasp';
72
160
  export { PII, PromptInjection, Moderation, SensitiveTopic, TopicRestriction, Schema, Custom, Pipeline, Guard, GuardAction, GuardPhase, GuardError, GuardDeniedError, GuardTimeoutError, GuardConfigError, PipelineResult, };
73
161
  export type { GuardResult } from './guard/base';
package/dist/index.js CHANGED
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PipelineResult = exports.GuardConfigError = exports.GuardTimeoutError = exports.GuardDeniedError = exports.GuardError = exports.GuardPhase = exports.GuardAction = exports.Guard = exports.Pipeline = exports.Custom = exports.Schema = exports.TopicRestriction = exports.SensitiveTopic = exports.Moderation = exports.PromptInjection = exports.PII = exports.ProtectError = exports.ProtectReadinessError = exports.ProtectDeniedError = exports.protectReadiness = exports.authorizeWithShield360 = exports.protectTool = exports.trace = exports.startTrace = exports.TracedSpan = exports.logScore = exports.injectAdditionalAttributes = exports.usingAttributes = exports.Shield360 = void 0;
6
+ exports.Moderation = exports.PromptInjection = exports.PII = exports.Shield360RaspBlocked = exports.RaspBlockedError = exports.isRaspBlocked = exports.raspActive = exports.enableRasp = exports.disableRasp = exports.runInRaspScope = exports.recordToolArguments = exports.recordModelOutput = exports.recordRequestBody = exports.withRasp = exports.raspHttp = exports.raspKoa = exports.raspFastify = exports.raspExpressErrorHandler = exports.raspExpress = exports.MemoryReplayStore = exports.AGENT_HEADER = exports.agentVerifier = exports.ProtectError = exports.ProtectReadinessError = exports.ProtectDeniedError = exports.protectReadiness = exports.authorizeWithShield360 = exports.protectTool = exports.getCurrentSpanId = exports.getCurrentTraceId = exports.feedback = exports.AiSecurityBlockedError = exports.aiSecurity = exports.CustomerSpanProcessor = exports.getCustomer = exports.withCustomer = exports.setCustomer = exports.flags = exports.FlagsClient = exports.createLogger = exports.BudgetExceededError = exports.BudgetClient = exports.budgets = exports.trace = exports.startTrace = exports.TracedSpan = exports.logScore = exports.injectAdditionalAttributes = exports.usingAttributes = exports.Shield360 = void 0;
7
+ exports.PipelineResult = exports.GuardConfigError = exports.GuardTimeoutError = exports.GuardDeniedError = exports.GuardError = exports.GuardPhase = exports.GuardAction = exports.Guard = exports.Pipeline = exports.Custom = exports.Schema = exports.TopicRestriction = exports.SensitiveTopic = void 0;
7
8
  const resources_1 = require("@opentelemetry/resources");
8
9
  const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
9
10
  const api_1 = require("@opentelemetry/api");
@@ -24,6 +25,12 @@ Object.defineProperty(exports, "TracedSpan", { enumerable: true, get: function (
24
25
  Object.defineProperty(exports, "startTrace", { enumerable: true, get: function () { return manual_trace_1.startTrace; } });
25
26
  Object.defineProperty(exports, "trace", { enumerable: true, get: function () { return manual_trace_1.trace; } });
26
27
  const metrics_1 = __importDefault(require("./otel/metrics"));
28
+ // SHIELD: host and process metrics (opt-in).
29
+ const system_metrics_1 = require("./otel/system-metrics");
30
+ // SHIELD: logger bridges (pino, winston, console) to application logs.
31
+ const log_bridges_1 = require("./otel/log-bridges");
32
+ // SHIELD: winston and pino bridged without code changes when application logs are on.
33
+ const log_auto_1 = require("./otel/log-auto");
27
34
  const gpu_1 = __importDefault(require("./instrumentation/gpu"));
28
35
  const semantic_convention_1 = __importDefault(require("./semantic-convention"));
29
36
  const utils_1 = require("./otel/utils");
@@ -48,8 +55,33 @@ Object.defineProperty(exports, "Custom", { enumerable: true, get: function () {
48
55
  const pipeline_1 = require("./guard/pipeline");
49
56
  Object.defineProperty(exports, "Pipeline", { enumerable: true, get: function () { return pipeline_1.Pipeline; } });
50
57
  const destination_1 = require("./destination");
58
+ // Budget check: app budgets enforced through the SDK.
59
+ const budgets_1 = require("./budgets");
60
+ Object.defineProperty(exports, "budgets", { enumerable: true, get: function () { return budgets_1.budgets; } });
61
+ Object.defineProperty(exports, "BudgetClient", { enumerable: true, get: function () { return budgets_1.BudgetClient; } });
62
+ Object.defineProperty(exports, "BudgetExceededError", { enumerable: true, get: function () { return budgets_1.BudgetExceededError; } });
63
+ const auto_1 = require("./budgets/auto");
64
+ // Feature flags: fetched rules, evaluated locally.
65
+ const client_1 = require("./flags/client");
66
+ // Cost per end customer: tag AI calls with the builder's own customer.
67
+ const customer_1 = require("./customer");
68
+ Object.defineProperty(exports, "setCustomer", { enumerable: true, get: function () { return customer_1.setCustomer; } });
69
+ Object.defineProperty(exports, "withCustomer", { enumerable: true, get: function () { return customer_1.withCustomer; } });
70
+ Object.defineProperty(exports, "getCustomer", { enumerable: true, get: function () { return customer_1.getCustomer; } });
71
+ Object.defineProperty(exports, "CustomerSpanProcessor", { enumerable: true, get: function () { return customer_1.CustomerSpanProcessor; } });
72
+ // AI security pack: checks on the app's own AI traffic, kept apart from tracing.
73
+ const ai_security_1 = require("./ai-security");
74
+ Object.defineProperty(exports, "aiSecurity", { enumerable: true, get: function () { return ai_security_1.aiSecurity; } });
75
+ Object.defineProperty(exports, "AiSecurityBlockedError", { enumerable: true, get: function () { return ai_security_1.AiSecurityBlockedError; } });
76
+ const hooks_1 = require("./ai-security/hooks");
51
77
  const code_location_1 = require("./otel/code-location");
52
78
  const build_info_1 = require("./otel/build-info");
79
+ const feedback_1 = require("./feedback");
80
+ // SHIELD: runtime protection (RASP), opt-in.
81
+ const rasp_1 = require("./rasp");
82
+ const zero_code_1 = require("./zero-code");
83
+ // SHIELD: application logs, opt-in.
84
+ const app_logs_1 = require("./otel/app-logs");
53
85
  const base_2 = require("./guard/base");
54
86
  Object.defineProperty(exports, "Guard", { enumerable: true, get: function () { return base_2.Guard; } });
55
87
  Object.defineProperty(exports, "GuardAction", { enumerable: true, get: function () { return base_2.GuardAction; } });
@@ -130,21 +162,32 @@ function resolveOptions(options) {
130
162
  shield360Url,
131
163
  guards: o.guards,
132
164
  guardFailOpen: o.guardFailOpen ?? true,
165
+ guardHeartbeat: o.guardHeartbeat,
133
166
  protect: (0, mode_1.resolveProtect)(o.protect),
134
167
  collectGpuStats,
135
168
  captureCodeLocation: (0, code_location_1.resolveCaptureCodeLocation)(o.captureCodeLocation),
136
169
  codeRoot: o.codeRoot,
137
170
  serviceVersion: o.serviceVersion,
171
+ captureLogs: (0, app_logs_1.resolveCaptureLogs)(o.captureLogs),
172
+ captureStdio: o.captureStdio ?? (0, utils_1.parseBoolEnv)('SHIELD360_CAPTURE_STDIO') ?? false,
173
+ logLevel: (0, app_logs_1.resolveLogLevel)(o.logLevel),
174
+ collectSystemMetrics: (0, system_metrics_1.resolveCollectSystemMetrics)(o.collectSystemMetrics),
138
175
  };
139
176
  }
140
177
  class Shield360 extends base_1.default {
141
178
  static init(options) {
179
+ // SHIELD: shield360/register already started Shield360 from the environment: a second init() is a no-op.
180
+ if ((0, zero_code_1.zeroCodeStarted)())
181
+ return (0, zero_code_1.noteSkippedInit)();
142
182
  try {
143
183
  api_1.diag.setLogger(new api_1.DiagConsoleLogger(), api_1.DiagLogLevel.WARN);
144
184
  const resolved = resolveOptions(options);
145
185
  this.options = resolved;
186
+ const buildAttributes = (0, build_info_1.resolveBuildAttributes)({ serviceVersion: resolved.serviceVersion });
187
+ // User feedback names the application and release it was given for.
188
+ (0, feedback_1.configureFeedback)({ app: resolved.applicationName, release: buildAttributes[build_info_1.ATTR_SERVICE_VERSION] });
146
189
  this.resource = (0, resources_1.resourceFromAttributes)({
147
- ...(0, build_info_1.resolveBuildAttributes)({ serviceVersion: resolved.serviceVersion }),
190
+ ...buildAttributes,
148
191
  [semantic_conventions_1.ATTR_SERVICE_NAME]: resolved.applicationName,
149
192
  [semantic_convention_1.default.ATTR_DEPLOYMENT_ENVIRONMENT]: resolved.environment,
150
193
  [semantic_conventions_1.ATTR_TELEMETRY_SDK_NAME]: constant_1.SDK_NAME,
@@ -157,12 +200,45 @@ class Shield360 extends base_1.default {
157
200
  if (!resolved.disableEvents) {
158
201
  events_1.default.setup(setupBase);
159
202
  }
203
+ // SHIELD: application logs share the events LoggerProvider, so they go
204
+ // to the same destination as traces. Nothing is sent unless asked for.
205
+ // With them on, console output, winston and pino are bridged too, as
206
+ // the Python SDK attaches its handler to the root logger.
207
+ if (resolved.captureLogs) {
208
+ (0, app_logs_1.enableAppLogs)(events_1.default.ensureProvider(setupBase), resolved.logLevel, {
209
+ captureCodeLocation: resolved.captureCodeLocation,
210
+ codeRoot: resolved.codeRoot,
211
+ });
212
+ if (resolved.captureStdio) {
213
+ // console, pino and winston write to stdout and stderr too: one record per line, not two.
214
+ (0, log_bridges_1.releaseConsole)();
215
+ (0, log_bridges_1.captureStdio)();
216
+ }
217
+ else {
218
+ (0, log_bridges_1.captureConsole)();
219
+ (0, log_auto_1.enableLogBridges)();
220
+ }
221
+ }
222
+ else {
223
+ (0, app_logs_1.disableAppLogs)();
224
+ (0, log_bridges_1.releaseConsole)();
225
+ (0, log_bridges_1.releaseStdio)();
226
+ }
160
227
  if (!resolved.disableMetrics) {
161
228
  const exportIntervalMillis = Number(process.env.OTEL_EXPORTER_OTLP_METRICS_EXPORT_INTERVAL ?? 60000) || 60000;
162
229
  const meter = metrics_1.default.setup({
163
230
  ...setupBase,
164
231
  exportIntervalMillis,
165
232
  });
233
+ // SHIELD: host and process metrics for the Infrastructure view, when asked for.
234
+ if (resolved.collectSystemMetrics && meter) {
235
+ try {
236
+ (0, system_metrics_1.setupSystemMetrics)(meter);
237
+ }
238
+ catch (e) {
239
+ api_1.diag.error(`Shield360 system metrics setup failed: ${e}`);
240
+ }
241
+ }
166
242
  // GPU metrics: only register gauges when a supported GPU is detected
167
243
  // (mirrors Python shield360.init collect_gpu_stats path).
168
244
  if (resolved.collectGpuStats && meter) {
@@ -179,7 +255,46 @@ class Shield360 extends base_1.default {
179
255
  }
180
256
  config_1.default.shield360ApiKey = resolved.shield360ApiKey;
181
257
  config_1.default.shield360Url = resolved.shield360Url;
258
+ // Budget check: the automatic pre-call check, when asked for.
259
+ const budgetCheck = options?.budgetCheck ?? ((0, utils_1.parseBoolEnv)('SHIELD360_BUDGET_CHECK') || false);
260
+ if (budgetCheck) {
261
+ const client = (0, budgets_1.configureBudgets)({
262
+ app: resolved.applicationName,
263
+ ...(typeof budgetCheck === 'object' && budgetCheck.failClosed !== undefined ? { failClosed: budgetCheck.failClosed } : {}),
264
+ });
265
+ (0, auto_1.setupAutoBudgetCheck)({ client, onWarn: (r) => console.warn(`[shield360] ${r.reason}`) });
266
+ }
267
+ else {
268
+ (0, budgets_1.configureBudgets)({ app: resolved.applicationName });
269
+ }
270
+ // AI security pack: on when asked for; monitors by default.
271
+ const ai = options?.aiSecurity ?? ((0, utils_1.parseBoolEnv)('SHIELD360_AI_SECURITY') || false);
272
+ if (ai) {
273
+ const o = typeof ai === 'object' ? ai : {};
274
+ (0, ai_security_1.configureAiSecurity)({
275
+ url: resolved.shield360Url,
276
+ apiKey: resolved.shield360ApiKey,
277
+ app: resolved.applicationName,
278
+ environment: resolved.environment,
279
+ policy: o.policy,
280
+ configPublicKey: o.configPublicKey,
281
+ allowUnpinnedConfig: o.allowUnpinnedConfig,
282
+ configCacheFile: o.configCacheFile,
283
+ recordAllowed: o.recordAllowed,
284
+ });
285
+ if (o.autoInstrument !== false)
286
+ (0, hooks_1.setupAiSecurity)();
287
+ }
182
288
  helpers_1.default.fetchPricingInfo(resolved.pricingJson).then((info) => { config_1.default.pricingInfo = info; }, () => { config_1.default.pricingInfo = {}; });
289
+ // SHIELD: runtime protection (RASP): off unless options.rasp or SHIELD360_RASP turns it on.
290
+ (0, rasp_1.initRasp)(options?.rasp, {
291
+ applicationName: resolved.applicationName,
292
+ environment: resolved.environment,
293
+ url: resolved.shield360Url,
294
+ apiKey: resolved.shield360ApiKey,
295
+ sdkVersion: constant_1.SDK_VERSION,
296
+ otlpEndpoint: resolved.otlpEndpoint,
297
+ });
183
298
  if (resolved.guards && resolved.guards.length > 0) {
184
299
  (0, integration_1.setupAutoGuards)(resolved.guards, resolved.guardFailOpen, resolved.protect);
185
300
  // With a Shield360 URL and API key, what the guards stop is also
@@ -189,6 +304,9 @@ class Shield360 extends base_1.default {
189
304
  apiKey: resolved.shield360ApiKey,
190
305
  applicationName: resolved.applicationName,
191
306
  environment: resolved.environment,
307
+ sdkVersion: constant_1.SDK_VERSION,
308
+ guards: resolved.guards,
309
+ heartbeat: resolved.guardHeartbeat,
192
310
  });
193
311
  }
194
312
  else if (resolved.protect.mode === 'enforced' && resolved.protect.required.length) {
@@ -247,12 +365,62 @@ Shield360.setAgentVersion = helpers_2.setAgentVersion;
247
365
  Shield360.resetAgentVersion = helpers_2.resetAgentVersion;
248
366
  Shield360.withAgentVersion = helpers_2.runWithAgentVersion;
249
367
  Shield360.getAgentVersion = helpers_2.getCurrentAgentVersion;
368
+ /**
369
+ * Send what one of your users thought of an AI response (thumbs 1/-1 or
370
+ * stars 1-5) against its trace. Server side, with the environment's API
371
+ * key. Resolves to whether it was accepted; never throws.
372
+ */
373
+ Shield360.feedback = feedback_1.feedback;
374
+ /** The active span's trace id, to keep with a response so a later rating can name it. */
375
+ Shield360.getCurrentTraceId = feedback_1.getCurrentTraceId;
376
+ Shield360.getCurrentSpanId = feedback_1.getCurrentSpanId;
250
377
  Shield360.startTrace = manual_trace_1.startTrace;
251
378
  Shield360.trace = manual_trace_1.trace;
379
+ /** SHIELD: a logger for application logs; a no-op unless captureLogs is on. */
380
+ Shield360.logger = app_logs_1.createLogger;
381
+ /** SHIELD: bridges from pino, winston and console to application logs (no-ops unless captureLogs is on). */
382
+ Shield360.pinoStream = log_bridges_1.pinoStream;
383
+ Shield360.winstonTransport = log_bridges_1.winstonTransport;
384
+ Shield360.captureConsole = log_bridges_1.captureConsole;
385
+ Shield360.releaseConsole = log_bridges_1.releaseConsole;
386
+ Shield360.captureStdio = log_bridges_1.captureStdio;
387
+ Shield360.releaseStdio = log_bridges_1.releaseStdio;
388
+ /** Feature flags: `Shield360.flags.getFlag(key, context, default)` and `isEnabled(key, context)`. */
389
+ Shield360.flags = client_1.flags;
390
+ /** Budget check: Shield360.budgets.check({ model, estimatedCostUsd }) never throws; see ./budgets. */
391
+ Shield360.budgets = budgets_1.budgets;
392
+ Shield360.BudgetExceededError = budgets_1.BudgetExceededError;
393
+ /**
394
+ * Cost per end customer. setCustomer({ tenantId, userId? }) sets a process-wide
395
+ * default (null clears it); withCustomer(customer, fn) scopes one to fn and its
396
+ * async work, winning over the default; getCustomer() returns the one in effect.
397
+ * Invalid ids are dropped silently. The SDK never hashes: Shield360 stores user
398
+ * ids only as a keyed hash, and tenant ids as given unless the organisation opts
399
+ * to hash them. See ./customer.
400
+ */
401
+ Shield360.setCustomer = customer_1.setCustomer;
402
+ /** SHIELD: the runtime kill switch for RASP (env SHIELD360_RASP=off and the signed config's killSwitch win over it). */
403
+ Shield360.disableRasp = rasp_1.disableRasp;
404
+ Shield360.enableRasp = rasp_1.enableRasp;
405
+ Shield360.withCustomer = customer_1.withCustomer;
406
+ Shield360.getCustomer = customer_1.getCustomer;
407
+ /** AI security pack: Shield360.aiSecurity.scanContext(), scanOutput(), defineTool(), ... See ./ai-security. */
408
+ Shield360.aiSecurity = ai_security_1.aiSecurity;
409
+ Shield360.AiSecurityBlockedError = ai_security_1.AiSecurityBlockedError;
252
410
  const shield360 = Shield360;
253
411
  shield360.usingAttributes = helpers_2.usingAttributes;
254
412
  shield360.injectAdditionalAttributes = helpers_2.injectAdditionalAttributes;
255
413
  exports.default = shield360;
414
+ var app_logs_2 = require("./otel/app-logs");
415
+ Object.defineProperty(exports, "createLogger", { enumerable: true, get: function () { return app_logs_2.createLogger; } });
416
+ // Feature flags.
417
+ var flags_1 = require("./flags");
418
+ Object.defineProperty(exports, "FlagsClient", { enumerable: true, get: function () { return flags_1.FlagsClient; } });
419
+ Object.defineProperty(exports, "flags", { enumerable: true, get: function () { return flags_1.flags; } });
420
+ var feedback_2 = require("./feedback");
421
+ Object.defineProperty(exports, "feedback", { enumerable: true, get: function () { return feedback_2.feedback; } });
422
+ Object.defineProperty(exports, "getCurrentTraceId", { enumerable: true, get: function () { return feedback_2.getCurrentTraceId; } });
423
+ Object.defineProperty(exports, "getCurrentSpanId", { enumerable: true, get: function () { return feedback_2.getCurrentSpanId; } });
256
424
  // Shield Protect re-exports: enforcement APIs, apart from the tracing ones above.
257
425
  var protect_1 = require("./protect");
258
426
  Object.defineProperty(exports, "protectTool", { enumerable: true, get: function () { return protect_1.protectTool; } });
@@ -261,4 +429,27 @@ Object.defineProperty(exports, "protectReadiness", { enumerable: true, get: func
261
429
  Object.defineProperty(exports, "ProtectDeniedError", { enumerable: true, get: function () { return protect_1.ProtectDeniedError; } });
262
430
  Object.defineProperty(exports, "ProtectReadinessError", { enumerable: true, get: function () { return protect_1.ProtectReadinessError; } });
263
431
  Object.defineProperty(exports, "ProtectError", { enumerable: true, get: function () { return protect_1.ProtectError; } });
432
+ // Agent passports: verify the agents that call this service (also at 'shield360/agents').
433
+ var agents_1 = require("./agents");
434
+ Object.defineProperty(exports, "agentVerifier", { enumerable: true, get: function () { return agents_1.agentVerifier; } });
435
+ Object.defineProperty(exports, "AGENT_HEADER", { enumerable: true, get: function () { return agents_1.AGENT_HEADER; } });
436
+ Object.defineProperty(exports, "MemoryReplayStore", { enumerable: true, get: function () { return agents_1.MemoryReplayStore; } });
437
+ // SHIELD: runtime protection (RASP): middleware, the block error, the model-output hook point.
438
+ var rasp_2 = require("./rasp");
439
+ Object.defineProperty(exports, "raspExpress", { enumerable: true, get: function () { return rasp_2.raspExpress; } });
440
+ Object.defineProperty(exports, "raspExpressErrorHandler", { enumerable: true, get: function () { return rasp_2.raspExpressErrorHandler; } });
441
+ Object.defineProperty(exports, "raspFastify", { enumerable: true, get: function () { return rasp_2.raspFastify; } });
442
+ Object.defineProperty(exports, "raspKoa", { enumerable: true, get: function () { return rasp_2.raspKoa; } });
443
+ Object.defineProperty(exports, "raspHttp", { enumerable: true, get: function () { return rasp_2.raspHttp; } });
444
+ Object.defineProperty(exports, "withRasp", { enumerable: true, get: function () { return rasp_2.withRasp; } });
445
+ Object.defineProperty(exports, "recordRequestBody", { enumerable: true, get: function () { return rasp_2.recordRequestBody; } });
446
+ Object.defineProperty(exports, "recordModelOutput", { enumerable: true, get: function () { return rasp_2.recordModelOutput; } });
447
+ Object.defineProperty(exports, "recordToolArguments", { enumerable: true, get: function () { return rasp_2.recordToolArguments; } });
448
+ Object.defineProperty(exports, "runInRaspScope", { enumerable: true, get: function () { return rasp_2.runInRaspScope; } });
449
+ Object.defineProperty(exports, "disableRasp", { enumerable: true, get: function () { return rasp_2.disableRasp; } });
450
+ Object.defineProperty(exports, "enableRasp", { enumerable: true, get: function () { return rasp_2.enableRasp; } });
451
+ Object.defineProperty(exports, "raspActive", { enumerable: true, get: function () { return rasp_2.raspActive; } });
452
+ Object.defineProperty(exports, "isRaspBlocked", { enumerable: true, get: function () { return rasp_2.isRaspBlocked; } });
453
+ Object.defineProperty(exports, "RaspBlockedError", { enumerable: true, get: function () { return rasp_2.RaspBlockedError; } });
454
+ Object.defineProperty(exports, "Shield360RaspBlocked", { enumerable: true, get: function () { return rasp_2.Shield360RaspBlocked; } });
264
455
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}