@bolt-foundry/gambit 0.8.6-rc.3 → 0.8.6-rc.4

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 (338) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/esm/gambit/simulator-ui/dist/bundle.js +2435 -620
  3. package/esm/gambit/simulator-ui/dist/bundle.js.map +4 -4
  4. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/entrypoint.d.ts +7 -0
  5. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/entrypoint.d.ts.map +1 -0
  6. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/entrypoint.js +22 -0
  7. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/normalization_ast.d.ts +4 -0
  8. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/normalization_ast.d.ts.map +1 -0
  9. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/normalization_ast.js +456 -0
  10. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/output_type.d.ts +3 -0
  11. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/output_type.d.ts.map +1 -0
  12. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/output_type.js +1 -0
  13. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/param_type.d.ts +110 -0
  14. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/param_type.d.ts.map +1 -0
  15. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/param_type.js +1 -0
  16. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/parameters_type.d.ts +10 -0
  17. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/parameters_type.d.ts.map +1 -0
  18. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/parameters_type.js +1 -0
  19. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/query_text.d.ts +3 -0
  20. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/query_text.d.ts.map +1 -0
  21. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/query_text.js +96 -0
  22. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/raw_response_type.d.ts +91 -0
  23. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/raw_response_type.d.ts.map +1 -0
  24. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/raw_response_type.js +1 -0
  25. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/resolver_reader.d.ts +6 -0
  26. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/resolver_reader.d.ts.map +1 -0
  27. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/resolver_reader.js +610 -0
  28. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/normalization_ast.d.ts.map +1 -1
  29. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/normalization_ast.js +86 -0
  30. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/param_type.d.ts +18 -0
  31. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/param_type.d.ts.map +1 -1
  32. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/query_text.d.ts +1 -1
  33. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/query_text.d.ts.map +1 -1
  34. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/query_text.js +18 -0
  35. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/raw_response_type.d.ts +18 -0
  36. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/raw_response_type.d.ts.map +1 -1
  37. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/resolver_reader.d.ts.map +1 -1
  38. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/resolver_reader.js +120 -0
  39. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/normalization_ast.d.ts.map +1 -1
  40. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/normalization_ast.js +43 -0
  41. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/param_type.d.ts +9 -0
  42. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/param_type.d.ts.map +1 -1
  43. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/query_text.d.ts +1 -1
  44. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/query_text.d.ts.map +1 -1
  45. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/query_text.js +9 -0
  46. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/raw_response_type.d.ts +9 -0
  47. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/raw_response_type.d.ts.map +1 -1
  48. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/resolver_reader.d.ts.map +1 -1
  49. package/esm/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/resolver_reader.js +60 -0
  50. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/normalization_ast.d.ts.map +1 -1
  51. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/normalization_ast.js +43 -0
  52. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/query_text.d.ts +1 -1
  53. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/query_text.d.ts.map +1 -1
  54. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/query_text.js +9 -0
  55. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/raw_response_type.d.ts +9 -0
  56. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/raw_response_type.d.ts.map +1 -1
  57. package/esm/simulator-ui/__generated__/__isograph/Workspace/TestTab/param_type.d.ts +9 -0
  58. package/esm/simulator-ui/__generated__/__isograph/Workspace/TestTab/param_type.d.ts.map +1 -1
  59. package/esm/simulator-ui/__generated__/__isograph/Workspace/TestTab/resolver_reader.d.ts.map +1 -1
  60. package/esm/simulator-ui/__generated__/__isograph/Workspace/TestTab/resolver_reader.js +60 -0
  61. package/esm/simulator-ui/__generated__/__isograph/iso.d.ts +4 -0
  62. package/esm/simulator-ui/__generated__/__isograph/iso.d.ts.map +1 -1
  63. package/esm/simulator-ui/__generated__/__isograph/iso.js +3 -0
  64. package/esm/simulator-ui/__generated__/builtRoutes.d.ts +2 -0
  65. package/esm/simulator-ui/__generated__/builtRoutes.d.ts.map +1 -1
  66. package/esm/simulator-ui/__generated__/builtRoutes.js +3 -0
  67. package/esm/simulator-ui/isograph/components/Query/SimulatorTestPage.d.ts.map +1 -1
  68. package/esm/simulator-ui/isograph/components/Query/SimulatorTestPage.js +141 -4
  69. package/esm/simulator-ui/isograph/entrypoints/EntrypointSimulatorWorkspaceShell.d.ts.map +1 -1
  70. package/esm/simulator-ui/isograph/entrypoints/EntrypointSimulatorWorkspaceShell.js +3 -1
  71. package/esm/simulator-ui/mutations/GambitWorkspaceFeedbackSave.d.ts +93 -0
  72. package/esm/simulator-ui/mutations/GambitWorkspaceFeedbackSave.d.ts.map +1 -0
  73. package/esm/simulator-ui/mutations/GambitWorkspaceFeedbackSave.js +101 -0
  74. package/esm/simulator-ui/mutations/GambitWorkspaceFeedbackSaveMutation.d.ts +93 -0
  75. package/esm/simulator-ui/mutations/GambitWorkspaceFeedbackSaveMutation.d.ts.map +1 -0
  76. package/esm/simulator-ui/mutations/GambitWorkspaceFeedbackSaveMutation.js +7 -0
  77. package/esm/simulator-ui/mutations/GambitWorkspaceScenarioRunSend.d.ts +18 -0
  78. package/esm/simulator-ui/mutations/GambitWorkspaceScenarioRunSend.d.ts.map +1 -1
  79. package/esm/simulator-ui/mutations/GambitWorkspaceScenarioRunSend.js +18 -0
  80. package/esm/simulator-ui/mutations/GambitWorkspaceScenarioRunSendMutation.d.ts +18 -0
  81. package/esm/simulator-ui/mutations/GambitWorkspaceScenarioRunSendMutation.d.ts.map +1 -1
  82. package/esm/simulator-ui/mutations/GambitWorkspaceScenarioRunStart.d.ts +9 -0
  83. package/esm/simulator-ui/mutations/GambitWorkspaceScenarioRunStart.d.ts.map +1 -1
  84. package/esm/simulator-ui/mutations/GambitWorkspaceScenarioRunStart.js +9 -0
  85. package/esm/simulator-ui/mutations/GambitWorkspaceScenarioRunStartMutation.d.ts +9 -0
  86. package/esm/simulator-ui/mutations/GambitWorkspaceScenarioRunStartMutation.d.ts.map +1 -1
  87. package/esm/simulator-ui/src/AppIsoMinimal.d.ts +3 -0
  88. package/esm/simulator-ui/src/AppIsoMinimal.d.ts.map +1 -1
  89. package/esm/simulator-ui/src/AppIsoMinimal.js +7 -4
  90. package/esm/simulator-ui/src/AppShell.d.ts.map +1 -1
  91. package/esm/simulator-ui/src/AppShell.js +2 -2
  92. package/esm/simulator-ui/src/MinimalRouterRoot.js +4 -2
  93. package/esm/simulator-ui/src/RouterContext.d.ts.map +1 -1
  94. package/esm/simulator-ui/src/RouterContext.js +7 -3
  95. package/esm/simulator-ui/src/shared.d.ts.map +1 -1
  96. package/esm/simulator-ui/src/shared.js +3 -3
  97. package/esm/src/server/request_handler.d.ts +210 -0
  98. package/esm/src/server/request_handler.d.ts.map +1 -0
  99. package/esm/src/server/request_handler.js +416 -0
  100. package/esm/src/server/workspace/build.d.ts +57 -0
  101. package/esm/src/server/workspace/build.d.ts.map +1 -0
  102. package/esm/src/server/workspace/build.js +377 -0
  103. package/esm/src/server/workspace/conversation_sessions.d.ts +83 -0
  104. package/esm/src/server/workspace/conversation_sessions.d.ts.map +1 -0
  105. package/esm/src/server/workspace/conversation_sessions.js +163 -0
  106. package/esm/src/server/workspace/grading.d.ts +52 -0
  107. package/esm/src/server/workspace/grading.d.ts.map +1 -0
  108. package/esm/src/server/workspace/grading.js +488 -0
  109. package/esm/src/server/workspace/helpers.d.ts +46 -0
  110. package/esm/src/server/workspace/helpers.d.ts.map +1 -0
  111. package/esm/src/server/workspace/helpers.js +340 -0
  112. package/esm/src/server/workspace/read_model.d.ts +35 -0
  113. package/esm/src/server/workspace/read_model.d.ts.map +1 -0
  114. package/esm/src/server/workspace/read_model.js +121 -0
  115. package/esm/src/server/workspace/response_events.d.ts +28 -0
  116. package/esm/src/server/workspace/response_events.d.ts.map +1 -0
  117. package/esm/src/server/workspace/response_events.js +178 -0
  118. package/esm/src/server/workspace/run_deck.d.ts +23 -0
  119. package/esm/src/server/workspace/run_deck.d.ts.map +1 -0
  120. package/esm/src/server/workspace/run_deck.js +79 -0
  121. package/esm/src/server/workspace/scenario_history.d.ts +8 -0
  122. package/esm/src/server/workspace/scenario_history.d.ts.map +1 -0
  123. package/esm/src/server/workspace/scenario_history.js +269 -0
  124. package/esm/src/server/workspace/scenarios.d.ts +93 -0
  125. package/esm/src/server/workspace/scenarios.d.ts.map +1 -0
  126. package/esm/src/server/workspace/scenarios.js +1052 -0
  127. package/esm/src/server/workspace/schema.d.ts +35 -0
  128. package/esm/src/server/workspace/schema.d.ts.map +1 -0
  129. package/esm/src/server/workspace/schema.js +427 -0
  130. package/esm/src/server/workspace/sessions.d.ts +38 -0
  131. package/esm/src/server/workspace/sessions.d.ts.map +1 -0
  132. package/esm/src/server/workspace/sessions.js +232 -0
  133. package/esm/src/server/workspace/types.d.ts +128 -0
  134. package/esm/src/server/workspace/types.d.ts.map +1 -0
  135. package/esm/src/server/workspace/types.js +1 -0
  136. package/esm/src/server/workspace/verify.d.ts +52 -0
  137. package/esm/src/server/workspace/verify.d.ts.map +1 -0
  138. package/esm/src/server/workspace/verify.js +449 -0
  139. package/esm/src/server.d.ts +0 -3
  140. package/esm/src/server.d.ts.map +1 -1
  141. package/esm/src/server.js +324 -6732
  142. package/esm/src/server_isograph_environment.d.ts +12 -1
  143. package/esm/src/server_isograph_environment.d.ts.map +1 -1
  144. package/esm/src/server_legacy_api_routes.d.ts +137 -0
  145. package/esm/src/server_legacy_api_routes.d.ts.map +1 -0
  146. package/esm/src/server_legacy_api_routes.js +629 -0
  147. package/esm/src/server_openresponses.d.ts +6 -0
  148. package/esm/src/server_openresponses.d.ts.map +1 -0
  149. package/esm/src/server_openresponses.js +687 -0
  150. package/esm/src/server_session_store.d.ts +4 -0
  151. package/esm/src/server_session_store.d.ts.map +1 -1
  152. package/esm/src/server_session_store.js +196 -1
  153. package/esm/src/server_simulator_ui.d.ts +27 -0
  154. package/esm/src/server_simulator_ui.d.ts.map +1 -0
  155. package/esm/src/server_simulator_ui.js +501 -0
  156. package/esm/src/server_types.d.ts +22 -0
  157. package/esm/src/server_types.d.ts.map +1 -1
  158. package/esm/src/server_workspace_decks.d.ts +31 -0
  159. package/esm/src/server_workspace_decks.d.ts.map +1 -0
  160. package/esm/src/server_workspace_decks.js +98 -0
  161. package/esm/src/server_workspace_graphql.d.ts +17 -0
  162. package/esm/src/server_workspace_graphql.d.ts.map +1 -0
  163. package/esm/src/server_workspace_graphql.js +52 -0
  164. package/esm/src/server_workspace_runtime.d.ts +55 -0
  165. package/esm/src/server_workspace_runtime.d.ts.map +1 -0
  166. package/esm/src/server_workspace_runtime.js +358 -0
  167. package/esm/src/simulator_graphql.d.ts +14 -1
  168. package/esm/src/simulator_graphql.d.ts.map +1 -1
  169. package/esm/src/simulator_graphql.js +77 -0
  170. package/package.json +1 -1
  171. package/script/gambit/simulator-ui/dist/bundle.js +2435 -620
  172. package/script/gambit/simulator-ui/dist/bundle.js.map +4 -4
  173. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/entrypoint.d.ts +7 -0
  174. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/entrypoint.d.ts.map +1 -0
  175. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/entrypoint.js +27 -0
  176. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/normalization_ast.d.ts +4 -0
  177. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/normalization_ast.d.ts.map +1 -0
  178. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/normalization_ast.js +458 -0
  179. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/output_type.d.ts +3 -0
  180. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/output_type.d.ts.map +1 -0
  181. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/output_type.js +2 -0
  182. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/param_type.d.ts +110 -0
  183. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/param_type.d.ts.map +1 -0
  184. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/param_type.js +2 -0
  185. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/parameters_type.d.ts +10 -0
  186. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/parameters_type.d.ts.map +1 -0
  187. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/parameters_type.js +2 -0
  188. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/query_text.d.ts +3 -0
  189. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/query_text.d.ts.map +1 -0
  190. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/query_text.js +98 -0
  191. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/raw_response_type.d.ts +91 -0
  192. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/raw_response_type.d.ts.map +1 -0
  193. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/raw_response_type.js +2 -0
  194. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/resolver_reader.d.ts +6 -0
  195. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/resolver_reader.d.ts.map +1 -0
  196. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceFeedbackSave/resolver_reader.js +615 -0
  197. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/normalization_ast.d.ts.map +1 -1
  198. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/normalization_ast.js +86 -0
  199. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/param_type.d.ts +18 -0
  200. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/param_type.d.ts.map +1 -1
  201. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/query_text.d.ts +1 -1
  202. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/query_text.d.ts.map +1 -1
  203. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/query_text.js +18 -0
  204. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/raw_response_type.d.ts +18 -0
  205. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/raw_response_type.d.ts.map +1 -1
  206. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/resolver_reader.d.ts.map +1 -1
  207. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunSend/resolver_reader.js +120 -0
  208. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/normalization_ast.d.ts.map +1 -1
  209. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/normalization_ast.js +43 -0
  210. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/param_type.d.ts +9 -0
  211. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/param_type.d.ts.map +1 -1
  212. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/query_text.d.ts +1 -1
  213. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/query_text.d.ts.map +1 -1
  214. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/query_text.js +9 -0
  215. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/raw_response_type.d.ts +9 -0
  216. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/raw_response_type.d.ts.map +1 -1
  217. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/resolver_reader.d.ts.map +1 -1
  218. package/script/simulator-ui/__generated__/__isograph/Mutation/GambitWorkspaceScenarioRunStart/resolver_reader.js +60 -0
  219. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/normalization_ast.d.ts.map +1 -1
  220. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/normalization_ast.js +43 -0
  221. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/query_text.d.ts +1 -1
  222. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/query_text.d.ts.map +1 -1
  223. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/query_text.js +9 -0
  224. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/raw_response_type.d.ts +9 -0
  225. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/raw_response_type.d.ts.map +1 -1
  226. package/script/simulator-ui/__generated__/__isograph/Workspace/TestTab/param_type.d.ts +9 -0
  227. package/script/simulator-ui/__generated__/__isograph/Workspace/TestTab/param_type.d.ts.map +1 -1
  228. package/script/simulator-ui/__generated__/__isograph/Workspace/TestTab/resolver_reader.d.ts.map +1 -1
  229. package/script/simulator-ui/__generated__/__isograph/Workspace/TestTab/resolver_reader.js +60 -0
  230. package/script/simulator-ui/__generated__/__isograph/iso.d.ts +4 -0
  231. package/script/simulator-ui/__generated__/__isograph/iso.d.ts.map +1 -1
  232. package/script/simulator-ui/__generated__/__isograph/iso.js +45 -42
  233. package/script/simulator-ui/__generated__/builtRoutes.d.ts +2 -0
  234. package/script/simulator-ui/__generated__/builtRoutes.d.ts.map +1 -1
  235. package/script/simulator-ui/__generated__/builtRoutes.js +18 -15
  236. package/script/simulator-ui/isograph/components/Query/SimulatorTestPage.d.ts.map +1 -1
  237. package/script/simulator-ui/isograph/components/Query/SimulatorTestPage.js +141 -4
  238. package/script/simulator-ui/isograph/entrypoints/EntrypointSimulatorWorkspaceShell.d.ts.map +1 -1
  239. package/script/simulator-ui/isograph/entrypoints/EntrypointSimulatorWorkspaceShell.js +3 -1
  240. package/script/simulator-ui/mutations/GambitWorkspaceFeedbackSave.d.ts +93 -0
  241. package/script/simulator-ui/mutations/GambitWorkspaceFeedbackSave.d.ts.map +1 -0
  242. package/script/simulator-ui/mutations/GambitWorkspaceFeedbackSave.js +104 -0
  243. package/script/simulator-ui/mutations/GambitWorkspaceFeedbackSaveMutation.d.ts +93 -0
  244. package/script/simulator-ui/mutations/GambitWorkspaceFeedbackSaveMutation.d.ts.map +1 -0
  245. package/script/simulator-ui/mutations/GambitWorkspaceFeedbackSaveMutation.js +13 -0
  246. package/script/simulator-ui/mutations/GambitWorkspaceScenarioRunSend.d.ts +18 -0
  247. package/script/simulator-ui/mutations/GambitWorkspaceScenarioRunSend.d.ts.map +1 -1
  248. package/script/simulator-ui/mutations/GambitWorkspaceScenarioRunSend.js +18 -0
  249. package/script/simulator-ui/mutations/GambitWorkspaceScenarioRunSendMutation.d.ts +18 -0
  250. package/script/simulator-ui/mutations/GambitWorkspaceScenarioRunSendMutation.d.ts.map +1 -1
  251. package/script/simulator-ui/mutations/GambitWorkspaceScenarioRunStart.d.ts +9 -0
  252. package/script/simulator-ui/mutations/GambitWorkspaceScenarioRunStart.d.ts.map +1 -1
  253. package/script/simulator-ui/mutations/GambitWorkspaceScenarioRunStart.js +9 -0
  254. package/script/simulator-ui/mutations/GambitWorkspaceScenarioRunStartMutation.d.ts +9 -0
  255. package/script/simulator-ui/mutations/GambitWorkspaceScenarioRunStartMutation.d.ts.map +1 -1
  256. package/script/simulator-ui/src/AppIsoMinimal.d.ts +3 -0
  257. package/script/simulator-ui/src/AppIsoMinimal.d.ts.map +1 -1
  258. package/script/simulator-ui/src/AppIsoMinimal.js +7 -4
  259. package/script/simulator-ui/src/AppShell.d.ts.map +1 -1
  260. package/script/simulator-ui/src/AppShell.js +1 -1
  261. package/script/simulator-ui/src/MinimalRouterRoot.js +4 -2
  262. package/script/simulator-ui/src/RouterContext.d.ts.map +1 -1
  263. package/script/simulator-ui/src/RouterContext.js +6 -2
  264. package/script/simulator-ui/src/shared.d.ts.map +1 -1
  265. package/script/simulator-ui/src/shared.js +3 -3
  266. package/script/src/server/request_handler.d.ts +210 -0
  267. package/script/src/server/request_handler.d.ts.map +1 -0
  268. package/script/src/server/request_handler.js +453 -0
  269. package/script/src/server/workspace/build.d.ts +57 -0
  270. package/script/src/server/workspace/build.d.ts.map +1 -0
  271. package/script/src/server/workspace/build.js +381 -0
  272. package/script/src/server/workspace/conversation_sessions.d.ts +83 -0
  273. package/script/src/server/workspace/conversation_sessions.d.ts.map +1 -0
  274. package/script/src/server/workspace/conversation_sessions.js +167 -0
  275. package/script/src/server/workspace/grading.d.ts +52 -0
  276. package/script/src/server/workspace/grading.d.ts.map +1 -0
  277. package/script/src/server/workspace/grading.js +492 -0
  278. package/script/src/server/workspace/helpers.d.ts +46 -0
  279. package/script/src/server/workspace/helpers.d.ts.map +1 -0
  280. package/script/src/server/workspace/helpers.js +353 -0
  281. package/script/src/server/workspace/read_model.d.ts +35 -0
  282. package/script/src/server/workspace/read_model.d.ts.map +1 -0
  283. package/script/src/server/workspace/read_model.js +125 -0
  284. package/script/src/server/workspace/response_events.d.ts +28 -0
  285. package/script/src/server/workspace/response_events.d.ts.map +1 -0
  286. package/script/src/server/workspace/response_events.js +182 -0
  287. package/script/src/server/workspace/run_deck.d.ts +23 -0
  288. package/script/src/server/workspace/run_deck.d.ts.map +1 -0
  289. package/script/src/server/workspace/run_deck.js +84 -0
  290. package/script/src/server/workspace/scenario_history.d.ts +8 -0
  291. package/script/src/server/workspace/scenario_history.d.ts.map +1 -0
  292. package/script/src/server/workspace/scenario_history.js +310 -0
  293. package/script/src/server/workspace/scenarios.d.ts +93 -0
  294. package/script/src/server/workspace/scenarios.d.ts.map +1 -0
  295. package/script/src/server/workspace/scenarios.js +1089 -0
  296. package/script/src/server/workspace/schema.d.ts +35 -0
  297. package/script/src/server/workspace/schema.d.ts.map +1 -0
  298. package/script/src/server/workspace/schema.js +478 -0
  299. package/script/src/server/workspace/sessions.d.ts +38 -0
  300. package/script/src/server/workspace/sessions.d.ts.map +1 -0
  301. package/script/src/server/workspace/sessions.js +269 -0
  302. package/script/src/server/workspace/types.d.ts +128 -0
  303. package/script/src/server/workspace/types.d.ts.map +1 -0
  304. package/script/src/server/workspace/types.js +2 -0
  305. package/script/src/server/workspace/verify.d.ts +52 -0
  306. package/script/src/server/workspace/verify.d.ts.map +1 -0
  307. package/script/src/server/workspace/verify.js +453 -0
  308. package/script/src/server.d.ts +0 -3
  309. package/script/src/server.d.ts.map +1 -1
  310. package/script/src/server.js +391 -6799
  311. package/script/src/server_isograph_environment.d.ts +12 -1
  312. package/script/src/server_isograph_environment.d.ts.map +1 -1
  313. package/script/src/server_legacy_api_routes.d.ts +137 -0
  314. package/script/src/server_legacy_api_routes.d.ts.map +1 -0
  315. package/script/src/server_legacy_api_routes.js +666 -0
  316. package/script/src/server_openresponses.d.ts +6 -0
  317. package/script/src/server_openresponses.d.ts.map +1 -0
  318. package/script/src/server_openresponses.js +690 -0
  319. package/script/src/server_session_store.d.ts +4 -0
  320. package/script/src/server_session_store.d.ts.map +1 -1
  321. package/script/src/server_session_store.js +196 -1
  322. package/script/src/server_simulator_ui.d.ts +27 -0
  323. package/script/src/server_simulator_ui.d.ts.map +1 -0
  324. package/script/src/server_simulator_ui.js +544 -0
  325. package/script/src/server_types.d.ts +22 -0
  326. package/script/src/server_types.d.ts.map +1 -1
  327. package/script/src/server_workspace_decks.d.ts +31 -0
  328. package/script/src/server_workspace_decks.d.ts.map +1 -0
  329. package/script/src/server_workspace_decks.js +142 -0
  330. package/script/src/server_workspace_graphql.d.ts +17 -0
  331. package/script/src/server_workspace_graphql.d.ts.map +1 -0
  332. package/script/src/server_workspace_graphql.js +56 -0
  333. package/script/src/server_workspace_runtime.d.ts +55 -0
  334. package/script/src/server_workspace_runtime.d.ts.map +1 -0
  335. package/script/src/server_workspace_runtime.js +395 -0
  336. package/script/src/simulator_graphql.d.ts +14 -1
  337. package/script/src/simulator_graphql.d.ts.map +1 -1
  338. package/script/src/simulator_graphql.js +77 -0
