@stigmer/react 3.40.1 → 3.41.1-dev.20261003094357.g39d6aa748646

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 (707) hide show
  1. package/README.md +2 -1
  2. package/access/ManageAccessButton.d.ts +1 -1
  3. package/access/ManageAccessButton.js +1 -1
  4. package/access/ManageAccessDialog.d.ts +1 -1
  5. package/access/ManageAccessDialog.js +2 -2
  6. package/access/ManageAccessDialog.js.map +1 -1
  7. package/access/types.d.ts +1 -1
  8. package/agent/AgentDetailView.d.ts.map +1 -1
  9. package/agent/AgentDetailView.js +2 -1
  10. package/agent/AgentDetailView.js.map +1 -1
  11. package/api-key/ApiKeyListPanel.d.ts.map +1 -1
  12. package/api-key/ApiKeyListPanel.js +2 -1
  13. package/api-key/ApiKeyListPanel.js.map +1 -1
  14. package/attachment/AttachmentImageLightbox.d.ts.map +1 -1
  15. package/attachment/AttachmentImageLightbox.js.map +1 -1
  16. package/billing/AutoRechargeCard.d.ts +3 -3
  17. package/billing/AutoRechargeCard.d.ts.map +1 -1
  18. package/billing/AutoRechargeCard.js +4 -4
  19. package/billing/AutoRechargeCard.js.map +1 -1
  20. package/billing/BillingSection.d.ts.map +1 -1
  21. package/billing/BillingSection.js +7 -6
  22. package/billing/BillingSection.js.map +1 -1
  23. package/billing/ChangePlanDialog.d.ts.map +1 -1
  24. package/billing/ChangePlanDialog.js +13 -1
  25. package/billing/ChangePlanDialog.js.map +1 -1
  26. package/billing/CreditLedgerTable.d.ts +3 -3
  27. package/billing/CreditLedgerTable.d.ts.map +1 -1
  28. package/billing/CreditLedgerTable.js +3 -3
  29. package/billing/CreditLedgerTable.js.map +1 -1
  30. package/billing/CreditPackGrid.d.ts +1 -1
  31. package/billing/CreditPackGrid.js +1 -1
  32. package/billing/PaymentMethodCard.d.ts +1 -1
  33. package/billing/PaymentMethodCard.js +1 -1
  34. package/billing/PlanSection.d.ts +3 -3
  35. package/billing/PlanSection.d.ts.map +1 -1
  36. package/billing/PlanSection.js +4 -3
  37. package/billing/PlanSection.js.map +1 -1
  38. package/billing/ProviderKeysSection.d.ts +33 -0
  39. package/billing/ProviderKeysSection.d.ts.map +1 -0
  40. package/billing/ProviderKeysSection.js +143 -0
  41. package/billing/ProviderKeysSection.js.map +1 -0
  42. package/billing/UpgradeNotice.d.ts.map +1 -1
  43. package/billing/UpgradeNotice.js +1 -0
  44. package/billing/UpgradeNotice.js.map +1 -1
  45. package/billing/index.d.ts +4 -0
  46. package/billing/index.d.ts.map +1 -1
  47. package/billing/index.js +2 -0
  48. package/billing/index.js.map +1 -1
  49. package/billing/plan-features.d.ts +3 -2
  50. package/billing/plan-features.d.ts.map +1 -1
  51. package/billing/plan-features.js +5 -4
  52. package/billing/plan-features.js.map +1 -1
  53. package/billing/useBillingAccount.d.ts +4 -4
  54. package/billing/useBillingAccount.d.ts.map +1 -1
  55. package/billing/useBillingAccount.js +7 -7
  56. package/billing/useBillingAccount.js.map +1 -1
  57. package/billing/useBillingUsageReport.d.ts +4 -4
  58. package/billing/useBillingUsageReport.d.ts.map +1 -1
  59. package/billing/useBillingUsageReport.js +7 -7
  60. package/billing/useBillingUsageReport.js.map +1 -1
  61. package/billing/useChangePlan.d.ts +2 -2
  62. package/billing/useChangePlan.d.ts.map +1 -1
  63. package/billing/useChangePlan.js +4 -4
  64. package/billing/useChangePlan.js.map +1 -1
  65. package/billing/useCreateBillingPortalSession.d.ts +2 -2
  66. package/billing/useCreateBillingPortalSession.d.ts.map +1 -1
  67. package/billing/useCreateBillingPortalSession.js +3 -3
  68. package/billing/useCreateBillingPortalSession.js.map +1 -1
  69. package/billing/useCreateCheckoutSession.d.ts +2 -2
  70. package/billing/useCreateCheckoutSession.d.ts.map +1 -1
  71. package/billing/useCreateCheckoutSession.js +2 -2
  72. package/billing/useCreateCheckoutSession.js.map +1 -1
  73. package/billing/useCreatePaymentMethodSetupSession.d.ts +1 -1
  74. package/billing/useCreatePaymentMethodSetupSession.d.ts.map +1 -1
  75. package/billing/useCreatePaymentMethodSetupSession.js +2 -2
  76. package/billing/useCreatePaymentMethodSetupSession.js.map +1 -1
  77. package/billing/useCreditLedger.d.ts +4 -4
  78. package/billing/useCreditLedger.d.ts.map +1 -1
  79. package/billing/useCreditLedger.js +7 -7
  80. package/billing/useCreditLedger.js.map +1 -1
  81. package/billing/useCustomerModelPricing.d.ts +4 -4
  82. package/billing/useCustomerModelPricing.d.ts.map +1 -1
  83. package/billing/useCustomerModelPricing.js +6 -6
  84. package/billing/useCustomerModelPricing.js.map +1 -1
  85. package/billing/useEntitlements.d.ts +2 -2
  86. package/billing/useEntitlements.d.ts.map +1 -1
  87. package/billing/useEntitlements.js +4 -4
  88. package/billing/useEntitlements.js.map +1 -1
  89. package/billing/usePeriodEstimate.d.ts +1 -1
  90. package/billing/usePeriodEstimate.d.ts.map +1 -1
  91. package/billing/usePeriodEstimate.js +3 -3
  92. package/billing/usePeriodEstimate.js.map +1 -1
  93. package/billing/useProviderKeys.d.ts +67 -0
  94. package/billing/useProviderKeys.d.ts.map +1 -0
  95. package/billing/useProviderKeys.js +61 -0
  96. package/billing/useProviderKeys.js.map +1 -0
  97. package/billing/useSetAutoRechargeConfig.d.ts +2 -2
  98. package/billing/useSetAutoRechargeConfig.d.ts.map +1 -1
  99. package/billing/useSetAutoRechargeConfig.js +2 -2
  100. package/billing/useSetAutoRechargeConfig.js.map +1 -1
  101. package/billing/useSubscription.d.ts +3 -3
  102. package/billing/useSubscription.d.ts.map +1 -1
  103. package/billing/useSubscription.js +7 -7
  104. package/billing/useSubscription.js.map +1 -1
  105. package/channel/AgentChannelsPanel.d.ts.map +1 -1
  106. package/channel/AgentChannelsPanel.js +11 -9
  107. package/channel/AgentChannelsPanel.js.map +1 -1
  108. package/channel/connect/ServingAppSection.js +1 -1
  109. package/channel/connect/ServingAppSection.js.map +1 -1
  110. package/channel-app/ChannelAppDetailPanel.d.ts +2 -2
  111. package/channel-app/ChannelAppDetailPanel.js +17 -10
  112. package/channel-app/ChannelAppDetailPanel.js.map +1 -1
  113. package/channel-app/ChannelAppListPanel.d.ts +2 -2
  114. package/channel-app/ChannelAppListPanel.d.ts.map +1 -1
  115. package/channel-app/ChannelAppListPanel.js +2 -1
  116. package/channel-app/ChannelAppListPanel.js.map +1 -1
  117. package/channel-app/CreateChannelAppForm.js +1 -1
  118. package/channel-app/CreateChannelAppForm.js.map +1 -1
  119. package/channel-app/copy.d.ts +3 -3
  120. package/channel-app/copy.js +3 -3
  121. package/channel-app/internal.d.ts +9 -0
  122. package/channel-app/internal.d.ts.map +1 -1
  123. package/channel-app/internal.js +9 -0
  124. package/channel-app/internal.js.map +1 -1
  125. package/channel-app/slackAppSetup.d.ts +3 -24
  126. package/channel-app/slackAppSetup.d.ts.map +1 -1
  127. package/channel-app/slackAppSetup.js +6 -3
  128. package/channel-app/slackAppSetup.js.map +1 -1
  129. package/channel-app/whatsappAppSetup.d.ts +3 -27
  130. package/channel-app/whatsappAppSetup.d.ts.map +1 -1
  131. package/channel-app/whatsappAppSetup.js +5 -2
  132. package/channel-app/whatsappAppSetup.js.map +1 -1
  133. package/composer/SessionComposer.d.ts.map +1 -1
  134. package/composer/SessionComposer.js +5 -9
  135. package/composer/SessionComposer.js.map +1 -1
  136. package/cursor-accounts/CursorAccountEditor.js +3 -3
  137. package/cursor-accounts/CursorAccountEditor.js.map +1 -1
  138. package/cursor-accounts/CursorAccountsConsole.js +3 -3
  139. package/cursor-accounts/CursorAccountsConsole.js.map +1 -1
  140. package/dashboard/OperationalDashboard.d.ts +1 -4
  141. package/dashboard/OperationalDashboard.d.ts.map +1 -1
  142. package/dashboard/OperationalDashboard.js +1 -3
  143. package/dashboard/OperationalDashboard.js.map +1 -1
  144. package/dashboard/useDashboardSummary.d.ts +1 -3
  145. package/dashboard/useDashboardSummary.d.ts.map +1 -1
  146. package/dashboard/useDashboardSummary.js +1 -1
  147. package/dashboard/useDashboardSummary.js.map +1 -1
  148. package/environment/EnvironmentListPanel.d.ts.map +1 -1
  149. package/environment/EnvironmentListPanel.js +2 -1
  150. package/environment/EnvironmentListPanel.js.map +1 -1
  151. package/environment/EnvironmentVariableEditor.d.ts.map +1 -1
  152. package/environment/EnvironmentVariableEditor.js +3 -2
  153. package/environment/EnvironmentVariableEditor.js.map +1 -1
  154. package/environment/index.d.ts +1 -1
  155. package/environment/index.d.ts.map +1 -1
  156. package/environment/index.js +1 -1
  157. package/environment/index.js.map +1 -1
  158. package/environment/systemEnvVars.d.ts +4 -63
  159. package/environment/systemEnvVars.d.ts.map +1 -1
  160. package/environment/systemEnvVars.js +21 -113
  161. package/environment/systemEnvVars.js.map +1 -1
  162. package/execution/ArtifactFileContent.d.ts.map +1 -1
  163. package/execution/ArtifactFileContent.js +2 -1
  164. package/execution/ArtifactFileContent.js.map +1 -1
  165. package/execution/McpToolDetail.d.ts.map +1 -1
  166. package/execution/McpToolDetail.js +2 -1
  167. package/execution/McpToolDetail.js.map +1 -1
  168. package/execution/RecalledMemoriesCard.js +1 -1
  169. package/execution/ResultView.d.ts.map +1 -1
  170. package/execution/ResultView.js +2 -1
  171. package/execution/ResultView.js.map +1 -1
  172. package/execution/TerminalSession.js +1 -1
  173. package/execution/TerminalSession.js.map +1 -1
  174. package/execution/ThreadSkeleton.d.ts.map +1 -1
  175. package/execution/ThreadSkeleton.js +2 -1
  176. package/execution/ThreadSkeleton.js.map +1 -1
  177. package/execution/file-path-resolver.d.ts.map +1 -1
  178. package/execution/file-path-resolver.js +3 -2
  179. package/execution/file-path-resolver.js.map +1 -1
  180. package/execution/sandbox-path-normalizer.d.ts +0 -11
  181. package/execution/sandbox-path-normalizer.d.ts.map +1 -1
  182. package/execution/sandbox-path-normalizer.js +2 -1
  183. package/execution/sandbox-path-normalizer.js.map +1 -1
  184. package/github/parseGitUrl.d.ts.map +1 -1
  185. package/github/parseGitUrl.js +16 -4
  186. package/github/parseGitUrl.js.map +1 -1
  187. package/iam-policy/GrantAccessForm.d.ts +3 -3
  188. package/iam-policy/GrantAccessForm.d.ts.map +1 -1
  189. package/iam-policy/GrantAccessForm.js +3 -3
  190. package/iam-policy/GrantAccessForm.js.map +1 -1
  191. package/iam-policy/OrgMembersPanel.d.ts +3 -3
  192. package/iam-policy/OrgMembersPanel.d.ts.map +1 -1
  193. package/iam-policy/OrgMembersPanel.js +5 -4
  194. package/iam-policy/OrgMembersPanel.js.map +1 -1
  195. package/iam-policy/PeopleWithAccess.d.ts +2 -2
  196. package/iam-policy/PeopleWithAccess.d.ts.map +1 -1
  197. package/iam-policy/PeopleWithAccess.js +2 -2
  198. package/iam-policy/PeopleWithAccess.js.map +1 -1
  199. package/iam-policy/PrincipalPicker.d.ts +2 -2
  200. package/iam-policy/PrincipalPicker.d.ts.map +1 -1
  201. package/iam-policy/PrincipalPicker.js +2 -2
  202. package/iam-policy/PrincipalPicker.js.map +1 -1
  203. package/iam-policy/SharePanel.d.ts +3 -3
  204. package/iam-policy/SharePanel.d.ts.map +1 -1
  205. package/iam-policy/SharePanel.js +3 -3
  206. package/iam-policy/SharePanel.js.map +1 -1
  207. package/iam-policy/useCheckPermission.d.ts +4 -1
  208. package/iam-policy/useCheckPermission.d.ts.map +1 -1
  209. package/iam-policy/useCheckPermission.js +4 -1
  210. package/iam-policy/useCheckPermission.js.map +1 -1
  211. package/iam-policy/useCreateIamPolicy.d.ts +1 -1
  212. package/iam-policy/useCreateIamPolicy.js +1 -1
  213. package/iam-policy/useDeleteIamPolicy.d.ts +1 -1
  214. package/iam-policy/useDeleteIamPolicy.js +1 -1
  215. package/iam-policy/useGrantableRoles.d.ts +1 -1
  216. package/iam-policy/useGrantableRoles.js +1 -1
  217. package/iam-policy/useGranteeCandidates.d.ts +3 -3
  218. package/iam-policy/useGranteeCandidates.d.ts.map +1 -1
  219. package/iam-policy/useGranteeCandidates.js +2 -2
  220. package/iam-policy/useGranteeCandidates.js.map +1 -1
  221. package/iam-policy/useOwnerAssignment.d.ts +2 -2
  222. package/iam-policy/useOwnerAssignment.d.ts.map +1 -1
  223. package/iam-policy/useOwnerAssignment.js +3 -3
  224. package/iam-policy/useOwnerAssignment.js.map +1 -1
  225. package/iam-policy/usePrincipalsCount.d.ts +4 -4
  226. package/iam-policy/usePrincipalsCount.d.ts.map +1 -1
  227. package/iam-policy/usePrincipalsCount.js +7 -7
  228. package/iam-policy/usePrincipalsCount.js.map +1 -1
  229. package/iam-policy/useResourceAccess.d.ts +1 -1
  230. package/iam-policy/useResourceAccess.js +1 -1
  231. package/iam-policy/useRevokeOrgAccess.d.ts +11 -9
  232. package/iam-policy/useRevokeOrgAccess.d.ts.map +1 -1
  233. package/iam-policy/useRevokeOrgAccess.js +6 -6
  234. package/iam-policy/useRevokeOrgAccess.js.map +1 -1
  235. package/identity-account/AccountPreferencesPanel.d.ts +6 -0
  236. package/identity-account/AccountPreferencesPanel.d.ts.map +1 -1
  237. package/identity-account/AccountPreferencesPanel.js +35 -3
  238. package/identity-account/AccountPreferencesPanel.js.map +1 -1
  239. package/identity-account/useAccountExecutionDefaults.d.ts +1 -1
  240. package/identity-account/useAccountExecutionDefaults.d.ts.map +1 -1
  241. package/identity-account/useAccountExecutionDefaults.js +2 -3
  242. package/identity-account/useAccountExecutionDefaults.js.map +1 -1
  243. package/identity-provider/IdentityProviderDetailPanel.js +4 -4
  244. package/identity-provider/IdentityProviderDetailPanel.js.map +1 -1
  245. package/identity-provider/IdentityProviderListPanel.d.ts.map +1 -1
  246. package/identity-provider/IdentityProviderListPanel.js +2 -1
  247. package/identity-provider/IdentityProviderListPanel.js.map +1 -1
  248. package/identity-provider/IdentityProviderWizard.js +1 -1
  249. package/identity-provider/IdentityProviderWizard.js.map +1 -1
  250. package/identity-provider/SsoLoginPrompt.js +2 -1
  251. package/identity-provider/SsoLoginPrompt.js.map +1 -1
  252. package/identity-provider/useIdentityProviderList.d.ts +2 -2
  253. package/identity-provider/useIdentityProviderList.js +2 -2
  254. package/index.d.ts +4 -4
  255. package/index.d.ts.map +1 -1
  256. package/index.js +4 -4
  257. package/index.js.map +1 -1
  258. package/inline-edit/InlineEditImage.d.ts +4 -0
  259. package/inline-edit/InlineEditImage.d.ts.map +1 -1
  260. package/inline-edit/InlineEditImage.js +12 -11
  261. package/inline-edit/InlineEditImage.js.map +1 -1
  262. package/inline-edit/InlineEditText.d.ts +4 -0
  263. package/inline-edit/InlineEditText.d.ts.map +1 -1
  264. package/inline-edit/InlineEditText.js +12 -11
  265. package/inline-edit/InlineEditText.js.map +1 -1
  266. package/inline-edit/InlineEditTextarea.d.ts +4 -0
  267. package/inline-edit/InlineEditTextarea.d.ts.map +1 -1
  268. package/inline-edit/InlineEditTextarea.js +11 -16
  269. package/inline-edit/InlineEditTextarea.js.map +1 -1
  270. package/inline-edit/useInlineDraft.d.ts +26 -0
  271. package/inline-edit/useInlineDraft.d.ts.map +1 -0
  272. package/inline-edit/useInlineDraft.js +61 -0
  273. package/inline-edit/useInlineDraft.js.map +1 -0
  274. package/internal/DialogShell.d.ts +21 -0
  275. package/internal/DialogShell.d.ts.map +1 -1
  276. package/internal/DialogShell.js +51 -4
  277. package/internal/DialogShell.js.map +1 -1
  278. package/internal/LoadingRegion.d.ts +35 -0
  279. package/internal/LoadingRegion.d.ts.map +1 -0
  280. package/internal/LoadingRegion.js +33 -0
  281. package/internal/LoadingRegion.js.map +1 -0
  282. package/internal/UnknownPublicAddressNotice.d.ts +20 -0
  283. package/internal/UnknownPublicAddressNotice.d.ts.map +1 -0
  284. package/internal/UnknownPublicAddressNotice.js +19 -0
  285. package/internal/UnknownPublicAddressNotice.js.map +1 -0
  286. package/internal/features.js +2 -2
  287. package/internal/features.js.map +1 -1
  288. package/internal/markdown-components.d.ts.map +1 -1
  289. package/internal/markdown-components.js +18 -4
  290. package/internal/markdown-components.js.map +1 -1
  291. package/internal/trim.d.ts +7 -0
  292. package/internal/trim.d.ts.map +1 -0
  293. package/internal/trim.js +12 -0
  294. package/internal/trim.js.map +1 -0
  295. package/invitation/InvitationManager.d.ts.map +1 -1
  296. package/invitation/InvitationManager.js +2 -1
  297. package/invitation/InvitationManager.js.map +1 -1
  298. package/invitation/InvitationRedemption.d.ts.map +1 -1
  299. package/invitation/InvitationRedemption.js +5 -4
  300. package/invitation/InvitationRedemption.js.map +1 -1
  301. package/invitation/useInvitationPreview.d.ts +1 -1
  302. package/invitation/useInvitationPreview.js +1 -1
  303. package/library/InstanceVisibilitySelector.d.ts +1 -1
  304. package/library/InstanceVisibilitySelector.d.ts.map +1 -1
  305. package/library/ResourceVisibilityControl.d.ts +6 -3
  306. package/library/ResourceVisibilityControl.d.ts.map +1 -1
  307. package/library/ResourceVisibilityControl.js +7 -4
  308. package/library/ResourceVisibilityControl.js.map +1 -1
  309. package/library/VisibilitySelector.d.ts +2 -2
  310. package/library/VisibilitySelector.d.ts.map +1 -1
  311. package/library/VisibilitySelector.js +1 -1
  312. package/licenses/LicenseDetail.d.ts.map +1 -1
  313. package/licenses/LicenseDetail.js +3 -3
  314. package/licenses/LicenseDetail.js.map +1 -1
  315. package/licenses/LicenseIssueForm.js +7 -7
  316. package/licenses/LicenseIssueForm.js.map +1 -1
  317. package/licenses/license-draft.d.ts +1 -1
  318. package/licenses/license-draft.d.ts.map +1 -1
  319. package/licenses/license-draft.js +3 -3
  320. package/licenses/license-draft.js.map +1 -1
  321. package/licenses/license-format.d.ts +7 -5
  322. package/licenses/license-format.d.ts.map +1 -1
  323. package/licenses/license-format.js +2 -4
  324. package/licenses/license-format.js.map +1 -1
  325. package/mcp-server/McpServerConnectDialog.js +4 -5
  326. package/mcp-server/McpServerConnectDialog.js.map +1 -1
  327. package/mcp-server/McpServerDetailView.d.ts.map +1 -1
  328. package/mcp-server/McpServerDetailView.js +5 -7
  329. package/mcp-server/McpServerDetailView.js.map +1 -1
  330. package/mcp-server/McpServerPicker.d.ts.map +1 -1
  331. package/mcp-server/McpServerPicker.js +2 -6
  332. package/mcp-server/McpServerPicker.js.map +1 -1
  333. package/mcp-server/McpToolSelector.js +1 -1
  334. package/mcp-server/McpToolSelector.js.map +1 -1
  335. package/mcp-server/useMcpServerConnect.d.ts +14 -25
  336. package/mcp-server/useMcpServerConnect.d.ts.map +1 -1
  337. package/mcp-server/useMcpServerConnect.js +7 -19
  338. package/mcp-server/useMcpServerConnect.js.map +1 -1
  339. package/mcp-server/useMcpServerOAuthConnect.d.ts +1 -3
  340. package/mcp-server/useMcpServerOAuthConnect.d.ts.map +1 -1
  341. package/mcp-server/useMcpServerOAuthConnect.js +6 -19
  342. package/mcp-server/useMcpServerOAuthConnect.js.map +1 -1
  343. package/memory/MemoryListPanel.d.ts.map +1 -1
  344. package/memory/MemoryListPanel.js +2 -1
  345. package/memory/MemoryListPanel.js.map +1 -1
  346. package/models/HarnessSelector.d.ts.map +1 -1
  347. package/models/HarnessSelector.js +1 -2
  348. package/models/HarnessSelector.js.map +1 -1
  349. package/models/ModelSelector.d.ts +1 -1
  350. package/models/ModelSelector.d.ts.map +1 -1
  351. package/models/ModelSelector.js +1 -7
  352. package/models/ModelSelector.js.map +1 -1
  353. package/models/harness.d.ts +10 -6
  354. package/models/harness.d.ts.map +1 -1
  355. package/models/harness.js +35 -28
  356. package/models/harness.js.map +1 -1
  357. package/models/index.d.ts +1 -1
  358. package/models/index.d.ts.map +1 -1
  359. package/models/index.js +1 -1
  360. package/models/index.js.map +1 -1
  361. package/oauth-app/OAuthAppListPanel.d.ts.map +1 -1
  362. package/oauth-app/OAuthAppListPanel.js +2 -1
  363. package/oauth-app/OAuthAppListPanel.js.map +1 -1
  364. package/organization/OrgPreferencesPanel.d.ts +3 -3
  365. package/organization/OrgPreferencesPanel.d.ts.map +1 -1
  366. package/organization/OrgPreferencesPanel.js +19 -6
  367. package/organization/OrgPreferencesPanel.js.map +1 -1
  368. package/organization/OrgProfilePanel.d.ts +3 -3
  369. package/organization/OrgProfilePanel.d.ts.map +1 -1
  370. package/organization/OrgProfilePanel.js +8 -7
  371. package/organization/OrgProfilePanel.js.map +1 -1
  372. package/organization/index.d.ts +1 -0
  373. package/organization/index.d.ts.map +1 -1
  374. package/organization/index.js +1 -0
  375. package/organization/index.js.map +1 -1
  376. package/organization/useFollowSessionOrganization.d.ts +9 -0
  377. package/organization/useFollowSessionOrganization.d.ts.map +1 -0
  378. package/organization/useFollowSessionOrganization.js +52 -0
  379. package/organization/useFollowSessionOrganization.js.map +1 -0
  380. package/package.json +5 -5
  381. package/plan-catalog/plan-draft.js +3 -3
  382. package/plan-catalog/plan-draft.js.map +1 -1
  383. package/platform-client/PlatformClientListPanel.d.ts.map +1 -1
  384. package/platform-client/PlatformClientListPanel.js +2 -1
  385. package/platform-client/PlatformClientListPanel.js.map +1 -1
  386. package/plugin/PluginDetailView.d.ts.map +1 -1
  387. package/plugin/PluginDetailView.js +2 -1
  388. package/plugin/PluginDetailView.js.map +1 -1
  389. package/plugin/useMcpServerReadiness.js +2 -2
  390. package/plugin/useMcpServerReadiness.js.map +1 -1
  391. package/portal-container.d.ts +8 -0
  392. package/portal-container.d.ts.map +1 -1
  393. package/portal-container.js +8 -0
  394. package/portal-container.js.map +1 -1
  395. package/provider-standing/ProviderStandingConsole.js +1 -1
  396. package/provider.d.ts +31 -2
  397. package/provider.d.ts.map +1 -1
  398. package/provider.js +7 -3
  399. package/provider.js.map +1 -1
  400. package/public-base-url-context.d.ts +35 -0
  401. package/public-base-url-context.d.ts.map +1 -0
  402. package/public-base-url-context.js +63 -0
  403. package/public-base-url-context.js.map +1 -0
  404. package/resource-workbench/components/SelectionCheckbox.js +1 -1
  405. package/resource-workbench/components/SelectionCheckbox.js.map +1 -1
  406. package/schedule/ScheduleDetailView.d.ts.map +1 -1
  407. package/schedule/ScheduleDetailView.js +2 -1
  408. package/schedule/ScheduleDetailView.js.map +1 -1
  409. package/session/SessionViewer.d.ts +7 -2
  410. package/session/SessionViewer.d.ts.map +1 -1
  411. package/session/SessionViewer.js +7 -2
  412. package/session/SessionViewer.js.map +1 -1
  413. package/session/useLocalSessionWorker.d.ts +19 -3
  414. package/session/useLocalSessionWorker.d.ts.map +1 -1
  415. package/session/useLocalSessionWorker.js +37 -4
  416. package/session/useLocalSessionWorker.js.map +1 -1
  417. package/session/useSessionConversation.d.ts +10 -1
  418. package/session/useSessionConversation.d.ts.map +1 -1
  419. package/session/useSessionConversation.js +5 -3
  420. package/session/useSessionConversation.js.map +1 -1
  421. package/settings/ChannelAppsSection.d.ts +4 -4
  422. package/settings/ChannelAppsSection.js +4 -4
  423. package/settings/EnvironmentsSection.d.ts.map +1 -1
  424. package/settings/EnvironmentsSection.js +2 -1
  425. package/settings/EnvironmentsSection.js.map +1 -1
  426. package/settings/MembersSection.js +2 -2
  427. package/settings/MembersSection.js.map +1 -1
  428. package/settings/OrgPreferencesSection.js +1 -1
  429. package/settings/OrgPreferencesSection.js.map +1 -1
  430. package/settings/OrgProfileSection.js +1 -1
  431. package/settings/OrgProfileSection.js.map +1 -1
  432. package/settings/ProviderKeysSection.d.ts +3 -0
  433. package/settings/ProviderKeysSection.d.ts.map +1 -0
  434. package/settings/ProviderKeysSection.js +3 -0
  435. package/settings/ProviderKeysSection.js.map +1 -0
  436. package/settings/TeamsSection.js +1 -1
  437. package/settings/TeamsSection.js.map +1 -1
  438. package/settings/UsageSection.js +1 -1
  439. package/settings/UsageSection.js.map +1 -1
  440. package/settings/index.d.ts +2 -0
  441. package/settings/index.d.ts.map +1 -1
  442. package/settings/index.js +1 -0
  443. package/settings/index.js.map +1 -1
  444. package/settings/settings-nav.d.ts.map +1 -1
  445. package/settings/settings-nav.js +2 -1
  446. package/settings/settings-nav.js.map +1 -1
  447. package/sharing/ShareAgentDialog.d.ts.map +1 -1
  448. package/sharing/ShareAgentDialog.js +14 -9
  449. package/sharing/ShareAgentDialog.js.map +1 -1
  450. package/sharing/SharedAgentChat.d.ts.map +1 -1
  451. package/sharing/SharedAgentChat.js +2 -1
  452. package/sharing/SharedAgentChat.js.map +1 -1
  453. package/sharing/useCanCreateAgentShare.d.ts +3 -1
  454. package/sharing/useCanCreateAgentShare.d.ts.map +1 -1
  455. package/sharing/useCanCreateAgentShare.js +5 -3
  456. package/sharing/useCanCreateAgentShare.js.map +1 -1
  457. package/sharing/useSaveAgentShare.d.ts +1 -1
  458. package/sharing/useSaveAgentShare.js +1 -1
  459. package/sidebar/WorkspaceSidebar.d.ts.map +1 -1
  460. package/sidebar/WorkspaceSidebar.js +2 -1
  461. package/sidebar/WorkspaceSidebar.js.map +1 -1
  462. package/skill/SkillDetailView.d.ts.map +1 -1
  463. package/skill/SkillDetailView.js +2 -1
  464. package/skill/SkillDetailView.js.map +1 -1
  465. package/skill/SkillDiffDialog.d.ts.map +1 -1
  466. package/skill/SkillDiffDialog.js +2 -1
  467. package/skill/SkillDiffDialog.js.map +1 -1
  468. package/skill/SkillFileBrowser.d.ts.map +1 -1
  469. package/skill/SkillFileBrowser.js +2 -1
  470. package/skill/SkillFileBrowser.js.map +1 -1
  471. package/src/access/ManageAccessButton.tsx +1 -1
  472. package/src/access/ManageAccessDialog.tsx +2 -2
  473. package/src/access/types.ts +1 -1
  474. package/src/agent/AgentDetailView.tsx +4 -4
  475. package/src/api-key/ApiKeyListPanel.tsx +4 -4
  476. package/src/attachment/AttachmentImageLightbox.tsx +3 -4
  477. package/src/billing/AutoRechargeCard.tsx +5 -5
  478. package/src/billing/BillingSection.tsx +10 -9
  479. package/src/billing/ChangePlanDialog.tsx +14 -2
  480. package/src/billing/CreditLedgerTable.tsx +4 -4
  481. package/src/billing/CreditPackGrid.tsx +1 -1
  482. package/src/billing/PaymentMethodCard.tsx +1 -1
  483. package/src/billing/PlanSection.tsx +6 -5
  484. package/src/billing/ProviderKeysSection.tsx +324 -0
  485. package/src/billing/UpgradeNotice.tsx +1 -0
  486. package/src/billing/index.ts +9 -0
  487. package/src/billing/plan-features.ts +5 -4
  488. package/src/billing/useBillingAccount.ts +7 -7
  489. package/src/billing/useBillingUsageReport.ts +7 -7
  490. package/src/billing/useChangePlan.ts +6 -6
  491. package/src/billing/useCreateBillingPortalSession.ts +4 -4
  492. package/src/billing/useCreateCheckoutSession.ts +3 -3
  493. package/src/billing/useCreatePaymentMethodSetupSession.ts +3 -3
  494. package/src/billing/useCreditLedger.ts +7 -7
  495. package/src/billing/useCustomerModelPricing.ts +7 -7
  496. package/src/billing/useEntitlements.ts +5 -5
  497. package/src/billing/usePeriodEstimate.ts +4 -4
  498. package/src/billing/useProviderKeys.ts +129 -0
  499. package/src/billing/useSetAutoRechargeConfig.ts +3 -3
  500. package/src/billing/useSubscription.ts +7 -7
  501. package/src/channel/AgentChannelsPanel.tsx +11 -9
  502. package/src/channel/connect/ServingAppSection.tsx +1 -1
  503. package/src/channel-app/ChannelAppDetailPanel.tsx +37 -20
  504. package/src/channel-app/ChannelAppListPanel.tsx +6 -6
  505. package/src/channel-app/CreateChannelAppForm.tsx +0 -1
  506. package/src/channel-app/copy.ts +3 -3
  507. package/src/channel-app/internal.tsx +21 -0
  508. package/src/channel-app/slackAppSetup.ts +6 -3
  509. package/src/channel-app/whatsappAppSetup.ts +5 -2
  510. package/src/composer/SessionComposer.tsx +5 -14
  511. package/src/cursor-accounts/CursorAccountEditor.tsx +3 -3
  512. package/src/cursor-accounts/CursorAccountsConsole.tsx +5 -5
  513. package/src/dashboard/OperationalDashboard.tsx +1 -6
  514. package/src/dashboard/useDashboardSummary.ts +2 -4
  515. package/src/environment/EnvironmentListPanel.tsx +4 -4
  516. package/src/environment/EnvironmentVariableEditor.tsx +5 -5
  517. package/src/environment/index.ts +1 -7
  518. package/src/environment/systemEnvVars.ts +21 -133
  519. package/src/execution/ArtifactFileContent.tsx +3 -2
  520. package/src/execution/McpToolDetail.tsx +3 -3
  521. package/src/execution/RecalledMemoriesCard.tsx +1 -1
  522. package/src/execution/ResultView.tsx +3 -3
  523. package/src/execution/TerminalSession.tsx +1 -1
  524. package/src/execution/ThreadSkeleton.tsx +4 -4
  525. package/src/execution/file-path-resolver.ts +3 -2
  526. package/src/execution/sandbox-path-normalizer.ts +2 -1
  527. package/src/github/parseGitUrl.ts +13 -4
  528. package/src/iam-policy/GrantAccessForm.tsx +4 -4
  529. package/src/iam-policy/OrgMembersPanel.tsx +10 -8
  530. package/src/iam-policy/PeopleWithAccess.tsx +3 -3
  531. package/src/iam-policy/PrincipalPicker.tsx +3 -3
  532. package/src/iam-policy/SharePanel.tsx +4 -4
  533. package/src/iam-policy/useCheckPermission.ts +4 -1
  534. package/src/iam-policy/useCreateIamPolicy.ts +1 -1
  535. package/src/iam-policy/useDeleteIamPolicy.ts +1 -1
  536. package/src/iam-policy/useGrantableRoles.ts +1 -1
  537. package/src/iam-policy/useGranteeCandidates.ts +3 -3
  538. package/src/iam-policy/useOwnerAssignment.ts +3 -3
  539. package/src/iam-policy/usePrincipalsCount.ts +7 -7
  540. package/src/iam-policy/useResourceAccess.ts +1 -1
  541. package/src/iam-policy/useRevokeOrgAccess.ts +13 -11
  542. package/src/identity-account/AccountPreferencesPanel.tsx +60 -13
  543. package/src/identity-account/useAccountExecutionDefaults.ts +2 -5
  544. package/src/identity-provider/IdentityProviderDetailPanel.tsx +3 -9
  545. package/src/identity-provider/IdentityProviderListPanel.tsx +4 -4
  546. package/src/identity-provider/IdentityProviderWizard.tsx +1 -1
  547. package/src/identity-provider/SsoLoginPrompt.tsx +6 -5
  548. package/src/identity-provider/useIdentityProviderList.ts +2 -2
  549. package/src/index.ts +10 -5
  550. package/src/inline-edit/InlineEditImage.tsx +13 -11
  551. package/src/inline-edit/InlineEditText.tsx +13 -11
  552. package/src/inline-edit/InlineEditTextarea.tsx +12 -16
  553. package/src/inline-edit/useInlineDraft.ts +85 -0
  554. package/src/internal/DialogShell.tsx +80 -3
  555. package/src/internal/LoadingRegion.tsx +46 -0
  556. package/src/internal/UnknownPublicAddressNotice.tsx +31 -0
  557. package/src/internal/features.ts +2 -2
  558. package/src/internal/loading-region-markup.json +71 -0
  559. package/src/internal/markdown-components.tsx +15 -4
  560. package/src/internal/trim.ts +10 -0
  561. package/src/invitation/InvitationManager.tsx +4 -4
  562. package/src/invitation/InvitationRedemption.tsx +7 -7
  563. package/src/invitation/useInvitationPreview.ts +1 -1
  564. package/src/library/InstanceVisibilitySelector.tsx +1 -1
  565. package/src/library/ResourceVisibilityControl.tsx +7 -4
  566. package/src/library/VisibilitySelector.tsx +2 -2
  567. package/src/licenses/LicenseDetail.tsx +8 -6
  568. package/src/licenses/LicenseIssueForm.tsx +7 -7
  569. package/src/licenses/license-draft.ts +4 -4
  570. package/src/licenses/license-format.ts +12 -8
  571. package/src/mcp-server/McpServerConnectDialog.tsx +4 -6
  572. package/src/mcp-server/McpServerDetailView.tsx +7 -10
  573. package/src/mcp-server/McpServerPicker.tsx +2 -12
  574. package/src/mcp-server/McpToolSelector.tsx +1 -1
  575. package/src/mcp-server/useMcpServerConnect.ts +14 -33
  576. package/src/mcp-server/useMcpServerOAuthConnect.ts +7 -23
  577. package/src/memory/MemoryListPanel.tsx +4 -4
  578. package/src/models/HarnessSelector.tsx +1 -3
  579. package/src/models/ModelSelector.tsx +2 -7
  580. package/src/models/harness.ts +41 -39
  581. package/src/models/index.ts +1 -1
  582. package/src/oauth-app/OAuthAppListPanel.tsx +4 -4
  583. package/src/organization/OrgPreferencesPanel.tsx +28 -10
  584. package/src/organization/OrgProfilePanel.tsx +12 -12
  585. package/src/organization/index.ts +1 -0
  586. package/src/organization/useFollowSessionOrganization.ts +54 -0
  587. package/src/plan-catalog/plan-draft.ts +3 -3
  588. package/src/platform-client/PlatformClientListPanel.tsx +4 -4
  589. package/src/plugin/PluginDetailView.tsx +3 -2
  590. package/src/plugin/useMcpServerReadiness.ts +2 -2
  591. package/src/portal-container.ts +8 -0
  592. package/src/provider-standing/ProviderStandingConsole.tsx +1 -1
  593. package/src/provider.tsx +60 -27
  594. package/src/public-base-url-context.ts +71 -0
  595. package/src/resource-workbench/components/SelectionCheckbox.tsx +1 -1
  596. package/src/schedule/ScheduleDetailView.tsx +4 -4
  597. package/src/session/SessionViewer.tsx +13 -3
  598. package/src/session/useLocalSessionWorker.ts +35 -4
  599. package/src/session/useSessionConversation.ts +14 -3
  600. package/src/settings/ChannelAppsSection.tsx +4 -4
  601. package/src/settings/EnvironmentsSection.tsx +3 -2
  602. package/src/settings/MembersSection.tsx +3 -3
  603. package/src/settings/OrgPreferencesSection.tsx +1 -1
  604. package/src/settings/OrgProfileSection.tsx +1 -1
  605. package/src/settings/ProviderKeysSection.tsx +4 -0
  606. package/src/settings/TeamsSection.tsx +1 -1
  607. package/src/settings/UsageSection.tsx +1 -1
  608. package/src/settings/index.ts +2 -0
  609. package/src/settings/settings-nav.ts +2 -0
  610. package/src/sharing/ShareAgentDialog.tsx +32 -15
  611. package/src/sharing/SharedAgentChat.tsx +4 -4
  612. package/src/sharing/useCanCreateAgentShare.ts +6 -4
  613. package/src/sharing/useSaveAgentShare.ts +1 -1
  614. package/src/sidebar/WorkspaceSidebar.tsx +3 -2
  615. package/src/skill/SkillDetailView.tsx +4 -4
  616. package/src/skill/SkillDiffDialog.tsx +4 -4
  617. package/src/skill/SkillFileBrowser.tsx +4 -4
  618. package/src/styles.css +14 -4
  619. package/src/team/TeamDetailPanel.tsx +3 -3
  620. package/src/team/TeamListPanel.tsx +3 -2
  621. package/src/team/TeamMembersPanel.tsx +3 -3
  622. package/src/usage/OrgUsagePanel.tsx +9 -9
  623. package/src/usage/useExportCSV.ts +9 -9
  624. package/src/usage/useOrgUsageReport.ts +7 -7
  625. package/src/version-history/VersionTimeline.tsx +4 -4
  626. package/src/workflow/WorkflowTaskApprovalSummary.tsx +14 -7
  627. package/src/workflow/WorkflowVersionDiffViewer.tsx +4 -4
  628. package/src/workflow/WorkflowVersionTimeline.tsx +4 -4
  629. package/src/workflow/inspector/tabs/BranchesTab.tsx +2 -2
  630. package/src/workflow/inspector/tabs/CatchTab.tsx +1 -1
  631. package/src/workflow/inspector/tabs/IterationTab.tsx +1 -1
  632. package/src/workflow/instance/WorkflowInstanceDetailPanel.tsx +7 -6
  633. package/src/workflow/task-detail/task-approval.ts +20 -13
  634. package/src/workflow/useDiagnoseExecutionFlow.ts +23 -18
  635. package/src/workflow/useExplainWorkflowFlow.ts +7 -3
  636. package/src/workflow/useRefineWorkflowFlow.ts +17 -10
  637. package/src/workflow/useWorkflowArchitectFlow.ts +7 -3
  638. package/src/workspace/ExplorerTree.tsx +4 -8
  639. package/src/workspace/FileViewer.tsx +4 -5
  640. package/styles.css +1 -1
  641. package/team/TeamDetailPanel.d.ts +2 -2
  642. package/team/TeamDetailPanel.d.ts.map +1 -1
  643. package/team/TeamDetailPanel.js +2 -2
  644. package/team/TeamDetailPanel.js.map +1 -1
  645. package/team/TeamListPanel.d.ts.map +1 -1
  646. package/team/TeamListPanel.js +2 -1
  647. package/team/TeamListPanel.js.map +1 -1
  648. package/team/TeamMembersPanel.d.ts +2 -2
  649. package/team/TeamMembersPanel.d.ts.map +1 -1
  650. package/team/TeamMembersPanel.js +2 -2
  651. package/team/TeamMembersPanel.js.map +1 -1
  652. package/usage/OrgUsagePanel.d.ts +3 -3
  653. package/usage/OrgUsagePanel.d.ts.map +1 -1
  654. package/usage/OrgUsagePanel.js +6 -5
  655. package/usage/OrgUsagePanel.js.map +1 -1
  656. package/usage/useExportCSV.d.ts +2 -2
  657. package/usage/useExportCSV.d.ts.map +1 -1
  658. package/usage/useExportCSV.js +9 -9
  659. package/usage/useExportCSV.js.map +1 -1
  660. package/usage/useOrgUsageReport.d.ts +4 -4
  661. package/usage/useOrgUsageReport.d.ts.map +1 -1
  662. package/usage/useOrgUsageReport.js +7 -7
  663. package/usage/useOrgUsageReport.js.map +1 -1
  664. package/version-history/VersionTimeline.d.ts.map +1 -1
  665. package/version-history/VersionTimeline.js +2 -1
  666. package/version-history/VersionTimeline.js.map +1 -1
  667. package/workflow/WorkflowTaskApprovalSummary.d.ts +7 -4
  668. package/workflow/WorkflowTaskApprovalSummary.d.ts.map +1 -1
  669. package/workflow/WorkflowTaskApprovalSummary.js +8 -3
  670. package/workflow/WorkflowTaskApprovalSummary.js.map +1 -1
  671. package/workflow/WorkflowVersionDiffViewer.d.ts.map +1 -1
  672. package/workflow/WorkflowVersionDiffViewer.js +2 -1
  673. package/workflow/WorkflowVersionDiffViewer.js.map +1 -1
  674. package/workflow/WorkflowVersionTimeline.d.ts.map +1 -1
  675. package/workflow/WorkflowVersionTimeline.js +2 -1
  676. package/workflow/WorkflowVersionTimeline.js.map +1 -1
  677. package/workflow/inspector/tabs/BranchesTab.js +1 -1
  678. package/workflow/inspector/tabs/BranchesTab.js.map +1 -1
  679. package/workflow/inspector/tabs/CatchTab.js +1 -1
  680. package/workflow/inspector/tabs/CatchTab.js.map +1 -1
  681. package/workflow/inspector/tabs/IterationTab.js +1 -1
  682. package/workflow/inspector/tabs/IterationTab.js.map +1 -1
  683. package/workflow/instance/WorkflowInstanceDetailPanel.d.ts.map +1 -1
  684. package/workflow/instance/WorkflowInstanceDetailPanel.js +6 -5
  685. package/workflow/instance/WorkflowInstanceDetailPanel.js.map +1 -1
  686. package/workflow/task-detail/task-approval.d.ts +13 -11
  687. package/workflow/task-detail/task-approval.d.ts.map +1 -1
  688. package/workflow/task-detail/task-approval.js +8 -4
  689. package/workflow/task-detail/task-approval.js.map +1 -1
  690. package/workflow/useDiagnoseExecutionFlow.d.ts.map +1 -1
  691. package/workflow/useDiagnoseExecutionFlow.js +23 -18
  692. package/workflow/useDiagnoseExecutionFlow.js.map +1 -1
  693. package/workflow/useExplainWorkflowFlow.d.ts.map +1 -1
  694. package/workflow/useExplainWorkflowFlow.js +7 -3
  695. package/workflow/useExplainWorkflowFlow.js.map +1 -1
  696. package/workflow/useRefineWorkflowFlow.d.ts.map +1 -1
  697. package/workflow/useRefineWorkflowFlow.js +14 -10
  698. package/workflow/useRefineWorkflowFlow.js.map +1 -1
  699. package/workflow/useWorkflowArchitectFlow.d.ts.map +1 -1
  700. package/workflow/useWorkflowArchitectFlow.js +7 -3
  701. package/workflow/useWorkflowArchitectFlow.js.map +1 -1
  702. package/workspace/ExplorerTree.d.ts.map +1 -1
  703. package/workspace/ExplorerTree.js +2 -5
  704. package/workspace/ExplorerTree.js.map +1 -1
  705. package/workspace/FileViewer.d.ts.map +1 -1
  706. package/workspace/FileViewer.js +2 -1
  707. package/workspace/FileViewer.js.map +1 -1
