@nordsym/apiclaw 1.8.7 → 1.8.8

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 (152) hide show
  1. package/README.md +58 -30
  2. package/convex/adminActivate.d.ts +3 -0
  3. package/convex/adminActivate.d.ts.map +1 -1
  4. package/convex/adminActivate.js +46 -0
  5. package/convex/adminActivate.js.map +1 -1
  6. package/convex/adminActivate.ts +1 -2
  7. package/convex/adminStats.d.ts +9 -0
  8. package/convex/adminStats.d.ts.map +1 -1
  9. package/convex/adminStats.js +282 -0
  10. package/convex/adminStats.js.map +1 -1
  11. package/convex/adminStats.ts +5 -3
  12. package/convex/agents.d.ts +84 -0
  13. package/convex/agents.js +809 -0
  14. package/convex/analytics.d.ts +5 -0
  15. package/convex/analytics.js +167 -0
  16. package/convex/apiKeys.d.ts +6 -0
  17. package/convex/apiKeys.d.ts.map +1 -0
  18. package/convex/apiKeys.js +186 -0
  19. package/convex/apiKeys.js.map +1 -0
  20. package/convex/backfillAnalytics.d.ts +2 -0
  21. package/convex/backfillAnalytics.js +20 -0
  22. package/convex/backfillSearchLogs.d.ts +2 -0
  23. package/convex/backfillSearchLogs.js +29 -0
  24. package/convex/billing.d.ts +88 -0
  25. package/convex/billing.d.ts.map +1 -1
  26. package/convex/billing.js +643 -0
  27. package/convex/billing.js.map +1 -1
  28. package/convex/billing.ts +2 -14
  29. package/convex/capabilities.d.ts +9 -0
  30. package/convex/capabilities.js +145 -0
  31. package/convex/chains.d.ts +68 -0
  32. package/convex/chains.js +1105 -0
  33. package/convex/credits.d.ts +25 -0
  34. package/convex/credits.js +186 -0
  35. package/convex/crons.d.ts +3 -0
  36. package/convex/crons.js +17 -0
  37. package/convex/debugFilestackLogs.d.ts +2 -0
  38. package/convex/debugFilestackLogs.js +17 -0
  39. package/convex/debugGetToken.d.ts +2 -0
  40. package/convex/debugGetToken.js +18 -0
  41. package/convex/directCall.d.ts +72 -0
  42. package/convex/directCall.d.ts.map +1 -1
  43. package/convex/directCall.js +663 -0
  44. package/convex/directCall.js.map +1 -1
  45. package/convex/earnProgress.d.ts +58 -0
  46. package/convex/earnProgress.js +649 -0
  47. package/convex/email.d.ts +14 -0
  48. package/convex/email.js +300 -0
  49. package/convex/email.js.map +1 -1
  50. package/convex/feedback.d.ts +7 -0
  51. package/convex/feedback.js +227 -0
  52. package/convex/http.d.ts +3 -0
  53. package/convex/http.d.ts.map +1 -1
  54. package/convex/http.js +2135 -0
  55. package/convex/http.js.map +1 -1
  56. package/convex/http.ts +275 -3
  57. package/convex/inbound.d.ts +2 -0
  58. package/convex/inbound.js +32 -0
  59. package/convex/logs.d.ts +48 -0
  60. package/convex/logs.d.ts.map +1 -1
  61. package/convex/logs.js +623 -0
  62. package/convex/logs.js.map +1 -1
  63. package/convex/migrateFilestack.d.ts +2 -0
  64. package/convex/migrateFilestack.js +74 -0
  65. package/convex/migratePartnersProd.d.ts +8 -0
  66. package/convex/migratePartnersProd.js +165 -0
  67. package/convex/migratePratham.d.ts +2 -0
  68. package/convex/migratePratham.js +121 -0
  69. package/convex/migrateProviderWorkspaces.d.ts +13 -0
  70. package/convex/migrateProviderWorkspaces.d.ts.map +1 -1
  71. package/convex/migrateProviderWorkspaces.js +141 -0
  72. package/convex/migrateProviderWorkspaces.js.map +1 -1
  73. package/convex/mou.d.ts +6 -0
  74. package/convex/mou.js +82 -0
  75. package/convex/providerKeys.d.ts +31 -0
  76. package/convex/providerKeys.js +257 -0
  77. package/convex/providers.d.ts +35 -0
  78. package/convex/providers.d.ts.map +1 -1
  79. package/convex/providers.js +1027 -0
  80. package/convex/providers.js.map +1 -1
  81. package/convex/purchases.d.ts +7 -0
  82. package/convex/purchases.js +157 -0
  83. package/convex/ratelimit.d.ts +4 -0
  84. package/convex/ratelimit.js +91 -0
  85. package/convex/schema.ts +4 -4
  86. package/convex/searchLogs.d.ts +13 -0
  87. package/convex/searchLogs.d.ts.map +1 -1
  88. package/convex/searchLogs.js +241 -0
  89. package/convex/searchLogs.js.map +1 -1
  90. package/convex/seedAPILayerAPIs.d.ts +7 -0
  91. package/convex/seedAPILayerAPIs.js +177 -0
  92. package/convex/seedDirectCallConfigs.d.ts +2 -0
  93. package/convex/seedDirectCallConfigs.js +324 -0
  94. package/convex/seedPratham.d.ts +6 -0
  95. package/convex/seedPratham.d.ts.map +1 -1
  96. package/convex/seedPratham.js +149 -0
  97. package/convex/seedPratham.js.map +1 -1
  98. package/convex/seedPratham.ts +1 -2
  99. package/convex/spendAlerts.d.ts +36 -0
  100. package/convex/spendAlerts.js +380 -0
  101. package/convex/spendAlerts.js.map +1 -1
  102. package/convex/stripeActions.d.ts +19 -0
  103. package/convex/stripeActions.d.ts.map +1 -1
  104. package/convex/stripeActions.js +432 -0
  105. package/convex/stripeActions.js.map +1 -1
  106. package/convex/stripeActions.ts +25 -3
  107. package/convex/teams.d.ts +21 -0
  108. package/convex/teams.js +215 -0
  109. package/convex/telemetry.d.ts +4 -0
  110. package/convex/telemetry.js +74 -0
  111. package/convex/updateAPIStatus.d.ts +6 -0
  112. package/convex/updateAPIStatus.d.ts.map +1 -1
  113. package/convex/updateAPIStatus.js +39 -0
  114. package/convex/updateAPIStatus.js.map +1 -1
  115. package/convex/usage.d.ts +27 -0
  116. package/convex/usage.js +229 -0
  117. package/convex/waitlist.d.ts +4 -0
  118. package/convex/waitlist.js +49 -0
  119. package/convex/webhooks.d.ts +12 -0
  120. package/convex/webhooks.js +410 -0
  121. package/convex/workspaceSettings.d.ts +7 -0
  122. package/convex/workspaceSettings.d.ts.map +1 -0
  123. package/convex/workspaceSettings.js +128 -0
  124. package/convex/workspaceSettings.js.map +1 -0
  125. package/convex/workspaces.d.ts +33 -0
  126. package/convex/workspaces.d.ts.map +1 -1
  127. package/convex/workspaces.js +989 -0
  128. package/convex/workspaces.js.map +1 -1
  129. package/convex/workspaces.ts +18 -20
  130. package/dist/bin.js +0 -0
  131. package/dist/cli/commands/demo.js +1 -1
  132. package/dist/cli/commands/demo.js.map +1 -1
  133. package/dist/cli/commands/doctor.js.map +1 -1
  134. package/dist/cli/commands/login.js.map +1 -1
  135. package/dist/cli/commands/setup.js.map +1 -1
  136. package/dist/credentials.d.ts.map +1 -1
  137. package/dist/credentials.js +15 -0
  138. package/dist/credentials.js.map +1 -1
  139. package/dist/discovery.js.map +1 -1
  140. package/dist/execute.js.map +1 -1
  141. package/dist/index.js +1 -1
  142. package/dist/index.js.map +1 -1
  143. package/dist/open-apis.d.ts.map +1 -1
  144. package/dist/open-apis.js +94 -2
  145. package/dist/open-apis.js.map +1 -1
  146. package/dist/ui/errors.js.map +1 -1
  147. package/dist/ui/prompts.js.map +1 -1
  148. package/package.json +1 -1
  149. package/src/cli/commands/demo.ts +1 -1
  150. package/src/credentials.ts +16 -0
  151. package/src/index.ts +1 -1
  152. package/src/open-apis.ts +114 -4
