@stigmer/react 3.12.1 → 3.12.2

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 (658) hide show
  1. package/access/ManageAccessDialog.d.ts.map +1 -1
  2. package/access/ManageAccessDialog.js +7 -2
  3. package/access/ManageAccessDialog.js.map +1 -1
  4. package/activity/format-relative-time.d.ts +11 -9
  5. package/activity/format-relative-time.d.ts.map +1 -1
  6. package/activity/format-relative-time.js +11 -9
  7. package/activity/format-relative-time.js.map +1 -1
  8. package/agent/steps/CapabilitiesStep.js +5 -2
  9. package/agent/steps/CapabilitiesStep.js.map +1 -1
  10. package/agent/steps/IdentityStep.d.ts.map +1 -1
  11. package/agent/steps/IdentityStep.js +6 -5
  12. package/agent/steps/IdentityStep.js.map +1 -1
  13. package/agent-instance/CreateAgentInstanceDialog.d.ts.map +1 -1
  14. package/agent-instance/CreateAgentInstanceDialog.js +10 -2
  15. package/agent-instance/CreateAgentInstanceDialog.js.map +1 -1
  16. package/api-key/ApiKeyCreatedAlert.d.ts.map +1 -1
  17. package/api-key/ApiKeyCreatedAlert.js +12 -20
  18. package/api-key/ApiKeyCreatedAlert.js.map +1 -1
  19. package/api-key/ApiKeyListPanel.d.ts.map +1 -1
  20. package/api-key/ApiKeyListPanel.js +3 -23
  21. package/api-key/ApiKeyListPanel.js.map +1 -1
  22. package/api-key/CreateApiKeyForm.d.ts.map +1 -1
  23. package/api-key/CreateApiKeyForm.js +6 -10
  24. package/api-key/CreateApiKeyForm.js.map +1 -1
  25. package/approval-defaults-context.d.ts +47 -0
  26. package/approval-defaults-context.d.ts.map +1 -0
  27. package/approval-defaults-context.js +27 -0
  28. package/approval-defaults-context.js.map +1 -0
  29. package/attachment/index.d.ts +2 -0
  30. package/attachment/index.d.ts.map +1 -1
  31. package/attachment/index.js +1 -0
  32. package/attachment/index.js.map +1 -1
  33. package/attachment/vision-preflight.d.ts +113 -0
  34. package/attachment/vision-preflight.d.ts.map +1 -0
  35. package/attachment/vision-preflight.js +143 -0
  36. package/attachment/vision-preflight.js.map +1 -0
  37. package/billing/AutoRechargeCard.d.ts.map +1 -1
  38. package/billing/AutoRechargeCard.js +3 -2
  39. package/billing/AutoRechargeCard.js.map +1 -1
  40. package/billing/BillingSection.d.ts.map +1 -1
  41. package/billing/BillingSection.js +3 -2
  42. package/billing/BillingSection.js.map +1 -1
  43. package/channel/ChannelConversationsDialog.d.ts.map +1 -1
  44. package/channel/ChannelConversationsDialog.js +5 -4
  45. package/channel/ChannelConversationsDialog.js.map +1 -1
  46. package/channel/ChannelCredentialsDialog.d.ts.map +1 -1
  47. package/channel/ChannelCredentialsDialog.js +9 -4
  48. package/channel/ChannelCredentialsDialog.js.map +1 -1
  49. package/channel/ChannelTemplatesDialog.d.ts.map +1 -1
  50. package/channel/ChannelTemplatesDialog.js +5 -4
  51. package/channel/ChannelTemplatesDialog.js.map +1 -1
  52. package/channel/ConnectSlackDialog.d.ts.map +1 -1
  53. package/channel/ConnectSlackDialog.js +9 -4
  54. package/channel/ConnectSlackDialog.js.map +1 -1
  55. package/channel/ConnectWhatsAppDialog.d.ts.map +1 -1
  56. package/channel/ConnectWhatsAppDialog.js +9 -4
  57. package/channel/ConnectWhatsAppDialog.js.map +1 -1
  58. package/channel/useChannelSessions.d.ts.map +1 -1
  59. package/channel/useChannelSessions.js.map +1 -1
  60. package/channel-app/ChannelAppDetailPanel.d.ts.map +1 -1
  61. package/channel-app/ChannelAppDetailPanel.js +8 -5
  62. package/channel-app/ChannelAppDetailPanel.js.map +1 -1
  63. package/channel-app/CreateChannelAppForm.d.ts.map +1 -1
  64. package/channel-app/CreateChannelAppForm.js +12 -7
  65. package/channel-app/CreateChannelAppForm.js.map +1 -1
  66. package/channel-app/internal.d.ts +0 -1
  67. package/channel-app/internal.d.ts.map +1 -1
  68. package/channel-app/internal.js +5 -10
  69. package/channel-app/internal.js.map +1 -1
  70. package/composer/ComposerToolbar.js +2 -1
  71. package/composer/ComposerToolbar.js.map +1 -1
  72. package/composer/SessionComposer.d.ts +1 -1
  73. package/composer/SessionComposer.d.ts.map +1 -1
  74. package/composer/SessionComposer.js +120 -13
  75. package/composer/SessionComposer.js.map +1 -1
  76. package/composer/icons.d.ts +0 -1
  77. package/composer/icons.d.ts.map +1 -1
  78. package/composer/icons.js +0 -3
  79. package/composer/icons.js.map +1 -1
  80. package/conversation/ConversationComposer.js +1 -1
  81. package/conversation/ConversationComposer.js.map +1 -1
  82. package/conversation/ConversationListPane.d.ts.map +1 -1
  83. package/conversation/ConversationListPane.js +3 -2
  84. package/conversation/ConversationListPane.js.map +1 -1
  85. package/cursor-accounts/MemberCoverageTable.js +3 -14
  86. package/cursor-accounts/MemberCoverageTable.js.map +1 -1
  87. package/dashboard/DashboardFailedRuns.d.ts.map +1 -1
  88. package/dashboard/DashboardFailedRuns.js +2 -14
  89. package/dashboard/DashboardFailedRuns.js.map +1 -1
  90. package/environment/CreateEnvironmentForm.d.ts.map +1 -1
  91. package/environment/CreateEnvironmentForm.js +4 -8
  92. package/environment/CreateEnvironmentForm.js.map +1 -1
  93. package/environment/EnvVarForm.d.ts.map +1 -1
  94. package/environment/EnvVarForm.js +2 -4
  95. package/environment/EnvVarForm.js.map +1 -1
  96. package/environment/EnvironmentVariableEditor.d.ts.map +1 -1
  97. package/environment/EnvironmentVariableEditor.js +5 -7
  98. package/environment/EnvironmentVariableEditor.js.map +1 -1
  99. package/execution/ArtifactApplyButton.d.ts.map +1 -1
  100. package/execution/ArtifactApplyButton.js +2 -4
  101. package/execution/ArtifactApplyButton.js.map +1 -1
  102. package/execution/ExecutionErrorNotice.d.ts +36 -0
  103. package/execution/ExecutionErrorNotice.d.ts.map +1 -0
  104. package/execution/ExecutionErrorNotice.js +39 -0
  105. package/execution/ExecutionErrorNotice.js.map +1 -0
  106. package/execution/FilePathLink.d.ts.map +1 -1
  107. package/execution/FilePathLink.js +5 -8
  108. package/execution/FilePathLink.js.map +1 -1
  109. package/execution/FileReviewCard.d.ts.map +1 -1
  110. package/execution/FileReviewCard.js +1 -6
  111. package/execution/FileReviewCard.js.map +1 -1
  112. package/execution/FollowUpInput.d.ts.map +1 -1
  113. package/execution/FollowUpInput.js +1 -3
  114. package/execution/FollowUpInput.js.map +1 -1
  115. package/execution/LivenessStatusLine.d.ts +40 -0
  116. package/execution/LivenessStatusLine.d.ts.map +1 -0
  117. package/execution/LivenessStatusLine.js +34 -0
  118. package/execution/LivenessStatusLine.js.map +1 -0
  119. package/execution/MessageEntry.d.ts.map +1 -1
  120. package/execution/MessageEntry.js +31 -3
  121. package/execution/MessageEntry.js.map +1 -1
  122. package/execution/MessageThread.d.ts +25 -0
  123. package/execution/MessageThread.d.ts.map +1 -1
  124. package/execution/MessageThread.js +51 -36
  125. package/execution/MessageThread.js.map +1 -1
  126. package/execution/SetupProgress.d.ts.map +1 -1
  127. package/execution/SetupProgress.js +1 -1
  128. package/execution/SetupProgress.js.map +1 -1
  129. package/execution/SubAgentSection.d.ts.map +1 -1
  130. package/execution/SubAgentSection.js +9 -7
  131. package/execution/SubAgentSection.js.map +1 -1
  132. package/execution/TerminalSession.d.ts +30 -0
  133. package/execution/TerminalSession.d.ts.map +1 -1
  134. package/execution/TerminalSession.js +37 -1
  135. package/execution/TerminalSession.js.map +1 -1
  136. package/execution/ToolCallDetail.d.ts +9 -0
  137. package/execution/ToolCallDetail.d.ts.map +1 -1
  138. package/execution/ToolCallDetail.js +16 -0
  139. package/execution/ToolCallDetail.js.map +1 -1
  140. package/execution/ToolCallItem.d.ts +20 -6
  141. package/execution/ToolCallItem.d.ts.map +1 -1
  142. package/execution/ToolCallItem.js +102 -29
  143. package/execution/ToolCallItem.js.map +1 -1
  144. package/execution/ToolRunGroup.d.ts.map +1 -1
  145. package/execution/ToolRunGroup.js +11 -11
  146. package/execution/ToolRunGroup.js.map +1 -1
  147. package/execution/WriteBackCard.d.ts.map +1 -1
  148. package/execution/WriteBackCard.js +5 -20
  149. package/execution/WriteBackCard.js.map +1 -1
  150. package/execution/index.d.ts +6 -2
  151. package/execution/index.d.ts.map +1 -1
  152. package/execution/index.js +3 -1
  153. package/execution/index.js.map +1 -1
  154. package/execution/tool-categories.d.ts +42 -7
  155. package/execution/tool-categories.d.ts.map +1 -1
  156. package/execution/tool-categories.js +38 -4
  157. package/execution/tool-categories.js.map +1 -1
  158. package/execution/tool-presenter.d.ts +17 -1
  159. package/execution/tool-presenter.d.ts.map +1 -1
  160. package/execution/tool-presenter.js +4 -1
  161. package/execution/tool-presenter.js.map +1 -1
  162. package/execution/useArtifactInspection.d.ts.map +1 -1
  163. package/execution/useArtifactInspection.js +4 -7
  164. package/execution/useArtifactInspection.js.map +1 -1
  165. package/iam-policy/GrantAccessForm.d.ts.map +1 -1
  166. package/iam-policy/GrantAccessForm.js +2 -4
  167. package/iam-policy/GrantAccessForm.js.map +1 -1
  168. package/iam-policy/OrgMembersPanel.d.ts.map +1 -1
  169. package/iam-policy/OrgMembersPanel.js +3 -5
  170. package/iam-policy/OrgMembersPanel.js.map +1 -1
  171. package/iam-policy/RoleSelector.d.ts.map +1 -1
  172. package/iam-policy/RoleSelector.js +7 -1
  173. package/iam-policy/RoleSelector.js.map +1 -1
  174. package/identity-provider/CreateIdentityProviderForm.d.ts.map +1 -1
  175. package/identity-provider/CreateIdentityProviderForm.js +6 -9
  176. package/identity-provider/CreateIdentityProviderForm.js.map +1 -1
  177. package/identity-provider/IdentityProviderDetailPanel.d.ts.map +1 -1
  178. package/identity-provider/IdentityProviderDetailPanel.js +17 -26
  179. package/identity-provider/IdentityProviderDetailPanel.js.map +1 -1
  180. package/identity-provider/IdentityProviderListPanel.d.ts.map +1 -1
  181. package/identity-provider/IdentityProviderListPanel.js +2 -4
  182. package/identity-provider/IdentityProviderListPanel.js.map +1 -1
  183. package/identity-provider/IdentityProviderWizard.d.ts.map +1 -1
  184. package/identity-provider/IdentityProviderWizard.js +8 -7
  185. package/identity-provider/IdentityProviderWizard.js.map +1 -1
  186. package/identity-provider/SsoLoginPrompt.js +5 -6
  187. package/identity-provider/SsoLoginPrompt.js.map +1 -1
  188. package/index.d.ts +9 -8
  189. package/index.d.ts.map +1 -1
  190. package/index.js +4 -4
  191. package/index.js.map +1 -1
  192. package/internal/DecisionButton.d.ts.map +1 -1
  193. package/internal/DecisionButton.js +1 -6
  194. package/internal/DecisionButton.js.map +1 -1
  195. package/internal/SpinnerIcon.d.ts +22 -0
  196. package/internal/SpinnerIcon.d.ts.map +1 -0
  197. package/internal/SpinnerIcon.js +23 -0
  198. package/internal/SpinnerIcon.js.map +1 -0
  199. package/internal/select-element-text.d.ts +11 -0
  200. package/internal/select-element-text.d.ts.map +1 -0
  201. package/internal/select-element-text.js +19 -0
  202. package/internal/select-element-text.js.map +1 -0
  203. package/internal/thread-card/ThreadCardShell.d.ts +27 -10
  204. package/internal/thread-card/ThreadCardShell.d.ts.map +1 -1
  205. package/internal/thread-card/ThreadCardShell.js +11 -5
  206. package/internal/thread-card/ThreadCardShell.js.map +1 -1
  207. package/internal/thread-card/glyphs.d.ts +11 -2
  208. package/internal/thread-card/glyphs.d.ts.map +1 -1
  209. package/internal/thread-card/glyphs.js +9 -3
  210. package/internal/thread-card/glyphs.js.map +1 -1
  211. package/internal/thread-card/index.d.ts +1 -1
  212. package/internal/thread-card/index.d.ts.map +1 -1
  213. package/internal/thread-card/index.js.map +1 -1
  214. package/internal/useCopyFeedback.d.ts +28 -0
  215. package/internal/useCopyFeedback.d.ts.map +1 -0
  216. package/internal/useCopyFeedback.js +40 -0
  217. package/internal/useCopyFeedback.js.map +1 -0
  218. package/invitation/InvitationCreatedAlert.d.ts.map +1 -1
  219. package/invitation/InvitationCreatedAlert.js +12 -19
  220. package/invitation/InvitationCreatedAlert.js.map +1 -1
  221. package/invitation/InvitationManager.d.ts.map +1 -1
  222. package/invitation/InvitationManager.js +14 -21
  223. package/invitation/InvitationManager.js.map +1 -1
  224. package/invitation/InvitationRedemption.d.ts.map +1 -1
  225. package/invitation/InvitationRedemption.js +2 -4
  226. package/invitation/InvitationRedemption.js.map +1 -1
  227. package/library/useExportResource.d.ts.map +1 -1
  228. package/library/useExportResource.js +16 -27
  229. package/library/useExportResource.js.map +1 -1
  230. package/manifest/ApplyManifestDialog.js +1 -1
  231. package/manifest/EditResourceYamlDialog.js +1 -1
  232. package/mcp-server/DefinitionDriftNotice.d.ts +42 -0
  233. package/mcp-server/DefinitionDriftNotice.d.ts.map +1 -0
  234. package/mcp-server/DefinitionDriftNotice.js +52 -0
  235. package/mcp-server/DefinitionDriftNotice.js.map +1 -0
  236. package/mcp-server/McpServerConnectDialog.js +1 -1
  237. package/mcp-server/McpServerDetailView.d.ts.map +1 -1
  238. package/mcp-server/McpServerDetailView.js +47 -14
  239. package/mcp-server/McpServerDetailView.js.map +1 -1
  240. package/mcp-server/OAuthAppForm.d.ts.map +1 -1
  241. package/mcp-server/OAuthAppForm.js +2 -4
  242. package/mcp-server/OAuthAppForm.js.map +1 -1
  243. package/mcp-server/internal/definitionDrift.d.ts +39 -0
  244. package/mcp-server/internal/definitionDrift.d.ts.map +1 -0
  245. package/mcp-server/internal/definitionDrift.js +122 -0
  246. package/mcp-server/internal/definitionDrift.js.map +1 -0
  247. package/mcp-server/internal/mcpServerToInput.d.ts.map +1 -1
  248. package/mcp-server/internal/mcpServerToInput.js +3 -0
  249. package/mcp-server/internal/mcpServerToInput.js.map +1 -1
  250. package/mcp-server/steps/EnvironmentAuthStep.d.ts.map +1 -1
  251. package/mcp-server/steps/EnvironmentAuthStep.js +8 -4
  252. package/mcp-server/steps/EnvironmentAuthStep.js.map +1 -1
  253. package/mcp-server/steps/IdentityTransportStep.d.ts.map +1 -1
  254. package/mcp-server/steps/IdentityTransportStep.js +5 -4
  255. package/mcp-server/steps/IdentityTransportStep.js.map +1 -1
  256. package/mcp-server/useMcpServerConnect.d.ts +1 -1
  257. package/mcp-server/useMcpServerDefinitionDrift.d.ts +44 -0
  258. package/mcp-server/useMcpServerDefinitionDrift.d.ts.map +1 -0
  259. package/mcp-server/useMcpServerDefinitionDrift.js +61 -0
  260. package/mcp-server/useMcpServerDefinitionDrift.js.map +1 -0
  261. package/models/ModelRegistryContext.d.ts +7 -1
  262. package/models/ModelRegistryContext.d.ts.map +1 -1
  263. package/models/ModelRegistryContext.js.map +1 -1
  264. package/models/ModelSelector.js +9 -1
  265. package/models/ModelSelector.js.map +1 -1
  266. package/models/index.d.ts +2 -2
  267. package/models/index.d.ts.map +1 -1
  268. package/models/index.js +1 -1
  269. package/models/index.js.map +1 -1
  270. package/models/registry.d.ts +88 -6
  271. package/models/registry.d.ts.map +1 -1
  272. package/models/registry.js +133 -27
  273. package/models/registry.js.map +1 -1
  274. package/models/useModelRegistry.d.ts +7 -1
  275. package/models/useModelRegistry.d.ts.map +1 -1
  276. package/models/useModelRegistry.js +3 -2
  277. package/models/useModelRegistry.js.map +1 -1
  278. package/oauth-app/CreateOAuthAppForm.d.ts.map +1 -1
  279. package/oauth-app/CreateOAuthAppForm.js +4 -5
  280. package/oauth-app/CreateOAuthAppForm.js.map +1 -1
  281. package/oauth-app/OAuthAppDetailPanel.d.ts.map +1 -1
  282. package/oauth-app/OAuthAppDetailPanel.js +5 -6
  283. package/oauth-app/OAuthAppDetailPanel.js.map +1 -1
  284. package/organization/CreateOrganizationForm.d.ts.map +1 -1
  285. package/organization/CreateOrganizationForm.js +5 -9
  286. package/organization/CreateOrganizationForm.js.map +1 -1
  287. package/organization/OrgProfilePanel.d.ts.map +1 -1
  288. package/organization/OrgProfilePanel.js +7 -16
  289. package/organization/OrgProfilePanel.js.map +1 -1
  290. package/package.json +4 -4
  291. package/platform-client/CreatePlatformClientForm.d.ts.map +1 -1
  292. package/platform-client/CreatePlatformClientForm.js +5 -6
  293. package/platform-client/CreatePlatformClientForm.js.map +1 -1
  294. package/platform-client/PlatformClientDetailPanel.d.ts.map +1 -1
  295. package/platform-client/PlatformClientDetailPanel.js +6 -7
  296. package/platform-client/PlatformClientDetailPanel.js.map +1 -1
  297. package/platform-client/PlatformClientListPanel.d.ts.map +1 -1
  298. package/platform-client/PlatformClientListPanel.js +2 -4
  299. package/platform-client/PlatformClientListPanel.js.map +1 -1
  300. package/platform-client/PlatformClientSecretAlert.d.ts.map +1 -1
  301. package/platform-client/PlatformClientSecretAlert.js +18 -25
  302. package/platform-client/PlatformClientSecretAlert.js.map +1 -1
  303. package/provider.d.ts +34 -1
  304. package/provider.d.ts.map +1 -1
  305. package/provider.js +14 -7
  306. package/provider.js.map +1 -1
  307. package/resource-creation/WizardNav.d.ts.map +1 -1
  308. package/resource-creation/WizardNav.js +2 -4
  309. package/resource-creation/WizardNav.js.map +1 -1
  310. package/resource-detail/ConfirmDialog.js +1 -1
  311. package/resource-detail/useCopyResource.d.ts +4 -3
  312. package/resource-detail/useCopyResource.d.ts.map +1 -1
  313. package/resource-detail/useCopyResource.js +10 -19
  314. package/resource-detail/useCopyResource.js.map +1 -1
  315. package/schedule/ScheduleDetailView.d.ts.map +1 -1
  316. package/schedule/ScheduleDetailView.js +2 -4
  317. package/schedule/ScheduleDetailView.js.map +1 -1
  318. package/schedule/ScheduleForm.d.ts.map +1 -1
  319. package/schedule/ScheduleForm.js +6 -7
  320. package/schedule/ScheduleForm.js.map +1 -1
  321. package/session/NewSessionViewer.d.ts +52 -2
  322. package/session/NewSessionViewer.d.ts.map +1 -1
  323. package/session/NewSessionViewer.js +21 -6
  324. package/session/NewSessionViewer.js.map +1 -1
  325. package/session/SessionViewer.d.ts +63 -2
  326. package/session/SessionViewer.d.ts.map +1 -1
  327. package/session/SessionViewer.js +43 -17
  328. package/session/SessionViewer.js.map +1 -1
  329. package/session/audience.d.ts +17 -0
  330. package/session/audience.d.ts.map +1 -1
  331. package/session/index.d.ts +2 -1
  332. package/session/index.d.ts.map +1 -1
  333. package/session/index.js.map +1 -1
  334. package/session/run-config.d.ts +50 -0
  335. package/session/run-config.d.ts.map +1 -0
  336. package/session/run-config.js +15 -0
  337. package/session/run-config.js.map +1 -0
  338. package/session/useNewSessionFlow.d.ts +11 -0
  339. package/session/useNewSessionFlow.d.ts.map +1 -1
  340. package/session/useNewSessionFlow.js +29 -2
  341. package/session/useNewSessionFlow.js.map +1 -1
  342. package/session/useSessionConversation.d.ts +7 -7
  343. package/session/useSessionConversation.d.ts.map +1 -1
  344. package/session/useSessionConversation.js +2 -0
  345. package/session/useSessionConversation.js.map +1 -1
  346. package/session/useSessionPageFlow.d.ts +18 -4
  347. package/session/useSessionPageFlow.d.ts.map +1 -1
  348. package/session/useSessionPageFlow.js +33 -6
  349. package/session/useSessionPageFlow.js.map +1 -1
  350. package/session/useSessionPanel.d.ts +37 -2
  351. package/session/useSessionPanel.d.ts.map +1 -1
  352. package/session/useSessionPanel.js +44 -10
  353. package/session/useSessionPanel.js.map +1 -1
  354. package/settings/ApiKeysSection.d.ts.map +1 -1
  355. package/settings/ApiKeysSection.js +3 -2
  356. package/settings/ApiKeysSection.js.map +1 -1
  357. package/settings/ChannelAppsSection.d.ts.map +1 -1
  358. package/settings/ChannelAppsSection.js +3 -2
  359. package/settings/ChannelAppsSection.js.map +1 -1
  360. package/settings/EnvironmentsSection.js +5 -3
  361. package/settings/EnvironmentsSection.js.map +1 -1
  362. package/settings/IdentityProvidersSection.d.ts.map +1 -1
  363. package/settings/IdentityProvidersSection.js +3 -2
  364. package/settings/IdentityProvidersSection.js.map +1 -1
  365. package/settings/InvitationsSection.d.ts.map +1 -1
  366. package/settings/InvitationsSection.js +3 -1
  367. package/settings/InvitationsSection.js.map +1 -1
  368. package/settings/MembersSection.d.ts.map +1 -1
  369. package/settings/MembersSection.js +3 -1
  370. package/settings/MembersSection.js.map +1 -1
  371. package/settings/OAuthAppsSection.d.ts.map +1 -1
  372. package/settings/OAuthAppsSection.js +3 -2
  373. package/settings/OAuthAppsSection.js.map +1 -1
  374. package/settings/OrgProfileSection.d.ts.map +1 -1
  375. package/settings/OrgProfileSection.js +3 -2
  376. package/settings/OrgProfileSection.js.map +1 -1
  377. package/settings/PlatformClientsSection.d.ts.map +1 -1
  378. package/settings/PlatformClientsSection.js +3 -2
  379. package/settings/PlatformClientsSection.js.map +1 -1
  380. package/settings/UsageSection.d.ts.map +1 -1
  381. package/settings/UsageSection.js +3 -1
  382. package/settings/UsageSection.js.map +1 -1
  383. package/sharing/ShareAgentDialog.d.ts.map +1 -1
  384. package/sharing/ShareAgentDialog.js +18 -7
  385. package/sharing/ShareAgentDialog.js.map +1 -1
  386. package/sidebar/chrome.d.ts +3 -4
  387. package/sidebar/chrome.d.ts.map +1 -1
  388. package/sidebar/chrome.js +5 -4
  389. package/sidebar/chrome.js.map +1 -1
  390. package/skill/SkillDiffDialog.js +1 -1
  391. package/src/access/ManageAccessDialog.tsx +10 -4
  392. package/src/activity/format-relative-time.ts +11 -9
  393. package/src/agent/steps/CapabilitiesStep.tsx +6 -3
  394. package/src/agent/steps/IdentityStep.tsx +19 -12
  395. package/src/agent-instance/CreateAgentInstanceDialog.tsx +17 -8
  396. package/src/api-key/ApiKeyCreatedAlert.tsx +10 -19
  397. package/src/api-key/ApiKeyListPanel.tsx +3 -39
  398. package/src/api-key/CreateApiKeyForm.tsx +12 -26
  399. package/src/approval-defaults-context.ts +56 -0
  400. package/src/attachment/__tests__/vision-preflight.test.ts +311 -0
  401. package/src/attachment/index.ts +12 -0
  402. package/src/attachment/vision-preflight.ts +236 -0
  403. package/src/billing/AutoRechargeCard.tsx +5 -4
  404. package/src/billing/BillingSection.tsx +4 -3
  405. package/src/channel/ChannelConversationsDialog.tsx +8 -4
  406. package/src/channel/ChannelCredentialsDialog.tsx +14 -4
  407. package/src/channel/ChannelTemplatesDialog.tsx +8 -4
  408. package/src/channel/ConnectSlackDialog.tsx +14 -4
  409. package/src/channel/ConnectWhatsAppDialog.tsx +14 -4
  410. package/src/channel/useChannelSessions.ts +3 -0
  411. package/src/channel-app/ChannelAppDetailPanel.tsx +15 -12
  412. package/src/channel-app/CreateChannelAppForm.tsx +17 -12
  413. package/src/channel-app/internal.tsx +5 -25
  414. package/src/composer/ComposerToolbar.tsx +1 -1
  415. package/src/composer/SessionComposer.tsx +160 -13
  416. package/src/composer/__tests__/SessionComposer-modelCoherence.test.tsx +220 -0
  417. package/src/composer/__tests__/SessionComposer-visionPreflight.test.tsx +222 -0
  418. package/src/composer/icons.tsx +0 -18
  419. package/src/conversation/ConversationComposer.tsx +1 -1
  420. package/src/conversation/ConversationListPane.tsx +4 -3
  421. package/src/cursor-accounts/MemberCoverageTable.tsx +3 -14
  422. package/src/cursor-accounts/__tests__/CursorAccountsConsole.test.tsx +2 -10
  423. package/src/dashboard/DashboardFailedRuns.tsx +2 -12
  424. package/src/environment/CreateEnvironmentForm.tsx +8 -27
  425. package/src/environment/EnvVarForm.tsx +2 -18
  426. package/src/environment/EnvironmentVariableEditor.tsx +5 -21
  427. package/src/execution/ArtifactApplyButton.tsx +2 -17
  428. package/src/execution/ExecutionErrorNotice.tsx +99 -0
  429. package/src/execution/FilePathLink.tsx +5 -9
  430. package/src/execution/FileReviewCard.tsx +1 -20
  431. package/src/execution/FollowUpInput.tsx +1 -16
  432. package/src/execution/LivenessStatusLine.tsx +59 -0
  433. package/src/execution/MessageEntry.tsx +136 -25
  434. package/src/execution/MessageThread.tsx +84 -83
  435. package/src/execution/SetupProgress.tsx +5 -1
  436. package/src/execution/SubAgentSection.tsx +9 -20
  437. package/src/execution/TerminalSession.tsx +97 -10
  438. package/src/execution/ToolCallDetail.tsx +19 -0
  439. package/src/execution/ToolCallItem.tsx +157 -37
  440. package/src/execution/ToolRunGroup.tsx +30 -32
  441. package/src/execution/WriteBackCard.tsx +5 -24
  442. package/src/execution/__tests__/MessageEntry-copy.test.tsx +125 -0
  443. package/src/execution/__tests__/MessageThread.test.tsx +97 -0
  444. package/src/execution/__tests__/TerminalSession.test.tsx +71 -1
  445. package/src/execution/__tests__/ToolCallDetail.test.tsx +33 -1
  446. package/src/execution/__tests__/ToolCallItem.test.tsx +299 -11
  447. package/src/execution/__tests__/ToolRunGroup.test.tsx +41 -9
  448. package/src/execution/__tests__/message-thread-slots.test.tsx +92 -0
  449. package/src/execution/__tests__/tool-presenter.test.tsx +41 -4
  450. package/src/execution/index.ts +8 -2
  451. package/src/execution/tool-categories.ts +72 -8
  452. package/src/execution/tool-presenter.ts +22 -1
  453. package/src/execution/useArtifactInspection.ts +4 -8
  454. package/src/iam-policy/GrantAccessForm.tsx +2 -18
  455. package/src/iam-policy/OrgMembersPanel.tsx +3 -19
  456. package/src/iam-policy/RoleSelector.tsx +8 -1
  457. package/src/identity-provider/CreateIdentityProviderForm.tsx +13 -31
  458. package/src/identity-provider/IdentityProviderDetailPanel.tsx +24 -49
  459. package/src/identity-provider/IdentityProviderListPanel.tsx +2 -18
  460. package/src/identity-provider/IdentityProviderWizard.tsx +15 -32
  461. package/src/identity-provider/SsoLoginPrompt.tsx +6 -21
  462. package/src/index.ts +23 -1
  463. package/src/internal/DecisionButton.tsx +1 -20
  464. package/src/internal/SpinnerIcon.tsx +42 -0
  465. package/src/internal/__tests__/ThreadCardShell.test.tsx +43 -7
  466. package/src/internal/__tests__/useCopyFeedback.test.ts +92 -0
  467. package/src/internal/select-element-text.ts +17 -0
  468. package/src/internal/thread-card/ThreadCardShell.tsx +53 -21
  469. package/src/internal/thread-card/glyphs.tsx +24 -3
  470. package/src/internal/thread-card/index.ts +1 -0
  471. package/src/internal/useCopyFeedback.ts +61 -0
  472. package/src/invitation/InvitationCreatedAlert.tsx +10 -18
  473. package/src/invitation/InvitationManager.tsx +23 -34
  474. package/src/invitation/InvitationRedemption.tsx +2 -18
  475. package/src/library/useExportResource.ts +15 -29
  476. package/src/manifest/ApplyManifestDialog.tsx +1 -1
  477. package/src/manifest/EditResourceYamlDialog.tsx +1 -1
  478. package/src/mcp-server/DefinitionDriftNotice.tsx +120 -0
  479. package/src/mcp-server/McpServerConnectDialog.tsx +1 -1
  480. package/src/mcp-server/McpServerDetailView.tsx +58 -26
  481. package/src/mcp-server/OAuthAppForm.tsx +2 -18
  482. package/src/mcp-server/__tests__/DefinitionDriftNotice.test.tsx +57 -0
  483. package/src/mcp-server/__tests__/definitionDrift.test.ts +245 -0
  484. package/src/mcp-server/__tests__/mcpServerToInput.test.ts +201 -0
  485. package/src/mcp-server/__tests__/useMcpServerDefinitionDrift.test.tsx +173 -0
  486. package/src/mcp-server/internal/definitionDrift.ts +158 -0
  487. package/src/mcp-server/internal/mcpServerToInput.ts +3 -0
  488. package/src/mcp-server/steps/EnvironmentAuthStep.tsx +19 -19
  489. package/src/mcp-server/steps/IdentityTransportStep.tsx +24 -23
  490. package/src/mcp-server/useMcpServerConnect.ts +1 -1
  491. package/src/mcp-server/useMcpServerDefinitionDrift.ts +95 -0
  492. package/src/models/ModelRegistryContext.ts +7 -1
  493. package/src/models/ModelSelector.tsx +37 -0
  494. package/src/models/__tests__/ModelSelector-visionIndicator.test.tsx +129 -0
  495. package/src/models/__tests__/resolveDefaultModel.test.ts +115 -0
  496. package/src/models/__tests__/useModelRegistry.test.tsx +99 -4
  497. package/src/models/index.ts +2 -2
  498. package/src/models/registry.ts +196 -29
  499. package/src/models/useModelRegistry.ts +10 -2
  500. package/src/oauth-app/CreateOAuthAppForm.tsx +16 -31
  501. package/src/oauth-app/OAuthAppDetailPanel.tsx +16 -31
  502. package/src/organization/CreateOrganizationForm.tsx +10 -29
  503. package/src/organization/OrgProfilePanel.tsx +13 -44
  504. package/src/platform-client/CreatePlatformClientForm.tsx +9 -29
  505. package/src/platform-client/PlatformClientDetailPanel.tsx +10 -30
  506. package/src/platform-client/PlatformClientListPanel.tsx +2 -18
  507. package/src/platform-client/PlatformClientSecretAlert.tsx +26 -55
  508. package/src/provider.tsx +76 -33
  509. package/src/resource-creation/WizardNav.tsx +2 -18
  510. package/src/resource-detail/ConfirmDialog.tsx +1 -1
  511. package/src/resource-detail/useCopyResource.ts +17 -23
  512. package/src/schedule/ScheduleDetailView.tsx +2 -18
  513. package/src/schedule/ScheduleForm.tsx +19 -34
  514. package/src/session/NewSessionViewer.tsx +85 -7
  515. package/src/session/SessionViewer.tsx +120 -17
  516. package/src/session/__tests__/audienceWiring.test.tsx +76 -0
  517. package/src/session/__tests__/panelNegotiation.test.tsx +302 -0
  518. package/src/session/__tests__/useNewSessionFlow.test.tsx +134 -5
  519. package/src/session/__tests__/useSessionPageFlow.autoApprove.test.tsx +74 -0
  520. package/src/session/__tests__/useSessionPageFlow.runConfig.test.tsx +157 -0
  521. package/src/session/__tests__/useSessionPanel.test.ts +114 -0
  522. package/src/session/audience.ts +18 -0
  523. package/src/session/index.ts +2 -1
  524. package/src/session/run-config.ts +59 -0
  525. package/src/session/useNewSessionFlow.ts +39 -2
  526. package/src/session/useSessionConversation.ts +10 -8
  527. package/src/session/useSessionPageFlow.ts +51 -10
  528. package/src/session/useSessionPanel.ts +91 -10
  529. package/src/settings/ApiKeysSection.tsx +4 -3
  530. package/src/settings/ChannelAppsSection.tsx +4 -3
  531. package/src/settings/EnvironmentsSection.tsx +8 -5
  532. package/src/settings/IdentityProvidersSection.tsx +4 -3
  533. package/src/settings/InvitationsSection.tsx +4 -2
  534. package/src/settings/MembersSection.tsx +4 -2
  535. package/src/settings/OAuthAppsSection.tsx +4 -3
  536. package/src/settings/OrgProfileSection.tsx +4 -3
  537. package/src/settings/PlatformClientsSection.tsx +4 -3
  538. package/src/settings/UsageSection.tsx +4 -2
  539. package/src/sharing/ShareAgentDialog.tsx +28 -10
  540. package/src/sidebar/__tests__/WorkspaceSidebar.test.tsx +4 -1
  541. package/src/sidebar/chrome.tsx +6 -6
  542. package/src/skill/SkillDiffDialog.tsx +1 -1
  543. package/src/styles.css +43 -0
  544. package/src/version-history/VersionTimelineEntry.tsx +1 -21
  545. package/src/workflow/FailedRunsWidget.tsx +2 -9
  546. package/src/workflow/PendingApprovalsWidget.tsx +2 -9
  547. package/src/workflow/ViewYamlDialog.tsx +7 -22
  548. package/src/workflow/WorkflowArchitectDialog.tsx +8 -27
  549. package/src/workflow/WorkflowArtifactDocument.tsx +5 -9
  550. package/src/workflow/WorkflowCanvasEditor.tsx +2 -0
  551. package/src/workflow/WorkflowCanvasInner.tsx +14 -1
  552. package/src/workflow/WorkflowDiffGraph.tsx +7 -1
  553. package/src/workflow/WorkflowExecutionViewer.tsx +88 -11
  554. package/src/workflow/WorkflowExplainDialog.tsx +8 -24
  555. package/src/workflow/WorkflowOverviewGraph.tsx +9 -1
  556. package/src/workflow/WorkflowRefinePanel.tsx +2 -18
  557. package/src/workflow/WorkflowRepairCard.tsx +2 -18
  558. package/src/workflow/WorkflowRunDialog.tsx +3 -23
  559. package/src/workflow/WorkflowTaskApprovalSummary.tsx +2 -17
  560. package/src/workflow/WorkflowVersionBadge.tsx +4 -13
  561. package/src/workflow/WorkflowVersionTimeline.tsx +1 -25
  562. package/src/workflow/__tests__/panelNegotiation.test.tsx +230 -0
  563. package/src/workflow/__tests__/useWorkflowCanvas.dirty.test.tsx +178 -0
  564. package/src/workflow/__tests__/useWorkflowCanvas.drag.test.tsx +224 -0
  565. package/src/workflow/__tests__/useWorkflowExecutionPanel.test.ts +100 -0
  566. package/src/workflow/execution-comparison/ExecutionComparisonPicker.tsx +7 -11
  567. package/src/workflow/execution-history/ExecutionHistoryTable.tsx +1 -25
  568. package/src/workflow/index.ts +1 -0
  569. package/src/workflow/instance/CreateWorkflowInstanceDialog.tsx +1 -1
  570. package/src/workflow/instance/WorkflowInstanceDetailPanel.tsx +2 -1
  571. package/src/workflow/picker/BranchAddPopover.tsx +4 -3
  572. package/src/workflow/templates/WorkflowTemplatePreview.tsx +1 -1
  573. package/src/workflow/useApprovalBoundary.ts +1 -1
  574. package/src/workflow/useWorkflowCanvas.ts +114 -11
  575. package/src/workflow/useWorkflowExecutionPanel.ts +95 -13
  576. package/styles.css +1 -1
  577. package/version-history/VersionTimelineEntry.d.ts.map +1 -1
  578. package/version-history/VersionTimelineEntry.js +1 -23
  579. package/version-history/VersionTimelineEntry.js.map +1 -1
  580. package/workflow/CanvasTransitionEdge.d.ts +1 -1
  581. package/workflow/FailedRunsWidget.d.ts.map +1 -1
  582. package/workflow/FailedRunsWidget.js +2 -11
  583. package/workflow/FailedRunsWidget.js.map +1 -1
  584. package/workflow/PendingApprovalsWidget.d.ts.map +1 -1
  585. package/workflow/PendingApprovalsWidget.js +2 -11
  586. package/workflow/PendingApprovalsWidget.js.map +1 -1
  587. package/workflow/ViewYamlDialog.d.ts.map +1 -1
  588. package/workflow/ViewYamlDialog.js +7 -23
  589. package/workflow/ViewYamlDialog.js.map +1 -1
  590. package/workflow/WorkflowArchitectDialog.d.ts.map +1 -1
  591. package/workflow/WorkflowArchitectDialog.js +7 -11
  592. package/workflow/WorkflowArchitectDialog.js.map +1 -1
  593. package/workflow/WorkflowArtifactDocument.d.ts.map +1 -1
  594. package/workflow/WorkflowArtifactDocument.js +5 -8
  595. package/workflow/WorkflowArtifactDocument.js.map +1 -1
  596. package/workflow/WorkflowCanvasEditor.d.ts.map +1 -1
  597. package/workflow/WorkflowCanvasEditor.js +1 -1
  598. package/workflow/WorkflowCanvasEditor.js.map +1 -1
  599. package/workflow/WorkflowCanvasInner.d.ts +4 -2
  600. package/workflow/WorkflowCanvasInner.d.ts.map +1 -1
  601. package/workflow/WorkflowCanvasInner.js +7 -3
  602. package/workflow/WorkflowCanvasInner.js.map +1 -1
  603. package/workflow/WorkflowDiffGraph.js +6 -2
  604. package/workflow/WorkflowDiffGraph.js.map +1 -1
  605. package/workflow/WorkflowExecutionViewer.d.ts +51 -0
  606. package/workflow/WorkflowExecutionViewer.d.ts.map +1 -1
  607. package/workflow/WorkflowExecutionViewer.js +23 -6
  608. package/workflow/WorkflowExecutionViewer.js.map +1 -1
  609. package/workflow/WorkflowExplainDialog.d.ts.map +1 -1
  610. package/workflow/WorkflowExplainDialog.js +6 -8
  611. package/workflow/WorkflowExplainDialog.js.map +1 -1
  612. package/workflow/WorkflowOverviewGraph.js +8 -2
  613. package/workflow/WorkflowOverviewGraph.js.map +1 -1
  614. package/workflow/WorkflowRefinePanel.d.ts.map +1 -1
  615. package/workflow/WorkflowRefinePanel.js +2 -4
  616. package/workflow/WorkflowRefinePanel.js.map +1 -1
  617. package/workflow/WorkflowRepairCard.d.ts.map +1 -1
  618. package/workflow/WorkflowRepairCard.js +2 -4
  619. package/workflow/WorkflowRepairCard.js.map +1 -1
  620. package/workflow/WorkflowRunDialog.d.ts.map +1 -1
  621. package/workflow/WorkflowRunDialog.js +2 -7
  622. package/workflow/WorkflowRunDialog.js.map +1 -1
  623. package/workflow/WorkflowTaskApprovalSummary.d.ts.map +1 -1
  624. package/workflow/WorkflowTaskApprovalSummary.js +2 -4
  625. package/workflow/WorkflowTaskApprovalSummary.js.map +1 -1
  626. package/workflow/WorkflowVersionBadge.d.ts.map +1 -1
  627. package/workflow/WorkflowVersionBadge.js +4 -13
  628. package/workflow/WorkflowVersionBadge.js.map +1 -1
  629. package/workflow/WorkflowVersionTimeline.d.ts.map +1 -1
  630. package/workflow/WorkflowVersionTimeline.js +1 -26
  631. package/workflow/WorkflowVersionTimeline.js.map +1 -1
  632. package/workflow/execution-comparison/ExecutionComparisonPicker.d.ts.map +1 -1
  633. package/workflow/execution-comparison/ExecutionComparisonPicker.js +7 -15
  634. package/workflow/execution-comparison/ExecutionComparisonPicker.js.map +1 -1
  635. package/workflow/execution-history/ExecutionHistoryTable.d.ts.map +1 -1
  636. package/workflow/execution-history/ExecutionHistoryTable.js +1 -24
  637. package/workflow/execution-history/ExecutionHistoryTable.js.map +1 -1
  638. package/workflow/index.d.ts +1 -1
  639. package/workflow/index.d.ts.map +1 -1
  640. package/workflow/index.js.map +1 -1
  641. package/workflow/instance/CreateWorkflowInstanceDialog.js +1 -1
  642. package/workflow/instance/WorkflowInstanceDetailPanel.d.ts.map +1 -1
  643. package/workflow/instance/WorkflowInstanceDetailPanel.js +1 -1
  644. package/workflow/instance/WorkflowInstanceDetailPanel.js.map +1 -1
  645. package/workflow/picker/BranchAddPopover.d.ts.map +1 -1
  646. package/workflow/picker/BranchAddPopover.js +3 -2
  647. package/workflow/picker/BranchAddPopover.js.map +1 -1
  648. package/workflow/templates/WorkflowTemplatePreview.js +1 -1
  649. package/workflow/useApprovalBoundary.d.ts +1 -1
  650. package/workflow/useApprovalBoundary.js +1 -1
  651. package/workflow/useWorkflowCanvas.d.ts +5 -1
  652. package/workflow/useWorkflowCanvas.d.ts.map +1 -1
  653. package/workflow/useWorkflowCanvas.js +99 -13
  654. package/workflow/useWorkflowCanvas.js.map +1 -1
  655. package/workflow/useWorkflowExecutionPanel.d.ts +38 -2
  656. package/workflow/useWorkflowExecutionPanel.d.ts.map +1 -1
  657. package/workflow/useWorkflowExecutionPanel.js +46 -13
  658. package/workflow/useWorkflowExecutionPanel.js.map +1 -1
