@nordsym/apiclaw 1.8.5 → 1.8.7

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 (145) hide show
  1. package/README.md +4 -4
  2. package/apiclaw-README.md +12 -12
  3. package/convex/_generated/api.d.ts +16 -0
  4. package/convex/analytics.d.ts.map +1 -1
  5. package/convex/analytics.js.map +1 -1
  6. package/convex/analytics.ts +1 -0
  7. package/convex/apiKeys.ts +220 -0
  8. package/convex/backfillAnalytics.d.ts.map +1 -0
  9. package/convex/backfillAnalytics.js.map +1 -0
  10. package/convex/backfillAnalytics.ts +22 -0
  11. package/convex/backfillSearchLogs.d.ts.map +1 -0
  12. package/convex/backfillSearchLogs.js.map +1 -0
  13. package/convex/backfillSearchLogs.ts +35 -0
  14. package/convex/debugFilestackLogs.d.ts.map +1 -0
  15. package/convex/debugFilestackLogs.js.map +1 -0
  16. package/convex/debugFilestackLogs.ts +16 -0
  17. package/convex/debugGetToken.d.ts.map +1 -0
  18. package/convex/debugGetToken.js.map +1 -0
  19. package/convex/debugGetToken.ts +18 -0
  20. package/convex/directCall.ts +49 -14
  21. package/convex/email.ts +5 -5
  22. package/convex/http.d.ts.map +1 -1
  23. package/convex/http.js.map +1 -1
  24. package/convex/http.ts +611 -49
  25. package/convex/logs.ts +26 -22
  26. package/convex/migrateFilestack.d.ts.map +1 -1
  27. package/convex/migrateFilestack.js.map +1 -1
  28. package/convex/migrateFilestack.ts +65 -101
  29. package/convex/migratePartnersProd.d.ts.map +1 -0
  30. package/convex/migratePartnersProd.js.map +1 -0
  31. package/convex/migratePartnersProd.ts +174 -0
  32. package/convex/migrateProviderWorkspaces.d.ts.map +1 -0
  33. package/convex/migrateProviderWorkspaces.js.map +1 -0
  34. package/convex/migrateProviderWorkspaces.ts +175 -0
  35. package/convex/providers.js.map +1 -1
  36. package/convex/providers.ts +313 -203
  37. package/convex/schema.ts +50 -1
  38. package/convex/searchLogs.d.ts.map +1 -1
  39. package/convex/searchLogs.js.map +1 -1
  40. package/convex/searchLogs.ts +11 -3
  41. package/convex/seedPratham.ts +1 -1
  42. package/convex/spendAlerts.ts +2 -2
  43. package/convex/stripeActions.ts +1 -1
  44. package/convex/updateAPIStatus.ts +2 -3
  45. package/convex/workspaceSettings.ts +136 -0
  46. package/dist/bin-http.js +0 -0
  47. package/dist/bin.js +0 -0
  48. package/dist/cli/commands/demo.js +2 -2
  49. package/dist/cli/commands/doctor.js +1 -1
  50. package/dist/cli/commands/login.js +1 -1
  51. package/dist/cli/commands/setup.js +2 -2
  52. package/dist/discovery.js +1 -1
  53. package/dist/execute.js +3 -3
  54. package/dist/index.js +13 -13
  55. package/dist/registry/apis.json +1 -1
  56. package/dist/ui/errors.js +16 -16
  57. package/dist/ui/prompts.js +1 -1
  58. package/email-templates/filestack-provider-outreach.html +1 -1
  59. package/email-templates/partnership-template.html +1 -1
  60. package/email-templates/pratham-partnership-draft.html +2 -2
  61. package/package.json +2 -2
  62. package/reports/APIClaw-Session-Report-2026-04-05.pdf +0 -0
  63. package/reports/session-report-2026-04-05.html +433 -0
  64. package/src/cli/commands/demo.ts +2 -2
  65. package/src/cli/commands/doctor.ts +1 -1
  66. package/src/cli/commands/login.ts +1 -1
  67. package/src/cli/commands/setup.ts +2 -2
  68. package/src/discovery.ts +1 -1
  69. package/src/execute.ts +3 -3
  70. package/src/index.ts +14 -14
  71. package/src/registry/apis.json +1 -1
  72. package/src/ui/errors.ts +16 -16
  73. package/src/ui/prompts.ts +1 -1
  74. package/convex/adminActivate.d.ts +0 -3
  75. package/convex/adminActivate.js +0 -47
  76. package/convex/adminStats.d.ts +0 -9
  77. package/convex/adminStats.js +0 -280
  78. package/convex/agents.d.ts +0 -84
  79. package/convex/agents.js +0 -809
  80. package/convex/analytics.d.ts +0 -5
  81. package/convex/analytics.js +0 -166
  82. package/convex/billing.d.ts +0 -88
  83. package/convex/billing.js +0 -655
  84. package/convex/capabilities.d.ts +0 -9
  85. package/convex/capabilities.js +0 -145
  86. package/convex/chains.d.ts +0 -68
  87. package/convex/chains.js +0 -1105
  88. package/convex/credits.d.ts +0 -25
  89. package/convex/credits.js +0 -186
  90. package/convex/crons.d.ts +0 -3
  91. package/convex/crons.js +0 -17
  92. package/convex/directCall.d.ts +0 -72
  93. package/convex/directCall.js +0 -627
  94. package/convex/earnProgress.d.ts +0 -58
  95. package/convex/earnProgress.js +0 -649
  96. package/convex/email.d.ts +0 -14
  97. package/convex/email.js +0 -300
  98. package/convex/feedback.d.ts +0 -7
  99. package/convex/feedback.js +0 -227
  100. package/convex/http.d.ts +0 -3
  101. package/convex/http.js +0 -1405
  102. package/convex/inbound.d.ts +0 -2
  103. package/convex/inbound.js +0 -32
  104. package/convex/logs.d.ts +0 -48
  105. package/convex/logs.js +0 -621
  106. package/convex/migrateFilestack.d.ts +0 -2
  107. package/convex/migrateFilestack.js +0 -113
  108. package/convex/migratePratham.d.ts +0 -2
  109. package/convex/migratePratham.js +0 -121
  110. package/convex/mou.d.ts +0 -6
  111. package/convex/mou.js +0 -82
  112. package/convex/providerKeys.d.ts +0 -31
  113. package/convex/providerKeys.js +0 -257
  114. package/convex/providers.d.ts +0 -35
  115. package/convex/providers.js +0 -922
  116. package/convex/purchases.d.ts +0 -7
  117. package/convex/purchases.js +0 -157
  118. package/convex/ratelimit.d.ts +0 -4
  119. package/convex/ratelimit.js +0 -91
  120. package/convex/searchLogs.d.ts +0 -13
  121. package/convex/searchLogs.js +0 -232
  122. package/convex/seedAPILayerAPIs.d.ts +0 -7
  123. package/convex/seedAPILayerAPIs.js +0 -177
  124. package/convex/seedDirectCallConfigs.d.ts +0 -2
  125. package/convex/seedDirectCallConfigs.js +0 -324
  126. package/convex/seedPratham.d.ts +0 -6
  127. package/convex/seedPratham.js +0 -150
  128. package/convex/spendAlerts.d.ts +0 -36
  129. package/convex/spendAlerts.js +0 -380
  130. package/convex/stripeActions.d.ts +0 -19
  131. package/convex/stripeActions.js +0 -411
  132. package/convex/teams.d.ts +0 -21
  133. package/convex/teams.js +0 -215
  134. package/convex/telemetry.d.ts +0 -4
  135. package/convex/telemetry.js +0 -74
  136. package/convex/updateAPIStatus.d.ts +0 -6
  137. package/convex/updateAPIStatus.js +0 -40
  138. package/convex/usage.d.ts +0 -27
  139. package/convex/usage.js +0 -229
  140. package/convex/waitlist.d.ts +0 -4
  141. package/convex/waitlist.js +0 -49
  142. package/convex/webhooks.d.ts +0 -12
  143. package/convex/webhooks.js +0 -410
  144. package/convex/workspaces.d.ts +0 -33
  145. package/convex/workspaces.js +0 -991
