@vibesdotdev/integrations-openai 0.0.0-stage → 1.0.0-rc.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 (295) hide show
  1. package/LICENSE +126 -0
  2. package/README.md +38 -2
  3. package/dist/ai/index.d.ts +4 -0
  4. package/dist/ai/index.d.ts.map +1 -0
  5. package/dist/ai/index.js +4 -0
  6. package/dist/ai/index.js.map +1 -0
  7. package/dist/ai/metadata/assets/logos/providers/openai-dark.svg +12 -0
  8. package/dist/ai/metadata/assets/logos/providers/openai.svg +12 -0
  9. package/dist/ai/metadata/provider-models/openai/openai-gpt-5-4-mini.json +41 -0
  10. package/dist/ai/metadata/provider-models/openai/openai-gpt-5-4.json +41 -0
  11. package/dist/ai/metadata/provider-models/openai/openai-gpt-5-5.json +41 -0
  12. package/dist/ai/metadata/provider-models/openai/openai-gpt-5-6-luna.json +7 -0
  13. package/dist/ai/metadata/provider-models/openai/openai-gpt-5-6-sol.json +7 -0
  14. package/dist/ai/metadata/provider-models/openai/openai-gpt-5-6-terra.json +7 -0
  15. package/dist/ai/metadata/provider-models/openai/openai-gpt-6-1-sol.json +41 -0
  16. package/dist/ai/metadata/provider-models/openai/openai-gpt-6-1-terra.json +40 -0
  17. package/dist/ai/metadata/provider-models/openai/openai-gpt-6-astra.json +41 -0
  18. package/dist/ai/metadata/provider-models/openai/openai-gpt-6-luna.json +41 -0
  19. package/dist/ai/metadata/provider-models/openai/openai-gpt-image-1.json +34 -0
  20. package/dist/ai/metadata/providers/openai.json +36 -0
  21. package/dist/ai/openai-api.d.ts +39 -0
  22. package/dist/ai/openai-api.d.ts.map +1 -0
  23. package/dist/ai/openai-api.js +94 -0
  24. package/dist/ai/openai-api.js.map +1 -0
  25. package/dist/ai/openai-client.d.ts +12 -0
  26. package/dist/ai/openai-client.d.ts.map +1 -0
  27. package/dist/ai/openai-client.js +37 -0
  28. package/dist/ai/openai-client.js.map +1 -0
  29. package/dist/ai/openai-router-codec.d.ts +32 -0
  30. package/dist/ai/openai-router-codec.d.ts.map +1 -0
  31. package/dist/ai/openai-router-codec.js +225 -0
  32. package/dist/ai/openai-router-codec.js.map +1 -0
  33. package/dist/ai/openai.api.plugin.d.ts +6 -0
  34. package/dist/ai/openai.api.plugin.d.ts.map +1 -0
  35. package/dist/ai/openai.api.plugin.js +147 -0
  36. package/dist/ai/openai.api.plugin.js.map +1 -0
  37. package/dist/ai/openai.consumer.plugin.d.ts +6 -0
  38. package/dist/ai/openai.consumer.plugin.d.ts.map +1 -0
  39. package/dist/ai/openai.consumer.plugin.js +28 -0
  40. package/dist/ai/openai.consumer.plugin.js.map +1 -0
  41. package/dist/ai/openai.plugin.d.ts +2 -0
  42. package/dist/ai/openai.plugin.d.ts.map +1 -0
  43. package/dist/ai/openai.plugin.js +2 -0
  44. package/dist/ai/openai.plugin.js.map +1 -0
  45. package/dist/ai/providers/cloud/frontier/openai/config/config.openai.descriptor.d.ts +4194 -0
  46. package/dist/ai/providers/cloud/frontier/openai/config/config.openai.descriptor.d.ts.map +1 -0
  47. package/dist/ai/providers/cloud/frontier/openai/config/config.openai.descriptor.js +28 -0
  48. package/dist/ai/providers/cloud/frontier/openai/config/config.openai.descriptor.js.map +1 -0
  49. package/dist/ai/providers/cloud/frontier/openai/config/schemas/index.d.ts +26 -0
  50. package/dist/ai/providers/cloud/frontier/openai/config/schemas/index.d.ts.map +1 -0
  51. package/dist/ai/providers/cloud/frontier/openai/config/schemas/index.js +39 -0
  52. package/dist/ai/providers/cloud/frontier/openai/config/schemas/index.js.map +1 -0
  53. package/dist/ai/providers/cloud/frontier/openai/index.d.ts +4 -0
  54. package/dist/ai/providers/cloud/frontier/openai/index.d.ts.map +1 -0
  55. package/dist/ai/providers/cloud/frontier/openai/index.js +4 -0
  56. package/dist/ai/providers/cloud/frontier/openai/index.js.map +1 -0
  57. package/dist/ai/providers/cloud/frontier/openai/provider.openai.descriptor.d.ts +183 -0
  58. package/dist/ai/providers/cloud/frontier/openai/provider.openai.descriptor.d.ts.map +1 -0
  59. package/dist/ai/providers/cloud/frontier/openai/provider.openai.descriptor.js +190 -0
  60. package/dist/ai/providers/cloud/frontier/openai/provider.openai.descriptor.js.map +1 -0
  61. package/dist/ai/providers/openai/codex-app-server/codex-app-server.spec.descriptor.d.ts +25 -0
  62. package/dist/ai/providers/openai/codex-app-server/codex-app-server.spec.descriptor.d.ts.map +1 -0
  63. package/dist/ai/providers/openai/codex-app-server/codex-app-server.spec.descriptor.js +20 -0
  64. package/dist/ai/providers/openai/codex-app-server/codex-app-server.spec.descriptor.js.map +1 -0
  65. package/dist/ai/providers/openai/codex-app-server/codex-app-server.spec.impl.d.ts +36 -0
  66. package/dist/ai/providers/openai/codex-app-server/codex-app-server.spec.impl.d.ts.map +1 -0
  67. package/dist/ai/providers/openai/codex-app-server/codex-app-server.spec.impl.js +228 -0
  68. package/dist/ai/providers/openai/codex-app-server/codex-app-server.spec.impl.js.map +1 -0
  69. package/dist/ai/providers/openai/codex-app-server/codex-app-server.transport.descriptor.d.ts +13 -0
  70. package/dist/ai/providers/openai/codex-app-server/codex-app-server.transport.descriptor.d.ts.map +1 -0
  71. package/dist/ai/providers/openai/codex-app-server/codex-app-server.transport.descriptor.js +11 -0
  72. package/dist/ai/providers/openai/codex-app-server/codex-app-server.transport.descriptor.js.map +1 -0
  73. package/dist/ai/providers/openai/codex-app-server/codex-app-server.transport.impl.consumer.d.ts +47 -0
  74. package/dist/ai/providers/openai/codex-app-server/codex-app-server.transport.impl.consumer.d.ts.map +1 -0
  75. package/dist/ai/providers/openai/codex-app-server/codex-app-server.transport.impl.consumer.js +111 -0
  76. package/dist/ai/providers/openai/codex-app-server/codex-app-server.transport.impl.consumer.js.map +1 -0
  77. package/dist/ai/providers/openai/codex-app-server/codex-failure.d.ts +166 -0
  78. package/dist/ai/providers/openai/codex-app-server/codex-failure.d.ts.map +1 -0
  79. package/dist/ai/providers/openai/codex-app-server/codex-failure.js +229 -0
  80. package/dist/ai/providers/openai/codex-app-server/codex-failure.js.map +1 -0
  81. package/dist/ai/providers/openai/codex-app-server/connection.d.ts +83 -0
  82. package/dist/ai/providers/openai/codex-app-server/connection.d.ts.map +1 -0
  83. package/dist/ai/providers/openai/codex-app-server/connection.js +222 -0
  84. package/dist/ai/providers/openai/codex-app-server/connection.js.map +1 -0
  85. package/dist/ai/providers/openai/codex-app-server/failure-chunk.d.ts +10 -0
  86. package/dist/ai/providers/openai/codex-app-server/failure-chunk.d.ts.map +1 -0
  87. package/dist/ai/providers/openai/codex-app-server/failure-chunk.js +33 -0
  88. package/dist/ai/providers/openai/codex-app-server/failure-chunk.js.map +1 -0
  89. package/dist/ai/providers/openai/codex-app-server/index.d.ts +10 -0
  90. package/dist/ai/providers/openai/codex-app-server/index.d.ts.map +1 -0
  91. package/dist/ai/providers/openai/codex-app-server/index.js +9 -0
  92. package/dist/ai/providers/openai/codex-app-server/index.js.map +1 -0
  93. package/dist/ai/providers/openai/codex-app-server/protocol.d.ts +162 -0
  94. package/dist/ai/providers/openai/codex-app-server/protocol.d.ts.map +1 -0
  95. package/dist/ai/providers/openai/codex-app-server/protocol.js +116 -0
  96. package/dist/ai/providers/openai/codex-app-server/protocol.js.map +1 -0
  97. package/dist/ai/providers/openai/codex-app-server/runtime-execution.d.ts +3 -0
  98. package/dist/ai/providers/openai/codex-app-server/runtime-execution.d.ts.map +1 -0
  99. package/dist/ai/providers/openai/codex-app-server/runtime-execution.js +3 -0
  100. package/dist/ai/providers/openai/codex-app-server/runtime-execution.js.map +1 -0
  101. package/dist/ai/providers/openai/codex-app-server/runtime-transport.consumer.d.ts +5 -0
  102. package/dist/ai/providers/openai/codex-app-server/runtime-transport.consumer.d.ts.map +1 -0
  103. package/dist/ai/providers/openai/codex-app-server/runtime-transport.consumer.js +16 -0
  104. package/dist/ai/providers/openai/codex-app-server/runtime-transport.consumer.js.map +1 -0
  105. package/dist/ai/providers/openai/codex-app-server/session.d.ts +24 -0
  106. package/dist/ai/providers/openai/codex-app-server/session.d.ts.map +1 -0
  107. package/dist/ai/providers/openai/codex-app-server/session.js +392 -0
  108. package/dist/ai/providers/openai/codex-app-server/session.js.map +1 -0
  109. package/dist/ai/providers/openai/codex-app-server/spawner.d.ts +9 -0
  110. package/dist/ai/providers/openai/codex-app-server/spawner.d.ts.map +1 -0
  111. package/dist/ai/providers/openai/codex-app-server/spawner.js +48 -0
  112. package/dist/ai/providers/openai/codex-app-server/spawner.js.map +1 -0
  113. package/dist/ai/providers/openai/codex-app-server/tool-name.d.ts +14 -0
  114. package/dist/ai/providers/openai/codex-app-server/tool-name.d.ts.map +1 -0
  115. package/dist/ai/providers/openai/codex-app-server/tool-name.js +45 -0
  116. package/dist/ai/providers/openai/codex-app-server/tool-name.js.map +1 -0
  117. package/dist/ai/providers/openai/codex-subscription.d.ts +48 -0
  118. package/dist/ai/providers/openai/codex-subscription.d.ts.map +1 -0
  119. package/dist/ai/providers/openai/codex-subscription.js +128 -0
  120. package/dist/ai/providers/openai/codex-subscription.js.map +1 -0
  121. package/dist/ai/providers/openai/detection/index.d.ts +2 -0
  122. package/dist/ai/providers/openai/detection/index.d.ts.map +1 -0
  123. package/dist/ai/providers/openai/detection/index.js +2 -0
  124. package/dist/ai/providers/openai/detection/index.js.map +1 -0
  125. package/dist/ai/providers/openai/detection/system.d.ts +5 -0
  126. package/dist/ai/providers/openai/detection/system.d.ts.map +1 -0
  127. package/dist/ai/providers/openai/detection/system.js +25 -0
  128. package/dist/ai/providers/openai/detection/system.js.map +1 -0
  129. package/dist/ai/providers/openai/docs/ai.providers.openai.docs.descriptor.d.ts +4 -0
  130. package/dist/ai/providers/openai/docs/ai.providers.openai.docs.descriptor.d.ts.map +1 -0
  131. package/dist/ai/providers/openai/docs/ai.providers.openai.docs.descriptor.js +39 -0
  132. package/dist/ai/providers/openai/docs/ai.providers.openai.docs.descriptor.js.map +1 -0
  133. package/dist/ai/providers/openai/index.d.ts +4 -0
  134. package/dist/ai/providers/openai/index.d.ts.map +1 -0
  135. package/dist/ai/providers/openai/index.js +4 -0
  136. package/dist/ai/providers/openai/index.js.map +1 -0
  137. package/dist/ai/providers/openai/openai.provider.impl.d.ts +50 -0
  138. package/dist/ai/providers/openai/openai.provider.impl.d.ts.map +1 -0
  139. package/dist/ai/providers/openai/openai.provider.impl.js +331 -0
  140. package/dist/ai/providers/openai/openai.provider.impl.js.map +1 -0
  141. package/dist/ai/providers/openai/recommendations.d.ts +25 -0
  142. package/dist/ai/providers/openai/recommendations.d.ts.map +1 -0
  143. package/dist/ai/providers/openai/recommendations.js +33 -0
  144. package/dist/ai/providers/openai/recommendations.js.map +1 -0
  145. package/dist/ai/transcription/index.d.ts +4 -0
  146. package/dist/ai/transcription/index.d.ts.map +1 -0
  147. package/dist/ai/transcription/index.js +4 -0
  148. package/dist/ai/transcription/index.js.map +1 -0
  149. package/dist/ai/transcription/metadata/assets/logos/providers/openai-dark.svg +12 -0
  150. package/dist/ai/transcription/metadata/assets/logos/providers/openai.svg +12 -0
  151. package/dist/ai/transcription/metadata/provider-models/openai-transcription/openai-transcription-gpt-4o-mini-transcribe-2025-12-15.json +20 -0
  152. package/dist/ai/transcription/metadata/provider-models/openai-transcription/openai-transcription-gpt-4o-mini-transcribe.json +17 -0
  153. package/dist/ai/transcription/metadata/provider-models/openai-transcription/openai-transcription-gpt-4o-transcribe.json +17 -0
  154. package/dist/ai/transcription/metadata/provider-models/openai-transcription/openai-transcription-whisper-1.json +16 -0
  155. package/dist/ai/transcription/metadata/providers/openai-transcription.json +30 -0
  156. package/dist/ai/transcription/provider.plugin.d.ts +6 -0
  157. package/dist/ai/transcription/provider.plugin.d.ts.map +1 -0
  158. package/dist/ai/transcription/provider.plugin.js +120 -0
  159. package/dist/ai/transcription/provider.plugin.js.map +1 -0
  160. package/dist/ai/transcription/providers/cloud/speech/openai-transcription/config/config.openai-transcription.descriptor.d.ts +4194 -0
  161. package/dist/ai/transcription/providers/cloud/speech/openai-transcription/config/config.openai-transcription.descriptor.d.ts.map +1 -0
  162. package/dist/ai/transcription/providers/cloud/speech/openai-transcription/config/config.openai-transcription.descriptor.js +53 -0
  163. package/dist/ai/transcription/providers/cloud/speech/openai-transcription/config/config.openai-transcription.descriptor.js.map +1 -0
  164. package/dist/ai/transcription/providers/cloud/speech/openai-transcription/config/schemas/index.d.ts +17 -0
  165. package/dist/ai/transcription/providers/cloud/speech/openai-transcription/config/schemas/index.d.ts.map +1 -0
  166. package/dist/ai/transcription/providers/cloud/speech/openai-transcription/config/schemas/index.js +10 -0
  167. package/dist/ai/transcription/providers/cloud/speech/openai-transcription/config/schemas/index.js.map +1 -0
  168. package/dist/ai/transcription/providers/cloud/speech/openai-transcription/index.d.ts +5 -0
  169. package/dist/ai/transcription/providers/cloud/speech/openai-transcription/index.d.ts.map +1 -0
  170. package/dist/ai/transcription/providers/cloud/speech/openai-transcription/index.js +4 -0
  171. package/dist/ai/transcription/providers/cloud/speech/openai-transcription/index.js.map +1 -0
  172. package/dist/ai/transcription/providers/cloud/speech/openai-transcription/provider.openai-transcription.descriptor.d.ts +183 -0
  173. package/dist/ai/transcription/providers/cloud/speech/openai-transcription/provider.openai-transcription.descriptor.d.ts.map +1 -0
  174. package/dist/ai/transcription/providers/cloud/speech/openai-transcription/provider.openai-transcription.descriptor.js +49 -0
  175. package/dist/ai/transcription/providers/cloud/speech/openai-transcription/provider.openai-transcription.descriptor.js.map +1 -0
  176. package/dist/ai/transcription/providers/openai-transcription/detection/index.d.ts +2 -0
  177. package/dist/ai/transcription/providers/openai-transcription/detection/index.d.ts.map +1 -0
  178. package/dist/ai/transcription/providers/openai-transcription/detection/index.js +2 -0
  179. package/dist/ai/transcription/providers/openai-transcription/detection/index.js.map +1 -0
  180. package/dist/ai/transcription/providers/openai-transcription/detection/system.d.ts +4 -0
  181. package/dist/ai/transcription/providers/openai-transcription/detection/system.d.ts.map +1 -0
  182. package/dist/ai/transcription/providers/openai-transcription/detection/system.js +21 -0
  183. package/dist/ai/transcription/providers/openai-transcription/detection/system.js.map +1 -0
  184. package/dist/ai/transcription/providers/openai-transcription/index.d.ts +4 -0
  185. package/dist/ai/transcription/providers/openai-transcription/index.d.ts.map +1 -0
  186. package/dist/ai/transcription/providers/openai-transcription/index.js +4 -0
  187. package/dist/ai/transcription/providers/openai-transcription/index.js.map +1 -0
  188. package/dist/ai/transcription/providers/openai-transcription/openai-transcription.provider.impl.d.ts +20 -0
  189. package/dist/ai/transcription/providers/openai-transcription/openai-transcription.provider.impl.d.ts.map +1 -0
  190. package/dist/ai/transcription/providers/openai-transcription/openai-transcription.provider.impl.js +102 -0
  191. package/dist/ai/transcription/providers/openai-transcription/openai-transcription.provider.impl.js.map +1 -0
  192. package/dist/ai/transcription/providers/openai-transcription/recommendations.d.ts +24 -0
  193. package/dist/ai/transcription/providers/openai-transcription/recommendations.d.ts.map +1 -0
  194. package/dist/ai/transcription/providers/openai-transcription/recommendations.js +74 -0
  195. package/dist/ai/transcription/providers/openai-transcription/recommendations.js.map +1 -0
  196. package/dist/ai/tts/index.d.ts +4 -0
  197. package/dist/ai/tts/index.d.ts.map +1 -0
  198. package/dist/ai/tts/index.js +4 -0
  199. package/dist/ai/tts/index.js.map +1 -0
  200. package/dist/ai/tts/metadata/assets/logos/providers/openai-dark.svg +12 -0
  201. package/dist/ai/tts/metadata/assets/logos/providers/openai.svg +12 -0
  202. package/dist/ai/tts/metadata/provider-models/openai-tts/openai-tts-gpt-4o-mini-tts-2025-12-15.json +17 -0
  203. package/dist/ai/tts/metadata/provider-models/openai-tts/openai-tts-gpt-4o-mini-tts.json +17 -0
  204. package/dist/ai/tts/metadata/provider-models/openai-tts/openai-tts-tts-1-hd.json +17 -0
  205. package/dist/ai/tts/metadata/provider-models/openai-tts/openai-tts-tts-1.json +17 -0
  206. package/dist/ai/tts/metadata/providers/openai-tts.json +32 -0
  207. package/dist/ai/tts/provider.plugin.d.ts +6 -0
  208. package/dist/ai/tts/provider.plugin.d.ts.map +1 -0
  209. package/dist/ai/tts/provider.plugin.js +120 -0
  210. package/dist/ai/tts/provider.plugin.js.map +1 -0
  211. package/dist/ai/tts/providers/cloud/speech/openai-tts/config/config.openai-tts.descriptor.d.ts +4194 -0
  212. package/dist/ai/tts/providers/cloud/speech/openai-tts/config/config.openai-tts.descriptor.d.ts.map +1 -0
  213. package/dist/ai/tts/providers/cloud/speech/openai-tts/config/config.openai-tts.descriptor.js +53 -0
  214. package/dist/ai/tts/providers/cloud/speech/openai-tts/config/config.openai-tts.descriptor.js.map +1 -0
  215. package/dist/ai/tts/providers/cloud/speech/openai-tts/config/schemas/index.d.ts +17 -0
  216. package/dist/ai/tts/providers/cloud/speech/openai-tts/config/schemas/index.d.ts.map +1 -0
  217. package/dist/ai/tts/providers/cloud/speech/openai-tts/config/schemas/index.js +10 -0
  218. package/dist/ai/tts/providers/cloud/speech/openai-tts/config/schemas/index.js.map +1 -0
  219. package/dist/ai/tts/providers/cloud/speech/openai-tts/index.d.ts +5 -0
  220. package/dist/ai/tts/providers/cloud/speech/openai-tts/index.d.ts.map +1 -0
  221. package/dist/ai/tts/providers/cloud/speech/openai-tts/index.js +4 -0
  222. package/dist/ai/tts/providers/cloud/speech/openai-tts/index.js.map +1 -0
  223. package/dist/ai/tts/providers/cloud/speech/openai-tts/provider.openai-tts.descriptor.d.ts +183 -0
  224. package/dist/ai/tts/providers/cloud/speech/openai-tts/provider.openai-tts.descriptor.d.ts.map +1 -0
  225. package/dist/ai/tts/providers/cloud/speech/openai-tts/provider.openai-tts.descriptor.js +49 -0
  226. package/dist/ai/tts/providers/cloud/speech/openai-tts/provider.openai-tts.descriptor.js.map +1 -0
  227. package/dist/ai/tts/providers/openai-tts/detection/index.d.ts +2 -0
  228. package/dist/ai/tts/providers/openai-tts/detection/index.d.ts.map +1 -0
  229. package/dist/ai/tts/providers/openai-tts/detection/index.js +2 -0
  230. package/dist/ai/tts/providers/openai-tts/detection/index.js.map +1 -0
  231. package/dist/ai/tts/providers/openai-tts/detection/system.d.ts +4 -0
  232. package/dist/ai/tts/providers/openai-tts/detection/system.d.ts.map +1 -0
  233. package/dist/ai/tts/providers/openai-tts/detection/system.js +21 -0
  234. package/dist/ai/tts/providers/openai-tts/detection/system.js.map +1 -0
  235. package/dist/ai/tts/providers/openai-tts/index.d.ts +4 -0
  236. package/dist/ai/tts/providers/openai-tts/index.d.ts.map +1 -0
  237. package/dist/ai/tts/providers/openai-tts/index.js +4 -0
  238. package/dist/ai/tts/providers/openai-tts/index.js.map +1 -0
  239. package/dist/ai/tts/providers/openai-tts/openai-tts.provider.impl.d.ts +24 -0
  240. package/dist/ai/tts/providers/openai-tts/openai-tts.provider.impl.d.ts.map +1 -0
  241. package/dist/ai/tts/providers/openai-tts/openai-tts.provider.impl.js +120 -0
  242. package/dist/ai/tts/providers/openai-tts/openai-tts.provider.impl.js.map +1 -0
  243. package/dist/ai/tts/providers/openai-tts/recommendations.d.ts +24 -0
  244. package/dist/ai/tts/providers/openai-tts/recommendations.d.ts.map +1 -0
  245. package/dist/ai/tts/providers/openai-tts/recommendations.js +74 -0
  246. package/dist/ai/tts/providers/openai-tts/recommendations.js.map +1 -0
  247. package/dist/external/codex/index.d.ts +162 -0
  248. package/dist/external/codex/index.d.ts.map +1 -0
  249. package/dist/external/codex/index.js +5 -0
  250. package/dist/external/codex/index.js.map +1 -0
  251. package/dist/external/codex/manifest.d.ts +9 -0
  252. package/dist/external/codex/manifest.d.ts.map +1 -0
  253. package/dist/external/codex/manifest.js +201 -0
  254. package/dist/external/codex/manifest.js.map +1 -0
  255. package/dist/external/codex-hooks.d.ts +39 -0
  256. package/dist/external/codex-hooks.d.ts.map +1 -0
  257. package/dist/external/codex-hooks.js +204 -0
  258. package/dist/external/codex-hooks.js.map +1 -0
  259. package/dist/external/codex-presets.d.ts +2033 -0
  260. package/dist/external/codex-presets.d.ts.map +1 -0
  261. package/dist/external/codex-presets.js +312 -0
  262. package/dist/external/codex-presets.js.map +1 -0
  263. package/dist/external/codex-subscription.operation.descriptors.d.ts +57 -0
  264. package/dist/external/codex-subscription.operation.descriptors.d.ts.map +1 -0
  265. package/dist/external/codex-subscription.operation.descriptors.js +22 -0
  266. package/dist/external/codex-subscription.operation.descriptors.js.map +1 -0
  267. package/dist/external/codex-subscription.operations.d.ts +4 -0
  268. package/dist/external/codex-subscription.operations.d.ts.map +1 -0
  269. package/dist/external/codex-subscription.operations.js +42 -0
  270. package/dist/external/codex-subscription.operations.js.map +1 -0
  271. package/dist/external/external.plugin.d.ts +3 -0
  272. package/dist/external/external.plugin.d.ts.map +1 -0
  273. package/dist/external/external.plugin.js +30 -0
  274. package/dist/external/external.plugin.js.map +1 -0
  275. package/dist/external/index.d.ts +4 -0
  276. package/dist/external/index.d.ts.map +1 -0
  277. package/dist/external/index.js +4 -0
  278. package/dist/external/index.js.map +1 -0
  279. package/dist/failure-outcome.d.ts +21 -0
  280. package/dist/failure-outcome.d.ts.map +1 -0
  281. package/dist/failure-outcome.js +22 -0
  282. package/dist/failure-outcome.js.map +1 -0
  283. package/dist/index.d.ts +3 -0
  284. package/dist/index.d.ts.map +1 -0
  285. package/dist/index.js +3 -0
  286. package/dist/index.js.map +1 -0
  287. package/dist/schemas/codex-models.d.ts +23 -0
  288. package/dist/schemas/codex-models.d.ts.map +1 -0
  289. package/dist/schemas/codex-models.js +15 -0
  290. package/dist/schemas/codex-models.js.map +1 -0
  291. package/dist/schemas/codex-wire.d.ts +108 -0
  292. package/dist/schemas/codex-wire.d.ts.map +1 -0
  293. package/dist/schemas/codex-wire.js +25 -0
  294. package/dist/schemas/codex-wire.js.map +1 -0
  295. package/package.json +142 -4
