@graphrefly/ts 0.0.1 → 0.0.3

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 (333) hide show
  1. package/README.md +197 -117
  2. package/dist/actions-types-CH-XCU9O.d.cts +657 -0
  3. package/dist/actions-types-w2iPQTkv.d.ts +657 -0
  4. package/dist/adapters/index.cjs +5157 -2951
  5. package/dist/adapters/index.cjs.map +1 -1
  6. package/dist/adapters/index.d.cts +207 -70
  7. package/dist/adapters/index.d.ts +207 -70
  8. package/dist/adapters/index.js +3738 -1688
  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 +3 -3
  35. package/dist/adapters/observe-storage.d.ts +3 -3
  36. package/dist/adapters/observe-storage.js +4 -4
  37. package/dist/adapters/react.cjs.map +1 -1
  38. package/dist/adapters/react.d.cts +2 -2
  39. package/dist/adapters/react.d.ts +2 -2
  40. package/dist/adapters/react.js +1 -1
  41. package/dist/adapters/solid.cjs.map +1 -1
  42. package/dist/adapters/solid.d.cts +2 -2
  43. package/dist/adapters/solid.d.ts +2 -2
  44. package/dist/adapters/solid.js +1 -1
  45. package/dist/adapters/svelte.cjs.map +1 -1
  46. package/dist/adapters/svelte.d.cts +2 -2
  47. package/dist/adapters/svelte.d.ts +2 -2
  48. package/dist/adapters/svelte.js +1 -1
  49. package/dist/adapters/vue.cjs.map +1 -1
  50. package/dist/adapters/vue.d.cts +2 -2
  51. package/dist/adapters/vue.d.ts +2 -2
  52. package/dist/adapters/vue.js +1 -1
  53. package/dist/{agent-runtime-BesGDZcB.d.ts → agent-runtime-types-core-CKwrBDyi.d.ts} +171 -320
  54. package/dist/{agent-runtime-DZTJ3C-p.d.cts → agent-runtime-types-core-bfl4m0vM.d.cts} +171 -320
  55. package/dist/agent-runtime-types-tool-BLPV3azj.d.cts +695 -0
  56. package/dist/agent-runtime-types-tool-hwqvVqNt.d.ts +695 -0
  57. package/dist/agentic-memory-retention-CLwI76JK.d.ts +14 -0
  58. package/dist/agentic-memory-retention-Cz8GR6ie.d.cts +14 -0
  59. package/dist/{agentic-memory-DfuVZ-lY.d.cts → agentic-memory-types-JDr7MPhh.d.cts} +13 -57
  60. package/dist/{agentic-memory-BmRCvh0d.d.ts → agentic-memory-types-khYJgzKL.d.ts} +13 -57
  61. package/dist/{capability-admission-B0BzqAm5.d.cts → capability-admission-B8RNFyaZ.d.cts} +3 -3
  62. package/dist/{capability-admission-g0mn9hpq.d.ts → capability-admission-Dkw1Xz3r.d.ts} +3 -3
  63. package/dist/chunk-2KUAG2GZ.js +9693 -0
  64. package/dist/chunk-2KUAG2GZ.js.map +1 -0
  65. package/dist/{chunk-CZNV3VXM.js → chunk-3J7UPZL5.js} +11 -11
  66. package/dist/{chunk-HKK2JD7Z.js → chunk-3LYI6ADX.js} +12 -125
  67. package/dist/chunk-3LYI6ADX.js.map +1 -0
  68. package/dist/{chunk-YXMZ2N6J.js → chunk-4M37FH2I.js} +1071 -1025
  69. package/dist/chunk-4M37FH2I.js.map +1 -0
  70. package/dist/{chunk-YDSIVHRR.js → chunk-4NWSNI4K.js} +1598 -1584
  71. package/dist/chunk-4NWSNI4K.js.map +1 -0
  72. package/dist/{chunk-Z2ANQ6JW.js → chunk-4Q77MMJY.js} +2 -2
  73. package/dist/{chunk-SS2A464I.js → chunk-54WPEODM.js} +3 -3
  74. package/dist/chunk-54WPEODM.js.map +1 -0
  75. package/dist/chunk-6E76H4OU.js +132 -0
  76. package/dist/chunk-6E76H4OU.js.map +1 -0
  77. package/dist/chunk-7GOTIIQ7.js +819 -0
  78. package/dist/chunk-7GOTIIQ7.js.map +1 -0
  79. package/dist/{chunk-V7CIJE4B.js → chunk-DKFWDTVY.js} +92 -9
  80. package/dist/chunk-DKFWDTVY.js.map +1 -0
  81. package/dist/{chunk-FBUU43PM.js → chunk-E4QCH32M.js} +448 -446
  82. package/dist/chunk-E4QCH32M.js.map +1 -0
  83. package/dist/{chunk-XKXWK2KP.js → chunk-GXU6WFEJ.js} +1157 -1021
  84. package/dist/chunk-GXU6WFEJ.js.map +1 -0
  85. package/dist/{chunk-K3FXTC3I.js → chunk-HJACH5PU.js} +3 -3
  86. package/dist/{chunk-GTPCOEOZ.js → chunk-IDMLXLLG.js} +3 -3
  87. package/dist/{chunk-DKP56CSW.js → chunk-JKAYLDQV.js} +2 -2
  88. package/dist/{chunk-4VLAQHZI.js → chunk-K7FB3JTD.js} +17 -1
  89. package/dist/chunk-K7FB3JTD.js.map +1 -0
  90. package/dist/{chunk-43BKLFZU.js → chunk-KFURM6FM.js} +10 -10
  91. package/dist/{chunk-H75VXTGT.js → chunk-L6LDXRWE.js} +3 -3
  92. package/dist/{chunk-H75VXTGT.js.map → chunk-L6LDXRWE.js.map} +1 -1
  93. package/dist/chunk-MCOFHMUU.js +4131 -0
  94. package/dist/chunk-MCOFHMUU.js.map +1 -0
  95. package/dist/chunk-MQEQMS7B.js +1009 -0
  96. package/dist/chunk-MQEQMS7B.js.map +1 -0
  97. package/dist/chunk-MTELVIYR.js +1421 -0
  98. package/dist/chunk-MTELVIYR.js.map +1 -0
  99. package/dist/{chunk-3JR3EDB2.js → chunk-NNDIFUKX.js} +121 -115
  100. package/dist/chunk-NNDIFUKX.js.map +1 -0
  101. package/dist/{chunk-2747WN4Y.js → chunk-PUSRRALM.js} +3 -3
  102. package/dist/{chunk-QFY4AFY4.js → chunk-PVC7WDKI.js} +58 -52
  103. package/dist/chunk-PVC7WDKI.js.map +1 -0
  104. package/dist/{chunk-VTHLCFN4.js → chunk-RAHNUYA5.js} +2 -2
  105. package/dist/chunk-TQPCAIQI.js +612 -0
  106. package/dist/chunk-TQPCAIQI.js.map +1 -0
  107. package/dist/{chunk-IXZBUWSP.js → chunk-UEMN5URK.js} +2 -2
  108. package/dist/chunk-WOS7RJYZ.js +1320 -0
  109. package/dist/chunk-WOS7RJYZ.js.map +1 -0
  110. package/dist/{chunk-6PHB5CJS.js → chunk-ZLFRB6FI.js} +2 -2
  111. package/dist/composition/index.cjs +1228 -1076
  112. package/dist/composition/index.cjs.map +1 -1
  113. package/dist/composition/index.d.cts +3 -3
  114. package/dist/composition/index.d.ts +3 -3
  115. package/dist/composition/index.js +4 -4
  116. package/dist/core/index.cjs +1198 -1046
  117. package/dist/core/index.cjs.map +1 -1
  118. package/dist/core/index.d.cts +23 -2
  119. package/dist/core/index.d.ts +23 -2
  120. package/dist/core/index.js +2 -2
  121. package/dist/cqrs/index.d.cts +3 -3
  122. package/dist/cqrs/index.d.ts +3 -3
  123. package/dist/cqrs/messaging.d.cts +4 -4
  124. package/dist/cqrs/messaging.d.ts +4 -4
  125. package/dist/cqrs/work-queue.d.cts +5 -5
  126. package/dist/cqrs/work-queue.d.ts +5 -5
  127. package/dist/data-structures/index.cjs +1226 -1074
  128. package/dist/data-structures/index.cjs.map +1 -1
  129. package/dist/data-structures/index.d.cts +8 -7
  130. package/dist/data-structures/index.d.ts +8 -7
  131. package/dist/data-structures/index.js +6 -5
  132. package/dist/{describe-DYMw_l1C.d.cts → describe-BumQ-3_0.d.cts} +1 -1
  133. package/dist/{describe-BpyJuWkw.d.ts → describe-cYr_Z5zm.d.ts} +1 -1
  134. package/dist/executors/tool-provider-adapters.cjs +3091 -0
  135. package/dist/executors/tool-provider-adapters.cjs.map +1 -0
  136. package/dist/executors/tool-provider-adapters.d.cts +174 -0
  137. package/dist/executors/tool-provider-adapters.d.ts +174 -0
  138. package/dist/executors/tool-provider-adapters.js +1336 -0
  139. package/dist/executors/tool-provider-adapters.js.map +1 -0
  140. package/dist/executors/tool-provider-runtime.cjs +5178 -0
  141. package/dist/executors/tool-provider-runtime.cjs.map +1 -0
  142. package/dist/executors/tool-provider-runtime.d.cts +17 -0
  143. package/dist/executors/tool-provider-runtime.d.ts +17 -0
  144. package/dist/executors/tool-provider-runtime.js +15 -0
  145. package/dist/executors/tool-provider-runtime.js.map +1 -0
  146. package/dist/executors/tool-provider.cjs +6392 -0
  147. package/dist/executors/tool-provider.cjs.map +1 -0
  148. package/dist/executors/tool-provider.d.cts +60 -0
  149. package/dist/executors/tool-provider.d.ts +60 -0
  150. package/dist/executors/tool-provider.js +89 -0
  151. package/dist/executors/tool-provider.js.map +1 -0
  152. package/dist/executors/work-queue.d.cts +6 -6
  153. package/dist/executors/work-queue.d.ts +6 -6
  154. package/dist/graph/index.cjs +1499 -1341
  155. package/dist/graph/index.cjs.map +1 -1
  156. package/dist/graph/index.d.cts +9 -8
  157. package/dist/graph/index.d.ts +9 -8
  158. package/dist/graph/index.js +23 -22
  159. package/dist/{graph-DCEWh4T2.d.cts → graph-C1C-wb0L.d.cts} +266 -137
  160. package/dist/{graph-D-1-SQeC.d.ts → graph-CS0b4V9B.d.ts} +266 -137
  161. package/dist/{index-72VZC0-E.d.cts → index-DLrNopda.d.cts} +151 -10
  162. package/dist/{index-Bmxeu0nK.d.ts → index-DzJni3_6.d.ts} +151 -10
  163. package/dist/index.cjs +3397 -3140
  164. package/dist/index.cjs.map +1 -1
  165. package/dist/index.d.cts +12 -9
  166. package/dist/index.d.ts +12 -9
  167. package/dist/index.js +110 -109
  168. package/dist/inspection/boundary.d.cts +4 -4
  169. package/dist/inspection/boundary.d.ts +4 -4
  170. package/dist/measurements-BWAnochv.d.ts +294 -0
  171. package/dist/measurements-B_gJfD8h.d.cts +294 -0
  172. package/dist/messaging/index.cjs +57 -51
  173. package/dist/messaging/index.cjs.map +1 -1
  174. package/dist/messaging/index.d.cts +11 -276
  175. package/dist/messaging/index.d.ts +11 -276
  176. package/dist/messaging/index.js +1 -1
  177. package/dist/operators/index.cjs +1228 -1076
  178. package/dist/operators/index.cjs.map +1 -1
  179. package/dist/operators/index.d.cts +5 -5
  180. package/dist/operators/index.d.ts +5 -5
  181. package/dist/operators/index.js +5 -5
  182. package/dist/orchestration/index.cjs +8844 -6071
  183. package/dist/orchestration/index.cjs.map +1 -1
  184. package/dist/orchestration/index.d.cts +171 -224
  185. package/dist/orchestration/index.d.ts +171 -224
  186. package/dist/orchestration/index.js +42 -991
  187. package/dist/orchestration/index.js.map +1 -1
  188. package/dist/orchestration/messaging.d.cts +5 -8
  189. package/dist/orchestration/messaging.d.ts +5 -8
  190. package/dist/orchestration/work-queue.cjs +1243 -5
  191. package/dist/orchestration/work-queue.cjs.map +1 -1
  192. package/dist/orchestration/work-queue.d.cts +121 -10
  193. package/dist/orchestration/work-queue.d.ts +121 -10
  194. package/dist/orchestration/work-queue.js +1067 -4
  195. package/dist/orchestration/work-queue.js.map +1 -1
  196. package/dist/patterns/event-flow.cjs +6 -20
  197. package/dist/patterns/event-flow.cjs.map +1 -1
  198. package/dist/patterns/event-flow.d.cts +4 -4
  199. package/dist/patterns/event-flow.d.ts +4 -4
  200. package/dist/patterns/event-flow.js +2 -2
  201. package/dist/patterns/index.cjs +453 -465
  202. package/dist/patterns/index.cjs.map +1 -1
  203. package/dist/patterns/index.d.cts +6 -5
  204. package/dist/patterns/index.d.ts +6 -5
  205. package/dist/patterns/index.js +3 -3
  206. package/dist/process-types-BB7oRhX3.d.cts +200 -0
  207. package/dist/process-types-QNhyoYJ8.d.ts +200 -0
  208. package/dist/{reactive-collection-DNV0-gFi.d.cts → reactive-collection-BYlWvtnp.d.cts} +4 -34
  209. package/dist/{reactive-collection-BAmfrGjd.d.ts → reactive-collection-efOEdGFN.d.ts} +4 -34
  210. package/dist/{reactive-collection-storage-BNEldDyi.d.cts → reactive-collection-storage-BjoLsoiC.d.cts} +5 -5
  211. package/dist/{reactive-collection-storage-YZsAQsWK.d.ts → reactive-collection-storage-DwW6UuK_.d.ts} +5 -5
  212. package/dist/{reactive-map-DRD1LJ2H.d.cts → reactive-map-BHacbIqz.d.cts} +7 -2
  213. package/dist/{reactive-map-EsDiCmJk.d.ts → reactive-map-DN4Jyqnf.d.ts} +7 -2
  214. package/dist/render/index.d.cts +2 -2
  215. package/dist/render/index.d.ts +2 -2
  216. package/dist/scheduled-readiness-BmqXxnzX.d.ts +91 -0
  217. package/dist/scheduled-readiness-CYSw7KDE.d.cts +91 -0
  218. package/dist/semantic-memory-graph-B_LwbM-E.d.cts +30 -0
  219. package/dist/semantic-memory-graph-rsFNNhwn.d.ts +30 -0
  220. package/dist/{semantic-memory-graph-DKuNzuWw.d.cts → semantic-memory-graph-types-Y73bbwVI.d.cts} +2 -28
  221. package/dist/{semantic-memory-graph-uwbwJdhe.d.ts → semantic-memory-graph-types-safmPkuX.d.ts} +2 -28
  222. package/dist/solutions/index.cjs +6353 -6169
  223. package/dist/solutions/index.cjs.map +1 -1
  224. package/dist/solutions/index.d.cts +12 -10
  225. package/dist/solutions/index.d.ts +12 -10
  226. package/dist/solutions/index.js +5 -5
  227. package/dist/solutions/reactive-layout/browser/index.cjs +116 -108
  228. package/dist/solutions/reactive-layout/browser/index.cjs.map +1 -1
  229. package/dist/solutions/reactive-layout/browser/index.d.cts +4 -4
  230. package/dist/solutions/reactive-layout/browser/index.d.ts +4 -4
  231. package/dist/solutions/reactive-layout/browser/index.js +3 -3
  232. package/dist/solutions/reactive-layout/index.cjs +3578 -3350
  233. package/dist/solutions/reactive-layout/index.cjs.map +1 -1
  234. package/dist/solutions/reactive-layout/index.d.cts +32 -576
  235. package/dist/solutions/reactive-layout/index.d.ts +32 -576
  236. package/dist/solutions/reactive-layout/index.js +65 -5
  237. package/dist/solutions/reactive-layout/node-canvas/index.cjs +127 -117
  238. package/dist/solutions/reactive-layout/node-canvas/index.cjs.map +1 -1
  239. package/dist/solutions/reactive-layout/node-canvas/index.d.cts +4 -4
  240. package/dist/solutions/reactive-layout/node-canvas/index.d.ts +4 -4
  241. package/dist/solutions/reactive-layout/node-canvas/index.js +3 -3
  242. package/dist/solutions/reactive-layout/react-native/index.cjs +127 -117
  243. package/dist/solutions/reactive-layout/react-native/index.cjs.map +1 -1
  244. package/dist/solutions/reactive-layout/react-native/index.d.cts +4 -4
  245. package/dist/solutions/reactive-layout/react-native/index.d.ts +4 -4
  246. package/dist/solutions/reactive-layout/react-native/index.js +3 -3
  247. package/dist/solutions/reactive-layout/skia/index.cjs +127 -117
  248. package/dist/solutions/reactive-layout/skia/index.cjs.map +1 -1
  249. package/dist/solutions/reactive-layout/skia/index.d.cts +4 -4
  250. package/dist/solutions/reactive-layout/skia/index.d.ts +4 -4
  251. package/dist/solutions/reactive-layout/skia/index.js +3 -3
  252. package/dist/solutions/work-item/actions.cjs +1609 -1428
  253. package/dist/solutions/work-item/actions.cjs.map +1 -1
  254. package/dist/solutions/work-item/actions.d.cts +23 -184
  255. package/dist/solutions/work-item/actions.d.ts +23 -184
  256. package/dist/solutions/work-item/actions.js +1558 -934
  257. package/dist/solutions/work-item/actions.js.map +1 -1
  258. package/dist/solutions/work-item/scheduling.cjs +9181 -1838
  259. package/dist/solutions/work-item/scheduling.cjs.map +1 -1
  260. package/dist/solutions/work-item/scheduling.d.cts +1763 -328
  261. package/dist/solutions/work-item/scheduling.d.ts +1763 -328
  262. package/dist/solutions/work-item/scheduling.js +117 -3
  263. package/dist/solutions/work-item/work-queue.d.cts +7 -7
  264. package/dist/solutions/work-item/work-queue.d.ts +7 -7
  265. package/dist/sources/browser.cjs +1318 -1083
  266. package/dist/sources/browser.cjs.map +1 -1
  267. package/dist/sources/browser.d.cts +22 -6
  268. package/dist/sources/browser.d.ts +22 -6
  269. package/dist/sources/browser.js +4 -4
  270. package/dist/sources/browser.js.map +1 -1
  271. package/dist/sources/index.cjs +1318 -1083
  272. package/dist/sources/index.cjs.map +1 -1
  273. package/dist/sources/index.d.cts +4 -4
  274. package/dist/sources/index.d.ts +4 -4
  275. package/dist/sources/index.js +4 -4
  276. package/dist/sources/node.d.cts +3 -3
  277. package/dist/sources/node.d.ts +3 -3
  278. package/dist/storage/browser.cjs +16 -0
  279. package/dist/storage/browser.cjs.map +1 -1
  280. package/dist/storage/browser.js +3 -3
  281. package/dist/storage/index.cjs +16 -0
  282. package/dist/storage/index.cjs.map +1 -1
  283. package/dist/storage/index.d.cts +5 -4
  284. package/dist/storage/index.d.ts +5 -4
  285. package/dist/storage/index.js +6 -6
  286. package/dist/storage/node.cjs +16 -0
  287. package/dist/storage/node.cjs.map +1 -1
  288. package/dist/storage/node.js +3 -3
  289. package/dist/{store-C-joM4gh.d.ts → store-6_CHF6Ge.d.ts} +1 -1
  290. package/dist/{store-CNJwmT-h.d.cts → store-BljX8RkQ.d.cts} +1 -1
  291. package/dist/types-BAw2QVVE.d.cts +274 -0
  292. package/dist/types-BUbbbh4f.d.cts +34 -0
  293. package/dist/types-CMnzoL54.d.cts +457 -0
  294. package/dist/{types-CcPIn7sy.d.cts → types-CTN3XoMl.d.cts} +57 -108
  295. package/dist/types-CV_ohy5T.d.cts +357 -0
  296. package/dist/{types-BsJvElYZ.d.ts → types-DChxk1vK.d.ts} +57 -108
  297. package/dist/types-DRu7SnLV.d.ts +274 -0
  298. package/dist/types-DeID_FRl.d.ts +34 -0
  299. package/dist/types-IhKH0hGW.d.ts +357 -0
  300. package/dist/types-ePlD2uyT.d.ts +457 -0
  301. package/dist/{work-item-runtime-qaVgsL0T.d.cts → work-item-runtime-types-BTxLskN5.d.cts} +3 -93
  302. package/dist/{work-item-runtime-C3M79vE9.d.ts → work-item-runtime-types-DAsZbb2y.d.ts} +3 -93
  303. package/dist/work-queue/index.cjs +957 -953
  304. package/dist/work-queue/index.cjs.map +1 -1
  305. package/dist/work-queue/index.d.cts +9 -357
  306. package/dist/work-queue/index.d.ts +9 -357
  307. package/dist/work-queue/index.js +957 -953
  308. package/dist/work-queue/index.js.map +1 -1
  309. package/package.json +611 -513
  310. package/dist/chunk-3JR3EDB2.js.map +0 -1
  311. package/dist/chunk-4VLAQHZI.js.map +0 -1
  312. package/dist/chunk-6XAIOL3X.js +0 -2407
  313. package/dist/chunk-6XAIOL3X.js.map +0 -1
  314. package/dist/chunk-FBUU43PM.js.map +0 -1
  315. package/dist/chunk-HKK2JD7Z.js.map +0 -1
  316. package/dist/chunk-PC3BTTBE.js +0 -3217
  317. package/dist/chunk-PC3BTTBE.js.map +0 -1
  318. package/dist/chunk-QFY4AFY4.js.map +0 -1
  319. package/dist/chunk-SS2A464I.js.map +0 -1
  320. package/dist/chunk-V7CIJE4B.js.map +0 -1
  321. package/dist/chunk-XKXWK2KP.js.map +0 -1
  322. package/dist/chunk-YDSIVHRR.js.map +0 -1
  323. package/dist/chunk-YXMZ2N6J.js.map +0 -1
  324. /package/dist/{chunk-CZNV3VXM.js.map → chunk-3J7UPZL5.js.map} +0 -0
  325. /package/dist/{chunk-Z2ANQ6JW.js.map → chunk-4Q77MMJY.js.map} +0 -0
  326. /package/dist/{chunk-K3FXTC3I.js.map → chunk-HJACH5PU.js.map} +0 -0
  327. /package/dist/{chunk-GTPCOEOZ.js.map → chunk-IDMLXLLG.js.map} +0 -0
  328. /package/dist/{chunk-DKP56CSW.js.map → chunk-JKAYLDQV.js.map} +0 -0
  329. /package/dist/{chunk-43BKLFZU.js.map → chunk-KFURM6FM.js.map} +0 -0
  330. /package/dist/{chunk-2747WN4Y.js.map → chunk-PUSRRALM.js.map} +0 -0
  331. /package/dist/{chunk-VTHLCFN4.js.map → chunk-RAHNUYA5.js.map} +0 -0
  332. /package/dist/{chunk-IXZBUWSP.js.map → chunk-UEMN5URK.js.map} +0 -0
  333. /package/dist/{chunk-6PHB5CJS.js.map → chunk-ZLFRB6FI.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/executors/tool-provider-adapters.ts"],"sourcesContent":["/**\n * Concrete Layer C tool-provider adapter pack v0 (D283/D359-D362).\n *\n * Adapter factories return graph-visible catalog DATA plus runtime-private\n * bindings. Permission checks are enforced by the binding closure; catalog\n * policy remains descriptive admission/routing/audit material, not a security\n * boundary.\n */\n\nimport { spawnSync } from \"node:child_process\";\nimport { realpathSync } from \"node:fs\";\nimport { isAbsolute, relative, resolve } from \"node:path\";\nimport type { DataIssue } from \"../data/index.js\";\nimport type { Graph } from \"../graph/graph.js\";\nimport type { Node } from \"../node/node.js\";\nimport {\n\ttype AgentRequestStatusChanged,\n\ttype AgentRuntimeAuditRecord,\n\tbuildToolProviderExecutorOutcome,\n\ttype ExecutorArtifactMaterial,\n\ttype ExecutorOutcome,\n\tlocalBuiltinToolProviderCatalog,\n\ttype SizeCapacityEvidence,\n\ttype SourceRef,\n\ttype ToolProviderAdapterInput,\n\ttype ToolProviderAdapterRunRequested,\n\ttype ToolProviderAdapterRunStatus,\n\ttype ToolProviderCatalog,\n\ttype ToolProviderCatalogEntry,\n\ttype ToolProviderExecutionPolicy,\n\ttype ToolProviderPublicTextPolicy,\n\ttype ToolProviderSizeLimit,\n\ttoolProviderAdapterRunProjector,\n} from \"../orchestration/index.js\";\nimport type {\n\tToolProviderAdapterBinding,\n\tToolProviderAdapterRunContext,\n\tToolProviderAdapterRunResult,\n} from \"./tool-provider-runtime.js\";\n\nexport interface ToolProviderAdapterPack<TArguments = unknown, TResult = unknown> {\n\treadonly catalogs: readonly ToolProviderCatalog[];\n\treadonly bindings: readonly ToolProviderAdapterBinding<TArguments, TResult>[];\n}\n\nexport type LocalBuiltinToolName = \"date.now\" | \"json.parse\" | \"text.concat\";\n\nexport interface LocalBuiltinToolArguments {\n\treadonly text?: string;\n\treadonly parts?: readonly unknown[];\n\treadonly separator?: string;\n}\n\nexport type LocalBuiltinToolResult =\n\t| { readonly toolName: \"date.now\"; readonly epochMs: number; readonly iso: string }\n\t| { readonly toolName: \"json.parse\"; readonly value: unknown }\n\t| { readonly toolName: \"text.concat\"; readonly text: string };\n\nexport interface LocalBuiltinToolProviderBindingOptions {\n\treadonly providerId?: string;\n\treadonly now?: () => number;\n\treadonly maxTextChars?: number;\n}\n\nexport interface LocalBuiltinToolProviderAdapterPackOptions\n\textends LocalBuiltinToolProviderBindingOptions {\n\treadonly executorId?: string;\n\treadonly profileId?: string;\n\treadonly publicText?: ToolProviderPublicTextPolicy;\n}\n\nexport interface ProcessToolArguments {\n\treadonly command?: string;\n\treadonly args?: readonly string[];\n\treadonly cwd?: string;\n\treadonly env?: Readonly<Record<string, string | number | boolean | undefined>>;\n\treadonly input?: string;\n}\n\nexport interface ProcessToolResult {\n\treadonly command: string;\n\treadonly args: readonly string[];\n\treadonly cwd: string;\n\treadonly exitCode: number | null;\n\treadonly signal?: string;\n\treadonly outputPreview?: string;\n\treadonly errorPreview?: string;\n\treadonly outputBytes: number;\n\treadonly errorOutputBytes: number;\n\treadonly truncated: boolean;\n}\n\nexport interface ProcessToolAllowedCommand {\n\t/** Public command key accepted in tool arguments. */\n\treadonly command: string;\n\t/** Runtime executable. Defaults to `command`. This stays binding-private. */\n\treadonly executable?: string;\n\treadonly fixedArgs?: readonly string[];\n\t/** Explicit argv policy. `true` allows any argv array; omitted means no extra args. */\n\treadonly allowArgs?: true | readonly string[] | ((args: readonly string[]) => boolean);\n\treadonly cwd?: string;\n}\n\nexport interface ProcessToolProviderBindingOptions {\n\treadonly providerId?: string;\n\treadonly allowedCommands?: readonly ProcessToolAllowedCommand[];\n\treadonly workingDirectory?: string;\n\treadonly allowedWorkingDirectories?: readonly string[];\n\treadonly baseEnv?: Readonly<Record<string, string>>;\n\treadonly allowedEnvKeys?: readonly string[];\n\treadonly timeoutMs?: number;\n\treadonly maxOutputBytes?: number;\n\treadonly maxSummaryChars?: number;\n}\n\nexport interface ProcessToolProviderAdapterPackOptions extends ProcessToolProviderBindingOptions {\n\treadonly executorId?: string;\n\treadonly profileId?: string;\n}\n\nexport interface HttpToolArguments {\n\treadonly url?: string;\n\treadonly method?: string;\n\treadonly headers?: Readonly<Record<string, string | number | boolean | undefined>>;\n\treadonly body?: string;\n}\n\nexport interface HttpToolResult {\n\treadonly url: string;\n\treadonly method: string;\n\treadonly status: number;\n\treadonly statusText: string;\n\treadonly headers?: Readonly<Record<string, string>>;\n\treadonly bodyPreview?: string;\n\treadonly bodyText?: string;\n\treadonly bodyBytes: number;\n\treadonly bodyTruncated: boolean;\n\treadonly dataMode: \"inline\" | \"summary\" | \"ref\";\n\treadonly bodyRef?: SourceRef;\n}\n\nexport interface HttpToolProviderDriverRequest {\n\treadonly url: string;\n\treadonly method: string;\n\treadonly headers: Readonly<Record<string, string>>;\n\treadonly body?: string;\n\treadonly signal?: AbortSignal;\n}\n\nexport interface HttpToolProviderDriverResponse {\n\treadonly url?: string;\n\treadonly status: number;\n\treadonly statusText?: string;\n\treadonly headers?: Readonly<Record<string, string>>;\n\treadonly bodyText?: string;\n\treadonly bodyBytes?: number;\n\treadonly bodyRef?: SourceRef;\n}\n\nexport interface HttpToolProviderDriver {\n\tfetch(\n\t\trequest: HttpToolProviderDriverRequest,\n\t): HttpToolProviderDriverResponse | PromiseLike<HttpToolProviderDriverResponse>;\n}\n\nexport interface HttpToolProviderRuntimeOptions {\n\treadonly name?: string;\n\treadonly providerId?: string;\n\treadonly executorId?: string;\n\treadonly profileId?: string;\n\treadonly inputs: Node<ToolProviderAdapterInput<HttpToolArguments>>;\n\treadonly runRequests?: readonly Node<ToolProviderAdapterRunRequested>[];\n\treadonly autoRunReadyInputs?: boolean;\n\treadonly allowedOrigins?: readonly string[];\n\treadonly allowedMethods?: readonly string[];\n\treadonly allowedRequestHeaders?: readonly string[];\n\treadonly exposedResponseHeaders?: readonly string[];\n\treadonly timeoutMs?: number;\n\treadonly maxResponseBytes?: number;\n\treadonly maxInlineBodyChars?: number;\n\treadonly approvalMode?: \"auto\" | \"require\" | \"never\";\n\treadonly driver?: HttpToolProviderDriver;\n\treadonly now?: () => number;\n\treadonly publicText?: ToolProviderPublicTextPolicy;\n}\n\nexport interface HttpToolProviderRuntimeBundle {\n\treadonly catalogs: readonly ToolProviderCatalog[];\n\treadonly runRequests: Node<ToolProviderAdapterRunRequested>;\n\treadonly runStatus: Node<ToolProviderAdapterRunStatus>;\n\treadonly outcomes: Node<ExecutorOutcome<HttpToolResult>>;\n\treadonly status: Node<AgentRequestStatusChanged>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n\tdispose(): void;\n}\n\nconst LOCAL_BUILTIN_TOOLS = Object.freeze([\n\tObject.freeze({\n\t\ttoolName: \"date.now\",\n\t\toperation: \"read\",\n\t\tresultKinds: Object.freeze([\"json\"]),\n\t\tcapabilities: Object.freeze({ deterministicWithInjectedClock: true }),\n\t}),\n\tObject.freeze({\n\t\ttoolName: \"json.parse\",\n\t\toperation: \"parse\",\n\t\tresultKinds: Object.freeze([\"json\"]),\n\t\tcapabilities: Object.freeze({ externalSideEffects: false }),\n\t}),\n\tObject.freeze({\n\t\ttoolName: \"text.concat\",\n\t\toperation: \"transform\",\n\t\tresultKinds: Object.freeze([\"text\"]),\n\t\tcapabilities: Object.freeze({ externalSideEffects: false }),\n\t}),\n] satisfies readonly Omit<\n\tToolProviderCatalogEntry,\n\t\"kind\" | \"providerId\" | \"inputKind\" | \"profileId\" | \"executorId\"\n>[]);\n\nexport function localBuiltinToolProviderBinding(\n\topts: LocalBuiltinToolProviderBindingOptions = {},\n): ToolProviderAdapterBinding<LocalBuiltinToolArguments, LocalBuiltinToolResult> {\n\tconst providerId = opts.providerId ?? \"local-builtin\";\n\tconst maxTextChars = nonNegativeFinite(opts.maxTextChars, 16_384);\n\treturn Object.freeze({\n\t\tproviderId,\n\t\trun(input, ctx) {\n\t\t\tconst toolName = input.toolName as LocalBuiltinToolName | undefined;\n\t\t\tswitch (toolName) {\n\t\t\t\tcase \"date.now\":\n\t\t\t\t\treturn localDateNow(input, ctx, opts.now);\n\t\t\t\tcase \"json.parse\":\n\t\t\t\t\treturn localJsonParse(input, maxTextChars);\n\t\t\t\tcase \"text.concat\":\n\t\t\t\t\treturn localTextConcat(input, maxTextChars);\n\t\t\t\tdefault:\n\t\t\t\t\treturn blocked(\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\"local-builtin-unsupported-tool\",\n\t\t\t\t\t\t\"Local builtin tool is not supported.\",\n\t\t\t\t\t);\n\t\t\t}\n\t\t},\n\t} satisfies ToolProviderAdapterBinding<LocalBuiltinToolArguments, LocalBuiltinToolResult>);\n}\n\nexport function localBuiltinToolProviderAdapterPack(\n\topts: LocalBuiltinToolProviderAdapterPackOptions = {},\n): ToolProviderAdapterPack<LocalBuiltinToolArguments, LocalBuiltinToolResult> {\n\tconst providerId = opts.providerId ?? \"local-builtin\";\n\tconst catalog = localBuiltinToolProviderCatalog({\n\t\tproviderId,\n\t\texecutorId: opts.executorId ?? `${providerId}:tool-executor`,\n\t\tprofileId: opts.profileId ?? `${providerId}:tool-profile`,\n\t\ttools: LOCAL_BUILTIN_TOOLS,\n\t\tpolicyOverrides: {\n\t\t\toperations: Object.freeze([\"read\", \"parse\", \"transform\"]),\n\t\t\tredaction: Object.freeze({\n\t\t\t\tmode: \"summary\",\n\t\t\t\tsummaryMaxChars: opts.publicText?.maxSummaryChars ?? 512,\n\t\t\t}),\n\t\t},\n\t\tmetadata: Object.freeze({ adapterPack: \"local-builtin-v0\" }),\n\t});\n\treturn Object.freeze({\n\t\tcatalogs: Object.freeze([catalog]),\n\t\tbindings: Object.freeze([\n\t\t\tlocalBuiltinToolProviderBinding({\n\t\t\t\tproviderId,\n\t\t\t\tnow: opts.now,\n\t\t\t\tmaxTextChars: opts.maxTextChars ?? opts.publicText?.maxSummaryChars,\n\t\t\t}),\n\t\t]),\n\t});\n}\n\nexport function processToolProviderBinding(\n\topts: ProcessToolProviderBindingOptions = {},\n): ToolProviderAdapterBinding<ProcessToolArguments, ProcessToolResult> {\n\tconst providerId = opts.providerId ?? \"process\";\n\tconst config = processConfig(opts);\n\treturn Object.freeze({\n\t\tproviderId,\n\t\trun(input) {\n\t\t\tconst args = processArguments(input);\n\t\t\tif (args === undefined) {\n\t\t\t\treturn blocked(input, \"process-invalid-arguments\", \"Process tool requires argv arguments.\");\n\t\t\t}\n\t\t\tconst allowed = config.allowedCommands.get(args.command);\n\t\t\tif (allowed === undefined) {\n\t\t\t\tif (config.duplicateCommands.has(args.command)) {\n\t\t\t\t\treturn blocked(\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\"process-command-duplicate-allowlist\",\n\t\t\t\t\t\t\"Process command has duplicate allowlist entries.\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (config.invalidCommands.has(args.command)) {\n\t\t\t\t\treturn blocked(\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\"process-command-invalid-allowlist\",\n\t\t\t\t\t\t\"Process command has an invalid allowlist entry.\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn blocked(input, \"process-command-not-allowed\", \"Process command is not allowlisted.\");\n\t\t\t}\n\t\t\tif (!argsAllowed(allowed, args.args)) {\n\t\t\t\treturn blocked(input, \"process-argv-not-allowed\", \"Process argv is not allowlisted.\");\n\t\t\t}\n\t\t\tconst cwd = resolveProcessCwd(args.cwd, allowed, config);\n\t\t\tif (cwd === undefined) {\n\t\t\t\treturn blocked(\n\t\t\t\t\tinput,\n\t\t\t\t\t\"process-cwd-not-allowed\",\n\t\t\t\t\t\"Process cwd is outside the allowed policy.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst env = processEnv(args.env, config);\n\t\t\tif (env === undefined) {\n\t\t\t\treturn blocked(\n\t\t\t\t\tinput,\n\t\t\t\t\t\"process-env-not-allowed\",\n\t\t\t\t\t\"Process env contains non-allowlisted keys.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn runProcessTool(input, allowed, args, cwd, env, config);\n\t\t},\n\t} satisfies ToolProviderAdapterBinding<ProcessToolArguments, ProcessToolResult>);\n}\n\nexport function processToolProviderAdapterPack(\n\topts: ProcessToolProviderAdapterPackOptions = {},\n): ToolProviderAdapterPack<ProcessToolArguments, ProcessToolResult> {\n\tconst providerId = opts.providerId ?? \"process\";\n\tconst executorId = opts.executorId ?? `${providerId}:tool-executor`;\n\tconst profileId = opts.profileId ?? `${providerId}:tool-profile`;\n\treturn Object.freeze({\n\t\tcatalogs: Object.freeze([\n\t\t\tprocessToolProviderCatalog({ ...opts, providerId, executorId, profileId }),\n\t\t]),\n\t\tbindings: Object.freeze([processToolProviderBinding({ ...opts, providerId })]),\n\t});\n}\n\nexport function processToolProviderCatalog(\n\topts: ProcessToolProviderAdapterPackOptions = {},\n): ToolProviderCatalog {\n\tconst providerId = opts.providerId ?? \"process\";\n\tconst executorId = opts.executorId ?? `${providerId}:tool-executor`;\n\tconst profileId = opts.profileId ?? `${providerId}:tool-profile`;\n\tconst normalized = normalizeAllowedCommands(opts.allowedCommands ?? []);\n\tconst allowedCommands = Object.freeze([...normalized.commands.values()]);\n\tconst issueList = [\n\t\t...(allowedCommands.length === 0\n\t\t\t? [\n\t\t\t\t\tissue(\n\t\t\t\t\t\t\"process-tool-provider-empty-allowlist\",\n\t\t\t\t\t\t\"Process tool provider has no allowlisted commands and will deny execution.\",\n\t\t\t\t\t\t\"warning\",\n\t\t\t\t\t),\n\t\t\t\t]\n\t\t\t: []),\n\t\t...[...normalized.duplicates].map((command) =>\n\t\t\tissue(\n\t\t\t\t\"process-tool-provider-duplicate-allowlist\",\n\t\t\t\t\"Process tool provider has duplicate command allowlist entries.\",\n\t\t\t\t\"error\",\n\t\t\t\t{ command },\n\t\t\t),\n\t\t),\n\t\t...[...normalized.invalids].map((command) =>\n\t\t\tissue(\n\t\t\t\t\"process-tool-provider-invalid-allowlist\",\n\t\t\t\t\"Process tool provider has invalid command allowlist entries.\",\n\t\t\t\t\"error\",\n\t\t\t\t{ command },\n\t\t\t),\n\t\t),\n\t];\n\tconst issues = issueList.length === 0 ? undefined : Object.freeze(issueList);\n\tconst policy = processToolProviderExecutionPolicy(providerId, profileId, opts);\n\tconst tool = Object.freeze({\n\t\tkind: \"tool-catalog-entry\",\n\t\tproviderId,\n\t\ttoolName: \"process.execFile\",\n\t\toperation: \"run\",\n\t\tinputKind: \"tool-call\",\n\t\tprofileId,\n\t\texecutorId,\n\t\tresultKinds: Object.freeze([\"process-result\"]),\n\t\tcapabilities: Object.freeze({\n\t\t\targv: true,\n\t\t\tshell: false,\n\t\t\tcommands: Object.freeze(allowedCommands.map((cmd) => cmd.command)),\n\t\t\tenv: Object.freeze({ allowedKeys: Object.freeze([...(opts.allowedEnvKeys ?? [])]) }),\n\t\t}),\n\t\tpolicyRefs: Object.freeze([{ kind: \"tool-provider-execution-policy\", id: policy.policyId }]),\n\t} satisfies ToolProviderCatalogEntry);\n\treturn Object.freeze({\n\t\tkind: \"tool-provider-catalog\",\n\t\tproviderId,\n\t\tproviderKind: \"process\",\n\t\tstatus: issues === undefined ? \"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([\"process-result\"]),\n\t\t\t\tcapabilities: Object.freeze({\n\t\t\t\t\ttoolNames: Object.freeze([tool.toolName]),\n\t\t\t\t\targv: true,\n\t\t\t\t\tshell: false,\n\t\t\t\t}),\n\t\t\t\tpolicyRefs: Object.freeze([\n\t\t\t\t\t{ kind: \"tool-provider-execution-policy\", id: policy.policyId },\n\t\t\t\t]),\n\t\t\t}),\n\t\t]),\n\t\ttools: Object.freeze([tool]),\n\t\tpolicies: Object.freeze([policy]),\n\t\tpolicyRefs: Object.freeze([{ kind: \"tool-provider-execution-policy\", id: policy.policyId }]),\n\t\tissues,\n\t\tmetadata: Object.freeze({ adapterPack: \"process-v0\" }),\n\t} satisfies ToolProviderCatalog);\n}\n\nexport function httpToolProviderCatalog(\n\topts: Omit<HttpToolProviderRuntimeOptions, \"inputs\" | \"runRequests\" | \"driver\"> = {},\n): ToolProviderCatalog {\n\tconst providerId = opts.providerId ?? \"http\";\n\tconst executorId = opts.executorId ?? `${providerId}:tool-executor`;\n\tconst profileId = opts.profileId ?? `${providerId}:tool-profile`;\n\tconst allowedOrigins = Object.freeze([...(opts.allowedOrigins ?? [])]);\n\tconst allowedMethods = Object.freeze(normalizeMethods(opts.allowedMethods ?? [\"GET\"]));\n\tconst maxResponseBytes = Math.max(1, nonNegativeFinite(opts.maxResponseBytes, 64 * 1024));\n\tconst policy = httpToolProviderExecutionPolicy(providerId, profileId, opts);\n\tconst issues = Object.freeze([\n\t\t...(allowedOrigins.length === 0\n\t\t\t? [\n\t\t\t\t\tissue(\n\t\t\t\t\t\t\"http-tool-provider-empty-origin-allowlist\",\n\t\t\t\t\t\t\"HTTP tool provider has no allowlisted origins and will deny execution.\",\n\t\t\t\t\t\t\"warning\",\n\t\t\t\t\t),\n\t\t\t\t]\n\t\t\t: []),\n\t\t...(allowedMethods.length === 0\n\t\t\t? [\n\t\t\t\t\tissue(\n\t\t\t\t\t\t\"http-tool-provider-empty-method-allowlist\",\n\t\t\t\t\t\t\"HTTP tool provider has no allowlisted methods and will deny execution.\",\n\t\t\t\t\t),\n\t\t\t\t]\n\t\t\t: []),\n\t]);\n\tconst tool = Object.freeze({\n\t\tkind: \"tool-catalog-entry\",\n\t\tproviderId,\n\t\ttoolName: \"http.fetch\",\n\t\toperation: \"fetch\",\n\t\tinputKind: \"tool-call\",\n\t\tprofileId,\n\t\texecutorId,\n\t\tresultKinds: Object.freeze([\"http-result\"]),\n\t\tcapabilities: Object.freeze({\n\t\t\torigins: allowedOrigins,\n\t\t\tmethods: allowedMethods,\n\t\t\tmaxResponseBytes,\n\t\t\tasyncRuntime: true,\n\t\t}),\n\t\tpolicyRefs: Object.freeze([{ kind: \"tool-provider-execution-policy\", id: policy.policyId }]),\n\t} satisfies ToolProviderCatalogEntry);\n\treturn Object.freeze({\n\t\tkind: \"tool-provider-catalog\",\n\t\tproviderId,\n\t\tproviderKind: \"http\",\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([\"http-result\"]),\n\t\t\t\tcapabilities: Object.freeze({\n\t\t\t\t\ttoolNames: Object.freeze([tool.toolName]),\n\t\t\t\t\tasyncRuntime: true,\n\t\t\t\t}),\n\t\t\t\tpolicyRefs: Object.freeze([\n\t\t\t\t\t{ kind: \"tool-provider-execution-policy\", id: policy.policyId },\n\t\t\t\t]),\n\t\t\t}),\n\t\t]),\n\t\ttools: Object.freeze([tool]),\n\t\tpolicies: Object.freeze([policy]),\n\t\tpolicyRefs: Object.freeze([{ kind: \"tool-provider-execution-policy\", id: policy.policyId }]),\n\t\tissues: issues.length === 0 ? undefined : issues,\n\t\tmetadata: Object.freeze({ adapterPack: \"http-v0\", asyncRuntime: true }),\n\t} satisfies ToolProviderCatalog);\n}\n\nexport function httpToolProviderRuntime(\n\tgraph: Graph,\n\topts: HttpToolProviderRuntimeOptions,\n): HttpToolProviderRuntimeBundle {\n\tconst name = opts.name ?? \"httpToolProviderRuntime\";\n\tconst providerId = opts.providerId ?? \"http\";\n\tconst catalog = httpToolProviderCatalog(opts);\n\tconst outcomes = graph.node<ExecutorOutcome<HttpToolResult>>([], null, {\n\t\tname: `${name}/outcomes`,\n\t});\n\tconst runStatus = graph.node<ToolProviderAdapterRunStatus>([], null, {\n\t\tname: `${name}/runStatus`,\n\t});\n\tconst status = graph.node<AgentRequestStatusChanged>([], null, { name: `${name}/status` });\n\tconst issues = graph.node<DataIssue>([], null, { name: `${name}/issues` });\n\tconst audit = graph.node<AgentRuntimeAuditRecord>([], null, { name: `${name}/audit` });\n\tconst inputs = new Map<string, ToolProviderAdapterInput<HttpToolArguments>>();\n\tconst executions = new Set<string>();\n\tconst active = new Set<AbortController>();\n\tconst config = httpRuntimeConfig(opts);\n\tconst driver = opts.driver ?? defaultHttpToolProviderDriver(config.maxResponseBytes);\n\tconst forwardedRunStatusKeys = new Set<string>();\n\tlet auditSeq = 0;\n\tlet disposed = false;\n\n\tfunction nowMs(): number | undefined {\n\t\treturn opts.now?.();\n\t}\n\n\tfunction publishIssue(nextIssue: DataIssue): void {\n\t\tissues.down([[\"DATA\", nextIssue]]);\n\t}\n\n\tfunction publishAudit(\n\t\tkind: string,\n\t\tsubjectId: string,\n\t\tmetadata?: Record<string, unknown>,\n\t\tissueCode?: string,\n\t): void {\n\t\tauditSeq += 1;\n\t\taudit.down([\n\t\t\t[\n\t\t\t\t\"DATA\",\n\t\t\t\t{\n\t\t\t\t\tid: `${name}:audit:${auditSeq}`,\n\t\t\t\t\tkind,\n\t\t\t\t\tsubjectId,\n\t\t\t\t\t...(issueCode === undefined ? {} : { issueCode }),\n\t\t\t\t\t...(metadata === undefined ? {} : { metadata }),\n\t\t\t\t} satisfies AgentRuntimeAuditRecord,\n\t\t\t],\n\t\t]);\n\t}\n\n\tfunction publishRunStatus(\n\t\trequest: ToolProviderAdapterRunRequested,\n\t\tnextStatus: ToolProviderAdapterRunStatus[\"status\"],\n\t\tstatusIssues?: readonly DataIssue[],\n\t\toutcomeId?: string,\n\t): void {\n\t\tforwardedRunStatusKeys.add(`${request.runId}:${nextStatus}`);\n\t\trunStatus.down([\n\t\t\t[\n\t\t\t\t\"DATA\",\n\t\t\t\t{\n\t\t\t\t\tkind: \"tool-provider-adapter-run-status\",\n\t\t\t\t\trunId: request.runId,\n\t\t\t\t\tadapterInputId: request.adapterInputId,\n\t\t\t\t\trequestId: request.requestId,\n\t\t\t\t\toperationId: request.operationId,\n\t\t\t\t\tstatus: nextStatus,\n\t\t\t\t\tattempt: request.attempt,\n\t\t\t\t\t...(outcomeId === undefined ? {} : { outcomeId }),\n\t\t\t\t\t...(statusIssues === undefined ? {} : { issues: statusIssues }),\n\t\t\t\t\tsourceRefs: request.sourceRefs,\n\t\t\t\t\tmetadata: Object.freeze({ providerId, reason: request.reason }),\n\t\t\t\t} satisfies ToolProviderAdapterRunStatus,\n\t\t\t],\n\t\t]);\n\t}\n\n\tfunction publishRequestStatus(\n\t\tinput: ToolProviderAdapterInput<HttpToolArguments>,\n\t\tnextStatus: AgentRequestStatusChanged[\"status\"],\n\t\tstatusIssues?: readonly DataIssue[],\n\t): void {\n\t\tif (input.effectRunId === undefined) return;\n\t\tstatus.down([\n\t\t\t[\n\t\t\t\t\"DATA\",\n\t\t\t\t{\n\t\t\t\t\tkind: \"status\",\n\t\t\t\t\trequestId: input.requestId,\n\t\t\t\t\toperationId: input.operationId,\n\t\t\t\t\teffectRunId: input.effectRunId,\n\t\t\t\t\tstatus: nextStatus,\n\t\t\t\t\tsourceRefs: defaultEvidenceRefs(input),\n\t\t\t\t\t...(statusIssues === undefined ? {} : { issues: statusIssues }),\n\t\t\t\t\tmetadata: Object.freeze({\n\t\t\t\t\t\tadapterInputId: input.adapterInputId,\n\t\t\t\t\t\tproviderId: input.providerId,\n\t\t\t\t\t\ttoolName: input.toolName,\n\t\t\t\t\t}),\n\t\t\t\t} satisfies AgentRequestStatusChanged,\n\t\t\t],\n\t\t]);\n\t}\n\n\tfunction publishOutcome(\n\t\tinput: ToolProviderAdapterInput<HttpToolArguments>,\n\t\trequest: ToolProviderAdapterRunRequested,\n\t\tresult: ToolProviderAdapterRunResult<HttpToolResult>,\n\t): void {\n\t\tconst outcome = buildToolProviderExecutorOutcome(input, result, {\n\t\t\trunId: request.runId,\n\t\t\tattempt: request.attempt,\n\t\t\toccurredAtMs: nowMs(),\n\t\t\tpublicText: opts.publicText,\n\t\t});\n\t\toutcomes.down([[\"DATA\", outcome]]);\n\t\tconst statusIssues = outcomeIssues(outcome);\n\t\tfor (const statusIssue of statusIssues) publishIssue(statusIssue);\n\t\tpublishRequestStatus(input, agentStatusForOutcome(outcome), statusIssues);\n\t\tpublishRunStatus(request, outcome.kind, statusIssues, outcome.outcomeId);\n\t\tpublishAudit(\"http-tool-provider-runtime-finished\", input.requestId, {\n\t\t\trunId: request.runId,\n\t\t\tattempt: request.attempt,\n\t\t\tstatus: outcome.kind,\n\t\t\toutcomeId: outcome.outcomeId,\n\t\t});\n\t}\n\n\tfunction execute(request: ToolProviderAdapterRunRequested): void {\n\t\tif (disposed || (request.providerId !== undefined && request.providerId !== providerId)) return;\n\t\tconst input = inputs.get(request.adapterInputId);\n\t\tif (input === undefined || input.providerId !== providerId) return;\n\t\tconst coordinate = `${request.runId}:${request.adapterInputId}:${request.attempt}`;\n\t\tif (executions.has(coordinate)) return;\n\t\texecutions.add(coordinate);\n\t\tpublishRunStatus(request, \"requested\");\n\t\tif (input.status !== \"ready\") {\n\t\t\tconst inputIssue = issue(\n\t\t\t\t\"http-tool-provider-input-not-ready\",\n\t\t\t\t\"HTTP tool provider runtime requires a ready adapter input.\",\n\t\t\t);\n\t\t\tpublishIssue(inputIssue);\n\t\t\tpublishRunStatus(request, \"stale-request\", [inputIssue]);\n\t\t\tpublishRequestStatus(input, \"blocked\", [inputIssue]);\n\t\t\treturn;\n\t\t}\n\t\tif (!requestMatchesInput(request, input)) {\n\t\t\tconst mismatch = issue(\n\t\t\t\t\"http-tool-provider-run-request-mismatched-input\",\n\t\t\t\t\"HTTP tool provider run request does not match its adapter input.\",\n\t\t\t);\n\t\t\tpublishIssue(mismatch);\n\t\t\tpublishRunStatus(request, \"mismatched-request\", [mismatch]);\n\t\t\tpublishRequestStatus(input, \"blocked\", [mismatch]);\n\t\t\treturn;\n\t\t}\n\t\tconst prepared = prepareHttpRequest(input, config);\n\t\tif (prepared.kind === \"blocked\") {\n\t\t\tpublishOutcome(input, request, {\n\t\t\t\tkind: \"blocked\",\n\t\t\t\tneeds: Object.freeze([\n\t\t\t\t\tObject.freeze({\n\t\t\t\t\t\tkind: prepared.issue.code,\n\t\t\t\t\t\tmessage: prepared.issue.message,\n\t\t\t\t\t}),\n\t\t\t\t]),\n\t\t\t\tissues: Object.freeze([prepared.issue]),\n\t\t\t\tevidenceRefs: defaultEvidenceRefs(input),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (config.approvalMode === \"never\") {\n\t\t\tpublishOutcome(input, request, {\n\t\t\t\tkind: \"blocked\",\n\t\t\t\tneeds: Object.freeze([\n\t\t\t\t\tObject.freeze({\n\t\t\t\t\t\tkind: \"tool-provider-approval-disabled\",\n\t\t\t\t\t\tmessage: \"HTTP tool provider policy disallows execution.\",\n\t\t\t\t\t}),\n\t\t\t\t]),\n\t\t\t\tissues: Object.freeze([\n\t\t\t\t\tissue(\"http-tool-provider-approval-never\", \"HTTP tool provider execution is disabled.\"),\n\t\t\t\t]),\n\t\t\t\tevidenceRefs: defaultEvidenceRefs(input),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (config.approvalMode === \"require\" && !requestApproved(request)) {\n\t\t\tpublishOutcome(input, request, {\n\t\t\t\tkind: \"blocked\",\n\t\t\t\tneeds: Object.freeze([\n\t\t\t\t\tObject.freeze({\n\t\t\t\t\t\tkind: \"tool-provider-approval\",\n\t\t\t\t\t\tmessage: \"HTTP tool provider execution requires a visible approval run request.\",\n\t\t\t\t\t}),\n\t\t\t\t]),\n\t\t\t\tissues: Object.freeze([\n\t\t\t\t\tissue(\n\t\t\t\t\t\t\"http-tool-provider-approval-required\",\n\t\t\t\t\t\t\"HTTP tool provider execution requires approval.\",\n\t\t\t\t\t),\n\t\t\t\t]),\n\t\t\t\tevidenceRefs: defaultEvidenceRefs(input),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst controller = new AbortController();\n\t\tactive.add(controller);\n\t\tpublishRunStatus(request, \"started\");\n\t\tpublishRequestStatus(input, \"in-flight\");\n\t\tpublishAudit(\"http-tool-provider-runtime-started\", input.requestId, {\n\t\t\trunId: request.runId,\n\t\t\tattempt: request.attempt,\n\t\t\tmethod: prepared.request.method,\n\t\t\torigin: new URL(prepared.request.url).origin,\n\t\t});\n\t\tconst timeout = setTimeout(() => controller.abort(), config.timeoutMs);\n\t\tPromise.resolve(driver.fetch({ ...prepared.request, signal: controller.signal })).then(\n\t\t\t(response) => {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\tactive.delete(controller);\n\t\t\t\tif (disposed) return;\n\t\t\t\tpublishOutcome(input, request, httpResponseResult(prepared.request, response, config));\n\t\t\t},\n\t\t\t(error: unknown) => {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\tactive.delete(controller);\n\t\t\t\tif (disposed) return;\n\t\t\t\tpublishOutcome(input, request, httpErrorResult(error, config));\n\t\t\t},\n\t\t);\n\t}\n\n\tconst unsubscribeInputs = opts.inputs.subscribe((msg) => {\n\t\tif (msg[0] !== \"DATA\") return;\n\t\tconst input = msg[1] as ToolProviderAdapterInput<HttpToolArguments>;\n\t\tif (input.providerId === providerId) inputs.set(input.adapterInputId, input);\n\t});\n\tconst autoRunReadyInputs =\n\t\topts.autoRunReadyInputs ?? (opts.runRequests === undefined || opts.runRequests.length === 0);\n\tconst runProjector = toolProviderAdapterRunProjector(graph, {\n\t\tname: `${name}/runs`,\n\t\tinputs: opts.inputs,\n\t\trunRequests: opts.runRequests,\n\t\tautoRunReadyInputs,\n\t\tnow: opts.now,\n\t});\n\tconst unsubscribeRunStatus = runProjector.status.subscribe((msg) => {\n\t\tif (msg[0] !== \"DATA\") return;\n\t\tconst nextStatus = msg[1] as ToolProviderAdapterRunStatus;\n\t\tconst statusKey = `${nextStatus.runId}:${nextStatus.status}`;\n\t\tif (forwardedRunStatusKeys.has(statusKey)) return;\n\t\tforwardedRunStatusKeys.add(statusKey);\n\t\trunStatus.down([[\"DATA\", nextStatus]]);\n\t});\n\tconst unsubscribeRunIssues = runProjector.issues.subscribe((msg) => {\n\t\tif (msg[0] === \"DATA\") publishIssue(msg[1] as DataIssue);\n\t});\n\tconst unsubscribeRunAudit = runProjector.audit.subscribe((msg) => {\n\t\tif (msg[0] === \"DATA\") audit.down([[\"DATA\", msg[1] as AgentRuntimeAuditRecord]]);\n\t});\n\tconst unsubscribeRunRequests = runProjector.requests.subscribe((msg) => {\n\t\tif (msg[0] === \"DATA\") execute(msg[1] as ToolProviderAdapterRunRequested);\n\t});\n\treturn Object.freeze({\n\t\tcatalogs: Object.freeze([catalog]),\n\t\trunRequests: runProjector.requests,\n\t\trunStatus,\n\t\toutcomes,\n\t\tstatus,\n\t\tissues,\n\t\taudit,\n\t\tdispose() {\n\t\t\tif (disposed) return;\n\t\t\tdisposed = true;\n\t\t\tunsubscribeInputs();\n\t\t\tunsubscribeRunStatus();\n\t\t\tunsubscribeRunIssues();\n\t\t\tunsubscribeRunAudit();\n\t\t\tunsubscribeRunRequests();\n\t\t\tfor (const controller of active) controller.abort();\n\t\t\tactive.clear();\n\t\t},\n\t} satisfies HttpToolProviderRuntimeBundle);\n}\n\nfunction localDateNow(\n\tinput: ToolProviderAdapterInput<LocalBuiltinToolArguments>,\n\tctx: ToolProviderAdapterRunContext,\n\tnow: (() => number) | undefined,\n): ToolProviderAdapterRunResult<LocalBuiltinToolResult> {\n\tconst epochMs = now?.() ?? ctx.now?.() ?? Date.now();\n\treturn Object.freeze({\n\t\tkind: \"result\",\n\t\tresult: Object.freeze({\n\t\t\tkind: \"json\",\n\t\t\tvalue: Object.freeze({\n\t\t\t\ttoolName: \"date.now\" as const,\n\t\t\t\tepochMs,\n\t\t\t\tiso: new Date(epochMs).toISOString(),\n\t\t\t}),\n\t\t\tsummary: String(epochMs),\n\t\t}),\n\t\toccurredAtMs: epochMs,\n\t\tevidenceRefs: input.sourceRefs,\n\t} satisfies ToolProviderAdapterRunResult<LocalBuiltinToolResult>);\n}\n\nfunction localJsonParse(\n\tinput: ToolProviderAdapterInput<LocalBuiltinToolArguments>,\n\tmaxTextChars: number,\n): ToolProviderAdapterRunResult<LocalBuiltinToolResult> {\n\tconst text = input.toolCall?.arguments?.text;\n\tif (typeof text !== \"string\") {\n\t\treturn failure(\n\t\t\tinput,\n\t\t\t\"local-json-parse-missing-text\",\n\t\t\t\"json.parse requires a string text argument.\",\n\t\t);\n\t}\n\tif (text.length > maxTextChars) {\n\t\treturn failure(\n\t\t\tinput,\n\t\t\t\"local-json-parse-text-too-large\",\n\t\t\t\"json.parse text exceeds maxTextChars.\",\n\t\t);\n\t}\n\ttry {\n\t\tconst value = JSON.parse(text) as unknown;\n\t\treturn Object.freeze({\n\t\t\tkind: \"result\",\n\t\t\tresult: Object.freeze({\n\t\t\t\tkind: \"json\",\n\t\t\t\tvalue: Object.freeze({ toolName: \"json.parse\" as const, value }),\n\t\t\t\tsummary: \"parsed JSON\",\n\t\t\t}),\n\t\t\tevidenceRefs: input.sourceRefs,\n\t\t} satisfies ToolProviderAdapterRunResult<LocalBuiltinToolResult>);\n\t} catch {\n\t\treturn failure(input, \"local-json-parse-invalid-json\", \"json.parse received invalid JSON.\");\n\t}\n}\n\nfunction localTextConcat(\n\tinput: ToolProviderAdapterInput<LocalBuiltinToolArguments>,\n\tmaxTextChars: number,\n): ToolProviderAdapterRunResult<LocalBuiltinToolResult> {\n\tconst parts = input.toolCall?.arguments?.parts;\n\tif (!Array.isArray(parts)) {\n\t\treturn failure(input, \"local-text-concat-missing-parts\", \"text.concat requires a parts array.\");\n\t}\n\tconst separator = input.toolCall?.arguments?.separator ?? \"\";\n\tif (typeof separator !== \"string\") {\n\t\treturn failure(\n\t\t\tinput,\n\t\t\t\"local-text-concat-invalid-separator\",\n\t\t\t\"text.concat separator must be a string.\",\n\t\t);\n\t}\n\tconst text = parts.map((part) => String(part)).join(separator);\n\tif (text.length > maxTextChars) {\n\t\treturn failure(\n\t\t\tinput,\n\t\t\t\"local-text-concat-too-large\",\n\t\t\t\"text.concat result exceeds maxTextChars.\",\n\t\t);\n\t}\n\treturn Object.freeze({\n\t\tkind: \"result\",\n\t\tresult: Object.freeze({\n\t\t\tkind: \"text\",\n\t\t\tvalue: Object.freeze({ toolName: \"text.concat\" as const, text }),\n\t\t\tsummary: text,\n\t\t}),\n\t\tevidenceRefs: input.sourceRefs,\n\t} satisfies ToolProviderAdapterRunResult<LocalBuiltinToolResult>);\n}\n\ninterface ProcessConfig {\n\treadonly allowedCommands: ReadonlyMap<string, ProcessToolAllowedCommand>;\n\treadonly duplicateCommands: ReadonlySet<string>;\n\treadonly invalidCommands: ReadonlySet<string>;\n\treadonly workingDirectory: string;\n\treadonly allowedWorkingDirectories: readonly string[];\n\treadonly baseEnv: Readonly<Record<string, string>>;\n\treadonly allowedEnvKeys: ReadonlySet<string>;\n\treadonly timeoutMs: number;\n\treadonly maxOutputBytes: number;\n\treadonly maxSummaryChars: number;\n}\n\nfunction processConfig(opts: ProcessToolProviderBindingOptions): ProcessConfig {\n\tconst workingDirectory = resolve(opts.workingDirectory ?? \".\");\n\tconst allowedWorkingDirectories = Object.freeze(\n\t\t(opts.allowedWorkingDirectories ?? [workingDirectory]).map((dir) => resolve(dir)),\n\t);\n\tconst allowed = normalizeAllowedCommands(opts.allowedCommands ?? []);\n\treturn {\n\t\tallowedCommands: allowed.commands,\n\t\tduplicateCommands: allowed.duplicates,\n\t\tinvalidCommands: allowed.invalids,\n\t\tworkingDirectory,\n\t\tallowedWorkingDirectories,\n\t\tbaseEnv: Object.freeze({ ...(opts.baseEnv ?? {}) }),\n\t\tallowedEnvKeys: new Set(opts.allowedEnvKeys ?? []),\n\t\ttimeoutMs: positiveFinite(opts.timeoutMs, 10_000),\n\t\tmaxOutputBytes: Math.max(1, nonNegativeFinite(opts.maxOutputBytes, 64 * 1024)),\n\t\tmaxSummaryChars: Math.max(1, nonNegativeFinite(opts.maxSummaryChars, 512)),\n\t};\n}\n\nfunction processArguments(\n\tinput: ToolProviderAdapterInput<ProcessToolArguments>,\n):\n\t| (Required<Pick<ProcessToolArguments, \"command\" | \"args\">> &\n\t\t\tPick<ProcessToolArguments, \"cwd\" | \"env\" | \"input\">)\n\t| undefined {\n\tconst raw = input.toolCall?.arguments;\n\tif (!isRecord(raw) || typeof raw.command !== \"string\" || raw.command.length === 0) {\n\t\treturn undefined;\n\t}\n\tconst rawArgs = raw.args === undefined ? Object.freeze([]) : stringArray(raw.args);\n\tif (rawArgs === undefined) return undefined;\n\tif (raw.cwd !== undefined && typeof raw.cwd !== \"string\") return undefined;\n\tif (raw.input !== undefined && typeof raw.input !== \"string\") return undefined;\n\tconst rawEnv = raw.env === undefined ? undefined : processArgumentEnv(raw.env);\n\tif (raw.env !== undefined && rawEnv === undefined) return undefined;\n\treturn {\n\t\tcommand: raw.command,\n\t\targs: rawArgs,\n\t\t...(raw.cwd === undefined ? {} : { cwd: raw.cwd }),\n\t\t...(rawEnv === undefined ? {} : { env: rawEnv }),\n\t\t...(raw.input === undefined ? {} : { input: raw.input }),\n\t};\n}\n\nfunction argsAllowed(command: ProcessToolAllowedCommand, args: readonly string[]): boolean {\n\tif (command.allowArgs === true) return true;\n\tif (typeof command.allowArgs === \"function\") return command.allowArgs(args);\n\tif (command.allowArgs === undefined) return args.length === 0;\n\treturn arraysEqual(command.allowArgs, args);\n}\n\nfunction resolveProcessCwd(\n\trequestedCwd: string | undefined,\n\tcommand: ProcessToolAllowedCommand,\n\tconfig: ProcessConfig,\n): string | undefined {\n\tconst rawCwd = command.cwd ?? requestedCwd;\n\tconst cwd =\n\t\trawCwd === undefined\n\t\t\t? config.workingDirectory\n\t\t\t: isAbsolute(rawCwd)\n\t\t\t\t? resolve(rawCwd)\n\t\t\t\t: resolve(config.workingDirectory, rawCwd);\n\tconst realCwd = realpath(cwd);\n\tif (realCwd === undefined) return undefined;\n\treturn config.allowedWorkingDirectories.some((allowed) => {\n\t\tconst realAllowed = realpath(allowed);\n\t\treturn realAllowed !== undefined && isPathInside(realCwd, realAllowed);\n\t})\n\t\t? cwd\n\t\t: undefined;\n}\n\nfunction processEnv(\n\tinputEnv: ProcessToolArguments[\"env\"],\n\tconfig: ProcessConfig,\n): Readonly<Record<string, string>> | undefined {\n\tconst env: Record<string, string> = { ...config.baseEnv };\n\tfor (const [key, value] of Object.entries(inputEnv ?? {})) {\n\t\tif (!config.allowedEnvKeys.has(key)) return undefined;\n\t\tif (value !== undefined) env[key] = String(value);\n\t}\n\treturn Object.freeze(env);\n}\n\nfunction processArgumentEnv(value: unknown): ProcessToolArguments[\"env\"] | undefined {\n\tif (!isRecord(value)) return undefined;\n\tconst env: Record<string, string | number | boolean | undefined> = {};\n\tfor (const [key, entry] of Object.entries(value)) {\n\t\tif (\n\t\t\tentry !== undefined &&\n\t\t\ttypeof entry !== \"string\" &&\n\t\t\ttypeof entry !== \"number\" &&\n\t\t\ttypeof entry !== \"boolean\"\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\t\tenv[key] = entry;\n\t}\n\treturn Object.freeze(env);\n}\n\nfunction runProcessTool(\n\tinput: ToolProviderAdapterInput<ProcessToolArguments>,\n\tallowed: ProcessToolAllowedCommand,\n\targs: Required<Pick<ProcessToolArguments, \"command\" | \"args\">> &\n\t\tPick<ProcessToolArguments, \"input\">,\n\tcwd: string,\n\tenv: Readonly<Record<string, string>>,\n\tconfig: ProcessConfig,\n): ToolProviderAdapterRunResult<ProcessToolResult> {\n\tconst executable = allowed.executable ?? args.command;\n\tconst argv = Object.freeze([...(allowed.fixedArgs ?? []), ...args.args]);\n\tconst result = spawnSync(executable, argv, {\n\t\tcwd,\n\t\tenv,\n\t\tinput: args.input,\n\t\tencoding: \"buffer\",\n\t\tshell: false,\n\t\ttimeout: config.timeoutMs,\n\t\tmaxBuffer: config.maxOutputBytes + 1,\n\t});\n\tconst stdout = result.stdout ?? Buffer.alloc(0);\n\tconst stderr = result.stderr ?? Buffer.alloc(0);\n\tconst truncated = stdout.length + stderr.length > config.maxOutputBytes;\n\tif (result.error !== undefined && isTimeoutError(result.error)) {\n\t\treturn Object.freeze({\n\t\t\tkind: \"timeout\",\n\t\t\ttimeoutMs: config.timeoutMs,\n\t\t\tretryable: true,\n\t\t\tevidenceRefs: input.sourceRefs,\n\t\t} satisfies ToolProviderAdapterRunResult<ProcessToolResult>);\n\t}\n\tif (result.error !== undefined || truncated) {\n\t\treturn failure(\n\t\t\tinput,\n\t\t\ttruncated || isOutputLimitError(result.error)\n\t\t\t\t? \"process-output-limit-exceeded\"\n\t\t\t\t: \"process-spawn-failed\",\n\t\t\ttruncated || isOutputLimitError(result.error)\n\t\t\t\t? \"Process output exceeded maxOutputBytes.\"\n\t\t\t\t: \"Process execution failed before producing an exit result.\",\n\t\t);\n\t}\n\tconst value = processResult(\n\t\targs.command,\n\t\targv,\n\t\tcwd,\n\t\tresult.status,\n\t\tresult.signal,\n\t\tstdout,\n\t\tstderr,\n\t\tconfig,\n\t);\n\tif ((result.status ?? 1) !== 0) {\n\t\treturn Object.freeze({\n\t\t\tkind: \"failure\",\n\t\t\terror: issue(\"process-exit-nonzero\", \"Process exited with a non-zero status.\", \"error\", {\n\t\t\t\texitCode: result.status,\n\t\t\t\tsignal: result.signal ?? undefined,\n\t\t\t}),\n\t\t\tretryable: false,\n\t\t\tevidenceRefs: input.sourceRefs,\n\t\t\tmetadata: Object.freeze({\n\t\t\t\tcommand: args.command,\n\t\t\t\texitCode: result.status,\n\t\t\t\tsignal: result.signal ?? undefined,\n\t\t\t\toutputBytes: value.outputBytes,\n\t\t\t\terrorOutputBytes: value.errorOutputBytes,\n\t\t\t}),\n\t\t} satisfies ToolProviderAdapterRunResult<ProcessToolResult>);\n\t}\n\treturn Object.freeze({\n\t\tkind: \"result\",\n\t\tresult: Object.freeze({\n\t\t\tkind: \"process-result\",\n\t\t\tvalue,\n\t\t\tsummary: value.outputPreview ?? `process exited ${value.exitCode ?? 0}`,\n\t\t\tartifacts: processArtifacts(stdout, stderr, config, input.sourceRefs),\n\t\t}),\n\t\tevidenceRefs: input.sourceRefs,\n\t} satisfies ToolProviderAdapterRunResult<ProcessToolResult>);\n}\n\nfunction processResult(\n\tcommand: string,\n\targs: readonly string[],\n\tcwd: string,\n\texitCode: number | null,\n\tsignal: NodeJS.Signals | null,\n\tstdout: Buffer,\n\tstderr: Buffer,\n\tconfig: ProcessConfig,\n): ProcessToolResult {\n\treturn Object.freeze({\n\t\tcommand,\n\t\targs,\n\t\tcwd,\n\t\texitCode,\n\t\t...(signal === null ? {} : { signal }),\n\t\toutputPreview: preview(stdout, config.maxSummaryChars),\n\t\terrorPreview: preview(stderr, config.maxSummaryChars),\n\t\toutputBytes: stdout.length,\n\t\terrorOutputBytes: stderr.length,\n\t\ttruncated: false,\n\t});\n}\n\nfunction processArtifacts(\n\tstdout: Buffer,\n\tstderr: Buffer,\n\tconfig: ProcessConfig,\n\tsourceRefs: readonly SourceRef[] | undefined,\n): readonly ExecutorArtifactMaterial<string>[] | undefined {\n\tconst artifacts = [\n\t\tprocessTextArtifact(\"process-stdout\", stdout, config, sourceRefs),\n\t\tprocessTextArtifact(\"process-stderr\", stderr, config, sourceRefs),\n\t].filter((artifact): artifact is ExecutorArtifactMaterial<string> => artifact !== undefined);\n\treturn artifacts.length === 0 ? undefined : Object.freeze(artifacts);\n}\n\nfunction processTextArtifact(\n\tkind: \"process-stdout\" | \"process-stderr\",\n\tbytes: Buffer,\n\tconfig: ProcessConfig,\n\tsourceRefs: readonly SourceRef[] | undefined,\n): ExecutorArtifactMaterial<string> | undefined {\n\tif (bytes.length === 0) return undefined;\n\tconst text = bytes.toString(\"utf8\");\n\tconst inline = text.length <= config.maxSummaryChars;\n\treturn Object.freeze({\n\t\tkind,\n\t\tformat: \"text\",\n\t\tmediaType: \"text/plain\",\n\t\tencoding: \"utf8\",\n\t\tbyteLength: bytes.length,\n\t\tdataMode: inline ? \"inline\" : \"summary\",\n\t\tsummary: preview(bytes, config.maxSummaryChars),\n\t\t...(inline ? { value: text } : {}),\n\t\t...(sourceRefs === undefined ? {} : { sourceRefs }),\n\t\tsizeEvidence: Object.freeze([\n\t\t\tsizeEvidence(bytes.length, \"adapter-measured-process-output\", sourceRefs),\n\t\t]),\n\t} satisfies ExecutorArtifactMaterial<string>);\n}\n\nfunction processToolProviderExecutionPolicy(\n\tproviderId: string,\n\tprofileId: string,\n\topts: ProcessToolProviderBindingOptions,\n): ToolProviderExecutionPolicy {\n\tconst maxOutputBytes = Math.max(1, nonNegativeFinite(opts.maxOutputBytes, 64 * 1024));\n\treturn Object.freeze({\n\t\tkind: \"tool-provider-execution-policy\",\n\t\tpolicyId: `${providerId}:policy:process-v0`,\n\t\tproviderId,\n\t\tprofileIds: Object.freeze([profileId]),\n\t\ttoolNames: Object.freeze([\"process.execFile\"]),\n\t\toperations: Object.freeze([\"run\"]),\n\t\tsizeCapacity: Object.freeze({\n\t\t\tlimits: Object.freeze([\n\t\t\t\tObject.freeze({\n\t\t\t\t\tunit: \"bytes\",\n\t\t\t\t\thardLimit: maxOutputBytes,\n\t\t\t\t\tperRequest: true,\n\t\t\t\t\tmeasurementSource: \"adapter-measured\",\n\t\t\t\t} satisfies ToolProviderSizeLimit),\n\t\t\t]),\n\t\t}),\n\t\ttimeout: Object.freeze({ timeoutMs: positiveFinite(opts.timeoutMs, 10_000) }),\n\t\tredaction: Object.freeze({\n\t\t\tmode: \"summary\",\n\t\t\tsummaryMaxChars: nonNegativeFinite(opts.maxSummaryChars, 512),\n\t\t}),\n\t\tfilesystem: Object.freeze({\n\t\t\tcwd: opts.workingDirectory ?? \".\",\n\t\t\tallowRead: false,\n\t\t\tallowWrite: false,\n\t\t\tfollowSymlinks: false,\n\t\t\tpathRules: Object.freeze(\n\t\t\t\t(opts.allowedWorkingDirectories ?? [opts.workingDirectory ?? \".\"]).map((path) =>\n\t\t\t\t\tObject.freeze({\n\t\t\t\t\t\teffect: \"allow\",\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\toperation: \"run\",\n\t\t\t\t\t\treason: \"Process adapter cwd allowlist.\",\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t),\n\t\t}),\n\t\tapproval: Object.freeze({ mode: \"auto\" }),\n\t\tmetadata: Object.freeze({\n\t\t\targv: true,\n\t\t\tshell: false,\n\t\t\tallowedEnvKeys: Object.freeze([...(opts.allowedEnvKeys ?? [])]),\n\t\t}),\n\t} satisfies ToolProviderExecutionPolicy);\n}\n\ninterface HttpRuntimeConfig {\n\treadonly allowedOrigins: ReadonlySet<string>;\n\treadonly allowedMethods: ReadonlySet<string>;\n\treadonly allowedRequestHeaders: ReadonlySet<string>;\n\treadonly exposedResponseHeaders: ReadonlySet<string>;\n\treadonly timeoutMs: number;\n\treadonly maxResponseBytes: number;\n\treadonly maxInlineBodyChars: number;\n\treadonly approvalMode: \"auto\" | \"require\" | \"never\";\n}\n\nfunction httpRuntimeConfig(opts: HttpToolProviderRuntimeOptions): HttpRuntimeConfig {\n\treturn {\n\t\tallowedOrigins: new Set(opts.allowedOrigins ?? []),\n\t\tallowedMethods: new Set(normalizeMethods(opts.allowedMethods ?? [\"GET\"])),\n\t\tallowedRequestHeaders: new Set(normalizeHeaderNames(opts.allowedRequestHeaders ?? [])),\n\t\texposedResponseHeaders: new Set(normalizeHeaderNames(opts.exposedResponseHeaders ?? [])),\n\t\ttimeoutMs: positiveFinite(opts.timeoutMs, 10_000),\n\t\tmaxResponseBytes: Math.max(1, nonNegativeFinite(opts.maxResponseBytes, 64 * 1024)),\n\t\tmaxInlineBodyChars: Math.max(1, nonNegativeFinite(opts.maxInlineBodyChars, 4_096)),\n\t\tapprovalMode: opts.approvalMode ?? \"auto\",\n\t};\n}\n\nfunction httpToolProviderExecutionPolicy(\n\tproviderId: string,\n\tprofileId: string,\n\topts: Omit<HttpToolProviderRuntimeOptions, \"inputs\" | \"runRequests\" | \"driver\">,\n): ToolProviderExecutionPolicy {\n\tconst allowedOrigins = Object.freeze([...(opts.allowedOrigins ?? [])]);\n\tconst allowedMethods = Object.freeze(normalizeMethods(opts.allowedMethods ?? [\"GET\"]));\n\tconst maxResponseBytes = Math.max(1, nonNegativeFinite(opts.maxResponseBytes, 64 * 1024));\n\treturn Object.freeze({\n\t\tkind: \"tool-provider-execution-policy\",\n\t\tpolicyId: `${providerId}:policy:http-v0`,\n\t\tproviderId,\n\t\tprofileIds: Object.freeze([profileId]),\n\t\ttoolNames: Object.freeze([\"http.fetch\"]),\n\t\toperations: Object.freeze([\"fetch\"]),\n\t\tsizeCapacity: Object.freeze({\n\t\t\tlimits: Object.freeze([\n\t\t\t\tObject.freeze({\n\t\t\t\t\tunit: \"bytes\",\n\t\t\t\t\thardLimit: maxResponseBytes,\n\t\t\t\t\tperRequest: true,\n\t\t\t\t\tmeasurementSource: \"adapter-measured-response-body\",\n\t\t\t\t} satisfies ToolProviderSizeLimit),\n\t\t\t]),\n\t\t}),\n\t\ttimeout: Object.freeze({ timeoutMs: positiveFinite(opts.timeoutMs, 10_000) }),\n\t\tredaction: Object.freeze({\n\t\t\tmode: \"summary\",\n\t\t\tsummaryMaxChars: nonNegativeFinite(opts.maxInlineBodyChars, 4_096),\n\t\t}),\n\t\tnetwork: Object.freeze({\n\t\t\tmode: \"allowlist\",\n\t\t\tprotocols: Object.freeze([\"http:\", \"https:\"]),\n\t\t\tallowedHosts: allowedOrigins,\n\t\t\tmetadata: Object.freeze({ allowlistKind: \"origin\" }),\n\t\t}),\n\t\tapproval: Object.freeze({ mode: opts.approvalMode ?? \"auto\" }),\n\t\tartifacts: Object.freeze({\n\t\t\tdefaultDataMode: \"summary\",\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: Math.max(1, nonNegativeFinite(opts.maxInlineBodyChars, 4_096)),\n\t\t\t\t\tperArtifact: true,\n\t\t\t\t\tmeasurementSource: \"js-string-length\",\n\t\t\t\t} satisfies ToolProviderSizeLimit),\n\t\t\t]),\n\t\t\tartifactKinds: Object.freeze([\"http-response-body\"]),\n\t\t}),\n\t\tmetadata: Object.freeze({\n\t\t\tallowedOrigins,\n\t\t\tallowedMethods,\n\t\t\tallowedRequestHeaders: Object.freeze([...(opts.allowedRequestHeaders ?? [])]),\n\t\t\texposedResponseHeaders: Object.freeze([...(opts.exposedResponseHeaders ?? [])]),\n\t\t\tasyncRuntime: true,\n\t\t}),\n\t} satisfies ToolProviderExecutionPolicy);\n}\n\nfunction prepareHttpRequest(\n\tinput: ToolProviderAdapterInput<HttpToolArguments>,\n\tconfig: HttpRuntimeConfig,\n):\n\t| { readonly kind: \"ready\"; readonly request: HttpToolProviderDriverRequest }\n\t| { readonly kind: \"blocked\"; readonly issue: DataIssue } {\n\tconst raw = input.toolCall?.arguments;\n\tif (!isRecord(raw) || typeof raw.url !== \"string\") {\n\t\treturn {\n\t\t\tkind: \"blocked\",\n\t\t\tissue: issue(\"http-invalid-arguments\", \"http.fetch requires a string url argument.\"),\n\t\t};\n\t}\n\tlet url: URL;\n\ttry {\n\t\turl = new URL(raw.url);\n\t} catch {\n\t\treturn { kind: \"blocked\", issue: issue(\"http-invalid-url\", \"http.fetch url is invalid.\") };\n\t}\n\tif (url.protocol !== \"http:\" && url.protocol !== \"https:\") {\n\t\treturn {\n\t\t\tkind: \"blocked\",\n\t\t\tissue: issue(\"http-protocol-not-allowed\", \"http.fetch only allows http and https URLs.\"),\n\t\t};\n\t}\n\tif (!config.allowedOrigins.has(url.origin)) {\n\t\treturn {\n\t\t\tkind: \"blocked\",\n\t\t\tissue: issue(\"http-origin-not-allowed\", \"http.fetch origin is not allowlisted.\"),\n\t\t};\n\t}\n\tconst method = normalizeMethod(raw.method ?? \"GET\");\n\tif (method === undefined || !config.allowedMethods.has(method)) {\n\t\treturn {\n\t\t\tkind: \"blocked\",\n\t\t\tissue: issue(\"http-method-not-allowed\", \"http.fetch method is not allowlisted.\"),\n\t\t};\n\t}\n\tif (raw.body !== undefined && typeof raw.body !== \"string\") {\n\t\treturn {\n\t\t\tkind: \"blocked\",\n\t\t\tissue: issue(\"http-invalid-body\", \"http.fetch body must be a string when provided.\"),\n\t\t};\n\t}\n\tconst headers = httpArgumentHeaders(raw.headers, config);\n\tif (headers === undefined) {\n\t\treturn {\n\t\t\tkind: \"blocked\",\n\t\t\tissue: issue(\"http-request-header-not-allowed\", \"http.fetch header is not allowlisted.\"),\n\t\t};\n\t}\n\treturn {\n\t\tkind: \"ready\",\n\t\trequest: Object.freeze({\n\t\t\turl: url.toString(),\n\t\t\tmethod,\n\t\t\theaders,\n\t\t\t...(raw.body === undefined ? {} : { body: raw.body }),\n\t\t}),\n\t};\n}\n\nfunction httpArgumentHeaders(\n\tvalue: unknown,\n\tconfig: HttpRuntimeConfig,\n): Readonly<Record<string, string>> | undefined {\n\tif (value === undefined) return Object.freeze({});\n\tif (!isRecord(value)) return undefined;\n\tconst headers: Record<string, string> = {};\n\tfor (const [key, entry] of Object.entries(value)) {\n\t\tconst normalized = key.toLowerCase();\n\t\tif (!config.allowedRequestHeaders.has(normalized)) return undefined;\n\t\tif (\n\t\t\tentry !== undefined &&\n\t\t\ttypeof entry !== \"string\" &&\n\t\t\ttypeof entry !== \"number\" &&\n\t\t\ttypeof entry !== \"boolean\"\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (entry !== undefined) headers[key] = String(entry);\n\t}\n\treturn Object.freeze(headers);\n}\n\nfunction httpResponseResult(\n\trequest: HttpToolProviderDriverRequest,\n\tresponse: HttpToolProviderDriverResponse,\n\tconfig: HttpRuntimeConfig,\n): ToolProviderAdapterRunResult<HttpToolResult> {\n\tconst hasInlineBody = response.bodyText !== undefined;\n\tconst bodyText = response.bodyText ?? \"\";\n\tconst bodyBytes = response.bodyBytes ?? textBytes(bodyText);\n\tconst hasBodyRef = response.bodyRef !== undefined;\n\tif (bodyBytes > config.maxResponseBytes && !hasBodyRef) {\n\t\treturn {\n\t\t\tkind: \"failure\",\n\t\t\terror: issue(\"http-response-too-large\", \"HTTP response body exceeded maxResponseBytes.\"),\n\t\t\tretryable: false,\n\t\t\tmetadata: Object.freeze({ bodyBytes, maxResponseBytes: config.maxResponseBytes }),\n\t\t};\n\t}\n\tconst inline =\n\t\thasInlineBody &&\n\t\tbodyBytes <= config.maxResponseBytes &&\n\t\tbodyText.length <= config.maxInlineBodyChars;\n\tconst result: HttpToolResult = Object.freeze({\n\t\turl: response.url ?? request.url,\n\t\tmethod: request.method,\n\t\tstatus: response.status,\n\t\tstatusText: response.statusText ?? \"\",\n\t\theaders: filterResponseHeaders(response.headers, config.exposedResponseHeaders),\n\t\tbodyPreview: hasInlineBody ? previewText(bodyText, config.maxInlineBodyChars) : undefined,\n\t\t...(inline ? { bodyText } : {}),\n\t\tbodyBytes,\n\t\tbodyTruncated:\n\t\t\tbodyBytes > config.maxResponseBytes || bodyText.length > config.maxInlineBodyChars,\n\t\tdataMode: inline ? \"inline\" : hasBodyRef ? \"ref\" : \"summary\",\n\t\t...(response.bodyRef === undefined ? {} : { bodyRef: response.bodyRef }),\n\t});\n\treturn {\n\t\tkind: \"result\",\n\t\tresult: Object.freeze({\n\t\t\tkind: \"http-result\",\n\t\t\tvalue: result,\n\t\t\tsummary: `${request.method} ${response.status} ${response.url ?? request.url}`,\n\t\t\trefs: response.bodyRef === undefined ? undefined : Object.freeze([response.bodyRef]),\n\t\t\tartifacts: Object.freeze([httpBodyArtifact(result, response.bodyRef)]),\n\t\t}),\n\t\tissues:\n\t\t\t!inline && !hasBodyRef\n\t\t\t\t? Object.freeze([\n\t\t\t\t\t\tissue(\n\t\t\t\t\t\t\t\"http-response-body-summary-only\",\n\t\t\t\t\t\t\t\"HTTP response body was summarized without a durable body ref.\",\n\t\t\t\t\t\t\t\"warning\",\n\t\t\t\t\t\t),\n\t\t\t\t\t])\n\t\t\t\t: undefined,\n\t\tmetadata: Object.freeze({ status: response.status, bodyBytes }),\n\t};\n}\n\nfunction httpBodyArtifact(\n\tresult: HttpToolResult,\n\tbodyRef: SourceRef | undefined,\n): ExecutorArtifactMaterial<string> {\n\treturn Object.freeze({\n\t\tkind: \"http-response-body\",\n\t\tformat: \"text\",\n\t\tbyteLength: result.bodyBytes,\n\t\tdataMode: result.dataMode,\n\t\t...(result.bodyPreview === undefined ? {} : { summary: result.bodyPreview }),\n\t\t...(result.dataMode === \"inline\" && result.bodyText !== undefined\n\t\t\t? { value: result.bodyText }\n\t\t\t: {}),\n\t\t...(bodyRef === undefined ? {} : { ref: bodyRef, refs: Object.freeze([bodyRef]) }),\n\t\tsizeEvidence: Object.freeze([\n\t\t\tsizeEvidence(result.bodyBytes, \"adapter-measured-http-response-body\", undefined),\n\t\t]),\n\t} satisfies ExecutorArtifactMaterial<string>);\n}\n\nfunction httpErrorResult(\n\terror: unknown,\n\tconfig: HttpRuntimeConfig,\n): ToolProviderAdapterRunResult<HttpToolResult> {\n\tconst aborted = error instanceof Error && error.name === \"AbortError\";\n\tif (aborted) {\n\t\treturn { kind: \"timeout\", timeoutMs: config.timeoutMs, retryable: true };\n\t}\n\treturn {\n\t\tkind: \"failure\",\n\t\terror: issue(\"http-fetch-failed\", \"HTTP fetch failed before producing a response.\"),\n\t\tretryable: true,\n\t\tmetadata: Object.freeze({ errorType: error instanceof Error ? error.name : typeof error }),\n\t};\n}\n\nfunction defaultHttpToolProviderDriver(maxResponseBytes: number): HttpToolProviderDriver {\n\treturn Object.freeze({\n\t\tfetch(request: HttpToolProviderDriverRequest) {\n\t\t\tconst fetchImpl = globalThis.fetch;\n\t\t\tif (typeof fetchImpl !== \"function\") {\n\t\t\t\tthrow new Error(\"global fetch is unavailable\");\n\t\t\t}\n\t\t\treturn fetchImpl(request.url, {\n\t\t\t\tmethod: request.method,\n\t\t\t\theaders: request.headers,\n\t\t\t\tbody: request.body,\n\t\t\t\tredirect: \"manual\",\n\t\t\t\tsignal: request.signal,\n\t\t\t}).then((response) =>\n\t\t\t\treadResponseBody(response, maxResponseBytes).then((body) =>\n\t\t\t\t\tObject.freeze({\n\t\t\t\t\t\turl: response.url,\n\t\t\t\t\t\tstatus: response.status,\n\t\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t\t\theaders: responseHeaders(response.headers),\n\t\t\t\t\t\tbodyText: body.text,\n\t\t\t\t\t\tbodyBytes: body.bytes,\n\t\t\t\t\t} satisfies HttpToolProviderDriverResponse),\n\t\t\t\t),\n\t\t\t);\n\t\t},\n\t});\n}\n\nfunction readResponseBody(\n\tresponse: Response,\n\tmaxBytes: number,\n): Promise<{ readonly text: string; readonly bytes: number }> {\n\tconst body = response.body;\n\tif (body === null) return Promise.resolve({ text: \"\", bytes: 0 });\n\tconst reader = body.getReader();\n\tconst decoder = new TextDecoder();\n\tconst chunks: string[] = [];\n\tlet bytes = 0;\n\tfunction pump(): Promise<{ readonly text: string; readonly bytes: number }> {\n\t\treturn reader.read().then((next) => {\n\t\t\tif (next.done) {\n\t\t\t\tchunks.push(decoder.decode());\n\t\t\t\treturn { text: chunks.join(\"\"), bytes };\n\t\t\t}\n\t\t\tbytes += next.value.byteLength;\n\t\t\tif (bytes > maxBytes) {\n\t\t\t\treader.cancel().catch(() => {});\n\t\t\t\treturn { text: chunks.join(\"\"), bytes };\n\t\t\t}\n\t\t\tchunks.push(decoder.decode(next.value, { stream: true }));\n\t\t\treturn pump();\n\t\t});\n\t}\n\treturn pump();\n}\n\nfunction responseHeaders(headers: Headers): Readonly<Record<string, string>> {\n\tconst out: Record<string, string> = {};\n\theaders.forEach((value, key) => {\n\t\tout[key] = value;\n\t});\n\treturn Object.freeze(out);\n}\n\nfunction filterResponseHeaders(\n\theaders: Readonly<Record<string, string>> | undefined,\n\texposed: ReadonlySet<string>,\n): Readonly<Record<string, string>> | undefined {\n\tif (headers === undefined || exposed.size === 0) return undefined;\n\tconst out: Record<string, string> = {};\n\tfor (const [key, value] of Object.entries(headers)) {\n\t\tif (exposed.has(key.toLowerCase())) out[key] = value;\n\t}\n\treturn Object.keys(out).length === 0 ? undefined : Object.freeze(out);\n}\n\nfunction requestMatchesInput(\n\trequest: ToolProviderAdapterRunRequested,\n\tinput: ToolProviderAdapterInput,\n): boolean {\n\treturn (\n\t\trequest.adapterInputId === input.adapterInputId &&\n\t\trequest.requestId === input.requestId &&\n\t\trequest.operationId === input.operationId &&\n\t\t(request.routeId === undefined || request.routeId === input.routeId) &&\n\t\t(request.executorId === undefined || request.executorId === input.executorId) &&\n\t\t(request.profileId === undefined || request.profileId === input.profileId)\n\t);\n}\n\nfunction requestApproved(request: ToolProviderAdapterRunRequested): boolean {\n\tconst metadata = request.metadata;\n\treturn (\n\t\tisRecord(metadata) &&\n\t\t(metadata.approval === \"granted\" ||\n\t\t\tmetadata.approvalGranted === true ||\n\t\t\t(isAdmissionApprovedMetadata(metadata) && hasAdmissionSourceRef(request.sourceRefs)))\n\t);\n}\n\nfunction isAdmissionApprovedMetadata(metadata: Record<string, unknown>): boolean {\n\treturn (\n\t\ttypeof metadata.admissionId === \"string\" &&\n\t\tmetadata.admissionId.length > 0 &&\n\t\ttypeof metadata.proposalId === \"string\" &&\n\t\tmetadata.proposalId.length > 0 &&\n\t\ttypeof metadata.approvedFromRunId === \"string\" &&\n\t\tmetadata.approvedFromRunId.length > 0\n\t);\n}\n\nfunction hasAdmissionSourceRef(sourceRefs: readonly SourceRef[] | undefined): boolean {\n\treturn (sourceRefs ?? []).some(\n\t\t(sourceRef) =>\n\t\t\tsourceRef.kind === \"tool-provider-run-admission\" ||\n\t\t\tsourceRef.kind === \"tool-provider-run-admission-decision\",\n\t);\n}\n\nfunction defaultEvidenceRefs(input: ToolProviderAdapterInput): readonly SourceRef[] {\n\treturn Object.freeze([\n\t\t{ kind: \"tool-provider-adapter-input\", id: input.adapterInputId },\n\t\t...(input.sourceRefs ?? []),\n\t]);\n}\n\nfunction outcomeIssues(outcome: ExecutorOutcome): readonly DataIssue[] {\n\tif (outcome.kind === \"failure\") return Object.freeze([outcome.error, ...(outcome.issues ?? [])]);\n\treturn outcome.issues ?? [];\n}\n\nfunction agentStatusForOutcome(outcome: ExecutorOutcome): AgentRequestStatusChanged[\"status\"] {\n\tswitch (outcome.kind) {\n\t\tcase \"result\":\n\t\t\treturn \"completed\";\n\t\tcase \"failure\":\n\t\t\treturn \"failed\";\n\t\tcase \"blocked\":\n\t\t\treturn \"blocked\";\n\t\tcase \"canceled\":\n\t\t\treturn \"canceled\";\n\t\tcase \"timeout\":\n\t\t\treturn \"timeout\";\n\t}\n}\n\nfunction normalizeMethods(methods: readonly string[]): readonly string[] {\n\treturn Object.freeze(\n\t\tmethods\n\t\t\t.map((method) => normalizeMethod(method))\n\t\t\t.filter((method): method is string => method !== undefined),\n\t);\n}\n\nfunction normalizeMethod(method: unknown): string | undefined {\n\treturn typeof method === \"string\" && method.length > 0 ? method.toUpperCase() : undefined;\n}\n\nfunction normalizeHeaderNames(headers: readonly string[]): readonly string[] {\n\treturn Object.freeze(\n\t\theaders\n\t\t\t.filter((header) => typeof header === \"string\" && header.length > 0)\n\t\t\t.map((header) => header.toLowerCase()),\n\t);\n}\n\nfunction textBytes(text: string): number {\n\treturn new TextEncoder().encode(text).byteLength;\n}\n\nfunction previewText(text: string, maxChars: number): string | undefined {\n\tif (text.length === 0) return undefined;\n\treturn text.length <= maxChars ? text : text.slice(0, maxChars);\n}\n\nfunction blocked<T>(\n\tinput: ToolProviderAdapterInput,\n\tcode: string,\n\tmessage: string,\n): ToolProviderAdapterRunResult<T> {\n\treturn Object.freeze({\n\t\tkind: \"blocked\",\n\t\tneeds: Object.freeze([\n\t\t\tObject.freeze({\n\t\t\t\tkind: code,\n\t\t\t\tmessage,\n\t\t\t\trefs:\n\t\t\t\t\tinput.providerId === undefined\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: Object.freeze([{ kind: \"tool-provider\", id: input.providerId }]),\n\t\t\t}),\n\t\t]),\n\t\tissues: Object.freeze([issue(code, message, \"error\")]),\n\t\tevidenceRefs: input.sourceRefs,\n\t} satisfies ToolProviderAdapterRunResult<T>);\n}\n\nfunction failure<T>(\n\tinput: ToolProviderAdapterInput,\n\tcode: string,\n\tmessage: string,\n): ToolProviderAdapterRunResult<T> {\n\treturn Object.freeze({\n\t\tkind: \"failure\",\n\t\terror: issue(code, message, \"error\"),\n\t\tretryable: false,\n\t\tevidenceRefs: input.sourceRefs,\n\t} satisfies ToolProviderAdapterRunResult<T>);\n}\n\nfunction issue(\n\tcode: string,\n\tmessage: string,\n\tseverity: DataIssue[\"severity\"] = \"error\",\n\tdetails?: unknown,\n): DataIssue {\n\treturn Object.freeze({\n\t\tkind: \"issue\",\n\t\tcode,\n\t\tmessage,\n\t\tseverity,\n\t\t...(details === undefined ? {} : { details }),\n\t} satisfies DataIssue);\n}\n\nfunction sizeEvidence(\n\tquantity: number,\n\tmeasurementSource: string,\n\tsourceRefs: readonly SourceRef[] | undefined,\n): SizeCapacityEvidence {\n\treturn Object.freeze({\n\t\tkind: \"size-capacity-evidence\",\n\t\tunit: \"bytes\",\n\t\tquantity,\n\t\tmeasurementSource,\n\t\t...(sourceRefs === undefined ? {} : { sourceRefs }),\n\t} satisfies SizeCapacityEvidence);\n}\n\nfunction nonNegativeFinite(value: number | undefined, fallback: number): number {\n\treturn typeof value === \"number\" && Number.isFinite(value) && value >= 0 ? value : fallback;\n}\n\nfunction positiveFinite(value: number | undefined, fallback: number): number {\n\treturn typeof value === \"number\" && Number.isFinite(value) && value > 0 ? value : fallback;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction stringArray(value: unknown): readonly string[] | undefined {\n\tif (!Array.isArray(value)) return undefined;\n\tconst entries = Array.from(value);\n\tif (!entries.every((entry) => typeof entry === \"string\")) return undefined;\n\treturn Object.freeze(entries);\n}\n\nfunction arraysEqual(a: readonly string[], b: readonly string[]): boolean {\n\treturn a.length === b.length && a.every((value, index) => value === b[index]);\n}\n\nfunction normalizeAllowedCommands(commands: readonly ProcessToolAllowedCommand[]): {\n\treadonly commands: ReadonlyMap<string, ProcessToolAllowedCommand>;\n\treadonly duplicates: ReadonlySet<string>;\n\treadonly invalids: ReadonlySet<string>;\n} {\n\tconst out = new Map<string, ProcessToolAllowedCommand>();\n\tconst duplicates = new Set<string>();\n\tconst invalids = new Set<string>();\n\tfor (const command of commands) {\n\t\tif (typeof command.command !== \"string\" || command.command.length === 0) {\n\t\t\tinvalids.add(\"<invalid-command>\");\n\t\t\tcontinue;\n\t\t}\n\t\tconst frozen = freezeAllowedCommand(command);\n\t\tif (frozen === undefined) {\n\t\t\tout.delete(command.command);\n\t\t\tinvalids.add(command.command);\n\t\t\tcontinue;\n\t\t}\n\t\tif (out.has(command.command)) {\n\t\t\tout.delete(command.command);\n\t\t\tduplicates.add(command.command);\n\t\t\tcontinue;\n\t\t}\n\t\tif (duplicates.has(command.command) || invalids.has(command.command)) continue;\n\t\tout.set(command.command, frozen);\n\t}\n\treturn { commands: out, duplicates, invalids };\n}\n\nfunction freezeAllowedCommand(\n\tcommand: ProcessToolAllowedCommand,\n): ProcessToolAllowedCommand | undefined {\n\tconst fixedArgs = command.fixedArgs === undefined ? undefined : stringArray(command.fixedArgs);\n\tif (command.fixedArgs !== undefined && fixedArgs === undefined) return undefined;\n\tconst allowArgs = Array.isArray(command.allowArgs)\n\t\t? stringArray(command.allowArgs)\n\t\t: command.allowArgs;\n\tif (Array.isArray(command.allowArgs) && allowArgs === undefined) return undefined;\n\treturn Object.freeze({\n\t\tcommand: command.command,\n\t\t...(command.executable === undefined ? {} : { executable: command.executable }),\n\t\t...(fixedArgs === undefined ? {} : { fixedArgs }),\n\t\t...(allowArgs === undefined ? {} : { allowArgs }),\n\t\t...(command.cwd === undefined ? {} : { cwd: command.cwd }),\n\t});\n}\n\nfunction realpath(path: string): string | undefined {\n\ttry {\n\t\treturn realpathSync.native(path);\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nfunction isPathInside(path: string, root: string): boolean {\n\tconst normalizedPath = resolve(path);\n\tconst normalizedRoot = resolve(root);\n\tconst rel = relative(normalizedRoot, normalizedPath);\n\treturn rel === \"\" || (rel.length > 0 && !rel.startsWith(\"..\") && !isAbsolute(rel));\n}\n\nfunction isTimeoutError(error: Error): boolean {\n\treturn (error as Error & { readonly code?: unknown }).code === \"ETIMEDOUT\";\n}\n\nfunction isOutputLimitError(error: Error | undefined): boolean {\n\treturn (error as (Error & { readonly code?: unknown }) | undefined)?.code === \"ENOBUFS\";\n}\n\nfunction preview(buffer: Buffer, maxChars: number): string | undefined {\n\tif (buffer.length === 0) return undefined;\n\tconst text = buffer.toString(\"utf8\");\n\treturn text.length <= maxChars ? text : text.slice(0, maxChars);\n}\n"],"mappings":"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","names":[]}