@stigmer/react 3.3.0 → 3.4.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 (219) hide show
  1. package/billing/index.d.ts +0 -18
  2. package/billing/index.d.ts.map +1 -1
  3. package/billing/index.js +4 -9
  4. package/billing/index.js.map +1 -1
  5. package/cursor-accounts/CursorAccountEditor.d.ts +7 -1
  6. package/cursor-accounts/CursorAccountEditor.d.ts.map +1 -1
  7. package/cursor-accounts/CursorAccountEditor.js +21 -5
  8. package/cursor-accounts/CursorAccountEditor.js.map +1 -1
  9. package/cursor-accounts/CursorAccountsConsole.d.ts +9 -5
  10. package/cursor-accounts/CursorAccountsConsole.d.ts.map +1 -1
  11. package/cursor-accounts/CursorAccountsConsole.js +34 -140
  12. package/cursor-accounts/CursorAccountsConsole.js.map +1 -1
  13. package/cursor-accounts/MemberCoverageTable.d.ts +29 -0
  14. package/cursor-accounts/MemberCoverageTable.d.ts.map +1 -0
  15. package/cursor-accounts/MemberCoverageTable.js +150 -0
  16. package/cursor-accounts/MemberCoverageTable.js.map +1 -0
  17. package/cursor-accounts/MemberKeysPanel.d.ts +25 -0
  18. package/cursor-accounts/MemberKeysPanel.d.ts.map +1 -0
  19. package/cursor-accounts/MemberKeysPanel.js +115 -0
  20. package/cursor-accounts/MemberKeysPanel.js.map +1 -0
  21. package/cursor-accounts/badges.d.ts +9 -0
  22. package/cursor-accounts/badges.d.ts.map +1 -0
  23. package/cursor-accounts/badges.js +10 -0
  24. package/cursor-accounts/badges.js.map +1 -0
  25. package/cursor-accounts/cursor-account-coverage.d.ts +41 -0
  26. package/cursor-accounts/cursor-account-coverage.d.ts.map +1 -0
  27. package/cursor-accounts/cursor-account-coverage.js +26 -0
  28. package/cursor-accounts/cursor-account-coverage.js.map +1 -0
  29. package/cursor-accounts/cursor-account-format.d.ts +13 -0
  30. package/cursor-accounts/cursor-account-format.d.ts.map +1 -1
  31. package/cursor-accounts/cursor-account-format.js +16 -1
  32. package/cursor-accounts/cursor-account-format.js.map +1 -1
  33. package/datastore/CollectionRecordsBrowser.js +18 -4
  34. package/datastore/CollectionRecordsBrowser.js.map +1 -1
  35. package/datastore/RecordFilterBuilder.d.ts +8 -1
  36. package/datastore/RecordFilterBuilder.d.ts.map +1 -1
  37. package/datastore/RecordFilterBuilder.js +2 -2
  38. package/datastore/RecordFilterBuilder.js.map +1 -1
  39. package/datastore/recordFilter.d.ts +9 -1
  40. package/datastore/recordFilter.d.ts.map +1 -1
  41. package/datastore/recordFilter.js +12 -1
  42. package/datastore/recordFilter.js.map +1 -1
  43. package/execution/ExecutionProgress.d.ts.map +1 -1
  44. package/execution/ExecutionProgress.js +13 -4
  45. package/execution/ExecutionProgress.js.map +1 -1
  46. package/execution/MessageThread.d.ts.map +1 -1
  47. package/execution/MessageThread.js +10 -2
  48. package/execution/MessageThread.js.map +1 -1
  49. package/execution/useCreateAgentExecution.d.ts +31 -1
  50. package/execution/useCreateAgentExecution.d.ts.map +1 -1
  51. package/execution/useCreateAgentExecution.js +2 -0
  52. package/execution/useCreateAgentExecution.js.map +1 -1
  53. package/index.d.ts +4 -2
  54. package/index.d.ts.map +1 -1
  55. package/index.js +6 -2
  56. package/index.js.map +1 -1
  57. package/internal/form-primitives.d.ts +10 -0
  58. package/internal/form-primitives.d.ts.map +1 -0
  59. package/{billing → internal}/form-primitives.js +5 -9
  60. package/internal/form-primitives.js.map +1 -0
  61. package/package.json +4 -4
  62. package/pricing-governance/BaselineEditor.d.ts.map +1 -0
  63. package/{billing → pricing-governance}/BaselineEditor.js +19 -2
  64. package/pricing-governance/BaselineEditor.js.map +1 -0
  65. package/pricing-governance/ModelCatalogPanel.d.ts.map +1 -0
  66. package/pricing-governance/ModelCatalogPanel.js.map +1 -0
  67. package/pricing-governance/ModelGovernanceDetail.d.ts.map +1 -0
  68. package/pricing-governance/ModelGovernanceDetail.js.map +1 -0
  69. package/pricing-governance/OperatorAccessNotice.d.ts.map +1 -0
  70. package/pricing-governance/OperatorAccessNotice.js.map +1 -0
  71. package/pricing-governance/PricingGovernanceConsole.d.ts.map +1 -0
  72. package/{billing → pricing-governance}/PricingGovernanceConsole.js +1 -1
  73. package/pricing-governance/PricingGovernanceConsole.js.map +1 -0
  74. package/pricing-governance/PricingGovernancePanel.d.ts.map +1 -0
  75. package/pricing-governance/PricingGovernancePanel.js.map +1 -0
  76. package/pricing-governance/RetireConfirm.d.ts.map +1 -0
  77. package/{billing → pricing-governance}/RetireConfirm.js +1 -1
  78. package/pricing-governance/RetireConfirm.js.map +1 -0
  79. package/pricing-governance/governance-primitives.d.ts.map +1 -0
  80. package/pricing-governance/governance-primitives.js.map +1 -0
  81. package/pricing-governance/index.d.ts +19 -0
  82. package/pricing-governance/index.d.ts.map +1 -0
  83. package/pricing-governance/index.js +20 -0
  84. package/pricing-governance/index.js.map +1 -0
  85. package/pricing-governance/pricing-format.d.ts.map +1 -0
  86. package/pricing-governance/pricing-format.js.map +1 -0
  87. package/pricing-governance/useDecidePricingOverride.d.ts.map +1 -0
  88. package/pricing-governance/useDecidePricingOverride.js.map +1 -0
  89. package/pricing-governance/useModelGovernanceView.d.ts.map +1 -0
  90. package/pricing-governance/useModelGovernanceView.js.map +1 -0
  91. package/pricing-governance/useModelPricingBaselines.d.ts.map +1 -0
  92. package/pricing-governance/useModelPricingBaselines.js.map +1 -0
  93. package/pricing-governance/usePricingGovernance.d.ts.map +1 -0
  94. package/pricing-governance/usePricingGovernance.js.map +1 -0
  95. package/pricing-governance/useRetireModelPricingBaseline.d.ts.map +1 -0
  96. package/pricing-governance/useRetireModelPricingBaseline.js.map +1 -0
  97. package/pricing-governance/useUpsertModelPricingBaseline.d.ts.map +1 -0
  98. package/pricing-governance/useUpsertModelPricingBaseline.js.map +1 -0
  99. package/session/useCreateSession.d.ts +28 -0
  100. package/session/useCreateSession.d.ts.map +1 -1
  101. package/session/useCreateSession.js +2 -1
  102. package/session/useCreateSession.js.map +1 -1
  103. package/session/useNewSessionFlow.d.ts +30 -0
  104. package/session/useNewSessionFlow.d.ts.map +1 -1
  105. package/session/useNewSessionFlow.js +7 -1
  106. package/session/useNewSessionFlow.js.map +1 -1
  107. package/session/useUpdateSession.d.ts +29 -10
  108. package/session/useUpdateSession.d.ts.map +1 -1
  109. package/session/useUpdateSession.js +29 -10
  110. package/session/useUpdateSession.js.map +1 -1
  111. package/src/billing/index.ts +5 -37
  112. package/src/cursor-accounts/CursorAccountEditor.tsx +61 -13
  113. package/src/cursor-accounts/CursorAccountsConsole.tsx +44 -400
  114. package/src/cursor-accounts/MemberCoverageTable.tsx +439 -0
  115. package/src/cursor-accounts/MemberKeysPanel.tsx +278 -0
  116. package/src/cursor-accounts/__tests__/CursorAccountsConsole.test.tsx +306 -10
  117. package/src/cursor-accounts/__tests__/cursor-account-coverage.test.ts +73 -0
  118. package/src/cursor-accounts/badges.tsx +26 -0
  119. package/src/cursor-accounts/cursor-account-coverage.ts +71 -0
  120. package/src/cursor-accounts/cursor-account-format.ts +17 -1
  121. package/src/datastore/CollectionRecordsBrowser.tsx +29 -3
  122. package/src/datastore/RecordFilterBuilder.tsx +12 -1
  123. package/src/datastore/__tests__/CollectionRecordsBrowser.test.tsx +38 -0
  124. package/src/datastore/__tests__/RecordFilterBuilder.test.tsx +14 -0
  125. package/src/datastore/__tests__/recordFilter.test.ts +13 -0
  126. package/src/datastore/recordFilter.ts +15 -1
  127. package/src/execution/ExecutionProgress.tsx +14 -4
  128. package/src/execution/MessageThread.tsx +10 -2
  129. package/src/execution/__tests__/ExecutionProgress.test.tsx +67 -0
  130. package/src/execution/__tests__/MessageThread.test.tsx +44 -0
  131. package/src/execution/__tests__/useCreateAgentExecution.test.tsx +86 -0
  132. package/src/execution/useCreateAgentExecution.ts +41 -6
  133. package/src/index.ts +32 -24
  134. package/src/{billing → internal}/form-primitives.tsx +4 -32
  135. package/src/{billing → pricing-governance}/BaselineEditor.tsx +36 -3
  136. package/src/{billing → pricing-governance}/PricingGovernanceConsole.tsx +1 -1
  137. package/src/{billing → pricing-governance}/RetireConfirm.tsx +1 -1
  138. package/src/pricing-governance/index.ts +50 -0
  139. package/src/session/__tests__/useCreateSession.test.tsx +94 -0
  140. package/src/session/__tests__/useNewSessionFlow.test.tsx +33 -0
  141. package/src/session/useCreateSession.ts +30 -0
  142. package/src/session/useNewSessionFlow.ts +45 -1
  143. package/src/session/useUpdateSession.ts +29 -10
  144. package/styles.css +1 -1
  145. package/billing/BaselineEditor.d.ts.map +0 -1
  146. package/billing/BaselineEditor.js.map +0 -1
  147. package/billing/ModelCatalogPanel.d.ts.map +0 -1
  148. package/billing/ModelCatalogPanel.js.map +0 -1
  149. package/billing/ModelGovernanceDetail.d.ts.map +0 -1
  150. package/billing/ModelGovernanceDetail.js.map +0 -1
  151. package/billing/OperatorAccessNotice.d.ts.map +0 -1
  152. package/billing/OperatorAccessNotice.js.map +0 -1
  153. package/billing/PricingGovernanceConsole.d.ts.map +0 -1
  154. package/billing/PricingGovernanceConsole.js.map +0 -1
  155. package/billing/PricingGovernancePanel.d.ts.map +0 -1
  156. package/billing/PricingGovernancePanel.js.map +0 -1
  157. package/billing/RetireConfirm.d.ts.map +0 -1
  158. package/billing/RetireConfirm.js.map +0 -1
  159. package/billing/form-primitives.d.ts +0 -18
  160. package/billing/form-primitives.d.ts.map +0 -1
  161. package/billing/form-primitives.js.map +0 -1
  162. package/billing/governance-primitives.d.ts.map +0 -1
  163. package/billing/governance-primitives.js.map +0 -1
  164. package/billing/pricing-format.d.ts.map +0 -1
  165. package/billing/pricing-format.js.map +0 -1
  166. package/billing/useDecidePricingOverride.d.ts.map +0 -1
  167. package/billing/useDecidePricingOverride.js.map +0 -1
  168. package/billing/useModelGovernanceView.d.ts.map +0 -1
  169. package/billing/useModelGovernanceView.js.map +0 -1
  170. package/billing/useModelPricingBaselines.d.ts.map +0 -1
  171. package/billing/useModelPricingBaselines.js.map +0 -1
  172. package/billing/usePricingGovernance.d.ts.map +0 -1
  173. package/billing/usePricingGovernance.js.map +0 -1
  174. package/billing/useRetireModelPricingBaseline.d.ts.map +0 -1
  175. package/billing/useRetireModelPricingBaseline.js.map +0 -1
  176. package/billing/useUpsertModelPricingBaseline.d.ts.map +0 -1
  177. package/billing/useUpsertModelPricingBaseline.js.map +0 -1
  178. /package/{billing → pricing-governance}/BaselineEditor.d.ts +0 -0
  179. /package/{billing → pricing-governance}/ModelCatalogPanel.d.ts +0 -0
  180. /package/{billing → pricing-governance}/ModelCatalogPanel.js +0 -0
  181. /package/{billing → pricing-governance}/ModelGovernanceDetail.d.ts +0 -0
  182. /package/{billing → pricing-governance}/ModelGovernanceDetail.js +0 -0
  183. /package/{billing → pricing-governance}/OperatorAccessNotice.d.ts +0 -0
  184. /package/{billing → pricing-governance}/OperatorAccessNotice.js +0 -0
  185. /package/{billing → pricing-governance}/PricingGovernanceConsole.d.ts +0 -0
  186. /package/{billing → pricing-governance}/PricingGovernancePanel.d.ts +0 -0
  187. /package/{billing → pricing-governance}/PricingGovernancePanel.js +0 -0
  188. /package/{billing → pricing-governance}/RetireConfirm.d.ts +0 -0
  189. /package/{billing → pricing-governance}/governance-primitives.d.ts +0 -0
  190. /package/{billing → pricing-governance}/governance-primitives.js +0 -0
  191. /package/{billing → pricing-governance}/pricing-format.d.ts +0 -0
  192. /package/{billing → pricing-governance}/pricing-format.js +0 -0
  193. /package/{billing → pricing-governance}/useDecidePricingOverride.d.ts +0 -0
  194. /package/{billing → pricing-governance}/useDecidePricingOverride.js +0 -0
  195. /package/{billing → pricing-governance}/useModelGovernanceView.d.ts +0 -0
  196. /package/{billing → pricing-governance}/useModelGovernanceView.js +0 -0
  197. /package/{billing → pricing-governance}/useModelPricingBaselines.d.ts +0 -0
  198. /package/{billing → pricing-governance}/useModelPricingBaselines.js +0 -0
  199. /package/{billing → pricing-governance}/usePricingGovernance.d.ts +0 -0
  200. /package/{billing → pricing-governance}/usePricingGovernance.js +0 -0
  201. /package/{billing → pricing-governance}/useRetireModelPricingBaseline.d.ts +0 -0
  202. /package/{billing → pricing-governance}/useRetireModelPricingBaseline.js +0 -0
  203. /package/{billing → pricing-governance}/useUpsertModelPricingBaseline.d.ts +0 -0
  204. /package/{billing → pricing-governance}/useUpsertModelPricingBaseline.js +0 -0
  205. /package/src/{billing → pricing-governance}/ModelCatalogPanel.tsx +0 -0
  206. /package/src/{billing → pricing-governance}/ModelGovernanceDetail.tsx +0 -0
  207. /package/src/{billing → pricing-governance}/OperatorAccessNotice.tsx +0 -0
  208. /package/src/{billing → pricing-governance}/PricingGovernancePanel.tsx +0 -0
  209. /package/src/{billing → pricing-governance}/__tests__/ModelCatalogPanel.test.tsx +0 -0
  210. /package/src/{billing → pricing-governance}/__tests__/PricingGovernanceConsole.test.tsx +0 -0
  211. /package/src/{billing → pricing-governance}/__tests__/useModelGovernanceView.test.tsx +0 -0
  212. /package/src/{billing → pricing-governance}/governance-primitives.tsx +0 -0
  213. /package/src/{billing → pricing-governance}/pricing-format.ts +0 -0
  214. /package/src/{billing → pricing-governance}/useDecidePricingOverride.ts +0 -0
  215. /package/src/{billing → pricing-governance}/useModelGovernanceView.ts +0 -0
  216. /package/src/{billing → pricing-governance}/useModelPricingBaselines.ts +0 -0
  217. /package/src/{billing → pricing-governance}/usePricingGovernance.ts +0 -0
  218. /package/src/{billing → pricing-governance}/useRetireModelPricingBaseline.ts +0 -0
  219. /package/src/{billing → pricing-governance}/useUpsertModelPricingBaseline.ts +0 -0
