@nordsym/apiclaw 1.3.6 → 1.3.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 (214) hide show
  1. package/README.md +422 -169
  2. package/convex/_generated/api.d.ts +16 -0
  3. package/convex/agents.ts +403 -0
  4. package/convex/billing.ts +651 -216
  5. package/convex/crons.ts +17 -0
  6. package/convex/directCall.ts +80 -0
  7. package/convex/earnProgress.ts +753 -0
  8. package/convex/email.ts +135 -82
  9. package/convex/feedback.ts +265 -0
  10. package/convex/http.ts +80 -4
  11. package/convex/logs.ts +304 -0
  12. package/convex/providerKeys.ts +289 -0
  13. package/convex/providers.ts +18 -0
  14. package/convex/schema.ts +185 -1
  15. package/convex/stripeActions.ts +512 -0
  16. package/convex/webhooks.ts +494 -0
  17. package/convex/workspaces.ts +158 -3
  18. package/dist/adapters/base.d.ts +112 -0
  19. package/dist/adapters/base.d.ts.map +1 -0
  20. package/dist/adapters/base.js +247 -0
  21. package/dist/adapters/base.js.map +1 -0
  22. package/dist/adapters/claude-desktop.d.ts +12 -0
  23. package/dist/adapters/claude-desktop.d.ts.map +1 -0
  24. package/dist/adapters/claude-desktop.js +36 -0
  25. package/dist/adapters/claude-desktop.js.map +1 -0
  26. package/dist/adapters/cline.d.ts +20 -0
  27. package/dist/adapters/cline.d.ts.map +1 -0
  28. package/dist/adapters/cline.js +77 -0
  29. package/dist/adapters/cline.js.map +1 -0
  30. package/dist/adapters/continue.d.ts +26 -0
  31. package/dist/adapters/continue.d.ts.map +1 -0
  32. package/dist/adapters/continue.js +68 -0
  33. package/dist/adapters/continue.js.map +1 -0
  34. package/dist/adapters/cursor.d.ts +12 -0
  35. package/dist/adapters/cursor.d.ts.map +1 -0
  36. package/dist/adapters/cursor.js +38 -0
  37. package/dist/adapters/cursor.js.map +1 -0
  38. package/dist/adapters/custom.d.ts +47 -0
  39. package/dist/adapters/custom.d.ts.map +1 -0
  40. package/dist/adapters/custom.js +146 -0
  41. package/dist/adapters/custom.js.map +1 -0
  42. package/dist/adapters/detect.d.ts +69 -0
  43. package/dist/adapters/detect.d.ts.map +1 -0
  44. package/dist/adapters/detect.js +158 -0
  45. package/dist/adapters/detect.js.map +1 -0
  46. package/dist/adapters/index.d.ts +21 -0
  47. package/dist/adapters/index.d.ts.map +1 -0
  48. package/dist/adapters/index.js +23 -0
  49. package/dist/adapters/index.js.map +1 -0
  50. package/dist/adapters/windsurf.d.ts +12 -0
  51. package/dist/adapters/windsurf.d.ts.map +1 -0
  52. package/dist/adapters/windsurf.js +39 -0
  53. package/dist/adapters/windsurf.js.map +1 -0
  54. package/dist/bin.d.ts +9 -0
  55. package/dist/bin.d.ts.map +1 -0
  56. package/dist/bin.js +19 -0
  57. package/dist/bin.js.map +1 -0
  58. package/dist/cli/commands/doctor.d.ts +34 -0
  59. package/dist/cli/commands/doctor.d.ts.map +1 -0
  60. package/dist/cli/commands/doctor.js +312 -0
  61. package/dist/cli/commands/doctor.js.map +1 -0
  62. package/dist/cli/commands/index.d.ts +9 -0
  63. package/dist/cli/commands/index.d.ts.map +1 -0
  64. package/dist/cli/commands/index.js +9 -0
  65. package/dist/cli/commands/index.js.map +1 -0
  66. package/dist/cli/commands/restore.d.ts +50 -0
  67. package/dist/cli/commands/restore.d.ts.map +1 -0
  68. package/dist/cli/commands/restore.js +260 -0
  69. package/dist/cli/commands/restore.js.map +1 -0
  70. package/dist/cli/commands/setup.d.ts +19 -0
  71. package/dist/cli/commands/setup.d.ts.map +1 -0
  72. package/dist/cli/commands/setup.js +206 -0
  73. package/dist/cli/commands/setup.js.map +1 -0
  74. package/dist/cli/commands/uninstall.d.ts +37 -0
  75. package/dist/cli/commands/uninstall.d.ts.map +1 -0
  76. package/dist/cli/commands/uninstall.js +189 -0
  77. package/dist/cli/commands/uninstall.js.map +1 -0
  78. package/dist/cli/index.d.ts +7 -0
  79. package/dist/cli/index.d.ts.map +1 -0
  80. package/dist/cli/index.js +97 -0
  81. package/dist/cli/index.js.map +1 -0
  82. package/dist/discovery.d.ts +6 -2
  83. package/dist/discovery.d.ts.map +1 -1
  84. package/dist/discovery.js +296 -2
  85. package/dist/discovery.js.map +1 -1
  86. package/dist/enterprise/env.d.ts +56 -0
  87. package/dist/enterprise/env.d.ts.map +1 -0
  88. package/dist/enterprise/env.js +124 -0
  89. package/dist/enterprise/env.js.map +1 -0
  90. package/dist/enterprise/index.d.ts +7 -0
  91. package/dist/enterprise/index.d.ts.map +1 -0
  92. package/dist/enterprise/index.js +7 -0
  93. package/dist/enterprise/index.js.map +1 -0
  94. package/dist/enterprise/script-generator.d.ts +32 -0
  95. package/dist/enterprise/script-generator.d.ts.map +1 -0
  96. package/dist/enterprise/script-generator.js +461 -0
  97. package/dist/enterprise/script-generator.js.map +1 -0
  98. package/dist/execute.d.ts +21 -0
  99. package/dist/execute.d.ts.map +1 -1
  100. package/dist/execute.js +231 -0
  101. package/dist/execute.js.map +1 -1
  102. package/dist/index.js +257 -7
  103. package/dist/index.js.map +1 -1
  104. package/dist/metered.d.ts +62 -0
  105. package/dist/metered.d.ts.map +1 -0
  106. package/dist/metered.js +81 -0
  107. package/dist/metered.js.map +1 -0
  108. package/dist/stripe.d.ts +62 -0
  109. package/dist/stripe.d.ts.map +1 -1
  110. package/dist/stripe.js +212 -0
  111. package/dist/stripe.js.map +1 -1
  112. package/dist/types.d.ts +29 -0
  113. package/dist/types.d.ts.map +1 -1
  114. package/dist/ui/colors.d.ts +111 -0
  115. package/dist/ui/colors.d.ts.map +1 -0
  116. package/dist/ui/colors.js +185 -0
  117. package/dist/ui/colors.js.map +1 -0
  118. package/dist/ui/errors.d.ts +69 -0
  119. package/dist/ui/errors.d.ts.map +1 -0
  120. package/dist/ui/errors.js +334 -0
  121. package/dist/ui/errors.js.map +1 -0
  122. package/dist/ui/index.d.ts +10 -0
  123. package/dist/ui/index.d.ts.map +1 -0
  124. package/dist/ui/index.js +14 -0
  125. package/dist/ui/index.js.map +1 -0
  126. package/dist/ui/prompts.d.ts +88 -0
  127. package/dist/ui/prompts.d.ts.map +1 -0
  128. package/dist/ui/prompts.js +295 -0
  129. package/dist/ui/prompts.js.map +1 -0
  130. package/dist/ui/spinner.d.ts +112 -0
  131. package/dist/ui/spinner.d.ts.map +1 -0
  132. package/dist/ui/spinner.js +229 -0
  133. package/dist/ui/spinner.js.map +1 -0
  134. package/dist/utils/backup.d.ts +48 -0
  135. package/dist/utils/backup.d.ts.map +1 -0
  136. package/dist/utils/backup.js +182 -0
  137. package/dist/utils/backup.js.map +1 -0
  138. package/dist/utils/config.d.ts +80 -0
  139. package/dist/utils/config.d.ts.map +1 -0
  140. package/dist/utils/config.js +221 -0
  141. package/dist/utils/config.js.map +1 -0
  142. package/dist/utils/os.d.ts +45 -0
  143. package/dist/utils/os.d.ts.map +1 -0
  144. package/dist/utils/os.js +106 -0
  145. package/dist/utils/os.js.map +1 -0
  146. package/dist/utils/paths.d.ts +38 -0
  147. package/dist/utils/paths.d.ts.map +1 -0
  148. package/dist/utils/paths.js +160 -0
  149. package/dist/utils/paths.js.map +1 -0
  150. package/docs/PRD-BILLING.md +226 -0
  151. package/docs/PRD-EARN-SYSTEM.md +261 -0
  152. package/docs/PRD-MCP-AUTO-SETUP.md +623 -0
  153. package/docs/PRD-final-polish.md +117 -0
  154. package/docs/PRD-mobile-responsive.md +56 -0
  155. package/docs/PRD-navigation-expansion.md +295 -0
  156. package/docs/PRD-stripe-billing.md +312 -0
  157. package/docs/PRD-workspace-cleanup.md +200 -0
  158. package/docs/enterprise-deployment.md +728 -0
  159. package/landing/next.config.mjs +14 -0
  160. package/landing/public/stats.json +4 -2
  161. package/landing/scripts/generate-stats.js +12 -0
  162. package/landing/src/app/api/billing/checkout/route.ts +109 -0
  163. package/landing/src/app/api/billing/payment-method/route.ts +118 -0
  164. package/landing/src/app/api/billing/portal/route.ts +64 -0
  165. package/landing/src/app/api/workspace-auth/magic-link/route.ts +6 -3
  166. package/landing/src/app/auth/verify/page.tsx +31 -9
  167. package/landing/src/app/docs/page.tsx +1 -1
  168. package/landing/src/app/earn/page.tsx +6 -6
  169. package/landing/src/app/join/page.tsx +49 -0
  170. package/landing/src/app/login/page.tsx +8 -2
  171. package/landing/src/app/page.tsx +81 -96
  172. package/landing/src/app/providers/dashboard/page.tsx +1 -1
  173. package/landing/src/app/providers/register/page.tsx +1 -1
  174. package/landing/src/app/workspace/page.tsx +3269 -534
  175. package/landing/src/components/CheckoutButton.tsx +188 -0
  176. package/landing/src/components/EarnCreditsTab.tsx +842 -0
  177. package/landing/src/components/Toast.tsx +84 -0
  178. package/landing/src/lib/stats.json +3 -1
  179. package/package.json +9 -2
  180. package/src/adapters/base.ts +363 -0
  181. package/src/adapters/claude-desktop.ts +41 -0
  182. package/src/adapters/cline.ts +88 -0
  183. package/src/adapters/continue.ts +91 -0
  184. package/src/adapters/cursor.ts +43 -0
  185. package/src/adapters/custom.ts +188 -0
  186. package/src/adapters/detect.ts +202 -0
  187. package/src/adapters/index.ts +47 -0
  188. package/src/adapters/windsurf.ts +44 -0
  189. package/src/bin.ts +19 -0
  190. package/src/cli/commands/doctor.ts +367 -0
  191. package/src/cli/commands/index.ts +9 -0
  192. package/src/cli/commands/restore.ts +333 -0
  193. package/src/cli/commands/setup.ts +276 -0
  194. package/src/cli/commands/uninstall.ts +240 -0
  195. package/src/cli/index.ts +107 -0
  196. package/src/discovery.ts +328 -3
  197. package/src/enterprise/env.ts +156 -0
  198. package/src/enterprise/index.ts +7 -0
  199. package/src/enterprise/script-generator.ts +481 -0
  200. package/src/execute.ts +256 -0
  201. package/src/index.ts +290 -7
  202. package/src/metered.ts +149 -0
  203. package/src/stripe.ts +253 -0
  204. package/src/types.ts +32 -0
  205. package/src/ui/colors.ts +219 -0
  206. package/src/ui/errors.ts +394 -0
  207. package/src/ui/index.ts +17 -0
  208. package/src/ui/prompts.ts +390 -0
  209. package/src/ui/spinner.ts +325 -0
  210. package/src/utils/backup.ts +224 -0
  211. package/src/utils/config.ts +315 -0
  212. package/src/utils/os.ts +124 -0
  213. package/src/utils/paths.ts +203 -0
  214. package/landing/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,203 @@
