@vibesdotdev/security 0.0.0-stage → 1.0.0-rc.5

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 (342) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +109 -2
  3. package/dist/cli/index.d.ts +2 -0
  4. package/dist/cli/index.d.ts.map +1 -0
  5. package/dist/cli/index.js +2 -0
  6. package/dist/cli/index.js.map +1 -0
  7. package/dist/cli/plugin.d.ts +15 -0
  8. package/dist/cli/plugin.d.ts.map +1 -0
  9. package/dist/cli/plugin.js +25 -0
  10. package/dist/cli/plugin.js.map +1 -0
  11. package/dist/cli/read-lockfile.d.ts +4 -0
  12. package/dist/cli/read-lockfile.d.ts.map +1 -0
  13. package/dist/cli/read-lockfile.js +74 -0
  14. package/dist/cli/read-lockfile.js.map +1 -0
  15. package/dist/cli/report-output.d.ts +20 -0
  16. package/dist/cli/report-output.d.ts.map +1 -0
  17. package/dist/cli/report-output.js +27 -0
  18. package/dist/cli/report-output.js.map +1 -0
  19. package/dist/cli/shield.cli-group.descriptor.d.ts +9 -0
  20. package/dist/cli/shield.cli-group.descriptor.d.ts.map +1 -0
  21. package/dist/cli/shield.cli-group.descriptor.js +16 -0
  22. package/dist/cli/shield.cli-group.descriptor.js.map +1 -0
  23. package/dist/cli/shield.deps.cli-group.descriptor.d.ts +9 -0
  24. package/dist/cli/shield.deps.cli-group.descriptor.d.ts.map +1 -0
  25. package/dist/cli/shield.deps.cli-group.descriptor.js +17 -0
  26. package/dist/cli/shield.deps.cli-group.descriptor.js.map +1 -0
  27. package/dist/cli/shield.deps.gate.descriptor.d.ts +10 -0
  28. package/dist/cli/shield.deps.gate.descriptor.d.ts.map +1 -0
  29. package/dist/cli/shield.deps.gate.descriptor.js +25 -0
  30. package/dist/cli/shield.deps.gate.descriptor.js.map +1 -0
  31. package/dist/cli/shield.deps.gate.impl.consumer.d.ts +18 -0
  32. package/dist/cli/shield.deps.gate.impl.consumer.d.ts.map +1 -0
  33. package/dist/cli/shield.deps.gate.impl.consumer.js +42 -0
  34. package/dist/cli/shield.deps.gate.impl.consumer.js.map +1 -0
  35. package/dist/cli/shield.deps.scan.descriptor.d.ts +10 -0
  36. package/dist/cli/shield.deps.scan.descriptor.d.ts.map +1 -0
  37. package/dist/cli/shield.deps.scan.descriptor.js +25 -0
  38. package/dist/cli/shield.deps.scan.descriptor.js.map +1 -0
  39. package/dist/cli/shield.deps.scan.impl.consumer.d.ts +16 -0
  40. package/dist/cli/shield.deps.scan.impl.consumer.d.ts.map +1 -0
  41. package/dist/cli/shield.deps.scan.impl.consumer.js +35 -0
  42. package/dist/cli/shield.deps.scan.impl.consumer.js.map +1 -0
  43. package/dist/helpers/constant-time.d.ts +18 -0
  44. package/dist/helpers/constant-time.d.ts.map +1 -0
  45. package/dist/helpers/constant-time.js +49 -0
  46. package/dist/helpers/constant-time.js.map +1 -0
  47. package/dist/helpers/filename-sanitizer.d.ts +2 -0
  48. package/dist/helpers/filename-sanitizer.d.ts.map +1 -0
  49. package/dist/helpers/filename-sanitizer.js +18 -0
  50. package/dist/helpers/filename-sanitizer.js.map +1 -0
  51. package/dist/helpers/forwardable-auth-headers.d.ts +8 -0
  52. package/dist/helpers/forwardable-auth-headers.d.ts.map +1 -0
  53. package/dist/helpers/forwardable-auth-headers.js +44 -0
  54. package/dist/helpers/forwardable-auth-headers.js.map +1 -0
  55. package/dist/helpers/index.d.ts +7 -0
  56. package/dist/helpers/index.d.ts.map +1 -0
  57. package/dist/helpers/index.js +7 -0
  58. package/dist/helpers/index.js.map +1 -0
  59. package/dist/helpers/ip-range.d.ts +3 -0
  60. package/dist/helpers/ip-range.d.ts.map +1 -0
  61. package/dist/helpers/ip-range.js +55 -0
  62. package/dist/helpers/ip-range.js.map +1 -0
  63. package/dist/helpers/mime-classifier.d.ts +3 -0
  64. package/dist/helpers/mime-classifier.d.ts.map +1 -0
  65. package/dist/helpers/mime-classifier.js +29 -0
  66. package/dist/helpers/mime-classifier.js.map +1 -0
  67. package/dist/helpers/pattern-matcher.d.ts +13 -0
  68. package/dist/helpers/pattern-matcher.d.ts.map +1 -0
  69. package/dist/helpers/pattern-matcher.js +29 -0
  70. package/dist/helpers/pattern-matcher.js.map +1 -0
  71. package/dist/implementations/cli-types.d.ts +2 -0
  72. package/dist/implementations/cli-types.d.ts.map +1 -0
  73. package/dist/implementations/cli-types.js +2 -0
  74. package/dist/implementations/cli-types.js.map +1 -0
  75. package/dist/implementations/encryption.d.ts +21 -0
  76. package/dist/implementations/encryption.d.ts.map +1 -0
  77. package/dist/implementations/encryption.js +154 -0
  78. package/dist/implementations/encryption.js.map +1 -0
  79. package/dist/implementations/errors.d.ts +17 -0
  80. package/dist/implementations/errors.d.ts.map +1 -0
  81. package/dist/implementations/errors.js +23 -0
  82. package/dist/implementations/errors.js.map +1 -0
  83. package/dist/implementations/keys.d.ts +24 -0
  84. package/dist/implementations/keys.d.ts.map +1 -0
  85. package/dist/implementations/keys.js +114 -0
  86. package/dist/implementations/keys.js.map +1 -0
  87. package/dist/implementations/redaction-admission.d.ts +24 -0
  88. package/dist/implementations/redaction-admission.d.ts.map +1 -0
  89. package/dist/implementations/redaction-admission.js +44 -0
  90. package/dist/implementations/redaction-admission.js.map +1 -0
  91. package/dist/implementations/redaction.d.ts +32 -0
  92. package/dist/implementations/redaction.d.ts.map +1 -0
  93. package/dist/implementations/redaction.js +47 -0
  94. package/dist/implementations/redaction.js.map +1 -0
  95. package/dist/implementations/redactor.inprocess.impl.d.ts +30 -0
  96. package/dist/implementations/redactor.inprocess.impl.d.ts.map +1 -0
  97. package/dist/implementations/redactor.inprocess.impl.js +26 -0
  98. package/dist/implementations/redactor.inprocess.impl.js.map +1 -0
  99. package/dist/implementations/redactor.subprocess.impl.d.ts +25 -0
  100. package/dist/implementations/redactor.subprocess.impl.d.ts.map +1 -0
  101. package/dist/implementations/redactor.subprocess.impl.js +42 -0
  102. package/dist/implementations/redactor.subprocess.impl.js.map +1 -0
  103. package/dist/implementations/scanner.impl.d.ts +7 -0
  104. package/dist/implementations/scanner.impl.d.ts.map +1 -0
  105. package/dist/implementations/scanner.impl.js +166 -0
  106. package/dist/implementations/scanner.impl.js.map +1 -0
  107. package/dist/index.d.ts +18 -0
  108. package/dist/index.d.ts.map +1 -0
  109. package/dist/index.js +11 -0
  110. package/dist/index.js.map +1 -0
  111. package/dist/kinds/auditor.kind.d.ts +31 -0
  112. package/dist/kinds/auditor.kind.d.ts.map +1 -0
  113. package/dist/kinds/auditor.kind.js +48 -0
  114. package/dist/kinds/auditor.kind.js.map +1 -0
  115. package/dist/kinds/dep-scanner.kind.d.ts +27 -0
  116. package/dist/kinds/dep-scanner.kind.d.ts.map +1 -0
  117. package/dist/kinds/dep-scanner.kind.js +29 -0
  118. package/dist/kinds/dep-scanner.kind.js.map +1 -0
  119. package/dist/kinds/freshness-policy.kind.d.ts +34 -0
  120. package/dist/kinds/freshness-policy.kind.d.ts.map +1 -0
  121. package/dist/kinds/freshness-policy.kind.js +47 -0
  122. package/dist/kinds/freshness-policy.kind.js.map +1 -0
  123. package/dist/kinds/index.d.ts +9 -0
  124. package/dist/kinds/index.d.ts.map +1 -0
  125. package/dist/kinds/index.js +9 -0
  126. package/dist/kinds/index.js.map +1 -0
  127. package/dist/kinds/ioc-feed.kind.d.ts +35 -0
  128. package/dist/kinds/ioc-feed.kind.d.ts.map +1 -0
  129. package/dist/kinds/ioc-feed.kind.js +36 -0
  130. package/dist/kinds/ioc-feed.kind.js.map +1 -0
  131. package/dist/kinds/policy.kind.d.ts +42 -0
  132. package/dist/kinds/policy.kind.d.ts.map +1 -0
  133. package/dist/kinds/policy.kind.js +23 -0
  134. package/dist/kinds/policy.kind.js.map +1 -0
  135. package/dist/kinds/redactor.kind.d.ts +30 -0
  136. package/dist/kinds/redactor.kind.d.ts.map +1 -0
  137. package/dist/kinds/redactor.kind.js +25 -0
  138. package/dist/kinds/redactor.kind.js.map +1 -0
  139. package/dist/kinds/scanner.kind.d.ts +35 -0
  140. package/dist/kinds/scanner.kind.d.ts.map +1 -0
  141. package/dist/kinds/scanner.kind.js +26 -0
  142. package/dist/kinds/scanner.kind.js.map +1 -0
  143. package/dist/schemas/AuditEvent.d.ts +30 -0
  144. package/dist/schemas/AuditEvent.d.ts.map +1 -0
  145. package/dist/schemas/AuditEvent.js +17 -0
  146. package/dist/schemas/AuditEvent.js.map +1 -0
  147. package/dist/schemas/RedactionRule.d.ts +16 -0
  148. package/dist/schemas/RedactionRule.d.ts.map +1 -0
  149. package/dist/schemas/RedactionRule.js +10 -0
  150. package/dist/schemas/RedactionRule.js.map +1 -0
  151. package/dist/schemas/SecurityPolicy.d.ts +21 -0
  152. package/dist/schemas/SecurityPolicy.d.ts.map +1 -0
  153. package/dist/schemas/SecurityPolicy.js +9 -0
  154. package/dist/schemas/SecurityPolicy.js.map +1 -0
  155. package/dist/schemas/ThreatReport.d.ts +25 -0
  156. package/dist/schemas/ThreatReport.d.ts.map +1 -0
  157. package/dist/schemas/ThreatReport.js +14 -0
  158. package/dist/schemas/ThreatReport.js.map +1 -0
  159. package/dist/schemas/contracts/auditor.d.ts +68 -0
  160. package/dist/schemas/contracts/auditor.d.ts.map +1 -0
  161. package/dist/schemas/contracts/auditor.js +13 -0
  162. package/dist/schemas/contracts/auditor.js.map +1 -0
  163. package/dist/schemas/contracts/card.d.ts +106 -0
  164. package/dist/schemas/contracts/card.d.ts.map +1 -0
  165. package/dist/schemas/contracts/card.js +73 -0
  166. package/dist/schemas/contracts/card.js.map +1 -0
  167. package/dist/schemas/contracts/dep-scanner.d.ts +91 -0
  168. package/dist/schemas/contracts/dep-scanner.d.ts.map +1 -0
  169. package/dist/schemas/contracts/dep-scanner.js +27 -0
  170. package/dist/schemas/contracts/dep-scanner.js.map +1 -0
  171. package/dist/schemas/contracts/freshness-policy.d.ts +99 -0
  172. package/dist/schemas/contracts/freshness-policy.d.ts.map +1 -0
  173. package/dist/schemas/contracts/freshness-policy.js +31 -0
  174. package/dist/schemas/contracts/freshness-policy.js.map +1 -0
  175. package/dist/schemas/contracts/ioc-feed.d.ts +85 -0
  176. package/dist/schemas/contracts/ioc-feed.d.ts.map +1 -0
  177. package/dist/schemas/contracts/ioc-feed.js +28 -0
  178. package/dist/schemas/contracts/ioc-feed.js.map +1 -0
  179. package/dist/schemas/contracts/misc.d.ts +11 -0
  180. package/dist/schemas/contracts/misc.d.ts.map +1 -0
  181. package/dist/schemas/contracts/misc.js +4 -0
  182. package/dist/schemas/contracts/misc.js.map +1 -0
  183. package/dist/schemas/contracts/policy.d.ts +93 -0
  184. package/dist/schemas/contracts/policy.d.ts.map +1 -0
  185. package/dist/schemas/contracts/policy.js +25 -0
  186. package/dist/schemas/contracts/policy.js.map +1 -0
  187. package/dist/schemas/contracts/redactor.d.ts +99 -0
  188. package/dist/schemas/contracts/redactor.d.ts.map +1 -0
  189. package/dist/schemas/contracts/redactor.js +34 -0
  190. package/dist/schemas/contracts/redactor.js.map +1 -0
  191. package/dist/schemas/contracts/scanner.d.ts +112 -0
  192. package/dist/schemas/contracts/scanner.d.ts.map +1 -0
  193. package/dist/schemas/contracts/scanner.js +40 -0
  194. package/dist/schemas/contracts/scanner.js.map +1 -0
  195. package/dist/schemas/contracts/widget.d.ts +19 -0
  196. package/dist/schemas/contracts/widget.d.ts.map +1 -0
  197. package/dist/schemas/contracts/widget.js +10 -0
  198. package/dist/schemas/contracts/widget.js.map +1 -0
  199. package/dist/schemas/encryption.d.ts +25 -0
  200. package/dist/schemas/encryption.d.ts.map +1 -0
  201. package/dist/schemas/encryption.js +35 -0
  202. package/dist/schemas/encryption.js.map +1 -0
  203. package/dist/schemas/index.d.ts +6 -0
  204. package/dist/schemas/index.d.ts.map +1 -0
  205. package/dist/schemas/index.js +6 -0
  206. package/dist/schemas/index.js.map +1 -0
  207. package/dist/schemas/policy.d.ts +2 -0
  208. package/dist/schemas/policy.d.ts.map +1 -0
  209. package/dist/schemas/policy.js +2 -0
  210. package/dist/schemas/policy.js.map +1 -0
  211. package/dist/schemas/redactor.d.ts +2 -0
  212. package/dist/schemas/redactor.d.ts.map +1 -0
  213. package/dist/schemas/redactor.js +2 -0
  214. package/dist/schemas/redactor.js.map +1 -0
  215. package/dist/schemas/report-event.d.ts +29 -0
  216. package/dist/schemas/report-event.d.ts.map +1 -0
  217. package/dist/schemas/report-event.js +19 -0
  218. package/dist/schemas/report-event.js.map +1 -0
  219. package/dist/schemas/scanner.d.ts +2 -0
  220. package/dist/schemas/scanner.d.ts.map +1 -0
  221. package/dist/schemas/scanner.js +2 -0
  222. package/dist/schemas/scanner.js.map +1 -0
  223. package/dist/security-client/index.d.ts +3 -0
  224. package/dist/security-client/index.d.ts.map +1 -0
  225. package/dist/security-client/index.js +2 -0
  226. package/dist/security-client/index.js.map +1 -0
  227. package/dist/security-client/security-client.d.ts +34 -0
  228. package/dist/security-client/security-client.d.ts.map +1 -0
  229. package/dist/security-client/security-client.js +54 -0
  230. package/dist/security-client/security-client.js.map +1 -0
  231. package/dist/security.consumer.plugin.d.ts +3 -0
  232. package/dist/security.consumer.plugin.d.ts.map +1 -0
  233. package/dist/security.consumer.plugin.js +28 -0
  234. package/dist/security.consumer.plugin.js.map +1 -0
  235. package/dist/security.plugin.d.ts +16 -0
  236. package/dist/security.plugin.d.ts.map +1 -0
  237. package/dist/security.plugin.js +78 -0
  238. package/dist/security.plugin.js.map +1 -0
  239. package/dist/svelte/index.d.ts +3 -0
  240. package/dist/svelte/index.d.ts.map +1 -0
  241. package/dist/svelte/index.js +2 -0
  242. package/dist/svelte/security-svelte.plugin.d.ts +5 -0
  243. package/dist/svelte/security-svelte.plugin.d.ts.map +1 -0
  244. package/dist/svelte/security-svelte.plugin.js +49 -0
  245. package/dist/svelte/styles.css +8 -0
  246. package/dist/svelte/tool-widgets/SecurityToolCard.svelte +140 -0
  247. package/dist/svelte/tool-widgets/SecurityToolCard.svelte.d.ts +5 -0
  248. package/dist/svelte/tool-widgets/SecurityToolCard.svelte.d.ts.map +1 -0
  249. package/dist/svelte/tool-widgets/index.d.ts +2 -0
  250. package/dist/svelte/tool-widgets/index.d.ts.map +1 -0
  251. package/dist/svelte/tool-widgets/index.js +6 -0
  252. package/dist/tools/check-policy/check-policy.descriptor.d.ts +37 -0
  253. package/dist/tools/check-policy/check-policy.descriptor.d.ts.map +1 -0
  254. package/dist/tools/check-policy/check-policy.descriptor.js +21 -0
  255. package/dist/tools/check-policy/check-policy.descriptor.js.map +1 -0
  256. package/dist/tools/check-policy/check-policy.impl.consumer.d.ts +7 -0
  257. package/dist/tools/check-policy/check-policy.impl.consumer.d.ts.map +1 -0
  258. package/dist/tools/check-policy/check-policy.impl.consumer.js +21 -0
  259. package/dist/tools/check-policy/check-policy.impl.consumer.js.map +1 -0
  260. package/dist/tools/check-policy/index.d.ts +3 -0
  261. package/dist/tools/check-policy/index.d.ts.map +1 -0
  262. package/dist/tools/check-policy/index.js +2 -0
  263. package/dist/tools/check-policy/index.js.map +1 -0
  264. package/dist/tools/check-policy/schemas.d.ts +23 -0
  265. package/dist/tools/check-policy/schemas.d.ts.map +1 -0
  266. package/dist/tools/check-policy/schemas.js +13 -0
  267. package/dist/tools/check-policy/schemas.js.map +1 -0
  268. package/dist/tools/index.d.ts +10 -0
  269. package/dist/tools/index.d.ts.map +1 -0
  270. package/dist/tools/index.js +6 -0
  271. package/dist/tools/index.js.map +1 -0
  272. package/dist/tools/redact-output/index.d.ts +3 -0
  273. package/dist/tools/redact-output/index.d.ts.map +1 -0
  274. package/dist/tools/redact-output/index.js +2 -0
  275. package/dist/tools/redact-output/index.js.map +1 -0
  276. package/dist/tools/redact-output/redact-output.descriptor.d.ts +42 -0
  277. package/dist/tools/redact-output/redact-output.descriptor.d.ts.map +1 -0
  278. package/dist/tools/redact-output/redact-output.descriptor.js +21 -0
  279. package/dist/tools/redact-output/redact-output.descriptor.js.map +1 -0
  280. package/dist/tools/redact-output/redact-output.impl.consumer.d.ts +7 -0
  281. package/dist/tools/redact-output/redact-output.impl.consumer.d.ts.map +1 -0
  282. package/dist/tools/redact-output/redact-output.impl.consumer.js +18 -0
  283. package/dist/tools/redact-output/redact-output.impl.consumer.js.map +1 -0
  284. package/dist/tools/redact-output/schemas.d.ts +28 -0
  285. package/dist/tools/redact-output/schemas.d.ts.map +1 -0
  286. package/dist/tools/redact-output/schemas.js +13 -0
  287. package/dist/tools/redact-output/schemas.js.map +1 -0
  288. package/dist/tools/report-event/index.d.ts +3 -0
  289. package/dist/tools/report-event/index.d.ts.map +1 -0
  290. package/dist/tools/report-event/index.js +2 -0
  291. package/dist/tools/report-event/index.js.map +1 -0
  292. package/dist/tools/report-event/report-event.descriptor.d.ts +43 -0
  293. package/dist/tools/report-event/report-event.descriptor.d.ts.map +1 -0
  294. package/dist/tools/report-event/report-event.descriptor.js +21 -0
  295. package/dist/tools/report-event/report-event.descriptor.js.map +1 -0
  296. package/dist/tools/report-event/report-event.impl.consumer.d.ts +24 -0
  297. package/dist/tools/report-event/report-event.impl.consumer.d.ts.map +1 -0
  298. package/dist/tools/report-event/report-event.impl.consumer.js +61 -0
  299. package/dist/tools/report-event/report-event.impl.consumer.js.map +1 -0
  300. package/dist/tools/report-event/schemas.d.ts +2 -0
  301. package/dist/tools/report-event/schemas.d.ts.map +1 -0
  302. package/dist/tools/report-event/schemas.js +3 -0
  303. package/dist/tools/report-event/schemas.js.map +1 -0
  304. package/dist/tools/scan-input/index.d.ts +3 -0
  305. package/dist/tools/scan-input/index.d.ts.map +1 -0
  306. package/dist/tools/scan-input/index.js +2 -0
  307. package/dist/tools/scan-input/index.js.map +1 -0
  308. package/dist/tools/scan-input/scan-input.descriptor.d.ts +49 -0
  309. package/dist/tools/scan-input/scan-input.descriptor.d.ts.map +1 -0
  310. package/dist/tools/scan-input/scan-input.descriptor.js +21 -0
  311. package/dist/tools/scan-input/scan-input.descriptor.js.map +1 -0
  312. package/dist/tools/scan-input/scan-input.impl.consumer.d.ts +7 -0
  313. package/dist/tools/scan-input/scan-input.impl.consumer.d.ts.map +1 -0
  314. package/dist/tools/scan-input/scan-input.impl.consumer.js +22 -0
  315. package/dist/tools/scan-input/scan-input.impl.consumer.js.map +1 -0
  316. package/dist/tools/scan-input/schemas.d.ts +36 -0
  317. package/dist/tools/scan-input/schemas.d.ts.map +1 -0
  318. package/dist/tools/scan-input/schemas.js +15 -0
  319. package/dist/tools/scan-input/schemas.js.map +1 -0
  320. package/dist/tools/security-tool-card.d.ts +13 -0
  321. package/dist/tools/security-tool-card.d.ts.map +1 -0
  322. package/dist/tools/security-tool-card.js +171 -0
  323. package/dist/tools/security-tool-card.js.map +1 -0
  324. package/dist/tools/security.docs.descriptor.d.ts +17 -0
  325. package/dist/tools/security.docs.descriptor.d.ts.map +1 -0
  326. package/dist/tools/security.docs.descriptor.js +49 -0
  327. package/dist/tools/security.docs.descriptor.js.map +1 -0
  328. package/dist/tui/index.d.ts +2 -0
  329. package/dist/tui/index.d.ts.map +1 -0
  330. package/dist/tui/index.js +2 -0
  331. package/dist/tui/index.js.map +1 -0
  332. package/dist/tui/security-tui.plugin.d.ts +3 -0
  333. package/dist/tui/security-tui.plugin.d.ts.map +1 -0
  334. package/dist/tui/security-tui.plugin.js +31 -0
  335. package/dist/tui/security-tui.plugin.js.map +1 -0
  336. package/dist/tui/tool-widgets/SecurityToolWidget.impl.consumer.d.ts +5 -0
  337. package/dist/tui/tool-widgets/SecurityToolWidget.impl.consumer.d.ts.map +1 -0
  338. package/dist/tui/tool-widgets/SecurityToolWidget.impl.consumer.js +37 -0
  339. package/dist/tui/tool-widgets/SecurityToolWidget.impl.consumer.js.map +1 -0
  340. package/docs/host-boundary.md +186 -0
  341. package/docs/scanner-work.md +29 -0
  342. package/package.json +245 -4