@@ -6,24 +6,12 @@ export { useBillingUsageReport } from "./useBillingUsageReport.js";
6
6
  export type { UseBillingUsageReportReturn } from "./useBillingUsageReport.js";
7
7
  export { useCustomerModelPricing } from "./useCustomerModelPricing.js";
8
8
  export type { UseCustomerModelPricingReturn } from "./useCustomerModelPricing.js";
9
- export { usePricingGovernance } from "./usePricingGovernance.js";
10
- export type { UsePricingGovernanceReturn } from "./usePricingGovernance.js";
11
- export { useModelPricingBaselines } from "./useModelPricingBaselines.js";
12
- export type { UseModelPricingBaselinesOptions, UseModelPricingBaselinesReturn, } from "./useModelPricingBaselines.js";
13
- export { useModelGovernanceView } from "./useModelGovernanceView.js";
14
- export type { GovernanceFlow, ModelGovernanceRow, UseModelGovernanceViewReturn, } from "./useModelGovernanceView.js";
15
9
  export { useCreateCheckoutSession } from "./useCreateCheckoutSession.js";
16
10
  export type { CreateCheckoutSessionInput, UseCreateCheckoutSessionReturn, } from "./useCreateCheckoutSession.js";
17
11
  export { useCreateBillingPortalSession } from "./useCreateBillingPortalSession.js";