package/convex/schema.ts CHANGED
@@ -128,6 +128,20 @@ export default defineSchema({
128
128
  .index("by_workspaceId_date", ["workspaceId", "date"])
129
129
  .index("by_reportedToStripe", ["reportedToStripe"]),
130
130
 
131
+ // Workspace API Keys (persistent keys for programmatic access)
132
+ workspaceApiKeys: defineTable({
133
+ workspaceId: v.id("workspaces"),
134
+ key: v.string(), // "sk-claw-" + 48 random chars (hashed after creation)
135
+ keyHash: v.string(), // SHA-256 hash for lookup (key itself not stored after first show)
136
+ keyPrefix: v.string(), // "sk-claw-...last4" for display
137
+ name: v.string(), // user label ("Production", "My Agent")
138
+ lastUsedAt: v.optional(v.number()),
139
+ createdAt: v.number(),
140
+ revokedAt: v.optional(v.number()),
141
+ })
142
+ .index("by_keyHash", ["keyHash"])
143
+ .index("by_workspaceId", ["workspaceId"]),
144
+
131
145
  // Agent sessions (for MCP server authentication)
132
146
  agentSessions: defineTable({
133
147
  workspaceId: v.id("workspaces"),
@@ -248,13 +262,15 @@ export default defineSchema({
248
262
  stripeConnectId: v.optional(v.string()), // for payouts
249
263
  stripeOnboardingComplete: v.optional(v.boolean()),
250
264
  status: v.string(), // pending, approved, rejected, suspended
265
+ workspaceId: v.optional(v.id("workspaces")), // Link to unified workspace identity
251
266
  createdAt: v.number(),
252
267
  updatedAt: v.number(),
253
268
  approvedAt: v.optional(v.number()),
254
269
  })
255
270
  .index("by_email", ["email"])
256
271
  .index("by_stripeConnectId", ["stripeConnectId"])
257
- .index("by_status", ["status"]),
272
+ .index("by_status", ["status"])
273
+ .index("by_workspaceId", ["workspaceId"]),
258
274
 
259
275
  // APIs listed by providers (self-service onboarding)
260
276
  providerAPIs: defineTable({
@@ -283,6 +299,7 @@ export default defineSchema({
283
299
  // APIs listed by providers (for full dashboard)
284
300
  apis: defineTable({
285
301
  providerId: v.id("providers"),
302
+ workspaceId: v.optional(v.id("workspaces")), // Parallel workspace link
286
303
  name: v.string(),
287
304
  description: v.string(),
288
305
  category: v.string(),
@@ -304,6 +321,7 @@ export default defineSchema({
304
321
  updatedAt: v.number(),
305
322
  })
306
323
  .index("by_providerId", ["providerId"])
324
+ .index("by_workspaceId", ["workspaceId"])
307
325
  .index("by_category", ["category"])
308
326
  .index("by_status", ["status"]),
309
327
 
@@ -311,6 +329,7 @@ export default defineSchema({
311
329
  apiCalls: defineTable({
312
330
  apiId: v.id("apis"),
313
331
  providerId: v.id("providers"),
332
+ workspaceId: v.optional(v.id("workspaces")), // Parallel workspace link
314
333
  agentId: v.string(),
315
334
  endpoint: v.optional(v.string()),
316
335
  method: v.optional(v.string()),
@@ -322,6 +341,7 @@ export default defineSchema({
322
341
  })
323
342
  .index("by_apiId", ["apiId"])
324
343
  .index("by_providerId", ["providerId"])
344
+ .index("by_workspaceId", ["workspaceId"])
325
345
  .index("by_agentId", ["agentId"])
326
346
  .index("by_timestamp", ["timestamp"])
327
347
  .index("by_providerId_timestamp", ["providerId", "timestamp"]),
@@ -329,6 +349,7 @@ export default defineSchema({
329
349
  // Provider Payouts
330
350
  payouts: defineTable({
331
351
  providerId: v.id("providers"),
352
+ workspaceId: v.optional(v.id("workspaces")), // Parallel workspace link
332
353
  amountUsd: v.number(),
333
354
  status: v.string(), // pending, processing, completed, failed
334
355
  stripePayoutId: v.optional(v.string()),
@@ -338,6 +359,7 @@ export default defineSchema({
338
359
  completedAt: v.optional(v.number()),
339
360
  })
340
361
  .index("by_providerId", ["providerId"])
362
+ .index("by_workspaceId", ["workspaceId"])
341
363
  .index("by_status", ["status"]),
342
364
 
343
365
  // Magic link tokens for email auth
@@ -411,6 +433,7 @@ export default defineSchema({
411
433
  // Provider Direct Call configuration (master key, limits, pricing)
412
434
  providerDirectCall: defineTable({
413
435
  providerId: v.id("providers"),
436
+ workspaceId: v.optional(v.id("workspaces")), // Parallel workspace link
414
437
  apiId: v.optional(v.id("providerAPIs")),
415
438
  baseUrl: v.string(),
416
439
  authType: v.string(), // "bearer" | "basic" | "api_key" | "none"
@@ -429,6 +452,7 @@ export default defineSchema({
429
452
  publishedAt: v.optional(v.number()),
430
453
  })
431
454
  .index("by_providerId", ["providerId"])
455
+ .index("by_workspaceId", ["workspaceId"])
432
456
  .index("by_apiId", ["apiId"])
433
457
  .index("by_status", ["status"]),
434
458
 
@@ -466,6 +490,7 @@ export default defineSchema({
466
490
  usageLog: defineTable({
467
491
  userId: v.string(),
468
492
  providerId: v.id("providers"),
493
+ workspaceId: v.optional(v.id("workspaces")), // Parallel workspace link
469
494
  directCallId: v.id("providerDirectCall"),
470
495
  actionName: v.string(),
471
496
  timestamp: v.number(),
@@ -476,6 +501,7 @@ export default defineSchema({
476
501
  })
477
502
  .index("by_userId", ["userId"])
478
503
  .index("by_providerId", ["providerId"])
504
+ .index("by_workspaceId", ["workspaceId"])
479
505
  .index("by_directCallId", ["directCallId"])
480
506
  .index("by_timestamp", ["timestamp"])
481
507
  .index("by_userId_providerId", ["userId", "providerId"])
@@ -781,6 +807,29 @@ export default defineSchema({
781
807
  .index("by_votes", ["votes"])
782
808
  .index("by_createdAt", ["createdAt"]),
783
809
 
810
+ // ============================================
811
+ // WORKSPACE SETTINGS (Gateway routing config)
812
+ // ============================================
813
+
814
+ workspaceSettings: defineTable({
815
+ workspaceId: v.id("workspaces"),
816
+ // Routing preferences
817
+ routingMode: v.string(), // "best_price" | "highest_quality" | "fastest" | "balanced"
818
+ defaultModel: v.optional(v.string()), // e.g. "anthropic/claude-sonnet-4-6"
819
+ // Budget controls
820
+ maxPricePerMTokens: v.optional(v.float64()), // max $/million tokens, null = no limit
821
+ monthlyBudgetLimit: v.optional(v.float64()), // monthly budget in USD, null = no limit
822
+ // Provider preferences
823
+ preferredProviders: v.optional(v.array(v.string())), // e.g. ["groq", "mistral", "together"]
824
+ blockedProviders: v.optional(v.array(v.string())), // providers to never use
825
+ // Fallback
826
+ allowOpenRouterFallback: v.optional(v.boolean()), // default true
827
+ // Timestamps
828
+ createdAt: v.number(),
829
+ updatedAt: v.number(),
830
+ })
831
+ .index("by_workspaceId", ["workspaceId"]),
832
+
784
833
  // ============================================
785
834
  // MOU SIGNATURES
786
835
  // ============================================
@@ -1 +1 @@
1
- {"version":3,"file":"searchLogs.d.ts","sourceRoot":"","sources":["searchLogs.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,GAAG,KA4Bd,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,KA6BpB,CAAC;AAGH,eAAO,MAAM,SAAS,KA8CpB,CAAC;AAGH,eAAO,MAAM,aAAa,KAkDxB,CAAC;AAGH,eAAO,MAAM,QAAQ,KAyCnB,CAAC;AAGH,eAAO,MAAM,oBAAoB,KAuC/B,CAAC"}
1
+ {"version":3,"file":"searchLogs.d.ts","sourceRoot":"","sources":["searchLogs.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,GAAG,KA4Bd,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,KA6BpB,CAAC;AAGH,eAAO,MAAM,SAAS,KA8CpB,CAAC;AAGH,eAAO,MAAM,aAAa,KAkDxB,CAAC;AAGH,eAAO,MAAM,QAAQ,KAqDnB,CAAC;AAGH,eAAO,MAAM,oBAAoB,KAuC/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"searchLogs.js","sourceRoot":"","sources":["searchLogs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"searchLogs.js","sourceRoot":"","sources":["searchLogs.ts"],"names":[],"mappings":"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"}
@@ -177,17 +177,25 @@ export const getStats = query({
177
177
  hoursBack: v.optional(v.number()),
178
178
  },
179
179
  handler: async (ctx, { token, hoursBack }) => {
180
- const session = await ctx.db
180
+ // Try agentSessions first (MCP agent tokens)
181
+ let workspaceId: any = null;
182
+ const agentSession = await ctx.db
181
183
  .query("agentSessions")
182
184
  .withIndex("by_sessionToken", (q) => q.eq("sessionToken", token))
183
185
  .first();
184
- if (!session) return { totalSearches: 0, zeroResultSearches: 0, avgResponseTimeMs: 0, successRate: 0, byDay: [] };
186
+ if (agentSession) {
187
+ workspaceId = agentSession.workspaceId;
188
+ } else {
189
+ // Fall back to workspace magic-link sessions (legacy: table was renamed to workspaceMagicLinks)
190
+ // No fallback needed — agentSessions is the only session table
191
+ }
192
+ if (!workspaceId) return { totalSearches: 0, zeroResultSearches: 0, avgResponseTimeMs: 0, successRate: 0, byDay: [] };
185
193
 
186
194
  const since = hoursBack ? Date.now() - hoursBack * 60 * 60 * 1000 : 0;
187
195
 
188
196
  const logs = await ctx.db
189
197
  .query("searchLogs")
190
- .withIndex("by_workspaceId", (q) => q.eq("workspaceId", session.workspaceId))
198
+ .withIndex("by_workspaceId", (q) => q.eq("workspaceId", workspaceId))
191
199
  .collect();
192
200
 
193
201
  const filtered = since > 0 ? logs.filter((l) => l.timestamp >= since) : logs;
@@ -154,7 +154,7 @@ export const seedPrathamWorkspace = mutation({
154
154
  created: createdCount,
155
155
  existing: existingCount,
156
156
  },
157
- dashboardUrl: `https://apiclaw.nordsym.com/workspace`,
157
+ dashboardUrl: `https://apiclaw.cloud/workspace`,
158
158
  loginInstructions: "Test account using Gustav's personal email. Magic link will be sent to gustav_hemmingsson@hotmail.com",
159
159
  };
160
160
  },
@@ -8,8 +8,8 @@ import { internal } from "./_generated/api";
8
8
  // ============================================
9
9
 
10
10
  const ALERT_THRESHOLD = 0.8; // 80% of budget
11
- const APP_URL = "https://apiclaw.nordsym.com";
12
- const EMAIL_FROM = "APIClaw <noreply@apiclaw.nordsym.com>";
11
+ const APP_URL = "https://apiclaw.cloud";
12
+ const EMAIL_FROM = "APIClaw <noreply@apiclaw.cloud>";
13
13
 
14
14
  // ============================================
15
15
  // HELPER: Get current month start
@@ -69,7 +69,7 @@ export const createCheckoutSession = httpAction(async (ctx, request) => {
69
69
  });
70
70
  }
71
71
 
72
- const baseUrl = returnUrl || "https://apiclaw.nordsym.com";
72
+ const baseUrl = returnUrl || "https://apiclaw.cloud";
73
73
 
74
74
  // Create checkout session
75
75
  if (mode === "setup") {
@@ -31,11 +31,10 @@ export const update = mutation({
31
31
  newStatus = "rate_limited";
32
32
  }
33
33
 
34
- if (api.status !== newStatus || api.hasDirectCall !== hasDirectCall) {
34
+ if (api.status !== newStatus || (api as any).hasDirectCall !== hasDirectCall) {
35
35
  await ctx.db.patch(api._id, {
36
36
  status: newStatus,
37
- hasDirectCall,
38
- });
37
+ } as any);
39
38
  updated++;
40
39
  }
41
40
  }
@@ -0,0 +1,136 @@
1
+ import { mutation, query, internalQuery } from "./_generated/server";
2
+ import { v } from "convex/values";
3
+
4
+ // ============================================
5
+ // QUERIES
6
+ // ============================================
7
+
8
+ /** Get workspace settings (returns defaults if none saved) */
9
+ export const get = query({
10
+ args: { workspaceId: v.id("workspaces") },
11
+ handler: async (ctx, { workspaceId }) => {
12
+ const settings = await ctx.db
13
+ .query("workspaceSettings")
14
+ .withIndex("by_workspaceId", (q) => q.eq("workspaceId", workspaceId))
15
+ .first();
16
+
17
+ if (!settings) {
18
+ return {
19
+ workspaceId,
20
+ routingMode: "balanced",
21
+ defaultModel: null,
22
+ maxPricePerMTokens: null,
23
+ monthlyBudgetLimit: null,
24
+ preferredProviders: [],
25
+ blockedProviders: [],
26
+ allowOpenRouterFallback: true,
27
+ _isDefault: true,
28
+ };
29
+ }
30
+
31
+ return { ...settings, _isDefault: false };
32
+ },
33
+ });
34
+
35
+ /** Internal: get settings for routing (called from http actions) */
36
+ export const getForRouting = internalQuery({
37
+ args: { workspaceId: v.string() },
38
+ handler: async (ctx, { workspaceId }) => {
39
+ // Try to find settings - workspaceId comes as string from http handlers
40
+ const all = await ctx.db.query("workspaceSettings").collect();
41
+ const settings = all.find((s) => String(s.workspaceId) === workspaceId);
42
+
43
+ if (!settings) {
44
+ return {
45
+ routingMode: "balanced" as const,
46
+ defaultModel: null as string | null,
47
+ maxPricePerMTokens: null as number | null,
48
+ monthlyBudgetLimit: null as number | null,
49
+ preferredProviders: [] as string[],
50
+ blockedProviders: [] as string[],
51
+ allowOpenRouterFallback: true,
52
+ };
53
+ }
54
+
55
+ return {
56
+ routingMode: settings.routingMode,
57
+ defaultModel: settings.defaultModel ?? null,
58
+ maxPricePerMTokens: settings.maxPricePerMTokens ?? null,
59
+ monthlyBudgetLimit: settings.monthlyBudgetLimit ?? null,
60
+ preferredProviders: settings.preferredProviders ?? [],
61
+ blockedProviders: settings.blockedProviders ?? [],
62
+ allowOpenRouterFallback: settings.allowOpenRouterFallback ?? true,
63
+ };
64
+ },
65
+ });
66
+
67
+ // ============================================
68
+ // MUTATIONS
69
+ // ============================================
70
+
71
+ /** Create or update workspace settings */
72
+ export const upsert = mutation({
73
+ args: {
74
+ token: v.string(),
75
+ routingMode: v.optional(v.string()),
76
+ defaultModel: v.optional(v.string()),
77
+ maxPricePerMTokens: v.optional(v.float64()),
78
+ monthlyBudgetLimit: v.optional(v.float64()),
79
+ preferredProviders: v.optional(v.array(v.string())),
80
+ blockedProviders: v.optional(v.array(v.string())),
81
+ allowOpenRouterFallback: v.optional(v.boolean()),
82
+ },
83
+ handler: async (ctx, args) => {
84
+ // Resolve workspace from session token
85
+ const session = await ctx.db
86
+ .query("agentSessions")
87
+ .withIndex("by_sessionToken", (q) => q.eq("sessionToken", args.token))
88
+ .first();
89
+
90
+ if (!session) {
91
+ throw new Error("Invalid or expired session");
92
+ }
93
+
94
+ const workspaceId = session.workspaceId;
95
+ const now = Date.now();
96
+
97
+ // Validate routingMode
98
+ const validModes = ["best_price", "highest_quality", "fastest", "balanced"];
99
+ if (args.routingMode && !validModes.includes(args.routingMode)) {
100
+ throw new Error(`Invalid routingMode. Must be one of: ${validModes.join(", ")}`);
101
+ }
102
+
103
+ // Check if settings exist
104
+ const existing = await ctx.db
105
+ .query("workspaceSettings")
106
+ .withIndex("by_workspaceId", (q) => q.eq("workspaceId", workspaceId))
107
+ .first();
108
+
109
+ const updates: Record<string, unknown> = { updatedAt: now };
110
+ if (args.routingMode !== undefined) updates.routingMode = args.routingMode;
111
+ if (args.defaultModel !== undefined) updates.defaultModel = args.defaultModel;
112
+ if (args.maxPricePerMTokens !== undefined) updates.maxPricePerMTokens = args.maxPricePerMTokens;
113
+ if (args.monthlyBudgetLimit !== undefined) updates.monthlyBudgetLimit = args.monthlyBudgetLimit;
114
+ if (args.preferredProviders !== undefined) updates.preferredProviders = args.preferredProviders;
115
+ if (args.blockedProviders !== undefined) updates.blockedProviders = args.blockedProviders;
116
+ if (args.allowOpenRouterFallback !== undefined) updates.allowOpenRouterFallback = args.allowOpenRouterFallback;
117
+
118
+ if (existing) {
119
+ await ctx.db.patch(existing._id, updates);
120
+ return existing._id;
121
+ }
122
+
123
+ return await ctx.db.insert("workspaceSettings", {
124
+ workspaceId,
125
+ routingMode: args.routingMode || "balanced",
126
+ defaultModel: args.defaultModel,
127
+ maxPricePerMTokens: args.maxPricePerMTokens,
128
+ monthlyBudgetLimit: args.monthlyBudgetLimit,
129
+ preferredProviders: args.preferredProviders,
130
+ blockedProviders: args.blockedProviders,
131
+ allowOpenRouterFallback: args.allowOpenRouterFallback ?? true,
132
+ createdAt: now,
133
+ updatedAt: now,
134
+ });
135
+ },
136
+ });
package/dist/bin-http.js CHANGED
File without changes
package/dist/bin.js CHANGED
File without changes
@@ -46,7 +46,7 @@ async function convertCurrency() {
46
46
  console.log('');
47
47
  console.log(chalk.dim(' Powered by APIClaw Direct Call · exchangerates_data via APILayer'));
48
48
  console.log(chalk.dim(` No API key needed. Your agent can call this too.\n`));
49
- console.log(chalk.cyan(` Dashboard: https://apiclaw.nordsym.com/workspace`) + '\n');
49
+ console.log(chalk.cyan(` Dashboard: https://apiclaw.cloud/workspace`) + '\n');
50
50
  }
51
51
  export async function demoCommand() {
52
52
  console.log('');
@@ -77,7 +77,7 @@ export async function demoCommand() {
77
77
  }
78
78
  catch (err) {
79
79
  spinner.fail('Demo failed: ' + err.message);
80
- console.log(chalk.dim('\n Try again or check https://apiclaw.nordsym.com\n'));
80
+ console.log(chalk.dim('\n Try again or check https://apiclaw.cloud\n'));
81
81
  }
82
82
  }
83
83
  //# sourceMappingURL=demo.js.map
@@ -147,7 +147,7 @@ async function checkConnectivity() {
147
147
  const convexUrl = process.env.CONVEX_URL || 'https://brilliant-puffin-712.eu-west-1.convex.cloud';
148
148
  const candidates = [
149
149
  `${apiUrl}/health`,
150
- 'https://apiclaw.nordsym.com',
150
+ 'https://apiclaw.cloud',
151
151
  `${convexUrl.replace('.cloud', '.site')}/workspace/poll`,
152
152
  ];
153
153
  const failures = [];
@@ -8,7 +8,7 @@ import ora from 'ora';
8
8
  import chalk from 'chalk';
9
9
  import { writeSession, readSession, getMachineFingerprint } from '../../session.js';
10
10
  const CONVEX_URL = 'https://adventurous-avocet-799.convex.cloud';
11
- const APICLAW_URL = 'https://apiclaw.nordsym.com';
11
+ const APICLAW_URL = 'https://apiclaw.cloud';
12
12
  const POLL_INTERVAL_MS = 2000;
13
13
  const MAX_WAIT_MS = 15 * 60 * 1000; // 15 min (magic link TTL)
14
14
  /**
@@ -211,7 +211,7 @@ export async function setupCommand(options) {
211
211
  console.log('Next steps:');
212
212
  console.log(' 1. Restart your AI coding assistant');
213
213
  console.log(' 2. Ask your agent: "List available APIs"\n');
214
- console.log('Need help? https://apiclaw.nordsym.com/docs/setup\n');
214
+ console.log('Need help? https://apiclaw.cloud/docs/setup\n');
215
215
  }
216
216
  else if (skipped === results.length) {
217
217
  console.log('\n✅ APIClaw already configured in all clients.\n');
@@ -220,7 +220,7 @@ export async function setupCommand(options) {
220
220
  }
221
221
  else {
222
222
  console.log(`\n⚠️ Setup completed with ${failed} error(s).\n`);
223
- console.log('For troubleshooting, visit: https://apiclaw.nordsym.com/docs/setup/troubleshooting\n');
223
+ console.log('For troubleshooting, visit: https://apiclaw.cloud/docs/setup/troubleshooting\n');
224
224
  process.exit(1);
225
225
  }
226
226
  }
package/dist/discovery.js CHANGED
@@ -179,7 +179,7 @@ const DIRECT_CALL_SPECS = {
179
179
  { name: 'subject', required: true, desc: 'Email subject' },
180
180
  { name: 'html', required: false, desc: 'HTML body' },
181
181
  { name: 'text', required: false, desc: 'Plain text body' },
182
- { name: 'from', required: false, desc: 'Sender (default: noreply@apiclaw.nordsym.com)' },
182
+ { name: 'from', required: false, desc: 'Sender (default: noreply@apiclaw.cloud)' },
183
183
  ],
184
184
  },
185
185
  },
package/dist/execute.js CHANGED
@@ -191,7 +191,7 @@ const mockResponses = {
191
191
  send_email: (params) => ({
192
192
  id: 'mock_email_' + Date.now(),
193
193
  to: params.to,
194
- from: params.from || 'APIClaw <noreply@apiclaw.nordsym.com>',
194
+ from: params.from || 'APIClaw <noreply@apiclaw.cloud>',
195
195
  subject: params.subject,
196
196
  status: 'sent',
197
197
  }),
@@ -547,7 +547,7 @@ const handlers = {
547
547
  // Resend - Email
548
548
  resend: {
549
549
  send_email: async (params, creds) => {
550
- const { to, subject, html, text, from = 'APIClaw <noreply@apiclaw.nordsym.com>' } = params;
550
+ const { to, subject, html, text, from = 'APIClaw <noreply@apiclaw.cloud>' } = params;
551
551
  if (!to || !subject || (!html && !text)) {
552
552
  return createErrorResult('resend', 'send_email', 'Missing required params: to, subject, html or text', ERROR_CODES.INVALID_PARAMS);
553
553
  }
@@ -583,7 +583,7 @@ const handlers = {
583
583
  headers: {
584
584
  'Authorization': `Bearer ${creds.api_key}`,
585
585
  'Content-Type': 'application/json',
586
- 'HTTP-Referer': 'https://apiclaw.nordsym.com',
586
+ 'HTTP-Referer': 'https://apiclaw.cloud',
587
587
  },
588
588
  body: JSON.stringify({ model, messages, max_tokens }),
589
589
  }, { provider: 'openrouter', action: 'chat' });
package/dist/index.js CHANGED
@@ -104,10 +104,10 @@ function checkAnonymousRateLimit(fingerprint) {
104
104
  allowed: false,
105
105
  error: JSON.stringify({
106
106
  success: false,
107
- error: `⚡ You've hit your free tier limit (${ANONYMOUS_WEEKLY_LIMIT} calls/week).\n Upgrade: https://apiclaw.nordsym.com/upgrade`,
107
+ error: `⚡ You've hit your free tier limit (${ANONYMOUS_WEEKLY_LIMIT} calls/week).\n Upgrade: https://apiclaw.cloud/upgrade`,
108
108
  hint: "Register for 50 calls/week, or upgrade for unlimited",
109
109
  action: "Run: register_owner({ email: 'you@example.com' })",
110
- upgrade_url: "https://apiclaw.nordsym.com/upgrade",
110
+ upgrade_url: "https://apiclaw.cloud/upgrade",
111
111
  retry_after: getNextMonthUTC()
112
112
  }, null, 2)
113
113
  };
@@ -240,9 +240,9 @@ function checkWorkspaceAccess(providerId) {
240
240
  allowed: false,
241
241
  error: JSON.stringify({
242
242
  success: false,
243
- error: `⚡ You've hit your free tier limit (${FREE_MONTHLY_LIMIT} calls/week).\n Upgrade: https://apiclaw.nordsym.com/upgrade`,
243
+ error: `⚡ You've hit your free tier limit (${FREE_MONTHLY_LIMIT} calls/week).\n Upgrade: https://apiclaw.cloud/upgrade`,
244
244
  hint: "Upgrade to Backer for unlimited calls",
245
- upgrade_url: "https://apiclaw.nordsym.com/upgrade",
245
+ upgrade_url: "https://apiclaw.cloud/upgrade",
246
246
  retry_after: getNextMonthUTC()
247
247
  }, null, 2)
248
248
  };
@@ -250,7 +250,7 @@ function checkWorkspaceAccess(providerId) {
250
250
  // Other tiers (shouldn't happen, but handle gracefully)
251
251
  return {
252
252
  allowed: false,
253
- error: `⚡ You've hit your free tier limit (${FREE_MONTHLY_LIMIT} calls/week).\n Upgrade: https://apiclaw.nordsym.com/upgrade`
253
+ error: `⚡ You've hit your free tier limit (${FREE_MONTHLY_LIMIT} calls/week).\n Upgrade: https://apiclaw.cloud/upgrade`
254
254
  };
255
255
  }
256
256
  return { allowed: true, isAnonymous: false };
@@ -621,12 +621,12 @@ Example chain:
621
621
  success_url: {
622
622
  type: 'string',
623
623
  description: 'URL to redirect after successful setup',
624
- default: 'https://apiclaw.nordsym.com/billing/success'
624
+ default: 'https://apiclaw.cloud/billing/success'
625
625
  },
626
626
  cancel_url: {
627
627
  type: 'string',
628
628
  description: 'URL to redirect if setup is cancelled',
629
- default: 'https://apiclaw.nordsym.com/billing/cancel'
629
+ default: 'https://apiclaw.cloud/billing/cancel'
630
630
  }
631
631
  },
632
632
  required: ['email']
@@ -752,7 +752,7 @@ BROWSE:
752
752
  list_categories()
753
753
  list_all_apis({ category: "communication", limit: 20 })
754
754
 
755
- Docs: https://apiclaw.nordsym.com
755
+ Docs: https://apiclaw.cloud
756
756
  `;
757
757
  return {
758
758
  content: [{ type: 'text', text: helpText }]
@@ -1602,7 +1602,7 @@ Docs: https://apiclaw.nordsym.com
1602
1602
  fingerprint,
1603
1603
  });
1604
1604
  // Send magic link via email
1605
- const verifyUrl = `https://apiclaw.nordsym.com/auth/verify?token=${magicLinkResult.token}`;
1605
+ const verifyUrl = `https://apiclaw.cloud/auth/verify?token=${magicLinkResult.token}`;
1606
1606
  const emailResponse = await fetch('https://api.resend.com/emails', {
1607
1607
  method: 'POST',
1608
1608
  headers: {
@@ -1610,7 +1610,7 @@ Docs: https://apiclaw.nordsym.com
1610
1610
  'Content-Type': 'application/json',
1611
1611
  },
1612
1612
  body: JSON.stringify({
1613
- from: 'APIClaw <noreply@apiclaw.nordsym.com>',
1613
+ from: 'APIClaw <noreply@apiclaw.cloud>',
1614
1614
  to: email,
1615
1615
  subject: 'Verify your APIClaw workspace',
1616
1616
  html: `<p>Click to verify: <a href="${verifyUrl}">${verifyUrl}</a></p><p>Expires in 15 minutes.</p>`
@@ -1759,7 +1759,7 @@ Docs: https://apiclaw.nordsym.com
1759
1759
  fingerprint,
1760
1760
  });
1761
1761
  // TODO: Agent 2 will implement actual email sending
1762
- const verifyUrl = `https://apiclaw.nordsym.com/auth/verify?token=${magicLinkResult.token}`;
1762
+ const verifyUrl = `https://apiclaw.cloud/auth/verify?token=${magicLinkResult.token}`;
1763
1763
  return {
1764
1764
  content: [{
1765
1765
  type: 'text',
@@ -1811,7 +1811,7 @@ Docs: https://apiclaw.nordsym.com
1811
1811
  };
1812
1812
  }
1813
1813
  // Create checkout session for metered subscription
1814
- const checkoutResult = await createMeteredCheckoutSession(email, success_url || 'https://apiclaw.nordsym.com/billing/success', cancel_url || 'https://apiclaw.nordsym.com/billing/cancel');
1814
+ const checkoutResult = await createMeteredCheckoutSession(email, success_url || 'https://apiclaw.cloud/billing/success', cancel_url || 'https://apiclaw.cloud/billing/cancel');
1815
1815
  if ('error' in checkoutResult) {
1816
1816
  return {
1817
1817
  content: [{
@@ -2152,7 +2152,7 @@ Direct Call (no API key needed):
2152
2152
  Interactive CLI mode:
2153
2153
  npx @nordsym/apiclaw --cli
2154
2154
 
2155
- Docs: https://apiclaw.nordsym.com
2155
+ Docs: https://apiclaw.cloud
2156
2156
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2157
2157
  `);
2158
2158
  }