1
+ /**
2
+ * Config Path Resolver
3
+ * Resolves config file paths for all MCP clients across all operating systems
4
+ */
5
+
6
+ import { join } from 'path';
7
+ import { detectOS, getHomeDir, getAppDataDir, getUserProfileDir, Platform } from './os.js';
8
+
9
+ export type MCPClient =
10
+ | 'claude-desktop'
11
+ | 'cursor'
12
+ | 'windsurf'
13
+ | 'cline'
14
+ | 'continue';
15
+
16
+ export interface ClientPathConfig {
17
+ name: string;
18
+ displayName: string;
19
+ configPath: string;
20
+ configDir: string;
21
+ configFile: string;
22
+ }
23
+
24
+ /**
25
+ * Get config path for Claude Desktop
26
+ */
27
+ function getClaudeDesktopPath(os: Platform): string {
28
+ const home = getHomeDir();
29
+ const appData = getAppDataDir();
30
+
31
+ switch (os) {
32
+ case 'mac':
33
+ return join(appData, 'Claude', 'claude_desktop_config.json');
34
+ case 'win':
35
+ return join(appData, 'Claude', 'claude_desktop_config.json');
36
+ case 'linux':
37
+ return join(home, '.config', 'Claude', 'claude_desktop_config.json');
38
+ }
39
+ }
40
+
41
+ /**
42
+ * Get config path for Cursor
43
+ */
44
+ function getCursorPath(os: Platform): string {
45
+ const home = getHomeDir();
46
+ const appData = getAppDataDir();
47
+
48
+ switch (os) {
49
+ case 'mac':
50
+ return join(appData, 'Cursor', 'User', 'globalStorage', 'cursor.mcp', 'config.json');
51
+ case 'win':
52
+ return join(appData, 'Cursor', 'User', 'globalStorage', 'cursor.mcp', 'config.json');
53
+ case 'linux':
54
+ return join(home, '.config', 'Cursor', 'User', 'globalStorage', 'cursor.mcp', 'config.json');
55
+ }
56
+ }
57
+
58
+ /**
59
+ * Get config path for Windsurf
60
+ */
61
+ function getWindsurfPath(os: Platform): string {
62
+ const home = getHomeDir();
63
+ const userProfile = getUserProfileDir();
64
+
65
+ switch (os) {
66
+ case 'mac':
67
+ case 'linux':
68
+ return join(home, '.codeium', 'windsurf', 'mcp_config.json');
69
+ case 'win':
70
+ return join(userProfile, '.codeium', 'windsurf', 'mcp_config.json');
71
+ }
72
+ }
73
+
74
+ /**
75
+ * Get config path for Cline (VS Code extension)
76
+ */
77
+ function getClinePath(os: Platform): string {
78
+ const home = getHomeDir();
79
+ const appData = getAppDataDir();
80
+
81
+ const relativePath = join(
82
+ 'Code', 'User', 'globalStorage',
83
+ 'saoudrizwan.claude-dev', 'settings',
84
+ 'cline_mcp_settings.json'
85
+ );
86
+
87
+ switch (os) {
88
+ case 'mac':
89
+ return join(appData, relativePath);
90
+ case 'win':
91
+ return join(appData, relativePath);
92
+ case 'linux':
93
+ return join(home, '.config', relativePath);
94
+ }
95
+ }
96
+
97
+ /**
98
+ * Get config path for Continue
99
+ */
100
+ function getContinuePath(os: Platform): string {
101
+ const home = getHomeDir();
102
+ const userProfile = getUserProfileDir();
103
+
104
+ switch (os) {
105
+ case 'mac':
106
+ case 'linux':
107
+ return join(home, '.continue', 'config.json');
108
+ case 'win':
109
+ return join(userProfile, '.continue', 'config.json');
110
+ }
111
+ }
112
+
113
+ /**
114
+ * Get the config path for a specific MCP client
115
+ */
116
+ export function getConfigPath(client: MCPClient, os?: Platform): string {
117
+ const currentOS = os || detectOS();
118
+
119
+ switch (client) {
120
+ case 'claude-desktop':
121
+ return getClaudeDesktopPath(currentOS);
122
+ case 'cursor':
123
+ return getCursorPath(currentOS);
124
+ case 'windsurf':
125
+ return getWindsurfPath(currentOS);
126
+ case 'cline':
127
+ return getClinePath(currentOS);
128
+ case 'continue':
129
+ return getContinuePath(currentOS);
130
+ }
131
+ }
132
+
133
+ /**
134
+ * Get full client configuration info
135
+ */
136
+ export function getClientConfig(client: MCPClient, os?: Platform): ClientPathConfig {
137
+ const configPath = getConfigPath(client, os);
138
+ const pathParts = configPath.split(/[/\\]/);
139
+ const configFile = pathParts.pop() || '';
140
+ const configDir = pathParts.join('/');
141
+
142
+ const displayNames: Record<MCPClient, string> = {
143
+ 'claude-desktop': 'Claude Desktop',
144
+ 'cursor': 'Cursor',
145
+ 'windsurf': 'Windsurf',
146
+ 'cline': 'Cline',
147
+ 'continue': 'Continue',
148
+ };
149
+
150
+ return {
151
+ name: client,
152
+ displayName: displayNames[client],
153
+ configPath,
154
+ configDir,
155
+ configFile,
156
+ };
157
+ }
158
+
159
+ /**
160
+ * Get all supported MCP clients
161
+ */
162
+ export function getAllClients(): MCPClient[] {
163
+ return ['claude-desktop', 'cursor', 'windsurf', 'cline', 'continue'];
164
+ }
165
+
166
+ /**
167
+ * Get config paths for all clients
168
+ */
169
+ export function getAllConfigPaths(os?: Platform): Map<MCPClient, ClientPathConfig> {
170
+ const paths = new Map<MCPClient, ClientPathConfig>();
171
+
172
+ for (const client of getAllClients()) {
173
+ paths.set(client, getClientConfig(client, os));
174
+ }
175
+
176
+ return paths;
177
+ }
178
+
179
+ /**
180
+ * Validate that a client name is valid
181
+ */
182
+ export function isValidClient(client: string): client is MCPClient {
183
+ return getAllClients().includes(client as MCPClient);
184
+ }
185
+
186
+ /**
187
+ * Parse client argument (accepts various formats)
188
+ */
189
+ export function parseClientArg(arg: string): MCPClient | null {
190
+ const normalized = arg.toLowerCase().replace(/[_\s]/g, '-');
191
+
192
+ const aliases: Record<string, MCPClient> = {
193
+ 'claude': 'claude-desktop',
194
+ 'claude-desktop': 'claude-desktop',
195
+ 'claudedesktop': 'claude-desktop',
196
+ 'cursor': 'cursor',
197
+ 'windsurf': 'windsurf',
198
+ 'cline': 'cline',
199
+ 'continue': 'continue',
200
+ };
201
+
202
+ return aliases[normalized] || null;
203
+ }