@the-open-engine/zeroshot 6.30.1 → 6.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/lib/agent-cli-provider/adapters/acp.d.ts.map +1 -1
  2. package/lib/agent-cli-provider/adapters/acp.js +7 -11
  3. package/lib/agent-cli-provider/adapters/acp.js.map +1 -1
  4. package/lib/agent-cli-provider/adapters/omp-policy.d.ts +4 -0
  5. package/lib/agent-cli-provider/adapters/omp-policy.d.ts.map +1 -0
  6. package/lib/agent-cli-provider/adapters/omp-policy.js +47 -0
  7. package/lib/agent-cli-provider/adapters/omp-policy.js.map +1 -0
  8. package/lib/agent-cli-provider/adapters/omp.d.ts.map +1 -1
  9. package/lib/agent-cli-provider/adapters/omp.js +8 -158
  10. package/lib/agent-cli-provider/adapters/omp.js.map +1 -1
  11. package/lib/agent-cli-provider/adapters/pi.d.ts.map +1 -1
  12. package/lib/agent-cli-provider/adapters/pi.js +12 -124
  13. package/lib/agent-cli-provider/adapters/pi.js.map +1 -1
  14. package/lib/agent-cli-provider/assistant-stream.d.ts +27 -0
  15. package/lib/agent-cli-provider/assistant-stream.d.ts.map +1 -0
  16. package/lib/agent-cli-provider/assistant-stream.js +119 -0
  17. package/lib/agent-cli-provider/assistant-stream.js.map +1 -0
  18. package/lib/agent-cli-provider/contract-actions.d.ts.map +1 -1
  19. package/lib/agent-cli-provider/contract-actions.js +42 -1
  20. package/lib/agent-cli-provider/contract-actions.js.map +1 -1
  21. package/lib/agent-cli-provider/contract-invoke.d.ts.map +1 -1
  22. package/lib/agent-cli-provider/contract-invoke.js +68 -38
  23. package/lib/agent-cli-provider/contract-invoke.js.map +1 -1
  24. package/lib/agent-cli-provider/contract-support.d.ts +5 -6
  25. package/lib/agent-cli-provider/contract-support.d.ts.map +1 -1
  26. package/lib/agent-cli-provider/contract-support.js +99 -6
  27. package/lib/agent-cli-provider/contract-support.js.map +1 -1
  28. package/lib/agent-cli-provider/index.d.ts +8 -6
  29. package/lib/agent-cli-provider/index.d.ts.map +1 -1
  30. package/lib/agent-cli-provider/index.js +34 -10
  31. package/lib/agent-cli-provider/index.js.map +1 -1
  32. package/lib/agent-cli-provider/omp/auth-policy.d.ts +31 -0
  33. package/lib/agent-cli-provider/omp/auth-policy.d.ts.map +1 -0
  34. package/lib/agent-cli-provider/omp/auth-policy.js +98 -0
  35. package/lib/agent-cli-provider/omp/auth-policy.js.map +1 -0
  36. package/lib/agent-cli-provider/{omp-release.d.ts → omp/release.d.ts} +1 -1
  37. package/lib/agent-cli-provider/omp/release.d.ts.map +1 -0
  38. package/lib/agent-cli-provider/{omp-release.js → omp/release.js} +1 -1
  39. package/lib/agent-cli-provider/omp/release.js.map +1 -0
  40. package/lib/agent-cli-provider/{omp-rpc-bounds.d.ts → omp/rpc-bounds.d.ts} +1 -1
  41. package/lib/agent-cli-provider/omp/rpc-bounds.d.ts.map +1 -0
  42. package/lib/agent-cli-provider/{omp-rpc-bounds.js → omp/rpc-bounds.js} +1 -1
  43. package/lib/agent-cli-provider/omp/rpc-bounds.js.map +1 -0
  44. package/lib/agent-cli-provider/omp/rpc-driver-channel.d.ts +19 -0
  45. package/lib/agent-cli-provider/omp/rpc-driver-channel.d.ts.map +1 -0
  46. package/lib/agent-cli-provider/omp/rpc-driver-channel.js +109 -0
  47. package/lib/agent-cli-provider/omp/rpc-driver-channel.js.map +1 -0
  48. package/lib/agent-cli-provider/omp/rpc-driver-dispatch.d.ts +27 -0
  49. package/lib/agent-cli-provider/omp/rpc-driver-dispatch.d.ts.map +1 -0
  50. package/lib/agent-cli-provider/omp/rpc-driver-dispatch.js +135 -0
  51. package/lib/agent-cli-provider/omp/rpc-driver-dispatch.js.map +1 -0
  52. package/lib/agent-cli-provider/omp/rpc-driver-runner.d.ts +3 -0
  53. package/lib/agent-cli-provider/omp/rpc-driver-runner.d.ts.map +1 -0
  54. package/lib/agent-cli-provider/omp/rpc-driver-runner.js +205 -0
  55. package/lib/agent-cli-provider/omp/rpc-driver-runner.js.map +1 -0
  56. package/lib/agent-cli-provider/omp/rpc-driver-state.d.ts +80 -0
  57. package/lib/agent-cli-provider/omp/rpc-driver-state.d.ts.map +1 -0
  58. package/lib/agent-cli-provider/omp/rpc-driver-state.js +86 -0
  59. package/lib/agent-cli-provider/omp/rpc-driver-state.js.map +1 -0
  60. package/lib/agent-cli-provider/omp/rpc-driver.d.ts +3 -0
  61. package/lib/agent-cli-provider/omp/rpc-driver.d.ts.map +1 -0
  62. package/lib/agent-cli-provider/omp/rpc-driver.js +6 -0
  63. package/lib/agent-cli-provider/omp/rpc-driver.js.map +1 -0
  64. package/lib/agent-cli-provider/omp/rpc-event-lines.d.ts +8 -0
  65. package/lib/agent-cli-provider/omp/rpc-event-lines.d.ts.map +1 -0
  66. package/lib/agent-cli-provider/omp/rpc-event-lines.js +59 -0
  67. package/lib/agent-cli-provider/omp/rpc-event-lines.js.map +1 -0
  68. package/lib/agent-cli-provider/omp/rpc-events.d.ts +16 -0
  69. package/lib/agent-cli-provider/omp/rpc-events.d.ts.map +1 -0
  70. package/lib/agent-cli-provider/omp/rpc-events.js +115 -0
  71. package/lib/agent-cli-provider/omp/rpc-events.js.map +1 -0
  72. package/lib/agent-cli-provider/{omp-rpc-protocol.d.ts → omp/rpc-protocol-contract.d.ts} +1 -13
  73. package/lib/agent-cli-provider/omp/rpc-protocol-contract.d.ts.map +1 -0
  74. package/lib/agent-cli-provider/omp/rpc-protocol-contract.js +54 -0
  75. package/lib/agent-cli-provider/omp/rpc-protocol-contract.js.map +1 -0
  76. package/lib/agent-cli-provider/omp/rpc-protocol.d.ts +15 -0
  77. package/lib/agent-cli-provider/omp/rpc-protocol.d.ts.map +1 -0
  78. package/lib/agent-cli-provider/omp/rpc-protocol.js +208 -0
  79. package/lib/agent-cli-provider/omp/rpc-protocol.js.map +1 -0
  80. package/lib/agent-cli-provider/{omp-rpc-session.d.ts → omp/rpc-session.d.ts} +1 -1
  81. package/lib/agent-cli-provider/omp/rpc-session.d.ts.map +1 -0
  82. package/lib/agent-cli-provider/{omp-rpc-session.js → omp/rpc-session.js} +1 -1
  83. package/lib/agent-cli-provider/omp/rpc-session.js.map +1 -0
  84. package/lib/agent-cli-provider/omp/sdk-contract.d.ts +34 -0
  85. package/lib/agent-cli-provider/omp/sdk-contract.d.ts.map +1 -0
  86. package/lib/agent-cli-provider/omp/sdk-contract.js +81 -0
  87. package/lib/agent-cli-provider/omp/sdk-contract.js.map +1 -0
  88. package/lib/agent-cli-provider/omp/sdk-process-credentials.d.ts +6 -0
  89. package/lib/agent-cli-provider/omp/sdk-process-credentials.d.ts.map +1 -0
  90. package/lib/agent-cli-provider/omp/sdk-process-credentials.js +44 -0
  91. package/lib/agent-cli-provider/omp/sdk-process-credentials.js.map +1 -0
  92. package/lib/agent-cli-provider/omp/sdk-process-error.d.ts +5 -0
  93. package/lib/agent-cli-provider/omp/sdk-process-error.d.ts.map +1 -0
  94. package/lib/agent-cli-provider/omp/sdk-process-error.js +13 -0
  95. package/lib/agent-cli-provider/omp/sdk-process-error.js.map +1 -0
  96. package/lib/agent-cli-provider/omp/sdk-process-io.d.ts +18 -0
  97. package/lib/agent-cli-provider/omp/sdk-process-io.d.ts.map +1 -0
  98. package/lib/agent-cli-provider/omp/sdk-process-io.js +80 -0
  99. package/lib/agent-cli-provider/omp/sdk-process-io.js.map +1 -0
  100. package/lib/agent-cli-provider/omp/sdk-process-private-runtime.d.ts +51 -0
  101. package/lib/agent-cli-provider/omp/sdk-process-private-runtime.d.ts.map +1 -0
  102. package/lib/agent-cli-provider/omp/sdk-process-private-runtime.js +154 -0
  103. package/lib/agent-cli-provider/omp/sdk-process-private-runtime.js.map +1 -0
  104. package/lib/agent-cli-provider/omp/sdk-process-result.d.ts +26 -0
  105. package/lib/agent-cli-provider/omp/sdk-process-result.d.ts.map +1 -0
  106. package/lib/agent-cli-provider/omp/sdk-process-result.js +117 -0
  107. package/lib/agent-cli-provider/omp/sdk-process-result.js.map +1 -0
  108. package/lib/agent-cli-provider/omp/sdk-process-runner.d.ts +7 -0
  109. package/lib/agent-cli-provider/omp/sdk-process-runner.d.ts.map +1 -0
  110. package/lib/agent-cli-provider/omp/sdk-process-runner.js +204 -0
  111. package/lib/agent-cli-provider/omp/sdk-process-runner.js.map +1 -0
  112. package/lib/agent-cli-provider/omp/sdk-protocol-collector.d.ts +3 -0
  113. package/lib/agent-cli-provider/omp/sdk-protocol-collector.d.ts.map +1 -0
  114. package/lib/agent-cli-provider/omp/sdk-protocol-collector.js +145 -0
  115. package/lib/agent-cli-provider/omp/sdk-protocol-collector.js.map +1 -0
  116. package/lib/agent-cli-provider/omp/sdk-protocol-frame.d.ts +4 -0
  117. package/lib/agent-cli-provider/omp/sdk-protocol-frame.d.ts.map +1 -0
  118. package/lib/agent-cli-provider/omp/sdk-protocol-frame.js +183 -0
  119. package/lib/agent-cli-provider/omp/sdk-protocol-frame.js.map +1 -0
  120. package/lib/agent-cli-provider/omp/sdk-protocol-request.d.ts +8 -0
  121. package/lib/agent-cli-provider/omp/sdk-protocol-request.d.ts.map +1 -0
  122. package/lib/agent-cli-provider/omp/sdk-protocol-request.js +170 -0
  123. package/lib/agent-cli-provider/omp/sdk-protocol-request.js.map +1 -0
  124. package/lib/agent-cli-provider/omp/sdk-protocol-result.d.ts +5 -0
  125. package/lib/agent-cli-provider/omp/sdk-protocol-result.d.ts.map +1 -0
  126. package/lib/agent-cli-provider/omp/sdk-protocol-result.js +74 -0
  127. package/lib/agent-cli-provider/omp/sdk-protocol-result.js.map +1 -0
  128. package/lib/agent-cli-provider/omp/sdk-protocol-types.d.ts +94 -0
  129. package/lib/agent-cli-provider/omp/sdk-protocol-types.d.ts.map +1 -0
  130. package/lib/agent-cli-provider/omp/sdk-protocol-types.js +54 -0
  131. package/lib/agent-cli-provider/omp/sdk-protocol-types.js.map +1 -0
  132. package/lib/agent-cli-provider/omp/sdk-protocol-value.d.ts +18 -0
  133. package/lib/agent-cli-provider/omp/sdk-protocol-value.d.ts.map +1 -0
  134. package/lib/agent-cli-provider/omp/sdk-protocol-value.js +229 -0
  135. package/lib/agent-cli-provider/omp/sdk-protocol-value.js.map +1 -0
  136. package/lib/agent-cli-provider/omp/sdk-protocol.d.ts +7 -0
  137. package/lib/agent-cli-provider/omp/sdk-protocol.d.ts.map +1 -0
  138. package/lib/agent-cli-provider/omp/sdk-protocol.js +28 -0
  139. package/lib/agent-cli-provider/omp/sdk-protocol.js.map +1 -0
  140. package/lib/agent-cli-provider/omp/sdk-runtime.d.ts +29 -0
  141. package/lib/agent-cli-provider/omp/sdk-runtime.d.ts.map +1 -0
  142. package/lib/agent-cli-provider/omp/sdk-runtime.js +110 -0
  143. package/lib/agent-cli-provider/omp/sdk-runtime.js.map +1 -0
  144. package/lib/agent-cli-provider/omp/sdk-settings-auth.d.ts +3 -0
  145. package/lib/agent-cli-provider/omp/sdk-settings-auth.d.ts.map +1 -0
  146. package/lib/agent-cli-provider/omp/sdk-settings-auth.js +86 -0
  147. package/lib/agent-cli-provider/omp/sdk-settings-auth.js.map +1 -0
  148. package/lib/agent-cli-provider/omp/sdk-settings-constants.d.ts +26 -0
  149. package/lib/agent-cli-provider/omp/sdk-settings-constants.d.ts.map +1 -0
  150. package/lib/agent-cli-provider/omp/sdk-settings-constants.js +148 -0
  151. package/lib/agent-cli-provider/omp/sdk-settings-constants.js.map +1 -0
  152. package/lib/agent-cli-provider/omp/sdk-settings-model-fields.d.ts +5 -0
  153. package/lib/agent-cli-provider/omp/sdk-settings-model-fields.d.ts.map +1 -0
  154. package/lib/agent-cli-provider/omp/sdk-settings-model-fields.js +198 -0
  155. package/lib/agent-cli-provider/omp/sdk-settings-model-fields.js.map +1 -0
  156. package/lib/agent-cli-provider/omp/sdk-settings-model.d.ts +4 -0
  157. package/lib/agent-cli-provider/omp/sdk-settings-model.d.ts.map +1 -0
  158. package/lib/agent-cli-provider/omp/sdk-settings-model.js +163 -0
  159. package/lib/agent-cli-provider/omp/sdk-settings-model.js.map +1 -0
  160. package/lib/agent-cli-provider/omp/sdk-settings-normalize.d.ts +18 -0
  161. package/lib/agent-cli-provider/omp/sdk-settings-normalize.d.ts.map +1 -0
  162. package/lib/agent-cli-provider/omp/sdk-settings-normalize.js +148 -0
  163. package/lib/agent-cli-provider/omp/sdk-settings-normalize.js.map +1 -0
  164. package/lib/agent-cli-provider/omp/sdk-settings-selector.d.ts +3 -0
  165. package/lib/agent-cli-provider/omp/sdk-settings-selector.d.ts.map +1 -0
  166. package/lib/agent-cli-provider/omp/sdk-settings-selector.js +22 -0
  167. package/lib/agent-cli-provider/omp/sdk-settings-selector.js.map +1 -0
  168. package/lib/agent-cli-provider/omp/sdk-settings-types.d.ts +68 -0
  169. package/lib/agent-cli-provider/omp/sdk-settings-types.d.ts.map +1 -0
  170. package/lib/agent-cli-provider/omp/sdk-settings-types.js +19 -0
  171. package/lib/agent-cli-provider/omp/sdk-settings-types.js.map +1 -0
  172. package/lib/agent-cli-provider/omp/sdk-settings-values.d.ts +14 -0
  173. package/lib/agent-cli-provider/omp/sdk-settings-values.d.ts.map +1 -0
  174. package/lib/agent-cli-provider/omp/sdk-settings-values.js +112 -0
  175. package/lib/agent-cli-provider/omp/sdk-settings-values.js.map +1 -0
  176. package/lib/agent-cli-provider/omp/sdk-settings.d.ts +5 -0
  177. package/lib/agent-cli-provider/omp/sdk-settings.d.ts.map +1 -0
  178. package/lib/agent-cli-provider/omp/sdk-settings.js +16 -0
  179. package/lib/agent-cli-provider/omp/sdk-settings.js.map +1 -0
  180. package/lib/agent-cli-provider/omp/sdk-sidecar-context.d.ts +11 -0
  181. package/lib/agent-cli-provider/omp/sdk-sidecar-context.d.ts.map +1 -0
  182. package/lib/agent-cli-provider/omp/sdk-sidecar-context.js +171 -0
  183. package/lib/agent-cli-provider/omp/sdk-sidecar-context.js.map +1 -0
  184. package/lib/agent-cli-provider/omp/sdk-sidecar-credentials.d.ts +5 -0
  185. package/lib/agent-cli-provider/omp/sdk-sidecar-credentials.d.ts.map +1 -0
  186. package/lib/agent-cli-provider/omp/sdk-sidecar-credentials.js +94 -0
  187. package/lib/agent-cli-provider/omp/sdk-sidecar-credentials.js.map +1 -0
  188. package/lib/agent-cli-provider/omp/sdk-sidecar-execute.d.ts +5 -0
  189. package/lib/agent-cli-provider/omp/sdk-sidecar-execute.d.ts.map +1 -0
  190. package/lib/agent-cli-provider/omp/sdk-sidecar-execute.js +175 -0
  191. package/lib/agent-cli-provider/omp/sdk-sidecar-execute.js.map +1 -0
  192. package/lib/agent-cli-provider/omp/sdk-sidecar-output.d.ts +5 -0
  193. package/lib/agent-cli-provider/omp/sdk-sidecar-output.d.ts.map +1 -0
  194. package/lib/agent-cli-provider/omp/sdk-sidecar-output.js +216 -0
  195. package/lib/agent-cli-provider/omp/sdk-sidecar-output.js.map +1 -0
  196. package/lib/agent-cli-provider/omp/sdk-sidecar-runtime.d.ts +11 -0
  197. package/lib/agent-cli-provider/omp/sdk-sidecar-runtime.d.ts.map +1 -0
  198. package/lib/agent-cli-provider/omp/sdk-sidecar-runtime.js +265 -0
  199. package/lib/agent-cli-provider/omp/sdk-sidecar-runtime.js.map +1 -0
  200. package/lib/agent-cli-provider/omp/sdk-sidecar-types.d.ts +148 -0
  201. package/lib/agent-cli-provider/omp/sdk-sidecar-types.d.ts.map +1 -0
  202. package/lib/agent-cli-provider/omp/sdk-sidecar-types.js +84 -0
  203. package/lib/agent-cli-provider/omp/sdk-sidecar-types.js.map +1 -0
  204. package/lib/agent-cli-provider/omp/sdk-sidecar.d.ts +4 -0
  205. package/lib/agent-cli-provider/omp/sdk-sidecar.d.ts.map +1 -0
  206. package/lib/agent-cli-provider/omp/sdk-sidecar.js +9 -0
  207. package/lib/agent-cli-provider/omp/sdk-sidecar.js.map +1 -0
  208. package/lib/agent-cli-provider/process-runner.d.ts +1 -0
  209. package/lib/agent-cli-provider/process-runner.d.ts.map +1 -1
  210. package/lib/agent-cli-provider/process-runner.js +19 -6
  211. package/lib/agent-cli-provider/process-runner.js.map +1 -1
  212. package/lib/agent-cli-provider/provider-registry.d.ts +18 -4
  213. package/lib/agent-cli-provider/provider-registry.d.ts.map +1 -1
  214. package/lib/agent-cli-provider/provider-registry.js +21 -7
  215. package/lib/agent-cli-provider/provider-registry.js.map +1 -1
  216. package/lib/agent-cli-provider/single-agent-runtime.d.ts +10 -1
  217. package/lib/agent-cli-provider/single-agent-runtime.d.ts.map +1 -1
  218. package/lib/agent-cli-provider/single-agent-runtime.js +378 -11
  219. package/lib/agent-cli-provider/single-agent-runtime.js.map +1 -1
  220. package/lib/agent-cli-provider/types.d.ts +110 -2
  221. package/lib/agent-cli-provider/types.d.ts.map +1 -1
  222. package/lib/agent-cli-provider/types.js.map +1 -1
  223. package/npm-shrinkwrap.json +18116 -0
  224. package/package.json +16 -3
  225. package/scripts/omp/bun-ffi.d.ts +28 -0
  226. package/scripts/omp/host-supervisor-cleanup.ts +100 -0
  227. package/scripts/omp/host-supervisor-launch.ts +38 -0
  228. package/scripts/omp/host-supervisor-native.ts +181 -0
  229. package/scripts/omp/host-supervisor-tracker.ts +258 -0
  230. package/scripts/omp/host-supervisor.ts +298 -0
  231. package/scripts/omp/promise-gate.ts +13 -0
  232. package/scripts/omp/runtime-identities.js +283 -0
  233. package/scripts/omp/runtime-lock.js +232 -0
  234. package/scripts/omp/runtime-release.js +105 -0
  235. package/scripts/omp/runtime.js +33 -0
  236. package/scripts/omp/sidecar.ts +124 -0
  237. package/scripts/opcore-introduced-check.js +5 -0
  238. package/scripts/release-preflight.js +19 -0
  239. package/src/agent-cli-provider/adapters/acp.ts +18 -17
  240. package/src/agent-cli-provider/adapters/omp-policy.ts +45 -0
  241. package/src/agent-cli-provider/adapters/omp.ts +9 -155
  242. package/src/agent-cli-provider/adapters/pi.ts +15 -145
  243. package/src/agent-cli-provider/assistant-stream.ts +155 -0
  244. package/src/agent-cli-provider/contract-actions.ts +14 -2
  245. package/src/agent-cli-provider/contract-invoke.ts +77 -40
  246. package/src/agent-cli-provider/contract-support.ts +83 -12
  247. package/src/agent-cli-provider/index.ts +60 -5
  248. package/src/agent-cli-provider/omp/auth-policy.ts +126 -0
  249. package/src/agent-cli-provider/omp/rpc-driver-channel.ts +144 -0
  250. package/src/agent-cli-provider/omp/rpc-driver-dispatch.ts +177 -0
  251. package/src/agent-cli-provider/omp/rpc-driver-runner.ts +199 -0
  252. package/src/agent-cli-provider/omp/rpc-driver-state.ts +165 -0
  253. package/src/agent-cli-provider/omp/rpc-driver.ts +8 -0
  254. package/src/agent-cli-provider/omp/rpc-event-lines.ts +58 -0
  255. package/src/agent-cli-provider/omp/rpc-events.ts +154 -0
  256. package/src/agent-cli-provider/omp/rpc-protocol-contract.ts +77 -0
  257. package/src/agent-cli-provider/{omp-rpc-protocol.ts → omp/rpc-protocol.ts} +9 -111
  258. package/src/agent-cli-provider/omp/sdk-contract.ts +123 -0
  259. package/src/agent-cli-provider/omp/sdk-process-credentials.ts +55 -0
  260. package/src/agent-cli-provider/omp/sdk-process-error.ts +9 -0
  261. package/src/agent-cli-provider/omp/sdk-process-io.ts +92 -0
  262. package/src/agent-cli-provider/omp/sdk-process-private-runtime.ts +249 -0
  263. package/src/agent-cli-provider/omp/sdk-process-result.ts +181 -0
  264. package/src/agent-cli-provider/omp/sdk-process-runner.ts +281 -0
  265. package/src/agent-cli-provider/omp/sdk-protocol-collector.ts +140 -0
  266. package/src/agent-cli-provider/omp/sdk-protocol-frame.ts +260 -0
  267. package/src/agent-cli-provider/omp/sdk-protocol-request.ts +181 -0
  268. package/src/agent-cli-provider/omp/sdk-protocol-result.ts +80 -0
  269. package/src/agent-cli-provider/omp/sdk-protocol-types.ts +156 -0
  270. package/src/agent-cli-provider/omp/sdk-protocol-value.ts +234 -0
  271. package/src/agent-cli-provider/omp/sdk-protocol.ts +46 -0
  272. package/src/agent-cli-provider/omp/sdk-runtime.ts +159 -0
  273. package/src/agent-cli-provider/omp/sdk-settings-auth.ts +78 -0
  274. package/src/agent-cli-provider/omp/sdk-settings-constants.ts +147 -0
  275. package/src/agent-cli-provider/omp/sdk-settings-model-fields.ts +233 -0
  276. package/src/agent-cli-provider/omp/sdk-settings-model.ts +238 -0
  277. package/src/agent-cli-provider/omp/sdk-settings-normalize.ts +242 -0
  278. package/src/agent-cli-provider/omp/sdk-settings-selector.ts +28 -0
  279. package/src/agent-cli-provider/omp/sdk-settings-types.ts +88 -0
  280. package/src/agent-cli-provider/omp/sdk-settings-values.ts +118 -0
  281. package/src/agent-cli-provider/omp/sdk-settings.ts +33 -0
  282. package/src/agent-cli-provider/omp/sdk-sidecar-context.ts +199 -0
  283. package/src/agent-cli-provider/omp/sdk-sidecar-credentials.ts +100 -0
  284. package/src/agent-cli-provider/omp/sdk-sidecar-execute.ts +201 -0
  285. package/src/agent-cli-provider/omp/sdk-sidecar-output.ts +235 -0
  286. package/src/agent-cli-provider/omp/sdk-sidecar-runtime.ts +244 -0
  287. package/src/agent-cli-provider/omp/sdk-sidecar-types.ts +173 -0
  288. package/src/agent-cli-provider/omp/sdk-sidecar.ts +3 -0
  289. package/src/agent-cli-provider/process-runner.ts +22 -8
  290. package/src/agent-cli-provider/provider-registry.ts +29 -10
  291. package/src/agent-cli-provider/single-agent-runtime.ts +444 -18
  292. package/src/agent-cli-provider/types.ts +131 -3
  293. package/src/command-cleanup-ownership.js +15 -0
  294. package/task-lib/omp-sdk-runtime.js +8 -0
  295. package/task-lib/runner.js +121 -40
  296. package/task-lib/sdk-watcher.js +154 -0
  297. package/lib/agent-cli-provider/omp-release.d.ts.map +0 -1
  298. package/lib/agent-cli-provider/omp-release.js.map +0 -1
  299. package/lib/agent-cli-provider/omp-rpc-bounds.d.ts.map +0 -1
  300. package/lib/agent-cli-provider/omp-rpc-bounds.js.map +0 -1
  301. package/lib/agent-cli-provider/omp-rpc-driver.d.ts +0 -40
  302. package/lib/agent-cli-provider/omp-rpc-driver.d.ts.map +0 -1
  303. package/lib/agent-cli-provider/omp-rpc-driver.js +0 -519
  304. package/lib/agent-cli-provider/omp-rpc-driver.js.map +0 -1
  305. package/lib/agent-cli-provider/omp-rpc-events.d.ts +0 -28
  306. package/lib/agent-cli-provider/omp-rpc-events.d.ts.map +0 -1
  307. package/lib/agent-cli-provider/omp-rpc-events.js +0 -264
  308. package/lib/agent-cli-provider/omp-rpc-events.js.map +0 -1
  309. package/lib/agent-cli-provider/omp-rpc-protocol.d.ts.map +0 -1
  310. package/lib/agent-cli-provider/omp-rpc-protocol.js +0 -272
  311. package/lib/agent-cli-provider/omp-rpc-protocol.js.map +0 -1
  312. package/lib/agent-cli-provider/omp-rpc-session.d.ts.map +0 -1
  313. package/lib/agent-cli-provider/omp-rpc-session.js.map +0 -1
  314. package/src/agent-cli-provider/omp-rpc-driver.ts +0 -639
  315. package/src/agent-cli-provider/omp-rpc-events.ts +0 -318
  316. /package/src/agent-cli-provider/{omp-release.ts → omp/release.ts} +0 -0
  317. /package/src/agent-cli-provider/{omp-rpc-bounds.ts → omp/rpc-bounds.ts} +0 -0
  318. /package/src/agent-cli-provider/{omp-rpc-session.ts → omp/rpc-session.ts} +0 -0