18
12
  export type { UseCreateBillingPortalSessionReturn } from "./useCreateBillingPortalSession.js";
19
13
  export { useSetAutoRechargeConfig } from "./useSetAutoRechargeConfig.js";
20
14
  export type { SetAutoRechargeConfigInput, UseSetAutoRechargeConfigReturn, } from "./useSetAutoRechargeConfig.js";
21
- export { useDecidePricingOverride } from "./useDecidePricingOverride.js";
22
- export type { DecidePricingOverrideInput, UseDecidePricingOverrideReturn, } from "./useDecidePricingOverride.js";
23
- export { useUpsertModelPricingBaseline } from "./useUpsertModelPricingBaseline.js";
24
- export type { UpsertModelPricingBaselineInput, UseUpsertModelPricingBaselineReturn, } from "./useUpsertModelPricingBaseline.js";
25
- export { useRetireModelPricingBaseline } from "./useRetireModelPricingBaseline.js";
26
- export type { RetireModelPricingBaselineInput, UseRetireModelPricingBaselineReturn, } from "./useRetireModelPricingBaseline.js";
27
15
  export { BillingSection } from "./BillingSection.js";
28
16
  export type { BillingSectionProps } from "./BillingSection.js";
29
17
  export { CreditBalanceCard } from "./CreditBalanceCard.js";
@@ -38,12 +26,6 @@ export { CreditLedgerTable } from "./CreditLedgerTable.js";
38
26
  export type { CreditLedgerTableProps } from "./CreditLedgerTable.js";
39
27
  export { LowBalanceBanner } from "./LowBalanceBanner.js";
40
28
  export type { LowBalanceBannerProps } from "./LowBalanceBanner.js";
41
- export { PricingGovernancePanel } from "./PricingGovernancePanel.js";
42
- export type { PricingGovernancePanelProps } from "./PricingGovernancePanel.js";
43
- export { ModelCatalogPanel } from "./ModelCatalogPanel.js";
44
- export type { ModelCatalogPanelProps } from "./ModelCatalogPanel.js";
45
- export { PricingGovernanceConsole } from "./PricingGovernanceConsole.js";
46
- export type { PricingGovernanceConsoleProps, PricingGovernanceTab, } from "./PricingGovernanceConsole.js";
47
29
  export { CREDIT_PACKS, formatPackPrice, formatCreditCount } from "./credit-packs.js";
48
30
  export type { CreditPackInfo } from "./credit-packs.js";
49
31
  export { formatCreditBalance, formatLedgerAmount, ledgerEntryLabel, isCredit, isHold, formatLedgerDate, } from "./format.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":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,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;AAGlF,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,YAAY,EACV,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,YAAY,EAAE,mCAAmC,EAAE,MAAM,oCAAoC,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,YAAY,EACV,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAGnE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACrF,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACN,gBAAgB,GACjB,MAAM,aAAa,CAAC"}
package/billing/index.js CHANGED
@@ -1,18 +1,16 @@
1
+ // Billing — the customer-facing surface: subscription plans, credit
2
+ // balance and ledger, payment methods, usage reports, and customer model
3
+ // pricing. The platform-operator pricing surface (registry baseline
4
+ // authoring, override sign-offs) lives in ../pricing-governance.
1
5
  // Data hooks
2
6
  export { useBillingAccount } from "./useBillingAccount.js";
3
7
  export { useCreditLedger } from "./useCreditLedger.js";
4
8
  export { useBillingUsageReport } from "./useBillingUsageReport.js";
5
9
  export { useCustomerModelPricing } from "./useCustomerModelPricing.js";
6
- export { usePricingGovernance } from "./usePricingGovernance.js";
7
- export { useModelPricingBaselines } from "./useModelPricingBaselines.js";
8
- export { useModelGovernanceView } from "./useModelGovernanceView.js";
9
10
  // Behavior hooks
10
11
  export { useCreateCheckoutSession } from "./useCreateCheckoutSession.js";
11
12
  export { useCreateBillingPortalSession } from "./useCreateBillingPortalSession.js";
12
13
  export { useSetAutoRechargeConfig } from "./useSetAutoRechargeConfig.js";
13
- export { useDecidePricingOverride } from "./useDecidePricingOverride.js";
14
- export { useUpsertModelPricingBaseline } from "./useUpsertModelPricingBaseline.js";
15
- export { useRetireModelPricingBaseline } from "./useRetireModelPricingBaseline.js";
16
14
  // Styled components
17
15
  export { BillingSection } from "./BillingSection.js";
18
16
  export { CreditBalanceCard } from "./CreditBalanceCard.js";
@@ -21,9 +19,6 @@ export { AutoRechargeCard } from "./AutoRechargeCard.js";
21
19
  export { CreditPackGrid } from "./CreditPackGrid.js";
22
20
  export { CreditLedgerTable } from "./CreditLedgerTable.js";
23
21
  export { LowBalanceBanner } from "./LowBalanceBanner.js";
24
- export { PricingGovernancePanel } from "./PricingGovernancePanel.js";
25
- export { ModelCatalogPanel } from "./ModelCatalogPanel.js";
26
- export { PricingGovernanceConsole } from "./PricingGovernanceConsole.js";
27
22
  // Credit pack catalog and formatting utilities
28
23
  export { CREDIT_PACKS, formatPackPrice, formatCreditCount } from "./credit-packs.js";
