@bolt-foundry/gambit 0.8.6-rc.5 → 0.8.6-rc.7

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 (262) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/esm/gambit/simulator-ui/dist/bundle.js +14226 -23324
  3. package/esm/gambit/simulator-ui/dist/bundle.js.map +4 -4
  4. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorGradePage/normalization_ast.d.ts.map +1 -1
  5. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorGradePage/normalization_ast.js +5 -0
  6. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorGradePage/query_text.d.ts +1 -1
  7. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorGradePage/query_text.d.ts.map +1 -1
  8. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorGradePage/query_text.js +1 -0
  9. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorGradePage/raw_response_type.d.ts +1 -0
  10. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorGradePage/raw_response_type.d.ts.map +1 -1
  11. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/normalization_ast.d.ts.map +1 -1
  12. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/normalization_ast.js +5 -0
  13. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/query_text.d.ts +1 -1
  14. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/query_text.d.ts.map +1 -1
  15. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/query_text.js +1 -0
  16. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/raw_response_type.d.ts +1 -0
  17. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/raw_response_type.d.ts.map +1 -1
  18. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorVerifyPage/normalization_ast.d.ts.map +1 -1
  19. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorVerifyPage/normalization_ast.js +5 -0
  20. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorVerifyPage/query_text.d.ts +1 -1
  21. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorVerifyPage/query_text.d.ts.map +1 -1
  22. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorVerifyPage/query_text.js +1 -0
  23. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorVerifyPage/raw_response_type.d.ts +1 -0
  24. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorVerifyPage/raw_response_type.d.ts.map +1 -1
  25. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorWorkspaceShell/normalization_ast.d.ts.map +1 -1
  26. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorWorkspaceShell/normalization_ast.js +5 -0
  27. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorWorkspaceShell/query_text.d.ts +1 -1
  28. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorWorkspaceShell/query_text.d.ts.map +1 -1
  29. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorWorkspaceShell/query_text.js +1 -0
  30. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorWorkspaceShell/raw_response_type.d.ts +1 -0
  31. package/esm/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorWorkspaceShell/raw_response_type.d.ts.map +1 -1
  32. package/esm/simulator-ui/__generated__/__isograph/Workspace/GradeTab/param_type.d.ts +65 -0
  33. package/esm/simulator-ui/__generated__/__isograph/Workspace/GradeTab/param_type.d.ts.map +1 -1
  34. package/esm/simulator-ui/__generated__/__isograph/Workspace/GradeTab/resolver_reader.d.ts.map +1 -1
  35. package/esm/simulator-ui/__generated__/__isograph/Workspace/GradeTab/resolver_reader.js +8 -1
  36. package/esm/simulator-ui/__generated__/__isograph/Workspace/TestTab/param_type.d.ts +82 -0
  37. package/esm/simulator-ui/__generated__/__isograph/Workspace/TestTab/param_type.d.ts.map +1 -1
  38. package/esm/simulator-ui/__generated__/__isograph/Workspace/TestTab/resolver_reader.d.ts.map +1 -1
  39. package/esm/simulator-ui/__generated__/__isograph/Workspace/TestTab/resolver_reader.js +8 -1
  40. package/esm/simulator-ui/__generated__/__isograph/Workspace/VerifyTab/param_type.d.ts +106 -0
  41. package/esm/simulator-ui/__generated__/__isograph/Workspace/VerifyTab/param_type.d.ts.map +1 -1
  42. package/esm/simulator-ui/__generated__/__isograph/Workspace/VerifyTab/resolver_reader.d.ts.map +1 -1
  43. package/esm/simulator-ui/__generated__/__isograph/Workspace/VerifyTab/resolver_reader.js +8 -1
  44. package/esm/simulator-ui/__generated__/__isograph/Workspace/WorkbenchChatDrawer/param_type.d.ts +32 -0
  45. package/esm/simulator-ui/__generated__/__isograph/Workspace/WorkbenchChatDrawer/param_type.d.ts.map +1 -1
  46. package/esm/simulator-ui/__generated__/__isograph/Workspace/WorkbenchChatDrawer/resolver_reader.d.ts.map +1 -1
  47. package/esm/simulator-ui/__generated__/__isograph/Workspace/WorkbenchChatDrawer/resolver_reader.js +8 -1
  48. package/esm/simulator-ui/isograph/components/Query/SimulatorBuildPage.d.ts.map +1 -1
  49. package/esm/simulator-ui/isograph/components/Query/SimulatorBuildPage.js +4 -11
  50. package/esm/simulator-ui/isograph/components/Query/SimulatorGradePage.d.ts.map +1 -1
  51. package/esm/simulator-ui/isograph/components/Query/SimulatorGradePage.js +79 -20
  52. package/esm/simulator-ui/isograph/components/Query/SimulatorTestPage.d.ts.map +1 -1
  53. package/esm/simulator-ui/isograph/components/Query/SimulatorTestPage.js +88 -27
  54. package/esm/simulator-ui/isograph/components/Query/SimulatorVerifyPage.d.ts.map +1 -1
  55. package/esm/simulator-ui/isograph/components/Query/SimulatorVerifyPage.js +31 -17
  56. package/esm/simulator-ui/isograph/components/Query/SimulatorWorkspacesPage.d.ts.map +1 -1
  57. package/esm/simulator-ui/isograph/components/Query/SimulatorWorkspacesPage.js +2 -6
  58. package/esm/simulator-ui/isograph/components/Workspace/WorkbenchChatDrawer.d.ts.map +1 -1
  59. package/esm/simulator-ui/isograph/components/Workspace/WorkbenchChatDrawer.js +27 -23
  60. package/esm/simulator-ui/isograph/components/WorkspaceConversationRun/WorkbenchConversationRunChat.d.ts +3 -0
  61. package/esm/simulator-ui/isograph/components/WorkspaceConversationRun/WorkbenchConversationRunChat.d.ts.map +1 -1
  62. package/esm/simulator-ui/isograph/components/WorkspaceConversationRun/WorkbenchConversationRunChat.js +76 -50
  63. package/esm/simulator-ui/isograph/components/grade/GradeTabView.d.ts +14 -0
  64. package/esm/simulator-ui/isograph/components/grade/GradeTabView.d.ts.map +1 -1
  65. package/esm/simulator-ui/isograph/components/grade/GradeTabView.js +1 -1
  66. package/esm/simulator-ui/isograph/entrypoints/EntrypointSimulatorRedirect.d.ts.map +1 -1
  67. package/esm/simulator-ui/isograph/entrypoints/EntrypointSimulatorRedirect.js +3 -16
  68. package/esm/simulator-ui/isograph/entrypoints/EntrypointSimulatorWorkspaceShell.d.ts.map +1 -1
  69. package/esm/simulator-ui/isograph/entrypoints/EntrypointSimulatorWorkspaceShell.js +1 -9
  70. package/esm/simulator-ui/src/AppShell.d.ts.map +1 -1
  71. package/esm/simulator-ui/src/AppShell.js +21 -31
  72. package/esm/simulator-ui/src/Chat.d.ts +6 -30
  73. package/esm/simulator-ui/src/Chat.d.ts.map +1 -1
  74. package/esm/simulator-ui/src/Chat.js +14 -109
  75. package/esm/simulator-ui/src/MinimalRouterRoot.d.ts.map +1 -1
  76. package/esm/simulator-ui/src/MinimalRouterRoot.js +1 -16
  77. package/esm/simulator-ui/src/TestBotChatPanel.d.ts +2 -0
  78. package/esm/simulator-ui/src/TestBotChatPanel.d.ts.map +1 -1
  79. package/esm/simulator-ui/src/TestBotChatPanel.js +2 -2
  80. package/esm/simulator-ui/src/WorkbenchChatIntro.d.ts +10 -0
  81. package/esm/simulator-ui/src/WorkbenchChatIntro.d.ts.map +1 -0
  82. package/esm/simulator-ui/src/WorkbenchChatIntro.js +24 -0
  83. package/esm/simulator-ui/src/WorkbenchDrawerIso.d.ts +1 -0
  84. package/esm/simulator-ui/src/WorkbenchDrawerIso.d.ts.map +1 -1
  85. package/esm/simulator-ui/src/WorkbenchDrawerIso.js +3 -15
  86. package/esm/simulator-ui/src/gds/WorkbenchComposerChip.d.ts +2 -17
  87. package/esm/simulator-ui/src/gds/WorkbenchComposerChip.d.ts.map +1 -1
  88. package/esm/simulator-ui/src/grade/GradeResultsPanel.d.ts +10 -0
  89. package/esm/simulator-ui/src/grade/GradeResultsPanel.d.ts.map +1 -1
  90. package/esm/simulator-ui/src/grade/GradeResultsPanel.js +16 -1
  91. package/esm/simulator-ui/src/routing.d.ts.map +1 -1
  92. package/esm/simulator-ui/src/routing.js +0 -31
  93. package/esm/simulator-ui/src/shared.d.ts +1 -0
  94. package/esm/simulator-ui/src/shared.d.ts.map +1 -1
  95. package/esm/simulator-ui/src/shared.js +4 -2
  96. package/esm/simulator-ui/src/styles.d.ts +1 -1
  97. package/esm/simulator-ui/src/styles.d.ts.map +1 -1
  98. package/esm/simulator-ui/src/styles.js +65 -0
  99. package/esm/simulator-ui/src/utils.d.ts +1 -0
  100. package/esm/simulator-ui/src/utils.d.ts.map +1 -1
  101. package/esm/simulator-ui/src/utils.js +2 -0
  102. package/esm/simulator-ui/src/workbenchChipStore.d.ts +12 -0
  103. package/esm/simulator-ui/src/workbenchChipStore.d.ts.map +1 -0
  104. package/esm/simulator-ui/src/workbenchChipStore.js +69 -0
  105. package/esm/simulator-ui/src/workbenchContext.d.ts +50 -0
  106. package/esm/simulator-ui/src/workbenchContext.d.ts.map +1 -0
  107. package/esm/simulator-ui/src/workbenchContext.js +159 -0
  108. package/esm/src/server/request_handler.d.ts.map +1 -1
  109. package/esm/src/server/request_handler.js +0 -40
  110. package/esm/src/server.js +1 -1
  111. package/esm/src/server_legacy_api_routes.d.ts +2 -122
  112. package/esm/src/server_legacy_api_routes.d.ts.map +1 -1
  113. package/esm/src/server_legacy_api_routes.js +0 -591
  114. package/esm/src/server_simulator_ui.d.ts.map +1 -1
  115. package/esm/src/server_simulator_ui.js +34 -0
  116. package/esm/src/server_ui_routes.d.ts.map +1 -1
  117. package/esm/src/server_ui_routes.js +0 -2
  118. package/esm/src/server_workspace_graphql.d.ts +1 -1
  119. package/esm/src/server_workspace_graphql.d.ts.map +1 -1
  120. package/esm/src/server_workspace_graphql.js +66 -46
  121. package/esm/src/simulator_graphql.d.ts.map +1 -1
  122. package/esm/src/simulator_graphql.js +5 -0
  123. package/package.json +1 -1
  124. package/script/gambit/simulator-ui/dist/bundle.js +14226 -23324
  125. package/script/gambit/simulator-ui/dist/bundle.js.map +4 -4
  126. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorGradePage/normalization_ast.d.ts.map +1 -1
  127. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorGradePage/normalization_ast.js +5 -0
  128. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorGradePage/query_text.d.ts +1 -1
  129. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorGradePage/query_text.d.ts.map +1 -1
  130. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorGradePage/query_text.js +1 -0
  131. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorGradePage/raw_response_type.d.ts +1 -0
  132. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorGradePage/raw_response_type.d.ts.map +1 -1
  133. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/normalization_ast.d.ts.map +1 -1
  134. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/normalization_ast.js +5 -0
  135. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/query_text.d.ts +1 -1
  136. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/query_text.d.ts.map +1 -1
  137. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/query_text.js +1 -0
  138. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/raw_response_type.d.ts +1 -0
  139. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorTestPage/raw_response_type.d.ts.map +1 -1
  140. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorVerifyPage/normalization_ast.d.ts.map +1 -1
  141. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorVerifyPage/normalization_ast.js +5 -0
  142. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorVerifyPage/query_text.d.ts +1 -1
  143. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorVerifyPage/query_text.d.ts.map +1 -1
  144. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorVerifyPage/query_text.js +1 -0
  145. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorVerifyPage/raw_response_type.d.ts +1 -0
  146. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorVerifyPage/raw_response_type.d.ts.map +1 -1
  147. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorWorkspaceShell/normalization_ast.d.ts.map +1 -1
  148. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorWorkspaceShell/normalization_ast.js +5 -0
  149. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorWorkspaceShell/query_text.d.ts +1 -1
  150. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorWorkspaceShell/query_text.d.ts.map +1 -1
  151. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorWorkspaceShell/query_text.js +1 -0
  152. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorWorkspaceShell/raw_response_type.d.ts +1 -0
  153. package/script/simulator-ui/__generated__/__isograph/Query/EntrypointSimulatorWorkspaceShell/raw_response_type.d.ts.map +1 -1
  154. package/script/simulator-ui/__generated__/__isograph/Workspace/GradeTab/param_type.d.ts +65 -0
  155. package/script/simulator-ui/__generated__/__isograph/Workspace/GradeTab/param_type.d.ts.map +1 -1
  156. package/script/simulator-ui/__generated__/__isograph/Workspace/GradeTab/resolver_reader.d.ts.map +1 -1
  157. package/script/simulator-ui/__generated__/__isograph/Workspace/GradeTab/resolver_reader.js +8 -1
  158. package/script/simulator-ui/__generated__/__isograph/Workspace/TestTab/param_type.d.ts +82 -0
  159. package/script/simulator-ui/__generated__/__isograph/Workspace/TestTab/param_type.d.ts.map +1 -1
  160. package/script/simulator-ui/__generated__/__isograph/Workspace/TestTab/resolver_reader.d.ts.map +1 -1
  161. package/script/simulator-ui/__generated__/__isograph/Workspace/TestTab/resolver_reader.js +8 -1
  162. package/script/simulator-ui/__generated__/__isograph/Workspace/VerifyTab/param_type.d.ts +106 -0
  163. package/script/simulator-ui/__generated__/__isograph/Workspace/VerifyTab/param_type.d.ts.map +1 -1
  164. package/script/simulator-ui/__generated__/__isograph/Workspace/VerifyTab/resolver_reader.d.ts.map +1 -1
  165. package/script/simulator-ui/__generated__/__isograph/Workspace/VerifyTab/resolver_reader.js +8 -1
  166. package/script/simulator-ui/__generated__/__isograph/Workspace/WorkbenchChatDrawer/param_type.d.ts +32 -0
  167. package/script/simulator-ui/__generated__/__isograph/Workspace/WorkbenchChatDrawer/param_type.d.ts.map +1 -1
  168. package/script/simulator-ui/__generated__/__isograph/Workspace/WorkbenchChatDrawer/resolver_reader.d.ts.map +1 -1
  169. package/script/simulator-ui/__generated__/__isograph/Workspace/WorkbenchChatDrawer/resolver_reader.js +8 -1
  170. package/script/simulator-ui/isograph/components/Query/SimulatorBuildPage.d.ts.map +1 -1
  171. package/script/simulator-ui/isograph/components/Query/SimulatorBuildPage.js +4 -11
  172. package/script/simulator-ui/isograph/components/Query/SimulatorGradePage.d.ts.map +1 -1
  173. package/script/simulator-ui/isograph/components/Query/SimulatorGradePage.js +112 -20
  174. package/script/simulator-ui/isograph/components/Query/SimulatorTestPage.d.ts.map +1 -1
  175. package/script/simulator-ui/isograph/components/Query/SimulatorTestPage.js +121 -27
  176. package/script/simulator-ui/isograph/components/Query/SimulatorVerifyPage.d.ts.map +1 -1
  177. package/script/simulator-ui/isograph/components/Query/SimulatorVerifyPage.js +31 -17
  178. package/script/simulator-ui/isograph/components/Query/SimulatorWorkspacesPage.d.ts.map +1 -1
  179. package/script/simulator-ui/isograph/components/Query/SimulatorWorkspacesPage.js +2 -6
  180. package/script/simulator-ui/isograph/components/Workspace/WorkbenchChatDrawer.d.ts.map +1 -1
  181. package/script/simulator-ui/isograph/components/Workspace/WorkbenchChatDrawer.js +26 -22
  182. package/script/simulator-ui/isograph/components/WorkspaceConversationRun/WorkbenchConversationRunChat.d.ts +3 -0
  183. package/script/simulator-ui/isograph/components/WorkspaceConversationRun/WorkbenchConversationRunChat.d.ts.map +1 -1
  184. package/script/simulator-ui/isograph/components/WorkspaceConversationRun/WorkbenchConversationRunChat.js +75 -49
  185. package/script/simulator-ui/isograph/components/grade/GradeTabView.d.ts +14 -0
  186. package/script/simulator-ui/isograph/components/grade/GradeTabView.d.ts.map +1 -1
  187. package/script/simulator-ui/isograph/components/grade/GradeTabView.js +1 -1
  188. package/script/simulator-ui/isograph/entrypoints/EntrypointSimulatorRedirect.d.ts.map +1 -1
  189. package/script/simulator-ui/isograph/entrypoints/EntrypointSimulatorRedirect.js +3 -16
  190. package/script/simulator-ui/isograph/entrypoints/EntrypointSimulatorWorkspaceShell.d.ts.map +1 -1
  191. package/script/simulator-ui/isograph/entrypoints/EntrypointSimulatorWorkspaceShell.js +1 -9
  192. package/script/simulator-ui/src/AppShell.d.ts.map +1 -1
  193. package/script/simulator-ui/src/AppShell.js +21 -31
  194. package/script/simulator-ui/src/Chat.d.ts +6 -30
  195. package/script/simulator-ui/src/Chat.d.ts.map +1 -1
  196. package/script/simulator-ui/src/Chat.js +14 -109
  197. package/script/simulator-ui/src/MinimalRouterRoot.d.ts.map +1 -1
  198. package/script/simulator-ui/src/MinimalRouterRoot.js +1 -16
  199. package/script/simulator-ui/src/TestBotChatPanel.d.ts +2 -0
  200. package/script/simulator-ui/src/TestBotChatPanel.d.ts.map +1 -1
  201. package/script/simulator-ui/src/TestBotChatPanel.js +2 -2
  202. package/script/simulator-ui/src/WorkbenchChatIntro.d.ts +10 -0
  203. package/script/simulator-ui/src/WorkbenchChatIntro.d.ts.map +1 -0
  204. package/script/simulator-ui/src/WorkbenchChatIntro.js +30 -0
  205. package/script/simulator-ui/src/WorkbenchDrawerIso.d.ts +1 -0
  206. package/script/simulator-ui/src/WorkbenchDrawerIso.d.ts.map +1 -1
  207. package/script/simulator-ui/src/WorkbenchDrawerIso.js +3 -15
  208. package/script/simulator-ui/src/gds/WorkbenchComposerChip.d.ts +2 -17
  209. package/script/simulator-ui/src/gds/WorkbenchComposerChip.d.ts.map +1 -1
  210. package/script/simulator-ui/src/grade/GradeResultsPanel.d.ts +10 -0
  211. package/script/simulator-ui/src/grade/GradeResultsPanel.d.ts.map +1 -1
  212. package/script/simulator-ui/src/grade/GradeResultsPanel.js +16 -1
  213. package/script/simulator-ui/src/routing.d.ts.map +1 -1
  214. package/script/simulator-ui/src/routing.js +0 -31
  215. package/script/simulator-ui/src/shared.d.ts +1 -0
  216. package/script/simulator-ui/src/shared.d.ts.map +1 -1
  217. package/script/simulator-ui/src/shared.js +4 -2
  218. package/script/simulator-ui/src/styles.d.ts +1 -1
  219. package/script/simulator-ui/src/styles.d.ts.map +1 -1
  220. package/script/simulator-ui/src/styles.js +65 -0
  221. package/script/simulator-ui/src/utils.d.ts +1 -0
  222. package/script/simulator-ui/src/utils.d.ts.map +1 -1
  223. package/script/simulator-ui/src/utils.js +3 -1
  224. package/script/simulator-ui/src/workbenchChipStore.d.ts +12 -0
  225. package/script/simulator-ui/src/workbenchChipStore.d.ts.map +1 -0
  226. package/script/simulator-ui/src/workbenchChipStore.js +108 -0
  227. package/script/simulator-ui/src/workbenchContext.d.ts +50 -0
  228. package/script/simulator-ui/src/workbenchContext.d.ts.map +1 -0
  229. package/script/simulator-ui/src/workbenchContext.js +165 -0
  230. package/script/src/server/request_handler.d.ts.map +1 -1
  231. package/script/src/server/request_handler.js +0 -40
  232. package/script/src/server.js +1 -1
  233. package/script/src/server_legacy_api_routes.d.ts +2 -122
  234. package/script/src/server_legacy_api_routes.d.ts.map +1 -1
  235. package/script/src/server_legacy_api_routes.js +0 -624
  236. package/script/src/server_simulator_ui.d.ts.map +1 -1
  237. package/script/src/server_simulator_ui.js +34 -0
  238. package/script/src/server_ui_routes.d.ts.map +1 -1
  239. package/script/src/server_ui_routes.js +0 -2
  240. package/script/src/server_workspace_graphql.d.ts +1 -1
  241. package/script/src/server_workspace_graphql.d.ts.map +1 -1
  242. package/script/src/server_workspace_graphql.js +66 -46
  243. package/script/src/simulator_graphql.d.ts.map +1 -1
  244. package/script/src/simulator_graphql.js +5 -0
  245. package/esm/simulator-ui/src/ProviderLoginPanel.d.ts +0 -8
  246. package/esm/simulator-ui/src/ProviderLoginPanel.d.ts.map +0 -1
  247. package/esm/simulator-ui/src/ProviderLoginPanel.js +0 -156
  248. package/esm/simulator-ui/src/WorkbenchDrawer.d.ts +0 -38
  249. package/esm/simulator-ui/src/WorkbenchDrawer.d.ts.map +0 -1
  250. package/esm/simulator-ui/src/WorkbenchDrawer.js +0 -716
  251. package/esm/simulator-ui/src/gds/Accordion.d.ts +0 -19
  252. package/esm/simulator-ui/src/gds/Accordion.d.ts.map +0 -1
  253. package/esm/simulator-ui/src/gds/Accordion.js +0 -47
  254. package/script/simulator-ui/src/ProviderLoginPanel.d.ts +0 -8
  255. package/script/simulator-ui/src/ProviderLoginPanel.d.ts.map +0 -1
  256. package/script/simulator-ui/src/ProviderLoginPanel.js +0 -162
  257. package/script/simulator-ui/src/WorkbenchDrawer.d.ts +0 -38
  258. package/script/simulator-ui/src/WorkbenchDrawer.d.ts.map +0 -1
  259. package/script/simulator-ui/src/WorkbenchDrawer.js +0 -722
  260. package/script/simulator-ui/src/gds/Accordion.d.ts +0 -19
  261. package/script/simulator-ui/src/gds/Accordion.d.ts.map +0 -1
  262. package/script/simulator-ui/src/gds/Accordion.js +0 -86
