@graphrefly/ts 0.0.0 → 0.0.2

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 (405) hide show
  1. package/README.md +135 -0
  2. package/dist/actions-types-CSC3NMDl.d.ts +657 -0
  3. package/dist/actions-types-wl9Mgkmr.d.cts +657 -0
  4. package/dist/adapters/index.cjs +5219 -2974
  5. package/dist/adapters/index.cjs.map +1 -1
  6. package/dist/adapters/index.d.cts +204 -192
  7. package/dist/adapters/index.d.ts +204 -192
  8. package/dist/adapters/index.js +3685 -1833
  9. package/dist/adapters/index.js.map +1 -1
  10. package/dist/adapters/nestjs/microservices.cjs +841 -0
  11. package/dist/adapters/nestjs/microservices.cjs.map +1 -0
  12. package/dist/adapters/nestjs/microservices.d.cts +45 -0
  13. package/dist/adapters/nestjs/microservices.d.ts +45 -0
  14. package/dist/adapters/nestjs/microservices.js +206 -0
  15. package/dist/adapters/nestjs/microservices.js.map +1 -0
  16. package/dist/adapters/nestjs/native.cjs +1391 -0
  17. package/dist/adapters/nestjs/native.cjs.map +1 -0
  18. package/dist/adapters/nestjs/native.d.cts +111 -0
  19. package/dist/adapters/nestjs/native.d.ts +111 -0
  20. package/dist/adapters/nestjs/native.js +577 -0
  21. package/dist/adapters/nestjs/native.js.map +1 -0
  22. package/dist/adapters/nestjs/websockets.cjs +924 -0
  23. package/dist/adapters/nestjs/websockets.cjs.map +1 -0
  24. package/dist/adapters/nestjs/websockets.d.cts +47 -0
  25. package/dist/adapters/nestjs/websockets.d.ts +47 -0
  26. package/dist/adapters/nestjs/websockets.js +286 -0
  27. package/dist/adapters/nestjs/websockets.js.map +1 -0
  28. package/dist/adapters/nestjs.cjs +1085 -0
  29. package/dist/adapters/nestjs.cjs.map +1 -0
  30. package/dist/adapters/nestjs.d.cts +385 -0
  31. package/dist/adapters/nestjs.d.ts +385 -0
  32. package/dist/adapters/nestjs.js +112 -0
  33. package/dist/adapters/nestjs.js.map +1 -0
  34. package/dist/adapters/observe-storage.d.cts +4 -4
  35. package/dist/adapters/observe-storage.d.ts +4 -4
  36. package/dist/adapters/observe-storage.js +5 -4
  37. package/dist/adapters/observe-storage.js.map +1 -1
  38. package/dist/adapters/react.cjs +166 -0
  39. package/dist/adapters/react.cjs.map +1 -0
  40. package/dist/adapters/react.d.cts +31 -0
  41. package/dist/adapters/react.d.ts +31 -0
  42. package/dist/adapters/react.js +51 -0
  43. package/dist/adapters/react.js.map +1 -0
  44. package/dist/adapters/solid.cjs +157 -0
  45. package/dist/adapters/solid.cjs.map +1 -0
  46. package/dist/adapters/solid.d.cts +26 -0
  47. package/dist/adapters/solid.d.ts +26 -0
  48. package/dist/adapters/solid.js +48 -0
  49. package/dist/adapters/solid.js.map +1 -0
  50. package/dist/adapters/svelte.cjs +148 -0
  51. package/dist/adapters/svelte.cjs.map +1 -0
  52. package/dist/adapters/svelte.d.cts +31 -0
  53. package/dist/adapters/svelte.d.ts +31 -0
  54. package/dist/adapters/svelte.js +46 -0
  55. package/dist/adapters/svelte.js.map +1 -0
  56. package/dist/adapters/vue.cjs +155 -0
  57. package/dist/adapters/vue.cjs.map +1 -0
  58. package/dist/adapters/vue.d.cts +26 -0
  59. package/dist/adapters/vue.d.ts +26 -0
  60. package/dist/adapters/vue.js +46 -0
  61. package/dist/adapters/vue.js.map +1 -0
  62. package/dist/agent-runtime-types-core-CaXfKNtY.d.cts +406 -0
  63. package/dist/agent-runtime-types-core-hU299uIC.d.ts +406 -0
  64. package/dist/agent-runtime-types-tool-BEpSINol.d.ts +695 -0
  65. package/dist/agent-runtime-types-tool-DninPEzk.d.cts +695 -0
  66. package/dist/agentic-memory-retention-BmGX368S.d.ts +14 -0
  67. package/dist/agentic-memory-retention-Ih1qhX9Z.d.cts +14 -0
  68. package/dist/agentic-memory-types-CVSUS6XR.d.ts +473 -0
  69. package/dist/agentic-memory-types-FnnYlVUs.d.cts +473 -0
  70. package/dist/capability-admission-BW2CziT6.d.ts +102 -0
  71. package/dist/capability-admission-lwSecxXs.d.cts +102 -0
  72. package/dist/chunk-2KUAG2GZ.js +9693 -0
  73. package/dist/chunk-2KUAG2GZ.js.map +1 -0
  74. package/dist/chunk-2NJP6GO4.js +1320 -0
  75. package/dist/chunk-2NJP6GO4.js.map +1 -0
  76. package/dist/{chunk-GDL26N2T.js → chunk-3KN7NJDR.js} +2 -2
  77. package/dist/{chunk-COHO25CZ.js → chunk-4NWSNI4K.js} +2232 -1672
  78. package/dist/chunk-4NWSNI4K.js.map +1 -0
  79. package/dist/{chunk-Z2ANQ6JW.js → chunk-4Q77MMJY.js} +2 -2
  80. package/dist/chunk-6E76H4OU.js +132 -0
  81. package/dist/chunk-6E76H4OU.js.map +1 -0
  82. package/dist/chunk-7GOTIIQ7.js +819 -0
  83. package/dist/chunk-7GOTIIQ7.js.map +1 -0
  84. package/dist/{chunk-D6BG7U6A.js → chunk-7HZRJMN6.js} +3 -3
  85. package/dist/{chunk-SCRFRCGR.js → chunk-BSQGE5PS.js} +1 -1
  86. package/dist/{chunk-PKVBHGBM.js → chunk-CJIFGJQG.js} +7 -7
  87. package/dist/{chunk-G4M3NHRJ.js → chunk-CX6B6PO2.js} +93 -10
  88. package/dist/chunk-CX6B6PO2.js.map +1 -0
  89. package/dist/chunk-DGUM43GV.js +11 -0
  90. package/dist/chunk-DGUM43GV.js.map +1 -0
  91. package/dist/{chunk-JIMUDQN3.js → chunk-E4QCH32M.js} +449 -447
  92. package/dist/chunk-E4QCH32M.js.map +1 -0
  93. package/dist/{chunk-RIIOUTGM.js → chunk-ECURQ3HD.js} +19 -129
  94. package/dist/chunk-ECURQ3HD.js.map +1 -0
  95. package/dist/{chunk-2ILL7HQI.js → chunk-EOKT4QFF.js} +134 -128
  96. package/dist/chunk-EOKT4QFF.js.map +1 -0
  97. package/dist/{chunk-K3FXTC3I.js → chunk-HJACH5PU.js} +3 -3
  98. package/dist/{chunk-GTPCOEOZ.js → chunk-IDMLXLLG.js} +3 -3
  99. package/dist/{chunk-DKP56CSW.js → chunk-JKAYLDQV.js} +2 -2
  100. package/dist/{chunk-4VLAQHZI.js → chunk-K7FB3JTD.js} +17 -1
  101. package/dist/chunk-K7FB3JTD.js.map +1 -0
  102. package/dist/chunk-L6LDXRWE.js +219 -0
  103. package/dist/chunk-L6LDXRWE.js.map +1 -0
  104. package/dist/chunk-M7J6Z4IJ.js +1930 -0
  105. package/dist/chunk-M7J6Z4IJ.js.map +1 -0
  106. package/dist/chunk-MQEQMS7B.js +1009 -0
  107. package/dist/chunk-MQEQMS7B.js.map +1 -0
  108. package/dist/chunk-MTELVIYR.js +1421 -0
  109. package/dist/chunk-MTELVIYR.js.map +1 -0
  110. package/dist/chunk-PVC7WDKI.js +885 -0
  111. package/dist/chunk-PVC7WDKI.js.map +1 -0
  112. package/dist/chunk-RAHNUYA5.js +368 -0
  113. package/dist/chunk-RAHNUYA5.js.map +1 -0
  114. package/dist/{chunk-DK554R7P.js → chunk-S6HXABGL.js} +2 -1
  115. package/dist/chunk-S6HXABGL.js.map +1 -0
  116. package/dist/{chunk-I3IHOHCJ.js → chunk-SHZDP2MQ.js} +1181 -1001
  117. package/dist/chunk-SHZDP2MQ.js.map +1 -0
  118. package/dist/{chunk-Y3ZLRGHC.js → chunk-SIDJO2T4.js} +16 -16
  119. package/dist/chunk-STXRMPW4.js +4131 -0
  120. package/dist/chunk-STXRMPW4.js.map +1 -0
  121. package/dist/{chunk-JR4IKCR2.js → chunk-TPND5MJS.js} +5 -5
  122. package/dist/chunk-TQPCAIQI.js +612 -0
  123. package/dist/chunk-TQPCAIQI.js.map +1 -0
  124. package/dist/chunk-UT3MHJCW.js +49 -0
  125. package/dist/chunk-UT3MHJCW.js.map +1 -0
  126. package/dist/{chunk-TEW47IVR.js → chunk-VPEFSDME.js} +2 -2
  127. package/dist/{chunk-SWTLEQL6.js → chunk-WQIA3GFB.js} +2 -2
  128. package/dist/chunk-WQIA3GFB.js.map +1 -0
  129. package/dist/{chunk-DJC4CHLQ.js → chunk-YDWBXXQZ.js} +5 -5
  130. package/dist/{chunk-6PHB5CJS.js → chunk-ZLFRB6FI.js} +2 -2
  131. package/dist/composition/index.cjs +1256 -1059
  132. package/dist/composition/index.cjs.map +1 -1
  133. package/dist/composition/index.d.cts +4 -4
  134. package/dist/composition/index.d.ts +4 -4
  135. package/dist/composition/index.js +7 -6
  136. package/dist/core/index.cjs +1218 -1021
  137. package/dist/core/index.cjs.map +1 -1
  138. package/dist/core/index.d.cts +2 -2
  139. package/dist/core/index.d.ts +2 -2
  140. package/dist/core/index.js +5 -4
  141. package/dist/cqrs/index.cjs.map +1 -1
  142. package/dist/cqrs/index.d.cts +4 -4
  143. package/dist/cqrs/index.d.ts +4 -4
  144. package/dist/cqrs/index.js +3 -2
  145. package/dist/cqrs/index.js.map +1 -1
  146. package/dist/cqrs/messaging.cjs +312 -0
  147. package/dist/cqrs/messaging.cjs.map +1 -0
  148. package/dist/cqrs/messaging.d.cts +57 -0
  149. package/dist/cqrs/messaging.d.ts +57 -0
  150. package/dist/cqrs/messaging.js +274 -0
  151. package/dist/cqrs/messaging.js.map +1 -0
  152. package/dist/cqrs/work-queue.cjs +329 -0
  153. package/dist/cqrs/work-queue.cjs.map +1 -0
  154. package/dist/cqrs/work-queue.d.cts +90 -0
  155. package/dist/cqrs/work-queue.d.ts +90 -0
  156. package/dist/cqrs/work-queue.js +292 -0
  157. package/dist/cqrs/work-queue.js.map +1 -0
  158. package/dist/data/index.cjs +19 -0
  159. package/dist/data/index.cjs.map +1 -0
  160. package/dist/data/index.d.cts +36 -0
  161. package/dist/data/index.d.ts +36 -0
  162. package/dist/data/index.js +1 -0
  163. package/dist/data/index.js.map +1 -0
  164. package/dist/data-structures/index.cjs +1252 -1052
  165. package/dist/data-structures/index.cjs.map +1 -1
  166. package/dist/data-structures/index.d.cts +9 -8
  167. package/dist/data-structures/index.d.ts +9 -8
  168. package/dist/data-structures/index.js +9 -7
  169. package/dist/{describe-BZb7AS2y.d.ts → describe-B_A5fbXH.d.ts} +1 -1
  170. package/dist/{describe-Ciu8SUnN.d.cts → describe-CQRrkv-Q.d.cts} +1 -1
  171. package/dist/executors/tool-provider-adapters.cjs +3091 -0
  172. package/dist/executors/tool-provider-adapters.cjs.map +1 -0
  173. package/dist/executors/tool-provider-adapters.d.cts +174 -0
  174. package/dist/executors/tool-provider-adapters.d.ts +174 -0
  175. package/dist/executors/tool-provider-adapters.js +1336 -0
  176. package/dist/executors/tool-provider-adapters.js.map +1 -0
  177. package/dist/executors/tool-provider-runtime.cjs +5178 -0
  178. package/dist/executors/tool-provider-runtime.cjs.map +1 -0
  179. package/dist/executors/tool-provider-runtime.d.cts +17 -0
  180. package/dist/executors/tool-provider-runtime.d.ts +17 -0
  181. package/dist/executors/tool-provider-runtime.js +15 -0
  182. package/dist/executors/tool-provider-runtime.js.map +1 -0
  183. package/dist/executors/tool-provider.cjs +6392 -0
  184. package/dist/executors/tool-provider.cjs.map +1 -0
  185. package/dist/executors/tool-provider.d.cts +60 -0
  186. package/dist/executors/tool-provider.d.ts +60 -0
  187. package/dist/executors/tool-provider.js +89 -0
  188. package/dist/executors/tool-provider.js.map +1 -0
  189. package/dist/executors/work-queue.cjs +342 -0
  190. package/dist/executors/work-queue.cjs.map +1 -0
  191. package/dist/executors/work-queue.d.cts +90 -0
  192. package/dist/executors/work-queue.d.ts +90 -0
  193. package/dist/executors/work-queue.js +306 -0
  194. package/dist/executors/work-queue.js.map +1 -0
  195. package/dist/graph/index.cjs +1536 -1324
  196. package/dist/graph/index.cjs.map +1 -1
  197. package/dist/graph/index.d.cts +10 -9
  198. package/dist/graph/index.d.ts +10 -9
  199. package/dist/graph/index.js +22 -20
  200. package/dist/{graph-s23RbbFO.d.cts → graph-CWK3HLPB.d.cts} +134 -132
  201. package/dist/{graph-DfdF9zy4.d.ts → graph-ho5sotHP.d.ts} +134 -132
  202. package/dist/{index-SnzZu3x7.d.ts → index-CQWcE0Dw.d.ts} +18 -4
  203. package/dist/{index-CAEmLCYF.d.cts → index-DHA1i67c.d.cts} +18 -4
  204. package/dist/index.cjs +3331 -3020
  205. package/dist/index.cjs.map +1 -1
  206. package/dist/index.d.cts +14 -10
  207. package/dist/index.d.ts +14 -10
  208. package/dist/index.js +114 -108
  209. package/dist/inspection/boundary.cjs +98 -0
  210. package/dist/inspection/boundary.cjs.map +1 -0
  211. package/dist/inspection/boundary.d.cts +61 -0
  212. package/dist/inspection/boundary.d.ts +61 -0
  213. package/dist/inspection/boundary.js +75 -0
  214. package/dist/inspection/boundary.js.map +1 -0
  215. package/dist/measurements-C0mAvWU1.d.cts +164 -0
  216. package/dist/measurements-OMpCeBwh.d.ts +164 -0
  217. package/dist/{messages-BZqrGGm1.d.ts → messages-CAzUPPJM.d.cts} +10 -5
  218. package/dist/{messages-BZqrGGm1.d.cts → messages-CAzUPPJM.d.ts} +10 -5
  219. package/dist/messaging/index.cjs +756 -619
  220. package/dist/messaging/index.cjs.map +1 -1
  221. package/dist/messaging/index.d.cts +17 -226
  222. package/dist/messaging/index.d.ts +17 -226
  223. package/dist/messaging/index.js +19 -749
  224. package/dist/messaging/index.js.map +1 -1
  225. package/dist/operators/index.cjs +1256 -1059
  226. package/dist/operators/index.cjs.map +1 -1
  227. package/dist/operators/index.d.cts +6 -6
  228. package/dist/operators/index.d.ts +6 -6
  229. package/dist/operators/index.js +9 -8
  230. package/dist/orchestration/index.cjs +8664 -2617
  231. package/dist/orchestration/index.cjs.map +1 -1
  232. package/dist/orchestration/index.d.cts +171 -221
  233. package/dist/orchestration/index.d.ts +171 -221
  234. package/dist/orchestration/index.js +74 -982
  235. package/dist/orchestration/index.js.map +1 -1
  236. package/dist/orchestration/messaging.cjs +314 -0
  237. package/dist/orchestration/messaging.cjs.map +1 -0
  238. package/dist/orchestration/messaging.d.cts +56 -0
  239. package/dist/orchestration/messaging.d.ts +56 -0
  240. package/dist/orchestration/messaging.js +276 -0
  241. package/dist/orchestration/messaging.js.map +1 -0
  242. package/dist/orchestration/work-queue.cjs +1500 -0
  243. package/dist/orchestration/work-queue.cjs.map +1 -0
  244. package/dist/orchestration/work-queue.d.cts +196 -0
  245. package/dist/orchestration/work-queue.d.ts +196 -0
  246. package/dist/orchestration/work-queue.js +1289 -0
  247. package/dist/orchestration/work-queue.js.map +1 -0
  248. package/dist/patterns/event-flow.cjs +433 -0
  249. package/dist/patterns/event-flow.cjs.map +1 -0
  250. package/dist/patterns/event-flow.d.cts +115 -0
  251. package/dist/patterns/event-flow.d.ts +115 -0
  252. package/dist/patterns/event-flow.js +14 -0
  253. package/dist/patterns/event-flow.js.map +1 -0
  254. package/dist/patterns/index.cjs +748 -355
  255. package/dist/patterns/index.cjs.map +1 -1
  256. package/dist/patterns/index.d.cts +9 -5
  257. package/dist/patterns/index.d.ts +9 -5
  258. package/dist/patterns/index.js +13 -4
  259. package/dist/process-types-C9uMYz3i.d.ts +200 -0
  260. package/dist/process-types-h3uRlzDc.d.cts +200 -0
  261. package/dist/{reactive-collection-BxBqtIOE.d.cts → reactive-collection-B9R0Bl1P.d.cts} +11 -41
  262. package/dist/{reactive-collection-Cb1II1Fi.d.ts → reactive-collection-BXFrH0U2.d.ts} +11 -41
  263. package/dist/{reactive-collection-storage-D-KmjE0J.d.cts → reactive-collection-storage-BLGv8Xp8.d.cts} +5 -5
  264. package/dist/{reactive-collection-storage-BNiEc-Gd.d.ts → reactive-collection-storage-a4zD3665.d.ts} +5 -5
  265. package/dist/{reactive-map-BcB4KsQR.d.ts → reactive-map-C_8sOfdS.d.cts} +7 -6
  266. package/dist/{reactive-map-D-g3dv8I.d.cts → reactive-map-jle5dnok.d.ts} +7 -6
  267. package/dist/render/index.d.cts +3 -3
  268. package/dist/render/index.d.ts +3 -3
  269. package/dist/render/index.js +1 -0
  270. package/dist/scheduled-readiness-5rwQlyjV.d.ts +91 -0
  271. package/dist/scheduled-readiness-DpRY8jI0.d.cts +91 -0
  272. package/dist/semantic-memory-graph-C2ZUwIlq.d.ts +30 -0
  273. package/dist/semantic-memory-graph-DlZBD_Eu.d.cts +30 -0
  274. package/dist/{semantic-memory-graph-BYoIlP35.d.cts → semantic-memory-graph-types-BvzdqmkY.d.cts} +2 -28
  275. package/dist/{semantic-memory-graph-CxyXLms3.d.ts → semantic-memory-graph-types-Ci-OtahO.d.ts} +2 -28
  276. package/dist/solutions/index.cjs +6788 -2128
  277. package/dist/solutions/index.cjs.map +1 -1
  278. package/dist/solutions/index.d.cts +15 -519
  279. package/dist/solutions/index.d.ts +15 -519
  280. package/dist/solutions/index.js +91 -7
  281. package/dist/solutions/reactive-layout/browser/index.cjs +457 -0
  282. package/dist/solutions/reactive-layout/browser/index.cjs.map +1 -0
  283. package/dist/solutions/reactive-layout/browser/index.d.cts +44 -0
  284. package/dist/solutions/reactive-layout/browser/index.d.ts +44 -0
  285. package/dist/solutions/reactive-layout/browser/index.js +69 -0
  286. package/dist/solutions/reactive-layout/browser/index.js.map +1 -0
  287. package/dist/solutions/reactive-layout/index.cjs +4494 -0
  288. package/dist/solutions/reactive-layout/index.cjs.map +1 -0
  289. package/dist/solutions/reactive-layout/index.d.cts +37 -0
  290. package/dist/solutions/reactive-layout/index.d.ts +37 -0
  291. package/dist/solutions/reactive-layout/index.js +146 -0
  292. package/dist/solutions/reactive-layout/index.js.map +1 -0
  293. package/dist/solutions/reactive-layout/node-canvas/index.cjs +555 -0
  294. package/dist/solutions/reactive-layout/node-canvas/index.cjs.map +1 -0
  295. package/dist/solutions/reactive-layout/node-canvas/index.d.cts +54 -0
  296. package/dist/solutions/reactive-layout/node-canvas/index.d.ts +54 -0
  297. package/dist/solutions/reactive-layout/node-canvas/index.js +131 -0
  298. package/dist/solutions/reactive-layout/node-canvas/index.js.map +1 -0
  299. package/dist/solutions/reactive-layout/react-native/index.cjs +504 -0
  300. package/dist/solutions/reactive-layout/react-native/index.cjs.map +1 -0
  301. package/dist/solutions/reactive-layout/react-native/index.d.cts +51 -0
  302. package/dist/solutions/reactive-layout/react-native/index.d.ts +51 -0
  303. package/dist/solutions/reactive-layout/react-native/index.js +77 -0
  304. package/dist/solutions/reactive-layout/react-native/index.js.map +1 -0
  305. package/dist/solutions/reactive-layout/skia/index.cjs +557 -0
  306. package/dist/solutions/reactive-layout/skia/index.cjs.map +1 -0
  307. package/dist/solutions/reactive-layout/skia/index.d.cts +64 -0
  308. package/dist/solutions/reactive-layout/skia/index.d.ts +64 -0
  309. package/dist/solutions/reactive-layout/skia/index.js +70 -0
  310. package/dist/solutions/reactive-layout/skia/index.js.map +1 -0
  311. package/dist/solutions/work-item/actions.cjs +2345 -0
  312. package/dist/solutions/work-item/actions.cjs.map +1 -0
  313. package/dist/solutions/work-item/actions.d.cts +40 -0
  314. package/dist/solutions/work-item/actions.d.ts +40 -0
  315. package/dist/solutions/work-item/actions.js +2078 -0
  316. package/dist/solutions/work-item/actions.js.map +1 -0
  317. package/dist/solutions/work-item/scheduling.cjs +9797 -0
  318. package/dist/solutions/work-item/scheduling.cjs.map +1 -0
  319. package/dist/solutions/work-item/scheduling.d.cts +1868 -0
  320. package/dist/solutions/work-item/scheduling.d.ts +1868 -0
  321. package/dist/solutions/work-item/scheduling.js +146 -0
  322. package/dist/solutions/work-item/scheduling.js.map +1 -0
  323. package/dist/solutions/work-item/work-queue.cjs +306 -0
  324. package/dist/solutions/work-item/work-queue.cjs.map +1 -0
  325. package/dist/solutions/work-item/work-queue.d.cts +71 -0
  326. package/dist/solutions/work-item/work-queue.d.ts +71 -0
  327. package/dist/solutions/work-item/work-queue.js +270 -0
  328. package/dist/solutions/work-item/work-queue.js.map +1 -0
  329. package/dist/sources/browser.cjs +1399 -1052
  330. package/dist/sources/browser.cjs.map +1 -1
  331. package/dist/sources/browser.d.cts +33 -6
  332. package/dist/sources/browser.d.ts +33 -6
  333. package/dist/sources/browser.js +73 -6
  334. package/dist/sources/browser.js.map +1 -1
  335. package/dist/sources/index.cjs +1345 -1065
  336. package/dist/sources/index.cjs.map +1 -1
  337. package/dist/sources/index.d.cts +5 -5
  338. package/dist/sources/index.d.ts +5 -5
  339. package/dist/sources/index.js +7 -6
  340. package/dist/sources/node.cjs.map +1 -1
  341. package/dist/sources/node.d.cts +4 -4
  342. package/dist/sources/node.d.ts +4 -4
  343. package/dist/sources/node.js +2 -1
  344. package/dist/sources/node.js.map +1 -1
  345. package/dist/storage/browser.cjs +16 -0
  346. package/dist/storage/browser.cjs.map +1 -1
  347. package/dist/storage/browser.js +4 -3
  348. package/dist/storage/browser.js.map +1 -1
  349. package/dist/storage/index.cjs +16 -0
  350. package/dist/storage/index.cjs.map +1 -1
  351. package/dist/storage/index.d.cts +6 -5
  352. package/dist/storage/index.d.ts +6 -5
  353. package/dist/storage/index.js +10 -9
  354. package/dist/storage/node.cjs +16 -0
  355. package/dist/storage/node.cjs.map +1 -1
  356. package/dist/storage/node.js +4 -3
  357. package/dist/storage/node.js.map +1 -1
  358. package/dist/store-BmtEs9mG.d.ts +123 -0
  359. package/dist/store-PAAsYvML.d.cts +123 -0
  360. package/dist/testing/index.cjs +1 -0
  361. package/dist/testing/index.cjs.map +1 -1
  362. package/dist/testing/index.d.cts +1 -1
  363. package/dist/testing/index.d.ts +1 -1
  364. package/dist/testing/index.js +3 -2
  365. package/dist/types-BRNKoFHj.d.ts +357 -0
  366. package/dist/{types-h12mNYbq.d.ts → types-BS6CyR-x.d.cts} +49 -130
  367. package/dist/types-BWK2ay3e.d.cts +457 -0
  368. package/dist/types-BXKSAoE1.d.cts +357 -0
  369. package/dist/types-BaPpZItj.d.ts +457 -0
  370. package/dist/types-BhveCMg5.d.cts +274 -0
  371. package/dist/{types-bNMSWKqF.d.cts → types-C9NOgNJw.d.ts} +49 -130
  372. package/dist/types-CTsQ8Ww4.d.ts +274 -0
  373. package/dist/types-DL_05n2M.d.ts +34 -0
  374. package/dist/types-XDoqxYO9.d.cts +34 -0
  375. package/dist/work-item-runtime-types-BqtWnSCS.d.ts +138 -0
  376. package/dist/work-item-runtime-types-CHO03AKh.d.cts +138 -0
  377. package/dist/work-queue/index.cjs +1136 -0
  378. package/dist/work-queue/index.cjs.map +1 -0
  379. package/dist/work-queue/index.d.cts +21 -0
  380. package/dist/work-queue/index.d.ts +21 -0
  381. package/dist/work-queue/index.js +1082 -0
  382. package/dist/work-queue/index.js.map +1 -0
  383. package/package.json +603 -249
  384. package/dist/chunk-2ILL7HQI.js.map +0 -1
  385. package/dist/chunk-4VLAQHZI.js.map +0 -1
  386. package/dist/chunk-COHO25CZ.js.map +0 -1
  387. package/dist/chunk-DK554R7P.js.map +0 -1
  388. package/dist/chunk-G4M3NHRJ.js.map +0 -1
  389. package/dist/chunk-I3IHOHCJ.js.map +0 -1
  390. package/dist/chunk-JIMUDQN3.js.map +0 -1
  391. package/dist/chunk-RIIOUTGM.js.map +0 -1
  392. package/dist/chunk-SWTLEQL6.js.map +0 -1
  393. /package/dist/{chunk-GDL26N2T.js.map → chunk-3KN7NJDR.js.map} +0 -0
  394. /package/dist/{chunk-Z2ANQ6JW.js.map → chunk-4Q77MMJY.js.map} +0 -0
  395. /package/dist/{chunk-D6BG7U6A.js.map → chunk-7HZRJMN6.js.map} +0 -0
  396. /package/dist/{chunk-SCRFRCGR.js.map → chunk-BSQGE5PS.js.map} +0 -0
  397. /package/dist/{chunk-PKVBHGBM.js.map → chunk-CJIFGJQG.js.map} +0 -0
  398. /package/dist/{chunk-K3FXTC3I.js.map → chunk-HJACH5PU.js.map} +0 -0
  399. /package/dist/{chunk-GTPCOEOZ.js.map → chunk-IDMLXLLG.js.map} +0 -0
  400. /package/dist/{chunk-DKP56CSW.js.map → chunk-JKAYLDQV.js.map} +0 -0
  401. /package/dist/{chunk-Y3ZLRGHC.js.map → chunk-SIDJO2T4.js.map} +0 -0
  402. /package/dist/{chunk-JR4IKCR2.js.map → chunk-TPND5MJS.js.map} +0 -0
  403. /package/dist/{chunk-TEW47IVR.js.map → chunk-VPEFSDME.js.map} +0 -0
  404. /package/dist/{chunk-DJC4CHLQ.js.map → chunk-YDWBXXQZ.js.map} +0 -0
  405. /package/dist/{chunk-6PHB5CJS.js.map → chunk-ZLFRB6FI.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/orchestration/agent-runtime-outcome-view.ts","../src/orchestration/agent-runtime-tool-provider-policy.ts","../src/orchestration/agent-runtime-tool-provider-input.ts"],"sourcesContent":["import { depBatch } from \"../ctx/types.js\";\nimport type { DataIssue } from \"../data/index.js\";\nimport type { Graph } from \"../graph/graph.js\";\nimport type { Node } from \"../node/node.js\";\nimport {\n\tdataIssue,\n\tprojectRuntimeFact,\n\tref,\n\tsanitizeProviderGraphVisibleRecord,\n\tuniqueSourceRefs,\n} from \"./agent-runtime-common.js\";\nimport { outcomeIssues } from \"./agent-runtime-executor-outcome.js\";\nimport type { AgentRuntimeAuditRecord } from \"./agent-runtime-types-agent.js\";\nimport type { ExecutorOutcome, SourceRef } from \"./agent-runtime-types-core.js\";\nimport type {\n\tExecutorOutcomeView,\n\tExecutorOutcomeViewBundle,\n\tExecutorOutcomeViewPolicy,\n} from \"./agent-runtime-types-tool.js\";\n\nexport function executorOutcomeViewProjector(\n\tgraph: Graph,\n\topts: {\n\t\treadonly name?: string;\n\t\treadonly outcomes: Node<ExecutorOutcome>;\n\t\treadonly policy?: ExecutorOutcomeViewPolicy;\n\t},\n): ExecutorOutcomeViewBundle {\n\tconst name = opts.name ?? \"executorOutcomeViews\";\n\tconst policy = {\n\t\taudience: opts.policy?.audience ?? \"agent-observation\",\n\t\tmaxSummaryChars: opts.policy?.maxSummaryChars ?? 512,\n\t\tincludeIssues: opts.policy?.includeIssues ?? true,\n\t\tincludeUsage: opts.policy?.includeUsage ?? false,\n\t\tincludeMetadata: opts.policy?.includeMetadata ?? false,\n\t} satisfies Required<ExecutorOutcomeViewPolicy>;\n\tconst runtime = graph.node<ExecutorOutcomeViewFact>(\n\t\t[opts.outcomes],\n\t\t(ctx) => {\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst outcome = raw as ExecutorOutcome;\n\t\t\t\tconst projection = executorOutcomeViewProjectionFromOutcome(outcome, policy);\n\t\t\t\tctx.down([\n\t\t\t\t\t[\"DATA\", { kind: \"view\", view: projection.view } satisfies ExecutorOutcomeViewFact],\n\t\t\t\t\t[\n\t\t\t\t\t\t\"DATA\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkind: \"audit\",\n\t\t\t\t\t\t\taudit: {\n\t\t\t\t\t\t\t\tid: `${outcome.outcomeId}:outcome-view:${policy.audience}`,\n\t\t\t\t\t\t\t\tkind: \"executor-outcome-view-projected\",\n\t\t\t\t\t\t\t\tsubjectId: outcome.requestId,\n\t\t\t\t\t\t\t\tsourceRefs: [ref(\"executor-outcome\", outcome.outcomeId)],\n\t\t\t\t\t\t\t\tmetadata: { audience: policy.audience, status: outcome.kind },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} satisfies ExecutorOutcomeViewFact,\n\t\t\t\t\t],\n\t\t\t\t]);\n\t\t\t\tfor (const issue of projection.issues) {\n\t\t\t\t\tctx.down([[\"DATA\", { kind: \"issue\", issue } satisfies ExecutorOutcomeViewFact]]);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{ name: `${name}/runtime`, factory: \"executorOutcomeViewProjector\" },\n\t);\n\treturn {\n\t\tviews: projectRuntimeFact(graph, runtime, `${name}/views`, \"executorOutcomeViews\", (fact) =>\n\t\t\tfact.kind === \"view\" ? fact.view : undefined,\n\t\t),\n\t\tissues: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/issues`,\n\t\t\t\"executorOutcomeViewIssues\",\n\t\t\t(fact) => (fact.kind === \"issue\" ? fact.issue : undefined),\n\t\t),\n\t\taudit: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/audit`,\n\t\t\t\"executorOutcomeViewAudit\",\n\t\t\t(fact) => (fact.kind === \"audit\" ? fact.audit : undefined),\n\t\t),\n\t};\n}\n\nexport type ExecutorOutcomeViewFact =\n\t| { readonly kind: \"view\"; readonly view: ExecutorOutcomeView }\n\t| { readonly kind: \"issue\"; readonly issue: DataIssue }\n\t| { readonly kind: \"audit\"; readonly audit: AgentRuntimeAuditRecord };\n\nexport interface ExecutorOutcomeViewProjection {\n\treadonly view: ExecutorOutcomeView;\n\treadonly issues: readonly DataIssue[];\n}\n\nexport interface ExecutorOutcomeSummaryProjection {\n\treadonly summary: string;\n\treadonly truncated: boolean;\n\treadonly originalChars: number;\n\treadonly limitChars: number;\n}\n\nexport function executorOutcomeViewProjectionFromOutcome(\n\toutcome: ExecutorOutcome,\n\tpolicy: Required<ExecutorOutcomeViewPolicy>,\n): ExecutorOutcomeViewProjection {\n\tconst sourceRefs = uniqueSourceRefs([\n\t\tref(\"executor-outcome\", outcome.outcomeId),\n\t\t...(outcome.evidenceRefs ?? []),\n\t]);\n\tconst summary = projectOutcomeSummary(outcome, policy.maxSummaryChars);\n\tconst issues = Object.freeze([\n\t\t...outcomeIssues(outcome),\n\t\t...(summary.truncated ? [outcomeSummaryTruncationIssue(outcome, summary, policy)] : []),\n\t]);\n\tconst metadata = policy.includeMetadata\n\t\t? sanitizeProviderGraphVisibleRecord(outcome.metadata)\n\t\t: undefined;\n\tconst view = Object.freeze({\n\t\tkind: \"executor-outcome-view\",\n\t\tviewId: `${outcome.outcomeId}:${policy.audience}`,\n\t\taudience: policy.audience,\n\t\toutcomeId: outcome.outcomeId,\n\t\trequestId: outcome.requestId,\n\t\toperationId: outcome.operationId,\n\t\trouteId: outcome.routeId,\n\t\texecutorId: outcome.executorId,\n\t\tprofileId: outcome.profileId,\n\t\tstatus: outcome.kind,\n\t\tsummary: summary.summary,\n\t\tsummaryTruncated: summary.truncated,\n\t\tsummaryChars: summary.originalChars,\n\t\tsummaryLimitChars: summary.limitChars,\n\t\terrorKind: outcomeErrorKind(outcome),\n\t\tretryable: outcomeRetryable(outcome),\n\t\tnextActions: outcomeNextActions(outcome),\n\t\tsourceRefs,\n\t\tmaterialRefs: outcomeMaterialRefs(outcome),\n\t\tissues: policy.includeIssues && issues.length > 0 ? issues : undefined,\n\t\tusage: policy.includeUsage ? outcome.usage : undefined,\n\t\t...(metadata === undefined ? {} : { metadata }),\n\t} satisfies ExecutorOutcomeView);\n\treturn Object.freeze({ view, issues });\n}\n\nexport function projectOutcomeSummary(\n\toutcome: ExecutorOutcome,\n\tmaxChars: number,\n): ExecutorOutcomeSummaryProjection {\n\tconst summary = outcomeSummary(outcome);\n\tconst limitChars = Math.max(0, maxChars);\n\tif (summary.length <= limitChars) {\n\t\treturn Object.freeze({\n\t\t\tsummary,\n\t\t\ttruncated: false,\n\t\t\toriginalChars: summary.length,\n\t\t\tlimitChars,\n\t\t});\n\t}\n\tconst bounded =\n\t\tlimitChars <= 1\n\t\t\t? summary.slice(0, limitChars)\n\t\t\t: limitChars <= 3\n\t\t\t\t? summary.slice(0, limitChars)\n\t\t\t\t: `${summary.slice(0, limitChars - 3)}...`;\n\treturn Object.freeze({\n\t\tsummary: bounded,\n\t\ttruncated: true,\n\t\toriginalChars: summary.length,\n\t\tlimitChars,\n\t});\n}\n\nexport function outcomeSummaryTruncationIssue(\n\toutcome: ExecutorOutcome,\n\tsummary: ExecutorOutcomeSummaryProjection,\n\tpolicy: Required<ExecutorOutcomeViewPolicy>,\n): DataIssue {\n\treturn dataIssue(\n\t\t\"executor-outcome-view-summary-truncated\",\n\t\t\"ExecutorOutcome view summary was truncated; inspect material refs or the source outcome for full detail\",\n\t\t{\n\t\t\tsubjectId: outcome.requestId,\n\t\t\trefs: [ref(\"executor-outcome\", outcome.outcomeId)],\n\t\t\tseverity: \"warning\",\n\t\t\tdetails: {\n\t\t\t\taudience: policy.audience,\n\t\t\t\toutcomeId: outcome.outcomeId,\n\t\t\t\toriginalChars: summary.originalChars,\n\t\t\t\tlimitChars: summary.limitChars,\n\t\t\t},\n\t\t},\n\t);\n}\n\nexport function outcomeSummary(outcome: ExecutorOutcome): string {\n\tif (outcome.kind === \"result\") {\n\t\tif (outcome.result.summary !== undefined && outcome.result.summary.length > 0)\n\t\t\treturn outcome.result.summary;\n\t\treturn `Executor result '${outcome.result.kind}' is available via source refs`;\n\t}\n\tif (outcome.kind === \"failure\") return outcome.error.message;\n\tif (outcome.kind === \"blocked\") {\n\t\tconst needKinds = outcome.needs.map((need) => need.kind).join(\", \");\n\t\treturn needKinds.length > 0 ? `Executor blocked: ${needKinds}` : \"Executor blocked\";\n\t}\n\tif (outcome.kind === \"timeout\") {\n\t\treturn outcome.timeoutMs === undefined\n\t\t\t? \"Executor timed out\"\n\t\t\t: `Executor timed out after ${outcome.timeoutMs}ms`;\n\t}\n\treturn outcome.reason ?? \"Executor canceled\";\n}\n\nexport function outcomeErrorKind(outcome: ExecutorOutcome): string | undefined {\n\tif (outcome.kind === \"failure\") return outcome.error.code;\n\tif (outcome.kind === \"timeout\") return \"timeout\";\n\tif (outcome.kind === \"blocked\") return outcome.needs[0]?.kind ?? \"blocked\";\n\tif (outcome.kind === \"canceled\") return \"canceled\";\n\treturn undefined;\n}\n\nexport function outcomeRetryable(outcome: ExecutorOutcome): boolean | undefined {\n\tif (outcome.kind === \"failure\" || outcome.kind === \"timeout\") return outcome.retryable;\n\treturn undefined;\n}\n\nexport function outcomeNextActions(outcome: ExecutorOutcome): readonly string[] | undefined {\n\tif (outcome.kind === \"blocked\") return Object.freeze(outcome.needs.map((need) => need.kind));\n\tif ((outcome.kind === \"failure\" || outcome.kind === \"timeout\") && outcome.retryable === true) {\n\t\treturn Object.freeze([\"retry-or-route\"]);\n\t}\n\treturn undefined;\n}\n\nexport function outcomeMaterialRefs(outcome: ExecutorOutcome): readonly SourceRef[] | undefined {\n\tconst refs =\n\t\toutcome.kind === \"result\"\n\t\t\t? [...(outcome.result.refs ?? [])]\n\t\t\t: outcome.kind === \"blocked\"\n\t\t\t\t? outcome.needs.flatMap((need) => [...(need.refs ?? [])])\n\t\t\t\t: [];\n\treturn refs.length === 0 ? undefined : uniqueSourceRefs(refs);\n}\n","import { depBatch } from \"../ctx/types.js\";\nimport type { DataIssue } from \"../data/index.js\";\nimport type { Graph } from \"../graph/graph.js\";\nimport type { Node } from \"../node/node.js\";\nimport {\n\tdataIssue,\n\tforbiddenDataKeys,\n\tforbiddenGraphVisibleMaterialIssues,\n\tforbiddenProviderRawMaterialKeys,\n\tforEachDepBatch,\n\tisRecord,\n\tprojectRuntimeFact,\n\tref,\n\tsanitizeProviderGraphVisibleRecord,\n\tunlockedToolProviderPolicyOverrides,\n} from \"./agent-runtime-common.js\";\nimport type { AgentRuntimeAuditRecord } from \"./agent-runtime-types-agent.js\";\nimport type {\n\tAgentRequestFact,\n\tAgentRequestIssued,\n\tExecutorProfile,\n\tExecutorRoute,\n\tSourceRef,\n} from \"./agent-runtime-types-core.js\";\nimport type {\n\tLocalBuiltinToolProviderCatalogOptions,\n\tToolCallInput,\n\tToolProviderApprovalPolicy,\n\tToolProviderArtifactPolicy,\n\tToolProviderCatalog,\n\tToolProviderCatalogEntry,\n\tToolProviderExecutionPolicy,\n\tToolProviderFilesystemPolicy,\n\tToolProviderNetworkPolicy,\n\tToolProviderPathRule,\n\tToolProviderPolicyResolution,\n\tToolProviderPolicyResolutionBundle,\n\tToolProviderPolicyResolutionStatus,\n\tToolProviderRedactionPolicy,\n\tToolProviderSizeCapacityPolicy,\n\tToolProviderSizeLimit,\n\tToolProviderTimeoutPolicy,\n} from \"./agent-runtime-types-tool.js\";\n\nexport function localBuiltinToolProviderCatalog(\n\topts: LocalBuiltinToolProviderCatalogOptions = {},\n): ToolProviderCatalog {\n\tconst providerId = opts.providerId ?? \"local-builtin\";\n\tconst executorId = opts.executorId ?? `${providerId}:tool-executor`;\n\tconst profileId = opts.profileId ?? `${providerId}:tool-profile`;\n\tconst tools =\n\t\topts.tools ??\n\t\t([\n\t\t\t{ toolName: \"document/read-doc\", operation: \"read\" },\n\t\t\t{ toolName: \"file.read\", operation: \"read\" },\n\t\t\t{ toolName: \"file.edit/apply-patch\", operation: \"edit\" },\n\t\t\t{ toolName: \"bash.run\", operation: \"run\" },\n\t\t\t{ toolName: \"url.fetch\", operation: \"fetch\" },\n\t\t\t{ toolName: \"date.now\", operation: \"read\" },\n\t\t\t{ toolName: \"weather.fetch\", operation: \"fetch\" },\n\t\t\t{ toolName: \"calculator/eval\", operation: \"eval\" },\n\t\t] satisfies readonly Omit<\n\t\t\tToolProviderCatalogEntry,\n\t\t\t\"kind\" | \"providerId\" | \"inputKind\" | \"profileId\" | \"executorId\"\n\t\t>[]);\n\tconst candidatePolicies: readonly unknown[] = opts.policies?.map((policy) =>\n\t\tObject.freeze(policy),\n\t) ?? [\n\t\tdefaultLocalBuiltinToolProviderExecutionPolicy({\n\t\t\tproviderId,\n\t\t\tprofileId,\n\t\t\ttools,\n\t\t\toverrides: opts.policyOverrides,\n\t\t}),\n\t];\n\tconst policyIssues = Object.freeze(\n\t\tcandidatePolicies.flatMap((policy) => [\n\t\t\t...validateToolProviderExecutionPolicy(policy),\n\t\t\t...validateToolProviderPolicyProviderScope(policy, providerId),\n\t\t]),\n\t);\n\tconst policies = Object.freeze(\n\t\tcandidatePolicies\n\t\t\t.filter((policy) => isPublishableToolProviderExecutionPolicy(policy, providerId))\n\t\t\t.map((policy) => Object.freeze(policy)),\n\t);\n\tconst policyRefs = Object.freeze(\n\t\tpolicies.map((policy) => ref(\"tool-provider-execution-policy\", policy.policyId)),\n\t);\n\tconst catalogInputIssues = Object.freeze([\n\t\t...forbiddenGraphVisibleMaterialIssues(\n\t\t\topts.metadata,\n\t\t\tref(\"tool-provider-catalog\", providerId),\n\t\t\t\"catalog-metadata\",\n\t\t),\n\t\t...forbiddenGraphVisibleMaterialIssues(\n\t\t\topts.capabilities,\n\t\t\tref(\"executor-profile\", profileId),\n\t\t\t\"profile-capabilities\",\n\t\t),\n\t\t...forbiddenGraphVisibleMaterialIssues(\n\t\t\topts.limits,\n\t\t\tref(\"executor-profile\", profileId),\n\t\t\t\"profile-limits\",\n\t\t),\n\t\t...tools.flatMap((tool) => [\n\t\t\t...forbiddenGraphVisibleMaterialIssues(\n\t\t\t\ttool.metadata,\n\t\t\t\tref(\"tool\", tool.toolName),\n\t\t\t\t\"tool-metadata\",\n\t\t\t),\n\t\t\t...forbiddenGraphVisibleMaterialIssues(\n\t\t\t\ttool.capabilities,\n\t\t\t\tref(\"tool\", tool.toolName),\n\t\t\t\t\"tool-capabilities\",\n\t\t\t),\n\t\t\t...forbiddenGraphVisibleMaterialIssues(\n\t\t\t\ttool.limits,\n\t\t\t\tref(\"tool\", tool.toolName),\n\t\t\t\t\"tool-limits\",\n\t\t\t),\n\t\t]),\n\t]);\n\tconst toolEntries = tools.map((tool) => {\n\t\tconst toolPolicyRefs = policyRefsForTool(policies, profileId, tool);\n\t\treturn Object.freeze({\n\t\t\t...tool,\n\t\t\tkind: \"tool-catalog-entry\",\n\t\t\tproviderId,\n\t\t\tinputKind: \"tool-call\",\n\t\t\tprofileId,\n\t\t\texecutorId,\n\t\t\tcapabilities: sanitizeProviderGraphVisibleRecord(tool.capabilities),\n\t\t\tlimits: sanitizeProviderGraphVisibleRecord(tool.limits),\n\t\t\tpolicyRefs: toolPolicyRefs,\n\t\t\tmetadata: sanitizeProviderGraphVisibleRecord(tool.metadata),\n\t\t} satisfies ToolProviderCatalogEntry);\n\t});\n\tconst profilePolicyRefs = policyRefsForProfile(policies, profileId);\n\tconst issues = Object.freeze([...policyIssues, ...catalogInputIssues]);\n\treturn Object.freeze({\n\t\tkind: \"tool-provider-catalog\",\n\t\tproviderId,\n\t\tproviderKind: \"local-builtin\",\n\t\tstatus: issues.length === 0 ? \"ready\" : \"misconfigured\",\n\t\tprofiles: Object.freeze([\n\t\t\tObject.freeze({\n\t\t\t\tprofileId,\n\t\t\t\texecutorId,\n\t\t\t\tkind: \"tool\",\n\t\t\t\tacceptedInputKinds: Object.freeze([\"tool-call\"]),\n\t\t\t\tacceptedResultKinds: Object.freeze(\n\t\t\t\t\tArray.from(new Set(toolEntries.flatMap((tool) => tool.resultKinds ?? []))),\n\t\t\t\t),\n\t\t\t\tcapabilities: Object.freeze({\n\t\t\t\t\ttoolNames: Object.freeze(toolEntries.map((tool) => tool.toolName)),\n\t\t\t\t\t...(sanitizeProviderGraphVisibleRecord(opts.capabilities) ?? {}),\n\t\t\t\t}),\n\t\t\t\tlimits: sanitizeProviderGraphVisibleRecord(opts.limits),\n\t\t\t\tpolicyRefs: profilePolicyRefs,\n\t\t\t\tmetadata: sanitizeProviderGraphVisibleRecord(opts.metadata),\n\t\t\t} satisfies ExecutorProfile),\n\t\t]),\n\t\ttools: Object.freeze(toolEntries),\n\t\tpolicies,\n\t\tpolicyRefs,\n\t\tissues: issues.length === 0 ? undefined : issues,\n\t\tmetadata: sanitizeProviderGraphVisibleRecord(opts.metadata),\n\t});\n}\n\nexport function validateToolProviderExecutionPolicy(policy: unknown): readonly DataIssue[] {\n\tconst issues: DataIssue[] = [];\n\tif (!isRecord(policy)) {\n\t\treturn Object.freeze([\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-policy-invalid-shape\",\n\t\t\t\t\"Tool provider policy must be a data object.\",\n\t\t\t\t{ refs: [ref(\"tool-provider-execution-policy\", \"<invalid>\")] },\n\t\t\t),\n\t\t]);\n\t}\n\tconst policyId = typeof policy.policyId === \"string\" ? policy.policyId : \"\";\n\tconst providerId = typeof policy.providerId === \"string\" ? policy.providerId : \"\";\n\tconst policyRef = ref(\"tool-provider-execution-policy\", policyId || \"<missing>\");\n\tif (policy.kind !== \"tool-provider-execution-policy\") {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-policy-invalid-kind\",\n\t\t\t\t\"ToolProviderExecutionPolicy.kind must be tool-provider-execution-policy.\",\n\t\t\t\t{ subjectId: policyId, refs: [policyRef] },\n\t\t\t),\n\t\t);\n\t}\n\tif (!policyId) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-policy-missing-policy-id\",\n\t\t\t\t\"Tool provider policy is missing policyId.\",\n\t\t\t\t{\n\t\t\t\t\trefs: [policyRef],\n\t\t\t\t},\n\t\t\t),\n\t\t);\n\t}\n\tif (!providerId) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-policy-missing-provider-id\",\n\t\t\t\t\"Tool provider policy is missing providerId.\",\n\t\t\t\t{ subjectId: policyId, refs: [policyRef] },\n\t\t\t),\n\t\t);\n\t}\n\tif (\n\t\tpolicy.sizeCapacity === undefined &&\n\t\tpolicy.timeout === undefined &&\n\t\tpolicy.redaction === undefined &&\n\t\tpolicy.filesystem === undefined &&\n\t\tpolicy.approval === undefined &&\n\t\tpolicy.artifacts === undefined &&\n\t\tpolicy.network === undefined\n\t) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-policy-missing-material\",\n\t\t\t\t\"Tool provider policy has no D360 policy material sections.\",\n\t\t\t\t{ subjectId: policyId, refs: [policyRef] },\n\t\t\t),\n\t\t);\n\t}\n\tif (policy.sizeCapacity !== undefined && !isRecord(policy.sizeCapacity)) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-policy-invalid-size-capacity\",\n\t\t\t\t\"Tool provider size-capacity policy must be a data object.\",\n\t\t\t\t{ subjectId: policyId, refs: [policyRef] },\n\t\t\t),\n\t\t);\n\t}\n\tconst limits = isRecord(policy.sizeCapacity) ? policy.sizeCapacity.limits : undefined;\n\tif (isRecord(policy.sizeCapacity) && !Array.isArray(limits)) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-policy-invalid-size-capacity\",\n\t\t\t\t\"Tool provider size-capacity limits must be an array.\",\n\t\t\t\t{ subjectId: policyId, refs: [policyRef] },\n\t\t\t),\n\t\t);\n\t}\n\tfor (const [index, rawLimit] of (Array.isArray(limits) ? limits : []).entries()) {\n\t\tif (!isRecord(rawLimit)) {\n\t\t\tissues.push(\n\t\t\t\tdataIssue(\n\t\t\t\t\t\"tool-provider-policy-invalid-size-limit\",\n\t\t\t\t\t\"Tool provider size-capacity limit must be a data object.\",\n\t\t\t\t\t{ subjectId: policyId, refs: [policyRef], details: { index } },\n\t\t\t\t),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tconst limit = rawLimit as Partial<ToolProviderSizeLimit>;\n\t\tif (typeof limit.unit !== \"string\" || limit.unit.length === 0) {\n\t\t\tissues.push(\n\t\t\t\tdataIssue(\n\t\t\t\t\t\"tool-provider-policy-invalid-size-limit\",\n\t\t\t\t\t\"Tool provider size-capacity limit unit must be a non-empty string.\",\n\t\t\t\t\t{ subjectId: policyId, refs: [policyRef], details: { index } },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tlimit.softLimit !== undefined &&\n\t\t\t(typeof limit.softLimit !== \"number\" ||\n\t\t\t\t!Number.isFinite(limit.softLimit) ||\n\t\t\t\tlimit.softLimit < 0)\n\t\t) {\n\t\t\tissues.push(\n\t\t\t\tdataIssue(\n\t\t\t\t\t\"tool-provider-policy-invalid-size-limit\",\n\t\t\t\t\t\"Tool provider size-capacity softLimit must be a finite non-negative number.\",\n\t\t\t\t\t{ subjectId: policyId, refs: [policyRef], details: { index, unit: limit.unit } },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tlimit.hardLimit !== undefined &&\n\t\t\t(typeof limit.hardLimit !== \"number\" ||\n\t\t\t\t!Number.isFinite(limit.hardLimit) ||\n\t\t\t\tlimit.hardLimit < 0)\n\t\t) {\n\t\t\tissues.push(\n\t\t\t\tdataIssue(\n\t\t\t\t\t\"tool-provider-policy-invalid-size-limit\",\n\t\t\t\t\t\"Tool provider size-capacity hardLimit must be a finite non-negative number.\",\n\t\t\t\t\t{ subjectId: policyId, refs: [policyRef], details: { index, unit: limit.unit } },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\ttypeof limit.softLimit === \"number\" &&\n\t\t\tNumber.isFinite(limit.softLimit) &&\n\t\t\ttypeof limit.hardLimit === \"number\" &&\n\t\t\tNumber.isFinite(limit.hardLimit) &&\n\t\t\tlimit.softLimit > limit.hardLimit\n\t\t) {\n\t\t\tissues.push(\n\t\t\t\tdataIssue(\n\t\t\t\t\t\"tool-provider-policy-invalid-size-limit\",\n\t\t\t\t\t\"Tool provider size-capacity softLimit must not exceed hardLimit.\",\n\t\t\t\t\t{ subjectId: policyId, refs: [policyRef], details: { index, unit: limit.unit } },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tif (policy.timeout !== undefined && !isRecord(policy.timeout)) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-policy-invalid-timeout\",\n\t\t\t\t\"Tool provider timeout policy must be a data object.\",\n\t\t\t\t{ subjectId: policyId, refs: [policyRef] },\n\t\t\t),\n\t\t);\n\t}\n\tfor (const [field, value] of Object.entries(isRecord(policy.timeout) ? policy.timeout : {})) {\n\t\tif (field.endsWith(\"TimeoutMs\") || field === \"timeoutMs\") {\n\t\t\tif (typeof value !== \"number\" || !Number.isFinite(value) || value < 0) {\n\t\t\t\tissues.push(\n\t\t\t\t\tdataIssue(\n\t\t\t\t\t\t\"tool-provider-policy-invalid-timeout\",\n\t\t\t\t\t\t\"Tool provider timeout values must be finite non-negative numbers.\",\n\t\t\t\t\t\t{ subjectId: policyId, refs: [policyRef], details: { field } },\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\tfor (const forbidden of [\n\t\t...forbiddenDataKeys(policy),\n\t\t...forbiddenProviderRawMaterialKeys(policy),\n\t]) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-policy-forbidden-runtime-material\",\n\t\t\t\t\"Tool provider policy must not contain runtime-private adapter material.\",\n\t\t\t\t{ subjectId: policyId, refs: [policyRef], details: { reason: forbidden.reason } },\n\t\t\t),\n\t\t);\n\t}\n\treturn Object.freeze(issues);\n}\n\nexport function resolveToolProviderExecutionPolicies(opts: {\n\treadonly request: AgentRequestIssued;\n\treadonly routes?: readonly ExecutorRoute[];\n\treadonly catalogs?: readonly ToolProviderCatalog[];\n}): readonly ToolProviderPolicyResolution[] {\n\tconst request = opts.request;\n\tconst toolCall = toolCallFromRequest(request);\n\tconst baseSourceRefs = Object.freeze([ref(\"agent-request\", request.requestId)]);\n\tif (toolCall === undefined) {\n\t\treturn Object.freeze([\n\t\t\tObject.freeze({\n\t\t\t\tkind: \"tool-provider-policy-resolution\",\n\t\t\t\tresolutionId: `${request.requestId}:${request.operationId}:tool-policy:missing-tool-call`,\n\t\t\t\tstatus: \"missing-tool-call\",\n\t\t\t\trequestId: request.requestId,\n\t\t\t\toperationId: request.operationId,\n\t\t\t\tissues: Object.freeze([\n\t\t\t\t\tdataIssue(\n\t\t\t\t\t\t\"tool-provider-policy-missing-tool-call\",\n\t\t\t\t\t\t\"Tool provider policy resolution requires AgentRequest input.value to be a ToolCallInput.\",\n\t\t\t\t\t\t{ subjectId: request.requestId, refs: baseSourceRefs },\n\t\t\t\t\t),\n\t\t\t\t]),\n\t\t\t\tsourceRefs: baseSourceRefs,\n\t\t\t} satisfies ToolProviderPolicyResolution),\n\t\t]);\n\t}\n\tconst routes = (opts.routes ?? []).filter(\n\t\t(route) => route.requestId === request.requestId && route.operationId === request.operationId,\n\t);\n\tif (routes.length === 0) {\n\t\treturn Object.freeze([\n\t\t\tObject.freeze({\n\t\t\t\tkind: \"tool-provider-policy-resolution\",\n\t\t\t\tresolutionId: `${request.requestId}:${request.operationId}:tool-policy:pending-route`,\n\t\t\t\tstatus: \"pending-route\",\n\t\t\t\trequestId: request.requestId,\n\t\t\t\toperationId: request.operationId,\n\t\t\t\ttoolName: toolCall.toolName,\n\t\t\t\toperation: toolCall.operation,\n\t\t\t\tsourceRefs: baseSourceRefs,\n\t\t\t} satisfies ToolProviderPolicyResolution),\n\t\t]);\n\t}\n\treturn Object.freeze(\n\t\troutes.map((route) =>\n\t\t\tObject.freeze(\n\t\t\t\tresolveToolProviderPolicyForRoute(request, route, toolCall, opts.catalogs ?? []),\n\t\t\t),\n\t\t),\n\t);\n}\n\nexport function toolProviderPolicyResolutionProjector(\n\tgraph: Graph,\n\topts: {\n\t\treadonly name?: string;\n\t\treadonly requestFacts: Node<AgentRequestFact>;\n\t\treadonly executorRoutes?: readonly Node<ExecutorRoute>[];\n\t\treadonly toolProviderCatalogs?: readonly Node<ToolProviderCatalog>[];\n\t},\n): ToolProviderPolicyResolutionBundle {\n\tconst name = opts.name ?? \"toolProviderPolicyResolution\";\n\tconst routeDeps = opts.executorRoutes ?? [];\n\tconst catalogDeps = opts.toolProviderCatalogs ?? [];\n\tconst routeStart = 1;\n\tconst catalogStart = routeStart + routeDeps.length;\n\tconst runtime = graph.node<ToolProviderPolicyResolutionFact>(\n\t\t[opts.requestFacts, ...routeDeps, ...catalogDeps],\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<ToolProviderPolicyResolutionState>() ?? {\n\t\t\t\trequests: new Map<string, AgentRequestIssued>(),\n\t\t\t\troutes: new Map<string, ExecutorRoute>(),\n\t\t\t\tcatalogs: new Map<string, ToolProviderCatalog>(),\n\t\t\t\temittedKeys: new Set<string>(),\n\t\t\t\tauditSeq: 0,\n\t\t\t};\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst fact = raw as AgentRequestFact;\n\t\t\t\tif (fact.kind === \"issued\" && fact.input?.inputKind === \"tool-call\") {\n\t\t\t\t\tstate.requests.set(fact.requestId, fact);\n\t\t\t\t}\n\t\t\t}\n\t\t\tforEachDepBatch(ctx, routeStart, routeDeps.length, (raw) => {\n\t\t\t\tconst route = raw as ExecutorRoute;\n\t\t\t\tstate.routes.set(route.routeId, route);\n\t\t\t});\n\t\t\tforEachDepBatch(ctx, catalogStart, catalogDeps.length, (raw) => {\n\t\t\t\tconst catalog = raw as ToolProviderCatalog;\n\t\t\t\tstate.catalogs.set(catalog.providerId, catalog);\n\t\t\t});\n\t\t\tfor (const request of state.requests.values()) {\n\t\t\t\tconst resolutions = resolveToolProviderExecutionPolicies({\n\t\t\t\t\trequest,\n\t\t\t\t\troutes: Array.from(state.routes.values()),\n\t\t\t\t\tcatalogs: Array.from(state.catalogs.values()),\n\t\t\t\t});\n\t\t\t\tfor (const resolution of resolutions) {\n\t\t\t\t\tconst key = stableToolProviderPolicyResolutionKey(resolution);\n\t\t\t\t\tif (state.emittedKeys.has(key)) continue;\n\t\t\t\t\tstate.emittedKeys.add(key);\n\t\t\t\t\tctx.down([\n\t\t\t\t\t\t[\"DATA\", { kind: \"resolution\", resolution } satisfies ToolProviderPolicyResolutionFact],\n\t\t\t\t\t]);\n\t\t\t\t\tfor (const issue of resolution.issues ?? []) {\n\t\t\t\t\t\tctx.down([\n\t\t\t\t\t\t\t[\"DATA\", { kind: \"issue\", issue } satisfies ToolProviderPolicyResolutionFact],\n\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t\tstate.auditSeq += 1;\n\t\t\t\t\tctx.down([\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\"DATA\",\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tkind: \"audit\",\n\t\t\t\t\t\t\t\taudit: {\n\t\t\t\t\t\t\t\t\tid: `${name}:audit:${state.auditSeq}`,\n\t\t\t\t\t\t\t\t\tkind: \"tool-provider-policy-resolution\",\n\t\t\t\t\t\t\t\t\tsubjectId: request.requestId,\n\t\t\t\t\t\t\t\t\tsourceRefs: resolution.sourceRefs,\n\t\t\t\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\t\t\t\tstatus: resolution.status,\n\t\t\t\t\t\t\t\t\t\trouteId: resolution.routeId,\n\t\t\t\t\t\t\t\t\t\tproviderId: resolution.providerId,\n\t\t\t\t\t\t\t\t\t\tprofileId: resolution.profileId,\n\t\t\t\t\t\t\t\t\t\ttoolName: resolution.toolName,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} satisfies ToolProviderPolicyResolutionFact,\n\t\t\t\t\t\t],\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{ name: `${name}/runtime`, factory: \"toolProviderPolicyResolutionProjector\", partial: true },\n\t);\n\tconst resolutions = projectRuntimeFact(\n\t\tgraph,\n\t\truntime,\n\t\t`${name}/resolutions`,\n\t\t\"toolProviderPolicyResolutions\",\n\t\t(fact) => (fact.kind === \"resolution\" ? fact.resolution : undefined),\n\t);\n\tconst issues = projectRuntimeFact(\n\t\tgraph,\n\t\truntime,\n\t\t`${name}/issues`,\n\t\t\"toolProviderPolicyResolutionIssues\",\n\t\t(fact) => (fact.kind === \"issue\" ? fact.issue : undefined),\n\t);\n\tconst audit = projectRuntimeFact(\n\t\tgraph,\n\t\truntime,\n\t\t`${name}/audit`,\n\t\t\"toolProviderPolicyResolutionAudit\",\n\t\t(fact) => (fact.kind === \"audit\" ? fact.audit : undefined),\n\t);\n\treturn { resolutions, issues, audit };\n}\n\nexport type ToolProviderPolicyResolutionFact =\n\t| { readonly kind: \"resolution\"; readonly resolution: ToolProviderPolicyResolution }\n\t| { readonly kind: \"issue\"; readonly issue: DataIssue }\n\t| { readonly kind: \"audit\"; readonly audit: AgentRuntimeAuditRecord };\n\nexport interface ToolProviderPolicyResolutionState {\n\trequests: Map<string, AgentRequestIssued>;\n\troutes: Map<string, ExecutorRoute>;\n\tcatalogs: Map<string, ToolProviderCatalog>;\n\temittedKeys: Set<string>;\n\tauditSeq: number;\n}\n\nexport function isPublishableToolProviderExecutionPolicy(\n\tpolicy: unknown,\n\tproviderId?: string,\n): policy is ToolProviderExecutionPolicy {\n\treturn (\n\t\tisRecord(policy) &&\n\t\tpolicy.kind === \"tool-provider-execution-policy\" &&\n\t\ttypeof policy.policyId === \"string\" &&\n\t\tpolicy.policyId.length > 0 &&\n\t\ttypeof policy.providerId === \"string\" &&\n\t\tpolicy.providerId.length > 0 &&\n\t\t(providerId === undefined || policy.providerId === providerId) &&\n\t\tvalidateToolProviderExecutionPolicy(policy).length === 0\n\t);\n}\n\nexport function validateToolProviderPolicyProviderScope(\n\tpolicy: unknown,\n\tproviderId: string,\n): readonly DataIssue[] {\n\tif (!isRecord(policy)) return [];\n\tif (policy.providerId === undefined || policy.providerId === providerId) return [];\n\treturn Object.freeze([\n\t\tdataIssue(\n\t\t\t\"tool-provider-policy-provider-mismatch\",\n\t\t\t\"Tool provider policy providerId must match the catalog providerId.\",\n\t\t\t{\n\t\t\t\tsubjectId: typeof policy.policyId === \"string\" ? policy.policyId : undefined,\n\t\t\t\trefs: [\n\t\t\t\t\tref(\n\t\t\t\t\t\t\"tool-provider-execution-policy\",\n\t\t\t\t\t\ttypeof policy.policyId === \"string\" && policy.policyId.length > 0\n\t\t\t\t\t\t\t? policy.policyId\n\t\t\t\t\t\t\t: \"<missing>\",\n\t\t\t\t\t),\n\t\t\t\t\tref(\"tool-provider-catalog\", providerId),\n\t\t\t\t],\n\t\t\t},\n\t\t),\n\t]);\n}\n\nexport function policyRefsForProfile(\n\tpolicies: readonly ToolProviderExecutionPolicy[],\n\tprofileId: string,\n): readonly SourceRef[] {\n\treturn Object.freeze(\n\t\tpolicies\n\t\t\t.filter((policy) => policyAppliesToProfile(policy, profileId))\n\t\t\t.map((policy) => ref(\"tool-provider-execution-policy\", policy.policyId)),\n\t);\n}\n\nexport function policyRefsForTool(\n\tpolicies: readonly ToolProviderExecutionPolicy[],\n\tprofileId: string,\n\ttool: Omit<\n\t\tToolProviderCatalogEntry,\n\t\t\"kind\" | \"providerId\" | \"inputKind\" | \"profileId\" | \"executorId\"\n\t>,\n): readonly SourceRef[] {\n\treturn Object.freeze(\n\t\tpolicies\n\t\t\t.filter((policy) => policyAppliesToProfile(policy, profileId))\n\t\t\t.filter((policy) => policyAppliesToOptionalScope(policy.toolNames, tool.toolName))\n\t\t\t.filter((policy) => policyAppliesToOptionalScope(policy.operations, tool.operation))\n\t\t\t.map((policy) => ref(\"tool-provider-execution-policy\", policy.policyId)),\n\t);\n}\n\nexport function policyAppliesToProfile(\n\tpolicy: ToolProviderExecutionPolicy,\n\tprofileId: string,\n): boolean {\n\treturn policyAppliesToOptionalScope(policy.profileIds, profileId);\n}\n\nexport function policyAppliesToOptionalScope(\n\tscope: readonly string[] | undefined,\n\tvalue: string | undefined,\n): boolean {\n\treturn (\n\t\tscope === undefined || scope.length === 0 || (value !== undefined && scope.includes(value))\n\t);\n}\n\nexport function toolCallFromRequest(request: AgentRequestIssued): ToolCallInput | undefined {\n\tconst value = request.input?.value;\n\tif (request.input?.inputKind !== \"tool-call\" || !isRecord(value)) return undefined;\n\tif (\n\t\tvalue.kind !== \"tool-call\" ||\n\t\ttypeof value.toolName !== \"string\" ||\n\t\tvalue.toolName.length === 0\n\t) {\n\t\treturn undefined;\n\t}\n\treturn value as unknown as ToolCallInput;\n}\n\nexport function resolveToolProviderPolicyForRoute(\n\trequest: AgentRequestIssued,\n\troute: ExecutorRoute,\n\ttoolCall: ToolCallInput,\n\tcatalogs: readonly ToolProviderCatalog[],\n): ToolProviderPolicyResolution {\n\tconst sourceRefs = Object.freeze([\n\t\tref(\"agent-request\", request.requestId),\n\t\tref(\"executor-route\", route.routeId),\n\t]);\n\tconst matchingCatalogs = catalogs.filter((catalog) => catalogHasRouteProfile(catalog, route));\n\tif (matchingCatalogs.length === 0) {\n\t\treturn policyResolutionWithIssue({\n\t\t\trequest,\n\t\t\troute,\n\t\t\ttoolCall,\n\t\t\tstatus: \"missing-catalog\",\n\t\t\tsourceRefs,\n\t\t\tissue: dataIssue(\n\t\t\t\t\"tool-provider-policy-missing-catalog\",\n\t\t\t\t`No tool provider catalog exposes route profile '${route.profileId}'.`,\n\t\t\t\t{ subjectId: request.requestId, refs: sourceRefs },\n\t\t\t),\n\t\t});\n\t}\n\tif (matchingCatalogs.length > 1) {\n\t\treturn policyResolutionWithIssue({\n\t\t\trequest,\n\t\t\troute,\n\t\t\ttoolCall,\n\t\t\tstatus: \"ambiguous-catalog\",\n\t\t\tsourceRefs,\n\t\t\tissue: dataIssue(\n\t\t\t\t\"tool-provider-policy-ambiguous-catalog\",\n\t\t\t\t`Multiple tool provider catalogs expose route profile '${route.profileId}'.`,\n\t\t\t\t{\n\t\t\t\t\tsubjectId: request.requestId,\n\t\t\t\t\trefs: [\n\t\t\t\t\t\t...sourceRefs,\n\t\t\t\t\t\t...matchingCatalogs.map((catalog) => ref(\"tool-provider-catalog\", catalog.providerId)),\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t),\n\t\t});\n\t}\n\tconst catalog = matchingCatalogs[0];\n\tif (catalog === undefined) throw new Error(\"unreachable catalog match\");\n\tconst tool = catalog.tools.find(\n\t\t(entry) =>\n\t\t\tentry.profileId === route.profileId &&\n\t\t\tentry.executorId === route.executorId &&\n\t\t\tentry.toolName === toolCall.toolName &&\n\t\t\t(entry.operation === undefined ||\n\t\t\t\ttoolCall.operation === undefined ||\n\t\t\t\tentry.operation === toolCall.operation),\n\t);\n\tif (tool === undefined) {\n\t\treturn policyResolutionWithIssue({\n\t\t\trequest,\n\t\t\troute,\n\t\t\ttoolCall,\n\t\t\tstatus: \"missing-tool\",\n\t\t\tsourceRefs,\n\t\t\tproviderId: catalog.providerId,\n\t\t\tissue: dataIssue(\n\t\t\t\t\"tool-provider-policy-missing-tool\",\n\t\t\t\t`Tool provider catalog '${catalog.providerId}' does not expose requested tool '${toolCall.toolName}'.`,\n\t\t\t\t{\n\t\t\t\t\tsubjectId: request.requestId,\n\t\t\t\t\trefs: [...sourceRefs, ref(\"tool-provider-catalog\", catalog.providerId)],\n\t\t\t\t},\n\t\t\t),\n\t\t});\n\t}\n\tconst policyRefs = policyRefsForResolution(catalog, route, tool);\n\tif (policyRefs.length === 0) {\n\t\treturn policyResolutionWithIssue({\n\t\t\trequest,\n\t\t\troute,\n\t\t\ttoolCall,\n\t\t\tstatus: \"missing-policy\",\n\t\t\tsourceRefs,\n\t\t\tproviderId: catalog.providerId,\n\t\t\tissue: dataIssue(\n\t\t\t\t\"tool-provider-policy-missing-policy-ref\",\n\t\t\t\t`Tool '${tool.toolName}' has no D360 policy refs on its entry, profile, or catalog.`,\n\t\t\t\t{\n\t\t\t\t\tsubjectId: request.requestId,\n\t\t\t\t\trefs: [...sourceRefs, ref(\"tool-provider-catalog\", catalog.providerId)],\n\t\t\t\t},\n\t\t\t),\n\t\t});\n\t}\n\tconst issues = policyIssuesForRefs(catalog, policyRefs, request, sourceRefs);\n\tconst status = issues.length === 0 ? \"resolved\" : \"invalid-policy\";\n\treturn Object.freeze({\n\t\tkind: \"tool-provider-policy-resolution\",\n\t\tresolutionId: `${request.requestId}:${request.operationId}:${route.routeId}:tool-policy`,\n\t\tstatus,\n\t\trequestId: request.requestId,\n\t\toperationId: request.operationId,\n\t\trouteId: route.routeId,\n\t\tproviderId: catalog.providerId,\n\t\texecutorId: route.executorId,\n\t\tprofileId: route.profileId,\n\t\ttoolName: toolCall.toolName,\n\t\toperation: toolCall.operation,\n\t\tpolicyRefs,\n\t\tissues: issues.length === 0 ? undefined : Object.freeze(issues),\n\t\tsourceRefs: Object.freeze([...sourceRefs, ref(\"tool-provider-catalog\", catalog.providerId)]),\n\t} satisfies ToolProviderPolicyResolution);\n}\n\nexport function catalogHasRouteProfile(\n\tcatalog: ToolProviderCatalog,\n\troute: ExecutorRoute,\n): boolean {\n\treturn catalog.profiles.some(\n\t\t(profile) => profile.profileId === route.profileId && profile.executorId === route.executorId,\n\t);\n}\n\nexport function policyRefsForResolution(\n\tcatalog: ToolProviderCatalog,\n\troute: ExecutorRoute,\n\ttool: ToolProviderCatalogEntry,\n): readonly SourceRef[] {\n\tconst profile = catalog.profiles.find(\n\t\t(candidate) =>\n\t\t\tcandidate.profileId === route.profileId && candidate.executorId === route.executorId,\n\t);\n\treturn Object.freeze([\n\t\t...(tool.policyRefs ?? []),\n\t\t...((tool.policyRefs?.length ?? 0) === 0 ? (profile?.policyRefs ?? []) : []),\n\t\t...((tool.policyRefs?.length ?? 0) === 0 && (profile?.policyRefs?.length ?? 0) === 0\n\t\t\t? (catalog.policyRefs ?? [])\n\t\t\t: []),\n\t]);\n}\n\nexport function policyIssuesForRefs(\n\tcatalog: ToolProviderCatalog,\n\tpolicyRefs: readonly SourceRef[],\n\trequest: AgentRequestIssued,\n\tsourceRefs: readonly SourceRef[],\n): readonly DataIssue[] {\n\tconst policiesById = new Map((catalog.policies ?? []).map((policy) => [policy.policyId, policy]));\n\tconst issues: DataIssue[] = [];\n\tfor (const policyRef of policyRefs) {\n\t\tif (policyRef.kind !== \"tool-provider-execution-policy\") {\n\t\t\tissues.push(\n\t\t\t\tdataIssue(\n\t\t\t\t\t\"tool-provider-policy-invalid-ref-kind\",\n\t\t\t\t\t\"Tool provider policy refs must point at ToolProviderExecutionPolicy facts.\",\n\t\t\t\t\t{ subjectId: request.requestId, refs: [...sourceRefs, policyRef] },\n\t\t\t\t),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tconst policy = policiesById.get(policyRef.id);\n\t\tif (policy === undefined) {\n\t\t\tissues.push(\n\t\t\t\tdataIssue(\n\t\t\t\t\t\"tool-provider-policy-ref-missing-material\",\n\t\t\t\t\t`Tool provider policy ref '${policyRef.id}' has no policy material in catalog '${catalog.providerId}'.`,\n\t\t\t\t\t{ subjectId: request.requestId, refs: [...sourceRefs, policyRef] },\n\t\t\t\t),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tissues.push(...validateToolProviderExecutionPolicy(policy));\n\t\tissues.push(...validateToolProviderPolicyProviderScope(policy, catalog.providerId));\n\t}\n\treturn Object.freeze(issues);\n}\n\nexport function policyResolutionWithIssue(opts: {\n\treadonly request: AgentRequestIssued;\n\treadonly route: ExecutorRoute;\n\treadonly toolCall: ToolCallInput;\n\treadonly status: ToolProviderPolicyResolutionStatus;\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly issue: DataIssue;\n\treadonly providerId?: string;\n}): ToolProviderPolicyResolution {\n\treturn Object.freeze({\n\t\tkind: \"tool-provider-policy-resolution\",\n\t\tresolutionId: `${opts.request.requestId}:${opts.request.operationId}:${opts.route.routeId}:tool-policy:${opts.status}`,\n\t\tstatus: opts.status,\n\t\trequestId: opts.request.requestId,\n\t\toperationId: opts.request.operationId,\n\t\trouteId: opts.route.routeId,\n\t\tproviderId: opts.providerId,\n\t\texecutorId: opts.route.executorId,\n\t\tprofileId: opts.route.profileId,\n\t\ttoolName: opts.toolCall.toolName,\n\t\toperation: opts.toolCall.operation,\n\t\tissues: Object.freeze([opts.issue]),\n\t\tsourceRefs: opts.sourceRefs,\n\t} satisfies ToolProviderPolicyResolution);\n}\n\nexport function stableToolProviderPolicyResolutionKey(\n\tresolution: ToolProviderPolicyResolution,\n): string {\n\treturn JSON.stringify({\n\t\tid: resolution.resolutionId,\n\t\tstatus: resolution.status,\n\t\tpolicyRefs:\n\t\t\tresolution.policyRefs?.map((policyRef) => `${policyRef.kind}:${policyRef.id}`) ?? [],\n\t\tissues: resolution.issues?.map((issue) => issue.code) ?? [],\n\t});\n}\n\nexport function defaultLocalBuiltinToolProviderExecutionPolicy(opts: {\n\treadonly providerId: string;\n\treadonly profileId: string;\n\treadonly tools: readonly Omit<\n\t\tToolProviderCatalogEntry,\n\t\t\"kind\" | \"providerId\" | \"inputKind\" | \"profileId\" | \"executorId\"\n\t>[];\n\treadonly overrides?: Partial<\n\t\tOmit<ToolProviderExecutionPolicy, \"kind\" | \"policyId\" | \"providerId\">\n\t>;\n}): ToolProviderExecutionPolicy {\n\tconst toolNames = Object.freeze(Array.from(new Set(opts.tools.map((tool) => tool.toolName))));\n\tconst operations = Object.freeze(\n\t\tArray.from(new Set(opts.tools.map((tool) => tool.operation).filter((op) => op !== undefined))),\n\t);\n\tconst hasUrlFetch = toolNames.includes(\"url.fetch\");\n\tconst filesystemToolNames = toolNames.filter(\n\t\t(toolName) =>\n\t\t\ttoolName.startsWith(\"file.\") || toolName.startsWith(\"document/\") || toolName === \"bash.run\",\n\t);\n\tconst approvalToolNames = toolNames.filter(\n\t\t(toolName) => toolName === \"file.edit/apply-patch\" || toolName === \"bash.run\",\n\t);\n\tconst approvalOperations = operations.filter(\n\t\t(operation) => operation === \"edit\" || operation === \"run\",\n\t);\n\tconst policy = {\n\t\tkind: \"tool-provider-execution-policy\",\n\t\tpolicyId: `${opts.providerId}:policy:default`,\n\t\tproviderId: opts.providerId,\n\t\tprofileIds: Object.freeze([opts.profileId]),\n\t\ttoolNames,\n\t\toperations,\n\t\tsizeCapacity: Object.freeze({\n\t\t\tlimits: Object.freeze([\n\t\t\t\tObject.freeze({\n\t\t\t\t\tunit: \"chars\",\n\t\t\t\t\tsoftLimit: 16_384,\n\t\t\t\t\thardLimit: 65_536,\n\t\t\t\t\tperRequest: true,\n\t\t\t\t\tmeasurementSource: \"adapter-estimated\",\n\t\t\t\t} satisfies ToolProviderSizeLimit),\n\t\t\t\tObject.freeze({\n\t\t\t\t\tunit: \"bytes\",\n\t\t\t\t\tsoftLimit: 1_048_576,\n\t\t\t\t\thardLimit: 8_388_608,\n\t\t\t\t\tperArtifact: true,\n\t\t\t\t\tmeasurementSource: \"adapter-measured\",\n\t\t\t\t} satisfies ToolProviderSizeLimit),\n\t\t\t\tObject.freeze({\n\t\t\t\t\tunit: \"lines\",\n\t\t\t\t\tsoftLimit: 2_000,\n\t\t\t\t\thardLimit: 10_000,\n\t\t\t\t\tperStream: true,\n\t\t\t\t\tmeasurementSource: \"adapter-measured\",\n\t\t\t\t} satisfies ToolProviderSizeLimit),\n\t\t\t]),\n\t\t} satisfies ToolProviderSizeCapacityPolicy),\n\t\ttimeout: Object.freeze({\n\t\t\ttimeoutMs: 30_000,\n\t\t\tidleTimeoutMs: 5_000,\n\t\t} satisfies ToolProviderTimeoutPolicy),\n\t\tredaction: Object.freeze({\n\t\t\tmode: \"summary\",\n\t\t\tsensitivity: Object.freeze([\"private-material\", \"auth-material\", \"personal-data\"]),\n\t\t\tsummaryMaxChars: 512,\n\t\t} satisfies ToolProviderRedactionPolicy),\n\t\t...(filesystemToolNames.length > 0\n\t\t\t? {\n\t\t\t\t\tfilesystem: Object.freeze({\n\t\t\t\t\t\tcwd: \".\",\n\t\t\t\t\t\tallowRead: true,\n\t\t\t\t\t\tallowWrite: false,\n\t\t\t\t\t\tfollowSymlinks: false,\n\t\t\t\t\t\tsourceRefs: Object.freeze(filesystemToolNames.map((toolName) => ref(\"tool\", toolName))),\n\t\t\t\t\t\tpathRules: Object.freeze([\n\t\t\t\t\t\t\tObject.freeze({\n\t\t\t\t\t\t\t\teffect: \"allow\",\n\t\t\t\t\t\t\t\tpath: \".\",\n\t\t\t\t\t\t\t\toperation: \"read\",\n\t\t\t\t\t\t\t\treason: \"Default local builtin catalog is workspace-relative data material.\",\n\t\t\t\t\t\t\t} satisfies ToolProviderPathRule),\n\t\t\t\t\t\t\tObject.freeze({\n\t\t\t\t\t\t\t\teffect: \"deny\",\n\t\t\t\t\t\t\t\tglob: \"**/.env*\",\n\t\t\t\t\t\t\t\treason: \"D360 policies keep private material outside catalog DATA.\",\n\t\t\t\t\t\t\t} satisfies ToolProviderPathRule),\n\t\t\t\t\t\t]),\n\t\t\t\t\t} satisfies ToolProviderFilesystemPolicy),\n\t\t\t\t}\n\t\t\t: {}),\n\t\t...(hasUrlFetch\n\t\t\t? {\n\t\t\t\t\tnetwork: Object.freeze({\n\t\t\t\t\t\tmode: \"custom\",\n\t\t\t\t\t\tprotocols: Object.freeze([\"https:\"]),\n\t\t\t\t\t\tallowedHosts: Object.freeze([\"*\"]),\n\t\t\t\t\t\tsourceRefs: Object.freeze([ref(\"tool\", \"url.fetch\")]),\n\t\t\t\t\t} satisfies ToolProviderNetworkPolicy),\n\t\t\t\t}\n\t\t\t: {}),\n\t\tapproval: Object.freeze({\n\t\t\tmode: approvalToolNames.length > 0 ? \"require\" : \"auto\",\n\t\t\t...(approvalToolNames.length > 0\n\t\t\t\t? { requiredForToolNames: Object.freeze(approvalToolNames) }\n\t\t\t\t: {}),\n\t\t\t...(approvalOperations.length > 0\n\t\t\t\t? { requiredForOperations: Object.freeze(approvalOperations) }\n\t\t\t\t: {}),\n\t\t} satisfies ToolProviderApprovalPolicy),\n\t\tartifacts: Object.freeze({\n\t\t\tdefaultDataMode: \"summary\",\n\t\t\tartifactKinds: Object.freeze([\n\t\t\t\t\"text\",\n\t\t\t\t\"markdown\",\n\t\t\t\t\"file\",\n\t\t\t\t\"stdout\",\n\t\t\t\t\"stderr\",\n\t\t\t\t\"tool-output\",\n\t\t\t\t\"provider-raw\",\n\t\t\t]),\n\t\t\tinlineLimits: Object.freeze([\n\t\t\t\tObject.freeze({\n\t\t\t\t\tunit: \"chars\",\n\t\t\t\t\thardLimit: 4_096,\n\t\t\t\t\tperArtifact: true,\n\t\t\t\t\tmeasurementSource: \"adapter-estimated\",\n\t\t\t\t} satisfies ToolProviderSizeLimit),\n\t\t\t]),\n\t\t\trequireDigest: false,\n\t\t} satisfies ToolProviderArtifactPolicy),\n\t\tsourceRefs: Object.freeze([ref(\"decision\", \"D360\"), ref(\"tool-provider\", opts.providerId)]),\n\t\tmetadata: Object.freeze({\n\t\t\tdescription: \"Default data-only policy material for local builtin tools.\",\n\t\t}),\n\t\t...unlockedToolProviderPolicyOverrides(opts.overrides),\n\t} satisfies ToolProviderExecutionPolicy;\n\treturn Object.freeze(policy);\n}\n","import { depBatch } from \"../ctx/types.js\";\nimport type { DataIssue } from \"../data/index.js\";\nimport type { Graph } from \"../graph/graph.js\";\nimport type { Node } from \"../node/node.js\";\nimport {\n\tdataIssue,\n\tforbiddenAdapterInputMaterialIssues,\n\tforEachDepBatch,\n\tprojectRuntimeFact,\n\tref,\n\tsanitizeAdapterInputIssue,\n\tsanitizeAdapterInputSourceRefs,\n\tstableJsonStringify,\n} from \"./agent-runtime-common.js\";\nimport {\n\ttoolCallFromRequest,\n\tvalidateToolProviderExecutionPolicy,\n\tvalidateToolProviderPolicyProviderScope,\n} from \"./agent-runtime-tool-provider-policy.js\";\nimport type { AgentRuntimeAuditRecord } from \"./agent-runtime-types-agent.js\";\nimport type {\n\tAgentRequestFact,\n\tAgentRequestInput,\n\tAgentRequestIssued,\n\tExecutorRoute,\n\tSourceRef,\n} from \"./agent-runtime-types-core.js\";\nimport type {\n\tToolCallInput,\n\tToolProviderAdapterInput,\n\tToolProviderAdapterInputBundle,\n\tToolProviderAdapterInputStatus,\n\tToolProviderCatalog,\n\tToolProviderCatalogEntry,\n\tToolProviderExecutionPolicy,\n\tToolProviderPolicyResolution,\n} from \"./agent-runtime-types-tool.js\";\n\nexport function buildToolProviderAdapterInputs(opts: {\n\treadonly requests: readonly AgentRequestIssued[];\n\treadonly routes?: readonly ExecutorRoute[];\n\treadonly catalogs?: readonly ToolProviderCatalog[];\n\treadonly resolutions: readonly ToolProviderPolicyResolution[];\n}): readonly ToolProviderAdapterInput[] {\n\tconst requestsById = new Map(opts.requests.map((request) => [request.requestId, request]));\n\tconst routesById = new Map((opts.routes ?? []).map((route) => [route.routeId, route]));\n\tconst catalogsById = new Map(\n\t\t(opts.catalogs ?? []).map((catalog) => [catalog.providerId, catalog]),\n\t);\n\treturn Object.freeze(\n\t\topts.resolutions.map((resolution) =>\n\t\t\tbuildToolProviderAdapterInput({\n\t\t\t\tresolution,\n\t\t\t\trequest: requestsById.get(resolution.requestId),\n\t\t\t\troute: resolution.routeId === undefined ? undefined : routesById.get(resolution.routeId),\n\t\t\t\tcatalog:\n\t\t\t\t\tresolution.providerId === undefined ? undefined : catalogsById.get(resolution.providerId),\n\t\t\t}),\n\t\t),\n\t);\n}\n\nexport function toolProviderAdapterInputProjector(\n\tgraph: Graph,\n\topts: {\n\t\treadonly name?: string;\n\t\treadonly requestFacts: Node<AgentRequestFact>;\n\t\treadonly executorRoutes?: readonly Node<ExecutorRoute>[];\n\t\treadonly toolProviderCatalogs?: readonly Node<ToolProviderCatalog>[];\n\t\treadonly policyResolutions: readonly Node<ToolProviderPolicyResolution>[];\n\t},\n): ToolProviderAdapterInputBundle {\n\tconst name = opts.name ?? \"toolProviderAdapterInput\";\n\tconst routeDeps = opts.executorRoutes ?? [];\n\tconst catalogDeps = opts.toolProviderCatalogs ?? [];\n\tconst routeStart = 1;\n\tconst catalogStart = routeStart + routeDeps.length;\n\tconst resolutionStart = catalogStart + catalogDeps.length;\n\tconst runtime = graph.node<ToolProviderAdapterInputFact>(\n\t\t[opts.requestFacts, ...routeDeps, ...catalogDeps, ...opts.policyResolutions],\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<ToolProviderAdapterInputState>() ?? {\n\t\t\t\trequests: new Map<string, AgentRequestIssued>(),\n\t\t\t\troutes: new Map<string, ExecutorRoute>(),\n\t\t\t\tcatalogs: new Map<string, ToolProviderCatalog>(),\n\t\t\t\tresolutions: new Map<string, ToolProviderPolicyResolution>(),\n\t\t\t\temittedKeys: new Set<string>(),\n\t\t\t\tauditSeq: 0,\n\t\t\t};\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst fact = raw as AgentRequestFact;\n\t\t\t\tif (fact.kind === \"issued\" && fact.input?.inputKind === \"tool-call\") {\n\t\t\t\t\tstate.requests.set(fact.requestId, fact);\n\t\t\t\t}\n\t\t\t}\n\t\t\tforEachDepBatch(ctx, routeStart, routeDeps.length, (raw) => {\n\t\t\t\tconst route = raw as ExecutorRoute;\n\t\t\t\tstate.routes.set(route.routeId, route);\n\t\t\t});\n\t\t\tforEachDepBatch(ctx, catalogStart, catalogDeps.length, (raw) => {\n\t\t\t\tconst catalog = raw as ToolProviderCatalog;\n\t\t\t\tstate.catalogs.set(catalog.providerId, catalog);\n\t\t\t});\n\t\t\tforEachDepBatch(ctx, resolutionStart, opts.policyResolutions.length, (raw) => {\n\t\t\t\tconst resolution = raw as ToolProviderPolicyResolution;\n\t\t\t\tstate.resolutions.set(resolution.resolutionId, resolution);\n\t\t\t});\n\t\t\tconst inputs = buildToolProviderAdapterInputs({\n\t\t\t\trequests: Array.from(state.requests.values()),\n\t\t\t\troutes: Array.from(state.routes.values()),\n\t\t\t\tcatalogs: Array.from(state.catalogs.values()),\n\t\t\t\tresolutions: Array.from(state.resolutions.values()),\n\t\t\t});\n\t\t\tfor (const input of inputs) {\n\t\t\t\tconst key = stableToolProviderAdapterInputKey(input);\n\t\t\t\tif (state.emittedKeys.has(key)) continue;\n\t\t\t\tstate.emittedKeys.add(key);\n\t\t\t\tctx.down([[\"DATA\", { kind: \"input\", input } satisfies ToolProviderAdapterInputFact]]);\n\t\t\t\tfor (const issue of input.issues ?? []) {\n\t\t\t\t\tctx.down([[\"DATA\", { kind: \"issue\", issue } satisfies ToolProviderAdapterInputFact]]);\n\t\t\t\t}\n\t\t\t\tstate.auditSeq += 1;\n\t\t\t\tctx.down([\n\t\t\t\t\t[\n\t\t\t\t\t\t\"DATA\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkind: \"audit\",\n\t\t\t\t\t\t\taudit: {\n\t\t\t\t\t\t\t\tid: `${name}:audit:${state.auditSeq}`,\n\t\t\t\t\t\t\t\tkind: \"tool-provider-adapter-input\",\n\t\t\t\t\t\t\t\tsubjectId: input.requestId,\n\t\t\t\t\t\t\t\tsourceRefs: input.sourceRefs,\n\t\t\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\t\t\tstatus: input.status,\n\t\t\t\t\t\t\t\t\trouteId: input.routeId,\n\t\t\t\t\t\t\t\t\tproviderId: input.providerId,\n\t\t\t\t\t\t\t\t\tprofileId: input.profileId,\n\t\t\t\t\t\t\t\t\ttoolName: input.toolName,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} satisfies ToolProviderAdapterInputFact,\n\t\t\t\t\t],\n\t\t\t\t]);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{ name: `${name}/runtime`, factory: \"toolProviderAdapterInputProjector\", partial: true },\n\t);\n\tconst inputs = projectRuntimeFact(\n\t\tgraph,\n\t\truntime,\n\t\t`${name}/inputs`,\n\t\t\"toolProviderAdapterInputs\",\n\t\t(fact) => (fact.kind === \"input\" ? fact.input : undefined),\n\t);\n\tconst issues = projectRuntimeFact(\n\t\tgraph,\n\t\truntime,\n\t\t`${name}/issues`,\n\t\t\"toolProviderAdapterInputIssues\",\n\t\t(fact) => (fact.kind === \"issue\" ? fact.issue : undefined),\n\t);\n\tconst audit = projectRuntimeFact(\n\t\tgraph,\n\t\truntime,\n\t\t`${name}/audit`,\n\t\t\"toolProviderAdapterInputAudit\",\n\t\t(fact) => (fact.kind === \"audit\" ? fact.audit : undefined),\n\t);\n\treturn { inputs, issues, audit };\n}\n\nexport type ToolProviderAdapterInputFact =\n\t| { readonly kind: \"input\"; readonly input: ToolProviderAdapterInput }\n\t| { readonly kind: \"issue\"; readonly issue: DataIssue }\n\t| { readonly kind: \"audit\"; readonly audit: AgentRuntimeAuditRecord };\n\nexport interface ToolProviderAdapterInputState {\n\trequests: Map<string, AgentRequestIssued>;\n\troutes: Map<string, ExecutorRoute>;\n\tcatalogs: Map<string, ToolProviderCatalog>;\n\tresolutions: Map<string, ToolProviderPolicyResolution>;\n\temittedKeys: Set<string>;\n\tauditSeq: number;\n}\n\nexport function buildToolProviderAdapterInput(opts: {\n\treadonly resolution: ToolProviderPolicyResolution;\n\treadonly request?: AgentRequestIssued;\n\treadonly route?: ExecutorRoute;\n\treadonly catalog?: ToolProviderCatalog;\n}): ToolProviderAdapterInput {\n\tconst { resolution, request, route, catalog } = opts;\n\tconst sourceRefs = sanitizeAdapterInputSourceRefs([\n\t\tref(\"tool-provider-policy-resolution\", resolution.resolutionId),\n\t\t...(resolution.sourceRefs ?? []),\n\t\t...(resolution.routeId === undefined ? [] : [ref(\"executor-route\", resolution.routeId)]),\n\t\t...(resolution.providerId === undefined\n\t\t\t? []\n\t\t\t: [ref(\"tool-provider-catalog\", resolution.providerId)]),\n\t\t...(resolution.policyRefs ?? []),\n\t]);\n\tconst issues: DataIssue[] = (resolution.issues ?? []).map((issue) =>\n\t\tsanitizeAdapterInputIssue(issue),\n\t);\n\tlet statusOverride: Exclude<ToolProviderAdapterInputStatus, \"ready\"> | undefined;\n\tif (request === undefined) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-adapter-input-missing-request\",\n\t\t\t\t\"Tool provider adapter input requires the issued AgentRequest fact.\",\n\t\t\t\t{ subjectId: resolution.requestId, refs: sourceRefs },\n\t\t\t),\n\t\t);\n\t}\n\tif (request !== undefined && request.requestId !== resolution.requestId) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-adapter-input-stale-request\",\n\t\t\t\t\"Tool provider adapter input request identity does not match its policy resolution.\",\n\t\t\t\t{ subjectId: resolution.requestId, refs: sourceRefs },\n\t\t\t),\n\t\t);\n\t}\n\tif (request !== undefined && request.operationId !== resolution.operationId) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-adapter-input-stale-request-operation\",\n\t\t\t\t\"Tool provider adapter input request operationId does not match its policy resolution.\",\n\t\t\t\t{ subjectId: resolution.requestId, refs: sourceRefs },\n\t\t\t),\n\t\t);\n\t}\n\tif (resolution.routeId !== undefined && route === undefined) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-adapter-input-missing-route\",\n\t\t\t\t\"Tool provider adapter input requires the selected ExecutorRoute fact.\",\n\t\t\t\t{ subjectId: resolution.requestId, refs: sourceRefs },\n\t\t\t),\n\t\t);\n\t}\n\tif (route !== undefined) {\n\t\tissues.push(...routeIdentityIssuesForAdapterInput(route, resolution, request, sourceRefs));\n\t}\n\tif (resolution.providerId !== undefined && catalog === undefined) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-adapter-input-missing-catalog\",\n\t\t\t\t\"Tool provider adapter input requires the selected ToolProviderCatalog fact.\",\n\t\t\t\t{ subjectId: resolution.requestId, refs: sourceRefs },\n\t\t\t),\n\t\t);\n\t}\n\tif (catalog !== undefined && catalog.status !== undefined && catalog.status !== \"ready\") {\n\t\tstatusOverride = \"invalid-policy\";\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-adapter-input-catalog-unavailable\",\n\t\t\t\t\"Tool provider adapter input requires a ready ToolProviderCatalog.\",\n\t\t\t\t{\n\t\t\t\t\tsubjectId: resolution.requestId,\n\t\t\t\t\trefs: [...sourceRefs, ref(\"tool-provider-catalog\", catalog.providerId)],\n\t\t\t\t\tdetails: { status: catalog.status },\n\t\t\t\t},\n\t\t\t),\n\t\t);\n\t\tissues.push(...(catalog.issues ?? []).map((issue) => sanitizeAdapterInputIssue(issue)));\n\t}\n\tconst toolCall = request === undefined ? undefined : toolCallFromRequest(request);\n\tif (request !== undefined && toolCall === undefined) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-adapter-input-missing-tool-call\",\n\t\t\t\t\"Tool provider adapter input requires AgentRequest input.value to be a ToolCallInput.\",\n\t\t\t\t{ subjectId: resolution.requestId, refs: sourceRefs },\n\t\t\t),\n\t\t);\n\t}\n\tconst tool =\n\t\tcatalog === undefined || route === undefined || toolCall === undefined\n\t\t\t? undefined\n\t\t\t: selectedToolForAdapterInput(catalog, route, toolCall);\n\tif (resolution.status === \"resolved\" && tool === undefined) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-adapter-input-missing-tool\",\n\t\t\t\t\"Tool provider adapter input requires the selected catalog tool entry.\",\n\t\t\t\t{ subjectId: resolution.requestId, refs: sourceRefs },\n\t\t\t),\n\t\t);\n\t}\n\tconst policies =\n\t\tcatalog === undefined\n\t\t\t? []\n\t\t\t: selectedPoliciesForAdapterInput(catalog, resolution.policyRefs ?? []);\n\tif (resolution.status === \"resolved\" && (resolution.policyRefs?.length ?? 0) === 0) {\n\t\tstatusOverride = \"missing-policy\";\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-adapter-input-missing-policy-ref\",\n\t\t\t\t\"Ready tool provider adapter input requires at least one D360 policy ref.\",\n\t\t\t\t{ subjectId: resolution.requestId, refs: sourceRefs },\n\t\t\t),\n\t\t);\n\t}\n\tif (catalog !== undefined) {\n\t\tfor (const issue of policyMaterialIssuesForAdapterInput(catalog, resolution, sourceRefs)) {\n\t\t\tstatusOverride ??= \"invalid-policy\";\n\t\t\tissues.push(issue);\n\t\t}\n\t}\n\tfor (const policy of policies) {\n\t\tissues.push(...validateToolProviderExecutionPolicy(policy));\n\t\tif (catalog !== undefined)\n\t\t\tissues.push(...validateToolProviderPolicyProviderScope(policy, catalog.providerId));\n\t}\n\tif (request?.input !== undefined) {\n\t\tissues.push(\n\t\t\t...forbiddenAdapterInputMaterialIssues(\n\t\t\t\trequest.input,\n\t\t\t\tref(\"agent-request\", request.requestId),\n\t\t\t\t\"request-input\",\n\t\t\t),\n\t\t);\n\t}\n\tif (route !== undefined) {\n\t\tissues.push(\n\t\t\t...forbiddenAdapterInputMaterialIssues(\n\t\t\t\troute.allowedParams,\n\t\t\t\tref(\"executor-route\", route.routeId),\n\t\t\t\t\"route-allowed-params\",\n\t\t\t),\n\t\t\t...forbiddenAdapterInputMaterialIssues(\n\t\t\t\troute.metadata,\n\t\t\t\tref(\"executor-route\", route.routeId),\n\t\t\t\t\"route-metadata\",\n\t\t\t),\n\t\t);\n\t}\n\tif (tool !== undefined) {\n\t\tconst toolRef = ref(\"tool\", tool.toolName);\n\t\tissues.push(\n\t\t\t...forbiddenAdapterInputMaterialIssues(tool.capabilities, toolRef, \"tool-capabilities\"),\n\t\t\t...forbiddenAdapterInputMaterialIssues(tool.limits, toolRef, \"tool-limits\"),\n\t\t\t...forbiddenAdapterInputMaterialIssues(tool.metadata, toolRef, \"tool-metadata\"),\n\t\t);\n\t}\n\tfor (const policy of policies) {\n\t\tissues.push(\n\t\t\t...forbiddenAdapterInputMaterialIssues(\n\t\t\t\tpolicy,\n\t\t\t\tref(\"tool-provider-execution-policy\", policy.policyId),\n\t\t\t\t\"policy-material\",\n\t\t\t),\n\t\t);\n\t}\n\tconst status =\n\t\tresolution.status === \"resolved\"\n\t\t\t? issues.length === 0\n\t\t\t\t? \"ready\"\n\t\t\t\t: (statusOverride ?? \"invalid-policy\")\n\t\t\t: resolution.status;\n\tconst ready = status === \"ready\";\n\tconst candidate = {\n\t\tkind: \"tool-provider-adapter-input\",\n\t\tadapterInputId: `${resolution.requestId}:${resolution.operationId}:${resolution.routeId ?? resolution.resolutionId}:adapter-input`,\n\t\tstatus,\n\t\trequestId: resolution.requestId,\n\t\toperationId: resolution.operationId,\n\t\teffectRunId: request?.effectRunId,\n\t\tagentRunId: request?.agentRunId,\n\t\trouteId: resolution.routeId,\n\t\tproviderId: resolution.providerId,\n\t\texecutorId: resolution.executorId,\n\t\tprofileId: resolution.profileId,\n\t\ttoolName: resolution.toolName,\n\t\toperation: resolution.operation,\n\t\tinput: ready ? (request?.input as AgentRequestInput<ToolCallInput> | undefined) : undefined,\n\t\ttoolCall: ready ? toolCall : undefined,\n\t\troute: ready ? route : undefined,\n\t\ttool: ready ? tool : undefined,\n\t\tpolicies: ready ? Object.freeze(policies) : undefined,\n\t\tpolicyRefs: sanitizeAdapterInputSourceRefs(resolution.policyRefs ?? []),\n\t\tsourceRefs,\n\t\tissues: issues.length === 0 ? undefined : Object.freeze(issues),\n\t\tmetadata: { resolutionId: resolution.resolutionId },\n\t} satisfies ToolProviderAdapterInput;\n\tif (ready) {\n\t\tconst candidateIssues = forbiddenAdapterInputMaterialIssues(\n\t\t\tcandidate,\n\t\t\tref(\"tool-provider-adapter-input\", candidate.adapterInputId),\n\t\t\t\"adapter-input\",\n\t\t);\n\t\tif (candidateIssues.length > 0) {\n\t\t\tconst blockedIssues = Object.freeze([...issues, ...candidateIssues]);\n\t\t\treturn Object.freeze({\n\t\t\t\t...candidate,\n\t\t\t\tstatus: \"invalid-policy\",\n\t\t\t\tinput: undefined,\n\t\t\t\ttoolCall: undefined,\n\t\t\t\troute: undefined,\n\t\t\t\ttool: undefined,\n\t\t\t\tpolicies: undefined,\n\t\t\t\tissues: blockedIssues,\n\t\t\t} satisfies ToolProviderAdapterInput);\n\t\t}\n\t}\n\treturn Object.freeze(candidate);\n}\n\nexport function selectedToolForAdapterInput(\n\tcatalog: ToolProviderCatalog,\n\troute: ExecutorRoute,\n\ttoolCall: ToolCallInput,\n): ToolProviderCatalogEntry | undefined {\n\treturn catalog.tools.find(\n\t\t(entry) =>\n\t\t\tentry.profileId === route.profileId &&\n\t\t\tentry.executorId === route.executorId &&\n\t\t\tentry.toolName === toolCall.toolName &&\n\t\t\t(entry.operation === undefined ||\n\t\t\t\ttoolCall.operation === undefined ||\n\t\t\t\tentry.operation === toolCall.operation),\n\t);\n}\n\nexport function selectedPoliciesForAdapterInput(\n\tcatalog: ToolProviderCatalog,\n\tpolicyRefs: readonly SourceRef[],\n): ToolProviderExecutionPolicy[] {\n\tconst policiesById = new Map((catalog.policies ?? []).map((policy) => [policy.policyId, policy]));\n\tconst policies: ToolProviderExecutionPolicy[] = [];\n\tfor (const policyRef of policyRefs) {\n\t\tif (policyRef.kind !== \"tool-provider-execution-policy\") continue;\n\t\tconst policy = policiesById.get(policyRef.id);\n\t\tif (policy !== undefined) policies.push(policy);\n\t}\n\treturn policies;\n}\n\nexport function routeIdentityIssuesForAdapterInput(\n\troute: ExecutorRoute,\n\tresolution: ToolProviderPolicyResolution,\n\trequest: AgentRequestIssued | undefined,\n\tsourceRefs: readonly SourceRef[],\n): readonly DataIssue[] {\n\tconst issues: DataIssue[] = [];\n\tconst refs = [...sourceRefs, ref(\"executor-route\", route.routeId)];\n\tif (route.requestId !== resolution.requestId) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-adapter-input-stale-route-request\",\n\t\t\t\t\"ExecutorRoute requestId does not match the tool provider policy resolution.\",\n\t\t\t\t{ subjectId: resolution.requestId, refs },\n\t\t\t),\n\t\t);\n\t}\n\tif (route.operationId !== resolution.operationId) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-adapter-input-stale-route-operation\",\n\t\t\t\t\"ExecutorRoute operationId does not match the tool provider policy resolution.\",\n\t\t\t\t{ subjectId: resolution.requestId, refs },\n\t\t\t),\n\t\t);\n\t}\n\tif (resolution.routeId !== undefined && route.routeId !== resolution.routeId) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-adapter-input-stale-route-id\",\n\t\t\t\t\"ExecutorRoute routeId does not match the tool provider policy resolution.\",\n\t\t\t\t{ subjectId: resolution.requestId, refs },\n\t\t\t),\n\t\t);\n\t}\n\tif (resolution.executorId !== undefined && route.executorId !== resolution.executorId) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-adapter-input-stale-route-executor\",\n\t\t\t\t\"ExecutorRoute executorId does not match the tool provider policy resolution.\",\n\t\t\t\t{ subjectId: resolution.requestId, refs },\n\t\t\t),\n\t\t);\n\t}\n\tif (resolution.profileId !== undefined && route.profileId !== resolution.profileId) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-adapter-input-stale-route-profile\",\n\t\t\t\t\"ExecutorRoute profileId does not match the tool provider policy resolution.\",\n\t\t\t\t{ subjectId: resolution.requestId, refs },\n\t\t\t),\n\t\t);\n\t}\n\tif (\n\t\trequest !== undefined &&\n\t\troute.inputId !== undefined &&\n\t\troute.inputId !== request.input?.inputId\n\t) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-adapter-input-stale-route-input\",\n\t\t\t\t\"ExecutorRoute inputId does not match the issued AgentRequest input.\",\n\t\t\t\t{ subjectId: resolution.requestId, refs },\n\t\t\t),\n\t\t);\n\t}\n\tif (route.inputKind !== undefined && route.inputKind !== \"tool-call\") {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-adapter-input-invalid-route-input-kind\",\n\t\t\t\t\"Tool provider adapter input requires ExecutorRoute.inputKind to be tool-call when present.\",\n\t\t\t\t{ subjectId: resolution.requestId, refs },\n\t\t\t),\n\t\t);\n\t}\n\tif (\n\t\trequest !== undefined &&\n\t\troute.inputKind !== undefined &&\n\t\trequest.input?.inputKind !== undefined &&\n\t\troute.inputKind !== request.input.inputKind\n\t) {\n\t\tissues.push(\n\t\t\tdataIssue(\n\t\t\t\t\"tool-provider-adapter-input-stale-route-input-kind\",\n\t\t\t\t\"ExecutorRoute inputKind does not match the issued AgentRequest input.\",\n\t\t\t\t{ subjectId: resolution.requestId, refs },\n\t\t\t),\n\t\t);\n\t}\n\treturn Object.freeze(issues);\n}\n\nexport function policyMaterialIssuesForAdapterInput(\n\tcatalog: ToolProviderCatalog,\n\tresolution: ToolProviderPolicyResolution,\n\tsourceRefs: readonly SourceRef[],\n): readonly DataIssue[] {\n\tconst policiesById = new Map((catalog.policies ?? []).map((policy) => [policy.policyId, policy]));\n\tconst issues: DataIssue[] = [];\n\tfor (const policyRef of resolution.policyRefs ?? []) {\n\t\tif (policyRef.kind !== \"tool-provider-execution-policy\") {\n\t\t\tissues.push(\n\t\t\t\tdataIssue(\n\t\t\t\t\t\"tool-provider-adapter-input-invalid-policy-ref-kind\",\n\t\t\t\t\t\"Tool provider adapter input policy refs must point at ToolProviderExecutionPolicy facts.\",\n\t\t\t\t\t{ subjectId: resolution.requestId, refs: [...sourceRefs, policyRef] },\n\t\t\t\t),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tif (!policiesById.has(policyRef.id)) {\n\t\t\tissues.push(\n\t\t\t\tdataIssue(\n\t\t\t\t\t\"tool-provider-adapter-input-policy-ref-missing-material\",\n\t\t\t\t\t\"Tool provider adapter input policy ref has no selected policy material.\",\n\t\t\t\t\t{ subjectId: resolution.requestId, refs: [...sourceRefs, policyRef] },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\treturn Object.freeze(issues);\n}\n\nexport function stableToolProviderAdapterInputKey(input: ToolProviderAdapterInput): string {\n\treturn stableJsonStringify({\n\t\tid: input.adapterInputId,\n\t\tstatus: input.status,\n\t\tpolicyRefs: input.policyRefs?.map((policyRef) => `${policyRef.kind}:${policyRef.id}`) ?? [],\n\t\tissues: input.issues?.map((issue) => issue.code) ?? [],\n\t\tinput,\n\t});\n}\n"],"mappings":"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","names":["resolutions","catalog","inputs"]}