@the-open-engine/zeroshot 6.30.2 → 6.31.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/cli/index.js +1 -2
  2. package/lib/agent-cli-provider/adapters/acp.d.ts.map +1 -1
  3. package/lib/agent-cli-provider/adapters/acp.js +7 -11
  4. package/lib/agent-cli-provider/adapters/acp.js.map +1 -1
  5. package/lib/agent-cli-provider/adapters/omp-policy.d.ts +4 -0
  6. package/lib/agent-cli-provider/adapters/omp-policy.d.ts.map +1 -0
  7. package/lib/agent-cli-provider/adapters/omp-policy.js +47 -0
  8. package/lib/agent-cli-provider/adapters/omp-policy.js.map +1 -0
  9. package/lib/agent-cli-provider/adapters/omp.d.ts.map +1 -1
  10. package/lib/agent-cli-provider/adapters/omp.js +8 -158
  11. package/lib/agent-cli-provider/adapters/omp.js.map +1 -1
  12. package/lib/agent-cli-provider/adapters/pi.d.ts.map +1 -1
  13. package/lib/agent-cli-provider/adapters/pi.js +12 -124
  14. package/lib/agent-cli-provider/adapters/pi.js.map +1 -1
  15. package/lib/agent-cli-provider/assistant-stream.d.ts +27 -0
  16. package/lib/agent-cli-provider/assistant-stream.d.ts.map +1 -0
  17. package/lib/agent-cli-provider/assistant-stream.js +119 -0
  18. package/lib/agent-cli-provider/assistant-stream.js.map +1 -0
  19. package/lib/agent-cli-provider/contract-actions.d.ts.map +1 -1
  20. package/lib/agent-cli-provider/contract-actions.js +42 -1
  21. package/lib/agent-cli-provider/contract-actions.js.map +1 -1
  22. package/lib/agent-cli-provider/contract-invoke.d.ts.map +1 -1
  23. package/lib/agent-cli-provider/contract-invoke.js +68 -38
  24. package/lib/agent-cli-provider/contract-invoke.js.map +1 -1
  25. package/lib/agent-cli-provider/contract-support.d.ts +5 -6
  26. package/lib/agent-cli-provider/contract-support.d.ts.map +1 -1
  27. package/lib/agent-cli-provider/contract-support.js +99 -6
  28. package/lib/agent-cli-provider/contract-support.js.map +1 -1
  29. package/lib/agent-cli-provider/index.d.ts +8 -6
  30. package/lib/agent-cli-provider/index.d.ts.map +1 -1
  31. package/lib/agent-cli-provider/index.js +34 -10
  32. package/lib/agent-cli-provider/index.js.map +1 -1
  33. package/lib/agent-cli-provider/omp/auth-policy.d.ts +31 -0
  34. package/lib/agent-cli-provider/omp/auth-policy.d.ts.map +1 -0
  35. package/lib/agent-cli-provider/omp/auth-policy.js +98 -0
  36. package/lib/agent-cli-provider/omp/auth-policy.js.map +1 -0
  37. package/lib/agent-cli-provider/{omp-release.d.ts → omp/release.d.ts} +1 -1
  38. package/lib/agent-cli-provider/omp/release.d.ts.map +1 -0
  39. package/lib/agent-cli-provider/{omp-release.js → omp/release.js} +1 -1
  40. package/lib/agent-cli-provider/omp/release.js.map +1 -0
  41. package/lib/agent-cli-provider/{omp-rpc-bounds.d.ts → omp/rpc-bounds.d.ts} +1 -1
  42. package/lib/agent-cli-provider/omp/rpc-bounds.d.ts.map +1 -0
  43. package/lib/agent-cli-provider/{omp-rpc-bounds.js → omp/rpc-bounds.js} +1 -1
  44. package/lib/agent-cli-provider/omp/rpc-bounds.js.map +1 -0
  45. package/lib/agent-cli-provider/omp/rpc-driver-channel.d.ts +19 -0
  46. package/lib/agent-cli-provider/omp/rpc-driver-channel.d.ts.map +1 -0
  47. package/lib/agent-cli-provider/omp/rpc-driver-channel.js +109 -0
  48. package/lib/agent-cli-provider/omp/rpc-driver-channel.js.map +1 -0
  49. package/lib/agent-cli-provider/omp/rpc-driver-dispatch.d.ts +27 -0
  50. package/lib/agent-cli-provider/omp/rpc-driver-dispatch.d.ts.map +1 -0
  51. package/lib/agent-cli-provider/omp/rpc-driver-dispatch.js +135 -0
  52. package/lib/agent-cli-provider/omp/rpc-driver-dispatch.js.map +1 -0
  53. package/lib/agent-cli-provider/omp/rpc-driver-runner.d.ts +3 -0
  54. package/lib/agent-cli-provider/omp/rpc-driver-runner.d.ts.map +1 -0
  55. package/lib/agent-cli-provider/omp/rpc-driver-runner.js +205 -0
  56. package/lib/agent-cli-provider/omp/rpc-driver-runner.js.map +1 -0
  57. package/lib/agent-cli-provider/omp/rpc-driver-state.d.ts +80 -0
  58. package/lib/agent-cli-provider/omp/rpc-driver-state.d.ts.map +1 -0
  59. package/lib/agent-cli-provider/omp/rpc-driver-state.js +86 -0
  60. package/lib/agent-cli-provider/omp/rpc-driver-state.js.map +1 -0
  61. package/lib/agent-cli-provider/omp/rpc-driver.d.ts +3 -0
  62. package/lib/agent-cli-provider/omp/rpc-driver.d.ts.map +1 -0
  63. package/lib/agent-cli-provider/omp/rpc-driver.js +6 -0
  64. package/lib/agent-cli-provider/omp/rpc-driver.js.map +1 -0
  65. package/lib/agent-cli-provider/omp/rpc-event-lines.d.ts +8 -0
  66. package/lib/agent-cli-provider/omp/rpc-event-lines.d.ts.map +1 -0
  67. package/lib/agent-cli-provider/omp/rpc-event-lines.js +59 -0
  68. package/lib/agent-cli-provider/omp/rpc-event-lines.js.map +1 -0
  69. package/lib/agent-cli-provider/omp/rpc-events.d.ts +16 -0
  70. package/lib/agent-cli-provider/omp/rpc-events.d.ts.map +1 -0
  71. package/lib/agent-cli-provider/omp/rpc-events.js +115 -0
  72. package/lib/agent-cli-provider/omp/rpc-events.js.map +1 -0
  73. package/lib/agent-cli-provider/{omp-rpc-protocol.d.ts → omp/rpc-protocol-contract.d.ts} +1 -13
  74. package/lib/agent-cli-provider/omp/rpc-protocol-contract.d.ts.map +1 -0
  75. package/lib/agent-cli-provider/omp/rpc-protocol-contract.js +54 -0
  76. package/lib/agent-cli-provider/omp/rpc-protocol-contract.js.map +1 -0
  77. package/lib/agent-cli-provider/omp/rpc-protocol.d.ts +15 -0
  78. package/lib/agent-cli-provider/omp/rpc-protocol.d.ts.map +1 -0
  79. package/lib/agent-cli-provider/omp/rpc-protocol.js +208 -0
  80. package/lib/agent-cli-provider/omp/rpc-protocol.js.map +1 -0
  81. package/lib/agent-cli-provider/{omp-rpc-session.d.ts → omp/rpc-session.d.ts} +1 -1
  82. package/lib/agent-cli-provider/omp/rpc-session.d.ts.map +1 -0
  83. package/lib/agent-cli-provider/{omp-rpc-session.js → omp/rpc-session.js} +1 -1
  84. package/lib/agent-cli-provider/omp/rpc-session.js.map +1 -0
  85. package/lib/agent-cli-provider/omp/sdk-contract.d.ts +34 -0
  86. package/lib/agent-cli-provider/omp/sdk-contract.d.ts.map +1 -0
  87. package/lib/agent-cli-provider/omp/sdk-contract.js +81 -0
  88. package/lib/agent-cli-provider/omp/sdk-contract.js.map +1 -0
  89. package/lib/agent-cli-provider/omp/sdk-process-credentials.d.ts +6 -0
  90. package/lib/agent-cli-provider/omp/sdk-process-credentials.d.ts.map +1 -0
  91. package/lib/agent-cli-provider/omp/sdk-process-credentials.js +44 -0
  92. package/lib/agent-cli-provider/omp/sdk-process-credentials.js.map +1 -0
  93. package/lib/agent-cli-provider/omp/sdk-process-error.d.ts +5 -0
  94. package/lib/agent-cli-provider/omp/sdk-process-error.d.ts.map +1 -0
  95. package/lib/agent-cli-provider/omp/sdk-process-error.js +13 -0
  96. package/lib/agent-cli-provider/omp/sdk-process-error.js.map +1 -0
  97. package/lib/agent-cli-provider/omp/sdk-process-io.d.ts +18 -0
  98. package/lib/agent-cli-provider/omp/sdk-process-io.d.ts.map +1 -0
  99. package/lib/agent-cli-provider/omp/sdk-process-io.js +80 -0
  100. package/lib/agent-cli-provider/omp/sdk-process-io.js.map +1 -0
  101. package/lib/agent-cli-provider/omp/sdk-process-private-runtime.d.ts +51 -0
  102. package/lib/agent-cli-provider/omp/sdk-process-private-runtime.d.ts.map +1 -0
  103. package/lib/agent-cli-provider/omp/sdk-process-private-runtime.js +154 -0
  104. package/lib/agent-cli-provider/omp/sdk-process-private-runtime.js.map +1 -0
  105. package/lib/agent-cli-provider/omp/sdk-process-result.d.ts +26 -0
  106. package/lib/agent-cli-provider/omp/sdk-process-result.d.ts.map +1 -0
  107. package/lib/agent-cli-provider/omp/sdk-process-result.js +117 -0
  108. package/lib/agent-cli-provider/omp/sdk-process-result.js.map +1 -0
  109. package/lib/agent-cli-provider/omp/sdk-process-runner.d.ts +7 -0
  110. package/lib/agent-cli-provider/omp/sdk-process-runner.d.ts.map +1 -0
  111. package/lib/agent-cli-provider/omp/sdk-process-runner.js +204 -0
  112. package/lib/agent-cli-provider/omp/sdk-process-runner.js.map +1 -0
  113. package/lib/agent-cli-provider/omp/sdk-protocol-collector.d.ts +3 -0
  114. package/lib/agent-cli-provider/omp/sdk-protocol-collector.d.ts.map +1 -0
  115. package/lib/agent-cli-provider/omp/sdk-protocol-collector.js +145 -0
  116. package/lib/agent-cli-provider/omp/sdk-protocol-collector.js.map +1 -0
  117. package/lib/agent-cli-provider/omp/sdk-protocol-frame.d.ts +4 -0
  118. package/lib/agent-cli-provider/omp/sdk-protocol-frame.d.ts.map +1 -0
  119. package/lib/agent-cli-provider/omp/sdk-protocol-frame.js +183 -0
  120. package/lib/agent-cli-provider/omp/sdk-protocol-frame.js.map +1 -0
  121. package/lib/agent-cli-provider/omp/sdk-protocol-request.d.ts +8 -0
  122. package/lib/agent-cli-provider/omp/sdk-protocol-request.d.ts.map +1 -0
  123. package/lib/agent-cli-provider/omp/sdk-protocol-request.js +170 -0
  124. package/lib/agent-cli-provider/omp/sdk-protocol-request.js.map +1 -0
  125. package/lib/agent-cli-provider/omp/sdk-protocol-result.d.ts +5 -0
  126. package/lib/agent-cli-provider/omp/sdk-protocol-result.d.ts.map +1 -0
  127. package/lib/agent-cli-provider/omp/sdk-protocol-result.js +74 -0
  128. package/lib/agent-cli-provider/omp/sdk-protocol-result.js.map +1 -0
  129. package/lib/agent-cli-provider/omp/sdk-protocol-types.d.ts +94 -0
  130. package/lib/agent-cli-provider/omp/sdk-protocol-types.d.ts.map +1 -0
  131. package/lib/agent-cli-provider/omp/sdk-protocol-types.js +54 -0
  132. package/lib/agent-cli-provider/omp/sdk-protocol-types.js.map +1 -0
  133. package/lib/agent-cli-provider/omp/sdk-protocol-value.d.ts +18 -0
  134. package/lib/agent-cli-provider/omp/sdk-protocol-value.d.ts.map +1 -0
  135. package/lib/agent-cli-provider/omp/sdk-protocol-value.js +229 -0
  136. package/lib/agent-cli-provider/omp/sdk-protocol-value.js.map +1 -0
  137. package/lib/agent-cli-provider/omp/sdk-protocol.d.ts +7 -0
  138. package/lib/agent-cli-provider/omp/sdk-protocol.d.ts.map +1 -0
  139. package/lib/agent-cli-provider/omp/sdk-protocol.js +28 -0
  140. package/lib/agent-cli-provider/omp/sdk-protocol.js.map +1 -0
  141. package/lib/agent-cli-provider/omp/sdk-runtime.d.ts +29 -0
  142. package/lib/agent-cli-provider/omp/sdk-runtime.d.ts.map +1 -0
  143. package/lib/agent-cli-provider/omp/sdk-runtime.js +110 -0
  144. package/lib/agent-cli-provider/omp/sdk-runtime.js.map +1 -0
  145. package/lib/agent-cli-provider/omp/sdk-settings-auth.d.ts +3 -0
  146. package/lib/agent-cli-provider/omp/sdk-settings-auth.d.ts.map +1 -0
  147. package/lib/agent-cli-provider/omp/sdk-settings-auth.js +86 -0
  148. package/lib/agent-cli-provider/omp/sdk-settings-auth.js.map +1 -0
  149. package/lib/agent-cli-provider/omp/sdk-settings-constants.d.ts +26 -0
  150. package/lib/agent-cli-provider/omp/sdk-settings-constants.d.ts.map +1 -0
  151. package/lib/agent-cli-provider/omp/sdk-settings-constants.js +148 -0
  152. package/lib/agent-cli-provider/omp/sdk-settings-constants.js.map +1 -0
  153. package/lib/agent-cli-provider/omp/sdk-settings-model-fields.d.ts +5 -0
  154. package/lib/agent-cli-provider/omp/sdk-settings-model-fields.d.ts.map +1 -0
  155. package/lib/agent-cli-provider/omp/sdk-settings-model-fields.js +198 -0
  156. package/lib/agent-cli-provider/omp/sdk-settings-model-fields.js.map +1 -0
  157. package/lib/agent-cli-provider/omp/sdk-settings-model.d.ts +4 -0
  158. package/lib/agent-cli-provider/omp/sdk-settings-model.d.ts.map +1 -0
  159. package/lib/agent-cli-provider/omp/sdk-settings-model.js +163 -0
  160. package/lib/agent-cli-provider/omp/sdk-settings-model.js.map +1 -0
  161. package/lib/agent-cli-provider/omp/sdk-settings-normalize.d.ts +18 -0
  162. package/lib/agent-cli-provider/omp/sdk-settings-normalize.d.ts.map +1 -0
  163. package/lib/agent-cli-provider/omp/sdk-settings-normalize.js +148 -0
  164. package/lib/agent-cli-provider/omp/sdk-settings-normalize.js.map +1 -0
  165. package/lib/agent-cli-provider/omp/sdk-settings-selector.d.ts +3 -0
  166. package/lib/agent-cli-provider/omp/sdk-settings-selector.d.ts.map +1 -0
  167. package/lib/agent-cli-provider/omp/sdk-settings-selector.js +22 -0
  168. package/lib/agent-cli-provider/omp/sdk-settings-selector.js.map +1 -0
  169. package/lib/agent-cli-provider/omp/sdk-settings-types.d.ts +68 -0
  170. package/lib/agent-cli-provider/omp/sdk-settings-types.d.ts.map +1 -0
  171. package/lib/agent-cli-provider/omp/sdk-settings-types.js +19 -0
  172. package/lib/agent-cli-provider/omp/sdk-settings-types.js.map +1 -0
  173. package/lib/agent-cli-provider/omp/sdk-settings-values.d.ts +14 -0
  174. package/lib/agent-cli-provider/omp/sdk-settings-values.d.ts.map +1 -0
  175. package/lib/agent-cli-provider/omp/sdk-settings-values.js +112 -0
  176. package/lib/agent-cli-provider/omp/sdk-settings-values.js.map +1 -0
  177. package/lib/agent-cli-provider/omp/sdk-settings.d.ts +5 -0
  178. package/lib/agent-cli-provider/omp/sdk-settings.d.ts.map +1 -0
  179. package/lib/agent-cli-provider/omp/sdk-settings.js +16 -0
  180. package/lib/agent-cli-provider/omp/sdk-settings.js.map +1 -0
  181. package/lib/agent-cli-provider/omp/sdk-sidecar-context.d.ts +11 -0
  182. package/lib/agent-cli-provider/omp/sdk-sidecar-context.d.ts.map +1 -0
  183. package/lib/agent-cli-provider/omp/sdk-sidecar-context.js +171 -0
  184. package/lib/agent-cli-provider/omp/sdk-sidecar-context.js.map +1 -0
  185. package/lib/agent-cli-provider/omp/sdk-sidecar-credentials.d.ts +5 -0
  186. package/lib/agent-cli-provider/omp/sdk-sidecar-credentials.d.ts.map +1 -0
  187. package/lib/agent-cli-provider/omp/sdk-sidecar-credentials.js +94 -0
  188. package/lib/agent-cli-provider/omp/sdk-sidecar-credentials.js.map +1 -0
  189. package/lib/agent-cli-provider/omp/sdk-sidecar-execute.d.ts +5 -0
  190. package/lib/agent-cli-provider/omp/sdk-sidecar-execute.d.ts.map +1 -0
  191. package/lib/agent-cli-provider/omp/sdk-sidecar-execute.js +175 -0
  192. package/lib/agent-cli-provider/omp/sdk-sidecar-execute.js.map +1 -0
  193. package/lib/agent-cli-provider/omp/sdk-sidecar-output.d.ts +5 -0
  194. package/lib/agent-cli-provider/omp/sdk-sidecar-output.d.ts.map +1 -0
  195. package/lib/agent-cli-provider/omp/sdk-sidecar-output.js +216 -0
  196. package/lib/agent-cli-provider/omp/sdk-sidecar-output.js.map +1 -0
  197. package/lib/agent-cli-provider/omp/sdk-sidecar-runtime.d.ts +11 -0
  198. package/lib/agent-cli-provider/omp/sdk-sidecar-runtime.d.ts.map +1 -0
  199. package/lib/agent-cli-provider/omp/sdk-sidecar-runtime.js +265 -0
  200. package/lib/agent-cli-provider/omp/sdk-sidecar-runtime.js.map +1 -0
  201. package/lib/agent-cli-provider/omp/sdk-sidecar-types.d.ts +148 -0
  202. package/lib/agent-cli-provider/omp/sdk-sidecar-types.d.ts.map +1 -0
  203. package/lib/agent-cli-provider/omp/sdk-sidecar-types.js +84 -0
  204. package/lib/agent-cli-provider/omp/sdk-sidecar-types.js.map +1 -0
  205. package/lib/agent-cli-provider/omp/sdk-sidecar.d.ts +4 -0
  206. package/lib/agent-cli-provider/omp/sdk-sidecar.d.ts.map +1 -0
  207. package/lib/agent-cli-provider/omp/sdk-sidecar.js +9 -0
  208. package/lib/agent-cli-provider/omp/sdk-sidecar.js.map +1 -0
  209. package/lib/agent-cli-provider/process-runner.d.ts +1 -0
  210. package/lib/agent-cli-provider/process-runner.d.ts.map +1 -1
  211. package/lib/agent-cli-provider/process-runner.js +19 -6
  212. package/lib/agent-cli-provider/process-runner.js.map +1 -1
  213. package/lib/agent-cli-provider/provider-registry.d.ts +18 -4
  214. package/lib/agent-cli-provider/provider-registry.d.ts.map +1 -1
  215. package/lib/agent-cli-provider/provider-registry.js +21 -7
  216. package/lib/agent-cli-provider/provider-registry.js.map +1 -1
  217. package/lib/agent-cli-provider/single-agent-runtime.d.ts +10 -1
  218. package/lib/agent-cli-provider/single-agent-runtime.d.ts.map +1 -1
  219. package/lib/agent-cli-provider/single-agent-runtime.js +378 -11
  220. package/lib/agent-cli-provider/single-agent-runtime.js.map +1 -1
  221. package/lib/agent-cli-provider/types.d.ts +110 -2
  222. package/lib/agent-cli-provider/types.d.ts.map +1 -1
  223. package/lib/agent-cli-provider/types.js.map +1 -1
  224. package/npm-shrinkwrap.json +18116 -0
  225. package/package.json +16 -3
  226. package/scripts/omp/bun-ffi.d.ts +28 -0
  227. package/scripts/omp/host-supervisor-cleanup.ts +100 -0
  228. package/scripts/omp/host-supervisor-launch.ts +38 -0
  229. package/scripts/omp/host-supervisor-native.ts +181 -0
  230. package/scripts/omp/host-supervisor-tracker.ts +258 -0
  231. package/scripts/omp/host-supervisor.ts +298 -0
  232. package/scripts/omp/promise-gate.ts +13 -0
  233. package/scripts/omp/runtime-identities.js +283 -0
  234. package/scripts/omp/runtime-lock.js +232 -0
  235. package/scripts/omp/runtime-release.js +105 -0
  236. package/scripts/omp/runtime.js +33 -0
  237. package/scripts/omp/sidecar.ts +124 -0
  238. package/scripts/opcore-introduced-check.js +5 -0
  239. package/scripts/release-preflight.js +19 -0
  240. package/src/agent-cli-provider/adapters/acp.ts +18 -17
  241. package/src/agent-cli-provider/adapters/omp-policy.ts +45 -0
  242. package/src/agent-cli-provider/adapters/omp.ts +9 -155
  243. package/src/agent-cli-provider/adapters/pi.ts +15 -145
  244. package/src/agent-cli-provider/assistant-stream.ts +155 -0
  245. package/src/agent-cli-provider/contract-actions.ts +14 -2
  246. package/src/agent-cli-provider/contract-invoke.ts +77 -40
  247. package/src/agent-cli-provider/contract-support.ts +83 -12
  248. package/src/agent-cli-provider/index.ts +60 -5
  249. package/src/agent-cli-provider/omp/auth-policy.ts +126 -0
  250. package/src/agent-cli-provider/omp/rpc-driver-channel.ts +144 -0
  251. package/src/agent-cli-provider/omp/rpc-driver-dispatch.ts +177 -0
  252. package/src/agent-cli-provider/omp/rpc-driver-runner.ts +199 -0
  253. package/src/agent-cli-provider/omp/rpc-driver-state.ts +165 -0
  254. package/src/agent-cli-provider/omp/rpc-driver.ts +8 -0
  255. package/src/agent-cli-provider/omp/rpc-event-lines.ts +58 -0
  256. package/src/agent-cli-provider/omp/rpc-events.ts +154 -0
  257. package/src/agent-cli-provider/omp/rpc-protocol-contract.ts +77 -0
  258. package/src/agent-cli-provider/{omp-rpc-protocol.ts → omp/rpc-protocol.ts} +9 -111
  259. package/src/agent-cli-provider/omp/sdk-contract.ts +123 -0
  260. package/src/agent-cli-provider/omp/sdk-process-credentials.ts +55 -0
  261. package/src/agent-cli-provider/omp/sdk-process-error.ts +9 -0
  262. package/src/agent-cli-provider/omp/sdk-process-io.ts +92 -0
  263. package/src/agent-cli-provider/omp/sdk-process-private-runtime.ts +249 -0
  264. package/src/agent-cli-provider/omp/sdk-process-result.ts +181 -0
  265. package/src/agent-cli-provider/omp/sdk-process-runner.ts +281 -0
  266. package/src/agent-cli-provider/omp/sdk-protocol-collector.ts +140 -0
  267. package/src/agent-cli-provider/omp/sdk-protocol-frame.ts +260 -0
  268. package/src/agent-cli-provider/omp/sdk-protocol-request.ts +181 -0
  269. package/src/agent-cli-provider/omp/sdk-protocol-result.ts +80 -0
  270. package/src/agent-cli-provider/omp/sdk-protocol-types.ts +156 -0
  271. package/src/agent-cli-provider/omp/sdk-protocol-value.ts +234 -0
  272. package/src/agent-cli-provider/omp/sdk-protocol.ts +46 -0
  273. package/src/agent-cli-provider/omp/sdk-runtime.ts +159 -0
  274. package/src/agent-cli-provider/omp/sdk-settings-auth.ts +78 -0
  275. package/src/agent-cli-provider/omp/sdk-settings-constants.ts +147 -0
  276. package/src/agent-cli-provider/omp/sdk-settings-model-fields.ts +233 -0
  277. package/src/agent-cli-provider/omp/sdk-settings-model.ts +238 -0
  278. package/src/agent-cli-provider/omp/sdk-settings-normalize.ts +242 -0
  279. package/src/agent-cli-provider/omp/sdk-settings-selector.ts +28 -0
  280. package/src/agent-cli-provider/omp/sdk-settings-types.ts +88 -0
  281. package/src/agent-cli-provider/omp/sdk-settings-values.ts +118 -0
  282. package/src/agent-cli-provider/omp/sdk-settings.ts +33 -0
  283. package/src/agent-cli-provider/omp/sdk-sidecar-context.ts +199 -0
  284. package/src/agent-cli-provider/omp/sdk-sidecar-credentials.ts +100 -0
  285. package/src/agent-cli-provider/omp/sdk-sidecar-execute.ts +201 -0
  286. package/src/agent-cli-provider/omp/sdk-sidecar-output.ts +235 -0
  287. package/src/agent-cli-provider/omp/sdk-sidecar-runtime.ts +244 -0
  288. package/src/agent-cli-provider/omp/sdk-sidecar-types.ts +173 -0
  289. package/src/agent-cli-provider/omp/sdk-sidecar.ts +3 -0
  290. package/src/agent-cli-provider/process-runner.ts +22 -8
  291. package/src/agent-cli-provider/provider-registry.ts +29 -10
  292. package/src/agent-cli-provider/single-agent-runtime.ts +444 -18
  293. package/src/agent-cli-provider/types.ts +131 -3
  294. package/src/command-cleanup-ownership.js +15 -0
  295. package/task-lib/omp-sdk-runtime.js +8 -0
  296. package/task-lib/runner.js +121 -40
  297. package/task-lib/sdk-watcher.js +154 -0
  298. package/cli/lib/first-run.js +0 -223
  299. package/lib/agent-cli-provider/omp-release.d.ts.map +0 -1
  300. package/lib/agent-cli-provider/omp-release.js.map +0 -1
  301. package/lib/agent-cli-provider/omp-rpc-bounds.d.ts.map +0 -1
  302. package/lib/agent-cli-provider/omp-rpc-bounds.js.map +0 -1
  303. package/lib/agent-cli-provider/omp-rpc-driver.d.ts +0 -40
  304. package/lib/agent-cli-provider/omp-rpc-driver.d.ts.map +0 -1
  305. package/lib/agent-cli-provider/omp-rpc-driver.js +0 -519
  306. package/lib/agent-cli-provider/omp-rpc-driver.js.map +0 -1
  307. package/lib/agent-cli-provider/omp-rpc-events.d.ts +0 -28
  308. package/lib/agent-cli-provider/omp-rpc-events.d.ts.map +0 -1
  309. package/lib/agent-cli-provider/omp-rpc-events.js +0 -264
  310. package/lib/agent-cli-provider/omp-rpc-events.js.map +0 -1
  311. package/lib/agent-cli-provider/omp-rpc-protocol.d.ts.map +0 -1
  312. package/lib/agent-cli-provider/omp-rpc-protocol.js +0 -272
  313. package/lib/agent-cli-provider/omp-rpc-protocol.js.map +0 -1
  314. package/lib/agent-cli-provider/omp-rpc-session.d.ts.map +0 -1
  315. package/lib/agent-cli-provider/omp-rpc-session.js.map +0 -1
  316. package/src/agent-cli-provider/omp-rpc-driver.ts +0 -639
  317. package/src/agent-cli-provider/omp-rpc-events.ts +0 -318
  318. /package/src/agent-cli-provider/{omp-release.ts → omp/release.ts} +0 -0
  319. /package/src/agent-cli-provider/{omp-rpc-bounds.ts → omp/rpc-bounds.ts} +0 -0
  320. /package/src/agent-cli-provider/{omp-rpc-session.ts → omp/rpc-session.ts} +0 -0