@@ -44,8 +44,13 @@ const Chat_js_1 = require("../../../src/Chat.js");
44
44
  const Button_js_1 = __importDefault(require("../../../src/gds/Button.js"));
45
45
  const Callout_js_1 = __importDefault(require("../../../src/gds/Callout.js"));
46
46
  const CodexLoginRequiredOverlay_js_1 = __importDefault(require("../../../src/CodexLoginRequiredOverlay.js"));
47
+ const WorkbenchChatIntro_js_1 = __importDefault(require("../../../src/WorkbenchChatIntro.js"));
48
+ const WorkbenchComposerChip_js_1 = __importDefault(require("../../../src/gds/WorkbenchComposerChip.js"));
47
49
  const transcriptEntries_js_1 = require("../../../src/transcriptEntries.js");
48
50
  const WorkbenchDrawerIso_js_1 = __importDefault(require("../../../src/WorkbenchDrawerIso.js"));
51
+ const utils_js_1 = require("../../../src/utils.js");
52
+ const workbenchContext_js_1 = require("../../../src/workbenchContext.js");
53
+ const workbenchChipStore_js_1 = require("../../../src/workbenchChipStore.js");
49
54
  const RUN_STATUS_VALUES = new Set([
50
55
  "IDLE",
51
56
  "RUNNING",
@@ -79,12 +84,10 @@ function isBuildChatDebugEnabled() {
79
84
  }
80
85
  return stored === "1" || stored === "true" || stored === "yes";
81
86
  }
82
- const BUILD_CHAT_DEBUG = isBuildChatDebugEnabled();
83
87
  function logBuildChatDebug(event, payload) {
84
- if (!BUILD_CHAT_DEBUG)
88
+ if (!isBuildChatDebugEnabled())
85
89
  return;
86
- void event;
87
- void payload;
90
+ console.info(`[build-chat-debug] ${event}`, payload);
88
91
  }
89
92
  function toRunStatus(value) {
90
93
  if (typeof value !== "string")
@@ -208,7 +211,6 @@ exports.WorkbenchConversationRunChat = (0, iso_js_1.iso)(`
208
211
  const testIdPrefix = (componentProps.testIdPrefix ?? "build").trim() ||
209
212
  "build";
210
213
  const chatInputTestId = `${testIdPrefix}-chat-input`;
211
- const startButtonTestId = `${testIdPrefix}-start`;
212
214
  const sendButtonTestId = `${testIdPrefix}-send`;
213
215
  const stopButtonTestId = `${testIdPrefix}-stop`;
214
216
  const activityIndicatorTestId = `${testIdPrefix}-chat-activity-indicator`;
@@ -261,6 +263,9 @@ exports.WorkbenchConversationRunChat = (0, iso_js_1.iso)(`
261
263
  const wasActiveRef = (0, react_1.useRef)(false);
262
264
  const [chatDraft, setChatDraft] = (0, react_1.useState)("");
263
265
  const [localError, setLocalError] = (0, react_1.useState)(null);
266
+ const composerChips = componentProps.composerChips ?? [];
267
+ const updateComposerChips = componentProps.onComposerChipsChange ??
268
+ (() => { });
264
269
  const onSendMessage = (0, react_1.useCallback)((message, options) => {
265
270
  if (codexLoginRequired) {
266
271
  setChatError("Codex login is required for this workspace.");
@@ -343,11 +348,13 @@ exports.WorkbenchConversationRunChat = (0, iso_js_1.iso)(`
343
348
  ]);
344
349
  const isRunning = runStatus === "RUNNING";
345
350
  const isBusy = componentProps.isSending || componentProps.isStopping;
351
+ const hasEnabledComposerChip = composerChips.some((chip) => chip.enabled);
346
352
  const canStartAssistant = !isRunning && !componentProps.isSending &&
347
353
  transcriptMessageCount === 0;
348
354
  const canSubmitMessage = !componentProps.isSending && !isRunning &&
349
- chatDraft.trim().length > 0;
350
- const showStartButton = canStartAssistant && chatDraft.trim().length === 0;
355
+ (chatDraft.trim().length > 0 || hasEnabledComposerChip);
356
+ const showStartOverlay = canStartAssistant && !hasEnabledComposerChip &&
357
+ chatDraft.trim().length === 0;
351
358
  const resolvedError = chatError ?? localError;
352
359
  const handleCopyCodexLoginCommand = (0, react_1.useCallback)(() => {
353
360
  globalThis.navigator?.clipboard?.writeText(codexLoginCommand);
@@ -400,26 +407,37 @@ exports.WorkbenchConversationRunChat = (0, iso_js_1.iso)(`
400
407
  const trimmed = chatDraft.trim();
401
408
  if (!canSubmitMessage || isBusy)
402
409
  return;
410
+ const activeChips = composerChips.filter((chip) => chip.enabled);
411
+ const activeChipIds = new Set(activeChips.map((chip) => chip.chipId));
412
+ const outboundMessage = activeChips.length > 0
413
+ ? (0, Chat_js_1.encodeWorkbenchMessageWithContext)(trimmed, activeChips.map((chip) => (0, workbenchContext_js_1.toWorkbenchMessageContext)(chip)))
414
+ : trimmed;
415
+ logBuildChatDebug("send.outbound", {
416
+ runId,
417
+ workspaceId,
418
+ trimmed,
419
+ activeChips,
420
+ outboundMessage,
421
+ });
403
422
  setLocalError(null);
404
423
  try {
405
- await onSendMessage(trimmed);
424
+ await onSendMessage(outboundMessage);
406
425
  setChatDraft("");
426
+ if (activeChipIds.size > 0) {
427
+ updateComposerChips(composerChips.map((chip) => activeChipIds.has(chip.chipId) ? { ...chip, enabled: false } : chip));
428
+ }
407
429
  }
408
430
  catch (error) {
409
431
  setLocalError(toErrorMessage(error));
410
432
  }
411
- }, [canSubmitMessage, chatDraft, isBusy, onSendMessage]);
412
- const startAssistant = (0, react_1.useCallback)(async () => {
413
- if (!showStartButton || isBusy)
414
- return;
415
- setLocalError(null);
416
- try {
417
- await onSendMessage("", { allowEmpty: true });
418
- }
419
- catch (error) {
420
- setLocalError(toErrorMessage(error));
421
- }
422
- }, [isBusy, onSendMessage, showStartButton]);
433
+ }, [
434
+ canSubmitMessage,
435
+ chatDraft,
436
+ composerChips,
437
+ isBusy,
438
+ onSendMessage,
439
+ updateComposerChips,
440
+ ]);
423
441
  const stopMessage = (0, react_1.useCallback)(async () => {
424
442
  if (isBusy || !isRunning)
425
443
  return;
@@ -434,17 +452,23 @@ exports.WorkbenchConversationRunChat = (0, iso_js_1.iso)(`
434
452
  const addScenarioErrorToChat = (0, react_1.useCallback)(() => {
435
453
  if (!scenarioRunError)
436
454
  return;
437
- const prefixedError = `Scenario error: ${scenarioRunError}`;
438
- setChatDraft((previous) => {
439
- if (previous.includes(prefixedError))
440
- return previous;
441
- if (previous.trim().length === 0)
442
- return prefixedError;
443
- return `${previous}\n\n${prefixedError}`;
444
- });
455
+ updateComposerChips((0, workbenchChipStore_js_1.mergeWorkbenchSelectedContextChip)(composerChips, {
456
+ chipId: `scenario_run_error:${runId ?? workspaceId ?? "workspace"}`,
457
+ source: "scenario_run_error",
458
+ workspaceId: workspaceId ?? undefined,
459
+ runId: runId ?? undefined,
460
+ capturedAt: new Date().toISOString(),
461
+ error: scenarioRunError,
462
+ enabled: true,
463
+ }));
445
464
  composerInputRef.current?.focus();
446
- }, [scenarioRunError]);
447
- const newChatButtonTestId = `${testIdPrefix}-new-chat`;
465
+ }, [
466
+ composerChips,
467
+ runId,
468
+ scenarioRunError,
469
+ updateComposerChips,
470
+ workspaceId,
471
+ ]);
448
472
  const errorCalloutTestId = `${testIdPrefix}-error-callout`;
449
473
  const addErrorToChatTestId = `${testIdPrefix}-add-error-to-chat`;
450
474
  const chatBody = (React.createElement("div", { className: "test-bot-sidebar flex-column gap-8 flex-1 build-chat-panel" },
@@ -454,19 +478,23 @@ exports.WorkbenchConversationRunChat = (0, iso_js_1.iso)(`
454
478
  React.createElement("div", { className: "test-bot-thread" },
455
479
  React.createElement("div", { className: "imessage-thread", ref: transcriptRef, onScroll: (event) => {
456
480
  shouldAutoScrollRef.current = isNearBottom(event.currentTarget);
457
- } }, effectiveTranscriptDisplay.length === 0
458
- ? React.createElement(Callout_js_1.default, null, emptyStateText)
459
- : React.createElement(Chat_js_1.BuildChatRows, { display: effectiveTranscriptDisplay }))),
481
+ } },
482
+ !showCodexLoginOverlay && showStartOverlay && React.createElement(WorkbenchChatIntro_js_1.default, null),
483
+ effectiveTranscriptDisplay.length === 0
484
+ ? (showStartOverlay && !showCodexLoginOverlay
485
+ ? null
486
+ : React.createElement(Callout_js_1.default, null, emptyStateText))
487
+ : React.createElement(Chat_js_1.BuildChatRows, { display: effectiveTranscriptDisplay }))),
460
488
  React.createElement("div", { className: "composer" },
461
489
  React.createElement("div", { className: "composer-inputs" },
462
490
  React.createElement("div", { className: "build-chat-activity-sticky" },
463
491
  React.createElement(BuildChatActivityIndicator, { state: activityState, startedAtMs: resolvedStartedAtMs, testId: activityIndicatorTestId, timerTestId: activityTimerTestId })),
492
+ composerChips.length > 0 && (React.createElement("div", { className: "workbench-composer-chip-row", "data-testid": `${testIdPrefix}-composer-chip-row` }, composerChips.map((chip) => (React.createElement(WorkbenchComposerChip_js_1.default, { key: chip.chipId, context: chip, enabled: chip.enabled, onEnabledChange: (enabled) => updateComposerChips(composerChips.map((entry) => entry.chipId === chip.chipId
493
+ ? { ...entry, enabled }
494
+ : entry)), onRemove: () => updateComposerChips(composerChips.filter((entry) => entry.chipId !== chip.chipId)) }))))),
464
495
  scenarioRunError && (React.createElement(Callout_js_1.default, { variant: "danger", title: "Scenario run failed", actions: React.createElement(Button_js_1.default, { variant: "secondary", size: "small", "data-testid": addErrorToChatTestId, onClick: addScenarioErrorToChat }, "Add to chat"), "data-testid": errorCalloutTestId }, scenarioRunError)),
465
- showStartButton && (React.createElement(Callout_js_1.default, { variant: "emphasis" }, "Start the assistant to begin editing.")),
466
496
  React.createElement("div", { className: "flex-row gap-4 mb-2" },
467
- React.createElement("textarea", { ref: composerInputRef, className: "message-input flex-1", rows: 1, placeholder: showStartButton
468
- ? "Start the assistant to begin..."
469
- : "Message Gambit Bot...", value: chatDraft, onChange: (event) => setChatDraft(event.target.value), "data-testid": chatInputTestId, disabled: isBusy, onKeyDown: (event) => {
497
+ React.createElement("textarea", { ref: composerInputRef, className: "message-input flex-1", rows: 1, placeholder: "Message Gambit Bot...", value: chatDraft, onChange: (event) => setChatDraft(event.target.value), "data-testid": chatInputTestId, disabled: isBusy, onKeyDown: (event) => {
470
498
  if (event.key === "Enter" && !event.shiftKey) {
471
499
  event.preventDefault();
472
500
  if (canSubmitMessage) {
@@ -475,19 +503,17 @@ exports.WorkbenchConversationRunChat = (0, iso_js_1.iso)(`
475
503
  }
476
504
  } }),
477
505
  React.createElement("div", { className: "composer-actions" },
478
- componentProps.onNewChat && (React.createElement(Button_js_1.default, { variant: "secondary", disabled: isBusy || isRunning ||
479
- componentProps.canStartNewChat === false, "data-testid": newChatButtonTestId, onClick: componentProps.onNewChat }, "New chat")),
480
- isRunning && (React.createElement(Button_js_1.default, { variant: "secondary", disabled: isBusy, "data-testid": stopButtonTestId, onClick: () => {
481
- void stopMessage();
482
- } }, componentProps.isStopping ? "Stopping..." : "Stop")),
483
- showStartButton
484
- ? (React.createElement(Button_js_1.default, { variant: "primary", disabled: !showStartButton || isBusy || codexLoginRequired, "data-testid": startButtonTestId, onClick: () => {
485
- void startAssistant();
486
- } }, componentProps.isSending ? "Starting..." : "Start"))
487
- : (React.createElement(Button_js_1.default, { variant: "primary", disabled: !canSubmitMessage || isBusy || codexLoginRequired, "data-testid": sendButtonTestId, onClick: () => {
506
+ React.createElement("div", { className: "composer-action-slot composer-action-slot-primary" }, isRunning
507
+ ? (React.createElement(Button_js_1.default, { variant: "secondary", className: "composer-action-button", disabled: isBusy, "data-testid": stopButtonTestId, onClick: () => {
508
+ void stopMessage();
509
+ } }, componentProps.isStopping ? "Stopping..." : "Stop"))
510
+ : (React.createElement(Button_js_1.default, { variant: "primary", className: "composer-action-button", disabled: !canSubmitMessage || isBusy ||
511
+ codexLoginRequired, "data-testid": sendButtonTestId, onClick: () => {
488
512
  void sendMessage();
489
- } }, componentProps.isSending ? "Sending..." : "Send")))),
513
+ } }, componentProps.isSending ? "Sending..." : "Send"))))),
490
514
  resolvedError && React.createElement("div", { className: "error" }, resolvedError)))));
491
- return (React.createElement(WorkbenchDrawerIso_js_1.default, { open: componentProps.open, runStatus: runStatus, chatHeaderActions: componentProps.chatHeaderActions, chatHistoryOpen: componentProps.chatHistoryOpen, onToggleChatHistory: componentProps.onToggleChatHistory, chatHistoryContent: componentProps.chatHistoryContent, chatBody: chatBody }));
515
+ return (React.createElement(WorkbenchDrawerIso_js_1.default, { open: componentProps.open, runStatus: runStatus, chatHeaderActions: componentProps.chatHeaderActions, chatHistoryOpen: utils_js_1.workbenchChatTopActionsEnabled
516
+ ? componentProps.chatHistoryOpen
517
+ : false, chatHistoryContent: componentProps.chatHistoryContent, chatBody: chatBody }));
492
518
  });
493
519
  exports.default = exports.WorkbenchConversationRunChat;
@@ -65,6 +65,20 @@ export declare function GradeTabView(props: {
65
65
  runId: string;
66
66
  turnIndex?: number;
67
67
  }) => void;
68
+ onAddFlagToWorkbench?: (args: {
69
+ refId: string;
70
+ runId: string;
71
+ turnIndex?: number;
72
+ score?: number;
73
+ graderReason?: string;
74
+ flagReason?: string;
75
+ priorUser?: string;
76
+ gradedAssistant?: string;
77
+ }) => void;
78
+ onAddErrorToWorkbench?: (args: {
79
+ runId?: string;
80
+ error: string;
81
+ }) => void;
68
82
  mutationError: string | null;
69
83
  expandedResults: Record<string, boolean>;
70
84
  onToggleExpandedResult: (itemKey: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"GradeTabView.d.ts","sourceRoot":"","sources":["../../../../../src/simulator-ui/isograph/components/grade/GradeTabView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GradeTabView.d.ts","sourceRoot":"","sources":["../../../../../src/simulator-ui/isograph/components/grade/GradeTabView.tsx"],"names":[],"mappings":"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"}
@@ -92,6 +92,6 @@ function GradeTabView(props) {
92
92
  meta: [run.status, run.finishedAt ?? run.startedAt].filter(Boolean)
93
93
  .join(" · "),
94
94
  })), [props.scenarioRuns]);
95
- return (React.createElement(GradeTabShell_js_1.default, { runner: React.createElement(GradeRunnerPanel_js_1.default, { testRunOptions: testRunOptions, selectedTestRunId: props.selectedScenarioRunId, onSelectTestRun: (runId) => props.onSelectScenarioRun(runId || null), graders: graderOptions, selectedGraderId: props.selectedGraderId, onSelectGrader: props.onSelectGrader, selectedGraderDescription: selectedGrader?.description ?? null, sessionsCount: props.scenarioRuns.length, onRunGrader: props.onRunGrader, canRun: props.canRunGrader, running: props.runInFlight, runButtonTestId: "grade-run-grader" }), results: React.createElement(GradeResultsPanel_js_1.default, { error: props.mutationError, loading: false, runCount: runSections.length, runItemsCount: runSections.flatMap((section) => section.items).length, emptyMessage: "No grader runs for this selected test run yet.", routeRunNotFound: props.routeRunMissing, missingRunHref: props.missingRunHref, runSections: runSections, expandedRunId: props.routeGradeRunId, onToggleRun: (runId) => props.onSelectRun(props.routeGradeRunId === runId ? null : runId), expandedResults: props.expandedResults, onToggleExpandedResult: props.onToggleExpandedResult, flaggedRefSet: flaggedRefSet, flagReasonDrafts: props.reasonDrafts, flagReasonByRefId: props.flagByRefId, onToggleFlag: props.onToggleFlag, onFlagReasonChange: props.onReasonDraftChange, onFlagReasonBlur: props.onReasonBlur, topErrorRunId: props.routeGradeRunId }) }));
95
+ return (React.createElement(GradeTabShell_js_1.default, { runner: React.createElement(GradeRunnerPanel_js_1.default, { testRunOptions: testRunOptions, selectedTestRunId: props.selectedScenarioRunId, onSelectTestRun: (runId) => props.onSelectScenarioRun(runId || null), graders: graderOptions, selectedGraderId: props.selectedGraderId, onSelectGrader: props.onSelectGrader, selectedGraderDescription: selectedGrader?.description ?? null, sessionsCount: props.scenarioRuns.length, onRunGrader: props.onRunGrader, canRun: props.canRunGrader, running: props.runInFlight, runButtonTestId: "grade-run-grader" }), results: React.createElement(GradeResultsPanel_js_1.default, { error: props.mutationError, loading: false, runCount: runSections.length, runItemsCount: runSections.flatMap((section) => section.items).length, emptyMessage: "No grader runs for this selected test run yet.", routeRunNotFound: props.routeRunMissing, missingRunHref: props.missingRunHref, runSections: runSections, expandedRunId: props.routeGradeRunId, onToggleRun: (runId) => props.onSelectRun(props.routeGradeRunId === runId ? null : runId), expandedResults: props.expandedResults, onToggleExpandedResult: props.onToggleExpandedResult, flaggedRefSet: flaggedRefSet, flagReasonDrafts: props.reasonDrafts, flagReasonByRefId: props.flagByRefId, onToggleFlag: props.onToggleFlag, onFlagReasonChange: props.onReasonDraftChange, onFlagReasonBlur: props.onReasonBlur, onAddFlagToWorkbench: props.onAddFlagToWorkbench, onAddErrorToWorkbench: props.onAddErrorToWorkbench, topErrorRunId: props.routeGradeRunId }) }));
96
96
  }
97
97
  exports.default = GradeTabView;
@@ -1 +1 @@
1
- {"version":3,"file":"EntrypointSimulatorRedirect.d.ts","sourceRoot":"","sources":["../../../../src/simulator-ui/isograph/entrypoints/EntrypointSimulatorRedirect.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,2BAA2B;;;;;;;CAwEtC,CAAC;AAEH,eAAe,2BAA2B,CAAC"}
1
+ {"version":3,"file":"EntrypointSimulatorRedirect.d.ts","sourceRoot":"","sources":["../../../../src/simulator-ui/isograph/entrypoints/EntrypointSimulatorRedirect.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,2BAA2B;;;;;;;CAuDtC,CAAC;AAEH,eAAe,2BAA2B,CAAC"}
@@ -51,10 +51,6 @@ exports.EntrypointSimulatorRedirect = (0, iso_js_1.iso)(`
51
51
  ? globals.__GAMBIT_CURRENT_PATH__
52
52
  : "/";
53
53
  })();
54
- const isIsographPrefixed = currentPath === "/isograph" ||
55
- currentPath.startsWith("/isograph/");
56
- const routePrefix = isIsographPrefixed ? "/isograph" : "";
57
- const withPrefix = (path) => `${routePrefix}${path}`;
58
54
  if (currentPath === "/" || currentPath === "/build" ||
59
55
  currentPath === "/debug" || currentPath === "/simulate") {
60
56
  return {
@@ -64,16 +60,7 @@ exports.EntrypointSimulatorRedirect = (0, iso_js_1.iso)(`
64
60
  headers: { Location: "/workspaces" },
65
61
  };
66
62
  }
67
- if (currentPath === "/isograph" || currentPath === "/isograph/build" ||
68
- currentPath === "/isograph/debug" || currentPath === "/isograph/simulate") {
69
- return {
70
- Body: null,
71
- title: "Gambit Simulator",
72
- status: 302,
73
- headers: { Location: "/isograph/workspaces" },
74
- };
75
- }
76
- const bareWorkspaceMatch = currentPath.match(/^(?:\/isograph)?\/workspaces\/([^/]+)$/);
63
+ const bareWorkspaceMatch = currentPath.match(/^\/workspaces\/([^/]+)$/);
77
64
  if (bareWorkspaceMatch && bareWorkspaceMatch[1] !== "new") {
78
65
  const workspaceId = (() => {
79
66
  try {
@@ -87,14 +74,14 @@ exports.EntrypointSimulatorRedirect = (0, iso_js_1.iso)(`
87
74
  Body: null,
88
75
  title: "Gambit Simulator",
89
76
  status: 302,
90
- headers: { Location: withPrefix(`/workspaces/${workspaceId}/build`) },
77
+ headers: { Location: `/workspaces/${workspaceId}/build` },
91
78
  };
92
79
  }
93
80
  return {
94
81
  Body: null,
95
82
  title: "Gambit Simulator",
96
83
  status: 302,
97
- headers: { Location: withPrefix("/workspaces") },
84
+ headers: { Location: "/workspaces" },
98
85
  };
99
86
  });
100
87
  exports.default = exports.EntrypointSimulatorRedirect;
@@ -1 +1 @@
1
- {"version":3,"file":"EntrypointSimulatorWorkspaceShell.d.ts","sourceRoot":"","sources":["../../../../src/simulator-ui/isograph/entrypoints/EntrypointSimulatorWorkspaceShell.tsx"],"names":[],"mappings":"AAsDA,eAAO,MAAM,iCAAiC;;;;;;;;CAkC5C,CAAC;AAEH,eAAe,iCAAiC,CAAC"}
1
+ {"version":3,"file":"EntrypointSimulatorWorkspaceShell.d.ts","sourceRoot":"","sources":["../../../../src/simulator-ui/isograph/entrypoints/EntrypointSimulatorWorkspaceShell.tsx"],"names":[],"mappings":"AA6CA,eAAO,MAAM,iCAAiC;;;;;;;;CAkC5C,CAAC;AAEH,eAAe,iCAAiC,CAAC"}
@@ -18,17 +18,9 @@ function isThenable(value) {
18
18
  (typeof value === "object" || typeof value === "function") &&
19
19
  typeof value.then === "function";
20
20
  }
21
- function toWorkspaceRoutePath(path) {
22
- if (path === "/isograph" || path.startsWith("/isograph/")) {
23
- const stripped = path.slice("/isograph".length);
24
- return stripped.length > 0 ? stripped : "/";
25
- }
26
- return path;
27
- }
28
21
  function WorkspaceMainPane(props) {
29
22
  const { currentRoutePath } = (0, RouterContext_js_1.useRouter)();
30
- const workspaceRoutePath = toWorkspaceRoutePath(currentRoutePath);
31
- const route = (0, workspace_routes_js_1.parseWorkspaceRoute)(workspaceRoutePath);
23
+ const route = (0, workspace_routes_js_1.parseWorkspaceRoute)(currentRoutePath);
32
24
  const tab = route?.tab === "test" || route?.tab === "grade" ||
33
25
  route?.tab === "verify"
34
26
  ? route.tab
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../../src/simulator-ui/src/AppShell.tsx"],"names":[],"mappings":"AAwCA,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1B,IAAI,EAAE,OAAO,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;QACxC,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,WAAW,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;QAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACpC,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;QACxC,kBAAkB,EAAE,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,KAAK,IAAI,CAAC;KACvE,CAAC,CAAC;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC9B,IAAI,EAAE,OAAO,CAAC;KACf,CAAC,CAAC;CACJ,+BAmVA"}
1
+ {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../../src/simulator-ui/src/AppShell.tsx"],"names":[],"mappings":"AAuCA,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1B,IAAI,EAAE,OAAO,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;QACxC,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,WAAW,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;QAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACpC,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;QACxC,kBAAkB,EAAE,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,KAAK,IAAI,CAAC;KACvE,CAAC,CAAC;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC9B,IAAI,EAAE,OAAO,CAAC;KACf,CAAC,CAAC;CACJ,+BAsTA"}
@@ -44,7 +44,6 @@ const utils_js_1 = require("./utils.js");
44
44
  const RouterContext_js_1 = require("./RouterContext.js");
45
45
  const Button_js_1 = __importDefault(require("./gds/Button.js"));
46
46
  const Icon_js_1 = __importDefault(require("./gds/Icon.js"));
47
- const WorkbenchDrawer_js_1 = __importDefault(require("./WorkbenchDrawer.js"));
48
47
  const utils_js_2 = require("./utils.js");
49
48
  const useGambitTypedMutation_js_1 = require("./hooks/useGambitTypedMutation.js");
50
49
  const GambitWorkspaceCreateMutation_js_1 = __importDefault(require("../mutations/GambitWorkspaceCreateMutation.js"));
@@ -69,17 +68,7 @@ function AppShell(props) {
69
68
  const THEME_STORAGE_KEY = "gambit-simulator-theme";
70
69
  const { Drawer } = props;
71
70
  const { currentRoutePath, navigate } = (0, RouterContext_js_1.useRouter)();
72
- const routePrefix = (0, react_1.useMemo)(() => currentRoutePath === "/isograph" ||
73
- currentRoutePath.startsWith("/isograph/")
74
- ? "/isograph"
75
- : "", [currentRoutePath]);
76
- const toPrefixedPath = (0, react_1.useCallback)((path) => `${routePrefix}${path}`, [routePrefix]);
77
- const workspaceRoutePath = (0, react_1.useMemo)(() => {
78
- if (!routePrefix)
79
- return currentRoutePath;
80
- const stripped = currentRoutePath.slice(routePrefix.length);
81
- return stripped.length > 0 ? stripped : "/";
82
- }, [currentRoutePath, routePrefix]);
71
+ const workspaceRoutePath = currentRoutePath;
83
72
  const deckLabel = getDeckLabelForShell();
84
73
  const [drawerOpen, setDrawerOpen] = (0, react_1.useState)(false);
85
74
  const [workbenchOpen, setWorkbenchOpen] = (0, react_1.useState)(true);
@@ -100,7 +89,7 @@ function AppShell(props) {
100
89
  });
101
90
  const createWorkspaceMutation = (0, useGambitTypedMutation_js_1.useGambitTypedMutation)(GambitWorkspaceCreateMutation_js_1.default);
102
91
  const deleteWorkspaceMutation = (0, useGambitTypedMutation_js_1.useGambitTypedMutation)(GambitWorkspaceDeleteMutation_js_1.default);
103
- const Workbench = props.Workbench ?? WorkbenchDrawer_js_1.default;
92
+ const Workbench = props.Workbench;
104
93
  const activeWorkspaceId = (0, react_1.useMemo)(() => {
105
94
  const route = (0, workspace_routes_js_1.parseWorkspaceRoute)(workspaceRoutePath);
106
95
  return route?.workspaceId ?? null;
@@ -109,26 +98,27 @@ function AppShell(props) {
109
98
  const route = (0, workspace_routes_js_1.parseWorkspaceRoute)(workspaceRoutePath);
110
99
  return route?.tab ?? null;
111
100
  }, [workspaceRoutePath]);
112
- const buildTabLabel = routePrefix ? "Build (isograph)" : "Build";
101
+ const buildTabLabel = "Build";
113
102
  const isWorkspacesPath = (0, react_1.useMemo)(() => workspaceRoutePath === "/workspaces" ||
114
103
  workspaceRoutePath === "/workspaces/new", [workspaceRoutePath]);
115
104
  const isDocsPath = workspaceRoutePath === "/docs";
116
105
  const canOpenWorkbench = Boolean(activeWorkspaceId);
117
- const workbenchVisible = workbenchOpen && canOpenWorkbench;
106
+ const workbenchVisible = workbenchOpen && canOpenWorkbench &&
107
+ Boolean(Workbench);
118
108
  const handleSelectWorkspace = (0, react_1.useCallback)((workspaceId) => {
119
- navigate(toPrefixedPath((0, workspace_routes_js_1.buildWorkspacePath)("build", workspaceId)));
109
+ navigate((0, workspace_routes_js_1.buildWorkspacePath)("build", workspaceId));
120
110
  setDrawerOpen(false);
121
- }, [navigate, toPrefixedPath]);
111
+ }, [navigate]);
122
112
  const createWorkspace = (0, react_1.useCallback)(() => {
123
113
  createWorkspaceMutation.commit({}, {
124
114
  onComplete: (result) => {
125
115
  const workspaceId = result?.workspace?.id;
126
116
  if (!workspaceId)
127
117
  return;
128
- navigate(toPrefixedPath((0, workspace_routes_js_1.buildWorkspacePath)("build", workspaceId)));
118
+ navigate((0, workspace_routes_js_1.buildWorkspacePath)("build", workspaceId));
129
119
  },
130
120
  });
131
- }, [createWorkspaceMutation, navigate, toPrefixedPath]);
121
+ }, [createWorkspaceMutation, navigate]);
132
122
  const persistAppearance = (0, react_1.useCallback)((nextAppearance) => {
133
123
  try {
134
124
  globalThis.localStorage.setItem(THEME_STORAGE_KEY, nextAppearance);
@@ -158,13 +148,13 @@ function AppShell(props) {
158
148
  try {
159
149
  await runDeleteWorkspaceMutation(workspaceId);
160
150
  if (workspaceId === activeWorkspaceId) {
161
- navigate(toPrefixedPath("/workspaces"));
151
+ navigate("/workspaces");
162
152
  }
163
153
  }
164
154
  finally {
165
155
  setDeletingWorkspaceId(null);
166
156
  }
167
- }, [activeWorkspaceId, navigate, runDeleteWorkspaceMutation, toPrefixedPath]);
157
+ }, [activeWorkspaceId, navigate, runDeleteWorkspaceMutation]);
168
158
  const deleteAllWorkspaces = (0, react_1.useCallback)(async (workspaceIds) => {
169
159
  const uniqueWorkspaceIds = Array.from(new Set(workspaceIds.filter((id) => id.trim().length > 0)));
170
160
  if (uniqueWorkspaceIds.length === 0) {
@@ -173,12 +163,12 @@ function AppShell(props) {
173
163
  setDeletingAll(true);
174
164
  try {
175
165
  await Promise.allSettled(uniqueWorkspaceIds.map((workspaceId) => runDeleteWorkspaceMutation(workspaceId)));
176
- navigate(toPrefixedPath("/workspaces"));
166
+ navigate("/workspaces");
177
167
  }
178
168
  finally {
179
169
  setDeletingAll(false);
180
170
  }
181
- }, [navigate, runDeleteWorkspaceMutation, toPrefixedPath]);
171
+ }, [navigate, runDeleteWorkspaceMutation]);
182
172
  return (React.createElement("div", { className: "app-root" },
183
173
  React.createElement("header", { className: "top-nav" },
184
174
  React.createElement("div", { className: "top-nav-left" },
@@ -186,42 +176,42 @@ function AppShell(props) {
186
176
  React.createElement(Icon_js_1.default, { name: "hamburgerMenu", size: 17, style: { color: "var(--color-text)" } }))),
187
177
  React.createElement("div", { className: "top-nav-buttons tab-anchor-group" },
188
178
  React.createElement("span", { className: "tab-anchor-indicator", "aria-hidden": "true" }),
189
- React.createElement(Button_js_1.default, { "data-testid": "nav-docs", tab: true, variant: isDocsPath ? "primary" : "secondary", className: (0, utils_js_2.classNames)("tab-anchor", isDocsPath && "tab-anchor--active"), onClick: () => navigate(toPrefixedPath(utils_js_2.DOCS_PATH)) }, "Docs"),
179
+ React.createElement(Button_js_1.default, { "data-testid": "nav-docs", tab: true, variant: isDocsPath ? "primary" : "secondary", className: (0, utils_js_2.classNames)("tab-anchor", isDocsPath && "tab-anchor--active"), onClick: () => navigate(utils_js_2.DOCS_PATH) }, "Docs"),
190
180
  React.createElement(Button_js_1.default, { "data-testid": "nav-build", tab: true, variant: activeWorkspaceTab === "build" ? "primary" : "secondary", className: (0, utils_js_2.classNames)("tab-anchor", activeWorkspaceTab === "build" && "tab-anchor--active"), onClick: () => {
191
181
  if (!activeWorkspaceId)
192
182
  return;
193
- navigate(toPrefixedPath((0, workspace_routes_js_1.buildWorkspacePath)("build", activeWorkspaceId)));
183
+ navigate((0, workspace_routes_js_1.buildWorkspacePath)("build", activeWorkspaceId));
194
184
  }, disabled: !activeWorkspaceId }, buildTabLabel),
195
185
  React.createElement(Button_js_1.default, { "data-testid": "nav-test", tab: true, variant: activeWorkspaceTab === "test" ? "primary" : "secondary", className: (0, utils_js_2.classNames)("tab-anchor", activeWorkspaceTab === "test" && "tab-anchor--active"), onClick: () => {
196
186
  if (!activeWorkspaceId)
197
187
  return;
198
- navigate(toPrefixedPath((0, workspace_routes_js_1.buildWorkspacePath)("test", activeWorkspaceId)));
188
+ navigate((0, workspace_routes_js_1.buildWorkspacePath)("test", activeWorkspaceId));
199
189
  }, disabled: !activeWorkspaceId }, "Test"),
200
190
  React.createElement(Button_js_1.default, { "data-testid": "nav-grade", tab: true, variant: activeWorkspaceTab === "grade" ? "primary" : "secondary", className: (0, utils_js_2.classNames)("tab-anchor", activeWorkspaceTab === "grade" && "tab-anchor--active"), onClick: () => {
201
191
  if (!activeWorkspaceId)
202
192
  return;
203
- navigate(toPrefixedPath((0, workspace_routes_js_1.buildWorkspacePath)("grade", activeWorkspaceId)));
193
+ navigate((0, workspace_routes_js_1.buildWorkspacePath)("grade", activeWorkspaceId));
204
194
  }, disabled: !activeWorkspaceId }, "Grade"),
205
195
  utils_js_1.verifyTabEnabled && (React.createElement(Button_js_1.default, { "data-testid": "nav-verify", tab: true, variant: activeWorkspaceTab === "verify"
206
196
  ? "primary"
207
197
  : "secondary", className: (0, utils_js_2.classNames)("tab-anchor", activeWorkspaceTab === "verify" && "tab-anchor--active"), onClick: () => {
208
198
  if (!activeWorkspaceId)
209
199
  return;
210
- navigate(toPrefixedPath((0, workspace_routes_js_1.buildWorkspacePath)("verify", activeWorkspaceId)));
200
+ navigate((0, workspace_routes_js_1.buildWorkspacePath)("verify", activeWorkspaceId));
211
201
  }, disabled: !activeWorkspaceId }, "Verify"))),
212
202
  React.createElement("div", { className: "top-nav-center" },
213
203
  React.createElement("span", { className: "top-nav-deck" }, deckLabel)),
214
204
  React.createElement("div", { className: "top-nav-right" },
215
205
  React.createElement("div", { className: "top-nav-actions" }),
216
- React.createElement(Button_js_1.default, { "data-testid": "nav-workbench", className: (0, utils_js_2.classNames)("workbench-toggle", workbenchVisible && "active"), variant: "secondary", onClick: () => setWorkbenchOpen((prev) => !prev), disabled: !canOpenWorkbench, "aria-label": workbenchVisible
206
+ Workbench && (React.createElement(Button_js_1.default, { "data-testid": "nav-workbench", className: (0, utils_js_2.classNames)("workbench-toggle", workbenchVisible && "active"), variant: "secondary", onClick: () => setWorkbenchOpen((prev) => !prev), disabled: !canOpenWorkbench, "aria-label": workbenchVisible
217
207
  ? "Close workbench drawer"
218
208
  : "Open workbench drawer" },
219
- React.createElement(Icon_js_1.default, { name: "chat", size: 16, style: { color: "currentColor" } })))),
209
+ React.createElement(Icon_js_1.default, { name: "chat", size: 16, style: { color: "currentColor" } }))))),
220
210
  React.createElement("div", { className: "app-content-frame" },
221
211
  React.createElement("main", { className: "page-shell" },
222
212
  isWorkspacesPath && (React.createElement("div", { style: { padding: "12px 16px 0 16px" } },
223
213
  React.createElement(Button_js_1.default, { "data-testid": "workspace-create-cta", variant: "primary", size: "small", onClick: createWorkspace, disabled: createWorkspaceMutation.inFlight }, "New workspace"))),
224
214
  isDocsPath ? React.createElement(DocsPage_js_1.default, null) : props.children),
225
- React.createElement(Workbench, { open: workbenchVisible })),
215
+ Workbench ? React.createElement(Workbench, { open: workbenchVisible }) : null),
226
216
  React.createElement(Drawer, { open: drawerOpen, onCreateWorkspace: createWorkspace, onSelect: handleSelectWorkspace, onDelete: deleteWorkspace, onDeleteAll: deleteAllWorkspaces, onClose: () => setDrawerOpen(false), activeWorkspaceId: activeWorkspaceId, bundleStamp: null, creatingWorkspace: createWorkspaceMutation.inFlight, deletingWorkspaceId: deletingWorkspaceId, deletingAll: deletingAll, appearance: appearance, onAppearanceChange: persistAppearance })));
227
217
  }
@@ -1,43 +1,19 @@
1
1
  import { type BuildDisplayMessage } from "./utils.js";
2
2
  import { bucketBuildChatDisplay } from "./ActivityTranscriptRows.js";
3
3
  import { useBuildChat } from "./BuildChatContext.js";
4
+ import { type WorkbenchErrorContext, type WorkbenchFlagContext, type WorkbenchMessageContext, type WorkbenchRatingContext, type WorkbenchSelectedContextChip, type WorkbenchVerifyOutlierContext } from "./workbenchContext.js";
4
5
  export { bucketBuildChatDisplay };
5
- export type WorkbenchScenarioErrorContext = {
6
+ export type WorkbenchScenarioErrorContext = WorkbenchErrorContext & {
6
7
  source: "scenario_run_error";
7
- workspaceId?: string;
8
- runId?: string;
9
- capturedAt: string;
10
- error: string;
11
8
  };
12
- export type WorkbenchRatingContext = {
13
- source: "message_rating";
14
- workspaceId?: string;
15
- runId?: string;
16
- capturedAt: string;
17
- messageRefId: string;
18
- statePath?: string;
19
- statePointer?: string;
20
- score: number;
21
- reason?: string;
9
+ export type WorkbenchGraderErrorContext = WorkbenchErrorContext & {
10
+ source: "grader_run_error";
22
11
  };
23
- export type WorkbenchFlagContext = {
24
- source: "grading_flag";
25
- workspaceId?: string;
26
- runId?: string;
27
- capturedAt: string;
28
- flagId?: string;
29
- refId: string;
30
- score?: number;
31
- message: string;
32
- };
33
- export type WorkbenchMessageContext = WorkbenchScenarioErrorContext | WorkbenchRatingContext | WorkbenchFlagContext;
34
12
  export type WorkbenchScenarioErrorChip = WorkbenchScenarioErrorContext & {
35
13
  enabled: boolean;
36
14
  };
37
- export type WorkbenchComposerChip = WorkbenchMessageContext & {
38
- chipId: string;
39
- enabled: boolean;
40
- };
15
+ export type WorkbenchComposerChip = WorkbenchSelectedContextChip;
16
+ export type { WorkbenchFlagContext, WorkbenchRatingContext, WorkbenchVerifyOutlierContext, };
41
17
  export declare function encodeWorkbenchMessageWithErrorContext(message: string, context: WorkbenchScenarioErrorContext): string;
42
18
  export declare function encodeWorkbenchMessageWithContext(message: string, contexts: Array<WorkbenchMessageContext>): string;
43
19
  export declare function decodeWorkbenchMessageWithErrorContext(content: string): {
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../src/simulator-ui/src/Chat.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../src/simulator-ui/src/Chat.tsx"],"names":[],"mappings":"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"}