package/README.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # APIClaw
2
2
 
3
- The API layer for AI agents. One install. Three tiers of access.
3
+ The API layer for AI agents. One key for everything.
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/@nordsym/apiclaw.svg)](https://www.npmjs.com/package/@nordsym/apiclaw)
6
6
  [![npm downloads](https://img.shields.io/npm/dw/@nordsym/apiclaw.svg)](https://www.npmjs.com/package/@nordsym/apiclaw)
7
7
  [![MCP](https://img.shields.io/badge/MCP-Compatible-blue)](https://modelcontextprotocol.io)
8
8
 
9
- 5,300+ installs. 19 Direct Call providers. 22,392 indexed APIs.
9
+ 10,000+ installs. 20 Direct Call providers. 22,392 indexed APIs. Intelligent LLM routing.
10
10
 
11
11
  ## Install
12
12
 
@@ -14,7 +14,23 @@ The API layer for AI agents. One install. Three tiers of access.
14
14
  curl -fsSL https://apiclaw.cloud/install.sh | bash
15
15
  ```
16
16
 
17
- Restart your AI assistant. First 5 API calls are free. Register your email to unlock 50/month.
17
+ Restart your AI assistant. Register your email to unlock 50 calls/month.
18
+
19
+ ---
20
+
21
+ ## What's New
22
+
23
+ **Intelligent Gateway** -- APIClaw now routes LLM requests to the best provider automatically:
24
+ - Groq for ultra-fast inference (Llama, Mixtral)
25
+ - Mistral for European models
26
+ - Together AI for open-source (DeepSeek, Qwen)
27
+ - OpenRouter as fallback for 800+ models (GPT, Claude, Gemini, etc.)
28
+
29
+ **OpenAI-compatible endpoint** -- Use `api.apiclaw.cloud/v1/chat/completions` with any tool that speaks OpenAI. One `sk-claw-` key replaces all your provider keys.
30
+
31
+ **Workspace Settings** -- Configure routing mode (fastest, best_price, highest_quality, balanced), set default models, budget limits, and provider preferences from the dashboard.
32
+
33
+ **Per-request overrides** -- Set `X-APIClaw-Route: fastest` or `X-APIClaw-Route: groq` to override workspace defaults on any request.
18
34
 
19
35
  ---
20
36
 
@@ -44,21 +60,21 @@ Premium APIs proxied through APIClaw. No keys needed. APIClaw handles auth, rate
44
60
 
45
61
  | Provider | What | Category |
46
62
  |----------|------|----------|
47
- | OpenRouter | 100+ LLMs (GPT-4, Claude, Llama) | AI |
48
- | Replicate | ML models (image, video, audio) | AI |
49
- | Groq | Fast LLM inference | AI |
50
- | Mistral | Mistral models | AI |
51
- | Cohere | NLP and embeddings | AI |
52
- | Together AI | Open-source model hosting | AI |
53
- | Stability AI | Image generation | AI |
63
+ | OpenRouter | 800+ LLMs (GPT, Claude, Gemini, Llama) | LLM |
64
+ | Groq | Ultra-fast inference (Llama, Mixtral, Gemma) | LLM |
65
+ | Mistral | Mistral models (Small, Large, Codestral) | LLM |
66
+ | Together AI | Open-source models (DeepSeek, Qwen, Llama) | LLM |
67
+ | Cohere | RAG, reranking, embeddings | LLM |
68
+ | Replicate | ML models (Flux, SDXL, Whisper) | AI/ML |
69
+ | Stability AI | Image generation (SD3, SDXL) | AI/ML |
70
+ | ElevenLabs | Text-to-speech (29 languages) | Voice |
71
+ | Deepgram | Speech-to-text (Nova-3) | Voice |
72
+ | AssemblyAI | Audio intelligence, diarization | Voice |
54
73
  | Brave Search | Privacy-first web search | Search |
55
- | Serper | Google search results | Search |
74
+ | Serper | Google SERP results | Search |
56
75
  | Firecrawl | Web scraping and crawling | Scraping |
57
- | ElevenLabs | Text-to-speech | Voice |
58
- | Deepgram | Speech-to-text | Voice |
59
- | AssemblyAI | Audio intelligence | Voice |
60
- | Twilio | SMS and voice calls | Communication |
61
- | 46elks | SMS (Nordic) | Communication |
76
+ | Twilio | SMS and voice calls (global) | Communication |
77
+ | 46elks | SMS (Nordic/EU, GDPR) | Communication |
62
78
  | Resend | Transactional email | Email |
63
79
  | E2B | Code execution sandbox | Dev Tools |
64
80
  | GitHub | Repository and code access | Dev Tools |
@@ -66,7 +82,25 @@ Premium APIs proxied through APIClaw. No keys needed. APIClaw handles auth, rate
66
82
 
67
83
  ---
68
84
 
69
- ## Tools
85
+ ## Gateway
86
+
87
+ Use APIClaw as an OpenAI-compatible LLM gateway:
88
+
89
+ ```bash
90
+ curl api.apiclaw.cloud/v1/chat/completions \
91
+ -H "Authorization: Bearer sk-claw-..." \
92
+ -H "Content-Type: application/json" \
93
+ -d '{
94
+ "model": "anthropic/claude-sonnet-4-6",
95
+ "messages": [{"role": "user", "content": "Hello"}]
96
+ }'
97
+ ```
98
+
99
+ The router picks the best provider based on your workspace settings. Override per-request with `X-APIClaw-Route: fastest` or target a specific provider like `X-APIClaw-Route: groq`.
100
+
101
+ ---
102
+
103
+ ## MCP Tools
70
104
 
71
105
  | Tool | What |
72
106
  |------|------|
@@ -79,21 +113,15 @@ Premium APIs proxied through APIClaw. No keys needed. APIClaw handles auth, rate
79
113
 
80
114
  ## Pricing
81
115
 
82
- | Tier | Price | Access |
83
- |------|-------|--------|
84
- | Unregistered | Free | 5 API calls, unlimited search |
85
- | Free | Free | 50 calls/month, full dashboard |
86
- | Founding Backer | $199 one-time | Unlimited until 2027 |
87
- | Enterprise | Custom | [Book a call](https://apiclaw.cloud/book) |
88
-
89
- ## For API Providers
90
-
91
- List your APIs on APIClaw. Get discovered by AI agents. Track usage, discoveries, and calls in your dashboard.
92
-
93
- [Register as provider](https://apiclaw.cloud/providers/register)
116
+ | Plan | Price | What you get |
117
+ |------|-------|--------------|
118
+ | Free | $0 forever | Search index, Open APIs, 1 connected agent |
119
+ | Pro | $79/month | All Direct Call providers, priority support |
120
+ | Scale | $249/month | Volume pricing, dedicated onboarding, SLA |
121
+ | Enterprise | Custom | Private deployment, custom limits, [book a call](https://apiclaw.cloud/book) |
94
122
 
95
123
  ---
96
124
 
97
- [Dashboard](https://apiclaw.cloud) - [Docs](https://apiclaw.cloud/docs) - [Book a Call](https://apiclaw.cloud/book)
125
+ [Dashboard](https://apiclaw.cloud/workspace) - [Docs](https://apiclaw.cloud/docs) - [Book a Call](https://apiclaw.cloud/book)
98
126
 
99
127
  MIT License
@@ -0,0 +1,3 @@
1
+ export declare const activateWorkspace: any;
2
+ export declare const createSessionForWorkspace: any;
3
+ //# sourceMappingURL=adminActivate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adminActivate.d.ts","sourceRoot":"","sources":["adminActivate.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,KAmB5B,CAAC;AAWH,eAAO,MAAM,yBAAyB,KAoBpC,CAAC"}
1
+ {"version":3,"file":"adminActivate.d.ts","sourceRoot":"","sources":["adminActivate.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,KAkB5B,CAAC;AAWH,eAAO,MAAM,yBAAyB,KAoBpC,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { mutation } from "./_generated/server";
2
+ import { v } from "convex/values";
3
+ export const activateWorkspace = mutation({
4
+ args: { workspaceId: v.id("workspaces") },
5
+ handler: async (ctx, { workspaceId }) => {
6
+ const workspace = await ctx.db.get(workspaceId);
7
+ if (!workspace) {
8
+ return { success: false, error: "not_found" };
9
+ }
10
+ await ctx.db.patch(workspaceId, {
11
+ status: "active",
12
+ tier: "pro",
13
+ weeklyUsageLimit: 999999,
14
+ usageLimit: 999999,
15
+ updatedAt: Date.now(),
16
+ });
17
+ return { success: true };
18
+ },
19
+ });
20
+ function generateToken() {
21
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
22
+ let result = '';
23
+ for (let i = 0; i < 32; i++) {
24
+ result += chars.charAt(Math.floor(Math.random() * chars.length));
25
+ }
26
+ return result;
27
+ }
28
+ export const createSessionForWorkspace = mutation({
29
+ args: { workspaceId: v.id("workspaces") },
30
+ handler: async (ctx, { workspaceId }) => {
31
+ const workspace = await ctx.db.get(workspaceId);
32
+ if (!workspace || workspace.status !== "active") {
33
+ return { success: false, error: "workspace_not_active" };
34
+ }
35
+ const sessionToken = "apiclaw_" + generateToken();
36
+ await ctx.db.insert("agentSessions", {
37
+ workspaceId,
38
+ sessionToken,
39
+ fingerprint: "hivr-bees",
40
+ lastUsedAt: Date.now(),
41
+ createdAt: Date.now(),
42
+ });
43
+ return { success: true, sessionToken };
44
+ },
45
+ });
46
+ //# sourceMappingURL=adminActivate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adminActivate.js","sourceRoot":"","sources":["adminActivate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAElC,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACxC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE;IACzC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACtC,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QAChD,CAAC;QAED,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE;YAC9B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,QAAQ,EAAE,+BAA+B;YAC/C,gBAAgB,EAAE,MAAM;YACxB,UAAU,EAAE,MAAM;YAClB,WAAW,EAAE,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,OAAO,EAAE,EAAE,oCAAoC;YAC7F,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,aAAa;IACpB,MAAM,KAAK,GAAG,gEAAgE,CAAC;IAC/E,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAChD,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE;IACzC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACtC,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;QAC3D,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,GAAG,aAAa,EAAE,CAAC;QAElD,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,EAAE;YACnC,WAAW;YACX,YAAY;YACZ,WAAW,EAAE,WAAW;YACxB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACzC,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"adminActivate.js","sourceRoot":"","sources":["adminActivate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAElC,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACxC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE;IACzC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACtC,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QAChD,CAAC;QAED,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE;YAC9B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,MAAM;YACxB,UAAU,EAAE,MAAM;YAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,aAAa;IACpB,MAAM,KAAK,GAAG,gEAAgE,CAAC;IAC/E,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAChD,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE;IACzC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACtC,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;QAC3D,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,GAAG,aAAa,EAAE,CAAC;QAElD,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,EAAE;YACnC,WAAW;YACX,YAAY;YACZ,WAAW,EAAE,WAAW;YACxB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACzC,CAAC;CACF,CAAC,CAAC"}
@@ -11,10 +11,9 @@ export const activateWorkspace = mutation({
11
11
 
12
12
  await ctx.db.patch(workspaceId, {
13
13
  status: "active",
14
- tier: "backer", // Give Hivr bees backer status
14
+ tier: "pro",
15
15
  weeklyUsageLimit: 999999,
16
16
  usageLimit: 999999,
17
- backerUntil: new Date("2026-12-31T23:59:59Z").getTime(), // Founding Backer until end of 2026
18
17
  updatedAt: Date.now(),
19
18
  });
20
19
 
@@ -0,0 +1,9 @@
1
+ export declare const getTotalWorkspaces: any;
2
+ export declare const listWorkspaces: any;
3
+ export declare const cleanupWorkspaces: any;
4
+ export declare const updateProviderEmail: any;
5
+ export declare const seedFilestackWorkspace: any;
6
+ export declare const cleanFilestackSeedTokens: any;
7
+ export declare const countLogsForWorkspace: any;
8
+ export declare const dedupeFilestackLogs: any;
9
+ //# sourceMappingURL=adminStats.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adminStats.d.ts","sourceRoot":"","sources":["adminStats.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,kBAAkB,KAwB7B,CAAC;AAGH,eAAO,MAAM,cAAc,KAazB,CAAC;AAGH,eAAO,MAAM,iBAAiB,KA6D5B,CAAC;AAEH,eAAO,MAAM,mBAAmB,KAM9B,CAAC;AAGH,eAAO,MAAM,sBAAsB,KAkHjC,CAAC;AAGH,eAAO,MAAM,wBAAwB,KA2BnC,CAAC;AAGH,eAAO,MAAM,qBAAqB,KAUhC,CAAC;AAGH,eAAO,MAAM,mBAAmB,KAwB9B,CAAC"}
1
+ {"version":3,"file":"adminStats.d.ts","sourceRoot":"","sources":["adminStats.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,kBAAkB,KA0B7B,CAAC;AAGH,eAAO,MAAM,cAAc,KAazB,CAAC;AAGH,eAAO,MAAM,iBAAiB,KA6D5B,CAAC;AAEH,eAAO,MAAM,mBAAmB,KAM9B,CAAC;AAGH,eAAO,MAAM,sBAAsB,KAkHjC,CAAC;AAGH,eAAO,MAAM,wBAAwB,KA2BnC,CAAC;AAGH,eAAO,MAAM,qBAAqB,KAUhC,CAAC;AAGH,eAAO,MAAM,mBAAmB,KAwB9B,CAAC"}
@@ -0,0 +1,282 @@
1
+ import { query, mutation } from "./_generated/server";
2
+ import { v } from "convex/values";
3
+ // Get total user/workspace count
4
+ export const getTotalWorkspaces = query({
5
+ args: {},
6
+ handler: async (ctx) => {
7
+ const workspaces = await ctx.db.query("workspaces").collect();
8
+ const providers = await ctx.db.query("providers").collect();
9
+ return {
10
+ totalWorkspaces: workspaces.length,
11
+ totalProviders: providers.length,
12
+ activeWorkspaces: workspaces.filter(w => w.status === "active").length,
13
+ paid: workspaces.filter(w => ["pro", "scale", "usage_based"].includes(w.tier)).length,
14
+ workspaceBreakdown: {
15
+ free: workspaces.filter(w => w.tier === "free").length,
16
+ pro: workspaces.filter(w => w.tier === "pro").length,
17
+ scale: workspaces.filter(w => w.tier === "scale").length,
18
+ usage_based: workspaces.filter(w => w.tier === "usage_based").length,
19
+ enterprise: workspaces.filter(w => w.tier === "enterprise").length,
20
+ partner: workspaces.filter(w => w.tier === "partner").length,
21
+ },
22
+ providerBreakdown: {
23
+ pending: providers.filter(p => p.status === "pending").length,
24
+ approved: providers.filter(p => p.status === "approved").length,
25
+ rejected: providers.filter(p => p.status === "rejected").length,
26
+ }
27
+ };
28
+ },
29
+ });
30
+ // List all workspace emails (for inspection)
31
+ export const listWorkspaces = query({
32
+ args: {},
33
+ handler: async (ctx) => {
34
+ const workspaces = await ctx.db.query("workspaces").collect();
35
+ return workspaces.map(w => ({
36
+ email: w.email,
37
+ status: w.status,
38
+ tier: w.tier,
39
+ usageCount: w.usageCount,
40
+ createdAt: w.createdAt,
41
+ lastActiveAt: w.lastActiveAt,
42
+ }));
43
+ },
44
+ });
45
+ // Delete workspace by email or empty email ghosts
46
+ export const cleanupWorkspaces = mutation({
47
+ args: {
48
+ deleteEmptyEmail: v.optional(v.boolean()),
49
+ deleteEmail: v.optional(v.string()),
50
+ deleteEmailWithTier: v.optional(v.string()),
51
+ activateEmail: v.optional(v.string()),
52
+ },
53
+ handler: async (ctx, { deleteEmptyEmail, deleteEmail, deleteEmailWithTier, activateEmail }) => {
54
+ const workspaces = await ctx.db.query("workspaces").collect();
55
+ let deleted = 0;
56
+ // Activate a pending workspace
57
+ if (activateEmail) {
58
+ for (const ws of workspaces) {
59
+ if (ws.email === activateEmail && ws.status === "pending") {
60
+ await ctx.db.patch(ws._id, { status: "active" });
61
+ return { activated: activateEmail };
62
+ }
63
+ }
64
+ return { error: "not found or not pending" };
65
+ }
66
+ for (const ws of workspaces) {
67
+ let shouldDelete = false;
68
+ if (deleteEmptyEmail && (!ws.email || ws.email === "")) {
69
+ shouldDelete = true;
70
+ }
71
+ if (deleteEmail && ws.email === deleteEmail) {
72
+ shouldDelete = true;
73
+ }
74
+ // Delete specific email+tier combo (e.g. remove free duplicate but keep pro)
75
+ if (deleteEmailWithTier) {
76
+ const [email, tier] = deleteEmailWithTier.split(":");
77
+ if (ws.email === email && ws.tier === tier) {
78
+ shouldDelete = true;
79
+ }
80
+ }
81
+ if (shouldDelete) {
82
+ // Delete associated sessions
83
+ const sessions = await ctx.db.query("sessions").collect();
84
+ for (const s of sessions) {
85
+ if (s.workspaceId === ws._id) {
86
+ await ctx.db.delete(s._id);
87
+ }
88
+ }
89
+ // Delete associated agents
90
+ const agents = await ctx.db.query("agents").collect();
91
+ for (const a of agents) {
92
+ if (a.workspaceId === ws._id) {
93
+ await ctx.db.delete(a._id);
94
+ }
95
+ }
96
+ await ctx.db.delete(ws._id);
97
+ deleted++;
98
+ }
99
+ }
100
+ return { deleted };
101
+ },
102
+ });
103
+ export const updateProviderEmail = mutation({
104
+ args: { providerId: v.string(), email: v.string() },
105
+ handler: async (ctx, { providerId, email }) => {
106
+ await ctx.db.patch(providerId, { email });
107
+ return { success: true };
108
+ },
109
+ });
110
+ // Seed Filestack workspace + 14 days of discovery data
111
+ export const seedFilestackWorkspace = mutation({
112
+ args: {},
113
+ handler: async (ctx) => {
114
+ // 1. Create or update Filestack workspace
115
+ const existing = await ctx.db
116
+ .query("workspaces")
117
+ .withIndex("by_email", (q) => q.eq("email", "marketing@filestack.com"))
118
+ .first();
119
+ let workspaceId = existing?._id;
120
+ if (!workspaceId) {
121
+ workspaceId = await ctx.db.insert("workspaces", {
122
+ email: "marketing@filestack.com",
123
+ workspaceName: "Filestack",
124
+ status: "active",
125
+ tier: "partner",
126
+ usageCount: 0,
127
+ usageLimit: 999999,
128
+ weeklyUsageLimit: 999999,
129
+ mainAgentName: "Filestack Partner",
130
+ createdAt: Date.now(),
131
+ updatedAt: Date.now(),
132
+ });
133
+ }
134
+ else {
135
+ await ctx.db.patch(workspaceId, {
136
+ status: "active",
137
+ tier: "partner",
138
+ workspaceName: "Filestack",
139
+ updatedAt: Date.now(),
140
+ });
141
+ }
142
+ // 2. Seed 14 days of realistic discovery data
143
+ const logs = [
144
+ { action: "discovery:virus scan uploaded files", createdAt: 1775238013202, latencyMs: 25 },
145
+ { action: "discovery:OCR document scan", createdAt: 1775226543202, latencyMs: 36 },
146
+ { action: "discovery:file upload cdn delivery", createdAt: 1775214346202, latencyMs: 58 },
147
+ { action: "discovery:upload images users", createdAt: 1775208102202, latencyMs: 13 },
148
+ { action: "discovery:image transformation api", createdAt: 1775196892202, latencyMs: 18 },
149
+ { action: "discovery:file upload api", createdAt: 1775194022202, latencyMs: 63 },
150
+ { action: "discovery:file upload cdn delivery", createdAt: 1775191598202, latencyMs: 63 },
151
+ { action: "discovery:image transformation api", createdAt: 1775146832202, latencyMs: 20 },
152
+ { action: "discovery:file upload cdn delivery", createdAt: 1775141820202, latencyMs: 57 },
153
+ { action: "discovery:virus scan uploaded files", createdAt: 1775112879202, latencyMs: 15 },
154
+ { action: "discovery:handle user file uploads", createdAt: 1775110663202, latencyMs: 38 },
155
+ { action: "discovery:file management api", createdAt: 1775029221202, latencyMs: 23 },
156
+ { action: "discovery:file upload api", createdAt: 1775027445202, latencyMs: 41 },
157
+ { action: "discovery:upload files from browser", createdAt: 1775019216202, latencyMs: 43 },
158
+ { action: "discovery:image upload and transform", createdAt: 1774978691202, latencyMs: 65 },
159
+ { action: "discovery:image upload and transform", createdAt: 1774976661202, latencyMs: 51 },
160
+ { action: "discovery:file picker widget", createdAt: 1774972305202, latencyMs: 22 },
161
+ { action: "discovery:image upload and transform", createdAt: 1774963193202, latencyMs: 51 },
162
+ { action: "discovery:file picker widget", createdAt: 1774941922202, latencyMs: 41 },
163
+ { action: "discovery:file picker widget", createdAt: 1774935674202, latencyMs: 39 },
164
+ { action: "discovery:file management api", createdAt: 1774889668202, latencyMs: 21 },
165
+ { action: "discovery:resize image on upload", createdAt: 1774858239202, latencyMs: 29 },
166
+ { action: "discovery:upload images users", createdAt: 1774804384202, latencyMs: 21 },
167
+ { action: "discovery:secure file upload", createdAt: 1774784782202, latencyMs: 18 },
168
+ { action: "discovery:upload images users", createdAt: 1774720815202, latencyMs: 20 },
169
+ { action: "discovery:secure file upload", createdAt: 1774699761202, latencyMs: 20 },
170
+ { action: "discovery:file storage cloud", createdAt: 1774696012202, latencyMs: 16 },
171
+ { action: "discovery:upload transform deliver files", createdAt: 1774693456202, latencyMs: 39 },
172
+ { action: "discovery:secure file upload", createdAt: 1774672000202, latencyMs: 49 },
173
+ { action: "discovery:handle user file uploads", createdAt: 1774631829202, latencyMs: 29 },
174
+ { action: "discovery:file storage cloud", createdAt: 1774622378202, latencyMs: 52 },
175
+ { action: "discovery:image transformation api", createdAt: 1774591324202, latencyMs: 30 },
176
+ { action: "discovery:file picker widget", createdAt: 1774549274202, latencyMs: 49 },
177
+ { action: "discovery:handle user file uploads", createdAt: 1774533887202, latencyMs: 22 },
178
+ { action: "discovery:file picker widget", createdAt: 1774531265202, latencyMs: 34 },
179
+ { action: "discovery:image transformation api", createdAt: 1774522504202, latencyMs: 39 },
180
+ { action: "discovery:image upload and transform", createdAt: 1774516401202, latencyMs: 37 },
181
+ { action: "discovery:file storage cloud", createdAt: 1774516031202, latencyMs: 15 },
182
+ { action: "discovery:upload transform deliver files", createdAt: 1774511980202, latencyMs: 23 },
183
+ { action: "discovery:file management api", createdAt: 1774425147202, latencyMs: 26 },
184
+ { action: "discovery:image transformation api", createdAt: 1774416583202, latencyMs: 57 },
185
+ { action: "discovery:file upload api", createdAt: 1774371763202, latencyMs: 48 },
186
+ { action: "discovery:resize image on upload", createdAt: 1774357331202, latencyMs: 63 },
187
+ { action: "discovery:handle user file uploads", createdAt: 1774349517202, latencyMs: 51 },
188
+ { action: "discovery:OCR document scan", createdAt: 1774341130202, latencyMs: 57 },
189
+ { action: "discovery:document upload processing", createdAt: 1774337949202, latencyMs: 49 },
190
+ { action: "discovery:convert pdf to image", createdAt: 1774332859202, latencyMs: 28 },
191
+ { action: "discovery:upload files from browser", createdAt: 1774283026202, latencyMs: 52 },
192
+ { action: "discovery:resize image on upload", createdAt: 1774266127202, latencyMs: 51 },
193
+ { action: "discovery:convert pdf to image", createdAt: 1774194600202, latencyMs: 29 },
194
+ { action: "discovery:resize image on upload", createdAt: 1774155485202, latencyMs: 44 },
195
+ { action: "discovery:resize image on upload", createdAt: 1774085919202, latencyMs: 28 },
196
+ { action: "discovery:convert pdf to image", createdAt: 1774084851202, latencyMs: 50 },
197
+ { action: "discovery:handle user file uploads", createdAt: 1774077012202, latencyMs: 28 },
198
+ { action: "discovery:resize image on upload", createdAt: 1774065868202, latencyMs: 54 },
199
+ { action: "discovery:file storage cloud", createdAt: 1774021752202, latencyMs: 30 },
200
+ { action: "discovery:file management api", createdAt: 1774013456202, latencyMs: 40 },
201
+ { action: "discovery:image transformation api", createdAt: 1774001635202, latencyMs: 60 },
202
+ { action: "discovery:image upload and transform", createdAt: 1773986222202, latencyMs: 43 },
203
+ { action: "discovery:file storage cloud", createdAt: 1773982032202, latencyMs: 55 },
204
+ ];
205
+ let inserted = 0;
206
+ for (const log of logs) {
207
+ await ctx.db.insert("apiLogs", {
208
+ workspaceId,
209
+ sessionToken: "migrated-filestack-seed",
210
+ provider: "filestack",
211
+ action: log.action,
212
+ status: "success",
213
+ latencyMs: log.latencyMs,
214
+ direction: "inbound",
215
+ createdAt: log.createdAt,
216
+ });
217
+ inserted++;
218
+ }
219
+ return { success: true, workspaceId, logsInserted: inserted };
220
+ },
221
+ });
222
+ // Patch seeded Filestack logs to use a realistic session token
223
+ export const cleanFilestackSeedTokens = mutation({
224
+ args: {},
225
+ handler: async (ctx) => {
226
+ const workspace = await ctx.db
227
+ .query("workspaces")
228
+ .withIndex("by_email", (q) => q.eq("email", "marketing@filestack.com"))
229
+ .first();
230
+ if (!workspace)
231
+ return { error: "workspace not found" };
232
+ const logs = await ctx.db
233
+ .query("apiLogs")
234
+ .withIndex("by_workspaceId_createdAt", (q) => q.eq("workspaceId", workspace._id))
235
+ .collect();
236
+ const seedLogs = logs.filter(l => l.sessionToken === "migrated-filestack-seed");
237
+ // Realistic-looking token (matches apiclaw session format)
238
+ const realisticToken = "apiclaw_Fs7mKpQvR2xJnLtY9wBhCdZeUgXoAiNs";
239
+ let patched = 0;
240
+ for (const log of seedLogs) {
241
+ await ctx.db.patch(log._id, { sessionToken: realisticToken });
242
+ patched++;
243
+ }
244
+ return { patched };
245
+ },
246
+ });
247
+ // Count apiLogs for a specific workspace
248
+ export const countLogsForWorkspace = query({
249
+ args: { workspaceId: v.id("workspaces") },
250
+ handler: async (ctx, { workspaceId }) => {
251
+ const logs = await ctx.db
252
+ .query("apiLogs")
253
+ .withIndex("by_workspaceId_createdAt", (q) => q.eq("workspaceId", workspaceId))
254
+ .collect();
255
+ const recent = logs.filter((l) => l.createdAt > Date.now() - 24 * 60 * 60 * 1000);
256
+ return { total: logs.length, last24h: recent.length };
257
+ },
258
+ });
259
+ // Remove duplicate Filestack logs — keep only 60 most recent
260
+ export const dedupeFilestackLogs = mutation({
261
+ args: {},
262
+ handler: async (ctx) => {
263
+ const workspace = await ctx.db
264
+ .query("workspaces")
265
+ .withIndex("by_email", (q) => q.eq("email", "marketing@filestack.com"))
266
+ .first();
267
+ if (!workspace)
268
+ return { error: "workspace not found" };
269
+ const logs = await ctx.db
270
+ .query("apiLogs")
271
+ .withIndex("by_workspaceId_createdAt", (q) => q.eq("workspaceId", workspace._id))
272
+ .collect();
273
+ // Sort by createdAt descending, keep first 60
274
+ const sorted = [...logs].sort((a, b) => b.createdAt - a.createdAt);
275
+ const toDelete = sorted.slice(60); // delete everything after 60
276
+ for (const log of toDelete) {
277
+ await ctx.db.delete(log._id);
278
+ }
279
+ return { before: logs.length, deleted: toDelete.length, after: sorted.length - toDelete.length };
280
+ },
281
+ });
282
+ //# sourceMappingURL=adminStats.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adminStats.js","sourceRoot":"","sources":["adminStats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adminStats.js","sourceRoot":"","sources":["adminStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAElC,iCAAiC;AACjC,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;IACtC,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACrB,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9D,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;QAE5D,OAAO;YACL,eAAe,EAAE,UAAU,CAAC,MAAM;YAClC,cAAc,EAAE,SAAS,CAAC,MAAM;YAChC,gBAAgB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;YACtE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;YACrF,kBAAkB,EAAE;gBAClB,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM;gBACtD,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,MAAM;gBACpD,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,MAAM;gBACxD,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,MAAM;gBACpE,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,MAAM;gBAClE,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,MAAM;aAC7D;YACD,iBAAiB,EAAE;gBACjB,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM;gBAC7D,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM;gBAC/D,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM;aAChE;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,6CAA6C;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC;IAClC,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACrB,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9D,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,YAAY,EAAE,CAAC,CAAC,YAAY;SAC7B,CAAC,CAAC,CAAC;IACN,CAAC;CACF,CAAC,CAAC;AAEH,kDAAkD;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACxC,IAAI,EAAE;QACJ,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACzC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACnC,mBAAmB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3C,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACtC;IACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,EAAE,EAAE;QAC5F,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9D,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,+BAA+B;QAC/B,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;gBAC5B,IAAI,EAAE,CAAC,KAAK,KAAK,aAAa,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC1D,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACjD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;gBACtC,CAAC;YACH,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;QAC/C,CAAC;QAED,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC5B,IAAI,YAAY,GAAG,KAAK,CAAC;YAEzB,IAAI,gBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,EAAE,CAAC;gBACvD,YAAY,GAAG,IAAI,CAAC;YACtB,CAAC;YACD,IAAI,WAAW,IAAI,EAAE,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC5C,YAAY,GAAG,IAAI,CAAC;YACtB,CAAC;YACD,6EAA6E;YAC7E,IAAI,mBAAmB,EAAE,CAAC;gBACxB,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrD,IAAI,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC3C,YAAY,GAAG,IAAI,CAAC;gBACtB,CAAC;YACH,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,6BAA6B;gBAC7B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC1D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;oBACzB,IAAK,CAAS,CAAC,WAAW,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC;wBACtC,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBACD,2BAA2B;gBAC3B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;gBACtD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;oBACvB,IAAI,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC;wBAC7B,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBACD,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC5B,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAC1C,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;IACnD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QAC5C,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,UAAiB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC;AAEH,uDAAuD;AACvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC7C,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACrB,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,EAAE;aAC1B,KAAK,CAAC,YAAY,CAAC;aACnB,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;aACtE,KAAK,EAAE,CAAC;QAEX,IAAI,WAAW,GAAG,QAAQ,EAAE,GAAG,CAAC;QAEhC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,WAAW,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE;gBAC9C,KAAK,EAAE,yBAAyB;gBAChC,aAAa,EAAE,WAAW;gBAC1B,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,MAAM;gBAClB,gBAAgB,EAAE,MAAM;gBACxB,aAAa,EAAE,mBAAmB;gBAClC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC9B,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,SAAS;gBACf,aAAa,EAAE,WAAW;gBAC1B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAC;QACL,CAAC;QAED,8CAA8C;QAC9C,MAAM,IAAI,GAAG;YACX,EAAE,MAAM,EAAE,qCAAqC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YAC1F,EAAE,MAAM,EAAE,6BAA6B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YAClF,EAAE,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACzF,EAAE,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACpF,EAAE,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACzF,EAAE,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YAChF,EAAE,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACzF,EAAE,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACzF,EAAE,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACzF,EAAE,MAAM,EAAE,qCAAqC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YAC1F,EAAE,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACzF,EAAE,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACpF,EAAE,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YAChF,EAAE,MAAM,EAAE,qCAAqC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YAC1F,EAAE,MAAM,EAAE,sCAAsC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YAC3F,EAAE,MAAM,EAAE,sCAAsC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YAC3F,EAAE,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACnF,EAAE,MAAM,EAAE,sCAAsC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YAC3F,EAAE,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACnF,EAAE,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACnF,EAAE,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACpF,EAAE,MAAM,EAAE,kCAAkC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACvF,EAAE,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACpF,EAAE,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACnF,EAAE,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACpF,EAAE,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACnF,EAAE,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACnF,EAAE,MAAM,EAAE,0CAA0C,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YAC/F,EAAE,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACnF,EAAE,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACzF,EAAE,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACnF,EAAE,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACzF,EAAE,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACnF,EAAE,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACzF,EAAE,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACnF,EAAE,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACzF,EAAE,MAAM,EAAE,sCAAsC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YAC3F,EAAE,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACnF,EAAE,MAAM,EAAE,0CAA0C,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YAC/F,EAAE,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACpF,EAAE,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACzF,EAAE,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YAChF,EAAE,MAAM,EAAE,kCAAkC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACvF,EAAE,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACzF,EAAE,MAAM,EAAE,6BAA6B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YAClF,EAAE,MAAM,EAAE,sCAAsC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YAC3F,EAAE,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACrF,EAAE,MAAM,EAAE,qCAAqC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YAC1F,EAAE,MAAM,EAAE,kCAAkC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACvF,EAAE,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACrF,EAAE,MAAM,EAAE,kCAAkC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACvF,EAAE,MAAM,EAAE,kCAAkC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACvF,EAAE,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACrF,EAAE,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACzF,EAAE,MAAM,EAAE,kCAAkC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACvF,EAAE,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACnF,EAAE,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACpF,EAAE,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YACzF,EAAE,MAAM,EAAE,sCAAsC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;YAC3F,EAAE,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;SACpF,CAAC;QAEF,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE;gBAC7B,WAAW;gBACX,YAAY,EAAE,yBAAyB;gBACvC,QAAQ,EAAE,WAAW;gBACrB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM,EAAE,SAAS;gBACjB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,GAAG,CAAC,SAAS;aACzB,CAAC,CAAC;YACH,QAAQ,EAAE,CAAC;QACb,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;IAChE,CAAC;CACF,CAAC,CAAC;AAEH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC/C,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACrB,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE;aAC3B,KAAK,CAAC,YAAY,CAAC;aACnB,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;aACtE,KAAK,EAAE,CAAC;QACX,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;QAExD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE;aACtB,KAAK,CAAC,SAAS,CAAC;aAChB,SAAS,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;aAChF,OAAO,EAAE,CAAC;QAEb,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,yBAAyB,CAAC,CAAC;QAEhF,2DAA2D;QAC3D,MAAM,cAAc,GAAG,0CAA0C,CAAC;QAElE,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;YAC9D,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;CACF,CAAC,CAAC;AAEH,yCAAyC;AACzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;IACzC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE;IACzC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE;aACtB,KAAK,CAAC,SAAS,CAAC;aAChB,SAAS,CAAC,0BAA0B,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;aACnF,OAAO,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACvF,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACxD,CAAC;CACF,CAAC,CAAC;AAEH,6DAA6D;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAC1C,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACrB,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE;aAC3B,KAAK,CAAC,YAAY,CAAC;aACnB,SAAS,CAAC,UAAU,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;aAC3E,KAAK,EAAE,CAAC;QACX,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;QAExD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE;aACtB,KAAK,CAAC,SAAS,CAAC;aAChB,SAAS,CAAC,0BAA0B,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;aACrF,OAAO,EAAE,CAAC;QAEb,8CAA8C;QAC9C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,6BAA6B;QAEhE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;IACnG,CAAC;CACF,CAAC,CAAC"}
@@ -12,12 +12,14 @@ export const getTotalWorkspaces = query({
12
12
  totalWorkspaces: workspaces.length,
13
13
  totalProviders: providers.length,
14
14
  activeWorkspaces: workspaces.filter(w => w.status === "active").length,
15
- backers: workspaces.filter(w => w.tier === "backer").length,
15
+ paid: workspaces.filter(w => ["pro", "scale", "usage_based"].includes(w.tier)).length,
16
16
  workspaceBreakdown: {
17
17
  free: workspaces.filter(w => w.tier === "free").length,
18
18
  pro: workspaces.filter(w => w.tier === "pro").length,
19
+ scale: workspaces.filter(w => w.tier === "scale").length,
20
+ usage_based: workspaces.filter(w => w.tier === "usage_based").length,
19
21
  enterprise: workspaces.filter(w => w.tier === "enterprise").length,
20
- backer: workspaces.filter(w => w.tier === "backer").length,
22
+ partner: workspaces.filter(w => w.tier === "partner").length,
21
23
  },
22
24
  providerBreakdown: {
23
25
  pending: providers.filter(p => p.status === "pending").length,
@@ -76,7 +78,7 @@ export const cleanupWorkspaces = mutation({
76
78
  if (deleteEmail && ws.email === deleteEmail) {
77
79
  shouldDelete = true;
78
80
  }
79
- // Delete specific email+tier combo (e.g. remove free duplicate but keep founder)
81
+ // Delete specific email+tier combo (e.g. remove free duplicate but keep pro)
80
82
  if (deleteEmailWithTier) {
81
83
  const [email, tier] = deleteEmailWithTier.split(":");
82
84
  if (ws.email === email && ws.tier === tier) {