@stigmer/react 3.41.0 → 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 (510) hide show
  1. package/README.md +1 -1
  2. package/access/ManageAccessButton.d.ts +1 -1
  3. package/access/ManageAccessButton.js +1 -1
  4. package/access/ManageAccessDialog.js +1 -1
  5. package/access/ManageAccessDialog.js.map +1 -1
  6. package/agent/AgentDetailView.d.ts.map +1 -1
  7. package/agent/AgentDetailView.js +2 -1
  8. package/agent/AgentDetailView.js.map +1 -1
  9. package/api-key/ApiKeyListPanel.d.ts.map +1 -1
  10. package/api-key/ApiKeyListPanel.js +2 -1
  11. package/api-key/ApiKeyListPanel.js.map +1 -1
  12. package/attachment/AttachmentImageLightbox.d.ts.map +1 -1
  13. package/attachment/AttachmentImageLightbox.js.map +1 -1
  14. package/billing/AutoRechargeCard.d.ts +3 -3
  15. package/billing/AutoRechargeCard.d.ts.map +1 -1
  16. package/billing/AutoRechargeCard.js +4 -4
  17. package/billing/AutoRechargeCard.js.map +1 -1
  18. package/billing/BillingSection.d.ts.map +1 -1
  19. package/billing/BillingSection.js +7 -6
  20. package/billing/BillingSection.js.map +1 -1
  21. package/billing/CreditLedgerTable.d.ts +3 -3
  22. package/billing/CreditLedgerTable.d.ts.map +1 -1
  23. package/billing/CreditLedgerTable.js +3 -3
  24. package/billing/CreditLedgerTable.js.map +1 -1
  25. package/billing/CreditPackGrid.d.ts +1 -1
  26. package/billing/CreditPackGrid.js +1 -1
  27. package/billing/PaymentMethodCard.d.ts +1 -1
  28. package/billing/PaymentMethodCard.js +1 -1
  29. package/billing/PlanSection.d.ts +3 -3
  30. package/billing/PlanSection.d.ts.map +1 -1
  31. package/billing/PlanSection.js +4 -3
  32. package/billing/PlanSection.js.map +1 -1
  33. package/billing/ProviderKeysSection.js +13 -13
  34. package/billing/ProviderKeysSection.js.map +1 -1
  35. package/billing/plan-features.js +1 -1
  36. package/billing/plan-features.js.map +1 -1
  37. package/billing/useBillingAccount.d.ts +4 -4
  38. package/billing/useBillingAccount.d.ts.map +1 -1
  39. package/billing/useBillingAccount.js +7 -7
  40. package/billing/useBillingAccount.js.map +1 -1
  41. package/billing/useBillingUsageReport.d.ts +4 -4
  42. package/billing/useBillingUsageReport.d.ts.map +1 -1
  43. package/billing/useBillingUsageReport.js +7 -7
  44. package/billing/useBillingUsageReport.js.map +1 -1
  45. package/billing/useChangePlan.d.ts +2 -2
  46. package/billing/useChangePlan.d.ts.map +1 -1
  47. package/billing/useChangePlan.js +4 -4
  48. package/billing/useChangePlan.js.map +1 -1
  49. package/billing/useCreateBillingPortalSession.d.ts +2 -2
  50. package/billing/useCreateBillingPortalSession.d.ts.map +1 -1
  51. package/billing/useCreateBillingPortalSession.js +3 -3
  52. package/billing/useCreateBillingPortalSession.js.map +1 -1
  53. package/billing/useCreateCheckoutSession.d.ts +2 -2
  54. package/billing/useCreateCheckoutSession.d.ts.map +1 -1
  55. package/billing/useCreateCheckoutSession.js +2 -2
  56. package/billing/useCreateCheckoutSession.js.map +1 -1
  57. package/billing/useCreatePaymentMethodSetupSession.d.ts +1 -1
  58. package/billing/useCreatePaymentMethodSetupSession.d.ts.map +1 -1
  59. package/billing/useCreatePaymentMethodSetupSession.js +2 -2
  60. package/billing/useCreatePaymentMethodSetupSession.js.map +1 -1
  61. package/billing/useCreditLedger.d.ts +4 -4
  62. package/billing/useCreditLedger.d.ts.map +1 -1
  63. package/billing/useCreditLedger.js +7 -7
  64. package/billing/useCreditLedger.js.map +1 -1
  65. package/billing/useCustomerModelPricing.d.ts +4 -4
  66. package/billing/useCustomerModelPricing.d.ts.map +1 -1
  67. package/billing/useCustomerModelPricing.js +6 -6
  68. package/billing/useCustomerModelPricing.js.map +1 -1
  69. package/billing/useEntitlements.d.ts +2 -2
  70. package/billing/useEntitlements.d.ts.map +1 -1
  71. package/billing/useEntitlements.js +4 -4
  72. package/billing/useEntitlements.js.map +1 -1
  73. package/billing/usePeriodEstimate.d.ts +1 -1
  74. package/billing/usePeriodEstimate.d.ts.map +1 -1
  75. package/billing/usePeriodEstimate.js +3 -3
  76. package/billing/usePeriodEstimate.js.map +1 -1
  77. package/billing/useProviderKeys.d.ts +5 -5
  78. package/billing/useProviderKeys.d.ts.map +1 -1
  79. package/billing/useProviderKeys.js +7 -7
  80. package/billing/useProviderKeys.js.map +1 -1
  81. package/billing/useSetAutoRechargeConfig.d.ts +2 -2
  82. package/billing/useSetAutoRechargeConfig.d.ts.map +1 -1
  83. package/billing/useSetAutoRechargeConfig.js +2 -2
  84. package/billing/useSetAutoRechargeConfig.js.map +1 -1
  85. package/billing/useSubscription.d.ts +3 -3
  86. package/billing/useSubscription.d.ts.map +1 -1
  87. package/billing/useSubscription.js +7 -7
  88. package/billing/useSubscription.js.map +1 -1
  89. package/channel-app/ChannelAppListPanel.d.ts.map +1 -1
  90. package/channel-app/ChannelAppListPanel.js +2 -1
  91. package/channel-app/ChannelAppListPanel.js.map +1 -1
  92. package/channel-app/slackAppSetup.d.ts +0 -23
  93. package/channel-app/slackAppSetup.d.ts.map +1 -1
  94. package/channel-app/slackAppSetup.js +3 -2
  95. package/channel-app/slackAppSetup.js.map +1 -1
  96. package/channel-app/whatsappAppSetup.d.ts +0 -26
  97. package/channel-app/whatsappAppSetup.d.ts.map +1 -1
  98. package/channel-app/whatsappAppSetup.js +2 -1
  99. package/channel-app/whatsappAppSetup.js.map +1 -1
  100. package/cursor-accounts/CursorAccountEditor.js +3 -3
  101. package/cursor-accounts/CursorAccountEditor.js.map +1 -1
  102. package/cursor-accounts/CursorAccountsConsole.js +3 -3
  103. package/cursor-accounts/CursorAccountsConsole.js.map +1 -1
  104. package/dashboard/OperationalDashboard.d.ts +1 -4
  105. package/dashboard/OperationalDashboard.d.ts.map +1 -1
  106. package/dashboard/OperationalDashboard.js +1 -3
  107. package/dashboard/OperationalDashboard.js.map +1 -1
  108. package/dashboard/useDashboardSummary.d.ts +1 -3
  109. package/dashboard/useDashboardSummary.d.ts.map +1 -1
  110. package/dashboard/useDashboardSummary.js +1 -1
  111. package/dashboard/useDashboardSummary.js.map +1 -1
  112. package/environment/EnvironmentListPanel.d.ts.map +1 -1
  113. package/environment/EnvironmentListPanel.js +2 -1
  114. package/environment/EnvironmentListPanel.js.map +1 -1
  115. package/environment/EnvironmentVariableEditor.d.ts.map +1 -1
  116. package/environment/EnvironmentVariableEditor.js +2 -1
  117. package/environment/EnvironmentVariableEditor.js.map +1 -1
  118. package/execution/ArtifactFileContent.d.ts.map +1 -1
  119. package/execution/ArtifactFileContent.js +2 -1
  120. package/execution/ArtifactFileContent.js.map +1 -1
  121. package/execution/McpToolDetail.d.ts.map +1 -1
  122. package/execution/McpToolDetail.js +2 -1
  123. package/execution/McpToolDetail.js.map +1 -1
  124. package/execution/ResultView.d.ts.map +1 -1
  125. package/execution/ResultView.js +2 -1
  126. package/execution/ResultView.js.map +1 -1
  127. package/execution/TerminalSession.js +1 -1
  128. package/execution/TerminalSession.js.map +1 -1
  129. package/execution/ThreadSkeleton.d.ts.map +1 -1
  130. package/execution/ThreadSkeleton.js +2 -1
  131. package/execution/ThreadSkeleton.js.map +1 -1
  132. package/execution/file-path-resolver.d.ts.map +1 -1
  133. package/execution/file-path-resolver.js +3 -2
  134. package/execution/file-path-resolver.js.map +1 -1
  135. package/execution/sandbox-path-normalizer.d.ts +0 -11
  136. package/execution/sandbox-path-normalizer.d.ts.map +1 -1
  137. package/execution/sandbox-path-normalizer.js +2 -1
  138. package/execution/sandbox-path-normalizer.js.map +1 -1
  139. package/github/parseGitUrl.d.ts.map +1 -1
  140. package/github/parseGitUrl.js +16 -4
  141. package/github/parseGitUrl.js.map +1 -1
  142. package/iam-policy/GrantAccessForm.d.ts +3 -3
  143. package/iam-policy/GrantAccessForm.d.ts.map +1 -1
  144. package/iam-policy/GrantAccessForm.js +3 -3
  145. package/iam-policy/GrantAccessForm.js.map +1 -1
  146. package/iam-policy/OrgMembersPanel.d.ts +3 -3
  147. package/iam-policy/OrgMembersPanel.d.ts.map +1 -1
  148. package/iam-policy/OrgMembersPanel.js +4 -3
  149. package/iam-policy/OrgMembersPanel.js.map +1 -1
  150. package/iam-policy/PeopleWithAccess.d.ts +2 -2
  151. package/iam-policy/PeopleWithAccess.d.ts.map +1 -1
  152. package/iam-policy/PeopleWithAccess.js +2 -2
  153. package/iam-policy/PeopleWithAccess.js.map +1 -1
  154. package/iam-policy/PrincipalPicker.d.ts +2 -2
  155. package/iam-policy/PrincipalPicker.d.ts.map +1 -1
  156. package/iam-policy/PrincipalPicker.js +2 -2
  157. package/iam-policy/PrincipalPicker.js.map +1 -1
  158. package/iam-policy/SharePanel.d.ts +3 -3
  159. package/iam-policy/SharePanel.d.ts.map +1 -1
  160. package/iam-policy/SharePanel.js +3 -3
  161. package/iam-policy/SharePanel.js.map +1 -1
  162. package/iam-policy/useCreateIamPolicy.d.ts +1 -1
  163. package/iam-policy/useCreateIamPolicy.js +1 -1
  164. package/iam-policy/useDeleteIamPolicy.d.ts +1 -1
  165. package/iam-policy/useDeleteIamPolicy.js +1 -1
  166. package/iam-policy/useGranteeCandidates.d.ts +3 -3
  167. package/iam-policy/useGranteeCandidates.d.ts.map +1 -1
  168. package/iam-policy/useGranteeCandidates.js +2 -2
  169. package/iam-policy/useGranteeCandidates.js.map +1 -1
  170. package/iam-policy/useOwnerAssignment.d.ts +2 -2
  171. package/iam-policy/useOwnerAssignment.d.ts.map +1 -1
  172. package/iam-policy/useOwnerAssignment.js +3 -3
  173. package/iam-policy/useOwnerAssignment.js.map +1 -1
  174. package/iam-policy/usePrincipalsCount.d.ts +4 -4
  175. package/iam-policy/usePrincipalsCount.d.ts.map +1 -1
  176. package/iam-policy/usePrincipalsCount.js +7 -7
  177. package/iam-policy/usePrincipalsCount.js.map +1 -1
  178. package/iam-policy/useResourceAccess.d.ts +1 -1
  179. package/iam-policy/useResourceAccess.js +1 -1
  180. package/iam-policy/useRevokeOrgAccess.d.ts +1 -1
  181. package/iam-policy/useRevokeOrgAccess.d.ts.map +1 -1
  182. package/iam-policy/useRevokeOrgAccess.js +2 -2
  183. package/iam-policy/useRevokeOrgAccess.js.map +1 -1
  184. package/identity-account/AccountPreferencesPanel.d.ts.map +1 -1
  185. package/identity-account/AccountPreferencesPanel.js +2 -1
  186. package/identity-account/AccountPreferencesPanel.js.map +1 -1
  187. package/identity-provider/IdentityProviderDetailPanel.js +4 -4
  188. package/identity-provider/IdentityProviderDetailPanel.js.map +1 -1
  189. package/identity-provider/IdentityProviderListPanel.d.ts.map +1 -1
  190. package/identity-provider/IdentityProviderListPanel.js +2 -1
  191. package/identity-provider/IdentityProviderListPanel.js.map +1 -1
  192. package/identity-provider/IdentityProviderWizard.js +1 -1
  193. package/identity-provider/IdentityProviderWizard.js.map +1 -1
  194. package/identity-provider/SsoLoginPrompt.js +2 -1
  195. package/identity-provider/SsoLoginPrompt.js.map +1 -1
  196. package/identity-provider/useIdentityProviderList.d.ts +2 -2
  197. package/identity-provider/useIdentityProviderList.js +2 -2
  198. package/index.d.ts +1 -1
  199. package/index.d.ts.map +1 -1
  200. package/index.js +1 -1
  201. package/index.js.map +1 -1
  202. package/inline-edit/InlineEditImage.d.ts +4 -0
  203. package/inline-edit/InlineEditImage.d.ts.map +1 -1
  204. package/inline-edit/InlineEditImage.js +12 -11
  205. package/inline-edit/InlineEditImage.js.map +1 -1
  206. package/inline-edit/InlineEditText.d.ts +4 -0
  207. package/inline-edit/InlineEditText.d.ts.map +1 -1
  208. package/inline-edit/InlineEditText.js +12 -11
  209. package/inline-edit/InlineEditText.js.map +1 -1
  210. package/inline-edit/InlineEditTextarea.d.ts +4 -0
  211. package/inline-edit/InlineEditTextarea.d.ts.map +1 -1
  212. package/inline-edit/InlineEditTextarea.js +11 -16
  213. package/inline-edit/InlineEditTextarea.js.map +1 -1
  214. package/inline-edit/useInlineDraft.d.ts +26 -0
  215. package/inline-edit/useInlineDraft.d.ts.map +1 -0
  216. package/inline-edit/useInlineDraft.js +61 -0
  217. package/inline-edit/useInlineDraft.js.map +1 -0
  218. package/internal/DialogShell.d.ts +21 -0
  219. package/internal/DialogShell.d.ts.map +1 -1
  220. package/internal/DialogShell.js +51 -4
  221. package/internal/DialogShell.js.map +1 -1
  222. package/internal/LoadingRegion.d.ts +35 -0
  223. package/internal/LoadingRegion.d.ts.map +1 -0
  224. package/internal/LoadingRegion.js +33 -0
  225. package/internal/LoadingRegion.js.map +1 -0
  226. package/internal/markdown-components.d.ts.map +1 -1
  227. package/internal/markdown-components.js +18 -4
  228. package/internal/markdown-components.js.map +1 -1
  229. package/internal/trim.d.ts +7 -0
  230. package/internal/trim.d.ts.map +1 -0
  231. package/internal/trim.js +12 -0
  232. package/internal/trim.js.map +1 -0
  233. package/invitation/InvitationManager.d.ts.map +1 -1
  234. package/invitation/InvitationManager.js +2 -1
  235. package/invitation/InvitationManager.js.map +1 -1
  236. package/invitation/InvitationRedemption.d.ts.map +1 -1
  237. package/invitation/InvitationRedemption.js +5 -4
  238. package/invitation/InvitationRedemption.js.map +1 -1
  239. package/invitation/useInvitationPreview.d.ts +1 -1
  240. package/invitation/useInvitationPreview.js +1 -1
  241. package/licenses/LicenseDetail.d.ts.map +1 -1
  242. package/licenses/LicenseDetail.js +3 -3
  243. package/licenses/LicenseDetail.js.map +1 -1
  244. package/licenses/LicenseIssueForm.js +6 -6
  245. package/licenses/LicenseIssueForm.js.map +1 -1
  246. package/licenses/license-draft.d.ts +1 -1
  247. package/licenses/license-draft.d.ts.map +1 -1
  248. package/licenses/license-draft.js +3 -3
  249. package/licenses/license-draft.js.map +1 -1
  250. package/licenses/license-format.js +1 -1
  251. package/licenses/license-format.js.map +1 -1
  252. package/mcp-server/McpServerDetailView.d.ts.map +1 -1
  253. package/mcp-server/McpServerDetailView.js +2 -1
  254. package/mcp-server/McpServerDetailView.js.map +1 -1
  255. package/memory/MemoryListPanel.d.ts.map +1 -1
  256. package/memory/MemoryListPanel.js +2 -1
  257. package/memory/MemoryListPanel.js.map +1 -1
  258. package/oauth-app/OAuthAppListPanel.d.ts.map +1 -1
  259. package/oauth-app/OAuthAppListPanel.js +2 -1
  260. package/oauth-app/OAuthAppListPanel.js.map +1 -1
  261. package/organization/OrgPreferencesPanel.d.ts +3 -3
  262. package/organization/OrgPreferencesPanel.d.ts.map +1 -1
  263. package/organization/OrgPreferencesPanel.js +6 -5
  264. package/organization/OrgPreferencesPanel.js.map +1 -1
  265. package/organization/OrgProfilePanel.d.ts +3 -3
  266. package/organization/OrgProfilePanel.d.ts.map +1 -1
  267. package/organization/OrgProfilePanel.js +8 -7
  268. package/organization/OrgProfilePanel.js.map +1 -1
  269. package/organization/index.d.ts +1 -0
  270. package/organization/index.d.ts.map +1 -1
  271. package/organization/index.js +1 -0
  272. package/organization/index.js.map +1 -1
  273. package/organization/useFollowSessionOrganization.d.ts +9 -0
  274. package/organization/useFollowSessionOrganization.d.ts.map +1 -0
  275. package/organization/useFollowSessionOrganization.js +52 -0
  276. package/organization/useFollowSessionOrganization.js.map +1 -0
  277. package/package.json +5 -5
  278. package/plan-catalog/plan-draft.js +3 -3
  279. package/plan-catalog/plan-draft.js.map +1 -1
  280. package/platform-client/PlatformClientListPanel.d.ts.map +1 -1
  281. package/platform-client/PlatformClientListPanel.js +2 -1
  282. package/platform-client/PlatformClientListPanel.js.map +1 -1
  283. package/plugin/PluginDetailView.d.ts.map +1 -1
  284. package/plugin/PluginDetailView.js +2 -1
  285. package/plugin/PluginDetailView.js.map +1 -1
  286. package/portal-container.d.ts +8 -0
  287. package/portal-container.d.ts.map +1 -1
  288. package/portal-container.js +8 -0
  289. package/portal-container.js.map +1 -1
  290. package/provider.d.ts +4 -1
  291. package/provider.d.ts.map +1 -1
  292. package/provider.js +4 -1
  293. package/provider.js.map +1 -1
  294. package/public-base-url-context.d.ts.map +1 -1
  295. package/public-base-url-context.js +2 -1
  296. package/public-base-url-context.js.map +1 -1
  297. package/schedule/ScheduleDetailView.d.ts.map +1 -1
  298. package/schedule/ScheduleDetailView.js +2 -1
  299. package/schedule/ScheduleDetailView.js.map +1 -1
  300. package/session/SessionViewer.d.ts +7 -2
  301. package/session/SessionViewer.d.ts.map +1 -1
  302. package/session/SessionViewer.js +7 -2
  303. package/session/SessionViewer.js.map +1 -1
  304. package/session/useSessionConversation.d.ts +10 -1
  305. package/session/useSessionConversation.d.ts.map +1 -1
  306. package/session/useSessionConversation.js +5 -3
  307. package/session/useSessionConversation.js.map +1 -1
  308. package/settings/EnvironmentsSection.d.ts.map +1 -1
  309. package/settings/EnvironmentsSection.js +2 -1
  310. package/settings/EnvironmentsSection.js.map +1 -1
  311. package/settings/MembersSection.js +2 -2
  312. package/settings/MembersSection.js.map +1 -1
  313. package/settings/OrgPreferencesSection.js +1 -1
  314. package/settings/OrgPreferencesSection.js.map +1 -1
  315. package/settings/OrgProfileSection.js +1 -1
  316. package/settings/OrgProfileSection.js.map +1 -1
  317. package/settings/TeamsSection.js +1 -1
  318. package/settings/TeamsSection.js.map +1 -1
  319. package/settings/UsageSection.js +1 -1
  320. package/settings/UsageSection.js.map +1 -1
  321. package/sharing/ShareAgentDialog.d.ts.map +1 -1
  322. package/sharing/ShareAgentDialog.js +2 -1
  323. package/sharing/ShareAgentDialog.js.map +1 -1
  324. package/sharing/SharedAgentChat.d.ts.map +1 -1
  325. package/sharing/SharedAgentChat.js +2 -1
  326. package/sharing/SharedAgentChat.js.map +1 -1
  327. package/sidebar/WorkspaceSidebar.d.ts.map +1 -1
  328. package/sidebar/WorkspaceSidebar.js +2 -1
  329. package/sidebar/WorkspaceSidebar.js.map +1 -1
  330. package/skill/SkillDetailView.d.ts.map +1 -1
  331. package/skill/SkillDetailView.js +2 -1
  332. package/skill/SkillDetailView.js.map +1 -1
  333. package/skill/SkillDiffDialog.d.ts.map +1 -1
  334. package/skill/SkillDiffDialog.js +2 -1
  335. package/skill/SkillDiffDialog.js.map +1 -1
  336. package/skill/SkillFileBrowser.d.ts.map +1 -1
  337. package/skill/SkillFileBrowser.js +2 -1
  338. package/skill/SkillFileBrowser.js.map +1 -1
  339. package/src/access/ManageAccessButton.tsx +1 -1
  340. package/src/access/ManageAccessDialog.tsx +1 -1
  341. package/src/agent/AgentDetailView.tsx +4 -4
  342. package/src/api-key/ApiKeyListPanel.tsx +4 -4
  343. package/src/attachment/AttachmentImageLightbox.tsx +3 -4
  344. package/src/billing/AutoRechargeCard.tsx +5 -5
  345. package/src/billing/BillingSection.tsx +10 -9
  346. package/src/billing/CreditLedgerTable.tsx +4 -4
  347. package/src/billing/CreditPackGrid.tsx +1 -1
  348. package/src/billing/PaymentMethodCard.tsx +1 -1
  349. package/src/billing/PlanSection.tsx +6 -5
  350. package/src/billing/ProviderKeysSection.tsx +15 -15
  351. package/src/billing/plan-features.ts +1 -1
  352. package/src/billing/useBillingAccount.ts +7 -7
  353. package/src/billing/useBillingUsageReport.ts +7 -7
  354. package/src/billing/useChangePlan.ts +6 -6
  355. package/src/billing/useCreateBillingPortalSession.ts +4 -4
  356. package/src/billing/useCreateCheckoutSession.ts +3 -3
  357. package/src/billing/useCreatePaymentMethodSetupSession.ts +3 -3
  358. package/src/billing/useCreditLedger.ts +7 -7
  359. package/src/billing/useCustomerModelPricing.ts +7 -7
  360. package/src/billing/useEntitlements.ts +5 -5
  361. package/src/billing/usePeriodEstimate.ts +4 -4
  362. package/src/billing/useProviderKeys.ts +12 -12
  363. package/src/billing/useSetAutoRechargeConfig.ts +3 -3
  364. package/src/billing/useSubscription.ts +7 -7
  365. package/src/channel-app/ChannelAppListPanel.tsx +4 -4
  366. package/src/channel-app/slackAppSetup.ts +3 -2
  367. package/src/channel-app/whatsappAppSetup.ts +2 -1
  368. package/src/cursor-accounts/CursorAccountEditor.tsx +3 -3
  369. package/src/cursor-accounts/CursorAccountsConsole.tsx +5 -5
  370. package/src/dashboard/OperationalDashboard.tsx +1 -6
  371. package/src/dashboard/useDashboardSummary.ts +2 -4
  372. package/src/environment/EnvironmentListPanel.tsx +4 -4
  373. package/src/environment/EnvironmentVariableEditor.tsx +4 -4
  374. package/src/execution/ArtifactFileContent.tsx +3 -2
  375. package/src/execution/McpToolDetail.tsx +3 -3
  376. package/src/execution/ResultView.tsx +3 -3
  377. package/src/execution/TerminalSession.tsx +1 -1
  378. package/src/execution/ThreadSkeleton.tsx +4 -4
  379. package/src/execution/file-path-resolver.ts +3 -2
  380. package/src/execution/sandbox-path-normalizer.ts +2 -1
  381. package/src/github/parseGitUrl.ts +13 -4
  382. package/src/iam-policy/GrantAccessForm.tsx +4 -4
  383. package/src/iam-policy/OrgMembersPanel.tsx +7 -7
  384. package/src/iam-policy/PeopleWithAccess.tsx +3 -3
  385. package/src/iam-policy/PrincipalPicker.tsx +3 -3
  386. package/src/iam-policy/SharePanel.tsx +4 -4
  387. package/src/iam-policy/useCreateIamPolicy.ts +1 -1
  388. package/src/iam-policy/useDeleteIamPolicy.ts +1 -1
  389. package/src/iam-policy/useGranteeCandidates.ts +3 -3
  390. package/src/iam-policy/useOwnerAssignment.ts +3 -3
  391. package/src/iam-policy/usePrincipalsCount.ts +7 -7
  392. package/src/iam-policy/useResourceAccess.ts +1 -1
  393. package/src/iam-policy/useRevokeOrgAccess.ts +3 -3
  394. package/src/identity-account/AccountPreferencesPanel.tsx +4 -4
  395. package/src/identity-provider/IdentityProviderDetailPanel.tsx +3 -9
  396. package/src/identity-provider/IdentityProviderListPanel.tsx +4 -4
  397. package/src/identity-provider/IdentityProviderWizard.tsx +1 -1
  398. package/src/identity-provider/SsoLoginPrompt.tsx +6 -5
  399. package/src/identity-provider/useIdentityProviderList.ts +2 -2
  400. package/src/index.ts +1 -0
  401. package/src/inline-edit/InlineEditImage.tsx +13 -11
  402. package/src/inline-edit/InlineEditText.tsx +13 -11
  403. package/src/inline-edit/InlineEditTextarea.tsx +12 -16
  404. package/src/inline-edit/useInlineDraft.ts +85 -0
  405. package/src/internal/DialogShell.tsx +80 -3
  406. package/src/internal/LoadingRegion.tsx +46 -0
  407. package/src/internal/loading-region-markup.json +71 -0
  408. package/src/internal/markdown-components.tsx +15 -4
  409. package/src/internal/trim.ts +10 -0
  410. package/src/invitation/InvitationManager.tsx +4 -4
  411. package/src/invitation/InvitationRedemption.tsx +7 -7
  412. package/src/invitation/useInvitationPreview.ts +1 -1
  413. package/src/licenses/LicenseDetail.tsx +8 -6
  414. package/src/licenses/LicenseIssueForm.tsx +6 -6
  415. package/src/licenses/license-draft.ts +4 -4
  416. package/src/licenses/license-format.ts +1 -1
  417. package/src/mcp-server/McpServerDetailView.tsx +4 -4
  418. package/src/memory/MemoryListPanel.tsx +4 -4
  419. package/src/oauth-app/OAuthAppListPanel.tsx +4 -4
  420. package/src/organization/OrgPreferencesPanel.tsx +9 -9
  421. package/src/organization/OrgProfilePanel.tsx +12 -12
  422. package/src/organization/index.ts +1 -0
  423. package/src/organization/useFollowSessionOrganization.ts +54 -0
  424. package/src/plan-catalog/plan-draft.ts +3 -3
  425. package/src/platform-client/PlatformClientListPanel.tsx +4 -4
  426. package/src/plugin/PluginDetailView.tsx +3 -2
  427. package/src/portal-container.ts +8 -0
  428. package/src/provider.tsx +4 -1
  429. package/src/public-base-url-context.ts +2 -1
  430. package/src/schedule/ScheduleDetailView.tsx +4 -4
  431. package/src/session/SessionViewer.tsx +13 -3
  432. package/src/session/useSessionConversation.ts +14 -3
  433. package/src/settings/EnvironmentsSection.tsx +3 -2
  434. package/src/settings/MembersSection.tsx +3 -3
  435. package/src/settings/OrgPreferencesSection.tsx +1 -1
  436. package/src/settings/OrgProfileSection.tsx +1 -1
  437. package/src/settings/TeamsSection.tsx +1 -1
  438. package/src/settings/UsageSection.tsx +1 -1
  439. package/src/sharing/ShareAgentDialog.tsx +2 -1
  440. package/src/sharing/SharedAgentChat.tsx +4 -4
  441. package/src/sidebar/WorkspaceSidebar.tsx +3 -2
  442. package/src/skill/SkillDetailView.tsx +4 -4
  443. package/src/skill/SkillDiffDialog.tsx +4 -4
  444. package/src/skill/SkillFileBrowser.tsx +4 -4
  445. package/src/team/TeamDetailPanel.tsx +3 -3
  446. package/src/team/TeamListPanel.tsx +3 -2
  447. package/src/team/TeamMembersPanel.tsx +3 -3
  448. package/src/usage/OrgUsagePanel.tsx +9 -9
  449. package/src/usage/useExportCSV.ts +9 -9
  450. package/src/usage/useOrgUsageReport.ts +7 -7
  451. package/src/version-history/VersionTimeline.tsx +4 -4
  452. package/src/workflow/WorkflowVersionDiffViewer.tsx +4 -4
  453. package/src/workflow/WorkflowVersionTimeline.tsx +4 -4
  454. package/src/workflow/useDiagnoseExecutionFlow.ts +23 -18
  455. package/src/workflow/useExplainWorkflowFlow.ts +7 -3
  456. package/src/workflow/useRefineWorkflowFlow.ts +17 -10
  457. package/src/workflow/useWorkflowArchitectFlow.ts +7 -3
  458. package/src/workspace/ExplorerTree.tsx +4 -8
  459. package/src/workspace/FileViewer.tsx +4 -5
  460. package/styles.css +1 -1
  461. package/team/TeamDetailPanel.d.ts +2 -2
  462. package/team/TeamDetailPanel.d.ts.map +1 -1
  463. package/team/TeamDetailPanel.js +2 -2
  464. package/team/TeamDetailPanel.js.map +1 -1
  465. package/team/TeamListPanel.d.ts.map +1 -1
  466. package/team/TeamListPanel.js +2 -1
  467. package/team/TeamListPanel.js.map +1 -1
  468. package/team/TeamMembersPanel.d.ts +2 -2
  469. package/team/TeamMembersPanel.d.ts.map +1 -1
  470. package/team/TeamMembersPanel.js +2 -2
  471. package/team/TeamMembersPanel.js.map +1 -1
  472. package/usage/OrgUsagePanel.d.ts +3 -3
  473. package/usage/OrgUsagePanel.d.ts.map +1 -1
  474. package/usage/OrgUsagePanel.js +6 -5
  475. package/usage/OrgUsagePanel.js.map +1 -1
  476. package/usage/useExportCSV.d.ts +2 -2
  477. package/usage/useExportCSV.d.ts.map +1 -1
  478. package/usage/useExportCSV.js +9 -9
  479. package/usage/useExportCSV.js.map +1 -1
  480. package/usage/useOrgUsageReport.d.ts +4 -4
  481. package/usage/useOrgUsageReport.d.ts.map +1 -1
  482. package/usage/useOrgUsageReport.js +7 -7
  483. package/usage/useOrgUsageReport.js.map +1 -1
  484. package/version-history/VersionTimeline.d.ts.map +1 -1
  485. package/version-history/VersionTimeline.js +2 -1
  486. package/version-history/VersionTimeline.js.map +1 -1
  487. package/workflow/WorkflowVersionDiffViewer.d.ts.map +1 -1
  488. package/workflow/WorkflowVersionDiffViewer.js +2 -1
  489. package/workflow/WorkflowVersionDiffViewer.js.map +1 -1
  490. package/workflow/WorkflowVersionTimeline.d.ts.map +1 -1
  491. package/workflow/WorkflowVersionTimeline.js +2 -1
  492. package/workflow/WorkflowVersionTimeline.js.map +1 -1
  493. package/workflow/useDiagnoseExecutionFlow.d.ts.map +1 -1
  494. package/workflow/useDiagnoseExecutionFlow.js +23 -18
  495. package/workflow/useDiagnoseExecutionFlow.js.map +1 -1
  496. package/workflow/useExplainWorkflowFlow.d.ts.map +1 -1
  497. package/workflow/useExplainWorkflowFlow.js +7 -3
  498. package/workflow/useExplainWorkflowFlow.js.map +1 -1
  499. package/workflow/useRefineWorkflowFlow.d.ts.map +1 -1
  500. package/workflow/useRefineWorkflowFlow.js +14 -10
  501. package/workflow/useRefineWorkflowFlow.js.map +1 -1
  502. package/workflow/useWorkflowArchitectFlow.d.ts.map +1 -1
  503. package/workflow/useWorkflowArchitectFlow.js +7 -3
  504. package/workflow/useWorkflowArchitectFlow.js.map +1 -1
  505. package/workspace/ExplorerTree.d.ts.map +1 -1
  506. package/workspace/ExplorerTree.js +2 -5
  507. package/workspace/ExplorerTree.js.map +1 -1
  508. package/workspace/FileViewer.d.ts.map +1 -1
  509. package/workspace/FileViewer.js +2 -1
  510. package/workspace/FileViewer.js.map +1 -1