@@ -7,6 +7,7 @@ import { NewSessionViewer } from "../session/NewSessionViewer.js";
7
7
  import { SessionViewer } from "../session/SessionViewer.js";
8
8
  import { useSharedAgentProfile } from "./useSharedAgentProfile.js";
9
9
  import type { SharingAudience } from "./useSaveAgentShare.js";
10
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
10
11
 
11
12
  // ---------------------------------------------------------------------------
12
13
  // Public API
@@ -123,13 +124,12 @@ export function SharedAgentChat({
123
124
 
124
125
  if (isLoading) {
125
126
  return (
126
- <div
127
+ <LoadingRegion
127
128
  className={cn("stg:flex stg:h-full stg:w-full stg:items-center stg:justify-center", className)}
128
- aria-busy="true"
129
- aria-label="Loading agent"
129
+ label="Loading agent"
130
130
  >
131
131
  <LoadingSkeleton />
132
- </div>
132
+ </LoadingRegion>
133
133
  );
134
134
  }
135
135
 
@@ -18,7 +18,9 @@ export interface UseCanCreateAgentShareReturn {
18
18
  * installed copy), and creating one asks two questions of that
19
19
  * organization, both of which the create handler enforces:
20
20
  *
21
- * - `can_edit` on the agent — the share is a channel to this agent.
21
+ * - `can_manage_audience` on the agent — a share puts the agent in front of a
22
+ * wider audience, so it is the owner's decision; an editor, who may change
23
+ * the definition, may not publish it.
22
24
  * - `can_create_agent_share` on the organization (admin by default) — a
23
25
  * share spends the organization's credits with anyone on the internet,
24
26
  * so it is an admin-level decision. The org check uses the org slug as
@@ -46,14 +48,14 @@ export function useCanCreateAgentShare(
46
48
  const agentId = agent?.metadata?.id ?? "";
47
49
  const agentOrg = agent?.metadata?.org ?? "";
48
50
 
49
- const { allowed: canEditAgent } = useCheckPermission(
51
+ const { allowed: canPublishAgent } = useCheckPermission(
50
52
  agentId ? { kind: "agent", id: agentId } : null,
51
- "can_edit",
53
+ "can_manage_audience",
52
54
  );
53
55
  const { allowed: canCreateInOrg } = useCheckPermission(
54
56
  agentOrg ? { kind: "organization", id: agentOrg } : null,
55
57
  "can_create_agent_share",
56
58
  );
57
59
 
58
- return { allowed: !!agent && canEditAgent && canCreateInOrg };
60
+ return { allowed: !!agent && canPublishAgent && canCreateInOrg };
59
61
  }
@@ -162,7 +162,7 @@ export interface UseSaveAgentShareReturn {
162
162
  *
163
163
  * Commits via `stigmer.agentShare.apply()` — an idempotent upsert keyed
164
164
  * on the share's `(org, slug)` identity — so one code path serves both
165
- * creation (the server authorizes on the referenced agent's `can_edit`
165
+ * creation (the server authorizes on the referenced agent's `can_manage_audience`
166
166
  * and the organization's `can_create_agent_share`) and every later
167
167
  * edit. There is deliberately no create/update
168
168
  * branching: the share slug is unique per org, which makes
@@ -31,6 +31,7 @@ import {
31
31
  sectionLabelClassName,
32
32
  } from "./chrome.js";
33
33
  import type { RenderSidebarLink } from "./types.js";
34
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
34
35
 
35
36
  // ---------------------------------------------------------------------------
36
37
  // Public API
@@ -433,7 +434,7 @@ function cnActivityRow(active: boolean): string {
433
434
 
434
435
  function RecentsSkeletons() {
435
436
  return (
436
- <div className="stg:space-y-2 stg:px-2" aria-busy="true" aria-label="Loading sessions">
437
+ <LoadingRegion className="stg:space-y-2 stg:px-2" label="Loading sessions">
437
438
  {Array.from({ length: 5 }, (_, i) => (
438
439
  <div
439
440
  key={i}
@@ -441,7 +442,7 @@ function RecentsSkeletons() {
441
442
  style={{ width: `${70 + Math.sin(i * 1.5) * 20}%` }}
442
443
  />
443
444
  ))}
444
- </div>
445
+ </LoadingRegion>
445
446
  );
446
447
  }
447
448
 
@@ -28,6 +28,7 @@ import { VersionTimeline } from "../version-history/VersionTimeline.js";
28
28
  import { SkillDiffDialog, type SkillDiffDialogState } from "./SkillDiffDialog.js";
29
29
  import { ManagedByPluginNotice } from "../plugin/ManagedByPluginNotice.js";
30
30
  import { useManagingPlugin } from "../plugin/useManagingPlugin.js";
31
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
31
32
 
32
33
  const CONTENT_TAB: TabItem = { id: "content", label: "Content" };
33
34
  const VERSIONS_TAB: TabItem = { id: "versions", label: "Versions" };
@@ -650,10 +651,9 @@ function SkillSection({
650
651
 
651
652
  function LoadingSkeleton({ className }: { readonly className?: string }) {
652
653
  return (
653
- <div
654
+ <LoadingRegion
654
655
  className={cn("stg:flex stg:flex-col stg:gap-6", className)}
655
- aria-busy="true"
656
- aria-label="Loading skill details"
656
+ label="Loading skill details"
657
657
  >
658
658
  <div className="stg:flex stg:items-start stg:gap-3">
659
659
  <div className="stg:mt-1 stg:size-6 stg:shrink-0 stg:animate-pulse stg:rounded stg:bg-muted" />
@@ -677,7 +677,7 @@ function LoadingSkeleton({ className }: { readonly className?: string }) {
677
677
  style={{ height: "64px" }}
678
678
  />
679
679
  </div>
680
- </div>
680
+ </LoadingRegion>
681
681
  );
682
682
  }
683
683
 
@@ -6,6 +6,7 @@ import { DialogShell } from "../internal/DialogShell.js";
6
6
  import { useSkillDiff } from "./useSkillDiff.js";
7
7
  import { MultiFileDiffView } from "../version-history/MultiFileDiffView.js";
8
8
  import { ErrorMessage } from "../error/ErrorMessage.js";
9
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
9
10
 
10
11
  // ---------------------------------------------------------------------------
11
12
  // Public types
@@ -129,10 +130,9 @@ export function SkillDiffDialog({ state, onClose }: SkillDiffDialogProps) {
129
130
 
130
131
  function DiffSkeleton() {
131
132
  return (
132
- <div
133
+ <LoadingRegion
133
134
  className="stg:flex stg:flex-col stg:gap-4"
134
- aria-busy="true"
135
- aria-label="Loading diff"
135
+ label="Loading diff"
136
136
  >
137
137
  <div className="stg:flex stg:items-center stg:gap-2">
138
138
  <div className="stg:h-4 stg:w-36 stg:animate-pulse stg:rounded stg:bg-muted" />
@@ -147,7 +147,7 @@ function DiffSkeleton() {
147
147
  <div className="stg:h-4 stg:flex-1 stg:animate-pulse stg:rounded stg:bg-muted" />
148
148
  </div>
149
149
  ))}
150
- </div>
150
+ </LoadingRegion>
151
151
  );
152
152
  }
153
153
 
@@ -7,6 +7,7 @@ import { UNSTYLED_LIST } from "../internal/element-resets.js";
7
7
  import { MARKDOWN_COMPONENTS, REMARK_PLUGINS, stripFrontmatter } from "../internal/markdown-components.js";
8
8
  import { buildFileTree, FileTreeNode } from "../internal/file-tree/index.js";
9
9
  import { useSkillArtifact } from "./useSkillArtifact.js";
10
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
10
11
 
11
12
  // ---------------------------------------------------------------------------
12
13
  // Public types
@@ -79,10 +80,9 @@ export function SkillFileBrowser({
79
80
 
80
81
  if (isLoading) {
81
82
  return (
82
- <div
83
+ <LoadingRegion
83
84
  className={cn("stg:rounded-lg stg:border stg:border-border", className)}
84
- aria-busy="true"
85
- aria-label="Loading skill package files"
85
+ label="Loading skill package files"
86
86
  >
87
87
  <div className="stg:p-4">
88
88
  <div className="stg:h-3 stg:w-32 stg:animate-pulse stg:rounded stg:bg-muted" />
@@ -101,7 +101,7 @@ export function SkillFileBrowser({
101
101
  </div>
102
102
  </div>
103
103
  </div>
104
- </div>
104
+ </LoadingRegion>
105
105
  );
106
106
  }
107
107
 
package/src/styles.css CHANGED
@@ -28,10 +28,11 @@
28
28
  self-referential `--stgm-font-sans: var(--stgm-font-sans)` cycle through
29
29
  the `@theme inline` block below).
30
30
 
31
- The `stg:` prefix contract is enforced by `scripts/check-prefixed-classnames`
32
- (unprefixed utilities in source fail the suite) and by the dist isolation
33
- invariant test (unscoped selectors in the built stylesheet fail the suite).
34
- The one-shot migration lives in `scripts/prefix-classnames.ts`. */
31
+ The `stg:` prefix contract is enforced by `scripts/prefix-classnames.ts
32
+ --check` (`npm run lint:prefix`: an unprefixed utility, or a prefix placed
33
+ after a variant, fails the lint) and by the dist isolation invariant test
34
+ (unscoped selectors in the built stylesheet fail the suite). The same
35
+ script, without `--check`, is the one-shot migration. */
35
36
  @import "tailwindcss/theme.css" layer(stgm) prefix(stg);
36
37
  @import "tailwindcss/utilities.css" layer(stgm) prefix(stg);
37
38
  /* Enter/exit animation utilities (`stg:animate-in`, `stg:fade-in`,
@@ -294,6 +295,15 @@
294
295
  color-scheme: dark;
295
296
  }
296
297
 
298
+ /* The same holds for a checkbox's or radio's checked state: the browser
299
+ paints it from `accent-color` (its own blue by default), never from our
300
+ tokens (#1228). One inherited rule on both containers gives every native
301
+ control inside the scope the theme's primary, in both modes and every
302
+ preset, so no control needs its own accent class. */
303
+ .stgm {
304
+ accent-color: var(--stgm-primary);
305
+ }
306
+
297
307
  /* The provider's in-tree container ([data-stgm-root]) ships with NO
298
308
  layout styling — deliberately (#260, DD-019). A default
299
309
  `height: 100%` looks benign ("resolves to auto under auto-height
@@ -30,7 +30,7 @@ import { useDeleteTeam, useUpdateTeam } from "./useTeamMutations.js";
30
30
  export interface TeamDetailPanelProps {
31
31
  readonly team: Team;
32
32
  /** The organization's id (`metadata.id`), whose members can be added. */
33
- readonly orgId: string;
33
+ readonly org: string;
34
34
  /** Fired with the saved team after an edit. */
35
35
  readonly onUpdated?: (team: Team) => void;
36
36
  /** Fired after the team is deleted. */
@@ -47,7 +47,7 @@ export interface TeamDetailPanelProps {
47
47
  */
48
48
  export function TeamDetailPanel({
49
49
  team,
50
- orgId,
50
+ org,
51
51
  onUpdated,
52
52
  onDeleted,
53
53
  onBack,
@@ -112,7 +112,7 @@ export function TeamDetailPanel({
112
112
  )}
113
113
 
114
114
  <section aria-label="Members">
115
- <TeamMembersPanel teamId={teamId} orgId={orgId} />
115
+ <TeamMembersPanel teamId={teamId} org={org} />
116
116
  </section>
117
117
 
118
118
  <PermissionGate resource={gate} relation="can_delete">
@@ -15,6 +15,7 @@ import { ChevronRight, UsersRound } from "lucide-react";
15
15
  import { cn } from "@stigmer/theme";
16
16
  import { getUserMessage } from "@stigmer/sdk";
17
17
  import { UNSTYLED_LIST } from "../internal/element-resets.js";
18
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
18
19
 
19
20
  /** Props for {@link TeamListPanel}. */
20
21
  export interface TeamListPanelProps {
@@ -47,11 +48,11 @@ export function TeamListPanel({
47
48
  }: TeamListPanelProps) {
48
49
  if (isLoading) {
49
50
  return (
50
- <div className={cn("stg:space-y-2", className)} aria-busy="true" aria-label="Loading teams">
51
+ <LoadingRegion className={cn("stg:space-y-2", className)} label="Loading teams">
51
52
  {Array.from({ length: 2 }, (_, i) => (
52
53
  <div key={i} className="stg:bg-muted-subtle stg:h-14 stg:animate-pulse stg:rounded-lg" />
53
54
  ))}
54
- </div>
55
+ </LoadingRegion>
55
56
  );
56
57
  }
57
58
 
@@ -32,7 +32,7 @@ export interface TeamMembersPanelProps {
32
32
  /** The team's id (`metadata.id`). */
33
33
  readonly teamId: string;
34
34
  /** The organization's id (`metadata.id`), whose members can be added. */
35
- readonly orgId: string;
35
+ readonly org: string;
36
36
  readonly className?: string;
37
37
  }
38
38
 
@@ -42,7 +42,7 @@ export interface TeamMembersPanelProps {
42
42
  *
43
43
  * All visual properties flow through `--stgm-*` design tokens.
44
44
  */
45
- export function TeamMembersPanel({ teamId, orgId, className }: TeamMembersPanelProps) {
45
+ export function TeamMembersPanel({ teamId, org, className }: TeamMembersPanelProps) {
46
46
  const team = useMemo(
47
47
  () => ({ kind: "team", id: teamId, resourceKind: ApiResourceKind.team }),
48
48
  [teamId],
@@ -131,7 +131,7 @@ export function TeamMembersPanel({ teamId, orgId, className }: TeamMembersPanelP
131
131
  <PermissionGate resource={grantGate} relation="can_grant_access">
132
132
  <div className="stg:mt-4 stg:flex stg:items-end stg:gap-2 stg:border-t stg:border-border stg:pt-4">
133
133
  <PrincipalPicker
134
- orgId={orgId}
134
+ org={org}
135
135
  value={adding}
136
136
  onChange={setAdding}
137
137
  excludeGrantees={members}
@@ -22,6 +22,7 @@ import { AgentBreakdownList } from "./AgentBreakdownList.js";
22
22
  import { HarnessSplitCard } from "./HarnessSplitCard.js";
23
23
  import { ExportButton } from "./ExportButton.js";
24
24
  import { useExportCSV } from "./useExportCSV.js";
25
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
25
26
 
26
27
  // ---------------------------------------------------------------------------
27
28
  // Public API
@@ -30,7 +31,7 @@ import { useExportCSV } from "./useExportCSV.js";
30
31
  /** Props for {@link OrgUsagePanel}. */
31
32
  export interface OrgUsagePanelProps {
32
33
  /** Organization ID (`metadata.id`) to fetch usage for. */
33
- readonly orgId: string;
34
+ readonly org: string;
34
35
  /** Additional CSS class names for the root container. */
35
36
  readonly className?: string;
36
37
  }
@@ -47,22 +48,21 @@ export interface OrgUsagePanelProps {
47
48
  *
48
49
  * @example
49
50
  * ```tsx
50
- * <OrgUsagePanel orgId={activeOrg.metadata.id} />
51
+ * <OrgUsagePanel org={activeOrg.metadata.id} />
51
52
  * ```
52
53
  */
53
- export function OrgUsagePanel({ orgId, className }: OrgUsagePanelProps) {
54
+ export function OrgUsagePanel({ org, className }: OrgUsagePanelProps) {
54
55
  const [preset, setPreset] = useState<DateRangePreset>("30d");
55
56
  const dateRange = dateRangeFromPreset(preset);
56
- const { report, isLoading, error } = useOrgUsageReport(orgId, dateRange);
57
- const { exportCSV, isExporting } = useExportCSV(report, orgId);
57
+ const { report, isLoading, error } = useOrgUsageReport(org, dateRange);
58
+ const { exportCSV, isExporting } = useExportCSV(report, org);
58
59
  const daysInRange = Number.parseInt(preset, 10);
59
60
 
60
61
  if (isLoading) {
61
62
  return (
62
- <div
63
+ <LoadingRegion
63
64
  className={cn("stg:space-y-4", className)}
64
- aria-busy="true"
65
- aria-label="Loading usage data"
65
+ label="Loading usage data"
66
66
  >
67
67
  <div className="stg:flex stg:gap-2">
68
68
  {DATE_RANGE_PRESETS.map((p) => (
@@ -81,7 +81,7 @@ export function OrgUsagePanel({ orgId, className }: OrgUsagePanelProps) {
81
81
  ))}
82
82
  </div>
83
83
  <div className="stg:h-40 stg:animate-pulse stg:rounded-lg stg:bg-muted-subtle" />
84
- </div>
84
+ </LoadingRegion>
85
85
  );
86
86
  }
87
87
 
@@ -24,11 +24,11 @@ export interface UseExportCSVReturn {
24
24
  * - `model_breakdown` — one row per model with calls, tokens, cost
25
25
  *
26
26
  * @param report - The org usage report data (from `useOrgUsageReport`).
27
- * @param orgId - Organization ID for the filename.
27
+ * @param org - Organization ID for the filename.
28
28
  */
29
29
  export function useExportCSV(
30
30
  report: GetOrgUsageReportOutput | null,
31
- orgId: string,
31
+ org: string,
32
32
  ): UseExportCSVReturn {
33
33
  const [isExporting, setIsExporting] = useState(false);
34
34
 
@@ -39,15 +39,15 @@ export function useExportCSV(
39
39
 
40
40
  try {
41
41
  const { csv, filename } = format === "daily_summary"
42
- ? buildDailySummaryCSV(report, orgId)
43
- : buildModelBreakdownCSV(report, orgId);
42
+ ? buildDailySummaryCSV(report, org)
43
+ : buildModelBreakdownCSV(report, org);
44
44
 
45
45
  downloadTextFile(csv, filename, "text/csv");
46
46
  } finally {
47
47
  setIsExporting(false);
48
48
  }
49
49
  },
50
- [report, orgId],
50
+ [report, org],
51
51
  );
52
52
 
53
53
  return { exportCSV, isExporting };
@@ -55,7 +55,7 @@ export function useExportCSV(
55
55
 
56
56
  function buildDailySummaryCSV(
57
57
  report: GetOrgUsageReportOutput,
58
- orgId: string,
58
+ org: string,
59
59
  ): { csv: string; filename: string } {
60
60
  const header = "Date,Executions,Tokens,Cost (USD)";
61
61
  const rows = report.dailyCosts.map((entry) => {
@@ -65,13 +65,13 @@ function buildDailySummaryCSV(
65
65
 
66
66
  return {
67
67
  csv: [header, ...rows].join("\n"),
68
- filename: `${orgId}-daily-usage.csv`,
68
+ filename: `${org}-daily-usage.csv`,
69
69
  };
70
70
  }
71
71
 
72
72
  function buildModelBreakdownCSV(
73
73
  report: GetOrgUsageReportOutput,
74
- orgId: string,
74
+ org: string,
75
75
  ): { csv: string; filename: string } {
76
76
  const header =
77
77
  "Model,Provider,Calls,Input Tokens,Output Tokens,Cache Read Tokens,Cache Write Tokens,Cost (USD)";
@@ -91,7 +91,7 @@ function buildModelBreakdownCSV(
91
91
 
92
92
  return {
93
93
  csv: [header, ...rows].join("\n"),
94
- filename: `${orgId}-model-usage.csv`,
94
+ filename: `${org}-model-usage.csv`,
95
95
  };
96
96
  }
97
97
 
@@ -39,16 +39,16 @@ export interface UseOrgUsageReportReturn {
39
39
  * org ID and date range. The server returns aggregated totals, a
40
40
  * per-model breakdown, the top agents by cost, and a daily cost trend.
41
41
  *
42
- * Pass `null` as `orgId` to skip fetching (stable no-op). Call
42
+ * Pass `null` as `org` to skip fetching (stable no-op). Call
43
43
  * `refetch()` to re-query manually.
44
44
  *
45
- * @param orgId - Organization ID, or `null` to skip.
45
+ * @param org - Organization ID, or `null` to skip.
46
46
  * @param dateRange - Closed date range (YYYY-MM-DD strings).
47
47
  *
48
48
  * @example
49
49
  * ```tsx
50
50
  * const range = dateRangeFromPreset("30d");
51
- * const { report, isLoading, error } = useOrgUsageReport(orgId, range);
51
+ * const { report, isLoading, error } = useOrgUsageReport(org, range);
52
52
  *
53
53
  * if (isLoading) return <Skeleton />;
54
54
  * if (error) return <ErrorMessage error={error} />;
@@ -59,23 +59,23 @@ export interface UseOrgUsageReportReturn {
59
59
  * ```
60
60
  */
61
61
  export function useOrgUsageReport(
62
- orgId: string | null,
62
+ org: string | null,
63
63
  dateRange: DateRange,
64
64
  ): UseOrgUsageReportReturn {
65
65
  const stigmer = useStigmer();
66
66
 
67
67
  const { data: report, isLoading, isRefetching, error, refetch } = useFetch(
68
- orgId
68
+ org
69
69
  ? () =>
70
70
  stigmer.agentExecution.getOrgUsageReport(
71
71
  create(GetOrgUsageReportInputSchema, {
72
- orgId,
72
+ org,
73
73
  fromDate: dateRange.from,
74
74
  toDate: dateRange.to,
75
75
  }),
76
76
  )
77
77
  : null,
78
- [orgId, dateRange.from, dateRange.to, stigmer],
78
+ [org, dateRange.from, dateRange.to, stigmer],
79
79
  null as GetOrgUsageReportOutput | null,
80
80
  );
81
81
 
@@ -4,6 +4,7 @@ import { useCallback, useState } from "react";
4
4
  import { cn } from "@stigmer/theme";
5
5
  import type { VersionTimelineProps } from "./types.js";
6
6
  import { VersionTimelineEntry } from "./VersionTimelineEntry.js";
7
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
7
8
 
8
9
  /**
9
10
  * Accessible vertical timeline for version history.
@@ -163,10 +164,9 @@ function CompareIcon({ className }: { readonly className?: string }) {
163
164
 
164
165
  function TimelineSkeleton({ className }: { readonly className?: string }) {
165
166
  return (
166
- <div
167
+ <LoadingRegion
167
168
  className={cn("stg:flex stg:flex-col stg:gap-4 stg:pt-2", className)}
168
- aria-busy="true"
169
- aria-label="Loading version history"
169
+ label="Loading version history"
170
170
  >
171
171
  {[1, 2, 3].map((i) => (
172
172
  <div key={i} className="stg:flex stg:gap-3">
@@ -183,7 +183,7 @@ function TimelineSkeleton({ className }: { readonly className?: string }) {
183
183
  </div>
184
184
  </div>
185
185
  ))}
186
- </div>
186
+ </LoadingRegion>
187
187
  );
188
188
  }
189
189
 
@@ -31,10 +31,13 @@ export interface WorkflowTaskApprovalSummaryProps {
31
31
  */
32
32
  readonly outcomes: readonly TaskOutcome[];
33
33
  /**
34
- * The recorded decision, sourced from the canonical task output. When
35
- * `null` — or when its `outcome` is still empty — the gate has been
36
- * resolved but the decision record has not yet materialized in the
37
- * status snapshot; a "finalizing" affordance is shown instead.
34
+ * The recorded decision, sourced from the canonical task output with the
35
+ * `approval_resolved` event standing in until the status snapshot
36
+ * catches up. When `null` — or when its `outcome` is still empty — the
37
+ * gate has been resolved but neither source carries the decision yet; a
38
+ * "finalizing" affordance is shown instead. The one exception is an
39
+ * auto-resolved decision with an empty outcome: the gate timed out under
40
+ * the fail policy and ended without a decision, which is final.
38
41
  */
39
42
  readonly decision: TaskDetailApprovalDecision | null;
40
43
  /** Additional CSS class names for the root container. */
@@ -73,13 +76,17 @@ export const WorkflowTaskApprovalSummary = memo(function WorkflowTaskApprovalSum
73
76
  decision,
74
77
  className,
75
78
  }: WorkflowTaskApprovalSummaryProps) {
76
- const isFinalizing = !decision || decision.outcome === "";
79
+ // A fail-policy timeout ends the gate with no outcome; that is the record,
80
+ // not a decision still on its way.
81
+ const timedOutUndecided = decision !== null && decision.autoResolved && decision.outcome === "";
82
+ const isFinalizing = !decision || (decision.outcome === "" && !timedOutUndecided);
77
83
 
78
84
  const outcomeLabel = useMemo(() => {
85
+ if (timedOutUndecided) return "Timed out — no decision";
79
86
  if (!decision || !decision.outcome) return "";
80
87
  const match = outcomes.find((o) => o.name === decision.outcome);
81
88
  return match?.label || capitalize(decision.outcome.replace(/_/g, " "));
82
- }, [decision, outcomes]);
89
+ }, [decision, outcomes, timedOutUndecided]);
83
90
 
84
91
  const tone: DecisionTone = useMemo(
85
92
  () => (decision && !isFinalizing ? resolveTone(decision.outcome) : "neutral"),
@@ -116,7 +123,7 @@ export const WorkflowTaskApprovalSummary = memo(function WorkflowTaskApprovalSum
116
123
  <ToneIcon tone={tone} />
117
124
  {outcomeLabel}
118
125
  </span>
119
- {decision!.autoResolved && (
126
+ {decision!.autoResolved && !timedOutUndecided && (
120
127
  <span className="stg:rounded stg:bg-muted stg:px-1.5 stg:py-0.5 stg:text-[10px] stg:font-medium stg:text-muted-foreground">
121
128
  auto-resolved
122
129
  </span>
@@ -3,6 +3,7 @@
3
3
  import { cn } from "@stigmer/theme";
4
4
  import { useWorkflowVersionDiff } from "./useWorkflowVersionDiff.js";
5
5
  import type { DiffLine } from "./workflow-yaml-diff.js";
6
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
6
7
 
7
8
  /** Props for {@link WorkflowVersionDiffViewer}. */
8
9
  export interface WorkflowVersionDiffViewerProps {
@@ -163,13 +164,12 @@ function DiffLineRow({
163
164
 
164
165
  function DiffSkeleton({ className }: { readonly className?: string }) {
165
166
  return (
166
- <div
167
+ <LoadingRegion
167
168
  className={cn(
168
169
  "stg:overflow-hidden stg:rounded-lg stg:border stg:border-border",
169
170
  className,
170
171
  )}
171
- aria-busy="true"
172
- aria-label="Loading diff"
172
+ label="Loading diff"
173
173
  >
174
174
  <div className="stg:border-b stg:border-border stg:bg-muted stg:px-3 stg:py-2">
175
175
  <div className="stg:h-4 stg:w-48 stg:animate-pulse stg:rounded stg:bg-muted-foreground/20" />
@@ -185,7 +185,7 @@ function DiffSkeleton({ className }: { readonly className?: string }) {
185
185
  </div>
186
186
  ))}
187
187
  </div>
188
- </div>
188
+ </LoadingRegion>
189
189
  );
190
190
  }
191
191
 
@@ -7,6 +7,7 @@ import { WorkflowVersionBadge } from "./WorkflowVersionBadge.js";
7
7
  import type { VersionEntry } from "../version-history/types.js";
8
8
  import { Tooltip, TooltipContent, TooltipTrigger } from "../internal/tooltip.js";
9
9
  import { formatRelativeTime } from "../activity/format-relative-time.js";
10
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
10
11
 
11
12
  /** Props for {@link WorkflowVersionTimeline}. */
12
13
  export interface WorkflowVersionTimelineProps {
@@ -210,10 +211,9 @@ function VersionTimelineRow({
210
211
 
211
212
  function TimelineSkeleton({ className }: { readonly className?: string }) {
212
213
  return (
213
- <div
214
+ <LoadingRegion
214
215
  className={cn("stg:flex stg:flex-col stg:gap-4 stg:pt-2", className)}
215
- aria-busy="true"
216
- aria-label="Loading workflow version history"
216
+ label="Loading workflow version history"
217
217
  >
218
218
  {[1, 2, 3].map((i) => (
219
219
  <div key={i} className="stg:flex stg:gap-3">
@@ -230,7 +230,7 @@ function TimelineSkeleton({ className }: { readonly className?: string }) {
230
230
  </div>
231
231
  </div>
232
232
  ))}
233
- </div>
233
+ </LoadingRegion>
234
234
  );
235
235
  }
236
236
 
@@ -295,7 +295,7 @@ function ForkBranches({
295
295
  name={`join-policy-${node.id}`}
296
296
  checked={!compete}
297
297
  onChange={() => handleSetCompete(false)}
298
- className="stg:h-3 stg:w-3 stg:accent-[var(--stgm-primary,#6366f1)]"
298
+ className="stg:h-3 stg:w-3"
299
299
  />
300
300
  Wait for all branches
301
301
  </label>
@@ -305,7 +305,7 @@ function ForkBranches({
305
305
  name={`join-policy-${node.id}`}
306
306
  checked={compete}
307
307
  onChange={() => handleSetCompete(true)}
308
- className="stg:h-3 stg:w-3 stg:accent-[var(--stgm-primary,#6366f1)]"
308
+ className="stg:h-3 stg:w-3"
309
309
  />
310
310
  Race mode (first branch wins)
311
311
  </label>
@@ -135,7 +135,7 @@ export const CatchTab = memo(function CatchTab({ node, mutations }: CatchTabProp
135
135
  type="checkbox"
136
136
  checked={catchBlock.compensate}
137
137
  onChange={handleCompensateToggle}
138
- className="stg:h-3 stg:w-3 stg:accent-[var(--stgm-primary,#6366f1)]"
138
+ className="stg:h-3 stg:w-3"
139
139
  />
140
140
  Run compensation before catch block
141
141
  </label>
@@ -194,7 +194,7 @@ export const IterationTab = memo(function IterationTab({
194
194
  value={opt.value}
195
195
  checked={onError === opt.value}
196
196
  onChange={() => handleErrorPolicyChange(opt.value)}
197
- className="stg:mt-0.5 stg:h-3 stg:w-3 stg:accent-[var(--stgm-primary,#6366f1)]"
197
+ className="stg:mt-0.5 stg:h-3 stg:w-3"
198
198
  />
199
199
  <span>
200
200
  <span className="stg:font-medium">{opt.label}</span>