@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,12 +1,17 @@
1
1
  import * as dntShim from "../../../../_dnt.shims.js";
2
2
  import { iso } from "../../../__generated__/__isograph/iso.js";
3
3
  import { useCallback, useEffect, useMemo, useReducer, useRef, useState, } from "react";
4
- import { BuildChatRows, deriveBuildChatActivityState, formatElapsedDuration, } from "../../../src/Chat.js";
4
+ import { BuildChatRows, deriveBuildChatActivityState, encodeWorkbenchMessageWithContext, formatElapsedDuration, } from "../../../src/Chat.js";
5
5
  import Button from "../../../src/gds/Button.js";
6
6
  import Callout from "../../../src/gds/Callout.js";
7
7
  import CodexLoginRequiredOverlay from "../../../src/CodexLoginRequiredOverlay.js";
8
+ import WorkbenchChatIntro from "../../../src/WorkbenchChatIntro.js";
9
+ import WorkbenchComposerChip from "../../../src/gds/WorkbenchComposerChip.js";
8
10
  import { countTranscriptMessages, parseTranscriptEntries, toBuildDisplayEntries, toOptimisticTranscriptEntries, } from "../../../src/transcriptEntries.js";
9
11
  import WorkbenchDrawerIso from "../../../src/WorkbenchDrawerIso.js";
