@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
@@ -1,3 +1,4 @@
1
+ import * as dntShim from "../../../../_dnt.shims.js";
1
2
  import { iso } from "../../../__generated__/__isograph/iso.js";
2
3
  import { useCallback, useMemo, useState } from "react";
3
4
  import { buildWorkspacePath, parseWorkspaceRoute, } from "../../../../src/workspace_routes.js";
@@ -18,6 +19,7 @@ import PageShell from "../../../src/gds/PageShell.js";
18
19
  import PageGrid from "../../../src/gds/PageGrid.js";
19
20
  import Callout from "../../../src/gds/Callout.js";
20
21
  import TestBotChatPanel from "../../../src/TestBotChatPanel.js";
22
+ import { mergeWorkbenchSelectedContextChip, replaceWorkbenchSelectedContextChips, resolveWorkbenchSelectedContextChips, } from "../../../src/workbenchChipStore.js";
21
23
  function toTestBotStatus(status) {
22
24
  const normalized = status.trim().toUpperCase();
23
25
  if (normalized === "RUNNING")
@@ -31,6 +33,35 @@ function toTestBotStatus(status) {
31
33
  }
32
34
  return "idle";
33
35
  }
36
+ function isBuildChatDebugEnabled() {
37
+ if (typeof dntShim.dntGlobalThis === "undefined")
38
+ return false;
39
+ if ("location" in dntShim.dntGlobalThis && globalThis.location) {
40
+ const search = typeof globalThis.location.search === "string"
41
+ ? globalThis.location.search
42
+ : "";
43
+ if (search.length > 0) {
44
+ const value = new URLSearchParams(search).get("gambitBuildChatDebug");
45
+ if (value === "1" || value === "true")
46
+ return true;
47
+ }
48
+ }
49
+ let stored = "";
50
+ try {
51
+ stored = (globalThis.localStorage?.getItem("gambit:build-chat-debug") ?? "")
52
+ .toLowerCase()
53
+ .trim();
54
+ }
55
+ catch {
56
+ return false;
57
+ }
58
+ return stored === "1" || stored === "true" || stored === "yes";
59
+ }
60
+ function logTestChipDebug(event, payload) {
61
+ if (!isBuildChatDebugEnabled())
62
+ return;
63
+ console.info(`[test-chip-debug] ${event}`, payload);
64
+ }
34
65
  function toOptimisticScenarioRunEdges(args) {
35
66
  const edges = args.runs.map((run) => {
36
67
  const isActive = run.id === args.runId;
@@ -67,6 +98,7 @@ function toOptimisticScenarioRunEdges(args) {
67
98
  export const SimulatorTestPage = iso(`
68
99
  field Workspace.TestTab @component {
69
100
  id
101
+ workbenchSelectedContextChips @updatable
70
102
  scenarioDecks {
71
103
  id
72
104
  label
@@ -129,7 +161,7 @@ export const SimulatorTestPage = iso(`
129
161
  }
130
162
  }
131
163
  }
132
- `)(function SimulatorTestPage({ data }) {
164
+ `)(function SimulatorTestPage({ data, startUpdate }) {
133
165
  const parseJsonField = useCallback((value) => {
134
166
  if (typeof value !== "string")
135
167
  return value;
@@ -155,18 +187,12 @@ export const SimulatorTestPage = iso(`
155
187
  }
156
188
  }, []);
157
189
  const workspaceId = data.id ?? "";
190
+ const composerChips = useMemo(() => resolveWorkbenchSelectedContextChips(workspaceId, data.workbenchSelectedContextChips), [data.workbenchSelectedContextChips, workspaceId]);
191
+ const updateComposerChips = useCallback((next) => {
192
+ replaceWorkbenchSelectedContextChips(startUpdate, next, workspaceId);
193
+ }, [startUpdate, workspaceId]);
158
194
  const { currentRoutePath, navigate } = useRouter();
159
- const routePrefix = useMemo(() => currentRoutePath === "/isograph" ||
160
- currentRoutePath.startsWith("/isograph/")
161
- ? "/isograph"
162
- : "", [currentRoutePath]);
163
- const workspaceRoutePath = useMemo(() => {
164
- if (!routePrefix)
165
- return currentRoutePath;
166
- const stripped = currentRoutePath.slice(routePrefix.length);
167
- return stripped.length > 0 ? stripped : "/";
168
- }, [currentRoutePath, routePrefix]);
169
- const toPrefixedPath = useCallback((path) => `${routePrefix}${path}`, [routePrefix]);
195
+ const workspaceRoutePath = currentRoutePath;
170
196
  const scenarioDecks = useMemo(() => (data.scenarioDecks ?? []).flatMap((deck) => deck?.id && deck.label && deck.path
171
197
  ? [{
172
198
  id: deck.id,
@@ -359,7 +385,7 @@ export const SimulatorTestPage = iso(`
359
385
  const runId = result?.run?.id;
360
386
  if (!runId)
361
387
  return;
362
- navigate(toPrefixedPath(buildWorkspacePath("test", workspaceId, { runId })));
388
+ navigate(buildWorkspacePath("test", workspaceId, { runId }));
363
389
  },
364
390
  });
365
391
  }, [
@@ -369,7 +395,6 @@ export const SimulatorTestPage = iso(`
369
395
  scenarioJsonText,
370
396
  selectedScenarioDeck,
371
397
  startScenarioRun,
372
- toPrefixedPath,
373
398
  workspaceId,
374
399
  ]);
375
400
  const startAssistantChatRun = useCallback(async () => {
@@ -404,16 +429,15 @@ export const SimulatorTestPage = iso(`
404
429
  });
405
430
  if (!started)
406
431
  return null;
407
- navigate(toPrefixedPath(buildWorkspacePath("test", workspaceId, {
432
+ navigate(buildWorkspacePath("test", workspaceId, {
408
433
  runId: started.runId,
409
- })));
434
+ }));
410
435
  return started;
411
436
  }, [
412
437
  assistantInitJsonText,
413
438
  canStartAssistantRun,
414
439
  navigate,
415
440
  startScenarioRun,
416
- toPrefixedPath,
417
441
  workspaceId,
418
442
  ]);
