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