29
24
  export { formatCreditBalance, formatLedgerAmount, ledgerEntryLabel, isCredit, isHold, formatLedgerDate, } from "./format.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/billing/index.ts"],"names":[],"mappings":"AAAA,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,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAKzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAOrE,iBAAiB;AACjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAKzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAKzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAKzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAKnF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAMnF,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,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAMzE,+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;AAGvE,iBAAiB;AACjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAKzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,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;AAGzD,+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"}
@@ -16,13 +16,19 @@ export interface CursorAccountEditorProps {
16
16
  }
17
17
  /**
18
18
  * Create/edit form for one Cursor account: identity, team Admin API key,
19
- * enablement, platform-default flag, and org assignments.
19
+ * enablement, and dedicated-org assignments. The account's class is
20
+ * derived (DD-008): listed org ids make it DEDICATED to them, an empty
21
+ * list makes it a shared-pool account — there is no flag to manage.
20
22
  *
21
23
  * Admin-key semantics mirror the server contract: on edit the field
22
24
  * shows the redaction marker and submitting it unchanged keeps the
23
25
  * stored key; typing anything else rotates it (validated live against
24
26
  * Cursor before persisting). Member keys are NOT edited here — they have
25
27
  * their own panel with per-key add/remove/enable.
28
+ *
29
+ * The optional team invite link (Cursor dashboard → Invite Members →
30
+ * Copy Invite Link) round-trips readable — no marker — and powers the
31
+ * coverage table's "Copy invite" action for off-team key owners.
26
32
  */
27
33
  export declare function CursorAccountEditor({ initial, isSubmitting, submitError, onSubmit, onCancel, className, }: CursorAccountEditorProps): import("react/jsx-runtime").JSX.Element;
28
34
  //# sourceMappingURL=CursorAccountEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CursorAccountEditor.d.ts","sourceRoot":"","sources":["../../src/cursor-accounts/CursorAccountEditor.tsx"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,wEAAwE,CAAC;AAUhF,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB;IACvC,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IACvC,0CAA0C;IAC1C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;IACnC,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IACpD,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,SAAS,GACV,EAAE,wBAAwB,2CAgI1B"}
1
+ {"version":3,"file":"CursorAccountEditor.d.ts","sourceRoot":"","sources":["../../src/cursor-accounts/CursorAccountEditor.tsx"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,wEAAwE,CAAC;AAUhF,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB;IACvC,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IACvC,0CAA0C;IAC1C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;IACnC,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IACpD,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,SAAS,GACV,EAAE,wBAAwB,2CA0K1B"}
@@ -6,7 +6,7 @@ import { cn } from "@stigmer/theme";
6
6
  import { getUserMessage } from "@stigmer/sdk";
7
7
  import { CursorAccountSchema, } from "@stigmer/protos/ai/stigmer/platform/cursoraccount/v1/cursor_account_pb";
8
8
  import { Button } from "../button/index.js";
9
- import { Field, INPUT_CLASSES } from "../billing/form-primitives.js";
9
+ import { Field, INPUT_CLASSES } from "../internal/form-primitives.js";
10
10
  /**
11
11
  * The redaction marker the server uses for stored secrets. Sending it
12
12
  * back on update means "keep the stored admin key".
@@ -14,21 +14,34 @@ import { Field, INPUT_CLASSES } from "../billing/form-primitives.js";
14
14
  const REDACTED = "***REDACTED***";
15
15
  /**
16
16
  * Create/edit form for one Cursor account: identity, team Admin API key,
17
- * enablement, platform-default flag, and org assignments.
17
+ * enablement, and dedicated-org assignments. The account's class is
18
+ * derived (DD-008): listed org ids make it DEDICATED to them, an empty
19
+ * list makes it a shared-pool account — there is no flag to manage.
18
20
  *
19
21
  * Admin-key semantics mirror the server contract: on edit the field
20
22
  * shows the redaction marker and submitting it unchanged keeps the
21
23
  * stored key; typing anything else rotates it (validated live against
22
24
  * Cursor before persisting). Member keys are NOT edited here — they have
23
25
  * their own panel with per-key add/remove/enable.
26
+ *
27
+ * The optional team invite link (Cursor dashboard → Invite Members →
28
+ * Copy Invite Link) round-trips readable — no marker — and powers the
29
+ * coverage table's "Copy invite" action for off-team key owners.
24
30
  */
25
31
  export function CursorAccountEditor({ initial, isSubmitting, submitError, onSubmit, onCancel, className, }) {
26
32
  const isCreate = initial === null;
27
33
  const [displayName, setDisplayName] = useState(initial?.displayName ?? "");
28
34
  const [adminApiKey, setAdminApiKey] = useState(isCreate ? "" : REDACTED);
29
35
  const [enabled, setEnabled] = useState(initial?.enabled ?? true);
30
- const [isPlatformDefault, setIsPlatformDefault] = useState(initial?.isPlatformDefault ?? false);
36
+ // UI state is the positive ("on-demand enabled", Cursor's own wording and
37
+ // team default); the proto field is the negative so absence means
38
+ // "assume Cursor's default" on documents that predate the field.
39
+ const [onDemandEnabled, setOnDemandEnabled] = useState(!(initial?.onDemandUsageDisabled ?? false));
31
40
  const [orgIdsText, setOrgIdsText] = useState((initial?.orgIds ?? []).join("\n"));
41
+ // Unlike the admin key, the invite link round-trips readable (the
42
+ // server decrypts it on read — operators must be able to copy it), so
43
+ // there is no redaction-marker dance: edit the value directly.
44
+ const [teamInviteLink, setTeamInviteLink] = useState(initial?.teamInviteLink ?? "");
32
45
  const canSubmit = displayName.trim() !== "" && adminApiKey.trim() !== "" && !isSubmitting;
33
46
  const handleSubmit = (e) => {
34
47
  e.preventDefault();
@@ -39,13 +52,16 @@ export function CursorAccountEditor({ initial, isSubmitting, submitError, onSubm
39
52
  displayName: displayName.trim(),
40
53
  adminApiKey: adminApiKey.trim(),
41
54
  enabled,
42
- isPlatformDefault,
55
+ // is_platform_default is deprecated (DD-008): the shared pool is
56
+ // derived from empty org_ids, so current clients never write it.
57
+ onDemandUsageDisabled: !onDemandEnabled,
58
+ teamInviteLink: teamInviteLink.trim(),
43
59
  orgIds: orgIdsText
44
60
  .split(/[\s,]+/)
45
61
  .map((s) => s.trim())
46
62
  .filter((s) => s !== ""),
47
63
  }));
48
64
  };
49
- return (_jsxs("form", { className: cn("max-w-xl space-y-3", className), onSubmit: handleSubmit, children: [_jsx("h3", { className: "text-sm font-semibold text-foreground", children: isCreate ? "Add Cursor account" : `Edit ${initial.displayName}` }), _jsx(Field, { label: "Display name", required: true, children: _jsx("input", { className: INPUT_CLASSES, value: displayName, onChange: (e) => setDisplayName(e.target.value), placeholder: "e.g. scenar.ai team", disabled: isSubmitting }) }), _jsx(Field, { label: "Team Admin API key", required: true, children: _jsx("input", { className: INPUT_CLASSES, type: "password", value: adminApiKey, onChange: (e) => setAdminApiKey(e.target.value), placeholder: "key from Cursor dashboard \u2192 API \u2192 Team tab", disabled: isSubmitting, autoComplete: "off" }) }), !isCreate && (_jsx("p", { className: "text-[11px] text-muted-foreground", children: "Leave the masked value untouched to keep the stored key; typing a new key rotates it (validated against Cursor before saving)." })), _jsx(Field, { label: "Assigned organization ids", children: _jsx("textarea", { className: cn(INPUT_CLASSES, "min-h-16 font-mono"), value: orgIdsText, onChange: (e) => setOrgIdsText(e.target.value), placeholder: "one org id per line\n(each org may belong to only one account)", disabled: isSubmitting }) }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { children: [_jsxs("label", { className: "flex items-center gap-1.5 text-xs text-foreground", children: [_jsx("input", { type: "checkbox", checked: enabled, onChange: (e) => setEnabled(e.target.checked), disabled: isSubmitting }), "Enabled for key selection"] }), _jsx("p", { className: "mt-0.5 pl-[1.375rem] text-[11px] text-muted-foreground", children: "Leave checked for accounts that should serve traffic. Unchecking drains the account: new sessions stop routing here immediately, but sessions already pinned to one of its keys keep working." })] }), _jsxs("div", { children: [_jsxs("label", { className: "flex items-center gap-1.5 text-xs text-foreground", children: [_jsx("input", { type: "checkbox", checked: isPlatformDefault, onChange: (e) => setIsPlatformDefault(e.target.checked), disabled: isSubmitting }), "Platform default (serves unassigned orgs)"] }), _jsx("p", { className: "mt-0.5 pl-[1.375rem] text-[11px] text-muted-foreground", children: "Check on exactly one account. Orgs not listed in any account's assigned ids resolve to the platform default; at most one account may hold this flag." })] })] }), submitError && (_jsx("p", { className: "text-destructive text-xs", role: "alert", children: getUserMessage(submitError) })), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { type: "submit", size: "sm", disabled: !canSubmit, children: isSubmitting ? "Saving…" : isCreate ? "Create account" : "Save changes" }), _jsx(Button, { type: "button", size: "sm", variant: "outline", onClick: onCancel, disabled: isSubmitting, children: "Cancel" })] })] }));
65
+ return (_jsxs("form", { className: cn("max-w-xl space-y-3", className), onSubmit: handleSubmit, children: [_jsx("h3", { className: "text-sm font-semibold text-foreground", children: isCreate ? "Add Cursor account" : `Edit ${initial.displayName}` }), _jsx(Field, { label: "Display name", required: true, children: _jsx("input", { className: INPUT_CLASSES, value: displayName, onChange: (e) => setDisplayName(e.target.value), placeholder: "e.g. scenar.ai team", disabled: isSubmitting }) }), _jsx(Field, { label: "Team Admin API key", required: true, children: _jsx("input", { className: INPUT_CLASSES, type: "password", value: adminApiKey, onChange: (e) => setAdminApiKey(e.target.value), placeholder: "key from Cursor dashboard \u2192 API \u2192 Team tab", disabled: isSubmitting, autoComplete: "off" }) }), !isCreate && (_jsx("p", { className: "text-[11px] text-muted-foreground", children: "Leave the masked value untouched to keep the stored key; typing a new key rotates it (validated against Cursor before saving)." })), _jsx(Field, { label: "Team invite link", children: _jsx("input", { className: INPUT_CLASSES, type: "url", value: teamInviteLink, onChange: (e) => setTeamInviteLink(e.target.value), placeholder: "https://\u2026 (Cursor dashboard \u2192 Invite Members \u2192 Copy Invite Link)", disabled: isSubmitting, autoComplete: "off", spellCheck: false }) }), _jsx("p", { className: "text-[11px] text-muted-foreground", children: "Optional. Powers one-click \"Copy invite\" on coverage rows whose key owner is not on the team. The link is long-lived and joinable by anyone holding it (each join consumes a paid seat) \u2014 share it deliberately, and revoke or rotate it from the Cursor dashboard. Leave empty to clear." }), _jsx(Field, { label: "Dedicated organization ids", children: _jsx("textarea", { className: cn(INPUT_CLASSES, "min-h-16 font-mono"), value: orgIdsText, onChange: (e) => setOrgIdsText(e.target.value), placeholder: "one org id per line\n(leave empty for a shared-pool account)", disabled: isSubmitting }) }), _jsx("p", { className: "text-[11px] text-muted-foreground", children: "Listing org ids DEDICATES this account to them: their sessions use only this account's keys and fail with a clear message when it runs dry. Leaving this empty makes the account part of the shared pool that serves every other org \u2014 pool sessions may move between pool accounts when one is depleted. Each org may appear in at most one account." }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { children: [_jsxs("label", { className: "flex items-center gap-1.5 text-xs text-foreground", children: [_jsx("input", { type: "checkbox", checked: enabled, onChange: (e) => setEnabled(e.target.checked), disabled: isSubmitting }), "Enabled for key selection"] }), _jsx("p", { className: "mt-0.5 pl-[1.375rem] text-[11px] text-muted-foreground", children: "Leave checked for accounts that should serve traffic. Unchecking drains the account: new sessions stop routing here immediately, but sessions already pinned to one of its keys keep working." })] }), _jsxs("div", { children: [_jsxs("label", { className: "flex items-center gap-1.5 text-xs text-foreground", children: [_jsx("input", { type: "checkbox", checked: onDemandEnabled, onChange: (e) => setOnDemandEnabled(e.target.checked), disabled: isSubmitting }), "On-demand usage enabled (as configured in the Cursor dashboard)"] }), _jsx("p", { className: "mt-0.5 pl-[1.375rem] text-[11px] text-muted-foreground", children: "Declared here because Cursor's Admin API cannot report the team's on-demand setting. Uncheck only when the dashboard has on-demand usage OFF: new sessions then avoid member keys whose included third-party (API) pool is nearly spent, since such keys can no longer serve third-party models at all." })] })] }), submitError && (_jsx("p", { className: "text-destructive text-xs", role: "alert", children: getUserMessage(submitError) })), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { type: "submit", size: "sm", disabled: !canSubmit, children: isSubmitting ? "Saving…" : isCreate ? "Create account" : "Save changes" }), _jsx(Button, { type: "button", size: "sm", variant: "outline", onClick: onCancel, disabled: isSubmitting, children: "Cancel" })] })] }));
50
66
  }