419
443
  const kickoffAssistantTurn = useCallback(async (runId) => {
@@ -501,12 +525,13 @@ export const SimulatorTestPage = iso(`
501
525
  const showStartOverlay = Boolean(assistantDeck?.startMode !== "user" &&
502
526
  selectedRunNeedsAssistantStart);
503
527
  const hasActiveScenarioTurn = selectedRunState.status === "running";
504
- const handleStopRun = useCallback(async () => {
528
+ const handleStopRun = useCallback(() => {
505
529
  if (!selectedRun?.id || !workspaceId)
506
- return;
530
+ return Promise.resolve();
507
531
  stopScenarioRun.commit({
508
532
  input: { workspaceId, runId: selectedRun.id },
509
533
  });
534
+ return Promise.resolve();
510
535
  }, [selectedRun?.id, stopScenarioRun, workspaceId]);
511
536
  const handleSendChat = useCallback(async () => {
512
537
  const message = chatDraft.trim();
@@ -610,21 +635,21 @@ export const SimulatorTestPage = iso(`
610
635
  return;
611
636
  if (nextRunId === selectedRunHistoryValue)
612
637
  return;
613
- navigate(toPrefixedPath(buildWorkspacePath("test", workspaceId, {
638
+ navigate(buildWorkspacePath("test", workspaceId, {
614
639
  runId: nextRunId,
615
- })));
640
+ }));
616
641
  }, [
617
642
  navigate,
618
643
  selectedRunHistoryValue,
619
- toPrefixedPath,
620
644
  workspaceId,
621
645
  ]);
622
- const handleNewChat = useCallback(async () => {
646
+ const handleNewChat = useCallback(() => {
623
647
  if (!workspaceId)
624
- return;
648
+ return Promise.resolve();
625
649
  setChatDraft("");
626
- navigate(toPrefixedPath(buildWorkspacePath("test", workspaceId)));
627
- }, [navigate, toPrefixedPath, workspaceId]);
650
+ navigate(buildWorkspacePath("test", workspaceId));
651
+ return Promise.resolve();
652
+ }, [navigate, workspaceId]);
628
653
  const saveFeedback = useCallback(async (messageRefId, score, reason) => {
629
654
  if (!workspaceId) {
630
655
  throw new Error("Missing workspaceId for feedback save.");
@@ -760,6 +785,42 @@ export const SimulatorTestPage = iso(`
760
785
  ? formatJson(assistantDeck.modelParams)
761
786
  : null }),
762
787
  React.createElement(TestBotChatPanel, { run: selectedRunState, runWorkspaceId: workspaceId, runStatusLabel: runStatusLabel, testChatDisplay: testChatDisplay, transcriptMessageCount: transcriptMessageCount, transcriptUserMessageCount: transcriptUserMessageCount, activeWorkspaceId: workspaceId || null, requestedRunNotFound: hasMissingSelectedRun, canStart: canStartScenarioRun, canRunPersona: canRunPersona, hasPersonaSelection: hasPersonaSelection, botJsonErrorCount: parsedScenarioJson.error ? 1 : 0, deckJsonErrorCount: parsedAssistantInitJson.error ? 1 : 0, missingBotInput: missingScenarioFields, missingDeckInit: missingAssistantInitFields, lastInitFill: null, isUserStart: assistantDeck?.startMode === "user", showStartOverlay: showStartOverlay, canStartAssistant: canStartAssistantRun, canSendChat: chatDraft.trim().length > 0 && !showStartOverlay &&
763
- !sendScenarioRun.inFlight && !hasActiveScenarioTurn, chatDraft: chatDraft, setChatDraft: setChatDraft, chatError: null, optimisticUser: null, streamingUser: null, streamingAssistant: null, startRun: async () => startNewScenarioRun(), stopRun: handleStopRun, handleNewChat: handleNewChat, handleSendChat: handleSendChat, handleStartAssistant: handleStartAssistant, onScore: saveFeedback, onReasonChange: saveFeedback }))));
788
+ !sendScenarioRun.inFlight && !hasActiveScenarioTurn, chatDraft: chatDraft, setChatDraft: setChatDraft, chatError: null, optimisticUser: null, streamingUser: null, streamingAssistant: null, startRun: () => {
789
+ startNewScenarioRun();
790
+ return Promise.resolve();
791
+ }, stopRun: handleStopRun, handleNewChat: handleNewChat, handleSendChat: handleSendChat, handleStartAssistant: handleStartAssistant, onScore: saveFeedback, onReasonChange: saveFeedback, onAddFeedbackToWorkbench: (feedback) => {
792
+ const chip = {
793
+ chipId: `rating:${feedback.messageRefId}:${feedback.id}`,
794
+ source: "message_rating",
795
+ workspaceId,
796
+ runId: feedback.runId,
797
+ capturedAt: feedback.createdAt ?? new Date().toISOString(),
798
+ messageRefId: feedback.messageRefId,
799
+ score: feedback.score,
800
+ reason: feedback.reason,
801
+ enabled: true,
802
+ };
803
+ logTestChipDebug("feedback.add_to_workbench", {
804
+ messageRefId: feedback.messageRefId,
805
+ score: feedback.score,
806
+ reason: feedback.reason,
807
+ chip,
808
+ });
809
+ updateComposerChips(mergeWorkbenchSelectedContextChip(composerChips, chip));
810
+ }, onAddErrorToWorkbench: (payload) => {
811
+ if (!payload.error)
812
+ return;
813
+ updateComposerChips(mergeWorkbenchSelectedContextChip(composerChips, {
814
+ chipId: `scenario_run_error:${payload.runId ?? selectedRunState.id ?? workspaceId}`,
815
+ source: payload.source === "grader_run_error"
816
+ ? "grader_run_error"
817
+ : "scenario_run_error",
818
+ workspaceId: payload.workspaceId ?? workspaceId,
819
+ runId: payload.runId ?? selectedRunState.id,
820
+ capturedAt: new Date().toISOString(),
821
+ error: payload.error,
822
+ enabled: true,
823
+ }));
824
+ } }))));
764
825
  });
765
826
  export default SimulatorTestPage;
@@ -1 +1 @@
1
- {"version":3,"file":"SimulatorVerifyPage.d.ts","sourceRoot":"","sources":["../../../../../src/simulator-ui/isograph/components/Query/SimulatorVerifyPage.tsx"],"names":[],"mappings":"AA6IA,eAAO,MAAM,mBAAmB,8LAyyB9B,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"SimulatorVerifyPage.d.ts","sourceRoot":"","sources":["../../../../../src/simulator-ui/isograph/components/Query/SimulatorVerifyPage.tsx"],"names":[],"mappings":"AA+IA,eAAO,MAAM,mBAAmB,8LAo1B9B,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
@@ -14,6 +14,7 @@ import PageGrid from "../../../src/gds/PageGrid.js";
14
14
  import PageShell from "../../../src/gds/PageShell.js";
15
15
  import Panel from "../../../src/gds/Panel.js";
16
16
  import { formatTimestampShort, scenarioNameFromValue, } from "../../../src/utils.js";
17
+ import { mergeWorkbenchSelectedContextChip, replaceWorkbenchSelectedContextChips, resolveWorkbenchSelectedContextChips, } from "../../../src/workbenchChipStore.js";
17
18
  import { sortVerifyOutlierScenarioRuns, VERIFY_DEFAULTS, VERIFY_LIMITS, } from "../../../src/verify_unified.js";
18
19
  const MAX_SCENARIO_RUNS = VERIFY_LIMITS.scenarioRunsMax;
19
20
  const MAX_GRADER_REPEATS = VERIFY_LIMITS.graderRepeatsMax;
@@ -21,11 +22,6 @@ const MAX_BATCH_CONCURRENCY = VERIFY_LIMITS.concurrencyMax;
21
22
  const DEFAULT_SCENARIO_RUNS = VERIFY_DEFAULTS.scenarioRuns;
22
23
  const DEFAULT_GRADER_REPEATS = VERIFY_DEFAULTS.graderRepeatsPerScenario;
23
24
  const DEFAULT_BATCH_CONCURRENCY = VERIFY_DEFAULTS.concurrency;
24
- function getRoutePrefix(path) {
25
- return path === "/isograph" || path.startsWith("/isograph/")
26
- ? "/isograph"
27
- : "";
28
- }
29
25
  function toBatchStatus(status) {
30
26
  const normalized = (status ?? "").trim().toUpperCase();
31
27
  if (normalized === "RUNNING")
@@ -58,6 +54,7 @@ function formatPercent(value) {
58
54
  export const SimulatorVerifyPage = iso(`
59
55
  field Workspace.VerifyTab @component {
60
56
  id
57
+ workbenchSelectedContextChips @updatable
61
58
  scenarioDecks {
62
59
  id
63
60
  label
@@ -153,13 +150,13 @@ export const SimulatorVerifyPage = iso(`
153
150
  }
154
151
  }
155
152
  }
156
- `)(function SimulatorVerifyPage({ data }) {
153
+ `)(function SimulatorVerifyPage({ data, startUpdate }) {
157
154
  const workspaceId = data.id ?? "";
158
- const { currentRoutePath, navigate } = useRouter();
159
- const routePrefix = useMemo(() => getRoutePrefix(currentRoutePath), [
160
- currentRoutePath,
161
- ]);
162
- const toPrefixedPath = useCallback((path) => `${routePrefix}${path}`, [routePrefix]);
155
+ const composerChips = useMemo(() => resolveWorkbenchSelectedContextChips(workspaceId, data.workbenchSelectedContextChips), [data.workbenchSelectedContextChips, workspaceId]);
156
+ const updateComposerChips = useCallback((next) => {
157
+ replaceWorkbenchSelectedContextChips(startUpdate, next, workspaceId);
158
+ }, [startUpdate, workspaceId]);
159
+ const { navigate } = useRouter();
163
160
  const runBatchMutation = useGambitTypedMutation(gambitWorkspaceVerifyBatchRunCreateMutation);
164
161
  useGambitTypedSubscription(gambitWorkspaceVerifyLiveSubscription, workspaceId ? { workspaceId } : null);
165
162
  const scenarioDecks = useMemo(() => data.scenarioDecks?.flatMap((deck) => {
@@ -379,8 +376,8 @@ export const SimulatorVerifyPage = iso(`
379
376
  ]);
380
377
  const navigateToGradeRun = useCallback((runId) => {
381
378
  const gradePath = buildWorkspacePath("grade", workspaceId, { runId });
382
- navigate(toPrefixedPath(gradePath));
383
- }, [navigate, toPrefixedPath, workspaceId]);
379
+ navigate(gradePath);
380
+ }, [navigate, workspaceId]);
384
381
  return (React.createElement(PageShell, { className: "verify-shell" },
385
382
  React.createElement(PageGrid, { as: "main", className: "verify-layout" },
386
383
  React.createElement(Panel, { className: "verify-controls", "data-testid": "verify-tab-scaffold" },
@@ -525,9 +522,26 @@ export const SimulatorVerifyPage = iso(`
525
522
  outlier.messageRefId
526
523
  ? ` · ref ${outlier.messageRefId}`
527
524
  : ""),
528
- uniqueRunLinks.length > 0 && (React.createElement("div", { className: "verify-outlier-links" }, uniqueRunLinks.map((runId) => (React.createElement("a", { key: runId, href: toPrefixedPath(buildWorkspacePath("grade", workspaceId, {
525
+ React.createElement("div", { className: "verify-outlier-links" },
526
+ React.createElement("button", { type: "button", className: "link-button", "data-testid": "verify-outlier-add-to-chat", onClick: () => updateComposerChips(mergeWorkbenchSelectedContextChip(composerChips, {
527
+ chipId: `verify:${outlier.key}`,
528
+ source: "verify_outlier",
529
+ workspaceId,
530
+ runId: outlier.maxRunId ?? outlier.minRunId,
531
+ capturedAt: new Date().toISOString(),
532
+ batchId: selectedBatch?.id,
533
+ scenarioRunId: outlier.scenarioRunId,
534
+ messageRefId: outlier.messageRefId,
535
+ score: outlier.averageScore ?? undefined,
536
+ instability: (outlier.maxScore ?? 0) -
537
+ (outlier.minScore ?? 0) >= 2,
538
+ message: `${scenarioNameFromValue(outlier.scenarioRunId) ??
539
+ outlier.scenarioRunId}: avg ${outlier.averageScore ?? "-"}, min/max ${outlier.minScore ?? "-"}/${outlier.maxScore ?? "-"}, samples ${outlier.completedSampleCount}/${outlier.gradeSampleCount}`,
540
+ enabled: true,
541
+ })) }, "Add to chat")),
542
+ uniqueRunLinks.length > 0 && (React.createElement("div", { className: "verify-outlier-links" }, uniqueRunLinks.map((runId) => (React.createElement("a", { key: runId, href: buildWorkspacePath("grade", workspaceId, {
529
543
  runId,
530
- })), onClick: (event) => {
544
+ }), onClick: (event) => {
531
545
  event.preventDefault();
532
546
  navigateToGradeRun(runId);
533
547
  } },
@@ -572,9 +586,9 @@ export const SimulatorVerifyPage = iso(`
572
586
  request.scenarioRunId && (React.createElement("span", { className: "secondary-note" }, scenarioNameFromValue(request.scenarioRunId) ??
573
587
  request.scenarioRunId)),
574
588
  request.runId
575
- ? (React.createElement("a", { href: toPrefixedPath(buildWorkspacePath("grade", workspaceId, {
589
+ ? (React.createElement("a", { href: buildWorkspacePath("grade", workspaceId, {
576
590
  runId: request.runId,
577
- })), onClick: (event) => {
591
+ }), onClick: (event) => {
578
592
  event.preventDefault();
579
593
  navigateToGradeRun(request.runId);
580
594
  } }, request.runId))
@@ -1 +1 @@
1
- {"version":3,"file":"SimulatorWorkspacesPage.d.ts","sourceRoot":"","sources":["../../../../../src/simulator-ui/isograph/components/Query/SimulatorWorkspacesPage.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,uBAAuB,kNAqFlC,CAAC;AAEH,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"SimulatorWorkspacesPage.d.ts","sourceRoot":"","sources":["../../../../../src/simulator-ui/isograph/components/Query/SimulatorWorkspacesPage.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,uBAAuB,kNA6ElC,CAAC;AAEH,eAAe,uBAAuB,CAAC"}
@@ -23,11 +23,7 @@ export const SimulatorWorkspacesPage = iso(`
23
23
  }
24
24
  }
25
25
  `)(function SimulatorWorkspacesPage({ data }) {
26
- const { currentRoutePath, navigate } = useRouter();
27
- const routePrefix = currentRoutePath === "/isograph" ||
28
- currentRoutePath.startsWith("/isograph/")
29
- ? "/isograph"
30
- : "";
26
+ const { navigate } = useRouter();
31
27
  const workspaces = (data.gambitWorkspaces?.edges ?? [])
32
28
  .flatMap((edge) => {
33
29
  const node = edge?.node;
@@ -54,7 +50,7 @@ export const SimulatorWorkspacesPage = iso(`
54
50
  React.createElement("h1", null, "Workspaces"),
55
51
  React.createElement("p", { className: "docs-subtitle" }, "Open an existing workspace session.")),
56
52
  React.createElement(Panel, { className: "docs-section-card" }, workspaces.length > 0
57
- ? (React.createElement(List, null, workspaces.map((workspace) => (React.createElement("button", { key: workspace.id, type: "button", className: "gds-list-item-button", style: { width: "100%", display: "block" }, onClick: () => navigate(`${routePrefix}${buildWorkspacePath("build", workspace.id)}`) },
53
+ ? (React.createElement(List, null, workspaces.map((workspace) => (React.createElement("button", { key: workspace.id, type: "button", className: "gds-list-item-button", style: { width: "100%", display: "block" }, onClick: () => navigate(buildWorkspacePath("build", workspace.id)) },
58
54
  React.createElement(ListItem, { title: workspace.testBotName ??
59
55
  workspace.deckSlug ??
60
56
  workspace.deck ??
@@ -1 +1 @@
1
- {"version":3,"file":"WorkbenchChatDrawer.d.ts","sourceRoot":"","sources":["../../../../../src/simulator-ui/isograph/components/Workspace/WorkbenchChatDrawer.tsx"],"names":[],"mappings":"AAgEA,eAAO,MAAM,mBAAmB;UAwBkC,OAAO;iCAocvE,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"WorkbenchChatDrawer.d.ts","sourceRoot":"","sources":["../../../../../src/simulator-ui/isograph/components/Workspace/WorkbenchChatDrawer.tsx"],"names":[],"mappings":"AAwEA,eAAO,MAAM,mBAAmB;UA4BJ,OAAO;iCAqdlC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -5,15 +5,16 @@ import gambitSimulatorResetWorkspaceMutation from "../../../mutations/GambitSimu
5
5
  import gambitSimulatorStopRunMutation from "../../../mutations/GambitSimulatorStopRunMutation.js";
6
6
  import gambitWorkspaceBuildRunCreateMutation from "../../../mutations/GambitWorkspaceBuildRunCreateMutation.js";
7
7
  import gambitWorkspaceWorkbenchLiveSubscription from "../../../subscriptions/GambitWorkspaceWorkbenchLiveSubscription.js";
8
- import Button from "../../../src/gds/Button.js";
9
8
  import Callout from "../../../src/gds/Callout.js";
10
9
  import Listbox from "../../../src/gds/Listbox.js";
11
10
  import List from "../../../src/gds/List.js";
12
11
  import ListItem from "../../../src/gds/ListItem.js";
12
+ import WorkbenchChatIntro from "../../../src/WorkbenchChatIntro.js";
13
13
  import { useGambitTypedMutation } from "../../../src/hooks/useGambitTypedMutation.js";
14
14
  import { useGambitTypedSubscription } from "../../../src/hooks/useGambitTypedSubscription.js";
15
15
  import WorkbenchDrawerIso from "../../../src/WorkbenchDrawerIso.js";
16
- import { formatTimestampShort, } from "../../../src/utils.js";
16
+ import { formatTimestampShort, workbenchChatTopActionsEnabled, } from "../../../src/utils.js";
17
+ import { replaceWorkbenchSelectedContextChips, resolveWorkbenchSelectedContextChips, } from "../../../src/workbenchChipStore.js";
17
18
  import { buildWorkspacePath, WORKSPACES_API_BASE, } from "../../../../src/workspace_contract.js";
18
19
  const BUILD_CHAT_PROVIDER_STORAGE_KEY = "gambit:build-chat-provider";
19
20
  function toErrorMessage(error) {
@@ -55,6 +56,7 @@ function storeBuildChatProvider(provider) {
55
56
  export const WorkbenchChatDrawer = iso(`
56
57
  field Workspace.WorkbenchChatDrawer @component {
57
58
  id
59
+ workbenchSelectedContextChips @updatable
58
60
  models {
59
61
  codex {
60
62
  model
@@ -76,10 +78,14 @@ export const WorkbenchChatDrawer = iso(`
76
78
  }
77
79
  }
78
80
  }
79
- `)(function WorkbenchChatDrawer({ data }, componentProps) {
81
+ `)(function WorkbenchChatDrawer({ data, startUpdate }, componentProps) {
80
82
  const workspaceId = typeof data.id === "string" && data.id.trim().length > 0
81
83
  ? data.id
82
84
  : null;
85
+ const composerChips = useMemo(() => resolveWorkbenchSelectedContextChips(workspaceId, data.workbenchSelectedContextChips), [data.workbenchSelectedContextChips, workspaceId]);
86
+ const updateComposerChips = useCallback((next) => {
87
+ replaceWorkbenchSelectedContextChips(startUpdate, next, workspaceId);
88
+ }, [startUpdate, workspaceId]);
83
89
  useGambitTypedSubscription(gambitWorkspaceWorkbenchLiveSubscription, workspaceId ? { workspaceId } : null);
84
90
  const runNode = (data.buildRuns?.edges ?? []).flatMap((edge) => edge?.node ? [edge.node] : [])[0] ?? null;
85
91
  const codexStatus = data.models?.codex
@@ -110,6 +116,10 @@ export const WorkbenchChatDrawer = iso(`
110
116
  { value: "codex-cli", label: "Codex" },
111
117
  { value: "claude-code-cli", label: "Claude Code" },
112
118
  ], []);
119
+ const providerSelector = (React.createElement("label", { className: "workbench-provider-select-label" },
120
+ React.createElement("div", { className: "workbench-provider-select", onClick: (event) => event.stopPropagation(), onMouseDown: (event) => event.stopPropagation(), onKeyDown: (event) => event.stopPropagation() },
121
+ React.createElement(Listbox, { value: buildChatProvider, onChange: (value) => onBuildChatProviderChange(value), options: buildProviderOptions, disabled: createRunMutation.inFlight || stopRunMutation.inFlight ||
122
+ resetWorkspaceMutation.inFlight, size: "small", popoverMatchTriggerWidth: false, popoverMinWidth: 200, popoverAlign: "right" }))));
113
123
  const loadChatHistory = useCallback(async () => {
114
124
  setChatHistoryLoading(true);
115
125
  setChatHistoryError(null);
@@ -210,20 +220,12 @@ export const WorkbenchChatDrawer = iso(`
210
220
  }
211
221
  }, [createRunMutation, workspaceId]);
212
222
  const ConversationRunChat = runNode?.WorkbenchConversationRunChat ?? null;
213
- const headerActions = (React.createElement(React.Fragment, null,
214
- React.createElement("label", { className: "workbench-provider-select-label" },
215
- React.createElement("div", { className: "workbench-provider-select", onClick: (event) => event.stopPropagation(), onMouseDown: (event) => event.stopPropagation(), onKeyDown: (event) => event.stopPropagation() },
216
- React.createElement(Listbox, { value: buildChatProvider, onChange: (value) => onBuildChatProviderChange(value), options: buildProviderOptions, disabled: createRunMutation.inFlight || stopRunMutation.inFlight ||
217
- resetWorkspaceMutation.inFlight, size: "small", popoverMatchTriggerWidth: false, popoverMinWidth: 200, popoverAlign: "right" }))),
218
- React.createElement(Button, { variant: "secondary", size: "small", onClick: (event) => {
219
- event.stopPropagation();
220
- void resetWorkspace();
221
- }, disabled: !workspaceId || createRunMutation.inFlight ||
222
- stopRunMutation.inFlight || resetWorkspaceMutation.inFlight }, "New chat")));
223
+ const headerActions = (React.createElement(React.Fragment, null, providerSelector));
223
224
  const historyContent = (React.createElement(React.Fragment, null,
224
225
  chatHistoryLoading && (React.createElement(Callout, null, "Loading chat history\u2026")),
225
226
  chatHistoryError && React.createElement("div", { className: "error" }, chatHistoryError),
226
- !chatHistoryLoading && !chatHistoryError && chatHistory.length === 0 && (React.createElement(Callout, null, "No previous chats yet.")),
227
+ !chatHistoryLoading && !chatHistoryError && chatHistory.length === 0 &&
228
+ (React.createElement(Callout, null, "No previous chats yet.")),
227
229
  !chatHistoryLoading && !chatHistoryError && chatHistory.length > 0 && (React.createElement(List, { className: "workbench-chat-history-list" }, chatHistory.map((entry) => {
228
230
  const timestamp = entry.updatedAt ?? entry.startedAt;
229
231
  const label = timestamp
@@ -236,7 +238,7 @@ export const WorkbenchChatDrawer = iso(`
236
238
  React.createElement(ListItem, { title: `Chat - ${label}` })));
237
239
  })))));
238
240
  if (ConversationRunChat && workspaceId) {
239
- return (React.createElement(ConversationRunChat, { open: componentProps.open, isSending: createRunMutation.inFlight ||
241
+ return (React.createElement(ConversationRunChat, { open: componentProps.open, composerChips: composerChips, onComposerChipsChange: updateComposerChips, isSending: createRunMutation.inFlight ||
240
242
  resetWorkspaceMutation.inFlight, isStopping: stopRunMutation.inFlight, codexAccess: codexStatus, canStartNewChat: !resetWorkspaceMutation.inFlight, onNewChat: () => {
241
243
  void resetWorkspace();
242
244
  }, chatHeaderActions: headerActions, chatHistoryOpen: chatHistoryOpen, onToggleChatHistory: () => setChatHistoryOpen((previous) => !previous), chatHistoryContent: historyContent, onSend: (args) => {
@@ -381,14 +383,16 @@ export const WorkbenchChatDrawer = iso(`
381
383
  } }));
382
384
  }
383
385
  const fallbackBody = (React.createElement("div", { className: "test-bot-sidebar flex-column gap-8 flex-1 build-chat-panel" },
384
- React.createElement(Callout, { variant: "emphasis" }, "Start the assistant to begin editing."),
385
- React.createElement("div", { className: "composer-actions" },
386
- React.createElement(Button, { variant: "primary", "data-testid": "build-start", disabled: !workspaceId || createRunMutation.inFlight ||
387
- codexLoginRequired, onClick: () => {
388
- void startAssistant();
389
- } }, createRunMutation.inFlight ? "Starting..." : "Start")),
390
- codexLoginRequired && (React.createElement(Callout, { variant: "danger", title: "Codex login required" }, codexStatus?.statusText?.trim() || "Run `codex login` to continue.")),
386
+ React.createElement(WorkbenchChatIntro, { disabled: !workspaceId || createRunMutation.inFlight ||
387
+ codexLoginRequired, leadingContent: providerSelector, pending: createRunMutation.inFlight, title: "Start a workspace editing session", onStart: () => {
388
+ void startAssistant();
389
+ } }),
390
+ React.createElement(Callout, null, "Start a chat session to inspect the workspace and begin editing files."),
391
+ codexLoginRequired && (React.createElement(Callout, { variant: "danger", title: "Codex login required" }, codexStatus?.statusText?.trim() ||
392
+ "Run `codex login` to continue.")),
391
393
  chatError && React.createElement("div", { className: "error" }, chatError)));
392
- return (React.createElement(WorkbenchDrawerIso, { open: componentProps.open, runStatus: "IDLE", chatHeaderActions: headerActions, chatHistoryOpen: chatHistoryOpen, onToggleChatHistory: () => setChatHistoryOpen((previous) => !previous), chatHistoryContent: historyContent, chatBody: fallbackBody }));
394
+ return (React.createElement(WorkbenchDrawerIso, { open: componentProps.open, runStatus: "IDLE", chatHeaderActions: headerActions, showChatHistoryToggle: workbenchChatTopActionsEnabled, chatHistoryOpen: workbenchChatTopActionsEnabled
395
+ ? chatHistoryOpen
396
+ : false, onToggleChatHistory: () => setChatHistoryOpen((previous) => !previous), chatHistoryContent: historyContent, chatBody: fallbackBody }));
393
397
  });
394
398
  export default WorkbenchChatDrawer;
@@ -1,5 +1,6 @@
1
1
  import { type ReactNode } from "react";
2
2
  import { type OptimisticTranscriptEntry } from "../../../src/transcriptEntries.js";
3
+ import { type WorkbenchSelectedContextChip } from "../../../src/workbenchContext.js";
3
4
  export declare const WorkbenchConversationRunChat: (data: import("../../../__generated__/__isograph/WorkspaceConversationRun/WorkbenchConversationRunChat/param_type.js").WorkspaceConversationRun__WorkbenchConversationRunChat__param, componentProps: {
4
5
  open: boolean;
5
6
  codexAccess?: {
@@ -39,6 +40,8 @@ export declare const WorkbenchConversationRunChat: (data: import("../../../__gen
39
40
  chatHistoryOpen?: boolean;
40
41
  onToggleChatHistory?: () => void;
41
42
  chatHistoryContent?: ReactNode;
43
+ composerChips?: Array<WorkbenchSelectedContextChip>;
44
+ onComposerChipsChange?: (next: Array<WorkbenchSelectedContextChip>) => void;
42
45
  }) => import("react").JSX.Element;
43
46
  export default WorkbenchConversationRunChat;
44
47
  //# sourceMappingURL=WorkbenchConversationRunChat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkbenchConversationRunChat.d.ts","sourceRoot":"","sources":["../../../../../src/simulator-ui/isograph/components/WorkspaceConversationRun/WorkbenchConversationRunChat.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AAWf,OAAO,EAEL,KAAK,yBAAyB,EAK/B,MAAM,mCAAmC,CAAC;AA0J3C,eAAO,MAAM,4BAA4B;UAwCjC,OAAO;kBACC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,IAAI;mBACO,MAAM;YACb,CAAC,IAAI,EAAE;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,wBAAwB,EAAE,MAAM,CAAC;QACjC,mBAAmB,EAAE,MAAM,CAAC;QAC5B,2BAA2B,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC9D,UAAU,EAAE,MAAM,IAAI,CAAC;QACvB,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,KAAK,IAAI;YACF,CAAC,IAAI,EAAE;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,wBAAwB,EAAE,MAAM,CAAC;QACjC,2BAA2B,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC9D,UAAU,EAAE,MAAM,IAAI,CAAC;QACvB,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,KAAK,IAAI;eACC,OAAO;gBACN,OAAO;sBACD,OAAO;gBACb,MAAM,IAAI;wBACF,SAAS;sBACX,OAAO;0BACH,MAAM,IAAI;yBACX,SAAS;iCAua9B,CAAC;AAEH,eAAe,4BAA4B,CAAC"}
1
+ {"version":3,"file":"WorkbenchConversationRunChat.d.ts","sourceRoot":"","sources":["../../../../../src/simulator-ui/isograph/components/WorkspaceConversationRun/WorkbenchConversationRunChat.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AAcf,OAAO,EAEL,KAAK,yBAAyB,EAK/B,MAAM,mCAAmC,CAAC;AAK3C,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,kCAAkC,CAAC;AAqJ1C,eAAO,MAAM,4BAA4B;UAwCjC,OAAO;kBACC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,IAAI;mBACO,MAAM;YACb,CAAC,IAAI,EAAE;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,wBAAwB,EAAE,MAAM,CAAC;QACjC,mBAAmB,EAAE,MAAM,CAAC;QAC5B,2BAA2B,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC9D,UAAU,EAAE,MAAM,IAAI,CAAC;QACvB,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,KAAK,IAAI;YACF,CAAC,IAAI,EAAE;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,wBAAwB,EAAE,MAAM,CAAC;QACjC,2BAA2B,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC9D,UAAU,EAAE,MAAM,IAAI,CAAC;QACvB,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,KAAK,IAAI;eACC,OAAO;gBACN,OAAO;sBACD,OAAO;gBACb,MAAM,IAAI;wBACF,SAAS;sBACX,OAAO;0BACH,MAAM,IAAI;yBACX,SAAS;oBACd,KAAK,CAAC,4BAA4B,CAAC;4BAC3B,CAAC,IAAI,EAAE,KAAK,CAAC,4BAA4B,CAAC,KAAK,IAAI;iCAid3E,CAAC;AAEH,eAAe,4BAA4B,CAAC"}