@stigmer/react 3.40.0 → 3.41.0

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 (279) hide show
  1. package/README.md +1 -0
  2. package/access/ManageAccessDialog.d.ts +1 -1
  3. package/access/ManageAccessDialog.js +1 -1
  4. package/access/types.d.ts +1 -1
  5. package/billing/ChangePlanDialog.d.ts.map +1 -1
  6. package/billing/ChangePlanDialog.js +13 -1
  7. package/billing/ChangePlanDialog.js.map +1 -1
  8. package/billing/ProviderKeysSection.d.ts +33 -0
  9. package/billing/ProviderKeysSection.d.ts.map +1 -0
  10. package/billing/ProviderKeysSection.js +143 -0
  11. package/billing/ProviderKeysSection.js.map +1 -0
  12. package/billing/UpgradeNotice.d.ts.map +1 -1
  13. package/billing/UpgradeNotice.js +1 -0
  14. package/billing/UpgradeNotice.js.map +1 -1
  15. package/billing/index.d.ts +4 -0
  16. package/billing/index.d.ts.map +1 -1
  17. package/billing/index.js +2 -0
  18. package/billing/index.js.map +1 -1
  19. package/billing/plan-features.d.ts +3 -2
  20. package/billing/plan-features.d.ts.map +1 -1
  21. package/billing/plan-features.js +4 -3
  22. package/billing/plan-features.js.map +1 -1
  23. package/billing/useProviderKeys.d.ts +67 -0
  24. package/billing/useProviderKeys.d.ts.map +1 -0
  25. package/billing/useProviderKeys.js +61 -0
  26. package/billing/useProviderKeys.js.map +1 -0
  27. package/channel/AgentChannelsPanel.d.ts.map +1 -1
  28. package/channel/AgentChannelsPanel.js +11 -9
  29. package/channel/AgentChannelsPanel.js.map +1 -1
  30. package/channel/connect/ServingAppSection.js +1 -1
  31. package/channel/connect/ServingAppSection.js.map +1 -1
  32. package/channel-app/ChannelAppDetailPanel.d.ts +5 -0
  33. package/channel-app/ChannelAppDetailPanel.d.ts.map +1 -1
  34. package/channel-app/ChannelAppDetailPanel.js +22 -9
  35. package/channel-app/ChannelAppDetailPanel.js.map +1 -1
  36. package/channel-app/ChannelAppListPanel.d.ts +13 -4
  37. package/channel-app/ChannelAppListPanel.d.ts.map +1 -1
  38. package/channel-app/ChannelAppListPanel.js +5 -5
  39. package/channel-app/ChannelAppListPanel.js.map +1 -1
  40. package/channel-app/CreateChannelAppForm.js +1 -1
  41. package/channel-app/CreateChannelAppForm.js.map +1 -1
  42. package/channel-app/copy.d.ts +15 -0
  43. package/channel-app/copy.d.ts.map +1 -0
  44. package/channel-app/copy.js +15 -0
  45. package/channel-app/copy.js.map +1 -0
  46. package/channel-app/internal.d.ts +9 -0
  47. package/channel-app/internal.d.ts.map +1 -1
  48. package/channel-app/internal.js +9 -0
  49. package/channel-app/internal.js.map +1 -1
  50. package/channel-app/slackAppSetup.d.ts +3 -1
  51. package/channel-app/slackAppSetup.d.ts.map +1 -1
  52. package/channel-app/slackAppSetup.js +3 -1
  53. package/channel-app/slackAppSetup.js.map +1 -1
  54. package/channel-app/whatsappAppSetup.d.ts +3 -1
  55. package/channel-app/whatsappAppSetup.d.ts.map +1 -1
  56. package/channel-app/whatsappAppSetup.js +3 -1
  57. package/channel-app/whatsappAppSetup.js.map +1 -1
  58. package/composer/SessionComposer.d.ts.map +1 -1
  59. package/composer/SessionComposer.js +5 -9
  60. package/composer/SessionComposer.js.map +1 -1
  61. package/environment/EnvironmentVariableEditor.js +1 -1
  62. package/environment/EnvironmentVariableEditor.js.map +1 -1
  63. package/environment/index.d.ts +1 -1
  64. package/environment/index.d.ts.map +1 -1
  65. package/environment/index.js +1 -1
  66. package/environment/index.js.map +1 -1
  67. package/environment/systemEnvVars.d.ts +4 -63
  68. package/environment/systemEnvVars.d.ts.map +1 -1
  69. package/environment/systemEnvVars.js +21 -113
  70. package/environment/systemEnvVars.js.map +1 -1
  71. package/execution/RecalledMemoriesCard.js +1 -1
  72. package/iam-policy/OrgMembersPanel.js +1 -1
  73. package/iam-policy/OrgMembersPanel.js.map +1 -1
  74. package/iam-policy/useCheckPermission.d.ts +4 -1
  75. package/iam-policy/useCheckPermission.d.ts.map +1 -1
  76. package/iam-policy/useCheckPermission.js +4 -1
  77. package/iam-policy/useCheckPermission.js.map +1 -1
  78. package/iam-policy/useGrantableRoles.d.ts +1 -1
  79. package/iam-policy/useGrantableRoles.js +1 -1
  80. package/iam-policy/useRevokeOrgAccess.d.ts +10 -8
  81. package/iam-policy/useRevokeOrgAccess.d.ts.map +1 -1
  82. package/iam-policy/useRevokeOrgAccess.js +4 -4
  83. package/iam-policy/useRevokeOrgAccess.js.map +1 -1
  84. package/identity-account/AccountPreferencesPanel.d.ts +6 -0
  85. package/identity-account/AccountPreferencesPanel.d.ts.map +1 -1
  86. package/identity-account/AccountPreferencesPanel.js +33 -2
  87. package/identity-account/AccountPreferencesPanel.js.map +1 -1
  88. package/identity-account/useAccountExecutionDefaults.d.ts +1 -1
  89. package/identity-account/useAccountExecutionDefaults.d.ts.map +1 -1
  90. package/identity-account/useAccountExecutionDefaults.js +2 -3
  91. package/identity-account/useAccountExecutionDefaults.js.map +1 -1
  92. package/index.d.ts +3 -3
  93. package/index.d.ts.map +1 -1
  94. package/index.js +3 -3
  95. package/index.js.map +1 -1
  96. package/internal/UnknownPublicAddressNotice.d.ts +20 -0
  97. package/internal/UnknownPublicAddressNotice.d.ts.map +1 -0
  98. package/internal/UnknownPublicAddressNotice.js +19 -0
  99. package/internal/UnknownPublicAddressNotice.js.map +1 -0
  100. package/internal/features.js +2 -2
  101. package/internal/features.js.map +1 -1
  102. package/library/InstanceVisibilitySelector.d.ts +1 -1
  103. package/library/InstanceVisibilitySelector.d.ts.map +1 -1
  104. package/library/ResourceVisibilityControl.d.ts +6 -3
  105. package/library/ResourceVisibilityControl.d.ts.map +1 -1
  106. package/library/ResourceVisibilityControl.js +7 -4
  107. package/library/ResourceVisibilityControl.js.map +1 -1
  108. package/library/VisibilitySelector.d.ts +2 -2
  109. package/library/VisibilitySelector.d.ts.map +1 -1
  110. package/library/VisibilitySelector.js +1 -1
  111. package/licenses/LicenseIssueForm.js +1 -1
  112. package/licenses/LicenseIssueForm.js.map +1 -1
  113. package/licenses/license-format.d.ts +7 -5
  114. package/licenses/license-format.d.ts.map +1 -1
  115. package/licenses/license-format.js +1 -3
  116. package/licenses/license-format.js.map +1 -1
  117. package/mcp-server/McpServerConnectDialog.js +4 -5
  118. package/mcp-server/McpServerConnectDialog.js.map +1 -1
  119. package/mcp-server/McpServerDetailView.d.ts.map +1 -1
  120. package/mcp-server/McpServerDetailView.js +3 -6
  121. package/mcp-server/McpServerDetailView.js.map +1 -1
  122. package/mcp-server/McpServerPicker.d.ts.map +1 -1
  123. package/mcp-server/McpServerPicker.js +2 -6
  124. package/mcp-server/McpServerPicker.js.map +1 -1
  125. package/mcp-server/McpToolSelector.js +1 -1
  126. package/mcp-server/McpToolSelector.js.map +1 -1
  127. package/mcp-server/useMcpServerConnect.d.ts +14 -25
  128. package/mcp-server/useMcpServerConnect.d.ts.map +1 -1
  129. package/mcp-server/useMcpServerConnect.js +7 -19
  130. package/mcp-server/useMcpServerConnect.js.map +1 -1
  131. package/mcp-server/useMcpServerOAuthConnect.d.ts +1 -3
  132. package/mcp-server/useMcpServerOAuthConnect.d.ts.map +1 -1
  133. package/mcp-server/useMcpServerOAuthConnect.js +6 -19
  134. package/mcp-server/useMcpServerOAuthConnect.js.map +1 -1
  135. package/models/HarnessSelector.d.ts.map +1 -1
  136. package/models/HarnessSelector.js +1 -2
  137. package/models/HarnessSelector.js.map +1 -1
  138. package/models/ModelSelector.d.ts +1 -1
  139. package/models/ModelSelector.d.ts.map +1 -1
  140. package/models/ModelSelector.js +1 -7
  141. package/models/ModelSelector.js.map +1 -1
  142. package/models/harness.d.ts +10 -6
  143. package/models/harness.d.ts.map +1 -1
  144. package/models/harness.js +35 -28
  145. package/models/harness.js.map +1 -1
  146. package/models/index.d.ts +1 -1
  147. package/models/index.d.ts.map +1 -1
  148. package/models/index.js +1 -1
  149. package/models/index.js.map +1 -1
  150. package/organization/OrgPreferencesPanel.d.ts.map +1 -1
  151. package/organization/OrgPreferencesPanel.js +13 -1
  152. package/organization/OrgPreferencesPanel.js.map +1 -1
  153. package/package.json +5 -5
  154. package/plugin/useMcpServerReadiness.js +2 -2
  155. package/plugin/useMcpServerReadiness.js.map +1 -1
  156. package/provider-standing/ProviderStandingConsole.js +1 -1
  157. package/provider.d.ts +27 -1
  158. package/provider.d.ts.map +1 -1
  159. package/provider.js +3 -2
  160. package/provider.js.map +1 -1
  161. package/public-base-url-context.d.ts +35 -0
  162. package/public-base-url-context.d.ts.map +1 -0
  163. package/public-base-url-context.js +62 -0
  164. package/public-base-url-context.js.map +1 -0
  165. package/resource-workbench/components/SelectionCheckbox.js +1 -1
  166. package/resource-workbench/components/SelectionCheckbox.js.map +1 -1
  167. package/session/useLocalSessionWorker.d.ts +19 -3
  168. package/session/useLocalSessionWorker.d.ts.map +1 -1
  169. package/session/useLocalSessionWorker.js +37 -4
  170. package/session/useLocalSessionWorker.js.map +1 -1
  171. package/settings/ChannelAppsSection.d.ts +7 -0
  172. package/settings/ChannelAppsSection.d.ts.map +1 -1
  173. package/settings/ChannelAppsSection.js +15 -2
  174. package/settings/ChannelAppsSection.js.map +1 -1
  175. package/settings/ProviderKeysSection.d.ts +3 -0
  176. package/settings/ProviderKeysSection.d.ts.map +1 -0
  177. package/settings/ProviderKeysSection.js +3 -0
  178. package/settings/ProviderKeysSection.js.map +1 -0
  179. package/settings/index.d.ts +2 -0
  180. package/settings/index.d.ts.map +1 -1
  181. package/settings/index.js +1 -0
  182. package/settings/index.js.map +1 -1
  183. package/settings/settings-nav.d.ts.map +1 -1
  184. package/settings/settings-nav.js +2 -1
  185. package/settings/settings-nav.js.map +1 -1
  186. package/sharing/ShareAgentDialog.d.ts.map +1 -1
  187. package/sharing/ShareAgentDialog.js +12 -8
  188. package/sharing/ShareAgentDialog.js.map +1 -1
  189. package/sharing/useCanCreateAgentShare.d.ts +3 -1
  190. package/sharing/useCanCreateAgentShare.d.ts.map +1 -1
  191. package/sharing/useCanCreateAgentShare.js +5 -3
  192. package/sharing/useCanCreateAgentShare.js.map +1 -1
  193. package/sharing/useSaveAgentShare.d.ts +1 -1
  194. package/sharing/useSaveAgentShare.js +1 -1
  195. package/src/access/ManageAccessDialog.tsx +1 -1
  196. package/src/access/types.ts +1 -1
  197. package/src/billing/ChangePlanDialog.tsx +14 -2
  198. package/src/billing/ProviderKeysSection.tsx +324 -0
  199. package/src/billing/UpgradeNotice.tsx +1 -0
  200. package/src/billing/index.ts +9 -0
  201. package/src/billing/plan-features.ts +4 -3
  202. package/src/billing/useProviderKeys.ts +129 -0
  203. package/src/channel/AgentChannelsPanel.tsx +11 -9
  204. package/src/channel/connect/ServingAppSection.tsx +1 -1
  205. package/src/channel-app/ChannelAppDetailPanel.tsx +214 -176
  206. package/src/channel-app/ChannelAppListPanel.tsx +14 -4
  207. package/src/channel-app/CreateChannelAppForm.tsx +0 -1
  208. package/src/channel-app/copy.ts +16 -0
  209. package/src/channel-app/internal.tsx +21 -0
  210. package/src/channel-app/slackAppSetup.ts +3 -1
  211. package/src/channel-app/whatsappAppSetup.ts +3 -1
  212. package/src/composer/SessionComposer.tsx +5 -14
  213. package/src/environment/EnvironmentVariableEditor.tsx +1 -1
  214. package/src/environment/index.ts +1 -7
  215. package/src/environment/systemEnvVars.ts +21 -133
  216. package/src/execution/RecalledMemoriesCard.tsx +1 -1
  217. package/src/iam-policy/OrgMembersPanel.tsx +3 -1
  218. package/src/iam-policy/useCheckPermission.ts +4 -1
  219. package/src/iam-policy/useGrantableRoles.ts +1 -1
  220. package/src/iam-policy/useRevokeOrgAccess.ts +10 -8
  221. package/src/identity-account/AccountPreferencesPanel.tsx +56 -9
  222. package/src/identity-account/useAccountExecutionDefaults.ts +2 -5
  223. package/src/index.ts +9 -5
  224. package/src/internal/UnknownPublicAddressNotice.tsx +31 -0
  225. package/src/internal/features.ts +2 -2
  226. package/src/library/InstanceVisibilitySelector.tsx +1 -1
  227. package/src/library/ResourceVisibilityControl.tsx +7 -4
  228. package/src/library/VisibilitySelector.tsx +2 -2
  229. package/src/licenses/LicenseIssueForm.tsx +1 -1
  230. package/src/licenses/license-format.ts +11 -7
  231. package/src/mcp-server/McpServerConnectDialog.tsx +4 -6
  232. package/src/mcp-server/McpServerDetailView.tsx +3 -6
  233. package/src/mcp-server/McpServerPicker.tsx +2 -12
  234. package/src/mcp-server/McpToolSelector.tsx +1 -1
  235. package/src/mcp-server/useMcpServerConnect.ts +14 -33
  236. package/src/mcp-server/useMcpServerOAuthConnect.ts +7 -23
  237. package/src/models/HarnessSelector.tsx +1 -3
  238. package/src/models/ModelSelector.tsx +2 -7
  239. package/src/models/harness.ts +41 -39
  240. package/src/models/index.ts +1 -1
  241. package/src/organization/OrgPreferencesPanel.tsx +19 -1
  242. package/src/plugin/useMcpServerReadiness.ts +2 -2
  243. package/src/provider-standing/ProviderStandingConsole.tsx +1 -1
  244. package/src/provider.tsx +56 -26
  245. package/src/public-base-url-context.ts +70 -0
  246. package/src/resource-workbench/components/SelectionCheckbox.tsx +1 -1
  247. package/src/session/useLocalSessionWorker.ts +35 -4
  248. package/src/settings/ChannelAppsSection.tsx +19 -2
  249. package/src/settings/ProviderKeysSection.tsx +4 -0
  250. package/src/settings/index.ts +2 -0
  251. package/src/settings/settings-nav.ts +2 -0
  252. package/src/sharing/ShareAgentDialog.tsx +30 -14
  253. package/src/sharing/useCanCreateAgentShare.ts +6 -4
  254. package/src/sharing/useSaveAgentShare.ts +1 -1
  255. package/src/styles.css +14 -4
  256. package/src/workflow/WorkflowTaskApprovalSummary.tsx +14 -7
  257. package/src/workflow/inspector/tabs/BranchesTab.tsx +2 -2
  258. package/src/workflow/inspector/tabs/CatchTab.tsx +1 -1
  259. package/src/workflow/inspector/tabs/IterationTab.tsx +1 -1
  260. package/src/workflow/instance/WorkflowInstanceDetailPanel.tsx +7 -6
  261. package/src/workflow/task-detail/task-approval.ts +20 -13
  262. package/styles.css +1 -1
  263. package/workflow/WorkflowTaskApprovalSummary.d.ts +7 -4
  264. package/workflow/WorkflowTaskApprovalSummary.d.ts.map +1 -1
  265. package/workflow/WorkflowTaskApprovalSummary.js +8 -3
  266. package/workflow/WorkflowTaskApprovalSummary.js.map +1 -1
  267. package/workflow/inspector/tabs/BranchesTab.js +1 -1
  268. package/workflow/inspector/tabs/BranchesTab.js.map +1 -1
  269. package/workflow/inspector/tabs/CatchTab.js +1 -1
  270. package/workflow/inspector/tabs/CatchTab.js.map +1 -1
  271. package/workflow/inspector/tabs/IterationTab.js +1 -1
  272. package/workflow/inspector/tabs/IterationTab.js.map +1 -1
  273. package/workflow/instance/WorkflowInstanceDetailPanel.d.ts.map +1 -1
  274. package/workflow/instance/WorkflowInstanceDetailPanel.js +6 -5
  275. package/workflow/instance/WorkflowInstanceDetailPanel.js.map +1 -1
  276. package/workflow/task-detail/task-approval.d.ts +13 -11
  277. package/workflow/task-detail/task-approval.d.ts.map +1 -1
  278. package/workflow/task-detail/task-approval.js +8 -4
  279. package/workflow/task-detail/task-approval.js.map +1 -1