51
67
  //# sourceMappingURL=CursorAccountEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CursorAccountEditor.js","sourceRoot":"","sources":["../../src/cursor-accounts/CursorAccountEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CursorAccountEditor.js","sourceRoot":"","sources":["../../src/cursor-accounts/CursorAccountEditor.tsx"],"names":[],"mappings":"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"}
@@ -6,14 +6,18 @@ export interface CursorAccountsConsoleProps {
6
6
  /**
7
7
  * The platform-operator console for managed Cursor accounts: the Cursor
8
8
  * teams (admin keys, member execution keys, org assignments) that back
9
- * the cursor harness, with roster coverage and per-member cycle spend
10
- * from the hourly sync.
9
+ * the cursor harness, with roster coverage and per-member usage from
10
+ * the hourly sync.
11
11
  *
12
12
  * - **List** — every account with routability at a glance (an account
13
13
  * with zero enabled member keys cannot serve executions).
14
- * - **Detail** — org assignments, the member-key panel (add / disable /
15
- * remove, each key joined with its owner's roster state and spend),
16
- * coverage gaps (active members without keys), and "Sync now".
14
+ * - **Detail** — org assignments, "Sync now", and the team-coverage
15
+ * table: every member and stored key classified into three explicit
16
+ * categories (on team with key / on team without key / key held but
17
+ * not on team), each row carrying Cursor's pool-usage percentages
18
+ * (first-party / API) and cycle spend dollars (included / on-demand).
19
+ * Off-team rows offer one-click copy of the account's Cursor team
20
+ * invite link when the operator has configured one.
17
21
  *
18
22
  * Requires `can_manage_cursor_accounts` on `platform:stigmer` —
19
23
  * non-operators see the designed access notice. Key material never
@@ -1 +1 @@
1
- {"version":3,"file":"CursorAccountsConsole.d.ts","sourceRoot":"","sources":["../../src/cursor-accounts/CursorAccountsConsole.tsx"],"names":[],"mappings":"AAwBA,+CAA+C;AAC/C,MAAM,WAAW,0BAA0B;IACzC,kCAAkC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAOD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,EAAE,0BAA0B,2CA6G9E"}
1
+ {"version":3,"file":"CursorAccountsConsole.d.ts","sourceRoot":"","sources":["../../src/cursor-accounts/CursorAccountsConsole.tsx"],"names":[],"mappings":"AAqBA,+CAA+C;AAC/C,MAAM,WAAW,0BAA0B;IACzC,kCAAkC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAOD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,EAAE,0BAA0B,2CA6G9E"}
@@ -3,13 +3,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useCallback, useState } from "react";
4
4
  import { cn } from "@stigmer/theme";
5
5
  import { getUserMessage, isPermissionDenied } from "@stigmer/sdk";
6
- import { CursorMemberKeyState, } from "@stigmer/protos/ai/stigmer/platform/cursoraccount/v1/io_pb";
7
6
  import { Button } from "../button/index.js";
8
- import { INPUT_CLASSES } from "../billing/form-primitives.js";
9
- import { toError } from "../internal/toError.js";
7
+ import { StateBadge } from "./badges.js";
10
8
  import { CursorAccountEditor } from "./CursorAccountEditor.js";
11
9
  import { CursorAccountsAccessNotice } from "./CursorAccountsAccessNotice.js";
12
- import { formatSpendMicros, formatSyncTime } from "./cursor-account-format.js";
10
+ import { deriveCoverage } from "./cursor-account-coverage.js";
11
+ import { formatSyncTime } from "./cursor-account-format.js";
12
+ import { MemberKeysPanel } from "./MemberKeysPanel.js";
13
13
  import { useCursorAccounts } from "./useCursorAccounts.js";
14
14
  import { useCursorAccountView } from "./useCursorAccountView.js";
15
15
  import { useCursorMemberKeyActions } from "./useCursorMemberKeyActions.js";
@@ -19,14 +19,18 @@ import { useUpsertCursorAccount } from "./useUpsertCursorAccount.js";
19
19
  /**
20
20
  * The platform-operator console for managed Cursor accounts: the Cursor
21
21
  * teams (admin keys, member execution keys, org assignments) that back
22
- * the cursor harness, with roster coverage and per-member cycle spend
23
- * from the hourly sync.
22
+ * the cursor harness, with roster coverage and per-member usage from
23
+ * the hourly sync.
24
24
  *
25
25
  * - **List** — every account with routability at a glance (an account
26
26
  * with zero enabled member keys cannot serve executions).
27
- * - **Detail** — org assignments, the member-key panel (add / disable /
28
- * remove, each key joined with its owner's roster state and spend),
29
- * coverage gaps (active members without keys), and "Sync now".
27
+ * - **Detail** — org assignments, "Sync now", and the team-coverage
28
+ * table: every member and stored key classified into three explicit
29
+ * categories (on team with key / on team without key / key held but
30
+ * not on team), each row carrying Cursor's pool-usage percentages
31
+ * (first-party / API) and cycle spend dollars (included / on-demand).
32
+ * Off-team rows offer one-click copy of the account's Cursor team
33
+ * invite link when the operator has configured one.
30
34
  *
31
35
  * Requires `can_manage_cursor_accounts` on `platform:stigmer` —
32
36
  * non-operators see the designed access notice. Key material never
@@ -78,7 +82,7 @@ function AccountRow({ summary, onOpen, }) {
78
82
  const account = summary.account;
79
83
  if (!account)
80
84
  return null;
81
- return (_jsx("li", { className: "border-b border-border last:border-b-0", children: _jsxs("button", { type: "button", onClick: onOpen, className: cn("grid w-full grid-cols-[2fr_1fr_1fr_1fr_1fr] items-center gap-2 px-3 py-2 text-left text-xs", "transition-colors hover:bg-accent", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"), children: [_jsxs("span", { className: "min-w-0", children: [_jsx("span", { className: "block truncate font-medium text-foreground", children: account.displayName }), account.isPlatformDefault && (_jsx("span", { className: "block text-[11px] text-muted-foreground", children: "platform default" }))] }), _jsx("span", { className: "text-muted-foreground", children: account.orgIds.length > 0 ? account.orgIds.length : "—" }), _jsx("span", { children: _jsx(StateBadge, { tone: account.enabled ? "ok" : "muted", label: account.enabled ? "Enabled" : "Disabled" }) }), _jsx("span", { children: summary.enabledKeyCount > 0 ? (_jsx("span", { className: "text-muted-foreground", children: summary.enabledKeyCount })) : (_jsx(StateBadge, { tone: "warn", label: "Not routable" })) }), _jsx("span", { className: "text-right text-muted-foreground", children: formatSyncTime(summary.lastSyncedAt) })] }) }));
85
+ return (_jsx("li", { className: "border-b border-border last:border-b-0", children: _jsxs("button", { type: "button", onClick: onOpen, className: cn("grid w-full grid-cols-[2fr_1fr_1fr_1fr_1fr] items-center gap-2 px-3 py-2 text-left text-xs", "transition-colors hover:bg-accent", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"), children: [_jsxs("span", { className: "min-w-0", children: [_jsx("span", { className: "block truncate font-medium text-foreground", children: account.displayName }), account.orgIds.length === 0 && (_jsx("span", { className: "block text-[11px] text-muted-foreground", children: "shared pool" }))] }), _jsx("span", { className: "text-muted-foreground", children: account.orgIds.length > 0 ? account.orgIds.length : "—" }), _jsx("span", { children: _jsx(StateBadge, { tone: account.enabled ? "ok" : "muted", label: account.enabled ? "Enabled" : "Disabled" }) }), _jsx("span", { children: summary.enabledKeyCount > 0 ? (_jsx("span", { className: "text-muted-foreground", children: summary.enabledKeyCount })) : (_jsx(StateBadge, { tone: "warn", label: "Not routable" })) }), _jsx("span", { className: "text-right text-muted-foreground", children: formatSyncTime(summary.lastSyncedAt) })] }) }));
82
86
  }
83
87
  // ---------------------------------------------------------------------------
84
88
  // Create pane (internal)
@@ -119,6 +123,17 @@ function AccountDetail({ className, accountId, editing, onEditingChange, onDelet
119
123
  }
120
124
  const view = detail.view;
121
125
  const account = view.account;
126
+ // Derived once here: the panel's table consumes the groups, the header
127
+ // line the member counts (active roster = covered + uncovered members —
128
+ // server-computed facts only, no role-string parsing in the client).
129
+ // The covered count is exactly one row per member because the server
130
+ // rejects a second key for an already-bound email, so the removed-seat
131
+ // count is plain list arithmetic: roster entries minus active members.
132
+ // It answers "where did my N members go?" when Cursor marks departed
133
+ // seats role:"removed" in place instead of dropping them.
134
+ const coverage = deriveCoverage(view);
135
+ const activeMemberCount = coverage.onTeamWithKey.length + coverage.onTeamWithoutKey.length;
136
+ const removedSeatCount = (view.snapshot?.members.length ?? 0) - activeMemberCount;
122
137
  if (editing) {
123
138
  return (_jsx("div", { className: className, children: _jsx(CursorAccountEditor, { initial: account, isSubmitting: isSaving, submitError: saveError, onSubmit: (edited) => {
124
139
  void upsert(edited).then(() => {
@@ -133,10 +148,14 @@ function AccountDetail({ className, accountId, editing, onEditingChange, onDelet
133
148
  } }) }));
134
149
  }
135
150
  return (_jsxs("div", { className: cn("space-y-4", className), children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-sm font-semibold text-foreground", children: account.displayName }), _jsxs("p", { className: "text-[11px] text-muted-foreground", children: [account.orgIds.length > 0
136
- ? `Serves ${account.orgIds.length} org(s): ${account.orgIds.join(", ")}`
137
- : account.isPlatformDefault
138
- ? "Platform default serves all unassigned orgs"
139
- : "No org assignments", " · ", account.enabled ? "enabled" : "disabled", " · synced ", formatSyncTime(view.snapshot?.syncedAt)] })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { size: "sm", variant: "outline", onClick: onBack, children: "Back" }), _jsx(Button, { size: "sm", variant: "outline", disabled: isSyncing, onClick: () => {
151
+ ? `Dedicated to ${account.orgIds.length} org(s): ${account.orgIds.join(", ")}`
152
+ : "Shared pool — serves every org with no dedicated account", " · ", account.enabled ? "enabled" : "disabled", account.onDemandUsageDisabled
153
+ ? " · on-demand usage off (usage guard active)"
154
+ : "", " · synced ", formatSyncTime(view.snapshot?.syncedAt), coverage.hasRoster
155
+ ? ` · ${activeMemberCount} ${activeMemberCount === 1 ? "member" : "members"}`
156
+ : "", coverage.hasRoster && removedSeatCount > 0
157
+ ? ` · ${removedSeatCount} removed ${removedSeatCount === 1 ? "seat" : "seats"}`
158
+ : ""] })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { size: "sm", variant: "outline", onClick: onBack, children: "Back" }), _jsx(Button, { size: "sm", variant: "outline", disabled: isSyncing, onClick: () => {
140
159
  void sync(accountId).then(refreshAll, () => {
141
160
  // Surfaced via syncError.
142
161
  });
@@ -145,131 +164,6 @@ function AccountDetail({ className, accountId, editing, onEditingChange, onDelet
145
164
  // Surfaced via deleteError (incl. the live-pin guard's
146
165
  // "disable instead, or force" message).
147
166
  });
148
- }, children: isDeleting ? "Deleting…" : "Delete" })] })] }), syncError && (_jsx("p", { className: "text-destructive text-xs", role: "alert", children: getUserMessage(syncError) })), deleteError && (_jsx("p", { className: "text-destructive text-xs", role: "alert", children: getUserMessage(deleteError) })), view.snapshot?.syncError && (_jsxs("p", { className: "text-xs text-muted-foreground", role: "status", children: ["Last sync was partial: ", view.snapshot.syncError] })), _jsx(MemberKeysPanel, { accountId: accountId, keyViews: view.keyViews, actions: keyActions, onChanged: refreshAll, onImported: syncAfterImport }), view.membersWithoutKeys.length > 0 && (_jsxs("section", { className: "space-y-1", children: [_jsx("h4", { className: "text-xs font-semibold text-foreground", children: "Members without execution keys" }), _jsx("p", { className: "text-[11px] text-muted-foreground", children: "Active team members Stigmer holds no key for \u2014 sessions can never run under their identity or included quota." }), _jsx("ul", { role: "list", className: "m-0 list-none space-y-0.5 p-0 text-xs text-muted-foreground", children: view.membersWithoutKeys.map((member) => (_jsxs("li", { children: [member.name || member.email, " \u00B7 ", member.email] }, member.email))) })] }))] }));
149
- }
150
- /** Parse bulk-import text: one key per line, trimmed, deduped. */
151
- function parseImportKeys(text) {
152
- return [...new Set(text.split(/\r?\n/).map((s) => s.trim()).filter((s) => s !== ""))];
153
- }
154
- function maskKey(key, index) {
155
- return key.length >= 8 ? `key ${index + 1} (…${key.slice(-4)})` : `key ${index + 1}`;
156
- }
157
- function MemberKeysPanel({ accountId, keyViews, actions, onChanged, onImported, }) {
158
- const [newKey, setNewKey] = useState("");
159
- const [newLabel, setNewLabel] = useState("");
160
- const [showImport, setShowImport] = useState(false);
161
- const [importText, setImportText] = useState("");
162
- const [isImporting, setIsImporting] = useState(false);
163
- const [importProgress, setImportProgress] = useState(null);
164
- const [importResults, setImportResults] = useState(null);
165
- const submitNewKey = (e) => {
166
- e.preventDefault();
167
- if (newKey.trim() === "" || actions.isSubmitting)
168
- return;
169
- void actions
170
- .addKey({ accountId, apiKey: newKey.trim(), label: newLabel.trim() || undefined })
171
- .then(() => {
172
- setNewKey("");
173
- setNewLabel("");
174
- onChanged();
175
- }, () => {
176
- // Surfaced via actions.error (incl. Cursor's own key-class 401 text).
177
- });
178
- };
179
- const importKeyCount = parseImportKeys(importText).length;
180
- const submitImport = async (e) => {
181
- e.preventDefault();
182
- const keys = parseImportKeys(importText);
183
- if (keys.length === 0 || isImporting)
184
- return;
185
- setIsImporting(true);
186
- setImportResults(null);
187
- // Sequential on purpose: each key is validated live against Cursor's
188
- // /v1/me, and per-key errors (wrong key class, revoked, duplicate)
189
- // must be attributable to their line.
190
- const knownKeyIds = new Set(keyViews.map((kv) => kv.key?.keyId).filter((id) => !!id));
191
- const results = [];
192
- const failedKeys = [];
193
- for (const [i, key] of keys.entries()) {
194
- setImportProgress({ done: i, total: keys.length });
195
- try {
196
- const account = await actions.addKey({ accountId, apiKey: key });
197
- const addedKey = account.memberKeys.find((mk) => !knownKeyIds.has(mk.keyId));
198
- if (addedKey)
199
- knownKeyIds.add(addedKey.keyId);
200
- results.push({
201
- keyPreview: maskKey(key, i),
202
- ok: true,
203
- message: addedKey?.boundEmail
204
- ? `added — bound to ${addedKey.boundEmail}`
205
- : "added",
206
- });
207
- }
208
- catch (err) {
209
- actions.clearError();
210
- failedKeys.push(key);
211
- results.push({
212
- keyPreview: maskKey(key, i),
213
- ok: false,
214
- message: getUserMessage(toError(err)),
215
- });
216
- }
217
- }
218
- setImportProgress(null);
219
- setImportResults(results);
220
- // Failed lines stay in the box so the operator can fix and retry.
221
- setImportText(failedKeys.join("\n"));
222
- setIsImporting(false);
223
- if (failedKeys.length < keys.length)
224
- onImported();
225
- };
226
- return (_jsxs("section", { className: "space-y-2", children: [_jsx("h4", { className: "text-xs font-semibold text-foreground", children: "Member execution keys" }), keyViews.length === 0 ? (_jsxs("p", { className: "text-xs text-muted-foreground", role: "status", children: ["No execution keys \u2014 this account is ", _jsx("strong", { children: "not routable" }), ". Add a member's user-scoped API key below."] })) : (_jsx("ul", { role: "list", "aria-label": "Member keys", className: "m-0 list-none space-y-1 p-0", children: keyViews.map((keyView) => (_jsx(MemberKeyRow, { accountId: accountId, keyView: keyView, actions: actions, onChanged: onChanged }, keyView.key?.keyId))) })), actions.error && (_jsx("p", { className: "text-destructive text-xs", role: "alert", children: getUserMessage(actions.error) })), _jsxs("form", { className: "flex flex-wrap items-end gap-2", onSubmit: submitNewKey, children: [_jsxs("label", { className: "block min-w-56 flex-1 space-y-1", children: [_jsx("span", { className: "text-[11px] font-medium text-muted-foreground", children: "User-scoped API key" }), _jsx("input", { className: INPUT_CLASSES, type: "password", value: newKey, onChange: (e) => setNewKey(e.target.value), placeholder: "the member's personal Cursor API key", disabled: actions.isSubmitting, autoComplete: "off" })] }), _jsxs("label", { className: "block min-w-40 space-y-1", children: [_jsx("span", { className: "text-[11px] font-medium text-muted-foreground", children: "Label (optional)" }), _jsx("input", { className: INPUT_CLASSES, value: newLabel, onChange: (e) => setNewLabel(e.target.value), placeholder: "e.g. zane \u2014 prod", disabled: actions.isSubmitting })] }), _jsx(Button, { type: "submit", size: "sm", disabled: newKey.trim() === "" || actions.isSubmitting, children: actions.isSubmitting ? "Verifying…" : "Add key" }), _jsx(Button, { type: "button", size: "sm", variant: "outline", disabled: isImporting, onClick: () => {
227
- setShowImport((v) => !v);
228
- setImportResults(null);
229
- }, children: showImport ? "Hide import" : "Import keys" })] }), showImport && (_jsxs("form", { className: "space-y-2 rounded-md border border-border bg-card p-3", onSubmit: submitImport, children: [_jsxs("label", { className: "block space-y-1", children: [_jsx("span", { className: "text-[11px] font-medium text-muted-foreground", children: "Bulk import \u2014 one user-scoped API key per line" }), _jsx("textarea", { className: cn(INPUT_CLASSES, "min-h-24 font-mono"), value: importText, onChange: (e) => setImportText(e.target.value), placeholder: "key_...\nkey_...\nkey_...", disabled: isImporting, autoComplete: "off", spellCheck: false })] }), _jsx("p", { className: "text-[11px] text-muted-foreground", children: "Each key is verified against Cursor and bound to its owning team member, one at a time. Lines that fail stay in the box so you can fix and retry them. A roster sync runs automatically afterwards, so the key badges reflect current team membership." }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Button, { type: "submit", size: "sm", disabled: importKeyCount === 0 || isImporting, children: isImporting && importProgress
230
- ? `Importing ${importProgress.done + 1} of ${importProgress.total}…`
231
- : importKeyCount > 0
232
- ? `Import ${importKeyCount} ${importKeyCount === 1 ? "key" : "keys"}`
233
- : "Import keys" }), _jsx(Button, { type: "button", size: "sm", variant: "outline", disabled: isImporting, onClick: () => {
234
- setShowImport(false);
235
- setImportText("");
236
- setImportResults(null);
237
- }, children: "Close" })] }), importResults && (_jsx("ul", { role: "list", "aria-label": "Import results", className: "m-0 list-none space-y-0.5 p-0 text-[11px]", children: importResults.map((result) => (_jsxs("li", { className: result.ok ? "text-muted-foreground" : "text-destructive", children: [result.keyPreview, ": ", result.message] }, result.keyPreview))) }))] }))] }));
238
- }
239
- function MemberKeyRow({ accountId, keyView, actions, onChanged, }) {
240
- const key = keyView.key;
241
- if (!key)
242
- return null;
243
- return (_jsxs("li", { className: "flex flex-wrap items-center justify-between gap-2 rounded-md border border-border bg-card px-3 py-2", children: [_jsxs("span", { className: "min-w-0", children: [_jsxs("span", { className: "block truncate text-xs font-medium text-foreground", children: [key.boundEmail, key.label ? ` · ${key.label}` : ""] }), _jsxs("span", { className: "block text-[11px] text-muted-foreground", children: [key.cursorKeyName || "unnamed key", keyView.spend
244
- ? ` · ${formatSpendMicros(keyView.spend.includedSpendUsdMicros + keyView.spend.overageSpendUsdMicros)} this cycle`
245
- : ""] })] }), _jsxs("span", { className: "flex items-center gap-2", children: [_jsx(KeyStateBadge, { state: keyView.state, enabled: key.enabled }), _jsx(Button, { size: "sm", variant: "outline", disabled: actions.isSubmitting, onClick: () => {
246
- void actions
247
- .setKeyEnabled(accountId, key.keyId, !key.enabled)
248
- .then(onChanged, () => {
249
- // Surfaced via actions.error.
250
- });
251
- }, children: key.enabled ? "Disable" : "Enable" }), _jsx(Button, { size: "sm", variant: "destructive", disabled: actions.isSubmitting, onClick: () => {
252
- void actions
253
- .removeKey({ accountId, keyId: key.keyId })
254
- .then(onChanged, () => {
255
- // Surfaced via actions.error (incl. the live-pin guard's
256
- // "disable instead, or force" message).
257
- });
258
- }, children: "Remove" })] })] }));
259
- }
260
- // ---------------------------------------------------------------------------
261
- // Badges (internal)
262
- // ---------------------------------------------------------------------------
263
- function StateBadge({ tone, label, }) {
264
- return (_jsx("span", { className: cn("inline-block rounded px-1.5 py-0.5 text-[10px] font-medium", tone === "ok" && "bg-accent text-primary", tone === "warn" && "bg-muted-subtle text-destructive", tone === "muted" && "bg-muted-subtle text-muted-foreground"), children: label }));
265
- }
266
- function KeyStateBadge({ state, enabled, }) {
267
- if (state === CursorMemberKeyState.member_key_owner_removed) {
268
- return _jsx(StateBadge, { tone: "warn", label: "Owner left team" });
269
- }
270
- if (state === CursorMemberKeyState.member_key_owner_unknown) {
271
- return _jsx(StateBadge, { tone: "muted", label: "Owner unknown" });
272
- }
273
- return enabled ? (_jsx(StateBadge, { tone: "ok", label: "Active" })) : (_jsx(StateBadge, { tone: "muted", label: "Disabled" }));
167
+ }, children: isDeleting ? "Deleting…" : "Delete" })] })] }), syncError && (_jsx("p", { className: "text-destructive text-xs", role: "alert", children: getUserMessage(syncError) })), deleteError && (_jsx("p", { className: "text-destructive text-xs", role: "alert", children: getUserMessage(deleteError) })), view.snapshot?.syncError && (_jsxs("p", { className: "text-xs text-muted-foreground", role: "status", children: ["Last sync was partial: ", view.snapshot.syncError] })), _jsx(MemberKeysPanel, { accountId: accountId, view: view, coverage: coverage, actions: keyActions, onChanged: refreshAll, onImported: syncAfterImport })] }));
274
168
  }