@@ -0,0 +1,690 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleOpenResponsesRequest = handleOpenResponsesRequest;
4
+ const jsonResponse = (body, status = 200) => new Response(JSON.stringify(body), {
5
+ status,
6
+ headers: { "content-type": "application/json" },
7
+ });
8
+ function parseBodyObject(value) {
9
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
10
+ throw new Error("Request body must be a JSON object");
11
+ }
12
+ return value;
13
+ }
14
+ function toTextPart(role, value) {
15
+ if (typeof value === "string") {
16
+ return {
17
+ type: role === "assistant" ? "output_text" : "input_text",
18
+ text: value,
19
+ };
20
+ }
21
+ if (!value || typeof value !== "object" || Array.isArray(value))
22
+ return null;
23
+ const record = value;
24
+ const text = typeof record.text === "string" ? record.text : "";
25
+ if (!text)
26
+ return null;
27
+ const type = typeof record.type === "string" ? record.type : "";
28
+ if (type === "output_text")
29
+ return { type: "output_text", text };
30
+ if (type === "input_text")
31
+ return { type: "input_text", text };
32
+ return {
33
+ type: role === "assistant" ? "output_text" : "input_text",
34
+ text,
35
+ };
36
+ }
37
+ function normalizeMessageItem(item) {
38
+ const role = item.role;
39
+ if (role !== "system" && role !== "user" && role !== "assistant") {
40
+ throw new Error("message.role must be system, user, or assistant");
41
+ }
42
+ const rawContent = item.content;
43
+ const content = Array.isArray(rawContent)
44
+ ? rawContent.map((part) => toTextPart(role, part)).filter((part) => Boolean(part))
45
+ : [toTextPart(role, rawContent)].filter((part) => Boolean(part));
46
+ if (content.length === 0) {
47
+ throw new Error("message.content must include text");
48
+ }
49
+ return {
50
+ type: "message",
51
+ role,
52
+ content,
53
+ id: typeof item.id === "string" ? item.id : undefined,
54
+ };
55
+ }
56
+ function asJsonValue(value) {
57
+ if (value === null || typeof value === "string" || typeof value === "number" ||
58
+ typeof value === "boolean") {
59
+ return value;
60
+ }
61
+ if (Array.isArray(value)) {
62
+ return value.map((entry) => asJsonValue(entry));
63
+ }
64
+ if (value && typeof value === "object") {
65
+ const out = {};
66
+ for (const [key, entry] of Object.entries(value)) {
67
+ out[key] = asJsonValue(entry);
68
+ }
69
+ return out;
70
+ }
71
+ return String(value);
72
+ }
73
+ function normalizeInputItems(input) {
74
+ if (typeof input === "string") {
75
+ return [{
76
+ type: "message",
77
+ role: "user",
78
+ content: [{ type: "input_text", text: input }],
79
+ }];
80
+ }
81
+ const arr = Array.isArray(input) ? input : [input];
82
+ const items = [];
83
+ for (const raw of arr) {
84
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
85
+ throw new Error("input items must be objects");
86
+ }
87
+ const item = raw;
88
+ const type = typeof item.type === "string" ? item.type : "";
89
+ if (type === "message") {
90
+ const normalized = normalizeMessageItem(item);
91
+ if (normalized)
92
+ items.push(normalized);
93
+ continue;
94
+ }
95
+ if (type === "function_call") {
96
+ const callId = item.call_id;
97
+ const name = item.name;
98
+ const args = item.arguments;
99
+ if (typeof callId !== "string" || typeof name !== "string" ||
100
+ typeof args !== "string") {
101
+ throw new Error("function_call requires call_id, name, and arguments strings");
102
+ }
103
+ items.push({
104
+ type: "function_call",
105
+ call_id: callId,
106
+ name,
107
+ arguments: args,
108
+ id: typeof item.id === "string" ? item.id : undefined,
109
+ });
110
+ continue;
111
+ }
112
+ if (type === "function_call_output") {
113
+ const callId = item.call_id;
114
+ const output = item.output;
115
+ if (typeof callId !== "string" || typeof output !== "string") {
116
+ throw new Error("function_call_output requires call_id and output strings");
117
+ }
118
+ items.push({
119
+ type: "function_call_output",
120
+ call_id: callId,
121
+ output,
122
+ id: typeof item.id === "string" ? item.id : undefined,
123
+ });
124
+ continue;
125
+ }
126
+ if (type.includes(":")) {
127
+ const data = Object.hasOwn(item, "data")
128
+ ? asJsonValue(item.data)
129
+ : Object.entries(item)
130
+ .filter(([key]) => key !== "type" && key !== "id")
131
+ .reduce((acc, [key, value]) => {
132
+ acc[key] = asJsonValue(value);
133
+ return acc;
134
+ }, {});
135
+ items.push({
136
+ type: type,
137
+ id: typeof item.id === "string" ? item.id : undefined,
138
+ data,
139
+ // this predates the lint rule
140
+ });
141
+ continue;
142
+ }
143
+ throw new Error(`Unsupported input item type: ${type || "(missing type)"}`);
144
+ }
145
+ return items;
146
+ }
147
+ function normalizeTools(tools) {
148
+ if (!Array.isArray(tools) || tools.length === 0)
149
+ return undefined;
150
+ const out = [];
151
+ for (const raw of tools) {
152
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
153
+ throw new Error("tools entries must be objects");
154
+ }
155
+ const item = raw;
156
+ const type = typeof item.type === "string" ? item.type : "";
157
+ if (type !== "function")
158
+ continue;
159
+ const nested = item.function;
160
+ if (nested && typeof nested === "object" && !Array.isArray(nested)) {
161
+ const fn = nested;
162
+ const name = fn.name;
163
+ if (typeof name !== "string" || !name) {
164
+ throw new Error("tool.function.name is required");
165
+ }
166
+ out.push({
167
+ type: "function",
168
+ function: {
169
+ name,
170
+ description: typeof fn.description === "string"
171
+ ? fn.description
172
+ : undefined,
173
+ parameters: (fn.parameters &&
174
+ typeof fn.parameters === "object" &&
175
+ !Array.isArray(fn.parameters))
176
+ ? fn.parameters
177
+ : {},
178
+ },
179
+ });
180
+ continue;
181
+ }
182
+ const name = item.name;
183
+ if (typeof name !== "string" || !name) {
184
+ throw new Error("tool.name is required");
185
+ }
186
+ out.push({
187
+ type: "function",
188
+ function: {
189
+ name,
190
+ description: typeof item.description === "string"
191
+ ? item.description
192
+ : undefined,
193
+ parameters: (item.parameters &&
194
+ typeof item.parameters === "object" &&
195
+ !Array.isArray(item.parameters))
196
+ ? item.parameters
197
+ : {},
198
+ },
199
+ });
200
+ }
201
+ return out.length ? out : undefined;
202
+ }
203
+ function normalizeToolChoice(choice) {
204
+ if (!choice)
205
+ return undefined;
206
+ if (choice === "none" || choice === "auto" || choice === "required") {
207
+ return choice;
208
+ }
209
+ if (!choice || typeof choice !== "object" || Array.isArray(choice)) {
210
+ return undefined;
211
+ }
212
+ const record = choice;
213
+ if (record.type === "allowed_tools" && Array.isArray(record.tools)) {
214
+ const tools = record.tools
215
+ .map((entry) => {
216
+ if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
217
+ return null;
218
+ }
219
+ const tool = entry;
220
+ if (tool.type !== "function" || typeof tool.name !== "string") {
221
+ return null;
222
+ }
223
+ return { type: "function", name: tool.name };
224
+ })
225
+ .filter((entry) => Boolean(entry));
226
+ if (tools.length === 0)
227
+ return undefined;
228
+ const mode = record.mode === "none" || record.mode === "auto" ||
229
+ record.mode === "required"
230
+ ? record.mode
231
+ : undefined;
232
+ return { type: "allowed_tools", tools, mode };
233
+ }
234
+ if (record.type !== "function")
235
+ return undefined;
236
+ if (record.function && typeof record.function === "object") {
237
+ const fn = record.function;
238
+ if (typeof fn.name === "string" && fn.name.length > 0) {
239
+ return { type: "function", function: { name: fn.name } };
240
+ }
241
+ }
242
+ if (typeof record.name === "string" && record.name.length > 0) {
243
+ return { type: "function", function: { name: record.name } };
244
+ }
245
+ return undefined;
246
+ }
247
+ function sseFrame(event) {
248
+ const encoder = new TextEncoder();
249
+ const type = event && typeof event === "object" && !Array.isArray(event) &&
250
+ typeof event.type === "string"
251
+ ? event.type
252
+ : null;
253
+ if (type) {
254
+ return encoder.encode(`event: ${type}\ndata: ${JSON.stringify(event)}\n\n`);
255
+ }
256
+ return encoder.encode(`data: ${JSON.stringify(event)}\n\n`);
257
+ }
258
+ function toStrictContentPart(part) {
259
+ if (part.type === "output_text") {
260
+ return {
261
+ type: "output_text",
262
+ text: part.text,
263
+ annotations: [],
264
+ logprobs: [],
265
+ };
266
+ }
267
+ return {
268
+ type: part.type,
269
+ text: part.text,
270
+ };
271
+ }
272
+ function toStrictResponseItem(item, index) {
273
+ if (item.type === "message") {
274
+ return {
275
+ type: "message",
276
+ id: item.id ?? `msg_${index + 1}`,
277
+ status: "completed",
278
+ role: item.role,
279
+ content: item.content.map((part) => toStrictContentPart(part)),
280
+ };
281
+ }
282
+ if (item.type === "function_call") {
283
+ return {
284
+ type: "function_call",
285
+ id: item.id ?? item.call_id,
286
+ call_id: item.call_id,
287
+ name: item.name,
288
+ arguments: item.arguments,
289
+ status: "completed",
290
+ };
291
+ }
292
+ if (item.type === "function_call_output") {
293
+ return {
294
+ type: "function_call_output",
295
+ id: item.id ?? `${item.call_id}_out`,
296
+ call_id: item.call_id,
297
+ output: item.output,
298
+ status: "completed",
299
+ };
300
+ }
301
+ if (item.type === "reasoning") {
302
+ return {
303
+ type: "reasoning",
304
+ id: item.id ?? `rs_${index + 1}`,
305
+ content: (item.content ?? []).map((part) => toStrictContentPart(part)),
306
+ summary: item.summary.map((part) => toStrictContentPart(part)),
307
+ encrypted_content: item.encrypted_content ?? null,
308
+ };
309
+ }
310
+ return {
311
+ type: item.type,
312
+ id: item.id ?? `ext_${index + 1}`,
313
+ data: item.data,
314
+ status: "completed",
315
+ };
316
+ }
317
+ function toStrictTools(tools) {
318
+ if (!tools || tools.length === 0)
319
+ return [];
320
+ return tools.map((tool) => ({
321
+ type: "function",
322
+ name: tool.function.name,
323
+ description: tool.function.description ?? null,
324
+ parameters: tool.function.parameters ?? null,
325
+ strict: false,
326
+ }));
327
+ }
328
+ function toStrictToolChoice(choice) {
329
+ if (!choice)
330
+ return "auto";
331
+ if (choice === "none" || choice === "auto" || choice === "required") {
332
+ return choice;
333
+ }
334
+ if (choice.type === "allowed_tools") {
335
+ return {
336
+ type: "allowed_tools",
337
+ tools: choice.tools,
338
+ mode: choice.mode ?? "auto",
339
+ };
340
+ }
341
+ return { type: "function", name: choice.function.name };
342
+ }
343
+ function toStrictResponseResource(args) {
344
+ const now = Math.floor(Date.now() / 1000);
345
+ const createdAt = args.response.created_at ?? args.response.created ?? now;
346
+ const status = args.statusOverride ?? args.response.status ?? "completed";
347
+ const usage = args.response.usage
348
+ ? {
349
+ input_tokens: args.response.usage.promptTokens ?? 0,
350
+ output_tokens: args.response.usage.completionTokens ?? 0,
351
+ total_tokens: args.response.usage.totalTokens ?? 0,
352
+ input_tokens_details: {
353
+ cached_tokens: 0,
354
+ },
355
+ output_tokens_details: {
356
+ reasoning_tokens: args.response.usage.reasoningTokens ?? 0,
357
+ },
358
+ }
359
+ : null;
360
+ return {
361
+ id: args.response.id,
362
+ object: "response",
363
+ created_at: createdAt,
364
+ completed_at: status === "completed" ? now : null,
365
+ status,
366
+ incomplete_details: null,
367
+ model: args.response.model ?? args.request.model,
368
+ previous_response_id: args.request.previous_response_id ?? null,
369
+ instructions: args.request.instructions ?? null,
370
+ output: (args.response.output ?? []).map((item, idx) => toStrictResponseItem(item, idx)),
371
+ error: args.response.error ?? null,
372
+ tools: toStrictTools(args.request.tools),
373
+ tool_choice: toStrictToolChoice(args.request.tool_choice),
374
+ truncation: args.response.truncation ?? args.request.truncation ??
375
+ "disabled",
376
+ parallel_tool_calls: args.response.parallel_tool_calls ??
377
+ args.request.parallel_tool_calls ?? false,
378
+ text: args.response.text
379
+ ? asJsonValue(args.response.text)
380
+ : args.request.text
381
+ ? asJsonValue(args.request.text)
382
+ : { format: { type: "text" } },
383
+ top_p: args.response.top_p ?? args.request.top_p ?? 1,
384
+ presence_penalty: args.response.presence_penalty ??
385
+ args.request.presence_penalty ?? 0,
386
+ frequency_penalty: args.response.frequency_penalty ??
387
+ args.request.frequency_penalty ?? 0,
388
+ top_logprobs: args.response.top_logprobs ?? args.request.top_logprobs ?? 0,
389
+ temperature: args.response.temperature ?? args.request.temperature ?? 1,
390
+ reasoning: args.request.reasoning
391
+ ? {
392
+ effort: args.request.reasoning.effort ?? null,
393
+ summary: args.request.reasoning.summary ?? null,
394
+ }
395
+ : null,
396
+ usage,
397
+ max_output_tokens: args.request.max_output_tokens ?? null,
398
+ max_tool_calls: args.request.max_tool_calls ?? null,
399
+ store: args.response.store ?? args.request.store ?? false,
400
+ background: args.response.background ?? args.request.background ?? false,
401
+ service_tier: args.response.service_tier ?? args.request.service_tier ??
402
+ "default",
403
+ metadata: args.request.metadata ? asJsonValue(args.request.metadata) : {},
404
+ safety_identifier: args.response.safety_identifier ??
405
+ args.request.safety_identifier ?? null,
406
+ prompt_cache_key: args.response.prompt_cache_key ??
407
+ args.request.prompt_cache_key ?? null,
408
+ };
409
+ }
410
+ async function handleOpenResponsesRequest(args) {
411
+ const url = new URL(args.req.url);
412
+ if (url.pathname !== "/v1/responses")
413
+ return null;
414
+ if (args.req.method !== "POST") {
415
+ return new Response("Method not allowed", { status: 405 });
416
+ }
417
+ if (!args.modelProvider.responses) {
418
+ return jsonResponse({ error: "Configured provider does not support responses." }, 501);
419
+ }
420
+ try {
421
+ const body = parseBodyObject(await args.req.json());
422
+ const model = typeof body.model === "string" ? body.model : undefined;
423
+ if (!model) {
424
+ throw new Error("model is required");
425
+ }
426
+ const input = normalizeInputItems(body.input);
427
+ const stream = body.stream === true;
428
+ const instructions = typeof body.instructions === "string"
429
+ ? body.instructions
430
+ : undefined;
431
+ const previousResponseId = typeof body.previous_response_id === "string"
432
+ ? body.previous_response_id
433
+ : undefined;
434
+ const store = typeof body.store === "boolean" ? body.store : undefined;
435
+ const tools = normalizeTools(body.tools);
436
+ const toolChoice = normalizeToolChoice(body.tool_choice);
437
+ const reasoning = (body.reasoning &&
438
+ typeof body.reasoning === "object" &&
439
+ !Array.isArray(body.reasoning))
440
+ ? body.reasoning
441
+ : undefined;
442
+ const parallelToolCalls = typeof body.parallel_tool_calls === "boolean"
443
+ ? body.parallel_tool_calls
444
+ : undefined;
445
+ const maxToolCalls = typeof body.max_tool_calls === "number"
446
+ ? body.max_tool_calls
447
+ : undefined;
448
+ const temperature = typeof body.temperature === "number"
449
+ ? body.temperature
450
+ : undefined;
451
+ const topP = typeof body.top_p === "number" ? body.top_p : undefined;
452
+ const frequencyPenalty = typeof body.frequency_penalty === "number"
453
+ ? body.frequency_penalty
454
+ : undefined;
455
+ const presencePenalty = typeof body.presence_penalty === "number"
456
+ ? body.presence_penalty
457
+ : undefined;
458
+ const maxOutputTokens = typeof body.max_output_tokens === "number"
459
+ ? body.max_output_tokens
460
+ : undefined;
461
+ const topLogprobs = typeof body.top_logprobs === "number"
462
+ ? body.top_logprobs
463
+ : undefined;
464
+ const truncation = body.truncation === "auto" ||
465
+ body.truncation === "disabled"
466
+ ? body.truncation
467
+ : undefined;
468
+ const text = (body.text && typeof body.text === "object" &&
469
+ !Array.isArray(body.text))
470
+ ? body.text
471
+ : undefined;
472
+ const streamOptions = (body.stream_options &&
473
+ typeof body.stream_options === "object" &&
474
+ !Array.isArray(body.stream_options))
475
+ ? body.stream_options
476
+ : undefined;
477
+ const background = typeof body.background === "boolean"
478
+ ? body.background
479
+ : undefined;
480
+ const include = Array.isArray(body.include)
481
+ ? body.include.filter((entry) => typeof entry === "string")
482
+ : undefined;
483
+ const serviceTier = body.service_tier === "auto" ||
484
+ body.service_tier === "default" || body.service_tier === "flex" ||
485
+ body.service_tier === "priority"
486
+ ? body.service_tier
487
+ : undefined;
488
+ const metadata = (body.metadata &&
489
+ typeof body.metadata === "object" &&
490
+ !Array.isArray(body.metadata))
491
+ ? body.metadata
492
+ : undefined;
493
+ const safetyIdentifier = typeof body.safety_identifier === "string"
494
+ ? body.safety_identifier
495
+ : undefined;
496
+ const promptCacheKey = typeof body.prompt_cache_key === "string"
497
+ ? body.prompt_cache_key
498
+ : undefined;
499
+ const passthrough = {};
500
+ for (const [key, value] of Object.entries(body)) {
501
+ if (key === "model" || key === "input" || key === "stream" ||
502
+ key === "instructions" || key === "tools" ||
503
+ key === "tool_choice" || key === "max_output_tokens" ||
504
+ key === "previous_response_id" || key === "store" ||
505
+ key === "reasoning" || key === "parallel_tool_calls" ||
506
+ key === "max_tool_calls" || key === "temperature" ||
507
+ key === "top_p" || key === "frequency_penalty" ||
508
+ key === "presence_penalty" || key === "include" ||
509
+ key === "text" || key === "stream_options" ||
510
+ key === "background" || key === "truncation" ||
511
+ key === "service_tier" || key === "top_logprobs" ||
512
+ key === "metadata" || key === "safety_identifier" ||
513
+ key === "prompt_cache_key" || key === "params") {
514
+ continue;
515
+ }
516
+ passthrough[key] = value;
517
+ }
518
+ const explicitParams = (body.params &&
519
+ typeof body.params === "object" &&
520
+ !Array.isArray(body.params))
521
+ ? body.params
522
+ : undefined;
523
+ const params = explicitParams || Object.keys(passthrough).length > 0
524
+ ? { ...(explicitParams ?? {}), ...passthrough }
525
+ : undefined;
526
+ const requestBody = {
527
+ model,
528
+ input,
529
+ instructions,
530
+ previous_response_id: previousResponseId,
531
+ store,
532
+ tools,
533
+ tool_choice: toolChoice,
534
+ reasoning,
535
+ parallel_tool_calls: parallelToolCalls,
536
+ max_tool_calls: maxToolCalls,
537
+ temperature,
538
+ top_p: topP,
539
+ frequency_penalty: frequencyPenalty,
540
+ presence_penalty: presencePenalty,
541
+ stream,
542
+ stream_options: streamOptions,
543
+ max_output_tokens: maxOutputTokens,
544
+ top_logprobs: topLogprobs,
545
+ truncation,
546
+ text,
547
+ include,
548
+ background,
549
+ service_tier: serviceTier,
550
+ metadata,
551
+ safety_identifier: safetyIdentifier,
552
+ prompt_cache_key: promptCacheKey,
553
+ params,
554
+ };
555
+ if (!stream) {
556
+ const response = await args.modelProvider.responses({
557
+ request: requestBody,
558
+ });
559
+ return jsonResponse(toStrictResponseResource({
560
+ request: requestBody,
561
+ response,
562
+ }));
563
+ }
564
+ const streamBody = new ReadableStream({
565
+ start: async (controller) => {
566
+ let sequence = 1;
567
+ const itemIdByOutputIndex = new Map();
568
+ const streamRequest = {
569
+ ...requestBody,
570
+ stream: true,
571
+ };
572
+ try {
573
+ const result = await args.modelProvider.responses({
574
+ request: streamRequest,
575
+ onStreamEvent: (event) => {
576
+ if (event.type === "response.created") {
577
+ controller.enqueue(sseFrame({
578
+ type: "response.created",
579
+ sequence_number: sequence++,
580
+ response: toStrictResponseResource({
581
+ request: streamRequest,
582
+ response: event.response,
583
+ statusOverride: "in_progress",
584
+ }),
585
+ }));
586
+ return;
587
+ }
588
+ if (event.type === "response.output_text.delta") {
589
+ const itemId = event.item_id ??
590
+ itemIdByOutputIndex.get(event.output_index) ??
591
+ `msg_${event.output_index + 1}`;
592
+ itemIdByOutputIndex.set(event.output_index, itemId);
593
+ controller.enqueue(sseFrame({
594
+ type: "response.output_text.delta",
595
+ sequence_number: sequence++,
596
+ output_index: event.output_index,
597
+ item_id: itemId,
598
+ content_index: event.content_index ?? 0,
599
+ delta: event.delta,
600
+ logprobs: event.logprobs ?? [],
601
+ }));
602
+ return;
603
+ }
604
+ if (event.type === "response.output_text.done") {
605
+ const itemId = event.item_id ??
606
+ itemIdByOutputIndex.get(event.output_index) ??
607
+ `msg_${event.output_index + 1}`;
608
+ itemIdByOutputIndex.set(event.output_index, itemId);
609
+ controller.enqueue(sseFrame({
610
+ type: "response.output_text.done",
611
+ sequence_number: sequence++,
612
+ output_index: event.output_index,
613
+ item_id: itemId,
614
+ content_index: event.content_index ?? 0,
615
+ text: event.text,
616
+ logprobs: [],
617
+ }));
618
+ return;
619
+ }
620
+ if (event.type === "response.completed") {
621
+ controller.enqueue(sseFrame({
622
+ type: "response.completed",
623
+ sequence_number: sequence++,
624
+ response: toStrictResponseResource({
625
+ request: streamRequest,
626
+ response: event.response,
627
+ statusOverride: "completed",
628
+ }),
629
+ }));
630
+ return;
631
+ }
632
+ if (event.type === "response.failed") {
633
+ controller.enqueue(sseFrame({
634
+ type: "response.failed",
635
+ sequence_number: sequence++,
636
+ response: {
637
+ ...toStrictResponseResource({
638
+ request: streamRequest,
639
+ response: {
640
+ id: `resp_${crypto.randomUUID().slice(0, 8)}`,
641
+ object: "response",
642
+ output: [],
643
+ status: "failed",
644
+ error: event.error ??
645
+ { message: "Unknown error" },
646
+ },
647
+ statusOverride: "failed",
648
+ }),
649
+ error: event.error ?? { message: "Unknown error" },
650
+ },
651
+ }));
652
+ }
653
+ },
654
+ });
655
+ controller.enqueue(sseFrame({
656
+ type: "response.completed",
657
+ sequence_number: sequence++,
658
+ response: toStrictResponseResource({
659
+ request: streamRequest,
660
+ response: result,
661
+ statusOverride: "completed",
662
+ }),
663
+ }));
664
+ controller.enqueue(new TextEncoder().encode("data: [DONE]\n\n"));
665
+ }
666
+ catch (err) {
667
+ controller.enqueue(sseFrame({
668
+ type: "error",
669
+ code: "internal_error",
670
+ message: err instanceof Error ? err.message : String(err),
671
+ param: null,
672
+ }));
673
+ }
674
+ finally {
675
+ controller.close();
676
+ }
677
+ },
678
+ });
679
+ return new Response(streamBody, {
680
+ headers: {
681
+ "content-type": "text/event-stream",
682
+ "cache-control": "no-cache",
683
+ "connection": "keep-alive",
684
+ },
685
+ });
686
+ }
687
+ catch (err) {
688
+ return jsonResponse({ error: err instanceof Error ? err.message : String(err) }, 400);
689
+ }
690
+ }