@@ -0,0 +1,199 @@
1
+ import { promises as fs } from 'node:fs';
2
+ import { tmpdir } from 'node:os';
3
+ import { join } from 'node:path';
4
+
5
+ import type { OmpSdkSidecarRequest } from './sdk-protocol';
6
+ import { openOmpAuthStorage } from './auth-policy';
7
+ import {
8
+ PRIVATE_BASE_ENV_KEYS,
9
+ SidecarFailure,
10
+ isRecord,
11
+ isUnknownArray,
12
+ type CredentialChannel,
13
+ type OmpAuthStorage,
14
+ type OmpModel,
15
+ type OmpModelRegistry,
16
+ type OmpSdkBindings,
17
+ type PrivateState,
18
+ } from './sdk-sidecar-types';
19
+
20
+ export async function privateState(): Promise<PrivateState> {
21
+ const root = await fs.mkdtemp(join(tmpdir(), 'zeroshot-omp-sdk-'));
22
+ try {
23
+ await fs.chmod(root, 0o700);
24
+ const directories = [
25
+ 'home',
26
+ 'xdg-config',
27
+ 'xdg-cache',
28
+ 'xdg-data',
29
+ 'xdg-state',
30
+ 'agent',
31
+ 'discovery-cwd',
32
+ ];
33
+ await Promise.all(directories.map((name) => fs.mkdir(join(root, name), { mode: 0o700 })));
34
+ return {
35
+ root,
36
+ agentDirectory: join(root, 'agent'),
37
+ authDatabasePath: join(root, 'agent', 'auth.db'),
38
+ brokerCachePath: join(root, 'agent', 'broker-snapshot.json'),
39
+ discoveryCwd: join(root, 'discovery-cwd'),
40
+ modelsPath: join(root, 'agent', 'models.yml'),
41
+ };
42
+ } catch {
43
+ await fs.rm(root, { force: true, maxRetries: 3, recursive: true });
44
+ throw new SidecarFailure('cleanup-error', 'cleanup', false);
45
+ }
46
+ }
47
+ export function isolateEnvironment(
48
+ state: PrivateState,
49
+ auth: OmpSdkSidecarRequest['auth']
50
+ ): Map<string, string | undefined> {
51
+ const original = new Map<string, string | undefined>();
52
+ const privateNames = new Set<string>(PRIVATE_BASE_ENV_KEYS);
53
+ for (const name of Object.keys(process.env)) {
54
+ if (name.startsWith('PI_') || name.startsWith('OMP_')) privateNames.add(name);
55
+ }
56
+ if (auth.mode === 'environment') {
57
+ Object.values(auth.credentials).forEach(({ env }) => privateNames.add(env));
58
+ }
59
+ for (const name of privateNames) {
60
+ original.set(name, process.env[name]);
61
+ delete process.env[name];
62
+ }
63
+ process.env.HOME = join(state.root, 'home');
64
+ process.env.XDG_CONFIG_HOME = join(state.root, 'xdg-config');
65
+ process.env.XDG_CACHE_HOME = join(state.root, 'xdg-cache');
66
+ process.env.XDG_DATA_HOME = join(state.root, 'xdg-data');
67
+ process.env.XDG_STATE_HOME = join(state.root, 'xdg-state');
68
+ process.env.PI_CODING_AGENT_DIR = state.agentDirectory;
69
+ return original;
70
+ }
71
+ export function restoreEnvironment(original: ReadonlyMap<string, string | undefined>): void {
72
+ for (const name of Object.keys(process.env)) {
73
+ if (name.startsWith('PI_') || name.startsWith('OMP_')) delete process.env[name];
74
+ }
75
+ original.forEach((value, key) => {
76
+ if (!PRIVATE_BASE_ENV_KEYS.some((name) => name === key)) {
77
+ delete process.env[key];
78
+ } else if (value === undefined) {
79
+ delete process.env[key];
80
+ } else {
81
+ process.env[key] = value;
82
+ }
83
+ });
84
+ }
85
+ export async function authStorage(
86
+ sdk: OmpSdkBindings,
87
+ request: OmpSdkSidecarRequest,
88
+ state: PrivateState,
89
+ provider: string,
90
+ credentials: CredentialChannel
91
+ ): Promise<OmpAuthStorage> {
92
+ const environmentSecret =
93
+ request.auth.mode === 'environment'
94
+ ? credentials.values[request.auth.credentials[provider]?.env ?? '']
95
+ : undefined;
96
+ if (request.auth.mode === 'environment' && !environmentSecret) {
97
+ throw new SidecarFailure('provider-auth', 'auth', false);
98
+ }
99
+ const brokerCredentials =
100
+ request.auth.mode === 'broker'
101
+ ? {
102
+ url: credentials.values.OMP_AUTH_BROKER_URL,
103
+ token: credentials.values.OMP_AUTH_BROKER_TOKEN,
104
+ }
105
+ : undefined;
106
+ if (request.auth.mode === 'broker' && (!brokerCredentials?.url || !brokerCredentials.token)) {
107
+ throw new SidecarFailure('provider-auth', 'auth', false);
108
+ }
109
+ const storage = await openOmpAuthStorage({
110
+ mode: request.auth.mode,
111
+ privateAgentDirectory: state.agentDirectory,
112
+ privateDatabasePath: state.authDatabasePath,
113
+ brokerCachePath: state.brokerCachePath,
114
+ sourceLabel: 'zeroshot omp sdk broker',
115
+ createDatabase: (databasePath) => sdk.AuthStorage.create(databasePath),
116
+ discoverBroker: (agentDirectory, options) =>
117
+ sdk.discoverBrokerAuthStorage(agentDirectory, options),
118
+ ...(request.auth.mode === 'omp-home' ? { sourceDirectory: request.auth.path } : {}),
119
+ ...(brokerCredentials === undefined ? {} : { brokerCredentials }),
120
+ });
121
+ if (typeof environmentSecret === 'string') {
122
+ storage.setRuntimeApiKey(provider, environmentSecret);
123
+ }
124
+ return storage;
125
+ }
126
+ export function exactModel(
127
+ sdk: OmpSdkBindings,
128
+ registry: OmpModelRegistry,
129
+ storage: OmpAuthStorage,
130
+ request: OmpSdkSidecarRequest
131
+ ): Readonly<OmpModel> {
132
+ const parsed = sdk.parseModelString(request.modelSelector);
133
+ const model = parsed === undefined ? undefined : registry.find(parsed.provider, parsed.id);
134
+ if (
135
+ parsed === undefined ||
136
+ `${parsed.provider}/${parsed.id}` !== request.modelSelector ||
137
+ model?.provider !== parsed.provider ||
138
+ model.id !== parsed.id
139
+ ) {
140
+ throw new SidecarFailure('model-resolution', 'model', false);
141
+ }
142
+ const available = registry
143
+ .getAvailable()
144
+ .find((candidate) => candidate.provider === parsed.provider && candidate.id === parsed.id);
145
+ if (
146
+ available === undefined ||
147
+ (request.auth.mode === 'none') === storage.hasAuth(parsed.provider)
148
+ ) {
149
+ throw new SidecarFailure('provider-auth', 'auth', false);
150
+ }
151
+ const providerConfig = request.modelsConfig.providers[parsed.provider];
152
+ const models = isUnknownArray(providerConfig?.models) ? providerConfig.models : [];
153
+ const declaredModel = models.find(
154
+ (candidate) => isRecord(candidate) && candidate.id === parsed.id
155
+ );
156
+ const declaredBaseUrl =
157
+ isRecord(declaredModel) && typeof declaredModel.baseUrl === 'string'
158
+ ? declaredModel.baseUrl
159
+ : typeof providerConfig?.baseUrl === 'string'
160
+ ? providerConfig.baseUrl
161
+ : undefined;
162
+ const declaredApi =
163
+ isRecord(declaredModel) && typeof declaredModel.api === 'string'
164
+ ? declaredModel.api
165
+ : typeof providerConfig?.api === 'string'
166
+ ? providerConfig.api
167
+ : undefined;
168
+ const routeExposed = model.api !== undefined || model.baseUrl !== undefined;
169
+ const availableRouteExposed = available.api !== undefined || available.baseUrl !== undefined;
170
+ if (
171
+ routeExposed !== availableRouteExposed ||
172
+ (routeExposed && (model.api === undefined || model.baseUrl === undefined)) ||
173
+ (availableRouteExposed && (available.api === undefined || available.baseUrl === undefined)) ||
174
+ (routeExposed && declaredBaseUrl !== undefined && model.baseUrl !== declaredBaseUrl) ||
175
+ (routeExposed && declaredApi !== undefined && model.api !== declaredApi) ||
176
+ model.api !== available.api ||
177
+ model.baseUrl !== available.baseUrl
178
+ ) {
179
+ throw new SidecarFailure('model-resolution', 'model', false);
180
+ }
181
+ return Object.freeze({
182
+ provider: model.provider,
183
+ id: model.id,
184
+ ...(model.api === undefined ? {} : { api: model.api }),
185
+ ...(model.baseUrl === undefined ? {} : { baseUrl: model.baseUrl }),
186
+ });
187
+ }
188
+ export function privateModelsConfig(request: OmpSdkSidecarRequest): {
189
+ readonly providers: Readonly<Record<string, Record<string, unknown>>>;
190
+ } {
191
+ const providers: Record<string, Record<string, unknown>> = {};
192
+ for (const [provider, config] of Object.entries(request.modelsConfig.providers)) {
193
+ const copy: unknown = JSON.parse(JSON.stringify(config));
194
+ if (!isRecord(copy)) throw new SidecarFailure('invalid-request', 'request', false);
195
+ delete copy.apiKey;
196
+ providers[provider] = copy;
197
+ }
198
+ return { providers };
199
+ }
@@ -0,0 +1,100 @@
1
+ import { closeSync, readSync } from 'node:fs';
2
+ import { TextDecoder } from 'node:util';
3
+
4
+ import { OMP_SDK_MAX_CREDENTIAL_BYTES, type OmpSdkSidecarRequest } from './sdk-protocol';
5
+ import {
6
+ CREDENTIAL_NAME,
7
+ MAX_CREDENTIAL_COUNT,
8
+ MAX_CREDENTIAL_NAME_BYTES,
9
+ MAX_CREDENTIAL_VALUE_BYTES,
10
+ SidecarFailure,
11
+ isRecord,
12
+ type CredentialChannel,
13
+ } from './sdk-sidecar-types';
14
+
15
+ function closeCredentialChannel(fd: number): void {
16
+ try {
17
+ closeSync(fd);
18
+ } catch {
19
+ throw new SidecarFailure('invalid-request', 'request', false);
20
+ }
21
+ }
22
+ export function readCredentialChannel(fd: number): CredentialChannel {
23
+ if (!Number.isInteger(fd) || fd < 3) {
24
+ throw new SidecarFailure('invalid-request', 'request', false);
25
+ }
26
+ const buffer = Buffer.allocUnsafe(OMP_SDK_MAX_CREDENTIAL_BYTES + 1);
27
+ let offset = 0;
28
+ try {
29
+ while (offset <= OMP_SDK_MAX_CREDENTIAL_BYTES) {
30
+ const count = readSync(fd, buffer, offset, buffer.byteLength - offset, null);
31
+ if (count === 0) break;
32
+ offset += count;
33
+ }
34
+ } catch {
35
+ throw new SidecarFailure('invalid-request', 'request', false);
36
+ } finally {
37
+ closeCredentialChannel(fd);
38
+ }
39
+ if (offset === 0 || offset > OMP_SDK_MAX_CREDENTIAL_BYTES) {
40
+ throw new SidecarFailure('invalid-request', 'request', false);
41
+ }
42
+ let parsed: unknown;
43
+ try {
44
+ const text = new TextDecoder('utf-8', { fatal: true }).decode(buffer.subarray(0, offset));
45
+ parsed = JSON.parse(text);
46
+ } catch {
47
+ throw new SidecarFailure('invalid-request', 'request', false);
48
+ }
49
+ if (
50
+ !isRecord(parsed) ||
51
+ Object.keys(parsed).length !== 2 ||
52
+ parsed.protocolVersion !== 1 ||
53
+ !isRecord(parsed.values)
54
+ ) {
55
+ throw new SidecarFailure('invalid-request', 'request', false);
56
+ }
57
+ const entries = Object.entries(parsed.values);
58
+ if (entries.length > MAX_CREDENTIAL_COUNT) {
59
+ throw new SidecarFailure('invalid-request', 'request', false);
60
+ }
61
+ const values: Record<string, string> = {};
62
+ for (const [name, value] of entries) {
63
+ if (
64
+ !CREDENTIAL_NAME.test(name) ||
65
+ Buffer.byteLength(name) > MAX_CREDENTIAL_NAME_BYTES ||
66
+ typeof value !== 'string' ||
67
+ value.length === 0 ||
68
+ Buffer.byteLength(value) > MAX_CREDENTIAL_VALUE_BYTES
69
+ ) {
70
+ throw new SidecarFailure('invalid-request', 'request', false);
71
+ }
72
+ values[name] = value;
73
+ }
74
+ return { values: Object.freeze(values) };
75
+ }
76
+ export function credentialsForRequest(
77
+ request: OmpSdkSidecarRequest,
78
+ channel: CredentialChannel
79
+ ): CredentialChannel {
80
+ const provider = request.modelSelector.slice(0, request.modelSelector.indexOf('/'));
81
+ let expected: readonly string[];
82
+ if (request.auth.mode === 'environment') {
83
+ const reference = request.auth.credentials[provider];
84
+ if (reference === undefined) throw new SidecarFailure('provider-auth', 'auth', false);
85
+ expected = [reference.env];
86
+ } else if (request.auth.mode === 'broker') {
87
+ expected = ['OMP_AUTH_BROKER_TOKEN', 'OMP_AUTH_BROKER_URL'];
88
+ } else {
89
+ expected = [];
90
+ }
91
+ const actual = Object.keys(channel.values).sort((left, right) => left.localeCompare(right));
92
+ const sortedExpected = [...expected].sort((left, right) => left.localeCompare(right));
93
+ if (
94
+ actual.length !== sortedExpected.length ||
95
+ actual.some((name, index) => name !== sortedExpected[index])
96
+ ) {
97
+ throw new SidecarFailure('provider-auth', 'auth', false);
98
+ }
99
+ return channel;
100
+ }
@@ -0,0 +1,201 @@
1
+ import { promises as fs } from 'node:fs';
2
+ import { isDeepStrictEqual } from 'node:util';
3
+
4
+ import {
5
+ OMP_SDK_BUN_VERSION,
6
+ OMP_SDK_MAX_FRAME_BYTES,
7
+ OMP_SDK_TEXT_OUTPUT_SCHEMA,
8
+ parseOmpSdkSidecarRequest,
9
+ type OmpSdkProtocolFrame,
10
+ type OmpSdkSidecarRequest,
11
+ } from './sdk-protocol';
12
+ import { compilePrivateOmpModelsYaml } from './sdk-settings';
13
+ import { credentialsForRequest, readCredentialChannel } from './sdk-sidecar-credentials';
14
+ import {
15
+ authStorage,
16
+ exactModel,
17
+ isolateEnvironment,
18
+ privateModelsConfig,
19
+ privateState,
20
+ restoreEnvironment,
21
+ } from './sdk-sidecar-context';
22
+ import { resultFrame, successfulValue } from './sdk-sidecar-output';
23
+ import {
24
+ bunVersion,
25
+ createOmpSdkErrorFrame,
26
+ loadOmpSdk,
27
+ requireOmpModelRegistry,
28
+ runIdFrom,
29
+ } from './sdk-sidecar-runtime';
30
+ import {
31
+ ISOLATED_SETTINGS,
32
+ SidecarFailure,
33
+ type CredentialChannel,
34
+ type OmpAuthStorage,
35
+ type OmpSdkSidecarOptions,
36
+ } from './sdk-sidecar-types';
37
+
38
+ async function execute(
39
+ request: OmpSdkSidecarRequest,
40
+ credentials: CredentialChannel,
41
+ options: OmpSdkSidecarOptions
42
+ ): Promise<OmpSdkProtocolFrame> {
43
+ if ((options.runtimeVersion ?? bunVersion)() !== OMP_SDK_BUN_VERSION) {
44
+ throw new SidecarFailure('sdk-error', 'sdk', false);
45
+ }
46
+ const state = await privateState();
47
+ const originalCwd = process.cwd();
48
+ const original = isolateEnvironment(state, request.auth);
49
+ let storage: OmpAuthStorage | undefined;
50
+ let candidate: OmpSdkProtocolFrame | undefined;
51
+ let failure: unknown;
52
+ let changedCwd = false;
53
+ try {
54
+ process.chdir(state.discoveryCwd);
55
+ changedCwd = true;
56
+ await fs.writeFile(
57
+ state.modelsPath,
58
+ compilePrivateOmpModelsYaml(privateModelsConfig(request)),
59
+ {
60
+ encoding: 'utf8',
61
+ flag: 'wx',
62
+ mode: 0o600,
63
+ }
64
+ );
65
+ await fs.chmod(state.modelsPath, 0o600);
66
+ const sdk = await (options.loadOmpSdk ?? loadOmpSdk)();
67
+ const parsed = sdk.parseModelString(request.modelSelector);
68
+ if (parsed === undefined) throw new SidecarFailure('model-resolution', 'model', false);
69
+ storage = await authStorage(sdk, request, state, parsed.provider, credentials);
70
+ const registry = requireOmpModelRegistry(new sdk.ModelRegistry(storage, state.modelsPath));
71
+ if (registry.getError() !== undefined) {
72
+ throw new SidecarFailure('invalid-request', 'request', false);
73
+ }
74
+ const effectiveModel = exactModel(sdk, registry, storage, request);
75
+ const base = sdk.getBundledAgent('task');
76
+ if (base === undefined) throw new SidecarFailure('sdk-error', 'sdk', false);
77
+ const settings = sdk.Settings.isolated({
78
+ ...ISOLATED_SETTINGS,
79
+ enabledModels: [request.modelSelector],
80
+ });
81
+ const agent = {
82
+ ...base,
83
+ tools: [...request.tools],
84
+ spawns: [],
85
+ model: [request.modelSelector],
86
+ thinkingLevel: request.reasoningEffort,
87
+ autoloadSkills: [],
88
+ prewalk: false,
89
+ };
90
+ const schema =
91
+ request.outputMode === 'text' ? OMP_SDK_TEXT_OUTPUT_SCHEMA : request.outputSchema;
92
+ const result = await sdk.runSubprocess({
93
+ cwd: request.cwd,
94
+ agent,
95
+ task: request.prompt,
96
+ context: request.context,
97
+ description: 'Zeroshot strict SDK execution',
98
+ index: 0,
99
+ id: request.runId,
100
+ modelOverride: request.modelSelector,
101
+ thinkingLevel: request.reasoningEffort,
102
+ outputSchema: schema,
103
+ outputSchemaMode: 'strict',
104
+ outputSchemaSource: 'caller',
105
+ outputSchemaOverridesAgent: true,
106
+ settings,
107
+ authStorage: storage,
108
+ modelRegistry: registry,
109
+ restrictToolNames: true,
110
+ enableMCP: false,
111
+ enableIrc: false,
112
+ enableLsp: request.tools.includes('lsp'),
113
+ contextFiles: [],
114
+ skills: [],
115
+ promptTemplates: [],
116
+ workspaceTree: {
117
+ rootPath: request.cwd,
118
+ rendered: '',
119
+ truncated: false,
120
+ totalLines: 0,
121
+ agentsMdFiles: [],
122
+ },
123
+ rules: [],
124
+ preloadedExtensionPaths: [],
125
+ preloadedCustomToolPaths: [],
126
+ keepAlive: false,
127
+ signal: options.signal,
128
+ });
129
+ const rawValue = successfulValue(result, request, schema, options.signal);
130
+ if (
131
+ registry.getError() !== undefined ||
132
+ !isDeepStrictEqual(effectiveModel, exactModel(sdk, registry, storage, request))
133
+ ) {
134
+ throw new SidecarFailure('model-resolution', 'model', false);
135
+ }
136
+ candidate = resultFrame(request, result, rawValue);
137
+ } catch (error) {
138
+ failure = error;
139
+ } finally {
140
+ try {
141
+ storage?.close();
142
+ } catch {
143
+ failure = new SidecarFailure('cleanup-error', 'cleanup', false);
144
+ }
145
+ if (changedCwd) {
146
+ try {
147
+ process.chdir(originalCwd);
148
+ } catch {
149
+ failure = new SidecarFailure('cleanup-error', 'cleanup', false);
150
+ }
151
+ }
152
+ restoreEnvironment(original);
153
+ try {
154
+ await fs.rm(state.root, { force: true, maxRetries: 3, recursive: true });
155
+ } catch {
156
+ failure = new SidecarFailure('cleanup-error', 'cleanup', false);
157
+ }
158
+ }
159
+ if (options.signal?.aborted) {
160
+ throw new SidecarFailure('cancelled', 'cancelled', false);
161
+ }
162
+ if (failure !== undefined) throw failure;
163
+ if (candidate === undefined) throw new SidecarFailure('internal-error', 'internal', false);
164
+ return candidate;
165
+ }
166
+
167
+ export async function executeOmpSdkSidecar(
168
+ input: unknown,
169
+ options: OmpSdkSidecarOptions = {}
170
+ ): Promise<OmpSdkProtocolFrame> {
171
+ const runId = runIdFrom(input);
172
+ let channel: CredentialChannel;
173
+ try {
174
+ channel = readCredentialChannel(options.credentialChannelFd ?? 3);
175
+ } catch (error) {
176
+ return createOmpSdkErrorFrame(runId, error);
177
+ }
178
+ let request: OmpSdkSidecarRequest;
179
+ try {
180
+ request = parseOmpSdkSidecarRequest(input);
181
+ } catch {
182
+ return createOmpSdkErrorFrame(runId, new SidecarFailure('invalid-request', 'request', false));
183
+ }
184
+ try {
185
+ channel = credentialsForRequest(request, channel);
186
+ } catch (error) {
187
+ return createOmpSdkErrorFrame(runId, error);
188
+ }
189
+ try {
190
+ return await execute(request, channel, options);
191
+ } catch (error) {
192
+ return createOmpSdkErrorFrame(runId, error);
193
+ }
194
+ }
195
+ export function serializeOmpSdkFrame(frame: OmpSdkProtocolFrame): string {
196
+ const serialized = `${JSON.stringify(frame)}\n`;
197
+ if (Buffer.byteLength(serialized) <= OMP_SDK_MAX_FRAME_BYTES) return serialized;
198
+ return `${JSON.stringify(
199
+ createOmpSdkErrorFrame(frame.runId, new SidecarFailure('invalid-request', 'request', false))
200
+ )}\n`;
201
+ }