275
169
  //# sourceMappingURL=CursorAccountsConsole.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CursorAccountsConsole.js","sourceRoot":"","sources":["../../src/cursor-accounts/CursorAccountsConsole.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CursorAccountsConsole.js","sourceRoot":"","sources":["../../src/cursor-accounts/CursorAccountsConsole.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { CursorAccountCoverage } from "./cursor-account-coverage.js";
2
+ import type { useCursorMemberKeyActions } from "./useCursorMemberKeyActions.js";
3
+ /**
4
+ * The roster-coverage table: every member and every stored execution key
5
+ * of one Cursor account, classified into three explicit categories
6
+ * (server-computed — this component only renders):
7
+ *
8
+ * 1. **On the team, key held** — the account's routable capacity.
9
+ * 2. **On the team, no key** — the coverage gap; their spend columns
10
+ * help the operator prioritize whose key to import.
11
+ * 3. **Key held, not on the team** — imported keys whose owner left the
12
+ * team or never joined it. Resolved by a Cursor-dashboard invite:
13
+ * when the account carries a team invite link, each row offers
14
+ * one-click copy (never navigation — opening an invite link would
15
+ * join the OPERATOR's own Cursor account to the team).
16
+ *
17
+ * Before the first sync there is no roster to classify against, so keys
18
+ * render unclassified with a "sync now" notice instead of being falsely
19
+ * reported as off-team.
20
+ */
21
+ export declare function MemberCoverageTable({ accountId, coverage, inviteLink, actions, onChanged, }: {
22
+ readonly accountId: string;
23
+ readonly coverage: CursorAccountCoverage;
24
+ /** The account-level Cursor team invite link; empty when not configured. */
25
+ readonly inviteLink: string;
26
+ readonly actions: ReturnType<typeof useCursorMemberKeyActions>;
27
+ readonly onChanged: () => void;
28
+ }): import("react/jsx-runtime").JSX.Element;
29
+ //# sourceMappingURL=MemberCoverageTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemberCoverageTable.d.ts","sourceRoot":"","sources":["../../src/cursor-accounts/MemberCoverageTable.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAkBhF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,QAAQ,EACR,UAAU,EACV,OAAO,EACP,SAAS,GACV,EAAE;IACD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;CAChC,2CAqHA"}