12
+ import { workbenchChatTopActionsEnabled } from "../../../src/utils.js";
13
+ import { toWorkbenchMessageContext, } from "../../../src/workbenchContext.js";
14
+ import { mergeWorkbenchSelectedContextChip } from "../../../src/workbenchChipStore.js";
10
15
  const RUN_STATUS_VALUES = new Set([
11
16
  "IDLE",
12
17
  "RUNNING",
@@ -40,12 +45,10 @@ function isBuildChatDebugEnabled() {
40
45
  }
41
46
  return stored === "1" || stored === "true" || stored === "yes";
42
47
  }
43
- const BUILD_CHAT_DEBUG = isBuildChatDebugEnabled();
44
48
  function logBuildChatDebug(event, payload) {
45
- if (!BUILD_CHAT_DEBUG)
49
+ if (!isBuildChatDebugEnabled())
46
50
  return;
47
- void event;
48
- void payload;
51
+ console.info(`[build-chat-debug] ${event}`, payload);
49
52
  }
50
53
  function toRunStatus(value) {
51
54
  if (typeof value !== "string")
@@ -169,7 +172,6 @@ export const WorkbenchConversationRunChat = iso(`
169
172
  const testIdPrefix = (componentProps.testIdPrefix ?? "build").trim() ||
170
173
  "build";
171
174
  const chatInputTestId = `${testIdPrefix}-chat-input`;
172
- const startButtonTestId = `${testIdPrefix}-start`;
173
175
  const sendButtonTestId = `${testIdPrefix}-send`;
174
176
  const stopButtonTestId = `${testIdPrefix}-stop`;
175
177
  const activityIndicatorTestId = `${testIdPrefix}-chat-activity-indicator`;
@@ -222,6 +224,9 @@ export const WorkbenchConversationRunChat = iso(`
222
224
  const wasActiveRef = useRef(false);
223
225
  const [chatDraft, setChatDraft] = useState("");
224
226
  const [localError, setLocalError] = useState(null);
227
+ const composerChips = componentProps.composerChips ?? [];
228
+ const updateComposerChips = componentProps.onComposerChipsChange ??
229
+ (() => { });
225
230
  const onSendMessage = useCallback((message, options) => {
226
231
  if (codexLoginRequired) {
227
232
  setChatError("Codex login is required for this workspace.");
@@ -304,11 +309,13 @@ export const WorkbenchConversationRunChat = iso(`
304
309
  ]);
305
310
  const isRunning = runStatus === "RUNNING";
306
311
  const isBusy = componentProps.isSending || componentProps.isStopping;
312
+ const hasEnabledComposerChip = composerChips.some((chip) => chip.enabled);
307
313
  const canStartAssistant = !isRunning && !componentProps.isSending &&
308
314
  transcriptMessageCount === 0;
309
315
  const canSubmitMessage = !componentProps.isSending && !isRunning &&
310
- chatDraft.trim().length > 0;
311
- const showStartButton = canStartAssistant && chatDraft.trim().length === 0;
316
+ (chatDraft.trim().length > 0 || hasEnabledComposerChip);
317
+ const showStartOverlay = canStartAssistant && !hasEnabledComposerChip &&
318
+ chatDraft.trim().length === 0;
312
319
  const resolvedError = chatError ?? localError;
313
320
  const handleCopyCodexLoginCommand = useCallback(() => {
314
321
  globalThis.navigator?.clipboard?.writeText(codexLoginCommand);
@@ -361,26 +368,37 @@ export const WorkbenchConversationRunChat = iso(`
361
368
  const trimmed = chatDraft.trim();
362
369
  if (!canSubmitMessage || isBusy)
363
370
  return;
371
+ const activeChips = composerChips.filter((chip) => chip.enabled);
372
+ const activeChipIds = new Set(activeChips.map((chip) => chip.chipId));
373
+ const outboundMessage = activeChips.length > 0
374
+ ? encodeWorkbenchMessageWithContext(trimmed, activeChips.map((chip) => toWorkbenchMessageContext(chip)))
375
+ : trimmed;
376
+ logBuildChatDebug("send.outbound", {
377
+ runId,
378
+ workspaceId,
379
+ trimmed,
380
+ activeChips,
381
+ outboundMessage,
382
+ });
364
383
  setLocalError(null);
365
384
  try {
366
- await onSendMessage(trimmed);
385
+ await onSendMessage(outboundMessage);
367
386
  setChatDraft("");
387
+ if (activeChipIds.size > 0) {
388
+ updateComposerChips(composerChips.map((chip) => activeChipIds.has(chip.chipId) ? { ...chip, enabled: false } : chip));
389
+ }
368
390
  }
369
391
  catch (error) {
370
392
  setLocalError(toErrorMessage(error));
371
393
  }
372
- }, [canSubmitMessage, chatDraft, isBusy, onSendMessage]);
373
- const startAssistant = useCallback(async () => {
374
- if (!showStartButton || isBusy)
375
- return;
376
- setLocalError(null);
377
- try {
378
- await onSendMessage("", { allowEmpty: true });
379
- }
380
- catch (error) {
381
- setLocalError(toErrorMessage(error));
382
- }
383
- }, [isBusy, onSendMessage, showStartButton]);
394
+ }, [
395
+ canSubmitMessage,
396
+ chatDraft,
397
+ composerChips,
398
+ isBusy,
399
+ onSendMessage,
400
+ updateComposerChips,
401
+ ]);
384
402
  const stopMessage = useCallback(async () => {
385
403
  if (isBusy || !isRunning)
386
404
  return;
@@ -395,17 +413,23 @@ export const WorkbenchConversationRunChat = iso(`
395
413
  const addScenarioErrorToChat = useCallback(() => {
396
414
  if (!scenarioRunError)
397
415
  return;
398
- const prefixedError = `Scenario error: ${scenarioRunError}`;
399
- setChatDraft((previous) => {
400
- if (previous.includes(prefixedError))
401
- return previous;
402
- if (previous.trim().length === 0)
403
- return prefixedError;
404
- return `${previous}\n\n${prefixedError}`;
405
- });
416
+ updateComposerChips(mergeWorkbenchSelectedContextChip(composerChips, {
417
+ chipId: `scenario_run_error:${runId ?? workspaceId ?? "workspace"}`,
418
+ source: "scenario_run_error",
419
+ workspaceId: workspaceId ?? undefined,
420
+ runId: runId ?? undefined,
421
+ capturedAt: new Date().toISOString(),
422
+ error: scenarioRunError,
423
+ enabled: true,
424
+ }));
406
425
  composerInputRef.current?.focus();
407
- }, [scenarioRunError]);
408
- const newChatButtonTestId = `${testIdPrefix}-new-chat`;
426
+ }, [
427
+ composerChips,
428
+ runId,
429
+ scenarioRunError,
430
+ updateComposerChips,
431
+ workspaceId,
432
+ ]);
409
433
  const errorCalloutTestId = `${testIdPrefix}-error-callout`;
410
434
  const addErrorToChatTestId = `${testIdPrefix}-add-error-to-chat`;
411
435
  const chatBody = (React.createElement("div", { className: "test-bot-sidebar flex-column gap-8 flex-1 build-chat-panel" },
@@ -415,19 +439,23 @@ export const WorkbenchConversationRunChat = iso(`
415
439
  React.createElement("div", { className: "test-bot-thread" },
416
440
  React.createElement("div", { className: "imessage-thread", ref: transcriptRef, onScroll: (event) => {
417
441
  shouldAutoScrollRef.current = isNearBottom(event.currentTarget);
418
- } }, effectiveTranscriptDisplay.length === 0
419
- ? React.createElement(Callout, null, emptyStateText)
420
- : React.createElement(BuildChatRows, { display: effectiveTranscriptDisplay }))),
442
+ } },
443
+ !showCodexLoginOverlay && showStartOverlay && React.createElement(WorkbenchChatIntro, null),
444
+ effectiveTranscriptDisplay.length === 0
445
+ ? (showStartOverlay && !showCodexLoginOverlay
446
+ ? null
447
+ : React.createElement(Callout, null, emptyStateText))
448
+ : React.createElement(BuildChatRows, { display: effectiveTranscriptDisplay }))),
421
449
  React.createElement("div", { className: "composer" },
422
450
  React.createElement("div", { className: "composer-inputs" },
423
451
  React.createElement("div", { className: "build-chat-activity-sticky" },
424
452
  React.createElement(BuildChatActivityIndicator, { state: activityState, startedAtMs: resolvedStartedAtMs, testId: activityIndicatorTestId, timerTestId: activityTimerTestId })),
453
+ composerChips.length > 0 && (React.createElement("div", { className: "workbench-composer-chip-row", "data-testid": `${testIdPrefix}-composer-chip-row` }, composerChips.map((chip) => (React.createElement(WorkbenchComposerChip, { key: chip.chipId, context: chip, enabled: chip.enabled, onEnabledChange: (enabled) => updateComposerChips(composerChips.map((entry) => entry.chipId === chip.chipId
454
+ ? { ...entry, enabled }
455
+ : entry)), onRemove: () => updateComposerChips(composerChips.filter((entry) => entry.chipId !== chip.chipId)) }))))),
425
456
  scenarioRunError && (React.createElement(Callout, { variant: "danger", title: "Scenario run failed", actions: React.createElement(Button, { variant: "secondary", size: "small", "data-testid": addErrorToChatTestId, onClick: addScenarioErrorToChat }, "Add to chat"), "data-testid": errorCalloutTestId }, scenarioRunError)),
426
- showStartButton && (React.createElement(Callout, { variant: "emphasis" }, "Start the assistant to begin editing.")),
427
457
  React.createElement("div", { className: "flex-row gap-4 mb-2" },
428
- React.createElement("textarea", { ref: composerInputRef, className: "message-input flex-1", rows: 1, placeholder: showStartButton
429
- ? "Start the assistant to begin..."
430
- : "Message Gambit Bot...", value: chatDraft, onChange: (event) => setChatDraft(event.target.value), "data-testid": chatInputTestId, disabled: isBusy, onKeyDown: (event) => {
458
+ 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) => {
431
459
  if (event.key === "Enter" && !event.shiftKey) {
432
460
  event.preventDefault();
433
461
  if (canSubmitMessage) {
@@ -436,19 +464,17 @@ export const WorkbenchConversationRunChat = iso(`
436
464
  }
437
465
  } }),
438
466
  React.createElement("div", { className: "composer-actions" },
439
- componentProps.onNewChat && (React.createElement(Button, { variant: "secondary", disabled: isBusy || isRunning ||
440
- componentProps.canStartNewChat === false, "data-testid": newChatButtonTestId, onClick: componentProps.onNewChat }, "New chat")),
441
- isRunning && (React.createElement(Button, { variant: "secondary", disabled: isBusy, "data-testid": stopButtonTestId, onClick: () => {
442
- void stopMessage();
443
- } }, componentProps.isStopping ? "Stopping..." : "Stop")),
444
- showStartButton
445
- ? (React.createElement(Button, { variant: "primary", disabled: !showStartButton || isBusy || codexLoginRequired, "data-testid": startButtonTestId, onClick: () => {
446
- void startAssistant();
447
- } }, componentProps.isSending ? "Starting..." : "Start"))
448
- : (React.createElement(Button, { variant: "primary", disabled: !canSubmitMessage || isBusy || codexLoginRequired, "data-testid": sendButtonTestId, onClick: () => {
467
+ React.createElement("div", { className: "composer-action-slot composer-action-slot-primary" }, isRunning
468
+ ? (React.createElement(Button, { variant: "secondary", className: "composer-action-button", disabled: isBusy, "data-testid": stopButtonTestId, onClick: () => {
469
+ void stopMessage();
470
+ } }, componentProps.isStopping ? "Stopping..." : "Stop"))
471
+ : (React.createElement(Button, { variant: "primary", className: "composer-action-button", disabled: !canSubmitMessage || isBusy ||
472
+ codexLoginRequired, "data-testid": sendButtonTestId, onClick: () => {
449
473
  void sendMessage();
450
- } }, componentProps.isSending ? "Sending..." : "Send")))),
474
+ } }, componentProps.isSending ? "Sending..." : "Send"))))),
451
475
  resolvedError && React.createElement("div", { className: "error" }, resolvedError)))));
452
- return (React.createElement(WorkbenchDrawerIso, { open: componentProps.open, runStatus: runStatus, chatHeaderActions: componentProps.chatHeaderActions, chatHistoryOpen: componentProps.chatHistoryOpen, onToggleChatHistory: componentProps.onToggleChatHistory, chatHistoryContent: componentProps.chatHistoryContent, chatBody: chatBody }));
476
+ return (React.createElement(WorkbenchDrawerIso, { open: componentProps.open, runStatus: runStatus, chatHeaderActions: componentProps.chatHeaderActions, chatHistoryOpen: workbenchChatTopActionsEnabled
477
+ ? componentProps.chatHistoryOpen
478
+ : false, chatHistoryContent: componentProps.chatHistoryContent, chatBody: chatBody }));
453
479
  });
454
480
  export default 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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"}
@@ -86,6 +86,6 @@ export function GradeTabView(props) {
86
86
  meta: [run.status, run.finishedAt ?? run.startedAt].filter(Boolean)
87
87
  .join(" · "),
88
88
  })), [props.scenarioRuns]);
89
- return (React.createElement(GradeTabShell, { runner: React.createElement(GradeRunnerPanel, { 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, { 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 }) }));
89
+ return (React.createElement(GradeTabShell, { runner: React.createElement(GradeRunnerPanel, { 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, { 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 }) }));
90
90
  }
91
91
  export 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"}
@@ -15,10 +15,6 @@ export const EntrypointSimulatorRedirect = iso(`
15
15
  ? globals.__GAMBIT_CURRENT_PATH__
16
16
  : "/";
17
17
  })();
18
- const isIsographPrefixed = currentPath === "/isograph" ||
19
- currentPath.startsWith("/isograph/");
20
- const routePrefix = isIsographPrefixed ? "/isograph" : "";
21
- const withPrefix = (path) => `${routePrefix}${path}`;
22
18
  if (currentPath === "/" || currentPath === "/build" ||
23
19
  currentPath === "/debug" || currentPath === "/simulate") {
24
20
  return {
@@ -28,16 +24,7 @@ export const EntrypointSimulatorRedirect = iso(`
28
24
  headers: { Location: "/workspaces" },
29
25
  };
30
26
  }
31
- if (currentPath === "/isograph" || currentPath === "/isograph/build" ||
32
- currentPath === "/isograph/debug" || currentPath === "/isograph/simulate") {
33
- return {
34
- Body: null,
35
- title: "Gambit Simulator",
36
- status: 302,
37
- headers: { Location: "/isograph/workspaces" },
38
- };
39
- }
40
- const bareWorkspaceMatch = currentPath.match(/^(?:\/isograph)?\/workspaces\/([^/]+)$/);
27
+ const bareWorkspaceMatch = currentPath.match(/^\/workspaces\/([^/]+)$/);
41
28
  if (bareWorkspaceMatch && bareWorkspaceMatch[1] !== "new") {
42
29
  const workspaceId = (() => {
43
30
  try {
@@ -51,14 +38,14 @@ export const EntrypointSimulatorRedirect = iso(`
51
38
  Body: null,
52
39
  title: "Gambit Simulator",
53
40
  status: 302,
54
- headers: { Location: withPrefix(`/workspaces/${workspaceId}/build`) },
41
+ headers: { Location: `/workspaces/${workspaceId}/build` },
55
42
  };
56
43
  }
57
44
  return {
58
45
  Body: null,
59
46
  title: "Gambit Simulator",
60
47
  status: 302,
61
- headers: { Location: withPrefix("/workspaces") },
48
+ headers: { Location: "/workspaces" },
62
49
  };
63
50
  });
64
51
  export default 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"}
@@ -12,17 +12,9 @@ function isThenable(value) {
12
12
  (typeof value === "object" || typeof value === "function") &&
13
13
  typeof value.then === "function";
14
14
  }
15
- function toWorkspaceRoutePath(path) {
16
- if (path === "/isograph" || path.startsWith("/isograph/")) {
17
- const stripped = path.slice("/isograph".length);
18
- return stripped.length > 0 ? stripped : "/";
19
- }
20
- return path;
21
- }
22
15
  function WorkspaceMainPane(props) {
23
16
  const { currentRoutePath } = useRouter();
24
- const workspaceRoutePath = toWorkspaceRoutePath(currentRoutePath);
25
- const route = parseWorkspaceRoute(workspaceRoutePath);
17
+ const route = parseWorkspaceRoute(currentRoutePath);
26
18
  const tab = route?.tab === "test" || route?.tab === "grade" ||
27
19
  route?.tab === "verify"
28
20
  ? 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"}
@@ -5,7 +5,6 @@ import { verifyTabEnabled } from "./utils.js";
5
5
  import { useRouter } from "./RouterContext.js";
6
6
  import Button from "./gds/Button.js";
7
7
  import Icon from "./gds/Icon.js";
8
- import WorkbenchDrawer from "./WorkbenchDrawer.js";
9
8
  import { classNames, DOCS_PATH } from "./utils.js";
10
9
  import { useGambitTypedMutation } from "./hooks/useGambitTypedMutation.js";
11
10
  import gambitWorkspaceCreateMutation from "../mutations/GambitWorkspaceCreateMutation.js";
@@ -30,17 +29,7 @@ export function AppShell(props) {
30
29
  const THEME_STORAGE_KEY = "gambit-simulator-theme";
31
30
  const { Drawer } = props;
32
31
  const { currentRoutePath, navigate } = useRouter();
33
- const routePrefix = useMemo(() => currentRoutePath === "/isograph" ||
34
- currentRoutePath.startsWith("/isograph/")
35
- ? "/isograph"
36
- : "", [currentRoutePath]);
37
- const toPrefixedPath = useCallback((path) => `${routePrefix}${path}`, [routePrefix]);
38
- const workspaceRoutePath = useMemo(() => {
39
- if (!routePrefix)
40
- return currentRoutePath;
41
- const stripped = currentRoutePath.slice(routePrefix.length);
42
- return stripped.length > 0 ? stripped : "/";
43
- }, [currentRoutePath, routePrefix]);
32
+ const workspaceRoutePath = currentRoutePath;
44
33
  const deckLabel = getDeckLabelForShell();
45
34
  const [drawerOpen, setDrawerOpen] = useState(false);
46
35
  const [workbenchOpen, setWorkbenchOpen] = useState(true);
@@ -61,7 +50,7 @@ export function AppShell(props) {
61
50
  });
62
51
  const createWorkspaceMutation = useGambitTypedMutation(gambitWorkspaceCreateMutation);
63
52
  const deleteWorkspaceMutation = useGambitTypedMutation(gambitWorkspaceDeleteMutation);
64
- const Workbench = props.Workbench ?? WorkbenchDrawer;
53
+ const Workbench = props.Workbench;
65
54
  const activeWorkspaceId = useMemo(() => {
66
55
  const route = parseWorkspaceRoute(workspaceRoutePath);
67
56
  return route?.workspaceId ?? null;
@@ -70,26 +59,27 @@ export function AppShell(props) {
70
59
  const route = parseWorkspaceRoute(workspaceRoutePath);
71
60
  return route?.tab ?? null;
72
61
  }, [workspaceRoutePath]);
73
- const buildTabLabel = routePrefix ? "Build (isograph)" : "Build";
62
+ const buildTabLabel = "Build";
74
63
  const isWorkspacesPath = useMemo(() => workspaceRoutePath === "/workspaces" ||
75
64
  workspaceRoutePath === "/workspaces/new", [workspaceRoutePath]);
76
65
  const isDocsPath = workspaceRoutePath === "/docs";
77
66
  const canOpenWorkbench = Boolean(activeWorkspaceId);
78
- const workbenchVisible = workbenchOpen && canOpenWorkbench;
67
+ const workbenchVisible = workbenchOpen && canOpenWorkbench &&
68
+ Boolean(Workbench);
79
69
  const handleSelectWorkspace = useCallback((workspaceId) => {
80
- navigate(toPrefixedPath(buildWorkspacePath("build", workspaceId)));
70
+ navigate(buildWorkspacePath("build", workspaceId));
81
71
  setDrawerOpen(false);
82
- }, [navigate, toPrefixedPath]);
72
+ }, [navigate]);
83
73
  const createWorkspace = useCallback(() => {
84
74
  createWorkspaceMutation.commit({}, {
85
75
  onComplete: (result) => {
86
76
  const workspaceId = result?.workspace?.id;
87
77
  if (!workspaceId)
88
78
  return;
89
- navigate(toPrefixedPath(buildWorkspacePath("build", workspaceId)));
79
+ navigate(buildWorkspacePath("build", workspaceId));
90
80
  },
91
81
  });
92
- }, [createWorkspaceMutation, navigate, toPrefixedPath]);
82
+ }, [createWorkspaceMutation, navigate]);
93
83
  const persistAppearance = useCallback((nextAppearance) => {
94
84
  try {
95
85
  globalThis.localStorage.setItem(THEME_STORAGE_KEY, nextAppearance);
@@ -119,13 +109,13 @@ export function AppShell(props) {
119
109
  try {
120
110
  await runDeleteWorkspaceMutation(workspaceId);
121
111
  if (workspaceId === activeWorkspaceId) {
122
- navigate(toPrefixedPath("/workspaces"));
112
+ navigate("/workspaces");
123
113
  }
124
114
  }
125
115
  finally {
126
116
  setDeletingWorkspaceId(null);
127
117
  }
128
- }, [activeWorkspaceId, navigate, runDeleteWorkspaceMutation, toPrefixedPath]);
118
+ }, [activeWorkspaceId, navigate, runDeleteWorkspaceMutation]);
129
119
  const deleteAllWorkspaces = useCallback(async (workspaceIds) => {
130
120
  const uniqueWorkspaceIds = Array.from(new Set(workspaceIds.filter((id) => id.trim().length > 0)));
131
121
  if (uniqueWorkspaceIds.length === 0) {
@@ -134,12 +124,12 @@ export function AppShell(props) {
134
124
  setDeletingAll(true);
135
125
  try {
136
126
  await Promise.allSettled(uniqueWorkspaceIds.map((workspaceId) => runDeleteWorkspaceMutation(workspaceId)));
137
- navigate(toPrefixedPath("/workspaces"));
127
+ navigate("/workspaces");
138
128
  }
139
129
  finally {
140
130
  setDeletingAll(false);
141
131
  }
142
- }, [navigate, runDeleteWorkspaceMutation, toPrefixedPath]);
132
+ }, [navigate, runDeleteWorkspaceMutation]);
143
133
  return (React.createElement("div", { className: "app-root" },
144
134
  React.createElement("header", { className: "top-nav" },
145
135
  React.createElement("div", { className: "top-nav-left" },
@@ -147,42 +137,42 @@ export function AppShell(props) {
147
137
  React.createElement(Icon, { name: "hamburgerMenu", size: 17, style: { color: "var(--color-text)" } }))),
148
138
  React.createElement("div", { className: "top-nav-buttons tab-anchor-group" },
149
139
  React.createElement("span", { className: "tab-anchor-indicator", "aria-hidden": "true" }),
150
- React.createElement(Button, { "data-testid": "nav-docs", tab: true, variant: isDocsPath ? "primary" : "secondary", className: classNames("tab-anchor", isDocsPath && "tab-anchor--active"), onClick: () => navigate(toPrefixedPath(DOCS_PATH)) }, "Docs"),
140
+ React.createElement(Button, { "data-testid": "nav-docs", tab: true, variant: isDocsPath ? "primary" : "secondary", className: classNames("tab-anchor", isDocsPath && "tab-anchor--active"), onClick: () => navigate(DOCS_PATH) }, "Docs"),
151
141
  React.createElement(Button, { "data-testid": "nav-build", tab: true, variant: activeWorkspaceTab === "build" ? "primary" : "secondary", className: classNames("tab-anchor", activeWorkspaceTab === "build" && "tab-anchor--active"), onClick: () => {
152
142
  if (!activeWorkspaceId)
153
143
  return;
154
- navigate(toPrefixedPath(buildWorkspacePath("build", activeWorkspaceId)));
144
+ navigate(buildWorkspacePath("build", activeWorkspaceId));
155
145
  }, disabled: !activeWorkspaceId }, buildTabLabel),
156
146
  React.createElement(Button, { "data-testid": "nav-test", tab: true, variant: activeWorkspaceTab === "test" ? "primary" : "secondary", className: classNames("tab-anchor", activeWorkspaceTab === "test" && "tab-anchor--active"), onClick: () => {
157
147
  if (!activeWorkspaceId)
158
148
  return;
159
- navigate(toPrefixedPath(buildWorkspacePath("test", activeWorkspaceId)));
149
+ navigate(buildWorkspacePath("test", activeWorkspaceId));
160
150
  }, disabled: !activeWorkspaceId }, "Test"),
161
151
  React.createElement(Button, { "data-testid": "nav-grade", tab: true, variant: activeWorkspaceTab === "grade" ? "primary" : "secondary", className: classNames("tab-anchor", activeWorkspaceTab === "grade" && "tab-anchor--active"), onClick: () => {
162
152
  if (!activeWorkspaceId)
163
153
  return;
164
- navigate(toPrefixedPath(buildWorkspacePath("grade", activeWorkspaceId)));
154
+ navigate(buildWorkspacePath("grade", activeWorkspaceId));
165
155
  }, disabled: !activeWorkspaceId }, "Grade"),
166
156
  verifyTabEnabled && (React.createElement(Button, { "data-testid": "nav-verify", tab: true, variant: activeWorkspaceTab === "verify"
167
157
  ? "primary"
168
158
  : "secondary", className: classNames("tab-anchor", activeWorkspaceTab === "verify" && "tab-anchor--active"), onClick: () => {
169
159
  if (!activeWorkspaceId)
170
160
  return;
171
- navigate(toPrefixedPath(buildWorkspacePath("verify", activeWorkspaceId)));
161
+ navigate(buildWorkspacePath("verify", activeWorkspaceId));
172
162
  }, disabled: !activeWorkspaceId }, "Verify"))),
173
163
  React.createElement("div", { className: "top-nav-center" },
174
164
  React.createElement("span", { className: "top-nav-deck" }, deckLabel)),
175
165
  React.createElement("div", { className: "top-nav-right" },
176
166
  React.createElement("div", { className: "top-nav-actions" }),
177
- React.createElement(Button, { "data-testid": "nav-workbench", className: classNames("workbench-toggle", workbenchVisible && "active"), variant: "secondary", onClick: () => setWorkbenchOpen((prev) => !prev), disabled: !canOpenWorkbench, "aria-label": workbenchVisible
167
+ Workbench && (React.createElement(Button, { "data-testid": "nav-workbench", className: classNames("workbench-toggle", workbenchVisible && "active"), variant: "secondary", onClick: () => setWorkbenchOpen((prev) => !prev), disabled: !canOpenWorkbench, "aria-label": workbenchVisible
178
168
  ? "Close workbench drawer"
179
169
  : "Open workbench drawer" },
180
- React.createElement(Icon, { name: "chat", size: 16, style: { color: "currentColor" } })))),
170
+ React.createElement(Icon, { name: "chat", size: 16, style: { color: "currentColor" } }))))),
181
171
  React.createElement("div", { className: "app-content-frame" },
182
172
  React.createElement("main", { className: "page-shell" },
183
173
  isWorkspacesPath && (React.createElement("div", { style: { padding: "12px 16px 0 16px" } },
184
174
  React.createElement(Button, { "data-testid": "workspace-create-cta", variant: "primary", size: "small", onClick: createWorkspace, disabled: createWorkspaceMutation.inFlight }, "New workspace"))),
185
175
  isDocsPath ? React.createElement(DocsPage, null) : props.children),
186
- React.createElement(Workbench, { open: workbenchVisible })),
176
+ Workbench ? React.createElement(Workbench, { open: workbenchVisible }) : null),
187
177
  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 })));
188
178
  }
@@ -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":"AAEA,OAAO,EACL,KAAK,mBAAmB,EAGzB,MAAM,YAAY,CAAC;AAIpB,OAAO,EAEL,sBAAsB,EACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EACnC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC,MAAM,MAAM,6BAA6B,GAAG,qBAAqB,GAAG;IAClE,MAAM,EAAE,oBAAoB,CAAC;CAC9B,CAAC;AACF,MAAM,MAAM,2BAA2B,GAAG,qBAAqB,GAAG;IAChE,MAAM,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG,6BAA6B,GAAG;IACvE,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG,4BAA4B,CAAC;AACjE,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,6BAA6B,GAC9B,CAAC;AAsCF,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,6BAA6B,GACrC,MAAM,CAIR;AAED,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,KAAK,CAAC,uBAAuB,CAAC,GACvC,MAAM,CASR;AAED,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,MAAM,GAAG;IACvE,OAAO,EAAE,6BAA6B,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,IAAI,CAaP;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,GAAG;IAClE,QAAQ,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,IAAI,CA8BP;AAiCD,wBAAgB,aAAa,CAAC,KAAK,EAAE;IAAE,OAAO,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAA;CAAE,+BAmC3E;AAED,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,UAAU,GACV,YAAY,GACZ,SAAS,CAAC;AAEd,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE;IACJ,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC;IACnE,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACpC,kBAAkB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACzE,KAAK,EAAE,MAAM,CAAC;CACf,GACA,sBAAsB,CA0BxB;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAOlE;AAED,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AA0DjE,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAC9B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,aAAa,CAAC,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC7C,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAC;IACrE,iBAAiB,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;IACtD,yBAAyB,CAAC,EAAE,CAAC,IAAI,EAAE,0BAA0B,GAAG,IAAI,KAAK,IAAI,CAAC;CAC/E,+BA0SA;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,EAAE;IAClC,aAAa,CAAC,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC7C,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAC;IACrE,iBAAiB,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;IACtD,yBAAyB,CAAC,EAAE,CAAC,IAAI,EAAE,0BAA0B,GAAG,IAAI,KAAK,IAAI,CAAC;CAC/E,+BAgBA"}