@stigmer/react 3.40.1 → 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.
- package/README.md +1 -0
- package/access/ManageAccessDialog.d.ts +1 -1
- package/access/ManageAccessDialog.js +1 -1
- package/access/types.d.ts +1 -1
- package/billing/ChangePlanDialog.d.ts.map +1 -1
- package/billing/ChangePlanDialog.js +13 -1
- package/billing/ChangePlanDialog.js.map +1 -1
- package/billing/ProviderKeysSection.d.ts +33 -0
- package/billing/ProviderKeysSection.d.ts.map +1 -0
- package/billing/ProviderKeysSection.js +143 -0
- package/billing/ProviderKeysSection.js.map +1 -0
- package/billing/UpgradeNotice.d.ts.map +1 -1
- package/billing/UpgradeNotice.js +1 -0
- package/billing/UpgradeNotice.js.map +1 -1
- package/billing/index.d.ts +4 -0
- package/billing/index.d.ts.map +1 -1
- package/billing/index.js +2 -0
- package/billing/index.js.map +1 -1
- package/billing/plan-features.d.ts +3 -2
- package/billing/plan-features.d.ts.map +1 -1
- package/billing/plan-features.js +4 -3
- package/billing/plan-features.js.map +1 -1
- package/billing/useProviderKeys.d.ts +67 -0
- package/billing/useProviderKeys.d.ts.map +1 -0
- package/billing/useProviderKeys.js +61 -0
- package/billing/useProviderKeys.js.map +1 -0
- package/channel/AgentChannelsPanel.d.ts.map +1 -1
- package/channel/AgentChannelsPanel.js +11 -9
- package/channel/AgentChannelsPanel.js.map +1 -1
- package/channel/connect/ServingAppSection.js +1 -1
- package/channel/connect/ServingAppSection.js.map +1 -1
- package/channel-app/ChannelAppDetailPanel.d.ts +2 -2
- package/channel-app/ChannelAppDetailPanel.js +17 -10
- package/channel-app/ChannelAppDetailPanel.js.map +1 -1
- package/channel-app/ChannelAppListPanel.d.ts +2 -2
- package/channel-app/CreateChannelAppForm.js +1 -1
- package/channel-app/CreateChannelAppForm.js.map +1 -1
- package/channel-app/copy.d.ts +3 -3
- package/channel-app/copy.js +3 -3
- package/channel-app/internal.d.ts +9 -0
- package/channel-app/internal.d.ts.map +1 -1
- package/channel-app/internal.js +9 -0
- package/channel-app/internal.js.map +1 -1
- package/channel-app/slackAppSetup.d.ts +3 -1
- package/channel-app/slackAppSetup.d.ts.map +1 -1
- package/channel-app/slackAppSetup.js +3 -1
- package/channel-app/slackAppSetup.js.map +1 -1
- package/channel-app/whatsappAppSetup.d.ts +3 -1
- package/channel-app/whatsappAppSetup.d.ts.map +1 -1
- package/channel-app/whatsappAppSetup.js +3 -1
- package/channel-app/whatsappAppSetup.js.map +1 -1
- package/composer/SessionComposer.d.ts.map +1 -1
- package/composer/SessionComposer.js +5 -9
- package/composer/SessionComposer.js.map +1 -1
- package/environment/EnvironmentVariableEditor.js +1 -1
- package/environment/EnvironmentVariableEditor.js.map +1 -1
- package/environment/index.d.ts +1 -1
- package/environment/index.d.ts.map +1 -1
- package/environment/index.js +1 -1
- package/environment/index.js.map +1 -1
- package/environment/systemEnvVars.d.ts +4 -63
- package/environment/systemEnvVars.d.ts.map +1 -1
- package/environment/systemEnvVars.js +21 -113
- package/environment/systemEnvVars.js.map +1 -1
- package/execution/RecalledMemoriesCard.js +1 -1
- package/iam-policy/OrgMembersPanel.js +1 -1
- package/iam-policy/OrgMembersPanel.js.map +1 -1
- package/iam-policy/useCheckPermission.d.ts +4 -1
- package/iam-policy/useCheckPermission.d.ts.map +1 -1
- package/iam-policy/useCheckPermission.js +4 -1
- package/iam-policy/useCheckPermission.js.map +1 -1
- package/iam-policy/useGrantableRoles.d.ts +1 -1
- package/iam-policy/useGrantableRoles.js +1 -1
- package/iam-policy/useRevokeOrgAccess.d.ts +10 -8
- package/iam-policy/useRevokeOrgAccess.d.ts.map +1 -1
- package/iam-policy/useRevokeOrgAccess.js +4 -4
- package/iam-policy/useRevokeOrgAccess.js.map +1 -1
- package/identity-account/AccountPreferencesPanel.d.ts +6 -0
- package/identity-account/AccountPreferencesPanel.d.ts.map +1 -1
- package/identity-account/AccountPreferencesPanel.js +33 -2
- package/identity-account/AccountPreferencesPanel.js.map +1 -1
- package/identity-account/useAccountExecutionDefaults.d.ts +1 -1
- package/identity-account/useAccountExecutionDefaults.d.ts.map +1 -1
- package/identity-account/useAccountExecutionDefaults.js +2 -3
- package/identity-account/useAccountExecutionDefaults.js.map +1 -1
- package/index.d.ts +3 -3
- package/index.d.ts.map +1 -1
- package/index.js +3 -3
- package/index.js.map +1 -1
- package/internal/UnknownPublicAddressNotice.d.ts +20 -0
- package/internal/UnknownPublicAddressNotice.d.ts.map +1 -0
- package/internal/UnknownPublicAddressNotice.js +19 -0
- package/internal/UnknownPublicAddressNotice.js.map +1 -0
- package/internal/features.js +2 -2
- package/internal/features.js.map +1 -1
- package/library/InstanceVisibilitySelector.d.ts +1 -1
- package/library/InstanceVisibilitySelector.d.ts.map +1 -1
- package/library/ResourceVisibilityControl.d.ts +6 -3
- package/library/ResourceVisibilityControl.d.ts.map +1 -1
- package/library/ResourceVisibilityControl.js +7 -4
- package/library/ResourceVisibilityControl.js.map +1 -1
- package/library/VisibilitySelector.d.ts +2 -2
- package/library/VisibilitySelector.d.ts.map +1 -1
- package/library/VisibilitySelector.js +1 -1
- package/licenses/LicenseIssueForm.js +1 -1
- package/licenses/LicenseIssueForm.js.map +1 -1
- package/licenses/license-format.d.ts +7 -5
- package/licenses/license-format.d.ts.map +1 -1
- package/licenses/license-format.js +1 -3
- package/licenses/license-format.js.map +1 -1
- package/mcp-server/McpServerConnectDialog.js +4 -5
- package/mcp-server/McpServerConnectDialog.js.map +1 -1
- package/mcp-server/McpServerDetailView.d.ts.map +1 -1
- package/mcp-server/McpServerDetailView.js +3 -6
- package/mcp-server/McpServerDetailView.js.map +1 -1
- package/mcp-server/McpServerPicker.d.ts.map +1 -1
- package/mcp-server/McpServerPicker.js +2 -6
- package/mcp-server/McpServerPicker.js.map +1 -1
- package/mcp-server/McpToolSelector.js +1 -1
- package/mcp-server/McpToolSelector.js.map +1 -1
- package/mcp-server/useMcpServerConnect.d.ts +14 -25
- package/mcp-server/useMcpServerConnect.d.ts.map +1 -1
- package/mcp-server/useMcpServerConnect.js +7 -19
- package/mcp-server/useMcpServerConnect.js.map +1 -1
- package/mcp-server/useMcpServerOAuthConnect.d.ts +1 -3
- package/mcp-server/useMcpServerOAuthConnect.d.ts.map +1 -1
- package/mcp-server/useMcpServerOAuthConnect.js +6 -19
- package/mcp-server/useMcpServerOAuthConnect.js.map +1 -1
- package/models/HarnessSelector.d.ts.map +1 -1
- package/models/HarnessSelector.js +1 -2
- package/models/HarnessSelector.js.map +1 -1
- package/models/ModelSelector.d.ts +1 -1
- package/models/ModelSelector.d.ts.map +1 -1
- package/models/ModelSelector.js +1 -7
- package/models/ModelSelector.js.map +1 -1
- package/models/harness.d.ts +10 -6
- package/models/harness.d.ts.map +1 -1
- package/models/harness.js +35 -28
- package/models/harness.js.map +1 -1
- package/models/index.d.ts +1 -1
- package/models/index.d.ts.map +1 -1
- package/models/index.js +1 -1
- package/models/index.js.map +1 -1
- package/organization/OrgPreferencesPanel.d.ts.map +1 -1
- package/organization/OrgPreferencesPanel.js +13 -1
- package/organization/OrgPreferencesPanel.js.map +1 -1
- package/package.json +5 -5
- package/plugin/useMcpServerReadiness.js +2 -2
- package/plugin/useMcpServerReadiness.js.map +1 -1
- package/provider-standing/ProviderStandingConsole.js +1 -1
- package/provider.d.ts +27 -1
- package/provider.d.ts.map +1 -1
- package/provider.js +3 -2
- package/provider.js.map +1 -1
- package/public-base-url-context.d.ts +35 -0
- package/public-base-url-context.d.ts.map +1 -0
- package/public-base-url-context.js +62 -0
- package/public-base-url-context.js.map +1 -0
- package/resource-workbench/components/SelectionCheckbox.js +1 -1
- package/resource-workbench/components/SelectionCheckbox.js.map +1 -1
- package/session/useLocalSessionWorker.d.ts +19 -3
- package/session/useLocalSessionWorker.d.ts.map +1 -1
- package/session/useLocalSessionWorker.js +37 -4
- package/session/useLocalSessionWorker.js.map +1 -1
- package/settings/ChannelAppsSection.d.ts +4 -4
- package/settings/ChannelAppsSection.js +4 -4
- package/settings/ProviderKeysSection.d.ts +3 -0
- package/settings/ProviderKeysSection.d.ts.map +1 -0
- package/settings/ProviderKeysSection.js +3 -0
- package/settings/ProviderKeysSection.js.map +1 -0
- package/settings/index.d.ts +2 -0
- package/settings/index.d.ts.map +1 -1
- package/settings/index.js +1 -0
- package/settings/index.js.map +1 -1
- package/settings/settings-nav.d.ts.map +1 -1
- package/settings/settings-nav.js +2 -1
- package/settings/settings-nav.js.map +1 -1
- package/sharing/ShareAgentDialog.d.ts.map +1 -1
- package/sharing/ShareAgentDialog.js +12 -8
- package/sharing/ShareAgentDialog.js.map +1 -1
- package/sharing/useCanCreateAgentShare.d.ts +3 -1
- package/sharing/useCanCreateAgentShare.d.ts.map +1 -1
- package/sharing/useCanCreateAgentShare.js +5 -3
- package/sharing/useCanCreateAgentShare.js.map +1 -1
- package/sharing/useSaveAgentShare.d.ts +1 -1
- package/sharing/useSaveAgentShare.js +1 -1
- package/src/access/ManageAccessDialog.tsx +1 -1
- package/src/access/types.ts +1 -1
- package/src/billing/ChangePlanDialog.tsx +14 -2
- package/src/billing/ProviderKeysSection.tsx +324 -0
- package/src/billing/UpgradeNotice.tsx +1 -0
- package/src/billing/index.ts +9 -0
- package/src/billing/plan-features.ts +4 -3
- package/src/billing/useProviderKeys.ts +129 -0
- package/src/channel/AgentChannelsPanel.tsx +11 -9
- package/src/channel/connect/ServingAppSection.tsx +1 -1
- package/src/channel-app/ChannelAppDetailPanel.tsx +37 -20
- package/src/channel-app/ChannelAppListPanel.tsx +2 -2
- package/src/channel-app/CreateChannelAppForm.tsx +0 -1
- package/src/channel-app/copy.ts +3 -3
- package/src/channel-app/internal.tsx +21 -0
- package/src/channel-app/slackAppSetup.ts +3 -1
- package/src/channel-app/whatsappAppSetup.ts +3 -1
- package/src/composer/SessionComposer.tsx +5 -14
- package/src/environment/EnvironmentVariableEditor.tsx +1 -1
- package/src/environment/index.ts +1 -7
- package/src/environment/systemEnvVars.ts +21 -133
- package/src/execution/RecalledMemoriesCard.tsx +1 -1
- package/src/iam-policy/OrgMembersPanel.tsx +3 -1
- package/src/iam-policy/useCheckPermission.ts +4 -1
- package/src/iam-policy/useGrantableRoles.ts +1 -1
- package/src/iam-policy/useRevokeOrgAccess.ts +10 -8
- package/src/identity-account/AccountPreferencesPanel.tsx +56 -9
- package/src/identity-account/useAccountExecutionDefaults.ts +2 -5
- package/src/index.ts +9 -5
- package/src/internal/UnknownPublicAddressNotice.tsx +31 -0
- package/src/internal/features.ts +2 -2
- package/src/library/InstanceVisibilitySelector.tsx +1 -1
- package/src/library/ResourceVisibilityControl.tsx +7 -4
- package/src/library/VisibilitySelector.tsx +2 -2
- package/src/licenses/LicenseIssueForm.tsx +1 -1
- package/src/licenses/license-format.ts +11 -7
- package/src/mcp-server/McpServerConnectDialog.tsx +4 -6
- package/src/mcp-server/McpServerDetailView.tsx +3 -6
- package/src/mcp-server/McpServerPicker.tsx +2 -12
- package/src/mcp-server/McpToolSelector.tsx +1 -1
- package/src/mcp-server/useMcpServerConnect.ts +14 -33
- package/src/mcp-server/useMcpServerOAuthConnect.ts +7 -23
- package/src/models/HarnessSelector.tsx +1 -3
- package/src/models/ModelSelector.tsx +2 -7
- package/src/models/harness.ts +41 -39
- package/src/models/index.ts +1 -1
- package/src/organization/OrgPreferencesPanel.tsx +19 -1
- package/src/plugin/useMcpServerReadiness.ts +2 -2
- package/src/provider-standing/ProviderStandingConsole.tsx +1 -1
- package/src/provider.tsx +56 -26
- package/src/public-base-url-context.ts +70 -0
- package/src/resource-workbench/components/SelectionCheckbox.tsx +1 -1
- package/src/session/useLocalSessionWorker.ts +35 -4
- package/src/settings/ChannelAppsSection.tsx +4 -4
- package/src/settings/ProviderKeysSection.tsx +4 -0
- package/src/settings/index.ts +2 -0
- package/src/settings/settings-nav.ts +2 -0
- package/src/sharing/ShareAgentDialog.tsx +30 -14
- package/src/sharing/useCanCreateAgentShare.ts +6 -4
- package/src/sharing/useSaveAgentShare.ts +1 -1
- package/src/styles.css +14 -4
- package/src/workflow/WorkflowTaskApprovalSummary.tsx +14 -7
- package/src/workflow/inspector/tabs/BranchesTab.tsx +2 -2
- package/src/workflow/inspector/tabs/CatchTab.tsx +1 -1
- package/src/workflow/inspector/tabs/IterationTab.tsx +1 -1
- package/src/workflow/instance/WorkflowInstanceDetailPanel.tsx +7 -6
- package/src/workflow/task-detail/task-approval.ts +20 -13
- package/styles.css +1 -1
- package/workflow/WorkflowTaskApprovalSummary.d.ts +7 -4
- package/workflow/WorkflowTaskApprovalSummary.d.ts.map +1 -1
- package/workflow/WorkflowTaskApprovalSummary.js +8 -3
- package/workflow/WorkflowTaskApprovalSummary.js.map +1 -1
- package/workflow/inspector/tabs/BranchesTab.js +1 -1
- package/workflow/inspector/tabs/BranchesTab.js.map +1 -1
- package/workflow/inspector/tabs/CatchTab.js +1 -1
- package/workflow/inspector/tabs/CatchTab.js.map +1 -1
- package/workflow/inspector/tabs/IterationTab.js +1 -1
- package/workflow/inspector/tabs/IterationTab.js.map +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.d.ts.map +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.js +6 -5
- package/workflow/instance/WorkflowInstanceDetailPanel.js.map +1 -1
- package/workflow/task-detail/task-approval.d.ts +13 -11
- package/workflow/task-detail/task-approval.d.ts.map +1 -1
- package/workflow/task-detail/task-approval.js +8 -4
- 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 `
|
|
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 `
|
|
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 `
|
|
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":"
|
|
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), ".
|
|
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":"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
|
|
1
|
+
{"version":3,"file":"ChangePlanDialog.js","sourceRoot":"","sources":["../src/billing/ChangePlanDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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"}
|
package/billing/UpgradeNotice.js
CHANGED
|
@@ -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;
|
|
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"}
|
package/billing/index.d.ts
CHANGED
|
@@ -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";
|
package/billing/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/billing/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;
|
|
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";
|
package/billing/index.js.map
CHANGED
|
@@ -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;
|
|
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.
|
|
10
|
-
*
|
|
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
|
|
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"}
|
package/billing/plan-features.js
CHANGED
|
@@ -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.
|
|
23
|
-
*
|
|
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(
|
|
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":"AAAA,2EAA2E;AAC3E,yEAAyE;AACzE,WAAW;AACX,EAAE;AACF,oEAAoE;AACpE,qEAAqE;AACrE,2EAA2E;AAC3E,uEAAuE;AACvE,iDAAiD;AAGjD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAkB,MAAM,oDAAoD,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,MAAM,sDAAsD,CAAC;AACrF,OAAO,EAAE,OAAO,EAAqB,MAAM,uDAAuD,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,qEAAqE;AACrE,2DAA2D;AAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAEvB
|
|
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
|