@@ -1,7 +1,27 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import * as fs from 'node:fs';
3
+ import * as os from 'node:os';
4
+ import * as path from 'node:path';
5
+
1
6
  import { getProviderAdapter } from './adapters';
2
7
  import { UnsupportedProviderCapabilityError } from './errors';
3
8
  import { normalizeGatewayBuildOptions, resolveGatewayConfiguration } from './gateway-tools';
4
9
  import { isRecord } from './json';
10
+ import {
11
+ OMP_SDK_BACKEND_VERSION,
12
+ OMP_SDK_BUN_VERSION,
13
+ OMP_SDK_MAX_REQUEST_BYTES,
14
+ OMP_SDK_PROTOCOL_VERSION,
15
+ parseOmpSdkSidecarRequest,
16
+ } from './omp/sdk-protocol';
17
+ import type { OmpSdkExecutionContext, OmpSdkSidecarRequest } from './omp/sdk-protocol';
18
+ import {
19
+ normalizeOmpSdkSettings,
20
+ OMP_AUTH_BROKER_ENV_NAMES,
21
+ parseExactOmpModelSelector,
22
+ resolveOmpSdkSettings,
23
+ } from './omp/sdk-settings';
24
+ import type { ConfiguredOmpSdkSettings } from './omp/sdk-settings';
5
25
  import {
6
26
  getDefaultProviderId,
7
27
  getProviderRegistryEntry,
@@ -23,6 +43,12 @@ import type {
23
43
  ProviderId,
24
44
  ResolvedGatewayBuildOptions,
25
45
  ReasoningEffort,
46
+ OmpSdkContainmentRequirement,
47
+ OmpSdkExecutionIdentity,
48
+ OmpSdkSemanticIdentity,
49
+ PreparedEnvironmentPolicy,
50
+ PreparedPrivateArtifacts,
51
+ PreparedProviderInvoke,
26
52
  WebSearchAttestation,
27
53
  } from './types';
28
54
 
@@ -54,11 +80,19 @@ export interface SingleAgentProviderCommandInput {
54
80
  export interface PreparedSingleAgentProviderCommand {
55
81
  readonly adapter: ProviderAdapter;
56
82
  readonly commandSpec: CommandSpec;
83
+ readonly context: string;
57
84
  readonly options: BuildProviderCommandOptions;
58
85
  readonly cliFeatures: CliFeatureOverrides;
59
86
  readonly configuration: {
60
87
  readonly webSearch: WebSearchAttestation;
61
88
  };
89
+ readonly invoke: PreparedProviderInvoke;
90
+ readonly environmentPolicy?: PreparedEnvironmentPolicy;
91
+ readonly credentialNames?: readonly string[];
92
+ readonly privateArtifacts?: PreparedPrivateArtifacts;
93
+ readonly executionIdentity?: OmpSdkExecutionIdentity;
94
+ readonly semanticIdentity?: OmpSdkSemanticIdentity;
95
+ readonly containmentRequirement?: OmpSdkContainmentRequirement;
62
96
  }
63
97
 
64
98
  export interface RuntimeProviderProbe {
@@ -87,11 +121,20 @@ const MODEL_LEVELS: readonly ModelLevel[] = ['level1', 'level2', 'level3'];
87
121
  const REASONING_EFFORTS: readonly ReasoningEffort[] = ['low', 'medium', 'high', 'xhigh', 'max'];
88
122
  const LEGACY_ISOLATED_PROVIDER_SETTINGS_ENV = 'ZEROSHOT_ISOLATED_PROVIDER_SETTINGS_JSON';
89
123
  const providerDetectionModule: unknown = require('../../lib/provider-detection');
124
+ const ompSdkRuntimeModule: unknown = require('../../scripts/omp/runtime');
90
125
 
91
126
  const commandExistsFn = moduleFunction(providerDetectionModule, 'commandExists');
92
127
  const getHelpOutputFn = moduleFunction(providerDetectionModule, 'getHelpOutput');
93
128
  const getVersionOutputFn = moduleFunction(providerDetectionModule, 'getVersionOutput');
129
+ const resolveOmpSdkRuntimeFn = moduleFunction(ompSdkRuntimeModule, 'resolveOmpSdkRuntime');
94
130
 
131
+ export const resolveOmpTransport = (runtimeSettings?: Record<string, unknown>): 'sdk' | 'rpc' => {
132
+ const settings = runtimeSettings ?? loadRuntimeSettings();
133
+ const providerSettings = settings.providerSettings;
134
+ if (!isRecord(providerSettings)) return 'sdk';
135
+ const omp = providerSettings.omp;
136
+ return isRecord(omp) && omp.transport === 'rpc' ? 'rpc' : 'sdk';
137
+ };
95
138
  export function prepareSingleAgentProviderCommand(
96
139
  input: SingleAgentProviderCommandInput,
97
140
  runtimeSettings?: Record<string, unknown>
@@ -100,6 +143,11 @@ export function prepareSingleAgentProviderCommand(
100
143
  const baseOptions = input.options ?? {};
101
144
  const settings = runtimeSettings ?? loadRuntimeSettings();
102
145
  const adapter = adapterForRuntimeInput(input.provider, settings);
146
+ const ompTransport = adapter.id === 'omp' ? resolveOmpTransport(settings) : undefined;
147
+ if (ompTransport === 'sdk') {
148
+ const configuredOmpSettings = resolveOmpSdkSettings(settings);
149
+ return prepareOmpProviderCommand(input, adapter, baseOptions, configuredOmpSettings);
150
+ }
103
151
  const providerSettings = runtimeProviderSettings(
104
152
  settings,
105
153
  adapter.id,
@@ -121,7 +169,9 @@ export function prepareSingleAgentProviderCommand(
121
169
  authEnv,
122
170
  });
123
171
  return {
172
+ invoke: preparedInvokeForRegistry(adapter, options),
124
173
  adapter,
174
+ context: input.context,
125
175
  options,
126
176
  cliFeatures,
127
177
  configuration: {
@@ -130,6 +180,359 @@ export function prepareSingleAgentProviderCommand(
130
180
  commandSpec: buildRuntimeCommand(adapter, input.context, options),
131
181
  };
132
182
  }
183
+ interface OmpSdkRuntimeAssets {
184
+ readonly bunExecutable: string;
185
+ readonly bunVersion: string;
186
+ readonly ompVersion: string;
187
+ readonly sidecarPath: string;
188
+ }
189
+
190
+ function prepareOmpProviderCommand(
191
+ input: SingleAgentProviderCommandInput,
192
+ adapter: ProviderAdapter,
193
+ baseOptions: BuildProviderCommandOptions,
194
+ rawOmpSettings: unknown
195
+ ): PreparedSingleAgentProviderCommand {
196
+ const executionContext = ompExecutionContext(baseOptions.executionContext);
197
+ const normalized = normalizeOmpSdkSettings(rawOmpSettings, {
198
+ ...(executionContext === undefined
199
+ ? {}
200
+ : {
201
+ executionContext: executionContext === 'benchmark' ? 'docker' : executionContext,
202
+ }),
203
+ requireModelConfiguration: true,
204
+ });
205
+ if (executionContext === undefined) {
206
+ throw new Error(
207
+ 'options.executionContext is required for OMP SDK preparation and must be "host", "detached", "docker", or "benchmark".'
208
+ );
209
+ }
210
+ if (baseOptions.resumeSessionId !== undefined || baseOptions.continueSession === true) {
211
+ throw new UnsupportedProviderCapabilityError(
212
+ 'omp',
213
+ 'sessionResume',
214
+ 'OMP SDK structured runs are always fresh; resume and continue are not supported.'
215
+ );
216
+ }
217
+ if (baseOptions.structuredOutputRecovery === true) {
218
+ throw new UnsupportedProviderCapabilityError(
219
+ 'omp',
220
+ 'structuredOutputRecovery',
221
+ 'OMP SDK strict output is produced by the original coding turn and cannot run a recovery turn.'
222
+ );
223
+ }
224
+ if (baseOptions.mcpConfig !== undefined && baseOptions.mcpConfig.length > 0) {
225
+ throw new UnsupportedProviderCapabilityError(
226
+ 'omp',
227
+ 'mcpServers',
228
+ 'OMP SDK preparation does not accept caller MCP configuration.'
229
+ );
230
+ }
231
+ if (baseOptions.webSearch === true) {
232
+ throw new UnsupportedProviderCapabilityError(
233
+ 'omp',
234
+ 'webSearch',
235
+ 'OMP SDK preparation uses the configured closed coding-tool allowlist and does not enable web search.'
236
+ );
237
+ }
238
+ if (baseOptions.authEnv !== undefined && Object.keys(baseOptions.authEnv).length > 0) {
239
+ throw new Error(
240
+ 'options.authEnv is not accepted for OMP SDK preparation; declare credential environment variable names in providerSettings.omp.auth.'
241
+ );
242
+ }
243
+
244
+ const configured = normalized as Readonly<ConfiguredOmpSdkSettings>;
245
+ const level = baseOptions.modelSpec?.level ?? configured.defaultLevel;
246
+ const levelOverride = configured.levelOverrides[level];
247
+ const requestedModel = baseOptions.modelSpec?.model;
248
+ if (requestedModel === null) {
249
+ throw new Error('options.modelSpec.model must be an exact OMP provider/model selector.');
250
+ }
251
+ if (
252
+ MODEL_LEVELS.indexOf(level) < MODEL_LEVELS.indexOf(configured.minLevel) ||
253
+ MODEL_LEVELS.indexOf(level) > MODEL_LEVELS.indexOf(configured.maxLevel)
254
+ ) {
255
+ throw new Error(
256
+ `options.modelSpec.level must be between providerSettings.omp.minLevel (${configured.minLevel}) and maxLevel (${configured.maxLevel}).`
257
+ );
258
+ }
259
+ if (requestedModel !== undefined && requestedModel !== levelOverride.model) {
260
+ throw new Error(
261
+ `options.modelSpec.model must exactly match providerSettings.omp.levelOverrides.${level}.model.`
262
+ );
263
+ }
264
+ const modelSelector = requestedModel ?? levelOverride.model;
265
+ const parsedSelector = parseExactOmpModelSelector(modelSelector);
266
+ const requestedReasoningEffort = baseOptions.modelSpec?.reasoningEffort;
267
+ if (
268
+ requestedReasoningEffort !== undefined &&
269
+ requestedReasoningEffort !== levelOverride.reasoningEffort
270
+ ) {
271
+ throw new Error(
272
+ `options.modelSpec.reasoningEffort must exactly match providerSettings.omp.levelOverrides.${level}.reasoningEffort.`
273
+ );
274
+ }
275
+ const reasoningEffort = requestedReasoningEffort ?? levelOverride.reasoningEffort;
276
+ const output = ompSdkOutputContract(baseOptions);
277
+ const cwd = path.resolve(baseOptions.cwd ?? process.cwd());
278
+ const cliFeatures = adapter.detectCliFeatures('', '');
279
+ const options: BuildProviderCommandOptions = {
280
+ cwd,
281
+ executionContext,
282
+ modelSpec: {
283
+ level,
284
+ model: modelSelector,
285
+ reasoningEffort,
286
+ },
287
+ outputFormat: output.mode,
288
+ ...(output.mode === 'json' ? { jsonSchema: output.schema } : {}),
289
+ strictSchema: true,
290
+ cliFeatures,
291
+ };
292
+
293
+ const requestInput: OmpSdkSidecarRequest =
294
+ output.mode === 'json'
295
+ ? {
296
+ protocolVersion: OMP_SDK_PROTOCOL_VERSION,
297
+ runId: randomUUID(),
298
+ cwd,
299
+ executionContext,
300
+ prompt: input.context,
301
+ modelSelector,
302
+ reasoningEffort,
303
+ modelsConfig: configured.modelsConfig,
304
+ auth: configured.auth,
305
+ tools: configured.tools,
306
+ context: '',
307
+ outputMode: 'json',
308
+ outputSchema: output.schema,
309
+ }
310
+ : {
311
+ protocolVersion: OMP_SDK_PROTOCOL_VERSION,
312
+ runId: randomUUID(),
313
+ cwd,
314
+ executionContext,
315
+ prompt: input.context,
316
+ modelSelector,
317
+ reasoningEffort,
318
+ modelsConfig: configured.modelsConfig,
319
+ auth: configured.auth,
320
+ tools: configured.tools,
321
+ context: '',
322
+ outputMode: 'text',
323
+ };
324
+ const request = parseOmpSdkSidecarRequest(requestInput);
325
+ const requestText = JSON.stringify(request);
326
+ if (Buffer.byteLength(requestText, 'utf8') > OMP_SDK_MAX_REQUEST_BYTES) {
327
+ throw new Error(`OMP SDK request exceeds ${OMP_SDK_MAX_REQUEST_BYTES} bytes.`);
328
+ }
329
+
330
+ const usesContainerRuntime = executionContext === 'docker' || executionContext === 'benchmark';
331
+ const runtime = usesContainerRuntime
332
+ ? {
333
+ bunExecutable: '/opt/zeroshot/node_modules/bun/bin/bun.exe',
334
+ bunVersion: OMP_SDK_BUN_VERSION,
335
+ ompVersion: OMP_SDK_BACKEND_VERSION,
336
+ sidecarPath: '/opt/zeroshot/scripts/omp/sidecar.ts',
337
+ }
338
+ : ompSdkRuntimeAssets();
339
+ let privateRoot: string | undefined;
340
+ try {
341
+ privateRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'zeroshot-omp-sdk-request-'));
342
+ fs.chmodSync(privateRoot, 0o700);
343
+ const requestPath = path.join(privateRoot, 'request.json');
344
+ fs.writeFileSync(requestPath, requestText, { flag: 'wx', mode: 0o600 });
345
+ fs.chmodSync(requestPath, 0o600);
346
+ const credentialNames = ompSdkCredentialNames(configured, parsedSelector.provider);
347
+ const invoke = {
348
+ lane: 'spawn',
349
+ parser: 'omp-sdk-ndjson',
350
+ ptyEligible: false,
351
+ strictTerminal: true,
352
+ } as const;
353
+ return {
354
+ context: input.context,
355
+ adapter,
356
+ options,
357
+ cliFeatures,
358
+ configuration: {
359
+ webSearch: { requested: false, effective: false },
360
+ },
361
+ invoke,
362
+ environmentPolicy: {
363
+ inherit: 'minimal',
364
+ values: Object.freeze({}),
365
+ },
366
+ credentialNames,
367
+ privateArtifacts: {
368
+ root: privateRoot,
369
+ requestPath,
370
+ owned: true,
371
+ },
372
+ executionIdentity: {
373
+ backend: 'omp-sdk',
374
+ backendVersion: OMP_SDK_BACKEND_VERSION,
375
+ runtime: {
376
+ name: 'bun',
377
+ version: OMP_SDK_BUN_VERSION,
378
+ },
379
+ transport: 'sdk',
380
+ },
381
+ semanticIdentity: {
382
+ requestedModelSelector: modelSelector,
383
+ reasoningEffort,
384
+ provider: parsedSelector.provider,
385
+ },
386
+ containmentRequirement: {
387
+ mode: usesContainerRuntime ? 'container' : 'host-process-tree',
388
+ required: true,
389
+ },
390
+ commandSpec: {
391
+ binary: runtime.bunExecutable,
392
+ args: [runtime.sidecarPath, requestPath],
393
+ env: {},
394
+ cwd,
395
+ cleanup: [privateRoot],
396
+ cleanupMetadata: [
397
+ {
398
+ kind: 'temp-directory',
399
+ provider: 'omp',
400
+ path: privateRoot,
401
+ reason: 'sdk-private-root',
402
+ },
403
+ ],
404
+ warnings: [],
405
+ redactions: credentialNames.map((key) => ({ kind: 'env' as const, key })),
406
+ invocation: {
407
+ lane: 'spawn',
408
+ pty: false,
409
+ protocol: 'omp-sdk-v1',
410
+ },
411
+ },
412
+ };
413
+ } catch (error) {
414
+ if (privateRoot !== undefined) {
415
+ fs.rmSync(privateRoot, { recursive: true, force: true });
416
+ }
417
+ throw error;
418
+ }
419
+ }
420
+
421
+ function ompExecutionContext(
422
+ value: BuildProviderCommandOptions['executionContext']
423
+ ): OmpSdkExecutionContext | undefined {
424
+ if (value === undefined) return undefined;
425
+ if (value === 'host' || value === 'detached' || value === 'docker' || value === 'benchmark') {
426
+ return value;
427
+ }
428
+ throw new Error('options.executionContext must be "host", "detached", "docker", or "benchmark".');
429
+ }
430
+
431
+
432
+ function ompSdkOutputContract(
433
+ options: BuildProviderCommandOptions
434
+ ):
435
+ | { readonly mode: 'json'; readonly schema: boolean | Readonly<Record<string, unknown>> }
436
+ | { readonly mode: 'text' } {
437
+ const hasSchema = options.jsonSchema !== undefined && options.jsonSchema !== null;
438
+ if (hasSchema) {
439
+ if (options.outputFormat !== undefined && options.outputFormat !== 'json') {
440
+ throw new Error('OMP SDK caller schemas require options.outputFormat "json".');
441
+ }
442
+ if (options.strictSchema === false) {
443
+ throw new Error('OMP SDK caller schemas require strict schema enforcement.');
444
+ }
445
+ if (typeof options.jsonSchema !== 'boolean' && !isRecord(options.jsonSchema)) {
446
+ throw new Error('options.jsonSchema must be a boolean or JSON Schema object.');
447
+ }
448
+ return { mode: 'json', schema: options.jsonSchema };
449
+ }
450
+ if (options.outputFormat !== undefined && options.outputFormat !== 'text') {
451
+ throw new Error(
452
+ 'OMP SDK output without a caller schema must use options.outputFormat "text" and the host-owned strict text envelope.'
453
+ );
454
+ }
455
+ if (options.strictSchema === false) {
456
+ throw new Error('OMP SDK text output always uses the host-owned strict text envelope.');
457
+ }
458
+ return { mode: 'text' };
459
+ }
460
+
461
+ function ompSdkCredentialNames(
462
+ settings: Readonly<ConfiguredOmpSdkSettings>,
463
+ provider: string
464
+ ): readonly string[] {
465
+ if (settings.auth.mode === 'environment') {
466
+ const credential = settings.auth.credentials[provider];
467
+ if (credential === undefined) {
468
+ throw new Error(`No OMP environment credential reference is declared for ${provider}.`);
469
+ }
470
+ return Object.freeze([credential.env]);
471
+ }
472
+ if (settings.auth.mode === 'broker') {
473
+ return Object.freeze(
474
+ [OMP_AUTH_BROKER_ENV_NAMES.token, OMP_AUTH_BROKER_ENV_NAMES.url].sort((left, right) =>
475
+ left.localeCompare(right, 'en')
476
+ )
477
+ );
478
+ }
479
+ return Object.freeze([]);
480
+ }
481
+
482
+ function requiredStringValue(value: unknown, field: string): string {
483
+ if (typeof value !== 'string' || value.length === 0) {
484
+ throw new Error(`${field} must be a non-empty string.`);
485
+ }
486
+ return value;
487
+ }
488
+
489
+ function ompSdkRuntimeAssets(): OmpSdkRuntimeAssets {
490
+ const value = resolveOmpSdkRuntimeFn();
491
+ if (!isRecord(value))
492
+ throw new Error('Pinned OMP SDK runtime resolver returned invalid evidence.');
493
+ const runtime = {
494
+ bunExecutable: requiredStringValue(value.bunExecutable, 'ompSdkRuntime.bunExecutable'),
495
+ bunVersion: requiredStringValue(value.bunVersion, 'ompSdkRuntime.bunVersion'),
496
+ ompVersion: requiredStringValue(value.ompVersion, 'ompSdkRuntime.ompVersion'),
497
+ sidecarPath: requiredStringValue(value.sidecarPath, 'ompSdkRuntime.sidecarPath'),
498
+ };
499
+ if (
500
+ runtime.bunVersion !== OMP_SDK_BUN_VERSION ||
501
+ runtime.ompVersion !== OMP_SDK_BACKEND_VERSION
502
+ ) {
503
+ throw new Error('Pinned OMP SDK runtime identity does not match the sidecar protocol.');
504
+ }
505
+ return runtime;
506
+ }
507
+
508
+ function preparedInvokeForRegistry(
509
+ adapter: ProviderAdapter,
510
+ options: BuildProviderCommandOptions
511
+ ): PreparedProviderInvoke {
512
+ const invoke = getProviderRegistryEntry(adapter.id).invoke;
513
+ if (invoke.lane === 'acp-stdio') {
514
+ return {
515
+ lane: 'acp-stdio',
516
+ parser: 'acp',
517
+ ptyEligible: false,
518
+ strictTerminal: false,
519
+ };
520
+ }
521
+ if (invoke.lane === 'rpc-stdio') {
522
+ return {
523
+ lane: 'rpc-stdio',
524
+ parser: 'provider',
525
+ ptyEligible: false,
526
+ strictTerminal: false,
527
+ };
528
+ }
529
+ return {
530
+ lane: 'spawn',
531
+ parser: 'provider',
532
+ ptyEligible: !(adapter.id === 'claude' && Boolean(options.jsonSchema)),
533
+ strictTerminal: false,
534
+ };
535
+ }
133
536
 
134
537
  function buildRuntimeCommand(
135
538
  adapter: ProviderAdapter,
@@ -146,8 +549,7 @@ function buildRuntimeCommand(
146
549
  `Provider ${adapter.id} does not advertise structured-output recovery.`
147
550
  );
148
551
  }
149
- const recoveryAdapter = adapter as ProviderAdapter &
150
- Partial<StructuredOutputRecoveryAdapter>;
552
+ const recoveryAdapter = adapter as ProviderAdapter & Partial<StructuredOutputRecoveryAdapter>;
151
553
  if (typeof recoveryAdapter.buildStructuredOutputRecoveryCommand !== 'function') {
152
554
  throw new UnsupportedProviderCapabilityError(
153
555
  adapter.id,
@@ -194,8 +596,7 @@ function resolveRuntimeCliFeatures(
194
596
  'supportsResume' in detected &&
195
597
  detected.supportsResume === true &&
196
598
  overrides.supportsResume !== false,
197
- supportsWebSearch:
198
- detected.supportsWebSearch === true && overrides.supportsWebSearch !== false,
599
+ supportsWebSearch: detected.supportsWebSearch === true && overrides.supportsWebSearch !== false,
199
600
  };
200
601
  }
201
602
 
@@ -233,9 +634,35 @@ export function probeRuntimeProviderCli(
233
634
  if (adapter.id === 'gateway') {
234
635
  return probeGatewayProvider(adapter, runtimeSettings);
235
636
  }
236
- const requested = getProviderRegistryEntry(adapter.id).settingsFields.includes('webSearch')
237
- ? runtimeProviderSettings(runtimeSettings ?? loadRuntimeSettings(), adapter.id, process.cwd())
238
- .webSearch === true
637
+ const registryEntry = getProviderRegistryEntry(adapter.id);
638
+ const settings = runtimeSettings ?? loadRuntimeSettings();
639
+ if (adapter.id === 'omp' && resolveOmpTransport(settings) === 'sdk') {
640
+ const capabilities = adapter.detectCliFeatures('', '');
641
+ try {
642
+ const runtime = ompSdkRuntimeAssets();
643
+ return {
644
+ available: true,
645
+ helpText: 'Pinned bundled OMP SDK sidecar',
646
+ versionText: `omp-sdk ${runtime.ompVersion}; bun ${runtime.bunVersion}`,
647
+ capabilities,
648
+ configuration: {
649
+ webSearch: { requested: false, effective: false },
650
+ },
651
+ };
652
+ } catch {
653
+ return {
654
+ available: false,
655
+ helpText: '',
656
+ versionText: '',
657
+ capabilities,
658
+ configuration: {
659
+ webSearch: { requested: false, effective: false },
660
+ },
661
+ };
662
+ }
663
+ }
664
+ const requested = registryEntry.settingsFields.includes('webSearch')
665
+ ? runtimeProviderSettings(settings, adapter.id, process.cwd()).webSearch === true
239
666
  : false;
240
667
  const helpCommand = runtimeHelpCommand(adapter.id);
241
668
  const commandAvailable =
@@ -263,18 +690,17 @@ export function probeRuntimeProviderCli(
263
690
  stringResult(
264
691
  getVersionOutputFn(
265
692
  helpCommand.command,
266
- getProviderRegistryEntry(adapter.id).capabilities.webSearch === true
267
- ? []
268
- : helpCommand.args
693
+ registryEntry.capabilities.webSearch === true ? [] : helpCommand.args
269
694
  )
270
695
  ).trim();
271
- const availabilityProbe = getProviderRegistryEntry(adapter.id).availabilityProbe ?? 'command';
272
696
  const capabilities = attestedCliFeatures(adapter, helpText, versionText);
273
697
 
274
698
  return {
275
699
  available:
276
700
  evidence?.available ??
277
- (availabilityProbe === 'help-or-version' ? Boolean(helpText || versionText) : true),
701
+ (registryEntry.availabilityProbe === 'help-or-version'
702
+ ? Boolean(helpText || versionText)
703
+ : true),
278
704
  helpText,
279
705
  versionText,
280
706
  capabilities,
@@ -346,7 +772,7 @@ function resolveRuntimeGatewayOptions(
346
772
  ? settingsGateway.headers
347
773
  : { ...(settingsGateway.headers ?? {}), ...requestGateway.headers };
348
774
  const mergedGateway: GatewayBuildOptions = {
349
- ...(requestGateway.protocol ?? settingsGateway.protocol
775
+ ...((requestGateway.protocol ?? settingsGateway.protocol)
350
776
  ? { protocol: requestGateway.protocol ?? settingsGateway.protocol }
351
777
  : {}),
352
778
  ...((requestGateway.baseUrl ?? settingsGateway.baseUrl)
@@ -357,7 +783,7 @@ function resolveRuntimeGatewayOptions(
357
783
  : {}),
358
784
  ...(mergedHeaders === undefined ? {} : { headers: mergedHeaders }),
359
785
  model: requestGateway.model ?? modelSpec.model ?? settingsGateway.model ?? null,
360
- ...(requestGateway.maxTokens ?? settingsGateway.maxTokens
786
+ ...((requestGateway.maxTokens ?? settingsGateway.maxTokens)
361
787
  ? { maxTokens: requestGateway.maxTokens ?? settingsGateway.maxTokens }
362
788
  : {}),
363
789
  ...((requestGateway.toolPolicy ?? settingsGateway.toolPolicy)
@@ -521,7 +947,10 @@ function webSearchAttestation(options: {
521
947
  }
522
948
 
523
949
  function assertWebSearchDeclared(provider: ProviderId, requested: boolean | undefined): void {
524
- if (requested === undefined || getProviderRegistryEntry(provider).capabilities.webSearch === true) {
950
+ if (
951
+ requested === undefined ||
952
+ getProviderRegistryEntry(provider).capabilities.webSearch === true
953
+ ) {
525
954
  return;
526
955
  }
527
956
  throw new UnsupportedProviderCapabilityError(
@@ -561,7 +990,6 @@ function isUnknownFunction(value: unknown): value is UnknownFunction {
561
990
  return typeof value === 'function';
562
991
  }
563
992
 
564
-
565
993
  function levelOverridesFromUnknown(value: unknown, field: string): LevelOverrides {
566
994
  if (value === undefined) return {};
567
995
  const record = requiredRecord(value, field);
@@ -632,7 +1060,6 @@ function optionalString(value: unknown, field: string): string | undefined {
632
1060
  throw new Error(`${field} must be a string.`);
633
1061
  }
634
1062
 
635
-
636
1063
  function optionalRecord(
637
1064
  value: unknown,
638
1065
  field: string
@@ -657,7 +1084,6 @@ function stringRecordFromUnknown(value: unknown, field: string): Readonly<Record
657
1084
  return result;
658
1085
  }
659
1086
 
660
-
661
1087
  function stringResult(value: unknown): string {
662
1088
  if (typeof value === 'string') return value;
663
1089
  throw new Error('Provider help output must be a string.');