@kortix/sdk 0.10.16 → 0.11.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 (285) hide show
  1. package/README.md +17 -2
  2. package/dist/browser/session-sync/session-sync-registry.d.ts +3 -0
  3. package/dist/browser/session-sync/session-sync-registry.d.ts.map +1 -1
  4. package/dist/browser/session-sync/session-sync-registry.js +31 -2
  5. package/dist/browser/session-sync/session-sync-registry.js.map +1 -1
  6. package/dist/core/acp/client.d.ts +45 -0
  7. package/dist/core/acp/client.d.ts.map +1 -0
  8. package/dist/core/acp/client.js +277 -0
  9. package/dist/core/acp/client.js.map +1 -0
  10. package/dist/core/acp/index.d.ts +5 -0
  11. package/dist/core/acp/index.d.ts.map +1 -0
  12. package/dist/core/acp/index.js +5 -0
  13. package/dist/core/acp/index.js.map +1 -0
  14. package/dist/core/acp/projection.d.ts +23 -0
  15. package/dist/core/acp/projection.d.ts.map +1 -0
  16. package/dist/core/acp/projection.js +603 -0
  17. package/dist/core/acp/projection.js.map +1 -0
  18. package/dist/core/acp/session-controller.d.ts +90 -0
  19. package/dist/core/acp/session-controller.d.ts.map +1 -0
  20. package/dist/core/acp/session-controller.js +530 -0
  21. package/dist/core/acp/session-controller.js.map +1 -0
  22. package/dist/core/acp/types.d.ts +66 -0
  23. package/dist/core/acp/types.d.ts.map +1 -0
  24. package/dist/core/acp/types.js +21 -0
  25. package/dist/core/acp/types.js.map +1 -0
  26. package/dist/core/client/kortix.d.ts +141 -14
  27. package/dist/core/client/kortix.d.ts.map +1 -1
  28. package/dist/core/client/kortix.js +40 -7
  29. package/dist/core/client/kortix.js.map +1 -1
  30. package/dist/core/http/api-client.d.ts.map +1 -1
  31. package/dist/core/http/api-client.js +48 -68
  32. package/dist/core/http/api-client.js.map +1 -1
  33. package/dist/core/rest/platform-client/host-boundary.d.ts +114 -0
  34. package/dist/core/rest/platform-client/host-boundary.d.ts.map +1 -0
  35. package/dist/core/rest/platform-client/host-boundary.js +229 -0
  36. package/dist/core/rest/platform-client/host-boundary.js.map +1 -0
  37. package/dist/core/rest/platform-client/index.d.ts +1 -0
  38. package/dist/core/rest/platform-client/index.d.ts.map +1 -1
  39. package/dist/core/rest/platform-client/index.js +1 -0
  40. package/dist/core/rest/platform-client/index.js.map +1 -1
  41. package/dist/core/rest/projects-client/account-lifecycle.d.ts +22 -0
  42. package/dist/core/rest/projects-client/account-lifecycle.d.ts.map +1 -0
  43. package/dist/core/rest/projects-client/account-lifecycle.js +26 -0
  44. package/dist/core/rest/projects-client/account-lifecycle.js.map +1 -0
  45. package/dist/core/rest/projects-client/admin-providers.d.ts +10 -0
  46. package/dist/core/rest/projects-client/admin-providers.d.ts.map +1 -0
  47. package/dist/core/rest/projects-client/admin-providers.js +34 -0
  48. package/dist/core/rest/projects-client/admin-providers.js.map +1 -0
  49. package/dist/core/rest/projects-client/agent-config.d.ts +7 -0
  50. package/dist/core/rest/projects-client/agent-config.d.ts.map +1 -1
  51. package/dist/core/rest/projects-client/agent-config.js.map +1 -1
  52. package/dist/core/rest/projects-client/billing.d.ts +89 -0
  53. package/dist/core/rest/projects-client/billing.d.ts.map +1 -1
  54. package/dist/core/rest/projects-client/billing.js +43 -0
  55. package/dist/core/rest/projects-client/billing.js.map +1 -1
  56. package/dist/core/rest/projects-client/channels.d.ts +8 -27
  57. package/dist/core/rest/projects-client/channels.d.ts.map +1 -1
  58. package/dist/core/rest/projects-client/channels.js +12 -23
  59. package/dist/core/rest/projects-client/channels.js.map +1 -1
  60. package/dist/core/rest/projects-client/connectors.d.ts +162 -13
  61. package/dist/core/rest/projects-client/connectors.d.ts.map +1 -1
  62. package/dist/core/rest/projects-client/connectors.js +64 -2
  63. package/dist/core/rest/projects-client/connectors.js.map +1 -1
  64. package/dist/core/rest/projects-client/gateway.d.ts +1 -0
  65. package/dist/core/rest/projects-client/gateway.d.ts.map +1 -1
  66. package/dist/core/rest/projects-client/gateway.js.map +1 -1
  67. package/dist/core/rest/projects-client/iam.d.ts +492 -0
  68. package/dist/core/rest/projects-client/iam.d.ts.map +1 -0
  69. package/dist/core/rest/projects-client/iam.js +287 -0
  70. package/dist/core/rest/projects-client/iam.js.map +1 -0
  71. package/dist/core/rest/projects-client/index.d.ts +6 -0
  72. package/dist/core/rest/projects-client/index.d.ts.map +1 -1
  73. package/dist/core/rest/projects-client/index.js +6 -0
  74. package/dist/core/rest/projects-client/index.js.map +1 -1
  75. package/dist/core/rest/projects-client/marketplace-catalog.d.ts +9 -2
  76. package/dist/core/rest/projects-client/marketplace-catalog.d.ts.map +1 -1
  77. package/dist/core/rest/projects-client/marketplace-catalog.js +7 -0
  78. package/dist/core/rest/projects-client/marketplace-catalog.js.map +1 -1
  79. package/dist/core/rest/projects-client/presentations.d.ts +12 -0
  80. package/dist/core/rest/projects-client/presentations.d.ts.map +1 -0
  81. package/dist/core/rest/projects-client/presentations.js +9 -0
  82. package/dist/core/rest/projects-client/presentations.js.map +1 -0
  83. package/dist/core/rest/projects-client/projects.d.ts +55 -10
  84. package/dist/core/rest/projects-client/projects.d.ts.map +1 -1
  85. package/dist/core/rest/projects-client/projects.js +14 -7
  86. package/dist/core/rest/projects-client/projects.js.map +1 -1
  87. package/dist/core/rest/projects-client/public-voice-join.d.ts +59 -0
  88. package/dist/core/rest/projects-client/public-voice-join.d.ts.map +1 -0
  89. package/dist/core/rest/projects-client/public-voice-join.js +64 -0
  90. package/dist/core/rest/projects-client/public-voice-join.js.map +1 -0
  91. package/dist/core/rest/projects-client/referrals.d.ts +53 -0
  92. package/dist/core/rest/projects-client/referrals.d.ts.map +1 -0
  93. package/dist/core/rest/projects-client/referrals.js +27 -0
  94. package/dist/core/rest/projects-client/referrals.js.map +1 -0
  95. package/dist/core/rest/projects-client/session-sandbox.d.ts +2 -0
  96. package/dist/core/rest/projects-client/session-sandbox.d.ts.map +1 -1
  97. package/dist/core/rest/projects-client/session-sandbox.js +10 -0
  98. package/dist/core/rest/projects-client/session-sandbox.js.map +1 -1
  99. package/dist/core/rest/projects-client/sessions.d.ts +89 -0
  100. package/dist/core/rest/projects-client/sessions.d.ts.map +1 -1
  101. package/dist/core/rest/projects-client/sessions.js +49 -1
  102. package/dist/core/rest/projects-client/sessions.js.map +1 -1
  103. package/dist/core/session/index.d.ts +2 -0
  104. package/dist/core/session/index.d.ts.map +1 -1
  105. package/dist/core/session/index.js +2 -0
  106. package/dist/core/session/index.js.map +1 -1
  107. package/dist/core/session/presentation.d.ts +12 -0
  108. package/dist/core/session/presentation.d.ts.map +1 -0
  109. package/dist/core/session/presentation.js +70 -0
  110. package/dist/core/session/presentation.js.map +1 -0
  111. package/dist/core/session/rewind.d.ts +18 -0
  112. package/dist/core/session/rewind.d.ts.map +1 -0
  113. package/dist/core/session/rewind.js +17 -0
  114. package/dist/core/session/rewind.js.map +1 -0
  115. package/dist/core/session/runtime-transport.d.ts +16 -0
  116. package/dist/core/session/runtime-transport.d.ts.map +1 -0
  117. package/dist/core/session/runtime-transport.js +30 -0
  118. package/dist/core/session/runtime-transport.js.map +1 -0
  119. package/dist/core/session/url.d.ts +43 -0
  120. package/dist/core/session/url.d.ts.map +1 -1
  121. package/dist/core/session/url.js +81 -0
  122. package/dist/core/session/url.js.map +1 -1
  123. package/dist/core/session-sync/session-sync-controller.d.ts +28 -0
  124. package/dist/core/session-sync/session-sync-controller.d.ts.map +1 -1
  125. package/dist/core/session-sync/session-sync-controller.js +127 -4
  126. package/dist/core/session-sync/session-sync-controller.js.map +1 -1
  127. package/dist/core/stream/fetch-sse.d.ts +23 -0
  128. package/dist/core/stream/fetch-sse.d.ts.map +1 -0
  129. package/dist/core/stream/fetch-sse.js +119 -0
  130. package/dist/core/stream/fetch-sse.js.map +1 -0
  131. package/dist/core/turns/state.d.ts.map +1 -1
  132. package/dist/core/turns/state.js +11 -4
  133. package/dist/core/turns/state.js.map +1 -1
  134. package/dist/core/turns/types.d.ts +6 -0
  135. package/dist/core/turns/types.d.ts.map +1 -1
  136. package/dist/index.d.ts +6 -1
  137. package/dist/index.d.ts.map +1 -1
  138. package/dist/index.js +6 -1
  139. package/dist/index.js.map +1 -1
  140. package/dist/kortix.esm.min.js +24 -16
  141. package/dist/kortix.global.js +24 -16
  142. package/dist/node/server.d.ts +14 -0
  143. package/dist/node/server.d.ts.map +1 -1
  144. package/dist/node/server.js +42 -0
  145. package/dist/node/server.js.map +1 -1
  146. package/dist/platform/auth-core.d.ts +3 -5
  147. package/dist/platform/auth-core.d.ts.map +1 -1
  148. package/dist/platform/auth-core.js +4 -6
  149. package/dist/platform/auth-core.js.map +1 -1
  150. package/dist/react/agent-selection-scope.d.ts +8 -0
  151. package/dist/react/agent-selection-scope.d.ts.map +1 -0
  152. package/dist/react/agent-selection-scope.js +4 -0
  153. package/dist/react/agent-selection-scope.js.map +1 -0
  154. package/dist/react/index.d.ts +13 -0
  155. package/dist/react/index.d.ts.map +1 -1
  156. package/dist/react/index.js +13 -0
  157. package/dist/react/index.js.map +1 -1
  158. package/dist/react/initial-session-pin.d.ts +8 -0
  159. package/dist/react/initial-session-pin.d.ts.map +1 -0
  160. package/dist/react/initial-session-pin.js +4 -0
  161. package/dist/react/initial-session-pin.js.map +1 -0
  162. package/dist/react/opencode.d.ts +25 -2
  163. package/dist/react/opencode.d.ts.map +1 -1
  164. package/dist/react/opencode.js +24 -1
  165. package/dist/react/opencode.js.map +1 -1
  166. package/dist/react/provider-selection.d.ts +1 -0
  167. package/dist/react/provider-selection.d.ts.map +1 -1
  168. package/dist/react/provider-selection.js +22 -0
  169. package/dist/react/provider-selection.js.map +1 -1
  170. package/dist/react/run-pty-command.d.ts +5 -0
  171. package/dist/react/run-pty-command.d.ts.map +1 -0
  172. package/dist/react/run-pty-command.js +42 -0
  173. package/dist/react/run-pty-command.js.map +1 -0
  174. package/dist/react/runtime-actions.d.ts +51 -0
  175. package/dist/react/runtime-actions.d.ts.map +1 -0
  176. package/dist/react/runtime-actions.js +105 -0
  177. package/dist/react/runtime-actions.js.map +1 -0
  178. package/dist/react/session-agent-name-guard.d.ts +16 -0
  179. package/dist/react/session-agent-name-guard.d.ts.map +1 -0
  180. package/dist/react/session-agent-name-guard.js +22 -0
  181. package/dist/react/session-agent-name-guard.js.map +1 -0
  182. package/dist/react/session-busy.d.ts +8 -0
  183. package/dist/react/session-busy.d.ts.map +1 -0
  184. package/dist/react/session-busy.js +4 -0
  185. package/dist/react/session-busy.js.map +1 -0
  186. package/dist/react/session-title-sync.d.ts +19 -0
  187. package/dist/react/session-title-sync.d.ts.map +1 -0
  188. package/dist/react/session-title-sync.js +81 -0
  189. package/dist/react/session-title-sync.js.map +1 -0
  190. package/dist/react/use-acp-session-runtime.d.ts +34 -0
  191. package/dist/react/use-acp-session-runtime.d.ts.map +1 -0
  192. package/dist/react/use-acp-session-runtime.js +84 -0
  193. package/dist/react/use-acp-session-runtime.js.map +1 -0
  194. package/dist/react/use-admin-accounts.d.ts +122 -0
  195. package/dist/react/use-admin-accounts.d.ts.map +1 -0
  196. package/dist/react/use-admin-accounts.js +146 -0
  197. package/dist/react/use-admin-accounts.js.map +1 -0
  198. package/dist/react/use-admin-analytics.d.ts +332 -0
  199. package/dist/react/use-admin-analytics.d.ts.map +1 -0
  200. package/dist/react/use-admin-analytics.js +518 -0
  201. package/dist/react/use-admin-analytics.js.map +1 -0
  202. package/dist/react/use-admin-billing.d.ts +27 -0
  203. package/dist/react/use-admin-billing.d.ts.map +1 -0
  204. package/dist/react/use-admin-billing.js +61 -0
  205. package/dist/react/use-admin-billing.js.map +1 -0
  206. package/dist/react/use-admin-feedback.d.ts +119 -0
  207. package/dist/react/use-admin-feedback.d.ts.map +1 -0
  208. package/dist/react/use-admin-feedback.js +148 -0
  209. package/dist/react/use-admin-feedback.js.map +1 -0
  210. package/dist/react/use-admin-sandboxes.d.ts +157 -0
  211. package/dist/react/use-admin-sandboxes.d.ts.map +1 -0
  212. package/dist/react/use-admin-sandboxes.js +145 -0
  213. package/dist/react/use-admin-sandboxes.js.map +1 -0
  214. package/dist/react/use-admin-users.d.ts +98 -0
  215. package/dist/react/use-admin-users.d.ts.map +1 -0
  216. package/dist/react/use-admin-users.js +121 -0
  217. package/dist/react/use-admin-users.js.map +1 -0
  218. package/dist/react/use-authenticated-preview-url.d.ts +24 -0
  219. package/dist/react/use-authenticated-preview-url.d.ts.map +1 -0
  220. package/dist/react/use-authenticated-preview-url.js +137 -0
  221. package/dist/react/use-authenticated-preview-url.js.map +1 -0
  222. package/dist/react/use-canonical-opencode-session.d.ts +4 -0
  223. package/dist/react/use-canonical-opencode-session.d.ts.map +1 -1
  224. package/dist/react/use-canonical-opencode-session.js +9 -4
  225. package/dist/react/use-canonical-opencode-session.js.map +1 -1
  226. package/dist/react/use-model-defaults.d.ts +22 -0
  227. package/dist/react/use-model-defaults.d.ts.map +1 -0
  228. package/dist/react/use-model-defaults.js +104 -0
  229. package/dist/react/use-model-defaults.js.map +1 -0
  230. package/dist/react/use-model-store.d.ts.map +1 -1
  231. package/dist/react/use-model-store.js +11 -0
  232. package/dist/react/use-model-store.js.map +1 -1
  233. package/dist/react/use-opencode-events/index.d.ts +3 -1
  234. package/dist/react/use-opencode-events/index.d.ts.map +1 -1
  235. package/dist/react/use-opencode-events/index.js +6 -2
  236. package/dist/react/use-opencode-events/index.js.map +1 -1
  237. package/dist/react/use-opencode-local.d.ts.map +1 -1
  238. package/dist/react/use-opencode-local.js +10 -1
  239. package/dist/react/use-opencode-local.js.map +1 -1
  240. package/dist/react/use-opencode-sessions/agents.d.ts.map +1 -1
  241. package/dist/react/use-opencode-sessions/agents.js +5 -3
  242. package/dist/react/use-opencode-sessions/agents.js.map +1 -1
  243. package/dist/react/use-opencode-sessions/commands.d.ts +7 -2
  244. package/dist/react/use-opencode-sessions/commands.d.ts.map +1 -1
  245. package/dist/react/use-opencode-sessions/commands.js +13 -9
  246. package/dist/react/use-opencode-sessions/commands.js.map +1 -1
  247. package/dist/react/use-opencode-sessions/provider-load-plan.d.ts +6 -0
  248. package/dist/react/use-opencode-sessions/provider-load-plan.d.ts.map +1 -0
  249. package/dist/react/use-opencode-sessions/provider-load-plan.js +4 -0
  250. package/dist/react/use-opencode-sessions/provider-load-plan.js.map +1 -0
  251. package/dist/react/use-opencode-sessions/providers.d.ts.map +1 -1
  252. package/dist/react/use-opencode-sessions/providers.js +39 -27
  253. package/dist/react/use-opencode-sessions/providers.js.map +1 -1
  254. package/dist/react/use-opencode-sessions/sessions.d.ts +1 -1
  255. package/dist/react/use-opencode-sessions/sessions.d.ts.map +1 -1
  256. package/dist/react/use-opencode-sessions/sessions.js +2 -2
  257. package/dist/react/use-opencode-sessions/sessions.js.map +1 -1
  258. package/dist/react/use-ops-overview.d.ts +64 -0
  259. package/dist/react/use-ops-overview.d.ts.map +1 -0
  260. package/dist/react/use-ops-overview.js +16 -0
  261. package/dist/react/use-ops-overview.js.map +1 -0
  262. package/dist/react/use-session-model-selection.d.ts +15 -0
  263. package/dist/react/use-session-model-selection.d.ts.map +1 -0
  264. package/dist/react/use-session-model-selection.js +27 -0
  265. package/dist/react/use-session-model-selection.js.map +1 -0
  266. package/dist/react/use-session-sync.d.ts.map +1 -1
  267. package/dist/react/use-session-sync.js +3 -1
  268. package/dist/react/use-session-sync.js.map +1 -1
  269. package/dist/react/use-session.d.ts +78 -4
  270. package/dist/react/use-session.d.ts.map +1 -1
  271. package/dist/react/use-session.js +329 -34
  272. package/dist/react/use-session.js.map +1 -1
  273. package/dist/react/use-system-status.d.ts +39 -0
  274. package/dist/react/use-system-status.d.ts.map +1 -0
  275. package/dist/react/use-system-status.js +68 -0
  276. package/dist/react/use-system-status.js.map +1 -0
  277. package/dist/react/use-teams-installations.d.ts +36 -0
  278. package/dist/react/use-teams-installations.d.ts.map +1 -0
  279. package/dist/react/use-teams-installations.js +94 -0
  280. package/dist/react/use-teams-installations.js.map +1 -0
  281. package/dist/react/use-tunnel.d.ts +120 -0
  282. package/dist/react/use-tunnel.d.ts.map +1 -0
  283. package/dist/react/use-tunnel.js +268 -0
  284. package/dist/react/use-tunnel.js.map +1 -0
  285. package/package.json +2 -2