package/README.md CHANGED
@@ -58,6 +58,7 @@ Three things are required:
58
58
  | `deploymentMode` | `"local" \| "cloud"` | No | Backend deployment mode. Defaults to `"cloud"`. |
59
59
  | `executionTarget` | `"local" \| "cloud"` | No | Default execution target for sessions and workflow executions created in this provider. Omit to let the server decide. See [Local Execution](#local-execution). |
60
60
  | `runnerAdapter` | `RunnerAdapter` | No | Runner lifecycle adapter, required when `executionTarget` is `"local"`. Omit for cloud. See [Local Execution](#local-execution). |
61
+ | `publicBaseUrl` | `string` | No | The absolute address the Stigmer API is reached at from outside the page, for the URLs components show a user to copy (channel-app webhook URLs, the platform client snippet). Omit when the client's `baseUrl` is absolute; pass it when the client uses a relative `baseUrl` behind a same-origin proxy. Without either, those surfaces say the address is unknown. |
61
62
  | `preset` | `ThemePresetId` | No | Built-in theme preset to apply. Omit for the default Stigmer palette. |
62
63
  | `className` | `string` | No | Additional CSS classes for theming. Applied to the scoping container *and* mirrored onto the portal container, so token overrides reach portaled surfaces — not a layout channel (see [Style Isolation](#style-isolation)). |
63
64
 
@@ -28,7 +28,7 @@ export interface ManageAccessDialogProps {
28
28
  * Each section renders only when it applies:
29
29
  * - **General access** — only when {@link ManageAccessDialogProps.visibility}
30
30
  * is provided. Delegates to {@link ResourceVisibilityControl}, which owns
31
- * level selection and the `can_edit` gate.
31
+ * level selection and the `can_manage_audience` gate.
32
32
  * - **People with access** — only when the resource kind has grantable roles
33
33
  * (`hasGrantableRoles`, proto-generated single source of truth). Delegates
34
34
  * to {@link PeopleWithAccess}, which gates grant/revoke on `can_grant_access`.
@@ -17,7 +17,7 @@ import { ResourceVisibilityControl } from "../library/ResourceVisibilityControl.
17
17
  * Each section renders only when it applies:
18
18
  * - **General access** — only when {@link ManageAccessDialogProps.visibility}
19
19
  * is provided. Delegates to {@link ResourceVisibilityControl}, which owns
20
- * level selection and the `can_edit` gate.
20
+ * level selection and the `can_manage_audience` gate.
21
21
  * - **People with access** — only when the resource kind has grantable roles
22
22
  * (`hasGrantableRoles`, proto-generated single source of truth). Delegates
23
23
  * to {@link PeopleWithAccess}, which gates grant/revoke on `can_grant_access`.
package/access/types.d.ts CHANGED
@@ -25,7 +25,7 @@ export interface AccessResource {
25
25
  * dialog. Optional because not every resource has visibility (e.g. sessions
26
26
  * and workflow executions do not). When present, the dialog renders the
27
27
  * shared `ResourceVisibilityControl`, which owns level selection and
28
- * the `can_edit` gate.
28
+ * the `can_manage_audience` gate.
29
29
  */
30
30
  export interface AccessVisibility {
31
31
  /** Resource kind, selecting both the updateVisibility RPC and FGA type. */
@@ -1 +1 @@
1
- {"version":3,"file":"ChangePlanDialog.d.ts","sourceRoot":"","sources":["../src/billing/ChangePlanDialog.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAiD,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACxG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,4GAA4G;AAC5G,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAC5C;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,qBAAqB;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IACxC,4BAA4B;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,QAAQ,EACR,MAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,OAAO,GACR,EAAE,qBAAqB,2CA2DvB"}
1
+ {"version":3,"file":"ChangePlanDialog.d.ts","sourceRoot":"","sources":["../src/billing/ChangePlanDialog.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAiD,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACxG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,4GAA4G;AAC5G,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAC5C;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,qBAAqB;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IACxC,4BAA4B;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,QAAQ,EACR,MAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,OAAO,GACR,EAAE,qBAAqB,2CA2DvB"}
@@ -2,6 +2,7 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import { useId } from "react";
4
4
  import { getErrorReason, getUserMessage } from "@stigmer/sdk";
5
+ import { Feature } from "@stigmer/protos/ai/stigmer/platform/v1/entitlement_pb";
5
6
  import { Button } from "../button/index.js";
6
7
  import { DialogShell } from "../internal/DialogShell.js";
7
8
  import { formatDay, formatMonthlyMinimum, sharePercent } from "./plan-features.js";
@@ -47,7 +48,7 @@ function body(move, planName, losing) {
47
48
  case "subscribe":
48
49
  return (_jsxs(_Fragment, { children: [_jsxs("p", { children: [move.to.metadata?.name, " starts now. Each monthly period is billed when it ends:", " ", periodCharge(move.to.spec?.terms)] }), _jsx("p", { children: "Nothing is charged today." })] }));
49
50
  case "switch":
50
- return (_jsxs(_Fragment, { children: [_jsxs("p", { children: ["The switch takes effect now. This period closes early and is billed for the time it ran on", " ", planName(move.fromPlanId), "; a new monthly period opens on ", move.to.metadata?.name, " at", " ", formatMonthlyMinimum(move.to.spec?.terms), "."] }), losing.length > 0 && (_jsxs("p", { children: [move.to.metadata?.name, " does not include ", listFeatures(losing), ". Everything you built keeps working; only creating more is refused."] }))] }));
51
+ return (_jsxs(_Fragment, { children: [_jsxs("p", { children: ["The switch takes effect now. This period closes early and is billed for the time it ran on", " ", planName(move.fromPlanId), "; a new monthly period opens on ", move.to.metadata?.name, " at", " ", formatMonthlyMinimum(move.to.spec?.terms), "."] }), losing.length > 0 && (_jsxs("p", { children: [move.to.metadata?.name, " does not include ", listFeatures(losing), ". ", keepsWorking(losing)] }))] }));
51
52
  case "resume":
52
53
  return _jsxs("p", { children: ["The cancellation is withdrawn, and ", move.to.metadata?.name, " runs on into its next period."] });
53
54
  case "cancel":
@@ -75,6 +76,17 @@ function confirmLabel(move) {
75
76
  }
76
77
  }
77
78
  /** "Teams", "Teams and Managed organizations", "A, B and C". */
79
+ /**
80
+ * What still works after a switch that gives features up. Everything built
81
+ * keeps working, except an organization's own provider keys: they are kept
82
+ * but no longer used, so its agents run on Stigmer's keys, billed as usage.
83
+ */
84
+ function keepsWorking(losing) {
85
+ return losing.some((lost) => lost.feature === Feature.byo_provider_keys)
86
+ ? "Your own provider keys are kept but stop being used: your agents run on Stigmer's keys, billed as usage. " +
87
+ "Everything else you built keeps working; only creating more is refused."
88
+ : "Everything you built keeps working; only creating more is refused.";
89
+ }
78
90
  function listFeatures(features) {
79
91
  const labels = features.map((feature) => feature.label);
80
92
  return labels.length <= 1 ? (labels[0] ?? "") : `${labels.slice(0, -1).join(", ")} and ${labels[labels.length - 1]}`;
@@ -1 +1 @@
1
- {"version":3,"file":"ChangePlanDialog.js","sourceRoot":"","sources":["../src/billing/ChangePlanDialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,YAAY,EAAuB,MAAM,oBAAoB,CAAC;AAGxG,4GAA4G;AAC5G,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAoCjE;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,IAAI,EACJ,QAAQ,EACR,MAAM,GAAG,EAAE,EACX,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,OAAO,GACe;IACtB,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;IAC1B,MAAM,SAAS,GACb,IAAI,KAAK,IAAI;QACb,IAAI,CAAC,IAAI,KAAK,QAAQ;QACtB,CAAC,CAAC,gBAAgB,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,uBAAuB,CAAC,CAAC;IAEnF,OAAO,CACL,KAAC,WAAW,IACV,IAAI,EAAE,IAAI,KAAK,IAAI,EACnB,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,CAAC;QACvB,CAAC,EACD,KAAK,EAAC,IAAI,qBACO,SAAS,YAEzB,IAAI,IAAI,CACP,eAAK,SAAS,EAAC,uBAAuB,aACpC,aAAI,EAAE,EAAE,SAAS,EAAE,SAAS,EAAC,mDAAmD,YAC7E,KAAK,CAAC,IAAI,CAAC,GACT,EACL,cAAK,SAAS,EAAC,qDAAqD,YAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAO,EAExG,SAAS,IAAI,CACZ,YAAG,SAAS,EAAC,sFAAsF,EAAC,IAAI,EAAC,QAAQ,YAC9G,qBAAqB;wBACpB,CAAC,CAAC,yEAAyE;wBAC3E,CAAC,CAAC,sGAAsG,GACxG,CACL,EACA,KAAK,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,uBAAuB,IAAI,CACrE,YAAG,SAAS,EAAC,kCAAkC,EAAC,IAAI,EAAC,OAAO,YACzD,cAAc,CAAC,KAAK,CAAC,GACpB,CACL,EAED,eAAK,SAAS,EAAC,6CAA6C,aAC1D,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,wBAEjE,EACR,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,IAAI,qBAAqB,qCAErF,CACV,CAAC,CAAC,CAAC,CACF,KAAC,MAAM,IACL,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAC3D,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,YAAY,YAErB,YAAY,CAAC,IAAI,CAAC,GACZ,CACV,IACG,IACF,CACP,GACW,CACf,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,IAAc;IAC3B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,gBAAgB,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC;QACjE,KAAK,QAAQ;YACX,OAAO,aAAa,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC;QAC9D,KAAK,QAAQ;YACX,OAAO,QAAQ,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC;QACzD,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC;QACxB,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,UAAU,GAAU,IAAI,CAAC;YAC/B,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,IAAI,CAAC,IAAc,EAAE,QAAoC,EAAE,MAAiC;IACnG,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,CACL,8BACE,wBACG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,8DAA0D,GAAG,EACnF,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,IAChC,EACJ,oDAAgC,IAC/B,CACJ,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO,CACL,8BACE,sHAC6F,GAAG,EAC7F,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,sCAAkC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,SAAK,GAAG,EACzF,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,SACxC,EACH,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CACpB,wBACG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,wBAAoB,YAAY,CAAC,MAAM,CAAC,4EAE7D,CACL,IACA,CACJ,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO,+DAAuC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,sCAAmC,CAAC;QAC1G,KAAK,QAAQ;YACX,OAAO,CACL,8BACE,wBACG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,4BAAwB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,0FAEtE,EACJ,kIAA8G,IAC7G,CACJ,CAAC;QACJ,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,UAAU,GAAU,IAAI,CAAC;YAC/B,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAc;IAClC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,WAAW,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,YAAY,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,aAAa,CAAC;QACvB,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,UAAU,GAAU,IAAI,CAAC;YAC/B,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,SAAS,YAAY,CAAC,QAAmC;IACvD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;AACvH,CAAC;AAED,+EAA+E;AAC/E,SAAS,YAAY,CAAC,KAA4B;IAChD,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,OAAO,KAAK,EAAE;QACnB,CAAC,CAAC,GAAG,OAAO,GAAG;QACf,CAAC,CAAC,GAAG,OAAO,cAAc,OAAO,wFAAwF,CAAC;AAC9H,CAAC"}
1
+ {"version":3,"file":"ChangePlanDialog.js","sourceRoot":"","sources":["../src/billing/ChangePlanDialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,MAAM,uDAAuD,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,YAAY,EAAuB,MAAM,oBAAoB,CAAC;AAGxG,4GAA4G;AAC5G,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAoCjE;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,IAAI,EACJ,QAAQ,EACR,MAAM,GAAG,EAAE,EACX,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,OAAO,GACe;IACtB,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;IAC1B,MAAM,SAAS,GACb,IAAI,KAAK,IAAI;QACb,IAAI,CAAC,IAAI,KAAK,QAAQ;QACtB,CAAC,CAAC,gBAAgB,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,uBAAuB,CAAC,CAAC;IAEnF,OAAO,CACL,KAAC,WAAW,IACV,IAAI,EAAE,IAAI,KAAK,IAAI,EACnB,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,CAAC;QACvB,CAAC,EACD,KAAK,EAAC,IAAI,qBACO,SAAS,YAEzB,IAAI,IAAI,CACP,eAAK,SAAS,EAAC,uBAAuB,aACpC,aAAI,EAAE,EAAE,SAAS,EAAE,SAAS,EAAC,mDAAmD,YAC7E,KAAK,CAAC,IAAI,CAAC,GACT,EACL,cAAK,SAAS,EAAC,qDAAqD,YAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAO,EAExG,SAAS,IAAI,CACZ,YAAG,SAAS,EAAC,sFAAsF,EAAC,IAAI,EAAC,QAAQ,YAC9G,qBAAqB;wBACpB,CAAC,CAAC,yEAAyE;wBAC3E,CAAC,CAAC,sGAAsG,GACxG,CACL,EACA,KAAK,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,uBAAuB,IAAI,CACrE,YAAG,SAAS,EAAC,kCAAkC,EAAC,IAAI,EAAC,OAAO,YACzD,cAAc,CAAC,KAAK,CAAC,GACpB,CACL,EAED,eAAK,SAAS,EAAC,6CAA6C,aAC1D,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,wBAEjE,EACR,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,IAAI,qBAAqB,qCAErF,CACV,CAAC,CAAC,CAAC,CACF,KAAC,MAAM,IACL,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAC3D,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,YAAY,YAErB,YAAY,CAAC,IAAI,CAAC,GACZ,CACV,IACG,IACF,CACP,GACW,CACf,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,IAAc;IAC3B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,gBAAgB,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC;QACjE,KAAK,QAAQ;YACX,OAAO,aAAa,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC;QAC9D,KAAK,QAAQ;YACX,OAAO,QAAQ,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC;QACzD,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC;QACxB,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,UAAU,GAAU,IAAI,CAAC;YAC/B,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,IAAI,CAAC,IAAc,EAAE,QAAoC,EAAE,MAAiC;IACnG,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,CACL,8BACE,wBACG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,8DAA0D,GAAG,EACnF,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,IAChC,EACJ,oDAAgC,IAC/B,CACJ,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO,CACL,8BACE,sHAC6F,GAAG,EAC7F,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,sCAAkC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,SAAK,GAAG,EACzF,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,SACxC,EACH,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CACpB,wBACG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,wBAAoB,YAAY,CAAC,MAAM,CAAC,QAAI,YAAY,CAAC,MAAM,CAAC,IACrF,CACL,IACA,CACJ,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO,+DAAuC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,sCAAmC,CAAC;QAC1G,KAAK,QAAQ;YACX,OAAO,CACL,8BACE,wBACG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,4BAAwB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,0FAEtE,EACJ,kIAA8G,IAC7G,CACJ,CAAC;QACJ,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,UAAU,GAAU,IAAI,CAAC;YAC/B,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAc;IAClC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,WAAW,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,YAAY,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,aAAa,CAAC;QACvB,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,UAAU,GAAU,IAAI,CAAC;YAC/B,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE;;;;GAIG;AACH,SAAS,YAAY,CAAC,MAAiC;IACrD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,iBAAiB,CAAC;QACtE,CAAC,CAAC,2GAA2G;YACzG,yEAAyE;QAC7E,CAAC,CAAC,oEAAoE,CAAC;AAC3E,CAAC;AAED,SAAS,YAAY,CAAC,QAAmC;IACvD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;AACvH,CAAC;AAED,+EAA+E;AAC/E,SAAS,YAAY,CAAC,KAA4B;IAChD,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,OAAO,KAAK,EAAE;QACnB,CAAC,CAAC,GAAG,OAAO,GAAG;QACf,CAAC,CAAC,GAAG,OAAO,cAAc,OAAO,wFAAwF,CAAC;AAC9H,CAAC"}
@@ -0,0 +1,33 @@
1
+ /** Props for {@link ProviderKeysSection}. */
2
+ export interface ProviderKeysSectionProps {
3
+ /** Where the plans are, in the host's routing. Defaults to the billing settings route. */
4
+ readonly billingHref?: string;
5
+ /** Additional CSS class names. */
6
+ readonly className?: string;
7
+ }
8
+ /**
9
+ * Settings section for an organization's own LLM provider keys.
10
+ *
11
+ * On a plan that includes bring-your-own provider keys (Business and
12
+ * above), an admin saves an Anthropic or OpenAI key, and the organization's
13
+ * agents and workflows then run on it: the provider bills the organization
14
+ * directly, and those tokens carry no Stigmer commission and do not count
15
+ * toward the plan's usage share. A saved key is never shown again, only its
16
+ * last four characters. A managed organization is served by its
17
+ * integrator's key for a provider it holds none of, shown read-only.
18
+ *
19
+ * A key the plan no longer allows is kept and listed as not in use, and
20
+ * can be removed; the organization's calls run on Stigmer's keys again,
21
+ * billed as usage. Every member sees the list; admins
22
+ * (`can_manage_billing`) save, replace and remove.
23
+ *
24
+ * Cloud-only: in local mode the runner already uses the developer's own
25
+ * keys directly.
26
+ *
27
+ * @example
28
+ * ```tsx
29
+ * <ProviderKeysSection />
30
+ * ```
31
+ */
32
+ export declare function ProviderKeysSection({ billingHref, className }: ProviderKeysSectionProps): import("react/jsx-runtime").JSX.Element;
33
+ //# sourceMappingURL=ProviderKeysSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderKeysSection.d.ts","sourceRoot":"","sources":["../src/billing/ProviderKeysSection.tsx"],"names":[],"mappings":"AA0BA,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB;IACvC,0FAA0F;IAC1F,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,wBAAwB,2CA8BvF"}
@@ -0,0 +1,143 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useCallback, useId, useState } from "react";
4
+ import { cn } from "@stigmer/theme";
5
+ import { getUserMessage } from "@stigmer/sdk";
6
+ import { timestampDate } from "@bufbuild/protobuf/wkt";
7
+ import { Feature } from "@stigmer/protos/ai/stigmer/platform/v1/entitlement_pb";
8
+ import { Button } from "../button/index.js";
9
+ import { ApiResourceKind, useDeploymentMode, useResourceAvailable } from "../deployment-mode.js";
10
+ import { useCheckPermission } from "../iam-policy/useCheckPermission.js";
11
+ import { CloudFeatureNotice } from "../internal/CloudFeatureNotice.js";
12
+ import { UNSTYLED_LIST } from "../internal/element-resets.js";
13
+ import { useOrg } from "../organization/OrgProvider.js";
14
+ import { lowestPlanWith } from "./plan-features.js";
15
+ import { planUpgradeFeature, UpgradeNotice } from "./UpgradeNotice.js";
16
+ import { useEntitlements } from "./useEntitlements.js";
17
+ import { usePlans } from "./usePlans.js";
18
+ import { useProviderKeyActions, useProviderKeys } from "./useProviderKeys.js";
19
+ /** The providers, in the order the section lists them. */
20
+ const PROVIDERS = [
21
+ { id: "anthropic", name: "Anthropic", placeholder: "sk-ant-…" },
22
+ { id: "openai", name: "OpenAI", placeholder: "sk-…" },
23
+ ];
24
+ /**
25
+ * Settings section for an organization's own LLM provider keys.
26
+ *
27
+ * On a plan that includes bring-your-own provider keys (Business and
28
+ * above), an admin saves an Anthropic or OpenAI key, and the organization's
29
+ * agents and workflows then run on it: the provider bills the organization
30
+ * directly, and those tokens carry no Stigmer commission and do not count
31
+ * toward the plan's usage share. A saved key is never shown again, only its
32
+ * last four characters. A managed organization is served by its
33
+ * integrator's key for a provider it holds none of, shown read-only.
34
+ *
35
+ * A key the plan no longer allows is kept and listed as not in use, and
36
+ * can be removed; the organization's calls run on Stigmer's keys again,
37
+ * billed as usage. Every member sees the list; admins
38
+ * (`can_manage_billing`) save, replace and remove.
39
+ *
40
+ * Cloud-only: in local mode the runner already uses the developer's own
41
+ * keys directly.
42
+ *
43
+ * @example
44
+ * ```tsx
45
+ * <ProviderKeysSection />
46
+ * ```
47
+ */
48
+ export function ProviderKeysSection({ billingHref, className }) {
49
+ const headingId = useId();
50
+ const { activeOrg } = useOrg();
51
+ const mode = useDeploymentMode();
52
+ const available = useResourceAvailable(ApiResourceKind.subscription);
53
+ const orgId = activeOrg?.metadata?.id ?? "";
54
+ return (_jsxs("section", { "aria-labelledby": headingId, className: className, children: [_jsx("h2", { id: headingId, className: "stg:text-foreground stg:mb-1 stg:text-sm stg:font-semibold", children: "Provider keys" }), _jsx("p", { className: "stg:text-muted-foreground stg:mb-4 stg:text-xs", children: "Run your agents on your organization's own Anthropic and OpenAI keys. The provider bills you directly; those tokens carry no Stigmer commission and do not count toward your plan's usage share." }), mode === "local" || !available ? (_jsx(CloudFeatureNotice, { children: "Your own provider keys are a Stigmer Cloud plan feature. Local mode already calls the providers with your own keys directly." })) : !orgId ? (_jsx("p", { className: "stg:text-muted-foreground stg:py-4 stg:text-center stg:text-xs", children: "Select an organization to manage its provider keys." })) : (_jsx(ProviderKeysContent, { orgId: orgId, billingHref: billingHref }))] }));
55
+ }
56
+ function ProviderKeysContent({ orgId, billingHref }) {
57
+ const listed = useProviderKeys(orgId);
58
+ const entitlements = useEntitlements(orgId);
59
+ const plans = usePlans();
60
+ const manage = useCheckPermission({ kind: "organization", id: orgId }, "can_manage_billing");
61
+ const canManage = !manage.isLoading && manage.allowed;
62
+ const actions = useProviderKeyActions();
63
+ const [editing, setEditing] = useState(null);
64
+ const allowed = entitlements.allows(Feature.byo_provider_keys);
65
+ const unlockingPlanName = lowestPlanWith(plans.plans ?? [], Feature.byo_provider_keys)?.metadata?.name;
66
+ const keys = listed.keys ?? [];
67
+ const refused = planUpgradeFeature(actions.error);
68
+ const refresh = useCallback(() => {
69
+ listed.refetch();
70
+ entitlements.refetch();
71
+ }, [listed, entitlements]);
72
+ if (listed.error) {
73
+ return _jsx("p", { className: "stg:text-destructive stg:text-xs", children: getUserMessage(listed.error) });
74
+ }
75
+ if (listed.keys === null || allowed === null) {
76
+ return _jsx("p", { className: "stg:text-muted-foreground stg:text-xs", children: "Loading provider keys\u2026" });
77
+ }
78
+ return (_jsxs("div", { className: "stg:space-y-3", children: [!allowed && (_jsx(UpgradeNotice, { feature: Feature.byo_provider_keys, unlockingPlanName: unlockingPlanName, billingHref: billingHref })), !allowed && keys.length > 0 && (_jsx("p", { className: "stg:text-muted-foreground stg:text-xs", children: "Your saved keys are kept but not used on this plan: your agents run on Stigmer's keys, billed as usage. You can remove them at any time." })), _jsx("ul", { "aria-label": "Provider keys", className: cn(UNSTYLED_LIST, "stg:divide-y stg:divide-border stg:rounded-md stg:border stg:border-border"), children: PROVIDERS.map((provider) => (_jsx(ProviderRow, { orgId: orgId, provider: provider, stored: keys.find((key) => key.provider === provider.id), canSave: canManage && allowed, canRemove: canManage, editing: editing === provider.id, onEdit: () => {
79
+ actions.clearError();
80
+ setEditing(provider.id);
81
+ }, onDone: () => {
82
+ setEditing(null);
83
+ refresh();
84
+ }, onCancel: () => setEditing(null), actions: actions }, provider.id))) }), refused !== null ? (_jsx(UpgradeNotice, { feature: refused, error: actions.error, billingHref: billingHref })) : actions.error ? (_jsx("p", { role: "alert", className: "stg:text-destructive stg:text-xs", children: getUserMessage(actions.error) })) : null, _jsx("p", { className: "stg:text-muted-foreground stg:text-[0.65rem]", children: "A failure on your own key, such as a rejected key or an exhausted provider balance, is reported as your key's; calls are never retried on Stigmer's keys." })] }));
85
+ }
86
+ function ProviderRow({ orgId, provider, stored, canSave, canRemove, editing, onEdit, onDone, onCancel, actions, }) {
87
+ const inputId = useId();
88
+ const [value, setValue] = useState("");
89
+ const [confirming, setConfirming] = useState(false);
90
+ const inherited = stored !== undefined && stored.inheritedFromOrgId !== "";
91
+ const own = stored !== undefined && !inherited;
92
+ const save = async () => {
93
+ try {
94
+ await actions.setKey(orgId, provider.id, value.trim());
95
+ setValue("");
96
+ onDone();
97
+ }
98
+ catch {
99
+ // The hook holds the error; the section renders it.
100
+ }
101
+ };
102
+ const remove = async () => {
103
+ try {
104
+ await actions.removeKey(orgId, provider.id);
105
+ setConfirming(false);
106
+ onDone();
107
+ }
108
+ catch {
109
+ // The hook holds the error; the section renders it.
110
+ }
111
+ };
112
+ return (_jsxs("li", { className: "stg:space-y-2 stg:px-3 stg:py-2.5", children: [_jsxs("div", { className: "stg:flex stg:items-start stg:justify-between stg:gap-3", children: [_jsxs("div", { className: "stg:min-w-0", children: [_jsx("p", { className: "stg:text-foreground stg:text-xs stg:font-medium", children: provider.name }), _jsx("p", { className: "stg:text-muted-foreground stg:text-[0.7rem]", children: describe(stored) })] }), !editing && !confirming && (_jsxs("div", { className: "stg:flex stg:shrink-0 stg:gap-2", children: [canSave && !inherited && (_jsx(Button, { size: "sm", variant: "outline", onClick: onEdit, disabled: actions.isSubmitting, children: own ? "Replace" : "Add key" })), canRemove && own && (_jsx(Button, { size: "sm", variant: "ghost", onClick: () => {
113
+ actions.clearError();
114
+ setConfirming(true);
115
+ }, disabled: actions.isSubmitting, children: "Remove" }))] }))] }), confirming && (_jsxs("div", { className: "stg:flex stg:flex-wrap stg:items-center stg:justify-between stg:gap-2 stg:rounded-md stg:border stg:border-destructive/30 stg:bg-destructive-subtle stg:px-2.5 stg:py-2", children: [_jsx("p", { className: "stg:text-foreground stg:min-w-0 stg:flex-1 stg:text-xs", children: stored?.inUse
116
+ ? `Remove your ${provider.name} key? Your agents' ${provider.name} calls go back to Stigmer's keys, billed as usage.`
117
+ : `Remove your ${provider.name} key? It is not in use on this plan.` }), _jsxs("div", { className: "stg:flex stg:shrink-0 stg:gap-2", children: [_jsx(Button, { size: "sm", variant: "destructive", onClick: () => void remove(), disabled: actions.isSubmitting, children: actions.isSubmitting ? "Removing…" : "Remove key" }), _jsx(Button, { size: "sm", variant: "ghost", onClick: () => setConfirming(false), disabled: actions.isSubmitting, children: "Cancel" })] })] })), editing && (_jsxs("form", { className: "stg:flex stg:flex-wrap stg:items-end stg:gap-2", onSubmit: (event) => {
118
+ event.preventDefault();
119
+ void save();
120
+ }, children: [_jsxs("div", { className: "stg:min-w-48 stg:flex-1 stg:space-y-1", children: [_jsxs("label", { htmlFor: inputId, className: "stg:text-foreground stg:text-xs stg:font-medium", children: [provider.name, " API key"] }), _jsx("input", { id: inputId, type: "password", autoComplete: "off", value: value, onChange: (event) => setValue(event.target.value), placeholder: provider.placeholder, disabled: actions.isSubmitting, className: cn("stg:w-full stg:rounded-md stg:border stg:border-input stg:bg-background stg:px-2.5 stg:py-1.5 stg:text-xs stg:text-foreground", "stg:placeholder:text-muted-foreground", "stg:focus-visible:outline-none stg:focus-visible:ring-1 stg:focus-visible:ring-ring", "stg:disabled:pointer-events-none stg:disabled:opacity-50") })] }), _jsx(Button, { size: "sm", type: "submit", disabled: actions.isSubmitting || value.trim() === "", children: actions.isSubmitting ? "Saving…" : "Save key" }), _jsx(Button, { size: "sm", variant: "ghost", type: "button", onClick: onCancel, disabled: actions.isSubmitting, children: "Cancel" })] }))] }));
121
+ }
122
+ /** One line about a provider's key: none, own, or inherited, with its use. */
123
+ function describe(key) {
124
+ if (key === undefined) {
125
+ return "Not set: calls run on Stigmer's keys, billed as usage.";
126
+ }
127
+ const parts = [`Key ending in ${key.keyHint}`];
128
+ if (key.inheritedFromOrgId !== "") {
129
+ parts.push(`provided by ${key.inheritedFromOrgId}`);
130
+ }
131
+ else if (key.updatedAt !== undefined) {
132
+ parts.push(`saved ${formatDay(timestampDate(key.updatedAt))}`);
133
+ }
134
+ parts.push(key.lastUsedAt === undefined ? "not used yet" : `last used ${formatDay(timestampDate(key.lastUsedAt))}`);
135
+ if (!key.inUse) {
136
+ parts.push("not in use on this plan");
137
+ }
138
+ return parts.join(" · ");
139
+ }
140
+ function formatDay(date) {
141
+ return date.toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric", timeZone: "UTC" });
142
+ }
143
+ //# sourceMappingURL=ProviderKeysSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderKeysSection.js","sourceRoot":"","sources":["../src/billing/ProviderKeysSection.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradeNotice.d.ts","sourceRoot":"","sources":["../src/billing/UpgradeNotice.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,uDAAuD,CAAC;AAGhF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAE7D,+FAA+F;AAC/F,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AAQxD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAMjE;AAED,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,4FAA4F;IAC5F,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,iBAAiB,EACjB,WAAkC,EAClC,SAAS,GACV,EAAE,kBAAkB,2CAqBpB"}
1
+ {"version":3,"file":"UpgradeNotice.d.ts","sourceRoot":"","sources":["../src/billing/UpgradeNotice.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,uDAAuD,CAAC;AAGhF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAE7D,+FAA+F;AAC/F,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AASxD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAMjE;AAED,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,4FAA4F;IAC5F,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,iBAAiB,EACjB,WAAkC,EAClC,SAAS,GACV,EAAE,kBAAkB,2CAqBpB"}
@@ -15,6 +15,7 @@ export const DEFAULT_BILLING_HREF = "/settings/billing";
15
15
  const FEATURE_BY_WIRE_NAME = {
16
16
  teams: Feature.teams,
17
17
  managed_organizations: Feature.managed_organizations,
18
+ byo_provider_keys: Feature.byo_provider_keys,
18
19
  };
19
20
  /**
20
21
  * The feature a refusal says the organization's plan lacks, when `error`
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradeNotice.js","sourceRoot":"","sources":["../src/billing/UpgradeNotice.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,uDAAuD,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEvE;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAE7D,+FAA+F;AAC/F,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AAExD,+DAA+D;AAC/D,MAAM,oBAAoB,GAAsC;IAC9D,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;CACrD,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,MAAM,EAAE,MAAM,KAAK,qBAAqB,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;AACrE,CAAC;AAwBD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,iBAAiB,EACjB,WAAW,GAAG,oBAAoB,EAClC,SAAS,GACU;IACnB,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;IACrF,MAAM,KAAK,GACT,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,KAAK,EAAE;QACzD,CAAC,CAAC,GAAG,KAAK,gDAAgD;QAC1D,CAAC,CAAC,GAAG,KAAK,aAAa,iBAAiB,iBAAiB,CAAC;IAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,+FAA+F,EAC/F,SAAS,CACV,EACD,IAAI,EAAC,QAAQ,aAEb,YAAG,SAAS,EAAC,qBAAqB,YAAE,OAAO,GAAK,EAChD,YAAG,IAAI,EAAE,WAAW,EAAE,SAAS,EAAC,gFAAgF,2BAE5G,IACA,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"UpgradeNotice.js","sourceRoot":"","sources":["../src/billing/UpgradeNotice.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,uDAAuD,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEvE;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAE7D,+FAA+F;AAC/F,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AAExD,+DAA+D;AAC/D,MAAM,oBAAoB,GAAsC;IAC9D,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;IACpD,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;CAC7C,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,MAAM,EAAE,MAAM,KAAK,qBAAqB,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;AACrE,CAAC;AAwBD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,iBAAiB,EACjB,WAAW,GAAG,oBAAoB,EAClC,SAAS,GACU;IACnB,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;IACrF,MAAM,KAAK,GACT,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,KAAK,EAAE;QACzD,CAAC,CAAC,GAAG,KAAK,gDAAgD;QAC1D,CAAC,CAAC,GAAG,KAAK,aAAa,iBAAiB,iBAAiB,CAAC;IAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,+FAA+F,EAC/F,SAAS,CACV,EACD,IAAI,EAAC,QAAQ,aAEb,YAAG,SAAS,EAAC,qBAAqB,YAAE,OAAO,GAAK,EAChD,YAAG,IAAI,EAAE,WAAW,EAAE,SAAS,EAAC,gFAAgF,2BAE5G,IACA,CACP,CAAC;AACJ,CAAC"}
@@ -14,6 +14,8 @@ export { useEntitlements } from "./useEntitlements.js";
14
14
  export type { UseEntitlementsOptions, UseEntitlementsReturn } from "./useEntitlements.js";
15
15
  export { usePeriodEstimate } from "./usePeriodEstimate.js";
16
16
  export type { UsePeriodEstimateOptions, UsePeriodEstimateReturn } from "./usePeriodEstimate.js";
17
+ export { useProviderKeys, useProviderKeyActions } from "./useProviderKeys.js";
18
+ export type { ProviderKeyProvider, UseProviderKeysOptions, UseProviderKeysReturn, UseProviderKeyActionsReturn, } from "./useProviderKeys.js";
17
19
  export { useCreateCheckoutSession } from "./useCreateCheckoutSession.js";
18
20
  export type { CreateCheckoutSessionInput, UseCreateCheckoutSessionReturn, } from "./useCreateCheckoutSession.js";
19
21
  export { useCreateBillingPortalSession } from "./useCreateBillingPortalSession.js";
@@ -27,6 +29,8 @@ export { planStanding, planMove } from "./plan-state.js";
27
29
  export type { PlanStanding, PlanMove } from "./plan-state.js";
28
30
  export { useSetAutoRechargeConfig } from "./useSetAutoRechargeConfig.js";
29
31
  export type { SetAutoRechargeConfigInput, UseSetAutoRechargeConfigReturn, } from "./useSetAutoRechargeConfig.js";
32
+ export { ProviderKeysSection } from "./ProviderKeysSection.js";
33
+ export type { ProviderKeysSectionProps } from "./ProviderKeysSection.js";
30
34
  export { BillingSection } from "./BillingSection.js";
31
35
  export type { BillingSectionProps } from "./BillingSection.js";
32
36
  export { CreditBalanceCard } from "./CreditBalanceCard.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/billing/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/billing/index.ts"],"names":[],"mappings":"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"}
package/billing/index.js CHANGED
@@ -11,6 +11,7 @@ export { usePlans } from "./usePlans.js";
11
11
  export { useSubscription } from "./useSubscription.js";
12
12
  export { useEntitlements } from "./useEntitlements.js";
13
13
  export { usePeriodEstimate } from "./usePeriodEstimate.js";
14
+ export { useProviderKeys, useProviderKeyActions } from "./useProviderKeys.js";
14
15
  // Behavior hooks
15
16
  export { useCreateCheckoutSession } from "./useCreateCheckoutSession.js";
16
17
  export { useCreateBillingPortalSession } from "./useCreateBillingPortalSession.js";
@@ -19,6 +20,7 @@ export { useCreatePaymentMethodSetupSession } from "./useCreatePaymentMethodSetu
19
20
  export { planStanding, planMove } from "./plan-state.js";
20
21
  export { useSetAutoRechargeConfig } from "./useSetAutoRechargeConfig.js";
21
22
  // Styled components
23
+ export { ProviderKeysSection } from "./ProviderKeysSection.js";
22
24
  export { BillingSection } from "./BillingSection.js";
23
25
  export { CreditBalanceCard } from "./CreditBalanceCard.js";
24
26
  export { PaymentMethodCard } from "./PaymentMethodCard.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/billing/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,yEAAyE;AACzE,oEAAoE;AACpE,iEAAiE;AAEjE,aAAa;AACb,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,iBAAiB;AACjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAKzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAC;AAG7F,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAMzE,oBAAoB;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAGpH,+CAA+C;AAC/C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErF,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACN,gBAAgB,GACjB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/billing/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,yEAAyE;AACzE,oEAAoE;AACpE,iEAAiE;AAEjE,aAAa;AACb,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAQ9E,iBAAiB;AACjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAKzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAC;AAG7F,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAMzE,oBAAoB;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAGpH,+CAA+C;AAC/C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErF,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACN,gBAAgB,GACjB,MAAM,aAAa,CAAC"}
@@ -6,8 +6,9 @@ import { type NamedFeature } from "../internal/features.js";
6
6
  /**
7
7
  * Features a plan may list ahead of the gate that serves them, which
8
8
  * Stigmer Cloud does not offer yet. The console leaves them out of every
9
- * comparison. Bring-your-own provider keys leaves this set when the proxy
10
- * uses an organization's own key.
9
+ * comparison. Empty while every listed feature is served; bring-your-own
10
+ * provider keys left it when the proxy began serving an organization's own
11
+ * key (stigmer/stigmer#1425).
11
12
  */
12
13
  export declare const NOT_YET_OFFERED: ReadonlySet<Feature>;
13
14
  /** One feature a plan offers today, with its words. */
@@ -1 +1 @@
1
- {"version":3,"file":"plan-features.d.ts","sourceRoot":"","sources":["../src/billing/plan-features.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mDAAmD,CAAC;AAC9E,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAEpG,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uDAAuD,CAAC;AACnG,OAAO,EAAgC,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAO1F;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,OAAO,CAAwC,CAAC;AAE1F,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,cAAc,EAAE,CAMjG;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,SAAS,IAAI,EAAE,CASpE;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAIzF;AAED,4FAA4F;AAC5F,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,EAAE,EAAE,IAAI,GAAG,SAAS,cAAc,EAAE,CAGxF;AAQD,qDAAqD;AACrD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAEzE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAKrE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAYtE;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAMjE;AAED,sFAAsF;AACtF,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,KAAK,EAAE,SAAS,GAAG,SAAS,GAC3B,MAAM,CAWR;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAExE;AAED,mGAAmG;AACnG,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE5C"}
1
+ {"version":3,"file":"plan-features.d.ts","sourceRoot":"","sources":["../src/billing/plan-features.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mDAAmD,CAAC;AAC9E,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAEpG,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uDAAuD,CAAC;AACnG,OAAO,EAAgC,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAO1F;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,OAAO,CAAsB,CAAC;AAExE,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,cAAc,EAAE,CAMjG;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,SAAS,IAAI,EAAE,CASpE;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAIzF;AAED,4FAA4F;AAC5F,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,EAAE,EAAE,IAAI,GAAG,SAAS,cAAc,EAAE,CAGxF;AAQD,qDAAqD;AACrD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAEzE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAKrE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAYtE;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAMjE;AAED,sFAAsF;AACtF,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,KAAK,EAAE,SAAS,GAAG,SAAS,GAC3B,MAAM,CAWR;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAExE;AAED,mGAAmG;AACnG,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE5C"}
@@ -19,10 +19,11 @@ const ZERO = BigInt(0);
19
19
  /**
20
20
  * Features a plan may list ahead of the gate that serves them, which
21
21
  * Stigmer Cloud does not offer yet. The console leaves them out of every
22
- * comparison. Bring-your-own provider keys leaves this set when the proxy
23
- * uses an organization's own key.
22
+ * comparison. Empty while every listed feature is served; bring-your-own
23
+ * provider keys left it when the proxy began serving an organization's own
24
+ * key (stigmer/stigmer#1425).
24
25
  */
25
- export const NOT_YET_OFFERED = new Set([Feature.byo_provider_keys]);
26
+ export const NOT_YET_OFFERED = new Set();
26
27
  /** The features `entitlements` grant that Cloud offers today, in contract order. */
27
28
  export function offeredFeatures(entitlements) {
28
29
  const listed = entitlements?.features ?? [];
@@ -1 +1 @@
1
- {"version":3,"file":"plan-features.js","sourceRoot":"","sources":["../src/billing/plan-features.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-features.js","sourceRoot":"","sources":["../src/billing/plan-features.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import type { ProviderKey } from "@stigmer/protos/ai/stigmer/billing/providerkey/v1/api_pb";
2
+ /** The providers an organization may bring its own key for, by their wire names. */
3
+ export type ProviderKeyProvider = "anthropic" | "openai";
4
+ /** Options for {@link useProviderKeys}. */
5
+ export interface UseProviderKeysOptions {
6
+ /** Skip fetching while `false` (stable no-op). Default `true`. */
7
+ readonly enabled?: boolean;
8
+ }
9
+ /** Return value of {@link useProviderKeys}. */
10
+ export interface UseProviderKeysReturn {
11
+ /**
12
+ * The keys that serve the organization, its own and any it inherits from
13
+ * its integrator, without their secrets; `null` before the first
14
+ * successful fetch.
15
+ */
16
+ readonly keys: readonly ProviderKey[] | null;
17
+ /** `true` while the initial fetch is in flight. */
18
+ readonly isLoading: boolean;
19
+ /** Error from the last failed request, or `null` when healthy. */
20
+ readonly error: Error | null;
21
+ /** Discard cached data and re-fetch from the server. */
22
+ readonly refetch: () => void;
23
+ }
24
+ /**
25
+ * Data hook that lists an organization's own LLM provider keys.
26
+ *
27
+ * No answer carries a key: each row names the provider, the key's last
28
+ * four characters, who saved it and when, when it last served a call, and
29
+ * whether the organization's plan still lets it be used. A managed
30
+ * organization's list includes its integrator's keys for the providers it
31
+ * holds none of (`inheritedFromOrgId`). Every member may read it
32
+ * (`can_view_billing`).
33
+ *
34
+ * Cloud-only.
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * const { keys } = useProviderKeys(orgId);
39
+ * ```
40
+ */
41
+ export declare function useProviderKeys(orgId: string | null, options?: UseProviderKeysOptions): UseProviderKeysReturn;
42
+ /** Return value of {@link useProviderKeyActions}. */
43
+ export interface UseProviderKeyActionsReturn {
44
+ /**
45
+ * Save the organization's key for a provider, replacing any it holds.
46
+ * The provider is asked about the key once first, and a key it rejects is
47
+ * refused. Refused with the `PLAN_UPGRADE_REQUIRED` reason when the
48
+ * organization's plan does not include bring-your-own provider keys.
49
+ * Resolves with the saved key, without its secret.
50
+ */
51
+ readonly setKey: (orgId: string, provider: ProviderKeyProvider, apiKey: string) => Promise<ProviderKey>;
52
+ /** Remove the organization's key for a provider; allowed on every plan. */
53
+ readonly removeKey: (orgId: string, provider: ProviderKeyProvider) => Promise<ProviderKey>;
54
+ /** `true` while a save or a removal is in flight. */
55
+ readonly isSubmitting: boolean;
56
+ /** Error from the last failed attempt, or `null` when healthy. */
57
+ readonly error: Error | null;
58
+ /** Reset `error` to `null`. */
59
+ readonly clearError: () => void;
60
+ }
61
+ /**
62
+ * Behaviour hook that saves and removes an organization's own provider
63
+ * keys. The caller needs `can_manage_billing` on the organization (its
64
+ * admins). Refetch {@link useProviderKeys} after a change.
65
+ */
66
+ export declare function useProviderKeyActions(): UseProviderKeyActionsReturn;
67
+ //# sourceMappingURL=useProviderKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useProviderKeys.d.ts","sourceRoot":"","sources":["../src/billing/useProviderKeys.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0DAA0D,CAAC;AAU5F,oFAAoF;AACpF,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEzD,2CAA2C;AAC3C,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,+CAA+C;AAC/C,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,GAAG,IAAI,CAAC;IAC7C,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,qBAAqB,CAU7G;AAED,qDAAqD;AACrD,MAAM,WAAW,2BAA2B;IAC1C;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACxG,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3F,qDAAqD;IACrD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,2BAA2B,CAmCnE"}
@@ -0,0 +1,61 @@
1
+ "use client";
2
+ import { useCallback, useMemo, useState } from "react";
3
+ import { create } from "@bufbuild/protobuf";
4
+ import { DeleteProviderKeyInputSchema, ListProviderKeysInputSchema, SetProviderKeyInputSchema, } from "@stigmer/protos/ai/stigmer/billing/providerkey/v1/io_pb";
5
+ import { useStigmer } from "../hooks.js";
6
+ import { toError } from "../internal/toError.js";
7
+ import { useFetch } from "../internal/useFetch.js";
8
+ /**
9
+ * Data hook that lists an organization's own LLM provider keys.
10
+ *
11
+ * No answer carries a key: each row names the provider, the key's last
12
+ * four characters, who saved it and when, when it last served a call, and
13
+ * whether the organization's plan still lets it be used. A managed
14
+ * organization's list includes its integrator's keys for the providers it
15
+ * holds none of (`inheritedFromOrgId`). Every member may read it
16
+ * (`can_view_billing`).
17
+ *
18
+ * Cloud-only.
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * const { keys } = useProviderKeys(orgId);
23
+ * ```
24
+ */
25
+ export function useProviderKeys(orgId, options) {
26
+ const stigmer = useStigmer();
27
+ const enabled = (options?.enabled ?? true) && orgId !== null && orgId !== "";
28
+ const { data, isLoading, error, refetch } = useFetch(enabled && orgId ? () => stigmer.providerkey.list(create(ListProviderKeysInputSchema, { orgId })) : null, [enabled, orgId, stigmer], null);
29
+ const keys = data?.keys ?? null;
30
+ return useMemo(() => ({ keys, isLoading, error, refetch }), [keys, isLoading, error, refetch]);
31
+ }
32
+ /**
33
+ * Behaviour hook that saves and removes an organization's own provider
34
+ * keys. The caller needs `can_manage_billing` on the organization (its
35
+ * admins). Refetch {@link useProviderKeys} after a change.
36
+ */
37
+ export function useProviderKeyActions() {
38
+ const stigmer = useStigmer();
39
+ const [isSubmitting, setIsSubmitting] = useState(false);
40
+ const [error, setError] = useState(null);
41
+ const run = useCallback(async (call) => {
42
+ setIsSubmitting(true);
43
+ setError(null);
44
+ try {
45
+ return await call();
46
+ }
47
+ catch (e) {
48
+ const err = toError(e);
49
+ setError(err);
50
+ throw err;
51
+ }
52
+ finally {
53
+ setIsSubmitting(false);
54
+ }
55
+ }, []);
56
+ const setKey = useCallback((orgId, provider, apiKey) => run(() => stigmer.providerkey.set(create(SetProviderKeyInputSchema, { orgId, provider, apiKey }))), [run, stigmer.providerkey]);
57
+ const removeKey = useCallback((orgId, provider) => run(() => stigmer.providerkey.delete(create(DeleteProviderKeyInputSchema, { orgId, provider }))), [run, stigmer.providerkey]);
58
+ const clearError = useCallback(() => setError(null), []);
59
+ return useMemo(() => ({ setKey, removeKey, isSubmitting, error, clearError }), [setKey, removeKey, isSubmitting, error, clearError]);
60
+ }
61
+ //# sourceMappingURL=useProviderKeys.js.map