@@ -0,0 +1,73 @@
1
+ import * as z from 'zod/v4';
2
+ import { PolicyOutcomeSchema } from "./policy.js";
3
+ export const SECURITY_TOOL_IDS = [
4
+ 'security.check-policy',
5
+ 'security.redact-output',
6
+ 'security.report-event',
7
+ 'security.scan-input',
8
+ ];
9
+ export const SecurityToolIdSchema = z.enum(SECURITY_TOOL_IDS);
10
+ export const SecurityToolCardToneSchema = z.enum(['default', 'success', 'danger', 'warning', 'muted']);
11
+ export const SecurityToolThreatSchema = z.object({ severity: z.string(), kind: z.string(), description: z.string() });
12
+ export const SecurityToolCardRowSchema = z.object({ label: z.string(), value: z.string(), tone: SecurityToolCardToneSchema });
13
+ export const SecurityToolCardModelSchema = z.object({
14
+ toolId: z.string(), title: z.string(), icon: z.string(), policyName: z.string().nullable(),
15
+ decision: PolicyOutcomeSchema.nullable(), decisionLabel: z.string().nullable(),
16
+ eventType: z.string().nullable(), recorded: z.boolean().nullable(), eventId: z.string().nullable(),
17
+ actor: z.string().nullable(), resource: z.string().nullable(), reason: z.string().nullable(),
18
+ error: z.string().nullable(), available: z.boolean().nullable(), availabilityLabel: z.string().nullable(),
19
+ threats: z.array(SecurityToolThreatSchema), matchCount: z.number().nullable(), redactedPreview: z.string().nullable(), defaultOpen: z.boolean()
20
+ });
21
+ const NonBlank = z.string().refine((s) => s.trim().length > 0);
22
+ export const StringField = NonBlank.optional().catch(undefined);
23
+ const DecisionField = z.enum(['allow', 'deny', 'review']).optional().catch(undefined);
24
+ const BooleanField = z.boolean().optional().catch(undefined);
25
+ const MatchesField = z.array(z.unknown()).optional().catch(undefined);
26
+ const SingleThreatSchema = z.object({
27
+ kind: NonBlank,
28
+ severity: NonBlank.optional().catch(undefined),
29
+ description: NonBlank.optional().catch(undefined),
30
+ }).passthrough();
31
+ const ThreatsField = z.array(z.unknown()).optional().catch(undefined).transform((raw) => {
32
+ if (!Array.isArray(raw))
33
+ return [];
34
+ const threats = [];
35
+ for (const entry of raw) {
36
+ const parsed = SingleThreatSchema.safeParse(entry);
37
+ if (parsed.success) {
38
+ const item = parsed.data;
39
+ threats.push({
40
+ severity: item.severity ?? 'low',
41
+ kind: item.kind,
42
+ description: item.description ?? item.kind,
43
+ });
44
+ }
45
+ }
46
+ return threats;
47
+ });
48
+ const CardEventSchema = z.object({
49
+ id: StringField,
50
+ action: StringField,
51
+ actor: StringField,
52
+ resource: StringField,
53
+ outcome: DecisionField,
54
+ }).passthrough().optional().catch(undefined);
55
+ export const CardArgsSchema = z.object({
56
+ policyId: StringField,
57
+ event: CardEventSchema,
58
+ }).passthrough().optional().catch(undefined);
59
+ export const CardOutputSchema = z.object({
60
+ policyId: StringField,
61
+ outcome: DecisionField,
62
+ recorded: BooleanField,
63
+ eventId: StringField,
64
+ reason: StringField,
65
+ error: StringField,
66
+ engineAvailable: BooleanField,
67
+ scannerAvailable: BooleanField,
68
+ redactorAvailable: BooleanField,
69
+ threats: ThreatsField,
70
+ matches: MatchesField,
71
+ redacted: StringField,
72
+ }).passthrough().optional().catch(undefined);
73
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../../../src/schemas/contracts/card.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ import * as z from 'zod/v4';
2
+ export declare const IOCEntrySchema: z.ZodObject<{
3
+ packageName: z.ZodString;
4
+ versionRange: z.ZodString;
5
+ cve: z.ZodOptional<z.ZodString>;
6
+ severity: z.ZodEnum<{
7
+ low: "low";
8
+ medium: "medium";
9
+ high: "high";
10
+ critical: "critical";
11
+ }>;
12
+ source: z.ZodString;
13
+ reportedAt: z.ZodString;
14
+ }, z.core.$strip>;
15
+ export type IOCEntry = z.infer<typeof IOCEntrySchema>;
16
+ export declare const DepScanReportSchema: z.ZodObject<{
17
+ verdict: z.ZodEnum<{
18
+ unknown: "unknown";
19
+ clean: "clean";
20
+ compromised: "compromised";
21
+ }>;
22
+ findings: z.ZodArray<z.ZodObject<{
23
+ packageName: z.ZodString;
24
+ versionRange: z.ZodString;
25
+ cve: z.ZodOptional<z.ZodString>;
26
+ severity: z.ZodEnum<{
27
+ low: "low";
28
+ medium: "medium";
29
+ high: "high";
30
+ critical: "critical";
31
+ }>;
32
+ source: z.ZodString;
33
+ reportedAt: z.ZodString;
34
+ }, z.core.$strip>>;
35
+ scannedAt: z.ZodString;
36
+ packagesChecked: z.ZodNumber;
37
+ scannerAvailable: z.ZodBoolean;
38
+ }, z.core.$strip>;
39
+ export type DepScanReport = z.infer<typeof DepScanReportSchema>;
40
+ export declare const DepScannerDescriptorSchema: z.ZodObject<{
41
+ id: z.ZodString;
42
+ kind: z.ZodLiteral<"security/dep-scanner">;
43
+ name: z.ZodString;
44
+ description: z.ZodOptional<z.ZodString>;
45
+ enabled: z.ZodOptional<z.ZodBoolean>;
46
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
47
+ hardware: z.ZodOptional<z.ZodArray<z.ZodEnum<{
48
+ consumer: "consumer";
49
+ cloud: "cloud";
50
+ }>>>;
51
+ }, z.core.$strip>;
52
+ export type DepScannerDescriptor = z.output<typeof DepScannerDescriptorSchema>;
53
+ export declare const DepScannerServiceSchema: z.ZodObject<{
54
+ descriptor: z.ZodObject<{
55
+ id: z.ZodString;
56
+ kind: z.ZodLiteral<"security/dep-scanner">;
57
+ name: z.ZodString;
58
+ description: z.ZodOptional<z.ZodString>;
59
+ enabled: z.ZodOptional<z.ZodBoolean>;
60
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
61
+ hardware: z.ZodOptional<z.ZodArray<z.ZodEnum<{
62
+ consumer: "consumer";
63
+ cloud: "cloud";
64
+ }>>>;
65
+ }, z.core.$strip>;
66
+ scan: z.ZodFunction<z.ZodTuple<readonly [z.ZodString], null>, z.ZodPromise<z.ZodObject<{
67
+ verdict: z.ZodEnum<{
68
+ unknown: "unknown";
69
+ clean: "clean";
70
+ compromised: "compromised";
71
+ }>;
72
+ findings: z.ZodArray<z.ZodObject<{
73
+ packageName: z.ZodString;
74
+ versionRange: z.ZodString;
75
+ cve: z.ZodOptional<z.ZodString>;
76
+ severity: z.ZodEnum<{
77
+ low: "low";
78
+ medium: "medium";
79
+ high: "high";
80
+ critical: "critical";
81
+ }>;
82
+ source: z.ZodString;
83
+ reportedAt: z.ZodString;
84
+ }, z.core.$strip>>;
85
+ scannedAt: z.ZodString;
86
+ packagesChecked: z.ZodNumber;
87
+ scannerAvailable: z.ZodBoolean;
88
+ }, z.core.$strip>>>;
89
+ }, z.core.$strip>;
90
+ export type DepScannerService = z.infer<typeof DepScannerServiceSchema>;
91
+ //# sourceMappingURL=dep-scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dep-scanner.d.ts","sourceRoot":"","sources":["../../../src/schemas/contracts/dep-scanner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,eAAO,MAAM,cAAc;;;;;;;;;;;;iBAOzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;iBAM9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,eAAO,MAAM,0BAA0B;;;;;;;;;;;iBAQrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC/E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA0I,CAAC;AAC/K,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import * as z from 'zod/v4';
2
+ export const IOCEntrySchema = z.object({
3
+ packageName: z.string(),
4
+ versionRange: z.string(),
5
+ cve: z.string().optional(),
6
+ severity: z.enum(['low', 'medium', 'high', 'critical']),
7
+ source: z.string(),
8
+ reportedAt: z.string().datetime(),
9
+ });
10
+ export const DepScanReportSchema = z.object({
11
+ verdict: z.enum(['clean', 'compromised', 'unknown']),
12
+ findings: z.array(IOCEntrySchema),
13
+ scannedAt: z.string().datetime(),
14
+ packagesChecked: z.number(),
15
+ scannerAvailable: z.boolean().describe('Whether a real scanner is registered (if false, verdict is from the default stub)'),
16
+ });
17
+ export const DepScannerDescriptorSchema = z.object({
18
+ id: z.string(),
19
+ kind: z.literal('security/dep-scanner'),
20
+ name: z.string(),
21
+ description: z.string().optional(),
22
+ enabled: z.boolean().optional(),
23
+ tags: z.array(z.string()).optional(),
24
+ hardware: z.array(z.enum(['consumer', 'cloud'])).optional(),
25
+ });
26
+ export const DepScannerServiceSchema = z.object({ descriptor: DepScannerDescriptorSchema, scan: z.function({ input: [z.string()], output: z.promise(DepScanReportSchema) }) });
27
+ //# sourceMappingURL=dep-scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dep-scanner.js","sourceRoot":"","sources":["../../../src/schemas/contracts/dep-scanner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,mFAAmF,CAAC;CAC9H,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC9D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC"}
@@ -0,0 +1,99 @@
1
+ import * as z from 'zod/v4';
2
+ export declare const FreshnessVerdictSchema: z.ZodObject<{
3
+ packageName: z.ZodString;
4
+ version: z.ZodString;
5
+ publishedAt: z.ZodString;
6
+ ageHours: z.ZodNumber;
7
+ verdict: z.ZodEnum<{
8
+ unknown: "unknown";
9
+ fresh: "fresh";
10
+ stale: "stale";
11
+ }>;
12
+ policy: z.ZodObject<{
13
+ minAgeHours: z.ZodNumber;
14
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
15
+ }, z.core.$strip>;
16
+ }, z.core.$strip>;
17
+ export type FreshnessVerdict = z.infer<typeof FreshnessVerdictSchema>;
18
+ export declare const FreshnessPolicyDescriptorSchema: z.ZodObject<{
19
+ id: z.ZodString;
20
+ kind: z.ZodLiteral<"security/freshness-policy">;
21
+ name: z.ZodString;
22
+ description: z.ZodOptional<z.ZodString>;
23
+ enabled: z.ZodOptional<z.ZodBoolean>;
24
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
25
+ hardware: z.ZodOptional<z.ZodArray<z.ZodEnum<{
26
+ consumer: "consumer";
27
+ cloud: "cloud";
28
+ }>>>;
29
+ minAgeHours: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
30
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
31
+ allowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
32
+ breakglass: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
33
+ }, z.core.$strip>;
34
+ export type FreshnessPolicyDescriptor = z.output<typeof FreshnessPolicyDescriptorSchema>;
35
+ export declare const FreshnessInputSchema: z.ZodObject<{
36
+ name: z.ZodString;
37
+ version: z.ZodString;
38
+ publishedAt: z.ZodString;
39
+ }, z.core.$strip>;
40
+ export declare const FreshnessInputsSchema: z.ZodArray<z.ZodObject<{
41
+ name: z.ZodString;
42
+ version: z.ZodString;
43
+ publishedAt: z.ZodString;
44
+ }, z.core.$strip>>;
45
+ export type FreshnessInput = z.infer<typeof FreshnessInputSchema>;
46
+ export declare const FreshnessPolicyServiceSchema: z.ZodObject<{
47
+ descriptor: z.ZodObject<{
48
+ id: z.ZodString;
49
+ kind: z.ZodLiteral<"security/freshness-policy">;
50
+ name: z.ZodString;
51
+ description: z.ZodOptional<z.ZodString>;
52
+ enabled: z.ZodOptional<z.ZodBoolean>;
53
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
54
+ hardware: z.ZodOptional<z.ZodArray<z.ZodEnum<{
55
+ consumer: "consumer";
56
+ cloud: "cloud";
57
+ }>>>;
58
+ minAgeHours: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
59
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
60
+ allowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
61
+ breakglass: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
62
+ }, z.core.$strip>;
63
+ evaluate: z.ZodFunction<z.ZodTuple<readonly [z.ZodString, z.ZodString, z.ZodString], null>, z.ZodPromise<z.ZodObject<{
64
+ packageName: z.ZodString;
65
+ version: z.ZodString;
66
+ publishedAt: z.ZodString;
67
+ ageHours: z.ZodNumber;
68
+ verdict: z.ZodEnum<{
69
+ unknown: "unknown";
70
+ fresh: "fresh";
71
+ stale: "stale";
72
+ }>;
73
+ policy: z.ZodObject<{
74
+ minAgeHours: z.ZodNumber;
75
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
76
+ }, z.core.$strip>;
77
+ }, z.core.$strip>>>;
78
+ evaluateMany: z.ZodFunction<z.ZodTuple<readonly [z.ZodArray<z.ZodObject<{
79
+ name: z.ZodString;
80
+ version: z.ZodString;
81
+ publishedAt: z.ZodString;
82
+ }, z.core.$strip>>], null>, z.ZodPromise<z.ZodArray<z.ZodObject<{
83
+ packageName: z.ZodString;
84
+ version: z.ZodString;
85
+ publishedAt: z.ZodString;
86
+ ageHours: z.ZodNumber;
87
+ verdict: z.ZodEnum<{
88
+ unknown: "unknown";
89
+ fresh: "fresh";
90
+ stale: "stale";
91
+ }>;
92
+ policy: z.ZodObject<{
93
+ minAgeHours: z.ZodNumber;
94
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
95
+ }, z.core.$strip>;
96
+ }, z.core.$strip>>>>;
97
+ }, z.core.$strip>;
98
+ export type FreshnessPolicyService = z.infer<typeof FreshnessPolicyServiceSchema>;
99
+ //# sourceMappingURL=freshness-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"freshness-policy.d.ts","sourceRoot":"","sources":["../../../src/schemas/contracts/freshness-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;iBAUjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;iBAY1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACzF,eAAO,MAAM,oBAAoB;;;;iBAE/B,CAAC;AACH,eAAO,MAAM,qBAAqB;;;;kBAAgC,CAAC;AACnE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAyW,CAAC;AACnZ,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import * as z from 'zod/v4';
2
+ export const FreshnessVerdictSchema = z.object({
3
+ packageName: z.string(),
4
+ version: z.string(),
5
+ publishedAt: z.string().datetime(),
6
+ ageHours: z.number(),
7
+ verdict: z.enum(['fresh', 'stale', 'unknown']),
8
+ policy: z.object({
9
+ minAgeHours: z.number(),
10
+ maxAgeDays: z.number().optional(),
11
+ }),
12
+ });
13
+ export const FreshnessPolicyDescriptorSchema = z.object({
14
+ id: z.string(),
15
+ kind: z.literal('security/freshness-policy'),
16
+ name: z.string(),
17
+ description: z.string().optional(),
18
+ enabled: z.boolean().optional(),
19
+ tags: z.array(z.string()).optional(),
20
+ hardware: z.array(z.enum(['consumer', 'cloud'])).optional(),
21
+ minAgeHours: z.number().optional().default(48),
22
+ maxAgeDays: z.number().optional(),
23
+ allowlist: z.array(z.string()).optional(),
24
+ breakglass: z.boolean().optional().default(false),
25
+ });
26
+ export const FreshnessInputSchema = z.object({
27
+ name: z.string(), version: z.string(), publishedAt: z.string().datetime(),
28
+ });
29
+ export const FreshnessInputsSchema = z.array(FreshnessInputSchema);
30
+ export const FreshnessPolicyServiceSchema = z.object({ descriptor: FreshnessPolicyDescriptorSchema, evaluate: z.function({ input: [FreshnessInputSchema.shape.name, FreshnessInputSchema.shape.version, FreshnessInputSchema.shape.publishedAt], output: z.promise(FreshnessVerdictSchema) }), evaluateMany: z.function({ input: [FreshnessInputsSchema], output: z.promise(z.array(FreshnessVerdictSchema)) }) });
31
+ //# sourceMappingURL=freshness-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"freshness-policy.js","sourceRoot":"","sources":["../../../src/schemas/contracts/freshness-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACpC,CAAC;CACL,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACpD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5E,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAEnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,+BAA+B,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC"}
@@ -0,0 +1,85 @@
1
+ import * as z from 'zod/v4';
2
+ export declare const IOCFeedEntrySchema: z.ZodObject<{
3
+ packageName: z.ZodString;
4
+ versionRange: z.ZodString;
5
+ cve: z.ZodOptional<z.ZodString>;
6
+ severity: z.ZodEnum<{
7
+ low: "low";
8
+ medium: "medium";
9
+ high: "high";
10
+ critical: "critical";
11
+ }>;
12
+ reportedAt: z.ZodString;
13
+ }, z.core.$strip>;
14
+ export type IOCFeedEntry = z.infer<typeof IOCFeedEntrySchema>;
15
+ /** Successful provider synchronization only; descriptor-only defaults refuse with UNAVAILABLE/ioc-feed-unavailable. */
16
+ export declare const IOCFeedSyncStatusSchema: z.ZodObject<{
17
+ lastSuccessfulSyncAt: z.ZodString;
18
+ maxStaleness: z.ZodDefault<z.ZodNumber>;
19
+ entryCount: z.ZodNumber;
20
+ }, z.core.$strip>;
21
+ export type IOCFeedSyncStatus = z.infer<typeof IOCFeedSyncStatusSchema>;
22
+ export declare const IOCFeedDescriptorSchema: z.ZodObject<{
23
+ id: z.ZodString;
24
+ kind: z.ZodLiteral<"security/ioc-feed">;
25
+ name: z.ZodString;
26
+ description: z.ZodOptional<z.ZodString>;
27
+ enabled: z.ZodOptional<z.ZodBoolean>;
28
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
29
+ hardware: z.ZodOptional<z.ZodArray<z.ZodEnum<{
30
+ consumer: "consumer";
31
+ cloud: "cloud";
32
+ }>>>;
33
+ maxStaleness: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
34
+ trustTier: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
35
+ low: "low";
36
+ medium: "medium";
37
+ high: "high";
38
+ }>>>;
39
+ }, z.core.$strip>;
40
+ export type IOCFeedDescriptor = z.output<typeof IOCFeedDescriptorSchema>;
41
+ /** All three methods require an implementation; an empty query is authoritative only from a provider. */
42
+ export declare const IOCFeedServiceSchema: z.ZodObject<{
43
+ descriptor: z.ZodObject<{
44
+ id: z.ZodString;
45
+ kind: z.ZodLiteral<"security/ioc-feed">;
46
+ name: z.ZodString;
47
+ description: z.ZodOptional<z.ZodString>;
48
+ enabled: z.ZodOptional<z.ZodBoolean>;
49
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
50
+ hardware: z.ZodOptional<z.ZodArray<z.ZodEnum<{
51
+ consumer: "consumer";
52
+ cloud: "cloud";
53
+ }>>>;
54
+ maxStaleness: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
55
+ trustTier: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
56
+ low: "low";
57
+ medium: "medium";
58
+ high: "high";
59
+ }>>>;
60
+ }, z.core.$strip>;
61
+ sync: z.ZodFunction<z.ZodTuple<readonly [], null>, z.ZodPromise<z.ZodObject<{
62
+ lastSuccessfulSyncAt: z.ZodString;
63
+ maxStaleness: z.ZodDefault<z.ZodNumber>;
64
+ entryCount: z.ZodNumber;
65
+ }, z.core.$strip>>>;
66
+ query: z.ZodFunction<z.ZodTuple<readonly [z.ZodString, z.ZodString], null>, z.ZodPromise<z.ZodArray<z.ZodObject<{
67
+ packageName: z.ZodString;
68
+ versionRange: z.ZodString;
69
+ cve: z.ZodOptional<z.ZodString>;
70
+ severity: z.ZodEnum<{
71
+ low: "low";
72
+ medium: "medium";
73
+ high: "high";
74
+ critical: "critical";
75
+ }>;
76
+ reportedAt: z.ZodString;
77
+ }, z.core.$strip>>>>;
78
+ getStatus: z.ZodFunction<z.ZodTuple<readonly [], null>, z.ZodPromise<z.ZodObject<{
79
+ lastSuccessfulSyncAt: z.ZodString;
80
+ maxStaleness: z.ZodDefault<z.ZodNumber>;
81
+ entryCount: z.ZodNumber;
82
+ }, z.core.$strip>>>;
83
+ }, z.core.$strip>;
84
+ export type IOCFeedService = z.infer<typeof IOCFeedServiceSchema>;
85
+ //# sourceMappingURL=ioc-feed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ioc-feed.d.ts","sourceRoot":"","sources":["../../../src/schemas/contracts/ioc-feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,eAAO,MAAM,kBAAkB;;;;;;;;;;;iBAM7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,uHAAuH;AACvH,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;iBAUlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACzE,yGAAyG;AACzG,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA2T,CAAC;AAC7V,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import * as z from 'zod/v4';
2
+ export const IOCFeedEntrySchema = z.object({
3
+ packageName: z.string(),
4
+ versionRange: z.string(),
5
+ cve: z.string().optional(),
6
+ severity: z.enum(['low', 'medium', 'high', 'critical']),
7
+ reportedAt: z.string().datetime(),
8
+ });
9
+ /** Successful provider synchronization only; descriptor-only defaults refuse with UNAVAILABLE/ioc-feed-unavailable. */
10
+ export const IOCFeedSyncStatusSchema = z.object({
11
+ lastSuccessfulSyncAt: z.string().datetime(),
12
+ maxStaleness: z.number().default(72),
13
+ entryCount: z.number(),
14
+ });
15
+ export const IOCFeedDescriptorSchema = z.object({
16
+ id: z.string(),
17
+ kind: z.literal('security/ioc-feed'),
18
+ name: z.string(),
19
+ description: z.string().optional(),
20
+ enabled: z.boolean().optional(),
21
+ tags: z.array(z.string()).optional(),
22
+ hardware: z.array(z.enum(['consumer', 'cloud'])).optional(),
23
+ maxStaleness: z.number().optional().default(72),
24
+ trustTier: z.enum(['high', 'medium', 'low']).optional().default('medium'),
25
+ });
26
+ /** All three methods require an implementation; an empty query is authoritative only from a provider. */
27
+ export const IOCFeedServiceSchema = z.object({ descriptor: IOCFeedDescriptorSchema, sync: z.function({ input: [], output: z.promise(IOCFeedSyncStatusSchema) }), query: z.function({ input: [z.string(), z.string()], output: z.promise(z.array(IOCFeedEntrySchema)) }), getStatus: z.function({ input: [], output: z.promise(IOCFeedSyncStatusSchema) }) });
28
+ //# sourceMappingURL=ioc-feed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ioc-feed.js","sourceRoot":"","sources":["../../../src/schemas/contracts/ioc-feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH,uHAAuH;AACvH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/C,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;CAC5E,CAAC,CAAC;AAEH,yGAAyG;AACzG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import * as z from 'zod/v4';
2
+ import type { ZodIssue } from 'zod/v4';
3
+ export declare const ForwardableAuthHeadersSchema: z.ZodObject<{
4
+ cookie: z.ZodOptional<z.ZodString>;
5
+ jwt: z.ZodOptional<z.ZodString>;
6
+ }, z.core.$strip>;
7
+ export type ForwardableAuthHeaders = z.infer<typeof ForwardableAuthHeadersSchema>;
8
+ export declare const ValidationErrorDetailValueSchema: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUndefined]>;
9
+ export type ValidationErrorDetailValue = z.infer<typeof ValidationErrorDetailValueSchema>;
10
+ export type ValidationErrorDetails = ZodIssue[] | Record<string, ValidationErrorDetailValue>;
11
+ //# sourceMappingURL=misc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/schemas/contracts/misc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,eAAO,MAAM,4BAA4B;;;iBAA0E,CAAC;AACpH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,eAAO,MAAM,gCAAgC,0FAA0E,CAAC;AACxH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAC1F,MAAM,MAAM,sBAAsB,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as z from 'zod/v4';
2
+ export const ForwardableAuthHeadersSchema = z.object({ cookie: z.string().optional(), jwt: z.string().optional() });
3
+ export const ValidationErrorDetailValueSchema = z.union([z.string(), z.number(), z.boolean(), z.null(), z.undefined()]);
4
+ //# sourceMappingURL=misc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/schemas/contracts/misc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAEpH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,93 @@
1
+ import * as z from 'zod/v4';
2
+ export declare const PolicyRuleSchema: z.ZodObject<{
3
+ pattern: z.ZodOptional<z.ZodString>;
4
+ action: z.ZodEnum<{
5
+ allow: "allow";
6
+ deny: "deny";
7
+ review: "review";
8
+ }>;
9
+ target: z.ZodEnum<{
10
+ metadata: "metadata";
11
+ content: "content";
12
+ header: "header";
13
+ }>;
14
+ }, z.core.$strip>;
15
+ export type PolicyRule = z.infer<typeof PolicyRuleSchema>;
16
+ export declare const SecurityPolicyDescriptorSchema: z.ZodObject<{
17
+ id: z.ZodString;
18
+ kind: z.ZodLiteral<"security/policy">;
19
+ name: z.ZodString;
20
+ description: z.ZodOptional<z.ZodString>;
21
+ enabled: z.ZodOptional<z.ZodBoolean>;
22
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
23
+ hardware: z.ZodOptional<z.ZodArray<z.ZodEnum<{
24
+ consumer: "consumer";
25
+ cloud: "cloud";
26
+ }>>>;
27
+ rules: z.ZodArray<z.ZodObject<{
28
+ pattern: z.ZodOptional<z.ZodString>;
29
+ action: z.ZodEnum<{
30
+ allow: "allow";
31
+ deny: "deny";
32
+ review: "review";
33
+ }>;
34
+ target: z.ZodEnum<{
35
+ metadata: "metadata";
36
+ content: "content";
37
+ header: "header";
38
+ }>;
39
+ }, z.core.$strip>>;
40
+ }, z.core.$strip>;
41
+ export type SecurityPolicyDescriptor = z.output<typeof SecurityPolicyDescriptorSchema>;
42
+ export declare const PolicyOutcomeSchema: z.ZodEnum<{
43
+ allow: "allow";
44
+ deny: "deny";
45
+ review: "review";
46
+ }>;
47
+ export type PolicyOutcome = z.infer<typeof PolicyOutcomeSchema>;
48
+ export declare const PolicyEvaluationContextSchema: z.ZodObject<{
49
+ actor: z.ZodOptional<z.ZodString>;
50
+ action: z.ZodOptional<z.ZodString>;
51
+ resource: z.ZodOptional<z.ZodString>;
52
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
53
+ }, z.core.$strip>;
54
+ export type PolicyEvaluationContext = z.infer<typeof PolicyEvaluationContextSchema>;
55
+ export declare const SecurityPolicyServiceSchema: z.ZodObject<{
56
+ descriptor: z.ZodObject<{
57
+ id: z.ZodString;
58
+ kind: z.ZodLiteral<"security/policy">;
59
+ name: z.ZodString;
60
+ description: z.ZodOptional<z.ZodString>;
61
+ enabled: z.ZodOptional<z.ZodBoolean>;
62
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
63
+ hardware: z.ZodOptional<z.ZodArray<z.ZodEnum<{
64
+ consumer: "consumer";
65
+ cloud: "cloud";
66
+ }>>>;
67
+ rules: z.ZodArray<z.ZodObject<{
68
+ pattern: z.ZodOptional<z.ZodString>;
69
+ action: z.ZodEnum<{
70
+ allow: "allow";
71
+ deny: "deny";
72
+ review: "review";
73
+ }>;
74
+ target: z.ZodEnum<{
75
+ metadata: "metadata";
76
+ content: "content";
77
+ header: "header";
78
+ }>;
79
+ }, z.core.$strip>>;
80
+ }, z.core.$strip>;
81
+ evaluate: z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
82
+ actor: z.ZodOptional<z.ZodString>;
83
+ action: z.ZodOptional<z.ZodString>;
84
+ resource: z.ZodOptional<z.ZodString>;
85
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
86
+ }, z.core.$strip>], null>, z.ZodPromise<z.ZodEnum<{
87
+ allow: "allow";
88
+ deny: "deny";
89
+ review: "review";
90
+ }>>>;
91
+ }, z.core.$strip>;
92
+ export type SecurityPolicyService = z.infer<typeof SecurityPolicyServiceSchema>;
93
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/schemas/contracts/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,eAAO,MAAM,gBAAgB;;;;;;;;;;;;iBAI3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;iBASzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACvF,eAAO,MAAM,mBAAmB;;;;EAAsC,CAAC;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,eAAO,MAAM,6BAA6B;;;;;iBAKxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAqK,CAAC;AAC9M,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import * as z from 'zod/v4';
2
+ export const PolicyRuleSchema = z.object({
3
+ pattern: z.string().optional(),
4
+ action: z.enum(['allow', 'deny', 'review']),
5
+ target: z.enum(['content', 'metadata', 'header']),
6
+ });
7
+ export const SecurityPolicyDescriptorSchema = z.object({
8
+ id: z.string(),
9
+ kind: z.literal('security/policy'),
10
+ name: z.string(),
11
+ description: z.string().optional(),
12
+ enabled: z.boolean().optional(),
13
+ tags: z.array(z.string()).optional(),
14
+ hardware: z.array(z.enum(['consumer', 'cloud'])).optional(),
15
+ rules: z.array(PolicyRuleSchema),
16
+ });
17
+ export const PolicyOutcomeSchema = z.enum(['allow', 'deny', 'review']);
18
+ export const PolicyEvaluationContextSchema = z.object({
19
+ actor: z.string().optional(),
20
+ action: z.string().optional(),
21
+ resource: z.string().optional(),
22
+ metadata: z.record(z.string(), z.unknown()).optional(),
23
+ });
24
+ export const SecurityPolicyServiceSchema = z.object({ descriptor: SecurityPolicyDescriptorSchema, evaluate: z.function({ input: [PolicyEvaluationContextSchema], output: z.promise(PolicyOutcomeSchema) }) });
25
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/schemas/contracts/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;CACpD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3D,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;CACnC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACzD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,6BAA6B,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC"}