@@ -0,0 +1,146 @@
1
+ import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
2
+ import { backendApi } from '../core/http/api-client.js';
3
+ export function useAdminAccounts(filters = {}) {
4
+ const { search = '', tier = [], paymentStatus = [], paidOnly = false, hasSubscription = null, minBalance = null, maxBalance = null, sortBy = 'created', sortDir = 'desc', page = 1, limit = 50, } = filters;
5
+ return useQuery({
6
+ queryKey: [
7
+ 'admin',
8
+ 'accounts',
9
+ search,
10
+ tier.join(','),
11
+ paymentStatus.join(','),
12
+ paidOnly,
13
+ hasSubscription,
14
+ minBalance,
15
+ maxBalance,
16
+ sortBy,
17
+ sortDir,
18
+ page,
19
+ limit,
20
+ ],
21
+ queryFn: async () => {
22
+ const q = new URLSearchParams();
23
+ if (search)
24
+ q.set('search', search);
25
+ if (tier.length)
26
+ q.set('tier', tier.join(','));
27
+ if (paymentStatus.length)
28
+ q.set('paymentStatus', paymentStatus.join(','));
29
+ if (paidOnly)
30
+ q.set('paid', 'true');
31
+ if (hasSubscription === true)
32
+ q.set('hasSubscription', 'true');
33
+ if (hasSubscription === false)
34
+ q.set('hasSubscription', 'false');
35
+ if (minBalance !== null && Number.isFinite(minBalance))
36
+ q.set('minBalance', String(minBalance));
37
+ if (maxBalance !== null && Number.isFinite(maxBalance))
38
+ q.set('maxBalance', String(maxBalance));
39
+ q.set('sortBy', sortBy);
40
+ q.set('sortDir', sortDir);
41
+ q.set('page', String(page));
42
+ q.set('limit', String(limit));
43
+ const response = await backendApi.get(`/admin/api/accounts?${q.toString()}`);
44
+ if (response.error)
45
+ throw new Error(response.error.message);
46
+ return response.data;
47
+ },
48
+ staleTime: 15_000,
49
+ placeholderData: (prev) => prev,
50
+ });
51
+ }
52
+ export function useAdminAccountUsers(accountId) {
53
+ return useQuery({
54
+ queryKey: ['admin', 'accounts', accountId, 'users'],
55
+ enabled: !!accountId,
56
+ queryFn: async () => {
57
+ const response = await backendApi.get(`/admin/api/accounts/${accountId}/users`);
58
+ if (response.error)
59
+ throw new Error(response.error.message);
60
+ return response.data;
61
+ },
62
+ });
63
+ }
64
+ export function useAdminGrantCredits() {
65
+ const queryClient = useQueryClient();
66
+ return useMutation({
67
+ mutationFn: async ({ accountId, amount, description, isExpiring }) => {
68
+ const response = await backendApi.post(`/admin/api/accounts/${accountId}/credits`, { amount, description, isExpiring });
69
+ if (response.error)
70
+ throw new Error(response.error.message);
71
+ return response.data;
72
+ },
73
+ onSuccess: (_data, { accountId }) => {
74
+ queryClient.invalidateQueries({ queryKey: ['admin', 'accounts'] });
75
+ queryClient.invalidateQueries({ queryKey: ['admin', 'accounts', accountId] });
76
+ },
77
+ });
78
+ }
79
+ export function useAdminDebitCredits() {
80
+ const queryClient = useQueryClient();
81
+ return useMutation({
82
+ mutationFn: async ({ accountId, amount, description }) => {
83
+ const response = await backendApi.post(`/admin/api/accounts/${accountId}/credits/debit`, { amount, description });
84
+ if (response.error)
85
+ throw new Error(response.error.message);
86
+ return response.data;
87
+ },
88
+ onSuccess: (_data, { accountId }) => {
89
+ queryClient.invalidateQueries({ queryKey: ['admin', 'accounts'] });
90
+ queryClient.invalidateQueries({ queryKey: ['admin', 'accounts', accountId] });
91
+ },
92
+ });
93
+ }
94
+ // Set an account's plan tier (e.g. activate Enterprise → unlocks SSO + SCIM).
95
+ export function useAdminSetTier() {
96
+ const queryClient = useQueryClient();
97
+ return useMutation({
98
+ mutationFn: async ({ accountId, tier }) => {
99
+ const response = await backendApi.post(`/admin/api/accounts/${accountId}/tier`, { tier });
100
+ if (response.error)
101
+ throw new Error(response.error.message);
102
+ return response.data;
103
+ },
104
+ onSuccess: (_data, { accountId }) => {
105
+ queryClient.invalidateQueries({ queryKey: ['admin', 'accounts'] });
106
+ queryClient.invalidateQueries({ queryKey: ['admin', 'accounts', accountId] });
107
+ },
108
+ });
109
+ }
110
+ export function useAdminAccountLedger(accountId, limit = 50) {
111
+ return useQuery({
112
+ queryKey: ['admin', 'accounts', accountId, 'ledger', limit],
113
+ enabled: !!accountId,
114
+ queryFn: async () => {
115
+ const response = await backendApi.get(`/admin/api/accounts/${accountId}/ledger?limit=${limit}`);
116
+ if (response.error)
117
+ throw new Error(response.error.message);
118
+ return response.data;
119
+ },
120
+ });
121
+ }
122
+ export function useAdminAccountProjects(accountId) {
123
+ return useQuery({
124
+ queryKey: ['admin', 'accounts', accountId, 'projects'],
125
+ enabled: !!accountId,
126
+ queryFn: async () => {
127
+ const response = await backendApi.get(`/admin/api/accounts/${accountId}/projects`);
128
+ if (response.error)
129
+ throw new Error(response.error.message);
130
+ return response.data;
131
+ },
132
+ });
133
+ }
134
+ export function useAdminAccountSandboxes(accountId) {
135
+ return useQuery({
136
+ queryKey: ['admin', 'accounts', accountId, 'sandboxes'],
137
+ enabled: !!accountId,
138
+ queryFn: async () => {
139
+ const response = await backendApi.get(`/admin/api/accounts/${accountId}/sandboxes`);
140
+ if (response.error)
141
+ throw new Error(response.error.message);
142
+ return response.data;
143
+ },
144
+ });
145
+ }
146
+ //# sourceMappingURL=use-admin-accounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-admin-accounts.js","sourceRoot":"","sources":["../../src/react/use-admin-accounts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,332 @@
1
+ export type AnalyticsSource = 'vercel' | 'ga';
2
+ export interface AnalyticsSummary {
3
+ total_users: number;
4
+ total_threads: number;
5
+ active_users_week: number;
6
+ new_signups_today: number;
7
+ new_signups_week: number;
8
+ conversion_rate_week: number;
9
+ avg_threads_per_user: number;
10
+ }
11
+ export interface ThreadAnalytics {
12
+ thread_id: string;
13
+ project_id?: string | null;
14
+ project_name?: string | null;
15
+ project_category?: string | null;
16
+ account_id: string;
17
+ user_email?: string | null;
18
+ message_count: number;
19
+ user_message_count: number;
20
+ first_user_message?: string | null;
21
+ first_message_summary?: string | null;
22
+ created_at: string;
23
+ updated_at: string;
24
+ is_public: boolean;
25
+ }
26
+ export interface RetentionData {
27
+ user_id: string;
28
+ email?: string | null;
29
+ first_activity: string;
30
+ last_activity: string;
31
+ total_threads: number;
32
+ weeks_active: number;
33
+ is_recurring: boolean;
34
+ }
35
+ export interface MessageDistribution {
36
+ distribution: {
37
+ '0_messages': number;
38
+ '1_message': number;
39
+ '2_3_messages': number;
40
+ '5_plus_messages': number;
41
+ };
42
+ total_threads: number;
43
+ }
44
+ export interface CategoryDistribution {
45
+ distribution: Record<string, number>;
46
+ total_projects: number;
47
+ date: string;
48
+ }
49
+ export interface TierDistribution {
50
+ distribution: Record<string, number>;
51
+ total_threads: number;
52
+ date: string;
53
+ }
54
+ export interface VisitorStats {
55
+ total_visitors: number;
56
+ unique_visitors: number;
57
+ pageviews: number;
58
+ date: string;
59
+ }
60
+ export interface ConversionFunnel {
61
+ visitors: number;
62
+ signups: number;
63
+ subscriptions: number;
64
+ web_subscriber_emails: string[];
65
+ app_subscriber_emails: string[];
66
+ visitor_to_signup_rate: number;
67
+ signup_to_subscription_rate: number;
68
+ overall_conversion_rate: number;
69
+ date: string;
70
+ }
71
+ export interface TranslationResponse {
72
+ original: string;
73
+ translated: string;
74
+ target_language: string;
75
+ }
76
+ interface PaginationMeta {
77
+ current_page: number;
78
+ page_size: number;
79
+ total_items: number;
80
+ total_pages: number;
81
+ has_next: boolean;
82
+ has_previous: boolean;
83
+ }
84
+ interface PaginatedResponse<T> {
85
+ data: T[];
86
+ pagination: PaginationMeta;
87
+ }
88
+ export interface ThreadBrowseParams {
89
+ page?: number;
90
+ page_size?: number;
91
+ min_messages?: number;
92
+ max_messages?: number;
93
+ search_email?: string;
94
+ category?: string;
95
+ tier?: string;
96
+ date_from?: string;
97
+ date_to?: string;
98
+ sort_by?: string;
99
+ sort_order?: 'asc' | 'desc';
100
+ }
101
+ export interface RetentionParams {
102
+ page?: number;
103
+ page_size?: number;
104
+ weeks_back?: number;
105
+ min_weeks_active?: number;
106
+ }
107
+ export declare function useAnalyticsSummary(): import("@tanstack/react-query").UseQueryResult<NoInfer<AnalyticsSummary>, Error>;
108
+ export declare function useThreadBrowser(params?: ThreadBrowseParams): import("@tanstack/react-query").UseQueryResult<NoInfer<PaginatedResponse<ThreadAnalytics>>, Error>;
109
+ export declare function useMessageDistribution(dateFrom?: string, dateTo?: string, enabled?: boolean): import("@tanstack/react-query").UseQueryResult<NoInfer<MessageDistribution>, Error>;
110
+ export declare function useCategoryDistribution(dateFrom?: string, dateTo?: string, tier?: string | null, enabled?: boolean): import("@tanstack/react-query").UseQueryResult<NoInfer<CategoryDistribution>, Error>;
111
+ export declare function useTierDistribution(dateFrom?: string, dateTo?: string, enabled?: boolean): import("@tanstack/react-query").UseQueryResult<NoInfer<TierDistribution>, Error>;
112
+ export declare function useVisitorStats(date?: string, source?: AnalyticsSource): import("@tanstack/react-query").UseQueryResult<NoInfer<VisitorStats>, Error>;
113
+ export declare function useConversionFunnel(dateFrom?: string, dateTo?: string, source?: AnalyticsSource): import("@tanstack/react-query").UseQueryResult<NoInfer<ConversionFunnel>, Error>;
114
+ export declare function useRetentionData(params?: RetentionParams): import("@tanstack/react-query").UseQueryResult<NoInfer<PaginatedResponse<RetentionData>>, Error>;
115
+ export declare function useTranslate(): import("@tanstack/react-query").UseMutationResult<TranslationResponse, Error, {
116
+ text: string;
117
+ targetLanguage?: string;
118
+ }, unknown>;
119
+ export interface FieldOverrides {
120
+ views?: boolean;
121
+ signups?: boolean;
122
+ new_paid?: boolean;
123
+ churn?: boolean;
124
+ subscribers?: boolean;
125
+ mrr?: boolean;
126
+ arr?: boolean;
127
+ }
128
+ export type Platform = 'web' | 'app';
129
+ export interface WeeklyActualData {
130
+ week_number: number;
131
+ week_start_date: string;
132
+ platform: Platform;
133
+ views: number;
134
+ signups: number;
135
+ new_paid: number;
136
+ churn: number;
137
+ subscribers: number;
138
+ mrr: number;
139
+ arr: number;
140
+ overrides?: FieldOverrides;
141
+ }
142
+ export interface WeeklyActualsResponse {
143
+ actuals: Record<string, WeeklyActualData>;
144
+ }
145
+ export declare function useARRWeeklyActuals(): import("@tanstack/react-query").UseQueryResult<NoInfer<WeeklyActualsResponse>, Error>;
146
+ export declare function useUpdateARRWeeklyActual(): import("@tanstack/react-query").UseMutationResult<WeeklyActualData, Error, WeeklyActualData, unknown>;
147
+ export interface DeleteWeeklyActualParams {
148
+ weekNumber: number;
149
+ platform: Platform;
150
+ }
151
+ export declare function useDeleteARRWeeklyActual(): import("@tanstack/react-query").UseMutationResult<{
152
+ message: string;
153
+ }, Error, DeleteWeeklyActualParams, unknown>;
154
+ export interface ToggleOverrideParams {
155
+ weekNumber: number;
156
+ platform: Platform;
157
+ field: keyof FieldOverrides;
158
+ override: boolean;
159
+ }
160
+ export declare function useToggleFieldOverride(): import("@tanstack/react-query").UseMutationResult<{
161
+ message: string;
162
+ }, Error, ToggleOverrideParams, unknown>;
163
+ export interface SimulatorConfigData {
164
+ starting_subs: number;
165
+ starting_mrr: number;
166
+ weekly_visitors: number;
167
+ landing_conversion: number;
168
+ signup_to_paid: number;
169
+ arpu: number;
170
+ monthly_churn: number;
171
+ visitor_growth: number;
172
+ target_arr: number;
173
+ }
174
+ export declare function useARRSimulatorConfig(): import("@tanstack/react-query").UseQueryResult<NoInfer<SimulatorConfigData>, Error>;
175
+ export declare function useUpdateARRSimulatorConfig(): import("@tanstack/react-query").UseMutationResult<SimulatorConfigData, Error, SimulatorConfigData, unknown>;
176
+ export interface SignupsByDateResponse {
177
+ date_from: string;
178
+ date_to: string;
179
+ signups_by_date: Record<string, number>;
180
+ total: number;
181
+ }
182
+ export declare function useSignupsByDate(dateFrom: string, dateTo: string): import("@tanstack/react-query").UseQueryResult<NoInfer<SignupsByDateResponse>, Error>;
183
+ export interface ViewsByDateResponse {
184
+ date_from: string;
185
+ date_to: string;
186
+ views_by_date: Record<string, number>;
187
+ total: number;
188
+ }
189
+ export declare function useViewsByDate(dateFrom: string, dateTo: string, source?: AnalyticsSource): import("@tanstack/react-query").UseQueryResult<NoInfer<ViewsByDateResponse>, Error>;
190
+ export interface NewPaidByDateResponse {
191
+ date_from: string;
192
+ date_to: string;
193
+ new_paid_by_date: Record<string, number>;
194
+ total: number;
195
+ }
196
+ export declare function useNewPaidByDate(dateFrom: string, dateTo: string): import("@tanstack/react-query").UseQueryResult<NoInfer<NewPaidByDateResponse>, Error>;
197
+ export interface ChurnByDateResponse {
198
+ date_from: string;
199
+ date_to: string;
200
+ churn_by_date: Record<string, number>;
201
+ total: number;
202
+ }
203
+ export declare function useChurnByDate(dateFrom: string, dateTo: string): import("@tanstack/react-query").UseQueryResult<NoInfer<ChurnByDateResponse>, Error>;
204
+ export interface MonthlyActualData {
205
+ month_index: number;
206
+ month_name: string;
207
+ platform: Platform;
208
+ views: number;
209
+ signups: number;
210
+ new_paid: number;
211
+ churn: number;
212
+ subscribers: number;
213
+ mrr: number;
214
+ arr: number;
215
+ overrides?: FieldOverrides;
216
+ }
217
+ export interface MonthlyActualsResponse {
218
+ actuals: Record<string, MonthlyActualData>;
219
+ }
220
+ export declare function useARRMonthlyActuals(): import("@tanstack/react-query").UseQueryResult<NoInfer<MonthlyActualsResponse>, Error>;
221
+ export declare function useUpdateARRMonthlyActual(): import("@tanstack/react-query").UseMutationResult<MonthlyActualData, Error, MonthlyActualData, unknown>;
222
+ export interface DeleteMonthlyActualParams {
223
+ monthIndex: number;
224
+ platform: Platform;
225
+ }
226
+ export declare function useDeleteARRMonthlyActual(): import("@tanstack/react-query").UseMutationResult<{
227
+ message: string;
228
+ }, Error, DeleteMonthlyActualParams, unknown>;
229
+ export interface ToggleMonthlyOverrideParams {
230
+ monthIndex: number;
231
+ platform: Platform;
232
+ field: keyof FieldOverrides;
233
+ override: boolean;
234
+ }
235
+ export declare function useToggleMonthlyFieldOverride(): import("@tanstack/react-query").UseMutationResult<{
236
+ message: string;
237
+ }, Error, ToggleMonthlyOverrideParams, unknown>;
238
+ export interface RevenueSummary {
239
+ mrr: number;
240
+ arr: number;
241
+ total_paid_subscribers: number;
242
+ subscribers_by_tier: Record<string, number>;
243
+ arpu: number;
244
+ mrr_change_percent: number | null;
245
+ new_paid_this_month: number;
246
+ churned_this_month: number;
247
+ }
248
+ export interface EngagementSummary {
249
+ dau: number;
250
+ wau: number;
251
+ mau: number;
252
+ dau_mau_ratio: number;
253
+ avg_threads_per_active_user: number;
254
+ total_threads_today: number;
255
+ total_threads_week: number;
256
+ retention_d1: number | null;
257
+ retention_d7: number | null;
258
+ retention_d30: number | null;
259
+ }
260
+ export interface TaskPerformance {
261
+ total_runs: number;
262
+ completed_runs: number;
263
+ failed_runs: number;
264
+ stopped_runs: number;
265
+ running_runs: number;
266
+ pending_runs: number;
267
+ success_rate: number;
268
+ avg_duration_seconds: number | null;
269
+ avg_duration_with_stuck_seconds: number | null;
270
+ stuck_task_count: number;
271
+ runs_by_status: Record<string, number>;
272
+ }
273
+ export interface ToolUsage {
274
+ tool_name: string;
275
+ usage_count: number;
276
+ unique_threads: number;
277
+ percentage_of_threads: number;
278
+ }
279
+ export interface ToolAdoptionSummary {
280
+ total_tool_calls: number;
281
+ total_threads_with_tools: number;
282
+ top_tools: ToolUsage[];
283
+ tool_adoption_rate: number;
284
+ }
285
+ export declare function useRevenueSummary(): import("@tanstack/react-query").UseQueryResult<NoInfer<RevenueSummary>, Error>;
286
+ export declare function useEngagementSummary(dateFrom?: string, dateTo?: string): import("@tanstack/react-query").UseQueryResult<NoInfer<EngagementSummary>, Error>;
287
+ export declare function useTaskPerformance(dateFrom?: string, dateTo?: string): import("@tanstack/react-query").UseQueryResult<NoInfer<TaskPerformance>, Error>;
288
+ export declare function useToolAdoption(date?: string): import("@tanstack/react-query").UseQueryResult<NoInfer<ToolAdoptionSummary>, Error>;
289
+ export interface TierProfitability {
290
+ tier: string;
291
+ display_name: string;
292
+ provider: 'stripe' | 'revenuecat';
293
+ payment_count: number;
294
+ unique_users: number;
295
+ usage_users: number;
296
+ total_revenue: number;
297
+ total_cost: number;
298
+ total_actual_cost: number;
299
+ gross_profit: number;
300
+ gross_margin_percent: number;
301
+ avg_cost_per_user: number;
302
+ avg_revenue_per_user: number;
303
+ avg_profit_per_user: number;
304
+ }
305
+ export interface ProfitabilitySummary {
306
+ total_revenue: number;
307
+ total_cost: number;
308
+ total_actual_cost: number;
309
+ gross_profit: number;
310
+ gross_margin_percent: number;
311
+ by_tier: TierProfitability[];
312
+ web_revenue: number;
313
+ web_cost: number;
314
+ web_profit: number;
315
+ app_revenue: number;
316
+ app_cost: number;
317
+ app_profit: number;
318
+ avg_revenue_per_paid_user: number;
319
+ avg_cost_per_active_user: number;
320
+ unique_paying_users: number;
321
+ unique_active_users: number;
322
+ paying_user_emails: string[];
323
+ total_active_subscriptions: number;
324
+ stripe_active_subscriptions: number;
325
+ revenuecat_active_subscriptions: number;
326
+ period_start: string;
327
+ period_end: string;
328
+ total_payments: number;
329
+ }
330
+ export declare function useProfitability(dateFrom?: string, dateTo?: string): import("@tanstack/react-query").UseQueryResult<NoInfer<ProfitabilitySummary>, Error>;
331
+ export {};
332
+ //# sourceMappingURL=use-admin-analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-admin-analytics.d.ts","sourceRoot":"","sources":["../../src/react/use-admin-analytics.ts"],"names":[],"mappings":"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"}