@@ -0,0 +1,229 @@
1
+ /**
2
+ * Typed failures of the Codex app-server integration.
3
+ *
4
+ * Every failure is a `CapabilityError` with a code and a `reason` from the table
5
+ * below, and a message that is fixed per reason. Text the child wrote (a JSON-RPC
6
+ * `error.message`, a turn's error, `additionalDetails`) never enters a message:
7
+ * it rides only in a bounded `cause` ({@link childTextCause}) the logger scrubs.
8
+ */
9
+ import { CapabilityError, CaughtFailureSchema, isCapabilityError, valueFreeFailure } from '@vibesdotdev/kernel';
10
+ import { boundedExcerpt } from '@vibesdotdev/external/jsonrpc';
11
+ import { attempt } from "../../../../failure-outcome.js";
12
+ import { CodexInvalidParamsErrorDetailsSchema } from "../../../../schemas/codex-wire.js";
13
+ const FAILURES = {
14
+ 'chatgpt-account-required': {
15
+ code: 'AUTH_REQUIRED',
16
+ message: 'A managed ChatGPT account and the OpenAI provider are required; sign in through Codex.',
17
+ retryable: false
18
+ },
19
+ 'codex-transport-closed': {
20
+ code: 'UNAVAILABLE',
21
+ message: 'The Codex app-server connection is closed.',
22
+ retryable: true
23
+ },
24
+ 'codex-process-exited': {
25
+ code: 'UNAVAILABLE',
26
+ message: 'The Codex app-server process ended.',
27
+ retryable: true
28
+ },
29
+ 'codex-line-too-long': {
30
+ code: 'UNAVAILABLE',
31
+ message: 'The Codex app-server wrote a line longer than the declared maximum.',
32
+ retryable: false
33
+ },
34
+ 'codex-envelope-unrecognized': {
35
+ code: 'UNAVAILABLE',
36
+ message: 'The Codex app-server wrote output that is not a JSON-RPC message.',
37
+ retryable: false
38
+ },
39
+ 'codex-request-failed': {
40
+ code: 'UNAVAILABLE',
41
+ message: 'The Codex app-server answered a request with an error.',
42
+ retryable: true
43
+ },
44
+ 'codex-request-invalid': {
45
+ code: 'INVALID_INPUT',
46
+ message: 'The Codex app-server refused the request parameters.',
47
+ retryable: false
48
+ },
49
+ 'codex-request-timeout': {
50
+ code: 'TIMEOUT',
51
+ message: 'A Codex app-server request timed out.',
52
+ retryable: true
53
+ },
54
+ 'codex-turn-failed': {
55
+ code: 'UNAVAILABLE',
56
+ message: 'The Codex turn did not complete.',
57
+ retryable: true
58
+ },
59
+ 'codex-usage-limit': {
60
+ code: 'RATE_LIMITED',
61
+ message: 'The Codex account has reached its usage limit.',
62
+ retryable: false
63
+ },
64
+ 'codex-model-unsupported': {
65
+ code: 'INVALID_INPUT',
66
+ message: 'The selected model is not available on this ChatGPT subscription. Choose another model.',
67
+ retryable: false
68
+ },
69
+ 'codex-turn-timeout': {
70
+ code: 'TIMEOUT',
71
+ message: 'The Codex turn timed out before it completed.',
72
+ retryable: true
73
+ },
74
+ 'generation-cancelled': {
75
+ code: 'CANCELLED',
76
+ message: 'The generation was cancelled.',
77
+ retryable: false
78
+ },
79
+ 'codex-output-too-large': {
80
+ code: 'UNAVAILABLE',
81
+ message: 'The Codex turn produced more output than the declared bound.',
82
+ retryable: false
83
+ },
84
+ 'codex-listener-failed': {
85
+ code: 'INTERNAL',
86
+ message: 'A listener of the Codex app-server connection failed.',
87
+ retryable: false
88
+ },
89
+ 'codex-transport-close-failed': {
90
+ code: 'UNAVAILABLE',
91
+ message: 'A Codex app-server connection could not be closed.',
92
+ retryable: false
93
+ },
94
+ 'codex-cli-unavailable': {
95
+ code: 'UNAVAILABLE',
96
+ message: 'The Codex CLI is unavailable in the runtime environment.',
97
+ retryable: false
98
+ },
99
+ 'codex-consumer-host-required': {
100
+ code: 'UNAVAILABLE',
101
+ message: 'Subscription execution requires a connected consumer host.',
102
+ retryable: false
103
+ },
104
+ 'codex-session-program-missing': {
105
+ code: 'INTERNAL',
106
+ message: 'The selected spec did not provide a Codex session program.',
107
+ retryable: false
108
+ },
109
+ 'response-shape-mismatch': {
110
+ code: 'UNAVAILABLE',
111
+ message: 'The Codex app-server answered with a result of an unexpected shape.',
112
+ retryable: false
113
+ },
114
+ 'unsupported-option': {
115
+ code: 'INVALID_INPUT',
116
+ message: 'The Codex app-server spec does not support this request option.',
117
+ retryable: false
118
+ },
119
+ 'unsupported-modality': {
120
+ code: 'INVALID_INPUT',
121
+ message: 'The Codex app-server spec only supports text generation.',
122
+ retryable: false
123
+ },
124
+ 'invalid-tool-arguments': {
125
+ code: 'INVALID_INPUT',
126
+ message: 'The dynamic tool schema is not a JSON object.',
127
+ retryable: false
128
+ },
129
+ 'invalid-tool-id-encoding': {
130
+ code: 'INVALID_INPUT',
131
+ message: 'The dynamic tool id is not a Vibes-encoded tool id.',
132
+ retryable: false
133
+ },
134
+ 'tool-id-too-long': {
135
+ code: 'INVALID_INPUT',
136
+ message: 'The tool id cannot be represented collision-safely within the Codex tool-name limit.',
137
+ retryable: false
138
+ },
139
+ 'invalid-transport-record': {
140
+ code: 'UNAVAILABLE',
141
+ message: 'The transport delivered a record the Codex spec cannot read.',
142
+ retryable: false
143
+ }
144
+ };
145
+ /** The Codex account is not the managed ChatGPT sign-in this provider requires. */
146
+ export class CodexAppServerAuthError extends CapabilityError {
147
+ constructor() {
148
+ const terms = FAILURES['chatgpt-account-required'];
149
+ super(terms.message, terms.code, { reason: 'chatgpt-account-required', retryable: terms.retryable });
150
+ this.name = 'CodexAppServerAuthError';
151
+ }
152
+ }
153
+ /** A typed failure with its reason's fixed message; `details` and `cause` are the caller's bounded facts. */
154
+ export function codexFailure(reason, extra = {}) {
155
+ const terms = FAILURES[reason];
156
+ const options = { reason, retryable: terms.retryable };
157
+ if (extra.details !== undefined)
158
+ options.details = extra.details;
159
+ if (extra.cause !== undefined)
160
+ options.cause = extra.cause;
161
+ return new CapabilityError(terms.message, terms.code, options);
162
+ }
163
+ /**
164
+ * Text the child wrote, kept only as the `cause` of a typed failure: at most 200
165
+ * characters, with control, format and separator characters removed.
166
+ */
167
+ export function childTextCause(text) {
168
+ return new Error(boundedExcerpt(text));
169
+ }
170
+ /** Child text that says the account's allowance is spent. The text is read, never repeated: the failure carries its own message. */
171
+ const USAGE_LIMIT_PATTERN = /usage limit|out of (?:credits|tokens)|insufficient (?:credits|quota)|purchase more credits|exceeded your current/i;
172
+ /** Child text that says the account cannot use the requested model (e.g. "The 'gpt-5.6-sol' model is not supported when using Codex with a ChatGPT account."). Read, never repeated. */
173
+ const MODEL_UNSUPPORTED_PATTERN = /\bmodel\b.{0,80}\bnot supported\b/i;
174
+ /**
175
+ * A turn the child reported failed. The text is classified (a spent allowance and
176
+ * a model the account cannot use are their own reasons, so recovery and the user
177
+ * can act on them) and kept only as the bounded `cause`.
178
+ */
179
+ export function turnFailure(childText) {
180
+ const head = childText.slice(0, 2_000);
181
+ const reason = USAGE_LIMIT_PATTERN.test(head)
182
+ ? 'codex-usage-limit'
183
+ : MODEL_UNSUPPORTED_PATTERN.test(head)
184
+ ? 'codex-model-unsupported'
185
+ : 'codex-turn-failed';
186
+ const cause = childTextCause(childText);
187
+ return codexFailure(reason, { cause });
188
+ }
189
+ /** The failure of a JSON-RPC request or of the child, as the Codex reason that names it. */
190
+ export function codexFailureFrom(caught) {
191
+ const failure = CaughtFailureSchema.parse(caught);
192
+ // Reading a hostile value (a Proxy that traps `name`) can throw: it is then an untyped failure
193
+ // known by its value-free facts, with what the read threw as its cause.
194
+ const read = attempt(() => isCapabilityError(failure));
195
+ if (read.failed) {
196
+ return new CapabilityError('The Codex app-server failed unexpectedly.', 'INTERNAL', {
197
+ reason: 'untyped',
198
+ details: { failure: { ...valueFreeFailure(failure) } },
199
+ cause: read.cause
200
+ });
201
+ }
202
+ if (!read.value || !isCapabilityError(failure)) {
203
+ return new CapabilityError('The Codex app-server failed unexpectedly.', 'INTERNAL', { reason: 'untyped', cause: failure });
204
+ }
205
+ // A failure that already carries one of this package's reasons is the answer as it is.
206
+ if (Object.hasOwn(FAILURES, failure.reason))
207
+ return failure;
208
+ switch (failure.reason) {
209
+ case 'jsonrpc-child-exited':
210
+ return codexFailure('codex-process-exited', { details: failure.details, cause: failure });
211
+ case 'jsonrpc-line-too-large':
212
+ return codexFailure('codex-line-too-long', { details: failure.details, cause: failure });
213
+ case 'jsonrpc-protocol-invalid':
214
+ return failure.details?.stage === 'result-schema' || failure.details?.stage === 'result-schema-threw'
215
+ ? codexFailure('response-shape-mismatch', { details: failure.details, cause: failure })
216
+ : codexFailure('codex-envelope-unrecognized', { cause: failure });
217
+ case 'jsonrpc-closed':
218
+ return codexFailure('codex-transport-closed', { details: failure.details, cause: failure });
219
+ case 'jsonrpc-timeout':
220
+ return codexFailure('codex-request-timeout', { details: failure.details, cause: failure });
221
+ case 'jsonrpc-cancelled':
222
+ return codexFailure('generation-cancelled', { details: failure.details, cause: failure });
223
+ case 'jsonrpc-error':
224
+ return codexFailure(CodexInvalidParamsErrorDetailsSchema.safeParse(failure.details).success ? 'codex-request-invalid' : 'codex-request-failed', { details: failure.details, cause: failure });
225
+ default:
226
+ return failure;
227
+ }
228
+ }
229
+ //# sourceMappingURL=codex-failure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-failure.js","sourceRoot":"","sources":["../../../../../src/ai/providers/openai/codex-app-server/codex-failure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import * as z from 'zod/v4';
2
+ import { type RuntimeRef } from '@vibesdotdev/kernel';
3
+ import { type JsonRpcProcess } from '@vibesdotdev/external/jsonrpc';
4
+ import type { TransportServerRequestHandler } from '@vibesdotdev/ai/transports/interfaces';
5
+ import { codexFailure } from './codex-failure.ts';
6
+ import { type JsonObject, type JsonRpcNotification } from './protocol.ts';
7
+ /** The runtime the connection's timers (`lifecycle`) and its logger are bound to. */
8
+ export type CodexAppServerRuntime = RuntimeRef;
9
+ /** The part of a spawned process the connection drives: piped stdin and stdout, the exit, and signals. */
10
+ export type CodexAppServerProcess = JsonRpcProcess;
11
+ export type CodexAppServerSpawner = () => Promise<CodexAppServerProcess>;
12
+ /**
13
+ * The declared bounds of one Codex app-server connection. None is implied by a
14
+ * default of the shared client: a line, the notification queue, a request and the
15
+ * close all have the value written here.
16
+ */
17
+ export declare const CODEX_APP_SERVER_LIMITS: {
18
+ /** One line the child writes, in bytes (a completed turn carries its items). */
19
+ readonly maxLineBytes: number;
20
+ /** Notifications waiting for the connection's own pump (which delivers them synchronously). */
21
+ readonly notificationCapacity: 4096;
22
+ /** The wait for an answer to one request (never the turn itself). */
23
+ readonly requestTimeoutMs: 30000;
24
+ /** SIGTERM to SIGKILL. */
25
+ readonly graceMs: 2000;
26
+ /** The wait for a SIGKILLed child to be confirmed gone. */
27
+ readonly killWaitMs: 5000;
28
+ };
29
+ export interface CodexAppServerClientOptions {
30
+ clientName?: string;
31
+ clientTitle?: string;
32
+ clientVersion?: string;
33
+ requestTimeoutMs?: number;
34
+ }
35
+ /** What the connection tells one subscriber: each notification, then once that the connection ended. */
36
+ export interface CodexConnectionListener {
37
+ notification(notification: JsonRpcNotification): void;
38
+ closed(failure: ReturnType<typeof codexFailure>): void;
39
+ }
40
+ export interface CodexRequestOptions {
41
+ readonly signal?: AbortSignal;
42
+ }
43
+ /**
44
+ * One persistent `codex app-server --stdio` connection, spoken over the shared
45
+ * JSON-RPC child client (`@vibesdotdev/external/jsonrpc`, `lite` envelope). This
46
+ * module keeps only what is Codex's: the handshake, the managed-account
47
+ * preflight, the routing of dynamic-tool requests to the thread that owns them,
48
+ * and the fan-out of notifications to the sessions of this connection.
49
+ * Authentication stays inside Codex's account store; Vibes never receives or
50
+ * persists OAuth tokens. The client marks itself closed on a child exit or a
51
+ * stream failure (`closed`), so the transport can drop it and start a new one.
52
+ */
53
+ export declare class CodexAppServerConnection {
54
+ readonly runtime: CodexAppServerRuntime;
55
+ private readonly rpc;
56
+ private readonly requestTimeoutMs;
57
+ private readonly listeners;
58
+ private readonly threadHandlers;
59
+ private readonly pump;
60
+ private ended;
61
+ private constructor();
62
+ static connect(runtime: CodexAppServerRuntime, spawn: CodexAppServerSpawner, options?: CodexAppServerClientOptions): Promise<CodexAppServerConnection>;
63
+ /** True once the child ended, its stream or protocol failed, or `close()` was called: nothing more can be sent. */
64
+ get closed(): boolean;
65
+ assertManagedChatGptAccount(): Promise<void>;
66
+ /** Send one request and parse its result with the caller's schema at this boundary. */
67
+ request<S extends z.ZodType>(method: string, params: JsonObject | undefined, schema: S, options?: CodexRequestOptions): Promise<z.infer<S>>;
68
+ notify(method: string, params?: JsonObject): Promise<void>;
69
+ /**
70
+ * Listen to this connection's notifications. The listener is told once when the
71
+ * connection ends (`closed`); subscribing to an ended connection is refused.
72
+ */
73
+ subscribe(listener: CodexConnectionListener): () => void;
74
+ registerThreadHandler(threadId: string, handler: TransportServerRequestHandler): () => void;
75
+ /** SIGTERM, the declared grace, SIGKILL, and a join on the exit. Idempotent. */
76
+ close(): Promise<void>;
77
+ /** Delivers the child's notifications to the subscribers; ends when the client does. */
78
+ private pumpNotifications;
79
+ private consume;
80
+ /** Routes one `item/tool/call` to the handler of the thread it names. */
81
+ private answerToolCall;
82
+ }
83
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../src/ai/providers/openai/codex-app-server/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE3E,OAAO,EAIN,KAAK,cAAc,EACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EACX,6BAA6B,EAE7B,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAEN,YAAY,EAEZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAKN,KAAK,UAAU,EACf,KAAK,mBAAmB,EAExB,MAAM,eAAe,CAAC;AAEvB,qFAAqF;AACrF,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC;AAE/C,0GAA0G;AAC1G,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC;AAEnD,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEzE;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;IACnC,gFAAgF;;IAEhF,+FAA+F;;IAE/F,qEAAqE;;IAErE,0BAA0B;;IAE1B,2DAA2D;;CAElD,CAAC;AAEX,MAAM,WAAW,2BAA2B;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AASD,wGAAwG;AACxG,MAAM,WAAW,uBAAuB;IACvC,YAAY,CAAC,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACtD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,GAAG,IAAI,CAAC;CACvD;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC9B;AAID;;;;;;;;;GASG;AACH,qBAAa,wBAAwB;IAOnC,QAAQ,CAAC,OAAO,EAAE,qBAAqB;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IARlC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoD;IACnF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC,OAAO,CAAC,KAAK,CAA8C;IAE3D,OAAO;WASM,OAAO,CACnB,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,qBAAqB,EAC5B,OAAO,GAAE,2BAAgC,GACvC,OAAO,CAAC,wBAAwB,CAAC;IA4CpC,mHAAmH;IACnH,IAAI,MAAM,IAAI,OAAO,CAEpB;IAEK,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;IAKlD,uFAAuF;IACjF,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,MAAM,EAAE,CAAC,EACT,OAAO,GAAE,mBAAwB,GAC/B,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAQhB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhE;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,IAAI;IAMxD,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B,GAAG,MAAM,IAAI;IAQ3F,gFAAgF;IAC1E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,wFAAwF;YAC1E,iBAAiB;YAyBjB,OAAO;IASrB,yEAAyE;YAC3D,cAAc;CAY5B"}
@@ -0,0 +1,222 @@
1
+ import * as z from 'zod/v4';
2
+ import { CaughtFailureSchema } from '@vibesdotdev/kernel';
3
+ import { getLogger } from '@vibesdotdev/logging';
4
+ import { createJsonRpcChild } from '@vibesdotdev/external/jsonrpc';
5
+ import { attempt, settle } from "../../../../failure-outcome.js";
6
+ import { CodexAppServerAuthError, codexFailure, codexFailureFrom } from "./codex-failure.js";
7
+ import { CodexAccountReadResultSchema, CodexDynamicToolCallParamsSchema, CodexIgnoredResultSchema, JsonValueSchema } from "./protocol.js";
8
+ /**
9
+ * The declared bounds of one Codex app-server connection. None is implied by a
10
+ * default of the shared client: a line, the notification queue, a request and the
11
+ * close all have the value written here.
12
+ */
13
+ export const CODEX_APP_SERVER_LIMITS = {
14
+ /** One line the child writes, in bytes (a completed turn carries its items). */
15
+ maxLineBytes: 8 * 1024 * 1024,
16
+ /** Notifications waiting for the connection's own pump (which delivers them synchronously). */
17
+ notificationCapacity: 4_096,
18
+ /** The wait for an answer to one request (never the turn itself). */
19
+ requestTimeoutMs: 30_000,
20
+ /** SIGTERM to SIGKILL. */
21
+ graceMs: 2_000,
22
+ /** The wait for a SIGKILLed child to be confirmed gone. */
23
+ killWaitMs: 5_000
24
+ };
25
+ const OptionsSchema = z.object({
26
+ clientName: z.string().min(1).max(128).default('vibes'),
27
+ clientTitle: z.string().min(1).max(128).default('Vibes AI Runtime'),
28
+ clientVersion: z.string().min(1).max(64).default('0.1.0'),
29
+ requestTimeoutMs: z.int().min(1).max(600_000).default(CODEX_APP_SERVER_LIMITS.requestTimeoutMs)
30
+ });
31
+ const DYNAMIC_TOOL_CALL_METHOD = 'item/tool/call';
32
+ /**
33
+ * One persistent `codex app-server --stdio` connection, spoken over the shared
34
+ * JSON-RPC child client (`@vibesdotdev/external/jsonrpc`, `lite` envelope). This
35
+ * module keeps only what is Codex's: the handshake, the managed-account
36
+ * preflight, the routing of dynamic-tool requests to the thread that owns them,
37
+ * and the fan-out of notifications to the sessions of this connection.
38
+ * Authentication stays inside Codex's account store; Vibes never receives or
39
+ * persists OAuth tokens. The client marks itself closed on a child exit or a
40
+ * stream failure (`closed`), so the transport can drop it and start a new one.
41
+ */
42
+ export class CodexAppServerConnection {
43
+ runtime;
44
+ rpc;
45
+ requestTimeoutMs;
46
+ listeners = new Set();
47
+ threadHandlers = new Map();
48
+ pump;
49
+ ended;
50
+ constructor(runtime, rpc, requestTimeoutMs) {
51
+ this.runtime = runtime;
52
+ this.rpc = rpc;
53
+ this.requestTimeoutMs = requestTimeoutMs;
54
+ rpc.onRequest(DYNAMIC_TOOL_CALL_METHOD, (request) => this.answerToolCall(request));
55
+ this.pump = this.pumpNotifications();
56
+ }
57
+ static async connect(runtime, spawn, options = {}) {
58
+ const parsed = OptionsSchema.safeParse(options);
59
+ if (!parsed.success) {
60
+ throw codexFailure('unsupported-option', {
61
+ details: { option: parsed.error.issues[0]?.path.map(String).join('.') || 'options' }
62
+ });
63
+ }
64
+ const declared = parsed.data;
65
+ const logger = getLogger('integrations-openai', runtime);
66
+ const settled = await settle(createJsonRpcChild({
67
+ runtime,
68
+ spawn,
69
+ envelope: 'lite',
70
+ maxLineBytes: CODEX_APP_SERVER_LIMITS.maxLineBytes,
71
+ notificationCapacity: CODEX_APP_SERVER_LIMITS.notificationCapacity,
72
+ graceMs: CODEX_APP_SERVER_LIMITS.graceMs,
73
+ killWaitMs: CODEX_APP_SERVER_LIMITS.killWaitMs,
74
+ // stderr is drained and discarded: it may hold credentials or private prompts.
75
+ stderrTailBytes: 0,
76
+ diagnostics: (event) => logger.warn('codex-app-server child event', describeDiagnostic(event)),
77
+ handshake: async (child) => {
78
+ await child.requestParsed('initialize', {
79
+ clientInfo: {
80
+ name: declared.clientName,
81
+ title: declared.clientTitle,
82
+ version: declared.clientVersion
83
+ },
84
+ capabilities: { experimentalApi: true, requestAttestation: false }
85
+ }, CodexIgnoredResultSchema, { deadlineMs: declared.requestTimeoutMs });
86
+ await child.notify('initialized');
87
+ await assertManagedAccount(child, declared.requestTimeoutMs);
88
+ }
89
+ }));
90
+ if (settled.failed)
91
+ throw codexFailureFrom(CaughtFailureSchema.parse(settled.cause));
92
+ return new CodexAppServerConnection(runtime, settled.value, declared.requestTimeoutMs);
93
+ }
94
+ /** True once the child ended, its stream or protocol failed, or `close()` was called: nothing more can be sent. */
95
+ get closed() {
96
+ return this.rpc.closed;
97
+ }
98
+ async assertManagedChatGptAccount() {
99
+ const settled = await settle(assertManagedAccount(this.rpc, this.requestTimeoutMs));
100
+ if (settled.failed)
101
+ throw codexFailureFrom(CaughtFailureSchema.parse(settled.cause));
102
+ }
103
+ /** Send one request and parse its result with the caller's schema at this boundary. */
104
+ async request(method, params, schema, options = {}) {
105
+ const settled = await settle(this.rpc.requestParsed(method, params, schema, { deadlineMs: this.requestTimeoutMs, signal: options.signal }));
106
+ if (settled.failed)
107
+ throw codexFailureFrom(CaughtFailureSchema.parse(settled.cause));
108
+ return settled.value;
109
+ }
110
+ async notify(method, params) {
111
+ const settled = await settle(this.rpc.notify(method, params));
112
+ if (settled.failed)
113
+ throw codexFailureFrom(CaughtFailureSchema.parse(settled.cause));
114
+ }
115
+ /**
116
+ * Listen to this connection's notifications. The listener is told once when the
117
+ * connection ends (`closed`); subscribing to an ended connection is refused.
118
+ */
119
+ subscribe(listener) {
120
+ if (this.ended)
121
+ throw this.ended;
122
+ this.listeners.add(listener);
123
+ return () => this.listeners.delete(listener);
124
+ }
125
+ registerThreadHandler(threadId, handler) {
126
+ if (this.threadHandlers.has(threadId)) {
127
+ throw codexFailure('unsupported-option', { details: { option: 'duplicate-thread-handler' } });
128
+ }
129
+ this.threadHandlers.set(threadId, handler);
130
+ return () => this.threadHandlers.delete(threadId);
131
+ }
132
+ /** SIGTERM, the declared grace, SIGKILL, and a join on the exit. Idempotent. */
133
+ async close() {
134
+ const settled = await settle(this.rpc.close());
135
+ await this.pump;
136
+ if (settled.failed)
137
+ throw codexFailureFrom(CaughtFailureSchema.parse(settled.cause));
138
+ }
139
+ /** Delivers the child's notifications to the subscribers; ends when the client does. */
140
+ async pumpNotifications() {
141
+ const consumed = await settle(this.consume());
142
+ let failure = consumed.failed
143
+ ? codexFailureFrom(CaughtFailureSchema.parse(consumed.cause))
144
+ : codexFailureFrom(this.rpc.failure ?? codexFailure('codex-transport-closed'));
145
+ if (consumed.failed && failure.reason === 'codex-listener-failed') {
146
+ // A listener that throws leaves the connection in a state nobody can reason about: stop the child.
147
+ const stopped = await settle(this.rpc.close());
148
+ if (stopped.failed) {
149
+ failure = codexFailure('codex-listener-failed', { cause: failure });
150
+ getLogger('integrations-openai', this.runtime).warn('codex-app-server close after a listener failure failed', {
151
+ error: stopped.cause
152
+ });
153
+ }
154
+ }
155
+ this.ended = failure;
156
+ for (const listener of this.listeners) {
157
+ const told = attempt(() => listener.closed(failure));
158
+ if (told.failed) {
159
+ getLogger('integrations-openai', this.runtime).warn('codex-app-server listener close failed', { error: told.cause });
160
+ }
161
+ }
162
+ this.listeners.clear();
163
+ }
164
+ async consume() {
165
+ for await (const notification of this.rpc.notifications()) {
166
+ for (const listener of this.listeners) {
167
+ const told = attempt(() => listener.notification({ method: notification.method, params: notification.params }));
168
+ if (told.failed)
169
+ throw codexFailure('codex-listener-failed', { cause: told.cause });
170
+ }
171
+ }
172
+ }
173
+ /** Routes one `item/tool/call` to the handler of the thread it names. */
174
+ async answerToolCall(request) {
175
+ const thread = CodexDynamicToolCallParamsSchema.pick({ threadId: true }).safeParse(request.params);
176
+ const handler = thread.success ? this.threadHandlers.get(thread.data.threadId) : undefined;
177
+ // A throw is answered -32603 by the client and reported value-free; Codex sees a failed call.
178
+ if (!handler)
179
+ throw codexFailure('codex-request-failed', { details: { method: request.method, handler: 'absent' } });
180
+ const response = await handler({ id: request.id, method: request.method, params: request.params });
181
+ return toolCallAnswer(response);
182
+ }
183
+ }
184
+ /** `account/read` must report a managed ChatGPT account. */
185
+ async function assertManagedAccount(child, deadlineMs) {
186
+ const auth = await child.requestParsed('account/read', { refreshToken: false }, CodexAccountReadResultSchema, {
187
+ deadlineMs
188
+ });
189
+ if (auth.account?.type !== 'chatgpt' || auth.requiresOpenaiAuth !== true)
190
+ throw new CodexAppServerAuthError();
191
+ }
192
+ /**
193
+ * The JSON-RPC answer of a dynamic tool call. A handler's refusal (its own typed
194
+ * message, never child text) becomes a failed tool result Codex shows the model.
195
+ */
196
+ function toolCallAnswer(response) {
197
+ if (response.error) {
198
+ return { contentItems: [{ type: 'inputText', text: response.error.message }], success: false };
199
+ }
200
+ const result = JsonValueSchema.safeParse(response.result ?? null);
201
+ if (!result.success) {
202
+ return { contentItems: [{ type: 'inputText', text: 'The tool result is not JSON.' }], success: false };
203
+ }
204
+ return result.data;
205
+ }
206
+ function describeDiagnostic(event) {
207
+ switch (event.kind) {
208
+ case 'unmatched-response':
209
+ return { kind: event.kind, late: event.late };
210
+ case 'unhandled-request':
211
+ case 'request-handler-failed':
212
+ case 'abort-hook-failed':
213
+ return { kind: event.kind, method: event.method };
214
+ case 'stderr-failed':
215
+ return { kind: event.kind };
216
+ case 'cleanup-failed':
217
+ return { kind: event.kind, stage: event.stage };
218
+ case 'join-timeout':
219
+ return { kind: event.kind, pending: event.pending };
220
+ }
221
+ }
222
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../../../src/ai/providers/openai/codex-app-server/connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { WireResponseChunk } from '@vibesdotdev/ai/specs/interfaces';
2
+ /**
3
+ * Streams `source` unchanged. A failure that `source` raises ends the stream as
4
+ * one in-band `error` chunk followed by `end`: the wire contract for a failed
5
+ * call. The chunk carries the failure itself when it is an `Error`, else an
6
+ * `Error` that keeps the thrown value as its cause. When the consumer stops
7
+ * early the source is closed too, so its own cleanup runs.
8
+ */
9
+ export declare function failureAsChunk(source: AsyncIterable<WireResponseChunk>): AsyncGenerator<WireResponseChunk>;
10
+ //# sourceMappingURL=failure-chunk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-chunk.d.ts","sourceRoot":"","sources":["../../../../../src/ai/providers/openai/codex-app-server/failure-chunk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAG1E;;;;;;GAMG;AACH,wBAAuB,cAAc,CACpC,MAAM,EAAE,aAAa,CAAC,iBAAiB,CAAC,GACtC,cAAc,CAAC,iBAAiB,CAAC,CAsBnC"}
@@ -0,0 +1,33 @@
1
+ import { settle } from "../../../../failure-outcome.js";
2
+ /**
3
+ * Streams `source` unchanged. A failure that `source` raises ends the stream as
4
+ * one in-band `error` chunk followed by `end`: the wire contract for a failed
5
+ * call. The chunk carries the failure itself when it is an `Error`, else an
6
+ * `Error` that keeps the thrown value as its cause. When the consumer stops
7
+ * early the source is closed too, so its own cleanup runs.
8
+ */
9
+ export async function* failureAsChunk(source) {
10
+ const iterator = source[Symbol.asyncIterator]();
11
+ try {
12
+ while (true) {
13
+ const step = await settle(iterator.next());
14
+ if (step.failed) {
15
+ yield {
16
+ kind: 'error',
17
+ error: step.cause instanceof Error
18
+ ? step.cause
19
+ : new Error(String(step.cause), { cause: step.cause })
20
+ };
21
+ yield { kind: 'end' };
22
+ return;
23
+ }
24
+ if (step.value.done)
25
+ return;
26
+ yield step.value.value;
27
+ }
28
+ }
29
+ finally {
30
+ await iterator.return?.();
31
+ }
32
+ }
33
+ //# sourceMappingURL=failure-chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-chunk.js","sourceRoot":"","sources":["../../../../../src/ai/providers/openai/codex-app-server/failure-chunk.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,cAAc,CACpC,MAAwC;IAExC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAChD,IAAI,CAAC;QACJ,OAAO,IAAI,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM;oBACL,IAAI,EAAE,OAAO;oBACb,KAAK,EACJ,IAAI,CAAC,KAAK,YAAY,KAAK;wBAC1B,CAAC,CAAC,IAAI,CAAC,KAAK;wBACZ,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;iBACxD,CAAC;gBACF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACtB,OAAO;YACR,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAE,OAAO;YAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACxB,CAAC;IACF,CAAC;YAAS,CAAC;QACV,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;IAC3B,CAAC;AACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ export { CodexAppServerConnection, CODEX_APP_SERVER_LIMITS, type CodexAppServerClientOptions, type CodexAppServerProcess, type CodexAppServerSpawner } from './connection.ts';
2
+ export { CodexAppServerAuthError } from './codex-failure.ts';
3
+ export { CodexAppServerTransport } from './codex-app-server.transport.impl.consumer.ts';
4
+ export { default as codexAppServerTransportDescriptor } from './codex-app-server.transport.descriptor.ts';
5
+ export { default as codexAppServerSpec } from './codex-app-server.spec.impl.ts';
6
+ export { default as codexAppServerSpecDescriptor } from './codex-app-server.spec.descriptor.ts';
7
+ export { createCodexAppServerSpawner, createRuntimeCodexAppServerTransport } from './runtime-execution.ts';
8
+ export { encodeCodexToolName, decodeCodexToolName } from './tool-name.ts';
9
+ export type { CodexAppServerRecord, CodexAppServerWireBody, CodexApprovalPolicy, CodexDynamicTool, CodexDynamicToolCallParams, CodexDynamicToolCallResult, CodexReasoningEffort, CodexSandboxMode, CodexToolExecutionEvidence, CodexTurnInput, JsonRpcId, JsonRpcNotification, JsonRpcRequest } from './protocol.ts';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ai/providers/openai/codex-app-server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EACN,uBAAuB,EACvB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC1G,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAChG,OAAO,EACN,2BAA2B,EAC3B,oCAAoC,EACpC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,YAAY,EACX,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,MAAM,eAAe,CAAC"}