@@ -41,13 +41,13 @@ export interface UseBillingAccountReturn {
41
41
  * the embedded `CreditBalance` with available, reserved,
42
42
  * promotional, and purchased breakdowns.
43
43
  *
44
- * Pass `null` as `orgId` to skip fetching (stable no-op).
44
+ * Pass `null` as `org` to skip fetching (stable no-op).
45
45
  *
46
- * @param orgId - Organization ID, or `null` to skip.
46
+ * @param org - Organization ID, or `null` to skip.
47
47
  *
48
48
  * @example
49
49
  * ```tsx
50
- * const { account, isLoading, error } = useBillingAccount(orgId);
50
+ * const { account, isLoading, error } = useBillingAccount(org);
51
51
  *
52
52
  * if (isLoading) return <Skeleton />;
53
53
  * if (error) return <ErrorMessage error={error} />;
@@ -57,17 +57,17 @@ export interface UseBillingAccountReturn {
57
57
  * ```
58
58
  */
59
59
  export function useBillingAccount(
60
- orgId: string | null,
60
+ org: string | null,
61
61
  options?: UseBillingAccountOptions,
62
62
  ): UseBillingAccountReturn {
63
63
  const stigmer = useStigmer();
64
64
 
65
65
  const { data: account, isLoading, isRefetching, error, refetch } = useFetch(
66
- orgId
66
+ org
67
67
  ? () =>
68
- stigmer.billing.getOrCreateBillingAccount(orgId)
68
+ stigmer.billing.getOrCreateBillingAccount(org)
69
69
  : null,
70
- [orgId, stigmer],
70
+ [org, stigmer],
71
71
  null as BillingAccount | null,
72
72
  { refetchOnWindowFocus: options?.refetchOnWindowFocus ?? false },
73
73
  );
@@ -26,16 +26,16 @@ export interface UseBillingUsageReportReturn {
26
26
  * Returns total provider cost, total billable amount, execution and LLM
27
27
  * call counts, and a per-model breakdown with cost tier attribution.
28
28
  *
29
- * Pass `null` as `orgId` to skip fetching (stable no-op).
29
+ * Pass `null` as `org` to skip fetching (stable no-op).
30
30
  *
31
- * @param orgId - Organization ID, or `null` to skip.
31
+ * @param org - Organization ID, or `null` to skip.
32
32
  * @param startTime - Start of the reporting period.
33
33
  * @param endTime - End of the reporting period.
34
34
  *
35
35
  * @example
36
36
  * ```tsx
37
37
  * const { report, isLoading } = useBillingUsageReport(
38
- * orgId,
38
+ * org,
39
39
  * new Date("2026-05-01"),
40
40
  * new Date("2026-05-31"),
41
41
  * );
@@ -47,7 +47,7 @@ export interface UseBillingUsageReportReturn {
47
47
  * ```
48
48
  */
49
49
  export function useBillingUsageReport(
50
- orgId: string | null,
50
+ org: string | null,
51
51
  startTime: Date,
52
52
  endTime: Date,
53
53
  ): UseBillingUsageReportReturn {
@@ -57,15 +57,15 @@ export function useBillingUsageReport(
57
57
  const endKey = endTime.toISOString();
58
58
 
59
59
  const { data: report, isLoading, isRefetching, error, refetch } = useFetch(
60
- orgId
60
+ org
61
61
  ? () =>
62
62
  stigmer.billing.getBillingUsageReport({
63
- orgId,
63
+ org,
64
64
  startTime,
65
65
  endTime,
66
66
  })
67
67
  : null,
68
- [orgId, startKey, endKey, stigmer],
68
+ [org, startKey, endKey, stigmer],
69
69
  null as BillingUsageReportResponse | null,
70
70
  );
71
71
 
@@ -24,7 +24,7 @@ export interface UseChangePlanReturn {
24
24
  * {@link useCreatePaymentMethodSetupSession}). Resolves with the
25
25
  * subscription as it stands after the change.
26
26
  */
27
- readonly changePlan: (orgId: string, planId: string) => Promise<Subscription>;
27
+ readonly changePlan: (org: string, planId: string) => Promise<Subscription>;
28
28
  /** `true` while a change is in flight. */
29
29
  readonly isSubmitting: boolean;
30
30
  /** Error from the last failed attempt, or `null` when healthy. */
@@ -45,11 +45,11 @@ export function useChangePlan(): UseChangePlanReturn {
45
45
  const [error, setError] = useState<Error | null>(null);
46
46
 
47
47
  const changePlan = useCallback(
48
- async (orgId: string, planId: string): Promise<Subscription> => {
48
+ async (org: string, planId: string): Promise<Subscription> => {
49
49
  setIsSubmitting(true);
50
50
  setError(null);
51
51
  try {
52
- return await stigmer.subscription.changePlan(create(ChangePlanInputSchema, { orgId, planId }));
52
+ return await stigmer.subscription.changePlan(create(ChangePlanInputSchema, { org, planId }));
53
53
  } catch (e) {
54
54
  const err = toError(e);
55
55
  setError(err);
@@ -75,7 +75,7 @@ export interface UseCancelSubscriptionReturn {
75
75
  * of the current period and is on Free after it; nothing it built is
76
76
  * deleted. Choosing the same plan again before then resumes it.
77
77
  */
78
- readonly cancel: (orgId: string) => Promise<Subscription>;
78
+ readonly cancel: (org: string) => Promise<Subscription>;
79
79
  /** `true` while a cancel is in flight. */
80
80
  readonly isSubmitting: boolean;
81
81
  /** Error from the last failed attempt, or `null` when healthy. */
@@ -94,11 +94,11 @@ export function useCancelSubscription(): UseCancelSubscriptionReturn {
94
94
  const [error, setError] = useState<Error | null>(null);
95
95
 
96
96
  const cancel = useCallback(
97
- async (orgId: string): Promise<Subscription> => {
97
+ async (org: string): Promise<Subscription> => {
98
98
  setIsSubmitting(true);
99
99
  setError(null);
100
100
  try {
101
- return await stigmer.subscription.cancel(create(CancelSubscriptionInputSchema, { orgId }));
101
+ return await stigmer.subscription.cancel(create(CancelSubscriptionInputSchema, { org }));
102
102
  } catch (e) {
103
103
  const err = toError(e);
104
104
  setError(err);
@@ -15,7 +15,7 @@ export interface UseCreateBillingPortalSessionReturn {
15
15
  * portal returns to `redirect.returnUrl` when given, else to the page
16
16
  * the person is on.
17
17
  */
18
- readonly openPortal: (orgId: string) => Promise<void>;
18
+ readonly openPortal: (org: string) => Promise<void>;
19
19
  /** `true` while the portal session is being created. */
20
20
  readonly isLoading: boolean;
21
21
  /** Error from the last failed attempt, or `null` when healthy. */
@@ -36,7 +36,7 @@ export interface UseCreateBillingPortalSessionReturn {
36
36
  * ```tsx
37
37
  * const { openPortal, isLoading } = useCreateBillingPortalSession();
38
38
  *
39
- * <button onClick={() => openPortal(orgId)} disabled={isLoading}>
39
+ * <button onClick={() => openPortal(org)} disabled={isLoading}>
40
40
  * Manage payment methods
41
41
  * </button>
42
42
  * ```
@@ -53,7 +53,7 @@ export function useCreateBillingPortalSession(
53
53
  const clearError = useCallback(() => setError(null), []);
54
54
 
55
55
  const openPortal = useCallback(
56
- async (orgId: string): Promise<void> => {
56
+ async (org: string): Promise<void> => {
57
57
  setIsLoading(true);
58
58
  setError(null);
59
59
 
@@ -66,7 +66,7 @@ export function useCreateBillingPortalSession(
66
66
  : "";
67
67
 
68
68
  const response = await stigmer.billing.createBillingPortalSession({
69
- orgId,
69
+ org,
70
70
  returnUrl,
71
71
  });
72
72
 
@@ -9,7 +9,7 @@ import { leaveForStripe, type BillingRedirect } from "./redirect.js";
9
9
  /** Parameters for {@link useCreateCheckoutSession}'s `createSession` callback. */
10
10
  export interface CreateCheckoutSessionInput {
11
11
  /** Organization purchasing credits. */
12
- readonly orgId: string;
12
+ readonly org: string;
13
13
  /** Credit pack to purchase: its id, e.g. "starter", "growth" or "team" (the pack named Scale). */
14
14
  readonly packId: string;
15
15
  /** URL to redirect to after successful payment. */
@@ -54,7 +54,7 @@ export interface UseCreateCheckoutSessionReturn {
54
54
  *
55
55
  * const handleBuy = () => {
56
56
  * createSession({
57
- * orgId,
57
+ * org,
58
58
  * packId: "growth",
59
59
  * successUrl: `${window.location.origin}/settings/billing?checkout=success`,
60
60
  * cancelUrl: `${window.location.origin}/settings/billing`,
@@ -81,7 +81,7 @@ export function useCreateCheckoutSession(
81
81
 
82
82
  try {
83
83
  const response = await stigmer.billing.createCreditCheckoutSession({
84
- orgId: input.orgId,
84
+ org: input.org,
85
85
  packId: input.packId,
86
86
  successUrl: input.successUrl,
87
87
  cancelUrl: input.cancelUrl,
@@ -14,7 +14,7 @@ export interface UseCreatePaymentMethodSetupSessionReturn {
14
14
  * page can reopen that choice), or without a query when they leave.
15
15
  * The saved card becomes the organization's default for every invoice.
16
16
  */
17
- readonly addPaymentMethod: (orgId: string, planId?: string) => Promise<void>;
17
+ readonly addPaymentMethod: (org: string, planId?: string) => Promise<void>;
18
18
  /** `true` while the setup session is being created. */
19
19
  readonly isSubmitting: boolean;
20
20
  /** Error from the last failed attempt, or `null` when healthy. */
@@ -41,7 +41,7 @@ export function useCreatePaymentMethodSetupSession(
41
41
  const [error, setError] = useState<Error | null>(null);
42
42
 
43
43
  const addPaymentMethod = useCallback(
44
- async (orgId: string, planId?: string): Promise<void> => {
44
+ async (org: string, planId?: string): Promise<void> => {
45
45
  setIsSubmitting(true);
46
46
  setError(null);
47
47
  try {
@@ -51,7 +51,7 @@ export function useCreatePaymentMethodSetupSession(
51
51
  success.set("plan", planId);
52
52
  }
53
53
  const response = await stigmer.billing.createPaymentMethodSetupSession({
54
- orgId,
54
+ org,
55
55
  successUrl: `${billingPage}?${success.toString()}`,
56
56
  cancelUrl: billingPage,
57
57
  });
@@ -48,14 +48,14 @@ export interface UseCreditLedgerOptions {
48
48
  * filtering. Returns the entries and total page count for building
49
49
  * pagination controls.
50
50
  *
51
- * Pass `null` as `orgId` to skip fetching (stable no-op).
51
+ * Pass `null` as `org` to skip fetching (stable no-op).
52
52
  *
53
- * @param orgId - Organization ID, or `null` to skip.
53
+ * @param org - Organization ID, or `null` to skip.
54
54
  * @param options - Pagination and filter options.
55
55
  *
56
56
  * @example
57
57
  * ```tsx
58
- * const { ledger, isLoading } = useCreditLedger(orgId, { pageNum: 1 });
58
+ * const { ledger, isLoading } = useCreditLedger(org, { pageNum: 1 });
59
59
  *
60
60
  * if (isLoading) return <Skeleton />;
61
61
  * if (!ledger) return null;
@@ -64,7 +64,7 @@ export interface UseCreditLedgerOptions {
64
64
  * ```
65
65
  */
66
66
  export function useCreditLedger(
67
- orgId: string | null,
67
+ org: string | null,
68
68
  options: UseCreditLedgerOptions = {},
69
69
  ): UseCreditLedgerReturn {
70
70
  const stigmer = useStigmer();
@@ -73,10 +73,10 @@ export function useCreditLedger(
73
73
  const typeFilterKey = typeFilter?.join(",") ?? "";
74
74
 
75
75
  const { data: ledger, isLoading, isRefetching, error, refetch } = useFetch(
76
- orgId
76
+ org
77
77
  ? () =>
78
78
  stigmer.billing.getCreditLedger({
79
- orgId,
79
+ org,
80
80
  // The SDK page number is 0-based (matches the proto/backend); the
81
81
  // hook's pageNum is 1-based for ergonomic UI controls.
82
82
  page: { num: pageNum - 1, size: pageSize },
@@ -84,7 +84,7 @@ export function useCreditLedger(
84
84
  view,
85
85
  })
86
86
  : null,
87
- [orgId, pageNum, pageSize, typeFilterKey, view, stigmer],
87
+ [org, pageNum, pageSize, typeFilterKey, view, stigmer],
88
88
  null as CreditLedgerResponse | null,
89
89
  );
90
90
 
@@ -27,15 +27,15 @@ export interface UseCustomerModelPricingReturn {
27
27
  * billing policy markup already applied, organized by harness
28
28
  * and cost tier.
29
29
  *
30
- * Pass `null` as `orgId` to skip fetching (stable no-op).
30
+ * Pass `null` as `org` to skip fetching (stable no-op).
31
31
  * Pass `undefined` to fetch default pricing (no org override).
32
32
  *
33
- * @param orgId - Organization ID for org-specific overrides,
33
+ * @param org - Organization ID for org-specific overrides,
34
34
  * `undefined` for default pricing, or `null` to skip.
35
35
  *
36
36
  * @example
37
37
  * ```tsx
38
- * const { pricing, isLoading } = useCustomerModelPricing(orgId);
38
+ * const { pricing, isLoading } = useCustomerModelPricing(org);
39
39
  *
40
40
  * if (isLoading) return <Skeleton />;
41
41
  * if (!pricing) return null;
@@ -46,20 +46,20 @@ export interface UseCustomerModelPricingReturn {
46
46
  * ```
47
47
  */
48
48
  export function useCustomerModelPricing(
49
- orgId: string | undefined | null,
49
+ org: string | undefined | null,
50
50
  ): UseCustomerModelPricingReturn {
51
51
  const stigmer = useStigmer();
52
52
 
53
- const skip = orgId === null;
53
+ const skip = org === null;
54
54
 
55
55
  const { data: pricing, isLoading, isRefetching, error, refetch } = useFetch(
56
56
  skip
57
57
  ? null
58
58
  : () =>
59
59
  stigmer.billing.getCustomerModelPricing(
60
- orgId ? { orgId } : undefined,
60
+ org ? { org } : undefined,
61
61
  ),
62
- [orgId, stigmer],
62
+ [org, stigmer],
63
63
  null as CustomerModelPricingResponse | null,
64
64
  );
65
65
 
@@ -50,19 +50,19 @@ export interface UseEntitlementsReturn {
50
50
  *
51
51
  * @example
52
52
  * ```tsx
53
- * const { allows } = useEntitlements(orgId);
53
+ * const { allows } = useEntitlements(org);
54
54
  * if (allows(Feature.teams) === false) return <UpgradeNotice feature={Feature.teams} />;
55
55
  * ```
56
56
  */
57
57
  export function useEntitlements(
58
- orgId: string | null,
58
+ org: string | null,
59
59
  options?: UseEntitlementsOptions,
60
60
  ): UseEntitlementsReturn {
61
61
  const stigmer = useStigmer();
62
- const enabled = (options?.enabled ?? true) && orgId !== null && orgId !== "";
62
+ const enabled = (options?.enabled ?? true) && org !== null && org !== "";
63
63
  const { data: entitlements, isLoading, error, refetch } = useFetch(
64
- enabled && orgId ? () => stigmer.subscription.getEntitlements(create(GetEntitlementsInputSchema, { orgId })) : null,
65
- [enabled, orgId, stigmer],
64
+ enabled && org ? () => stigmer.subscription.getEntitlements(create(GetEntitlementsInputSchema, { org })) : null,
65
+ [enabled, org, stigmer],
66
66
  null as GetEntitlementsOutput | null,
67
67
  { refetchOnWindowFocus: true },
68
68
  );
@@ -44,14 +44,14 @@ export interface UsePeriodEstimateReturn {
44
44
  * Cloud-only; the caller needs `can_view_billing` on the organization.
45
45
  */
46
46
  export function usePeriodEstimate(
47
- orgId: string | null,
47
+ org: string | null,
48
48
  options?: UsePeriodEstimateOptions,
49
49
  ): UsePeriodEstimateReturn {
50
50
  const stigmer = useStigmer();
51
- const enabled = (options?.enabled ?? true) && orgId !== null && orgId !== "";
51
+ const enabled = (options?.enabled ?? true) && org !== null && org !== "";
52
52
  const { data: estimate, isLoading, error, refetch } = useFetch(
53
- enabled && orgId ? () => stigmer.subscription.getPeriodEstimate(create(GetPeriodEstimateInputSchema, { orgId })) : null,
54
- [enabled, orgId, stigmer],
53
+ enabled && org ? () => stigmer.subscription.getPeriodEstimate(create(GetPeriodEstimateInputSchema, { org })) : null,
54
+ [enabled, org, stigmer],
55
55
  null as PeriodEstimate | null,
56
56
  { refetchOnWindowFocus: true },
57
57
  );
@@ -44,22 +44,22 @@ export interface UseProviderKeysReturn {
44
44
  * four characters, who saved it and when, when it last served a call, and
45
45
  * whether the organization's plan still lets it be used. A managed
46
46
  * organization's list includes its integrator's keys for the providers it
47
- * holds none of (`inheritedFromOrgId`). Every member may read it
47
+ * holds none of (`inheritedFromOrg`). Every member may read it
48
48
  * (`can_view_billing`).
49
49
  *
50
50
  * Cloud-only.
51
51
  *
52
52
  * @example
53
53
  * ```tsx
54
- * const { keys } = useProviderKeys(orgId);
54
+ * const { keys } = useProviderKeys(org);
55
55
  * ```
56
56
  */
57
- export function useProviderKeys(orgId: string | null, options?: UseProviderKeysOptions): UseProviderKeysReturn {
57
+ export function useProviderKeys(org: string | null, options?: UseProviderKeysOptions): UseProviderKeysReturn {
58
58
  const stigmer = useStigmer();
59
- const enabled = (options?.enabled ?? true) && orgId !== null && orgId !== "";
59
+ const enabled = (options?.enabled ?? true) && org !== null && org !== "";
60
60
  const { data, isLoading, error, refetch } = useFetch(
61
- enabled && orgId ? () => stigmer.providerkey.list(create(ListProviderKeysInputSchema, { orgId })) : null,
62
- [enabled, orgId, stigmer],
61
+ enabled && org ? () => stigmer.providerkey.list(create(ListProviderKeysInputSchema, { org })) : null,
62
+ [enabled, org, stigmer],
63
63
  null as { readonly keys: readonly ProviderKey[] } | null,
64
64
  );
65
65
  const keys = data?.keys ?? null;
@@ -75,9 +75,9 @@ export interface UseProviderKeyActionsReturn {
75
75
  * organization's plan does not include bring-your-own provider keys.
76
76
  * Resolves with the saved key, without its secret.
77
77
  */
78
- readonly setKey: (orgId: string, provider: ProviderKeyProvider, apiKey: string) => Promise<ProviderKey>;
78
+ readonly setKey: (org: string, provider: ProviderKeyProvider, apiKey: string) => Promise<ProviderKey>;
79
79
  /** Remove the organization's key for a provider; allowed on every plan. */
80
- readonly removeKey: (orgId: string, provider: ProviderKeyProvider) => Promise<ProviderKey>;
80
+ readonly removeKey: (org: string, provider: ProviderKeyProvider) => Promise<ProviderKey>;
81
81
  /** `true` while a save or a removal is in flight. */
82
82
  readonly isSubmitting: boolean;
83
83
  /** Error from the last failed attempt, or `null` when healthy. */
@@ -111,13 +111,13 @@ export function useProviderKeyActions(): UseProviderKeyActionsReturn {
111
111
  }, []);
112
112
 
113
113
  const setKey = useCallback(
114
- (orgId: string, provider: ProviderKeyProvider, apiKey: string) =>
115
- run(() => stigmer.providerkey.set(create(SetProviderKeyInputSchema, { orgId, provider, apiKey }))),
114
+ (org: string, provider: ProviderKeyProvider, apiKey: string) =>
115
+ run(() => stigmer.providerkey.set(create(SetProviderKeyInputSchema, { org, provider, apiKey }))),
116
116
  [run, stigmer.providerkey],
117
117
  );
118
118
  const removeKey = useCallback(
119
- (orgId: string, provider: ProviderKeyProvider) =>
120
- run(() => stigmer.providerkey.delete(create(DeleteProviderKeyInputSchema, { orgId, provider }))),
119
+ (org: string, provider: ProviderKeyProvider) =>
120
+ run(() => stigmer.providerkey.delete(create(DeleteProviderKeyInputSchema, { org, provider }))),
121
121
  [run, stigmer.providerkey],
122
122
  );
123
123
  const clearError = useCallback(() => setError(null), []);
@@ -8,7 +8,7 @@ import type { BillingAccount } from "@stigmer/protos/ai/stigmer/billing/v1/billi
8
8
  /** Input for {@link useSetAutoRechargeConfig}. */
9
9
  export interface SetAutoRechargeConfigInput {
10
10
  /** Organization ID to configure auto-recharge for. */
11
- readonly orgId: string;
11
+ readonly org: string;
12
12
  /** Whether auto-recharge is enabled. */
13
13
  readonly enabled: boolean;
14
14
  /** Trigger threshold in micro-USD. */
@@ -46,7 +46,7 @@ export interface UseSetAutoRechargeConfigReturn {
46
46
  * const { setConfig, isSubmitting, error } = useSetAutoRechargeConfig();
47
47
  *
48
48
  * await setConfig({
49
- * orgId,
49
+ * org,
50
50
  * enabled: true,
51
51
  * thresholdMicros: BigInt(5_000_000),
52
52
  * rechargeAmountMicros: BigInt(50_000_000),
@@ -68,7 +68,7 @@ export function useSetAutoRechargeConfig(): UseSetAutoRechargeConfigReturn {
68
68
 
69
69
  try {
70
70
  const account = await stigmer.billing.setAutoRechargeConfig({
71
- orgId: input.orgId,
71
+ org: input.org,
72
72
  enabled: input.enabled,
73
73
  thresholdMicros: input.thresholdMicros,
74
74
  rechargeAmountMicros: input.rechargeAmountMicros,
@@ -4,7 +4,7 @@ import { useMemo } from "react";
4
4
  import { create } from "@bufbuild/protobuf";
5
5
  import { isNotFound } from "@stigmer/sdk";
6
6
  import type { Subscription } from "@stigmer/protos/ai/stigmer/billing/subscription/v1/api_pb";
7
- import { GetSubscriptionForOrganizationInputSchema } from "@stigmer/protos/ai/stigmer/billing/subscription/v1/io_pb";
7
+ import { GetSubscriptionForOrgInputSchema } from "@stigmer/protos/ai/stigmer/billing/subscription/v1/io_pb";
8
8
  import { useStigmer } from "../hooks.js";
9
9
  import { useFetch } from "../internal/useFetch.js";
10
10
 
@@ -34,7 +34,7 @@ export interface UseSubscriptionReturn {
34
34
  * this hook reads that as `null`, because never subscribed is a state (the
35
35
  * Free plan), not a failure.
36
36
  *
37
- * Pass `null` as `orgId` to skip fetching. Refetches when the window
37
+ * Pass `null` as `org` to skip fetching. Refetches when the window
38
38
  * regains focus, so a plan changed in another window, or a card saved in
39
39
  * the system browser, shows on return.
40
40
  *
@@ -42,16 +42,16 @@ export interface UseSubscriptionReturn {
42
42
  *
43
43
  * @example
44
44
  * ```tsx
45
- * const { subscription } = useSubscription(orgId);
45
+ * const { subscription } = useSubscription(org);
46
46
  * ```
47
47
  */
48
- export function useSubscription(orgId: string | null): UseSubscriptionReturn {
48
+ export function useSubscription(org: string | null): UseSubscriptionReturn {
49
49
  const stigmer = useStigmer();
50
50
  const { data: subscription, isLoading, isRefetching, error, refetch } = useFetch(
51
- orgId
51
+ org
52
52
  ? () =>
53
53
  stigmer.subscription
54
- .getForOrganization(create(GetSubscriptionForOrganizationInputSchema, { orgId }))
54
+ .getForOrg(create(GetSubscriptionForOrgInputSchema, { org }))
55
55
  .catch((err: unknown) => {
56
56
  if (isNotFound(err)) {
57
57
  return null;
@@ -59,7 +59,7 @@ export function useSubscription(orgId: string | null): UseSubscriptionReturn {
59
59
  throw err;
60
60
  })
61
61
  : null,
62
- [orgId, stigmer],
62
+ [org, stigmer],
63
63
  null as Subscription | null,
64
64
  { refetchOnWindowFocus: true },
65
65
  );
@@ -7,6 +7,7 @@ import { timestampDate } from "@bufbuild/protobuf/wkt";
7
7
  import type { ChannelApp } from "@stigmer/protos/ai/stigmer/agentic/channelapp/v1/api_pb";
8
8
  import { channelProviderOf } from "../channel/providers.js";
9
9
  import { useChannelAppList } from "./useChannelAppList.js";
10
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
10
11
 
11
12
  // ---------------------------------------------------------------------------
12
13
  // Public API
@@ -69,15 +70,14 @@ export function ChannelAppListPanel({
69
70
 
70
71
  if (isLoading) {
71
72
  return (
72
- <div
73
+ <LoadingRegion
73
74
  className={cn("stg:space-y-2", className)}
74
- aria-busy="true"
75
- aria-label="Loading channel apps"
75
+ label="Loading channel apps"
76
76
  >
77
77
  {Array.from({ length: 2 }, (_, i) => (
78
78
  <div key={i} className="stg:bg-muted-subtle stg:h-14 stg:animate-pulse stg:rounded-lg" />
79
79
  ))}
80
- </div>
80
+ </LoadingRegion>
81
81
  );
82
82
  }
83
83
 
@@ -21,6 +21,7 @@
21
21
  * the webhook URL — paste it into the app's Event Subscriptions (or
22
22
  * re-apply the completed manifest).
23
23
  */
24
+ import { trimTrailing } from "../internal/trim.js";
24
25
 
25
26
  /**
26
27
  * The bot scopes every Stigmer channel app requests — the platform app's
@@ -62,7 +63,7 @@ export function slackChannelAppWebhookUrl(
62
63
  apiBaseUrl: string,
63
64
  channelAppId: string,
64
65
  ): string {
65
- return `${apiBaseUrl.replace(/\/+$/, "")}/webhook/slack/${channelAppId}`;
66
+ return `${trimTrailing(apiBaseUrl, "/")}/webhook/slack/${channelAppId}`;
66
67
  }
67
68
 
68
69
  /**
@@ -79,7 +80,7 @@ export function slackChannelAppRedirectUrl(consoleOrigin?: string): string {
79
80
  const origin =
80
81
  consoleOrigin ??
81
82
  (typeof window !== "undefined" ? window.location.origin : "");
82
- return `${origin.replace(/\/+$/, "")}/oauth/slack/callback`;
83
+ return `${trimTrailing(origin, "/")}/oauth/slack/callback`;
83
84
  }
84
85
 
85
86
  /** Inputs for {@link buildSlackChannelAppManifest}. */
@@ -24,6 +24,7 @@
24
24
  * show the webhook URL — paste it and the verify token into the
25
25
  * app's WhatsApp webhook configuration.
26
26
  */
27
+ import { trimTrailing } from "../internal/trim.js";
27
28
 
28
29
  /**
29
30
  * The webhook fields every Stigmer WhatsApp channel app subscribes to —
@@ -45,7 +46,7 @@ export function whatsappChannelAppWebhookUrl(
45
46
  apiBaseUrl: string,
46
47
  channelAppId: string,
47
48
  ): string {
48
- return `${apiBaseUrl.replace(/\/+$/, "")}/webhook/whatsapp/${channelAppId}`;
49
+ return `${trimTrailing(apiBaseUrl, "/")}/webhook/whatsapp/${channelAppId}`;
49
50
  }
50
51
 
51
52
  /**
@@ -68,7 +68,7 @@ export function CursorAccountEditor({
68
68
  !(initial?.onDemandUsageDisabled ?? false),
69
69
  );
70
70
  const [orgIdsText, setOrgIdsText] = useState(
71
- (initial?.orgIds ?? []).join("\n"),
71
+ (initial?.orgs ?? []).join("\n"),
72
72
  );
73
73
  // Unlike the admin key, the invite link round-trips readable (the
74
74
  // server decrypts it on read — operators must be able to copy it), so
@@ -90,10 +90,10 @@ export function CursorAccountEditor({
90
90
  adminApiKey: adminApiKey.trim(),
91
91
  enabled,
92
92
  // is_platform_default is deprecated (DD-008): the shared pool is
93
- // derived from empty org_ids, so current clients never write it.
93
+ // derived from empty orgs, so current clients never write it.
94
94
  onDemandUsageDisabled: !onDemandEnabled,
95
95
  teamInviteLink: teamInviteLink.trim(),
96
- orgIds: orgIdsText
96
+ orgs: orgIdsText
97
97
  .split(/[\s,]+/)
98
98
  .map((s) => s.trim())
99
99
  .filter((s) => s !== ""),
@@ -224,16 +224,16 @@ function AccountRow({
224
224
  <span className="stg:block stg:truncate stg:font-medium stg:text-foreground">
225
225
  {account.displayName}
226
226
  </span>
227
- {/* Account class is DERIVED from org_ids (DD-008): no org
227
+ {/* Account class is DERIVED from orgs: no org
228
228
  assignment means the account belongs to the shared pool. */}
229
- {account.orgIds.length === 0 && (
229
+ {account.orgs.length === 0 && (
230
230
  <span className="stg:block stg:text-[11px] stg:text-muted-foreground">
231
231
  shared pool
232
232
  </span>
233
233
  )}
234
234
  </span>
235
235
  <span className="stg:text-muted-foreground">
236
- {account.orgIds.length > 0 ? account.orgIds.length : "—"}
236
+ {account.orgs.length > 0 ? account.orgs.length : "—"}
237
237
  </span>
238
238
  <span>
239
239
  <StateBadge
@@ -408,8 +408,8 @@ function AccountDetail({
408
408
  {account.displayName}
409
409
  </h3>
410
410
  <p className="stg:text-[11px] stg:text-muted-foreground">
411
- {account.orgIds.length > 0
412
- ? `Dedicated to ${account.orgIds.length} org(s): ${account.orgIds.join(", ")}`
411
+ {account.orgs.length > 0
412
+ ? `Dedicated to ${account.orgs.length} org(s): ${account.orgs.join(", ")}`
413
413
  : "Shared pool — serves every org with no dedicated account"}
414
414
  {" · "}
415
415
  {account.enabled ? "enabled" : "disabled"}
@@ -11,10 +11,8 @@ import { DashboardFailedRuns } from "./DashboardFailedRuns.js";
11
11
  import type { DashboardFailedRun } from "./types.js";
12
12
 
13
13
  export interface OperationalDashboardProps {
14
- /** Organization slug for execution summaries and pending approvals. */
14
+ /** The organization whose executions, approvals and usage the dashboard shows. */
15
15
  readonly org: string | null | undefined;
16
- /** Organization ID (metadata.id) for the usage report. */
17
- readonly orgId: string | null | undefined;
18
16
  /** Called when the user clicks "Review" on a pending approval. */
19
17
  readonly onApprovalClick?: (executionId: string) => void;
20
18
  /** Called when the user clicks "View" on a failed execution. */
@@ -37,7 +35,6 @@ export interface OperationalDashboardProps {
37
35
  * ```tsx
38
36
  * <OperationalDashboard
39
37
  * org="acme"
40
- * orgId={activeOrg?.metadata?.id}
41
38
  * onApprovalClick={(id) => navigate(`/executions/${id}`)}
42
39
  * onFailedRunClick={(id, type) => navigate(`/executions/${id}`)}
43
40
  * />
@@ -47,14 +44,12 @@ export interface OperationalDashboardProps {
47
44
  */
48
45
  export const OperationalDashboard = memo(function OperationalDashboard({
49
46
  org,
50
- orgId,
51
47
  onApprovalClick,
52
48
  onFailedRunClick,
53
49
  className,
54
50
  }: OperationalDashboardProps) {
55
51
  const summaryOptions: UseDashboardSummaryOptions = {
56
52
  org,
57
- orgId,
58
53
  refetchInterval: 60_000,
59
54
  };
60
55
  const { summary, isLoading: summaryLoading } = useDashboardSummary(summaryOptions);