@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
@@ -10,7 +10,6 @@ import {
10
10
  ConnectInputSchema,
11
11
  } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/io_pb";
12
12
  import { useStigmer } from "../hooks.js";
13
- import { resolveDeclaredSystemEnvVars } from "../environment/systemEnvVars.js";
14
13
  import { toError } from "../internal/toError.js";
15
14
  import {
16
15
  openOAuthPopup,
@@ -81,11 +80,9 @@ export interface UseMcpServerOAuthConnectReturn {
81
80
  *
82
81
  * @param mcpServerId - System-generated ID (metadata.id) of the MCP server.
83
82
  * @param org - Organization context for token storage (caller's active org).
84
- * @param declaredEnvKeys - Keys from the server's `spec.env` declaration.
85
- * System vars are only injected when declared here.
86
83
  * @returns The updated McpServer after tool discovery completes.
87
84
  */
88
- readonly startOAuth: (mcpServerId: string, org: string, declaredEnvKeys?: readonly string[]) => Promise<McpServer>;
85
+ readonly startOAuth: (mcpServerId: string, org: string) => Promise<McpServer>;
89
86
  /** `true` while any phase of the OAuth flow is in progress. */
90
87
  readonly isInProgress: boolean;
91
88
  /** Current phase of the OAuth flow. */
@@ -182,7 +179,7 @@ export function useMcpServerOAuthConnect(): UseMcpServerOAuthConnectReturn {
182
179
  }, [advancePhase]);
183
180
 
184
181
  const startOAuth = useCallback(
185
- async (mcpServerId: string, org: string, declaredEnvKeys?: readonly string[]): Promise<McpServer> => {
182
+ async (mcpServerId: string, org: string): Promise<McpServer> => {
186
183
  advancePhase("initiating");
187
184
  setError(null);
188
185
  setFailedPhase(null);
@@ -229,24 +226,11 @@ export function useMcpServerOAuthConnect(): UseMcpServerOAuthConnectReturn {
229
226
 
230
227
  advancePhase("connecting");
231
228
 
232
- const systemEnv = declaredEnvKeys
233
- ? await resolveDeclaredSystemEnvVars(stigmer, declaredEnvKeys)
234
- : {};
235
- const runtimeEnvMap: Record<string, { value: string; isSecret: boolean }> = {};
236
- for (const [key, envInput] of Object.entries(systemEnv)) {
237
- runtimeEnvMap[key] = {
238
- value: envInput.value,
239
- isSecret: envInput.isSecret ?? false,
240
- };
241
- }
242
-
243
- const input = create(ConnectInputSchema, {
244
- mcpServerId,
245
- org,
246
- ...(Object.keys(runtimeEnvMap).length > 0
247
- ? { runtimeEnv: runtimeEnvMap }
248
- : {}),
249
- });
229
+ // No runtime env: the backend resolves the token this flow just
230
+ // stored from the managed grant, and every other declared variable
231
+ // from the caller's personal environment. A runtime env would
232
+ // replace that resolution whole (stigmer/stigmer#1453).
233
+ const input = create(ConnectInputSchema, { mcpServerId, org });
250
234
 
251
235
  // Async connect lane (stigmer/stigmer#425): startConnect + poll via
252
236
  // the SDK's shared protocol, so the discovery wait can outlive the
@@ -14,6 +14,7 @@ import { useDeleteMemory } from "./useDeleteMemory.js";
14
14
  import { useMemories } from "./useMemories.js";
15
15
  import { useRejectMemory } from "./useRejectMemory.js";
16
16
  import { useUpdateMemoryContent } from "./useUpdateMemoryContent.js";
17
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
17
18
 
18
19
  // ---------------------------------------------------------------------------
19
20
  // Public API
@@ -71,10 +72,9 @@ export function MemoryListPanel({ org, className, now }: MemoryListPanelProps) {
71
72
 
72
73
  if (isLoading) {
73
74
  return (
74
- <div
75
+ <LoadingRegion
75
76
  className={cn("stg:space-y-2", className)}
76
- aria-busy="true"
77
- aria-label="Loading memories"
77
+ label="Loading memories"
78
78
  >
79
79
  {Array.from({ length: 2 }, (_, i) => (
80
80
  <div
@@ -82,7 +82,7 @@ export function MemoryListPanel({ org, className, now }: MemoryListPanelProps) {
82
82
  className="stg:bg-muted-subtle stg:h-14 stg:animate-pulse stg:rounded-lg"
83
83
  />
84
84
  ))}
85
- </div>
85
+ </LoadingRegion>
86
86
  );
87
87
  }
88
88
 
@@ -1,9 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import { useCallback, useRef, type KeyboardEvent } from "react";
4
- import { HARNESS_LABELS, type HarnessOption } from "./harness.js";
5
-
6
- const OPTIONS: readonly HarnessOption[] = ["native", "cursor"];
4
+ import { HARNESS_LABELS, HARNESS_OPTIONS as OPTIONS, type HarnessOption } from "./harness.js";
7
5
 
8
6
  /** Props for {@link HarnessSelector}. */
9
7
  export interface HarnessSelectorProps {
@@ -47,7 +47,7 @@ export interface ModelSelectorProps {
47
47
  readonly onHarnessChange?: (harness: HarnessOption) => void;
48
48
  /**
49
49
  * Restrict which harnesses appear in the dropdown.
50
- * When omitted, shows all registered harnesses that have models in the registry.
50
+ * When omitted, shows every harness the platform runs ({@link HARNESS_OPTIONS}).
51
51
  */
52
52
  readonly availableHarnesses?: readonly HarnessOption[];
53
53
  /** Override the curated (featured) list for the current harness. */
@@ -218,12 +218,7 @@ export function ModelSelector({
218
218
  const searchRef = useRef<HTMLInputElement>(null);
219
219
  const listRef = useRef<HTMLDivElement>(null);
220
220
 
221
- const resolvedHarnesses = useMemo(() => {
222
- if (availableHarnesses) return availableHarnesses;
223
- // For now, show native and cursor (the two harnesses with models in the registry).
224
- // Future harnesses will be added to the registry and appear here automatically.
225
- return HARNESS_OPTIONS.filter((h) => h === "native" || h === "cursor");
226
- }, [availableHarnesses]);
221
+ const resolvedHarnesses = availableHarnesses ?? HARNESS_OPTIONS;
227
222
 
228
223
  const selectedModel = (value ? getModel(value) : undefined) ?? defaultModel ?? undefined;
229
224
 
@@ -4,18 +4,33 @@ import { Harness } from "@stigmer/protos/ai/stigmer/agentic/session/v1/enum_pb";
4
4
  * String literal alias for the proto {@link Harness} enum.
5
5
  *
6
6
  * Used on component props and hook options so platform builders
7
- * do not need to import proto enums to use the SDK.
8
- *
9
- * This union grows as new execution engines are integrated.
10
- * Each value must have a corresponding entry in {@link HARNESS_META}.
7
+ * do not need to import proto enums to use the SDK. Exactly the
8
+ * engines the platform runs; it grows only when the proto enum does.
9
+ */
10
+ export type HarnessOption = "native" | "cursor";
11
+
12
+ /**
13
+ * The proto {@link Harness} member for each option — the one table the
14
+ * option set is read from, so the SDK can never offer an engine the proto
15
+ * does not name (stigmer/stigmer#1143: four extra options once mapped
16
+ * silently to NATIVE). Listed in proto enum order.
17
+ */
18
+ const HARNESS_BY_OPTION = {
19
+ native: Harness.NATIVE,
20
+ cursor: Harness.CURSOR,
21
+ } as const satisfies Record<HarnessOption, Exclude<Harness, Harness.UNSPECIFIED>>;
22
+
23
+ /**
24
+ * The reverse of {@link HARNESS_BY_OPTION}, keyed by every engine the proto
25
+ * names. Typed over the whole enum (minus UNSPECIFIED), so a member added
26
+ * to the proto is a compile error here until it has an option — and then
27
+ * in {@link HARNESS_BY_OPTION} and {@link HARNESS_META} until it has an
28
+ * entry in each.
11
29
  */
12
- export type HarnessOption =
13
- | "native"
14
- | "cursor"
15
- | "copilot"
16
- | "claude_code"
17
- | "codex"
18
- | "devin";
30
+ const OPTION_BY_HARNESS: Readonly<Record<Exclude<Harness, Harness.UNSPECIFIED>, HarnessOption>> = {
31
+ [Harness.NATIVE]: "native",
32
+ [Harness.CURSOR]: "cursor",
33
+ };
19
34
 
20
35
  /** Display metadata for a single harness. */
21
36
  export interface HarnessDisplayInfo {
@@ -34,10 +49,6 @@ export interface HarnessDisplayInfo {
34
49
  export const HARNESS_META: Readonly<Record<HarnessOption, HarnessDisplayInfo>> = {
35
50
  native: { label: "Stigmer", description: "Stigmer's native agent runtime" },
36
51
  cursor: { label: "Cursor", description: "Cursor IDE agent with codebase indexing" },
37
- copilot: { label: "GitHub Copilot", description: "GitHub-native sub-agent orchestration" },
38
- claude_code: { label: "Claude Agent SDK", description: "Anthropic's agent SDK with built-in tools" },
39
- codex: { label: "OpenAI Codex", description: "Thread-based execution with structured output" },
40
- devin: { label: "Devin", description: "Full autonomous engineer, session-based" },
41
52
  };
42
53
 
43
54
  /**
@@ -50,28 +61,24 @@ export const HARNESS_LABELS: Readonly<Record<HarnessOption, string>> = Object.fr
50
61
  Object.entries(HARNESS_META).map(([k, v]) => [k, v.label]),
51
62
  ) as Record<HarnessOption, string>;
52
63
 
53
- /** Ordered list of all registered harness IDs. */
54
- export const HARNESS_OPTIONS: readonly HarnessOption[] = [
55
- "native",
56
- "cursor",
57
- "copilot",
58
- "claude_code",
59
- "codex",
60
- "devin",
61
- ];
64
+ /** Ordered list of all registered harness IDs, in proto enum order. */
65
+ export const HARNESS_OPTIONS: readonly HarnessOption[] = Object.keys(HARNESS_BY_OPTION) as HarnessOption[];
62
66
 
63
67
  /** Platform default — resolves to the native engine. */
64
68
  export const DEFAULT_HARNESS: HarnessOption = "native";
65
69
 
70
+ /**
71
+ * Whether a string names a {@link HarnessOption} — the check for a value
72
+ * the SDK did not write itself (a stored preference, a URL parameter),
73
+ * which may name an engine this platform does not run.
74
+ */
75
+ export function isHarnessOption(value: string): value is HarnessOption {
76
+ return Object.hasOwn(HARNESS_BY_OPTION, value);
77
+ }
78
+
66
79
  /** Convert a {@link HarnessOption} string to the proto {@link Harness} enum. */
67
80
  export function toProtoHarness(h: HarnessOption): Harness {
68
- switch (h) {
69
- case "cursor":
70
- return Harness.CURSOR;
71
- case "native":
72
- default:
73
- return Harness.NATIVE;
74
- }
81
+ return HARNESS_BY_OPTION[h];
75
82
  }
76
83
 
77
84
  /**
@@ -80,12 +87,7 @@ export function toProtoHarness(h: HarnessOption): Harness {
80
87
  * `UNSPECIFIED` and any unknown values map to `"native"`.
81
88
  */
82
89
  export function fromProtoHarness(h: Harness): HarnessOption {
83
- switch (h) {
84
- case Harness.CURSOR:
85
- return "cursor";
86
- case Harness.NATIVE:
87
- case Harness.UNSPECIFIED:
88
- default:
89
- return "native";
90
- }
90
+ // A wire value may be UNSPECIFIED, or an engine newer than this build.
91
+ const known: Partial<Record<Harness, HarnessOption>> = OPTION_BY_HARNESS;
92
+ return known[h] ?? DEFAULT_HARNESS;
91
93
  }
@@ -9,7 +9,7 @@ export { ModelSelector } from "./ModelSelector.js";
9
9
  export type { ModelSelectorProps } from "./ModelSelector.js";
10
10
  export { HarnessSelector } from "./HarnessSelector.js";
11
11
  export type { HarnessSelectorProps } from "./HarnessSelector.js";
12
- export { DEFAULT_HARNESS, HARNESS_LABELS, HARNESS_META, HARNESS_OPTIONS, toProtoHarness, fromProtoHarness } from "./harness.js";
12
+ export { DEFAULT_HARNESS, HARNESS_LABELS, HARNESS_META, HARNESS_OPTIONS, isHarnessOption, toProtoHarness, fromProtoHarness } from "./harness.js";
13
13
  export type { HarnessOption, HarnessDisplayInfo } from "./harness.js";
14
14
  export { FAST_SERVICE_TIER, toProtoServiceTier, fromProtoServiceTier } from "./service-tier.js";
15
15
  export type { ServiceTierOption } from "./service-tier.js";
@@ -7,6 +7,7 @@ import { timestampDate } from "@bufbuild/protobuf/wkt";
7
7
  import type { OAuthApp } from "@stigmer/protos/ai/stigmer/iam/oauthapp/v1/api_pb";
8
8
  import { Tooltip, TooltipContent, TooltipTrigger } from "../internal/tooltip.js";
9
9
  import { useOAuthAppList } from "./useOAuthAppList.js";
10
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
10
11
 
11
12
  // ---------------------------------------------------------------------------
12
13
  // Public API
@@ -76,10 +77,9 @@ export function OAuthAppListPanel({
76
77
 
77
78
  if (isLoading) {
78
79
  return (
79
- <div
80
+ <LoadingRegion
80
81
  className={cn("stg:space-y-2", className)}
81
- aria-busy="true"
82
- aria-label="Loading OAuth apps"
82
+ label="Loading OAuth apps"
83
83
  >
84
84
  {Array.from({ length: 2 }, (_, i) => (
85
85
  <div
@@ -87,7 +87,7 @@ export function OAuthAppListPanel({
87
87
  className="stg:bg-muted-subtle stg:h-14 stg:animate-pulse stg:rounded-lg"
88
88
  />
89
89
  ))}
90
- </div>
90
+ </LoadingRegion>
91
91
  );
92
92
  }
93
93
 
@@ -7,14 +7,24 @@ import type { Organization } from "@stigmer/protos/ai/stigmer/tenancy/organizati
7
7
  import { useOrganization } from "./useOrganization.js";
8
8
  import { useUpdateOrganization } from "./useUpdateOrganization.js";
9
9
  import { useCheckPermission } from "../iam-policy/useCheckPermission.js";
10
+ import { useServerInfo } from "../server-info.js";
10
11
  import { MemoryEnabledRow } from "../internal/MemoryEnabledRow.js";
11
12
  import { StandingContextField } from "../internal/StandingContextField.js";
12
13
  import { SpinnerIcon } from "../internal/SpinnerIcon.js";
14
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
15
+
16
+ /** The memory row's copy where each member's own switch must also be on. */
17
+ const MEMBER_CONSENT_MEMORY_HELPER_TEXT =
18
+ "Allow agents to remember confirmed facts about members of this organization. Each member must also turn memory on in their own account preferences; once a member has many memories, each conversation recalls their most relevant ones, shown on the execution. Changes apply immediately.";
19
+
20
+ /** The memory row's copy on a server where this switch alone decides memory. */
21
+ const ORG_ALONE_MEMORY_HELPER_TEXT =
22
+ "Allow agents to remember confirmed facts. On this server this switch alone decides memory; once there are many memories, each conversation recalls the most relevant ones, shown on the execution. Changes apply immediately.";
13
23
 
14
24
  /** Props for {@link OrgPreferencesPanel}. */
15
25
  export interface OrgPreferencesPanelProps {
16
26
  /** The ID of the organization whose preferences to display and edit. */
17
- readonly orgId: string;
27
+ readonly org: string;
18
28
  /** Fired with the updated resource after a successful save. */
19
29
  readonly onUpdated?: (org: Organization) => void;
20
30
  /** Additional CSS class names for the root container. */
@@ -38,11 +48,11 @@ export interface OrgPreferencesPanelProps {
38
48
  *
39
49
  * @example
40
50
  * ```tsx
41
- * <OrgPreferencesPanel orgId="org-id-123" />
51
+ * <OrgPreferencesPanel org="org-id-123" />
42
52
  * ```
43
53
  */
44
54
  export function OrgPreferencesPanel({
45
- orgId,
55
+ org,
46
56
  onUpdated,
47
57
  className,
48
58
  }: OrgPreferencesPanelProps) {
@@ -52,7 +62,7 @@ export function OrgPreferencesPanel({
52
62
  isLoading: isFetching,
53
63
  error: fetchError,
54
64
  refetch,
55
- } = useOrganization(orgId || null);
65
+ } = useOrganization(org || null);
56
66
 
57
67
  const {
58
68
  update,
@@ -69,10 +79,19 @@ export function OrgPreferencesPanel({
69
79
  error: memoryFlagError,
70
80
  } = useUpdateOrganization();
71
81
 
82
+ // On a server that trusts every request, this switch alone decides memory:
83
+ // there is no person's switch to also turn on (the account panel says so
84
+ // in its place).
85
+ const { serverInfo } = useServerInfo();
86
+ const memoryHelperText =
87
+ serverInfo?.authenticationRequired === false
88
+ ? ORG_ALONE_MEMORY_HELPER_TEXT
89
+ : MEMBER_CONSENT_MEMORY_HELPER_TEXT;
90
+
72
91
  // Fail-open: OSS local mode has no IAM service, so editing stays
73
92
  // available there; cloud gets a genuine server verdict.
74
93
  const { allowed: canEdit } = useCheckPermission(
75
- orgId ? { kind: "organization", id: orgId } : null,
94
+ org ? { kind: "organization", id: org } : null,
76
95
  "can_edit",
77
96
  );
78
97
 
@@ -159,14 +178,13 @@ export function OrgPreferencesPanel({
159
178
 
160
179
  if (isFetching && !organization) {
161
180
  return (
162
- <div
181
+ <LoadingRegion
163
182
  className={cn("stg:space-y-4", className)}
164
- aria-busy="true"
165
- aria-label="Loading organization preferences"
183
+ label="Loading organization preferences"
166
184
  >
167
185
  <div className="stg:bg-muted-subtle stg:h-28 stg:animate-pulse stg:rounded" />
168
186
  <div className="stg:bg-muted-subtle stg:h-8 stg:w-32 stg:animate-pulse stg:rounded" />
169
- </div>
187
+ </LoadingRegion>
170
188
  );
171
189
  }
172
190
 
@@ -221,7 +239,7 @@ export function OrgPreferencesPanel({
221
239
  saving={isSavingMemoryFlag}
222
240
  readOnly={!canEdit}
223
241
  error={memoryFlagError}
224
- helperText="Allow agents to remember confirmed facts about members of this organization. Each member must also turn memory on in their own account preferences; once a member has many memories, each conversation recalls their most relevant ones, shown on the execution. Changes apply immediately."
242
+ helperText={memoryHelperText}
225
243
  />
226
244
 
227
245
  {!canEdit && (
@@ -12,6 +12,7 @@ import { useResourceAvailable, ApiResourceKind } from "../deployment-mode.js";
12
12
  import { useCheckPermission } from "../iam-policy/useCheckPermission.js";
13
13
  import { SpinnerIcon } from "../internal/SpinnerIcon.js";
14
14
  import { useCopyFeedback } from "../internal/useCopyFeedback.js";
15
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
15
16
 
16
17
  // ---------------------------------------------------------------------------
17
18
  // Constants
@@ -27,7 +28,7 @@ const LOGO_URL_MAX_LEN = 2048;
27
28
  /** Props for {@link OrgProfilePanel}. */
28
29
  export interface OrgProfilePanelProps {
29
30
  /** The ID of the organization to display and edit. */
30
- readonly orgId: string;
31
+ readonly org: string;
31
32
  /** Fired with the updated resource after a successful save. */
32
33
  readonly onUpdated?: (org: Organization) => void;
33
34
  /** Additional CSS class names for the root container. */
@@ -48,13 +49,13 @@ export interface OrgProfilePanelProps {
48
49
  * @example
49
50
  * ```tsx
50
51
  * <OrgProfilePanel
51
- * orgId="org-id-123"
52
+ * org="org-id-123"
52
53
  * onUpdated={(org) => console.log("Saved:", org.metadata?.name)}
53
54
  * />
54
55
  * ```
55
56
  */
56
57
  export function OrgProfilePanel({
57
- orgId,
58
+ org,
58
59
  onUpdated,
59
60
  className,
60
61
  }: OrgProfilePanelProps) {
@@ -64,7 +65,7 @@ export function OrgProfilePanel({
64
65
  isLoading: isFetching,
65
66
  error: fetchError,
66
67
  refetch,
67
- } = useOrganization(orgId || null);
68
+ } = useOrganization(org || null);
68
69
 
69
70
  const {
70
71
  update,
@@ -152,10 +153,9 @@ export function OrgProfilePanel({
152
153
 
153
154
  if (isFetching && !organization) {
154
155
  return (
155
- <div
156
+ <LoadingRegion
156
157
  className={cn("stg:space-y-4", className)}
157
- aria-busy="true"
158
- aria-label="Loading organization profile"
158
+ label="Loading organization profile"
159
159
  >
160
160
  {Array.from({ length: 4 }, (_, i) => (
161
161
  <div
@@ -164,7 +164,7 @@ export function OrgProfilePanel({
164
164
  style={{ width: `${90 - i * 12}%` }}
165
165
  />
166
166
  ))}
167
- </div>
167
+ </LoadingRegion>
168
168
  );
169
169
  }
170
170
 
@@ -342,7 +342,7 @@ export function OrgProfilePanel({
342
342
  </div>
343
343
 
344
344
  {/* -- Identity Providers summary -- */}
345
- <IdentityProvidersSummary orgId={orgId} orgSlug={serverSlug} />
345
+ <IdentityProvidersSummary org={org} orgSlug={serverSlug} />
346
346
  </form>
347
347
  );
348
348
  }
@@ -357,10 +357,10 @@ export function OrgProfilePanel({
357
357
  * not create providers; otherwise it says who manages them.
358
358
  */
359
359
  function IdentityProvidersSummary({
360
- orgId,
360
+ org,
361
361
  orgSlug,
362
362
  }: {
363
- orgId: string;
363
+ org: string;
364
364
  orgSlug: string;
365
365
  }) {
366
366
  const idpAvailable = useResourceAvailable(ApiResourceKind.identity_provider);
@@ -368,7 +368,7 @@ function IdentityProvidersSummary({
368
368
  idpAvailable && orgSlug ? orgSlug : null,
369
369
  );
370
370
  const createCheck = useCheckPermission(
371
- idpAvailable && orgId ? { kind: "organization", id: orgId } : null,
371
+ idpAvailable && org ? { kind: "organization", id: org } : null,
372
372
  "can_create_idp",
373
373
  );
374
374
  const deniedCreate = !createCheck.isLoading && !createCheck.allowed;
@@ -1,5 +1,6 @@
1
1
  export { OrgProvider, useOrg, useActiveOrgSlug, useActiveOrgId } from "./OrgProvider.js";
2
2
  export type { OrgContextValue } from "./OrgProvider.js";
3
+ export { useFollowSessionOrganization } from "./useFollowSessionOrganization.js";
3
4
  export { useOrgGate } from "./useOrgGate.js";
4
5
  export type {
5
6
  UseOrgGateOptions,
@@ -0,0 +1,54 @@
1
+ "use client";
2
+
3
+ /**
4
+ * useFollowSessionOrganization: a session page's shell follows the session
5
+ * into its own organization (stigmer/stigmer#1580).
6
+ *
7
+ * Session URLs name no organization, so a link can open a conversation
8
+ * that belongs to an organization other than the active one. The session
9
+ * surface already acts in the session's organization (SessionViewer reads
10
+ * `session.metadata.org`); this hook makes the rest of the shell agree
11
+ * with it: when the loaded session's organization is one of the person's
12
+ * and is not the active one, it becomes the active one, so the
13
+ * organization menu, the sidebar and every host control keyed on the
14
+ * active organization name the conversation's.
15
+ *
16
+ * It aligns once per visit to a conversation, when that session and the
17
+ * organization list have both loaded. A choice the person makes while the
18
+ * conversation stays open stands, so the hook never fights the
19
+ * organization menu; opening a conversation again is a new visit, and it
20
+ * follows that conversation again, as a link to it would. A session in an organization
21
+ * the person does not belong to (a guest's view of a share) switches
22
+ * nothing. The switch goes through OrgProvider's `setActiveOrg`, the
23
+ * programmatic path: it persists the choice and clears the fetch cache
24
+ * like any switch, and it fires no host `onOrgChanged` navigation.
25
+ */
26
+ import { useEffect, useRef } from "react";
27
+ import type { Session } from "@stigmer/protos/ai/stigmer/agentic/session/v1/api_pb";
28
+
29
+ import { useOrg } from "./OrgProvider.js";
30
+
31
+ /**
32
+ * Makes the loaded session's organization the active one, once per visit
33
+ * to the conversation, when the person belongs to it.
34
+ *
35
+ * @param session - The session the page shows, or null while it loads.
36
+ */
37
+ export function useFollowSessionOrganization(session: Session | null): void {
38
+ const { orgs, activeOrg, setActiveOrg, isLoading } = useOrg();
39
+ const followedSessionRef = useRef<string | null>(null);
40
+
41
+ const sessionId = session?.metadata?.id ?? "";
42
+ const sessionOrg = session?.metadata?.org ?? "";
43
+ const activeSlug = activeOrg?.metadata?.slug ?? "";
44
+
45
+ useEffect(() => {
46
+ if (sessionId === "" || sessionOrg === "" || isLoading || activeSlug === "")
47
+ return;
48
+ if (followedSessionRef.current === sessionId) return;
49
+ followedSessionRef.current = sessionId;
50
+ if (sessionOrg === activeSlug) return;
51
+ const target = orgs.find((org) => org.metadata?.slug === sessionOrg);
52
+ if (target !== undefined) setActiveOrg(target);
53
+ }, [sessionId, sessionOrg, activeSlug, isLoading, orgs, setActiveOrg]);
54
+ }
@@ -81,7 +81,7 @@ export function planInputFromDraft(draft: PlanDraft): PlanDraftResult {
81
81
  }
82
82
  const managed = draft.features.includes(Feature.managed_organizations);
83
83
  let includedManagedOrganizations: number | undefined;
84
- let perExtraOrganizationMicros: bigint | undefined;
84
+ let perExtraOrgMicros: bigint | undefined;
85
85
  if (managed && draft.includedManagedOrganizations.trim() !== "") {
86
86
  const included = Number(draft.includedManagedOrganizations.trim());
87
87
  if (!Number.isInteger(included) || included < 0) {
@@ -92,7 +92,7 @@ export function planInputFromDraft(draft: PlanDraft): PlanDraftResult {
92
92
  if (fee === null) {
93
93
  return { ok: false, field: "perExtraOrganizationUsd", message: "A dollar amount per organization, e.g. 25." };
94
94
  }
95
- perExtraOrganizationMicros = fee;
95
+ perExtraOrgMicros = fee;
96
96
  }
97
97
  return {
98
98
  ok: true,
@@ -108,7 +108,7 @@ export function planInputFromDraft(draft: PlanDraft): PlanDraftResult {
108
108
  terms: {
109
109
  monthlyMinimumMicros: minimum,
110
110
  usageShareBasisPoints: share,
111
- ...(perExtraOrganizationMicros === undefined ? {} : { perExtraOrganizationMicros }),
111
+ ...(perExtraOrgMicros === undefined ? {} : { perExtraOrgMicros }),
112
112
  },
113
113
  },
114
114
  };
@@ -13,6 +13,7 @@ import { usePlatformClientList } from "./usePlatformClientList.js";
13
13
  import { useDeletePlatformClient } from "./useDeletePlatformClient.js";
14
14
  import { SpinnerIcon } from "../internal/SpinnerIcon.js";
15
15
  import { isPlatformClientExpired } from "./expiry.js";
16
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
16
17
 
17
18
  /** Props for {@link PlatformClientListPanel}. */
18
19
  export interface PlatformClientListPanelProps {
@@ -87,10 +88,9 @@ export function PlatformClientListPanel({
87
88
 
88
89
  if (isLoading) {
89
90
  return (
90
- <div
91
+ <LoadingRegion
91
92
  className={cn("stg:space-y-2", className)}
92
- aria-busy="true"
93
- aria-label="Loading platform clients"
93
+ label="Loading platform clients"
94
94
  >
95
95
  {Array.from({ length: 2 }, (_, i) => (
96
96
  <div
@@ -98,7 +98,7 @@ export function PlatformClientListPanel({
98
98
  className="stg:bg-muted-subtle stg:h-14 stg:animate-pulse stg:rounded-lg"
99
99
  />
100
100
  ))}
101
- </div>
101
+ </LoadingRegion>
102
102
  );
103
103
  }
104
104
 
@@ -49,6 +49,7 @@ import { PluginIcon } from "./PluginIcon.js";
49
49
  import { usePlugin } from "./usePlugin.js";
50
50
  import { usePluginMembers } from "./usePluginMembers.js";
51
51
  import { usePluginVersions } from "./usePluginVersions.js";
52
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
52
53
 
53
54
  const OVERVIEW_TAB: TabItem = { id: "overview", label: "Overview" };
54
55
  const VERSIONS_TAB: TabItem = { id: "versions", label: "Versions" };
@@ -526,7 +527,7 @@ function stateLabel(state: PluginState): string | undefined {
526
527
 
527
528
  function LoadingSkeleton({ className }: { readonly className?: string }) {
528
529
  return (
529
- <div className={cn("stg:flex stg:flex-col stg:gap-6", className)} aria-busy="true" aria-label="Loading plugin details">
530
+ <LoadingRegion className={cn("stg:flex stg:flex-col stg:gap-6", className)} label="Loading plugin details">
530
531
  <div className="stg:flex stg:items-start stg:gap-3">
531
532
  <div className="stg:mt-1 stg:size-6 stg:shrink-0 stg:animate-pulse stg:rounded stg:bg-muted" />
532
533
  <div className="stg:flex-1 stg:space-y-2">
@@ -535,7 +536,7 @@ function LoadingSkeleton({ className }: { readonly className?: string }) {
535
536
  </div>
536
537
  </div>
537
538
  <div className="stg:h-24 stg:animate-pulse stg:rounded-lg stg:bg-muted" />
538
- </div>
539
+ </LoadingRegion>
539
540
  );
540
541
  }
541
542
 
@@ -109,14 +109,14 @@ export function useMcpServerReadiness(
109
109
  oauth.clearError();
110
110
  // A sign-in that fails leaves the row on "Sign in" with the reason; one
111
111
  // that lands refetches so the row says "Signed in" from the grant.
112
- void oauth.startOAuth(id, org, declaredVariables).then(
112
+ void oauth.startOAuth(id, org).then(
113
113
  () => {
114
114
  refetch();
115
115
  onSignedIn?.(id);
116
116
  },
117
117
  () => undefined,
118
118
  );
119
- }, [kind, mcpServer, org, oauth.clearError, oauth.startOAuth, declaredVariables, refetch, onSignedIn]);
119
+ }, [kind, mcpServer, org, oauth.clearError, oauth.startOAuth, refetch, onSignedIn]);
120
120
 
121
121
  const error = useMemo(() => {
122
122
  if (readError) return readError;
@@ -29,6 +29,14 @@ import { createContext, useContext } from "react";
29
29
  * - an `HTMLElement` (the mounted themed container): portaled content
30
30
  * renders inside it and inherits the `--stgm-*` token scope.
31
31
  *
32
+ * One more source sets the value: an SDK modal dialog (`DialogShell`)
33
+ * re-provides it with an element inside the `<dialog>`, `null` until that
34
+ * element mounts. A modal dialog is in the browser's top layer and makes
35
+ * the rest of the document inert, so a popup portaled to `document.body`
36
+ * from inside it would paint beneath it and take no input (stigmer#1509).
37
+ * The element inherits the theme from the provider's in-tree scope, and
38
+ * carries no `data-stgm-portal` marker.
39
+ *
32
40
  * The default MUST stay `undefined`, never `null`: an explicit `null`
33
41
  * makes Base UI portals render NOWHERE, which breaks every popup for
34
42
  * consumers embedding components outside a provider (stigmer-cloud#271).
@@ -110,7 +110,7 @@ export function ProviderStandingConsole({ className }: ProviderStandingConsolePr
110
110
  completed a pass since this deployment came up.
111
111
  </p>
112
112
  ) : (
113
- <ul className="stg:m-0 stg:grid stg:list-none stg:gap-2 stg:p-0 sm:stg:grid-cols-2">
113
+ <ul className="stg:m-0 stg:grid stg:list-none stg:gap-2 stg:p-0 stg:sm:grid-cols-2">
114
114
  {providers.map((entry) => (
115
115
  <StandingCard key={entry.provider} entry={entry} />
116
116
  ))}