@@ -1,12 +1,15 @@
1
1
  "use client";
2
2
 
3
- import { useCallback, useState, type FormEvent } from "react";
3
+ import { type FormEvent, useCallback, useId, useRef, useState } from "react";
4
4
  import { cn } from "@stigmer/theme";
5
5
  import { getUserMessage } from "@stigmer/sdk";
6
6
  import type { IdentityProvider } from "@stigmer/protos/ai/stigmer/iam/identityprovider/v1/api_pb";
7
7
  import { IamRole } from "@stigmer/protos/ai/stigmer/iam/v1/enum_pb";
8
8
  import { timestampDate, type Timestamp } from "@bufbuild/protobuf/wkt";
9
9
  import { useUpdateIdentityProvider } from "./useUpdateIdentityProvider.js";
10
+ import { SpinnerIcon } from "../internal/SpinnerIcon.js";
11
+ import { selectElementText } from "../internal/select-element-text.js";
12
+ import { useCopyFeedback } from "../internal/useCopyFeedback.js";
10
13
 
11
14
  /** Props for {@link IdentityProviderDetailPanel}. */
12
15
  export interface IdentityProviderDetailPanelProps {
@@ -55,6 +58,7 @@ export function IdentityProviderDetailPanel({
55
58
  ssoLoginUrl,
56
59
  className,
57
60
  }: IdentityProviderDetailPanelProps) {
61
+ const baseId = useId();
58
62
  const spec = identityProvider.spec;
59
63
  const meta = identityProvider.metadata;
60
64
 
@@ -230,7 +234,7 @@ export function IdentityProviderDetailPanel({
230
234
  ) : (
231
235
  <form onSubmit={handleSave} className="stg:space-y-3">
232
236
  <FieldInput
233
- id="stgm-idp-edit-name"
237
+ id={`${baseId}-name`}
234
238
  label="Display name"
235
239
  value={displayName}
236
240
  onChange={setDisplayName}
@@ -239,7 +243,7 @@ export function IdentityProviderDetailPanel({
239
243
  required
240
244
  />
241
245
  <FieldInput
242
- id="stgm-idp-edit-jwks"
246
+ id={`${baseId}-jwks`}
243
247
  label="JWKS URI"
244
248
  value={jwksUri}
245
249
  onChange={setJwksUri}
@@ -248,7 +252,7 @@ export function IdentityProviderDetailPanel({
248
252
  required
249
253
  />
250
254
  <FieldInput
251
- id="stgm-idp-edit-issuers"
255
+ id={`${baseId}-issuers`}
252
256
  label="Allowed issuers"
253
257
  value={issuers}
254
258
  onChange={setIssuers}
@@ -258,7 +262,7 @@ export function IdentityProviderDetailPanel({
258
262
  required
259
263
  />
260
264
  <FieldInput
261
- id="stgm-idp-edit-audience"
265
+ id={`${baseId}-audience`}
262
266
  label="Expected audience"
263
267
  value={audience}
264
268
  onChange={setAudience}
@@ -267,7 +271,7 @@ export function IdentityProviderDetailPanel({
267
271
  required
268
272
  />
269
273
  <FieldInput
270
- id="stgm-idp-edit-userinfo"
274
+ id={`${baseId}-userinfo`}
271
275
  label="Userinfo endpoint"
272
276
  value={userinfoEndpoint}
273
277
  onChange={setUserinfoEndpoint}
@@ -304,7 +308,7 @@ export function IdentityProviderDetailPanel({
304
308
 
305
309
  {isSso && (
306
310
  <FieldInput
307
- id="stgm-idp-edit-client-id"
311
+ id={`${baseId}-client-id`}
308
312
  label="OIDC client ID"
309
313
  value={oidcClientId}
310
314
  onChange={setOidcClientId}
@@ -345,7 +349,7 @@ export function IdentityProviderDetailPanel({
345
349
  "stg:disabled:pointer-events-none stg:disabled:opacity-40",
346
350
  )}
347
351
  >
348
- {isUpdating && <SpinnerIcon />}
352
+ {isUpdating && <SpinnerIcon size={12} />}
349
353
  Save changes
350
354
  </button>
351
355
  <button
@@ -488,8 +492,6 @@ function Field({
488
492
  // View mode — copyable field
489
493
  // ---------------------------------------------------------------------------
490
494
 
491
- const COPIED_FEEDBACK_MS = 2000;
492
-
493
495
  function CopyableField({
494
496
  label,
495
497
  value,
@@ -499,25 +501,14 @@ function CopyableField({
499
501
  value: string;
500
502
  hint?: string;
501
503
  }) {
502
- const [copied, setCopied] = useState(false);
503
- const valueId = "stgm-idp-sso-login-url";
504
+ const { copy, copied } = useCopyFeedback();
505
+ const revealRef = useRef<HTMLElement>(null);
504
506
 
505
507
  const handleCopy = useCallback(async () => {
506
- try {
507
- await navigator.clipboard.writeText(value);
508
- setCopied(true);
509
- setTimeout(() => setCopied(false), COPIED_FEEDBACK_MS);
510
- } catch {
511
- const el = document.getElementById(valueId);
512
- if (el) {
513
- const selection = window.getSelection();
514
- const range = document.createRange();
515
- range.selectNodeContents(el);
516
- selection?.removeAllRanges();
517
- selection?.addRange(range);
518
- }
519
- }
520
- }, [value]);
508
+ if (await copy(value)) return;
509
+ // Rejected write: select the revealed value so the user can copy manually.
510
+ if (revealRef.current) selectElementText(revealRef.current);
511
+ }, [copy, value]);
521
512
 
522
513
  return (
523
514
  <div>
@@ -527,14 +518,14 @@ function CopyableField({
527
518
  <dd className="stg:mt-0.5">
528
519
  <div className="stg:flex stg:items-center stg:gap-2">
529
520
  <span
530
- id={valueId}
521
+ ref={revealRef}
531
522
  className="stg:text-foreground stg:break-all stg:font-mono stg:text-xs stg:select-all"
532
523
  >
533
524
  {value}
534
525
  </span>
535
526
  <button
536
527
  type="button"
537
- onClick={handleCopy}
528
+ onClick={() => void handleCopy()}
538
529
  className={cn(
539
530
  "stg:shrink-0 stg:rounded stg:px-1.5 stg:py-0.5 stg:text-[0.6rem]",
540
531
  "stg:text-muted-foreground stg:hover:text-foreground stg:hover:bg-accent-hover",
@@ -669,6 +660,7 @@ function JitEditSection({
669
660
  onTenantOrgClaimChange: (v: string) => void;
670
661
  disabled?: boolean;
671
662
  }) {
663
+ const baseId = useId();
672
664
  if (isSso) {
673
665
  return (
674
666
  <div className="stg:rounded-md stg:border stg:border-border-muted stg:bg-muted-faint stg:px-3 stg:py-2">
@@ -712,13 +704,13 @@ function JitEditSection({
712
704
  <>
713
705
  <div className="stg:space-y-1">
714
706
  <label
715
- htmlFor="stgm-idp-edit-grant-role"
707
+ htmlFor={`${baseId}-grant-role`}
716
708
  className="stg:text-xs stg:font-medium stg:text-foreground"
717
709
  >
718
710
  Auto-grant role
719
711
  </label>
720
712
  <select
721
- id="stgm-idp-edit-grant-role"
713
+ id={`${baseId}-grant-role`}
722
714
  value={String(autoGrantRole)}
723
715
  onChange={(e) => onAutoGrantRoleChange(Number(e.target.value) as IamRole)}
724
716
  disabled={disabled}
@@ -740,7 +732,7 @@ function JitEditSection({
740
732
  </div>
741
733
 
742
734
  <FieldInput
743
- id="stgm-idp-edit-tenant-claim"
735
+ id={`${baseId}-tenant-claim`}
744
736
  label="Tenant org claim"
745
737
  value={tenantOrgClaim}
746
738
  onChange={onTenantOrgClaimChange}
@@ -846,20 +838,3 @@ function ArrowLeftIcon() {
846
838
  );
847
839
  }
848
840
 
849
- function SpinnerIcon() {
850
- return (
851
- <svg
852
- width="12"
853
- height="12"
854
- viewBox="0 0 16 16"
855
- fill="none"
856
- stroke="currentColor"
857
- strokeWidth="2"
858
- strokeLinecap="round"
859
- className="stg:animate-spin"
860
- aria-hidden="true"
861
- >
862
- <path d="M8 2a6 6 0 1 0 6 6" />
863
- </svg>
864
- );
865
- }
@@ -8,6 +8,7 @@ import type { IdentityProvider } from "@stigmer/protos/ai/stigmer/iam/identitypr
8
8
  import { Tooltip, TooltipContent, TooltipTrigger } from "../internal/tooltip.js";
9
9
  import { useIdentityProviderList } from "./useIdentityProviderList.js";
10
10
  import { useDeleteIdentityProvider } from "./useDeleteIdentityProvider.js";
11
+ import { SpinnerIcon } from "../internal/SpinnerIcon.js";
11
12
 
12
13
  /** Props for {@link IdentityProviderListPanel}. */
13
14
  export interface IdentityProviderListPanelProps {
@@ -197,7 +198,7 @@ function IdpRow({
197
198
  "stg:disabled:pointer-events-none stg:disabled:opacity-50",
198
199
  )}
199
200
  >
200
- {isDeleting && <SpinnerIcon />}
201
+ {isDeleting && <SpinnerIcon size={12} />}
201
202
  Delete
202
203
  </button>
203
204
  <button
@@ -366,20 +367,3 @@ function TrashIcon() {
366
367
  );
367
368
  }
368
369
 
369
- function SpinnerIcon() {
370
- return (
371
- <svg
372
- width="12"
373
- height="12"
374
- viewBox="0 0 16 16"
375
- fill="none"
376
- stroke="currentColor"
377
- strokeWidth="2"
378
- strokeLinecap="round"
379
- className="stg:animate-spin"
380
- aria-hidden="true"
381
- >
382
- <path d="M8 2a6 6 0 1 0 6 6" />
383
- </svg>
384
- );
385
- }
@@ -1,10 +1,6 @@
1
1
  "use client";
2
2
 
3
- import {
4
- useCallback,
5
- useState,
6
- type FormEvent,
7
- } from "react";
3
+ import { type FormEvent, useCallback, useId, useState } from "react";
8
4
  import { cn } from "@stigmer/theme";
9
5
  import { getUserMessage } from "@stigmer/sdk";
10
6
  import type { IdentityProvider } from "@stigmer/protos/ai/stigmer/iam/identityprovider/v1/api_pb";
@@ -13,6 +9,7 @@ import { ProviderPicker } from "./ProviderPicker.js";
13
9
  import { useCreateIdentityProvider } from "./useCreateIdentityProvider.js";
14
10
  import { useOidcDiscovery } from "./useOidcDiscovery.js";
15
11
  import type { ProviderPreset, ProviderConfig } from "./presets.js";
12
+ import { SpinnerIcon } from "../internal/SpinnerIcon.js";
16
13
 
17
14
  /** Props for {@link IdentityProviderWizard}. */
18
15
  export interface IdentityProviderWizardProps {
@@ -365,6 +362,7 @@ function ConfigureStep({
365
362
  onContinue: () => void;
366
363
  onCancel?: () => void;
367
364
  }) {
365
+ const baseId = useId();
368
366
  const allVarsFilled = preset.variables.every(
369
367
  (v) => (vars[v.key] ?? "").trim() !== "",
370
368
  );
@@ -402,7 +400,7 @@ function ConfigureStep({
402
400
 
403
401
  {/* Common fields */}
404
402
  <FieldInput
405
- id="stgm-idp-wiz-name"
403
+ id={`${baseId}-name`}
406
404
  label="Display name"
407
405
  value={name}
408
406
  onChange={onNameChange}
@@ -412,7 +410,7 @@ function ConfigureStep({
412
410
  />
413
411
 
414
412
  <FieldInput
415
- id="stgm-idp-wiz-audience"
413
+ id={`${baseId}-audience`}
416
414
  label="Expected audience"
417
415
  value={audience}
418
416
  onChange={onAudienceChange}
@@ -438,7 +436,7 @@ function ConfigureStep({
438
436
  "stg:disabled:pointer-events-none stg:disabled:opacity-40",
439
437
  )}
440
438
  >
441
- {isLoading && <SpinnerIcon />}
439
+ {isLoading && <SpinnerIcon size={12} />}
442
440
  Continue
443
441
  </button>
444
442
  <TextButton onClick={onBack} disabled={isLoading}>
@@ -507,6 +505,7 @@ function ReviewStep({
507
505
  onSubmit: (e: FormEvent) => void;
508
506
  onCancel?: () => void;
509
507
  }) {
508
+ const baseId = useId();
510
509
  const canSubmit =
511
510
  jwksUri.trim() !== "" &&
512
511
  issuers.trim() !== "" &&
@@ -530,7 +529,7 @@ function ReviewStep({
530
529
  </p>
531
530
 
532
531
  <FieldInput
533
- id="stgm-idp-wiz-jwks"
532
+ id={`${baseId}-jwks`}
534
533
  label="JWKS URI"
535
534
  value={jwksUri}
536
535
  onChange={onJwksUriChange}
@@ -540,7 +539,7 @@ function ReviewStep({
540
539
  />
541
540
 
542
541
  <FieldInput
543
- id="stgm-idp-wiz-issuers"
542
+ id={`${baseId}-issuers`}
544
543
  label="Allowed issuers"
545
544
  value={issuers}
546
545
  onChange={onIssuersChange}
@@ -551,7 +550,7 @@ function ReviewStep({
551
550
  />
552
551
 
553
552
  <FieldInput
554
- id="stgm-idp-wiz-userinfo"
553
+ id={`${baseId}-userinfo`}
555
554
  label="Userinfo endpoint"
556
555
  value={userinfoEndpoint}
557
556
  onChange={onUserinfoEndpointChange}
@@ -570,7 +569,7 @@ function ReviewStep({
570
569
 
571
570
  {isSso && (
572
571
  <FieldInput
573
- id="stgm-idp-wiz-client-id"
572
+ id={`${baseId}-client-id`}
574
573
  label="OIDC client ID"
575
574
  value={oidcClientId}
576
575
  onChange={onOidcClientIdChange}
@@ -611,7 +610,7 @@ function ReviewStep({
611
610
  "stg:disabled:pointer-events-none stg:disabled:opacity-40",
612
611
  )}
613
612
  >
614
- {isCreating && <SpinnerIcon />}
613
+ {isCreating && <SpinnerIcon size={12} />}
615
614
  Create identity provider
616
615
  </button>
617
616
  <TextButton onClick={onBack} disabled={isCreating}>
@@ -825,6 +824,7 @@ function JitProvisioningSection({
825
824
  onTenantOrgClaimChange: (v: string) => void;
826
825
  disabled?: boolean;
827
826
  }) {
827
+ const baseId = useId();
828
828
  if (isSso) {
829
829
  return (
830
830
  <div className="stg:rounded-md stg:border stg:border-border-muted stg:bg-muted-faint stg:px-3 stg:py-2">
@@ -867,7 +867,7 @@ function JitProvisioningSection({
867
867
  {autoGrant && (
868
868
  <>
869
869
  <FieldInput
870
- id="stgm-idp-wiz-grant-role"
870
+ id={`${baseId}-grant-role`}
871
871
  label="Auto-grant role"
872
872
  value={String(autoGrantRole)}
873
873
  onChange={(v) => onAutoGrantRoleChange(Number(v) as IamRole)}
@@ -879,7 +879,7 @@ function JitProvisioningSection({
879
879
  />
880
880
 
881
881
  <FieldInput
882
- id="stgm-idp-wiz-tenant-claim"
882
+ id={`${baseId}-tenant-claim`}
883
883
  label="Tenant org claim"
884
884
  value={tenantOrgClaim}
885
885
  onChange={onTenantOrgClaimChange}
@@ -980,20 +980,3 @@ function CancelButton({
980
980
  );
981
981
  }
982
982
 
983
- function SpinnerIcon() {
984
- return (
985
- <svg
986
- width="12"
987
- height="12"
988
- viewBox="0 0 16 16"
989
- fill="none"
990
- stroke="currentColor"
991
- strokeWidth="2"
992
- strokeLinecap="round"
993
- className="stg:animate-spin"
994
- aria-hidden="true"
995
- >
996
- <path d="M8 2a6 6 0 1 0 6 6" />
997
- </svg>
998
- );
999
- }
@@ -184,7 +184,8 @@ function resolvePhase(
184
184
  // Sub-components
185
185
  // ---------------------------------------------------------------------------
186
186
 
187
- import { forwardRef } from "react";
187
+ import { forwardRef, useId } from "react";
188
+ import { SpinnerIcon } from "../internal/SpinnerIcon.js";
188
189
 
189
190
  interface OrgInputFormProps {
190
191
  readonly value: string;
@@ -194,17 +195,18 @@ interface OrgInputFormProps {
194
195
 
195
196
  const OrgInputForm = forwardRef<HTMLInputElement, OrgInputFormProps>(
196
197
  function OrgInputForm({ value, onChange, onSubmit }, ref) {
198
+ const inputId = useId();
197
199
  return (
198
200
  <form onSubmit={onSubmit} className="stg:space-y-3">
199
201
  <label
200
- htmlFor="sso-org-input"
202
+ htmlFor={inputId}
201
203
  className="stg:block stg:text-sm stg:font-medium stg:text-foreground"
202
204
  >
203
205
  Organization
204
206
  </label>
205
207
  <input
206
208
  ref={ref}
207
- id="sso-org-input"
209
+ id={inputId}
208
210
  type="text"
209
211
  value={value}
210
212
  onChange={(e) => onChange(e.target.value)}
@@ -244,7 +246,7 @@ function LoadingState({ org }: { org: string }) {
244
246
  aria-busy="true"
245
247
  aria-label={`Looking up SSO provider for ${org}`}
246
248
  >
247
- <SpinnerIcon />
249
+ <SpinnerIcon size={20} className="stg:text-muted-foreground" />
248
250
  <p className="stg:text-sm stg:text-muted-foreground">
249
251
  Looking up <span className="stg:font-medium stg:text-foreground">{org}</span>&hellip;
250
252
  </p>
@@ -366,23 +368,6 @@ function ErrorState({
366
368
  // Icons
367
369
  // ---------------------------------------------------------------------------
368
370
 
369
- function SpinnerIcon() {
370
- return (
371
- <svg
372
- width="20"
373
- height="20"
374
- viewBox="0 0 16 16"
375
- fill="none"
376
- stroke="currentColor"
377
- strokeWidth="2"
378
- strokeLinecap="round"
379
- className="stg:animate-spin stg:text-muted-foreground"
380
- aria-hidden="true"
381
- >
382
- <path d="M8 2a6 6 0 1 0 6 6" />
383
- </svg>
384
- );
385
- }
386
371
 
387
372
  function SsoShieldIcon() {
388
373
  return (
package/src/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  // Provider and context
2
2
  export { StigmerProvider, type StigmerProviderProps } from "./provider.js";
3
+ export { type ApprovalDefaults } from "./approval-defaults-context.js";
3
4
  export { StigmerContext } from "./context.js";
4
5
 
5
6
  // Runner adapter
@@ -39,7 +40,9 @@ export {
39
40
  modelKey,
40
41
  parseModelKey,
41
42
  fetchModelRegistry,
43
+ fetchModelRegistryDocument,
42
44
  parseRegistryJson,
45
+ parseRegistryDocument,
43
46
  useModelRegistry,
44
47
  ModelRegistryContext,
45
48
  ModelSelector,
@@ -51,6 +54,7 @@ export {
51
54
  } from "./models/index.js";
52
55
  export type {
53
56
  ModelInfo,
57
+ ModelRegistryDocument,
54
58
  ModelRegistryState,
55
59
  ParsedModelKey,
56
60
  Provider,
@@ -60,6 +64,7 @@ export type {
60
64
  ModelSelectorProps,
61
65
  HarnessSelectorProps,
62
66
  HarnessOption,
67
+ VisionLimits,
63
68
  } from "./models/index.js";
64
69
 
65
70
  // Workspace — behavior hooks and styled components
@@ -215,6 +220,7 @@ export type {
215
220
  ExecutionTargetOption,
216
221
  RuntimeEnvProvider,
217
222
  SessionAudience,
223
+ SessionPanelMode,
218
224
  SetupTabProps,
219
225
  SetupTabMutationCallbacks,
220
226
  } from "./session/index.js";
@@ -257,6 +263,7 @@ export {
257
263
  ExecutionPhaseBadge,
258
264
  InteractionModeBadge,
259
265
  SetupProgress,
266
+ LivenessStatusLine,
260
267
  ExecutionProgress,
261
268
  TodoList,
262
269
  TodoCard,
@@ -279,6 +286,7 @@ export {
279
286
  ResultView,
280
287
  summarizeResultView,
281
288
  TerminalSession,
289
+ TerminalTail,
282
290
  useToolPresentation,
283
291
  registerToolPresenter,
284
292
  getToolPresenter,
@@ -296,6 +304,7 @@ export {
296
304
  SubAgentSection,
297
305
  MessageEntry,
298
306
  MessageThread,
307
+ ExecutionErrorNotice,
299
308
  ThreadSkeleton,
300
309
  FollowUpInput,
301
310
  ApprovalCard,
@@ -380,6 +389,7 @@ export type {
380
389
  ExecutionPhaseBadgeProps,
381
390
  InteractionModeBadgeProps,
382
391
  SetupProgressProps,
392
+ LivenessStatusLineProps,
383
393
  ExecutionProgressProps,
384
394
  TodoListProps,
385
395
  TodoCardProps,
@@ -398,6 +408,7 @@ export type {
398
408
  ToolCallDetailProps,
399
409
  ResultViewProps,
400
410
  TerminalSessionProps,
411
+ TerminalTailProps,
401
412
  ToolPresentation,
402
413
  ToolPresenter,
403
414
  ToolDisclosure,
@@ -409,6 +420,8 @@ export type {
409
420
  SubAgentSectionProps,
410
421
  MessageEntryProps,
411
422
  MessageThreadProps,
423
+ MessageThreadSlots,
424
+ ExecutionErrorNoticeProps,
412
425
  ThreadContentColumn,
413
426
  ThreadSkeletonProps,
414
427
  FollowUpInputProps,
@@ -466,13 +479,14 @@ export type { ExecutionArtifact } from "@stigmer/protos/ai/stigmer/agentic/agent
466
479
  export { ExecutionArtifactKind } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
467
480
 
468
481
  // Attachment — file upload behavior hook, styled chip list, clipboard paste,
469
- // and vision-resolution image preparation
482
+ // vision-resolution image preparation, and vision preflight warnings
470
483
  export {
471
484
  useAttachments,
472
485
  AttachmentChipList,
473
486
  MAX_ATTACHMENT_BYTES,
474
487
  MAX_VISION_LONG_EDGE_PX,
475
488
  MAX_VISION_PIXELS,
489
+ assessVisionPreflight,
476
490
  detectContentType,
477
491
  exceedsVisionResolution,
478
492
  extractClipboardFiles,
@@ -481,15 +495,22 @@ export {
481
495
  prepareImageForVision,
482
496
  uniquifyFilename,
483
497
  validateAttachmentSize,
498
+ visionPreflightMessage,
484
499
  } from "./attachment/index.js";
485
500
  export type {
486
501
  AttachmentPhase,
487
502
  AttachmentEntry,
503
+ AssessVisionPreflightOptions,
488
504
  ClipboardFilesSource,
489
505
  UseAttachmentsOptions,
490
506
  UseAttachmentsReturn,
491
507
  AttachmentChipListProps,
492
508
  VisionFitSize,
509
+ VisionPreflight,
510
+ VisionPreflightAttachment,
511
+ VisionPreflightMessageOptions,
512
+ VisionPreflightReason,
513
+ VisionPreflightWarning,
493
514
  } from "./attachment/index.js";
494
515
 
495
516
  // File Reference — workspace file-reference behavior hook and styled chip list
@@ -1868,6 +1889,7 @@ export type {
1868
1889
  WorkflowTaskListProps,
1869
1890
  WorkflowDetailViewProps,
1870
1891
  WorkflowExecutionViewerProps,
1892
+ WorkflowExecutionPanelMode,
1871
1893
  WorkflowExecutionHeaderProps,
1872
1894
  WorkflowExecutionPanelController,
1873
1895
  UseWorkflowExecutionPanelOptions,
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import { cn } from "@stigmer/theme";
4
+ import { SpinnerIcon } from "../internal/thread-card/glyphs.js";
4
5
 
5
6
  /** The visual weight of a {@link DecisionButton}. */
6
7
  export type DecisionVariant = "primary" | "ghost" | "danger";
@@ -106,23 +107,3 @@ export function DecisionButton({
106
107
  );
107
108
  }
108
109
 
109
- // ---------------------------------------------------------------------------
110
- // Inline SVG icon
111
- // ---------------------------------------------------------------------------
112
-
113
- function SpinnerIcon() {
114
- return (
115
- <svg
116
- width="10"
117
- height="10"
118
- viewBox="0 0 12 12"
119
- fill="none"
120
- stroke="currentColor"
121
- strokeWidth="1.5"
122
- className="stg:animate-spin"
123
- aria-hidden="true"
124
- >
125
- <path d="M6 1.5A4.5 4.5 0 1 1 1.5 6" strokeLinecap="round" />
126
- </svg>
127
- );
128
- }
@@ -0,0 +1,42 @@
1
+ import { cn } from "@stigmer/theme";
2
+
3
+ /**
4
+ * The SDK's canonical in-flight spinner: a three-quarter arc on a 16×16
5
+ * grid, colored by `currentColor` so the consumer's text token drives it
6
+ * (never hardcoded values — Dont-Do #3). Extracted from ~33 identical
7
+ * per-component copies (stigmer-cloud#270); new busy states import this
8
+ * instead of pasting another one.
9
+ *
10
+ * `size` is the rendered box; the glyph scales from the same viewBox, so
11
+ * every size renders the identical shape. Decorative by contract
12
+ * (`aria-hidden`) — pair it with visible or `sr-only` text when the busy
13
+ * state itself must be announced.
14
+ *
15
+ * The thread-card rows deliberately use a finer quarter-arc micro-glyph
16
+ * instead — see `internal/thread-card/glyphs.tsx`.
17
+ *
18
+ * @internal Not part of the public API.
19
+ */
20
+ export function SpinnerIcon({
21
+ size = 16,
22
+ className,
23
+ }: {
24
+ readonly size?: number;
25
+ readonly className?: string;
26
+ } = {}) {
27
+ return (
28
+ <svg
29
+ width={size}
30
+ height={size}
31
+ viewBox="0 0 16 16"
32
+ fill="none"
33
+ stroke="currentColor"
34
+ strokeWidth="2"
35
+ strokeLinecap="round"
36
+ className={cn("stg:animate-spin", className)}
37
+ aria-hidden="true"
38
+ >
39
+ <path d="M8 2a6 6 0 1 0 6 6" />
40
+ </svg>
41
+ );
42
+ }