@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.
- package/README.md +4 -4
- package/apiclaw-README.md +12 -12
- package/convex/_generated/api.d.ts +16 -0
- package/convex/analytics.d.ts.map +1 -1
- package/convex/analytics.js.map +1 -1
- package/convex/analytics.ts +1 -0
- package/convex/apiKeys.ts +220 -0
- package/convex/backfillAnalytics.d.ts.map +1 -0
- package/convex/backfillAnalytics.js.map +1 -0
- package/convex/backfillAnalytics.ts +22 -0
- package/convex/backfillSearchLogs.d.ts.map +1 -0
- package/convex/backfillSearchLogs.js.map +1 -0
- package/convex/backfillSearchLogs.ts +35 -0
- package/convex/debugFilestackLogs.d.ts.map +1 -0
- package/convex/debugFilestackLogs.js.map +1 -0
- package/convex/debugFilestackLogs.ts +16 -0
- package/convex/debugGetToken.d.ts.map +1 -0
- package/convex/debugGetToken.js.map +1 -0
- package/convex/debugGetToken.ts +18 -0
- package/convex/directCall.ts +49 -14
- package/convex/email.ts +5 -5
- package/convex/http.d.ts.map +1 -1
- package/convex/http.js.map +1 -1
- package/convex/http.ts +611 -49
- package/convex/logs.ts +26 -22
- package/convex/migrateFilestack.d.ts.map +1 -1
- package/convex/migrateFilestack.js.map +1 -1
- package/convex/migrateFilestack.ts +65 -101
- package/convex/migratePartnersProd.d.ts.map +1 -0
- package/convex/migratePartnersProd.js.map +1 -0
- package/convex/migratePartnersProd.ts +174 -0
- package/convex/migrateProviderWorkspaces.d.ts.map +1 -0
- package/convex/migrateProviderWorkspaces.js.map +1 -0
- package/convex/migrateProviderWorkspaces.ts +175 -0
- package/convex/providers.js.map +1 -1
- package/convex/providers.ts +313 -203
- package/convex/schema.ts +50 -1
- package/convex/searchLogs.d.ts.map +1 -1
- package/convex/searchLogs.js.map +1 -1
- package/convex/searchLogs.ts +11 -3
- package/convex/seedPratham.ts +1 -1
- package/convex/spendAlerts.ts +2 -2
- package/convex/stripeActions.ts +1 -1
- package/convex/updateAPIStatus.ts +2 -3
- package/convex/workspaceSettings.ts +136 -0
- package/dist/bin-http.js +0 -0
- package/dist/bin.js +0 -0
- package/dist/cli/commands/demo.js +2 -2
- package/dist/cli/commands/doctor.js +1 -1
- package/dist/cli/commands/login.js +1 -1
- package/dist/cli/commands/setup.js +2 -2
- package/dist/discovery.js +1 -1
- package/dist/execute.js +3 -3
- package/dist/index.js +13 -13
- package/dist/registry/apis.json +1 -1
- package/dist/ui/errors.js +16 -16
- package/dist/ui/prompts.js +1 -1
- package/email-templates/filestack-provider-outreach.html +1 -1
- package/email-templates/partnership-template.html +1 -1
- package/email-templates/pratham-partnership-draft.html +2 -2
- package/package.json +2 -2
- package/reports/APIClaw-Session-Report-2026-04-05.pdf +0 -0
- package/reports/session-report-2026-04-05.html +433 -0
- package/src/cli/commands/demo.ts +2 -2
- package/src/cli/commands/doctor.ts +1 -1
- package/src/cli/commands/login.ts +1 -1
- package/src/cli/commands/setup.ts +2 -2
- package/src/discovery.ts +1 -1
- package/src/execute.ts +3 -3
- package/src/index.ts +14 -14
- package/src/registry/apis.json +1 -1
- package/src/ui/errors.ts +16 -16
- package/src/ui/prompts.ts +1 -1
- package/convex/adminActivate.d.ts +0 -3
- package/convex/adminActivate.js +0 -47
- package/convex/adminStats.d.ts +0 -9
- package/convex/adminStats.js +0 -280
- package/convex/agents.d.ts +0 -84
- package/convex/agents.js +0 -809
- package/convex/analytics.d.ts +0 -5
- package/convex/analytics.js +0 -166
- package/convex/billing.d.ts +0 -88
- package/convex/billing.js +0 -655
- package/convex/capabilities.d.ts +0 -9
- package/convex/capabilities.js +0 -145
- package/convex/chains.d.ts +0 -68
- package/convex/chains.js +0 -1105
- package/convex/credits.d.ts +0 -25
- package/convex/credits.js +0 -186
- package/convex/crons.d.ts +0 -3
- package/convex/crons.js +0 -17
- package/convex/directCall.d.ts +0 -72
- package/convex/directCall.js +0 -627
- package/convex/earnProgress.d.ts +0 -58
- package/convex/earnProgress.js +0 -649
- package/convex/email.d.ts +0 -14
- package/convex/email.js +0 -300
- package/convex/feedback.d.ts +0 -7
- package/convex/feedback.js +0 -227
- package/convex/http.d.ts +0 -3
- package/convex/http.js +0 -1405
- package/convex/inbound.d.ts +0 -2
- package/convex/inbound.js +0 -32
- package/convex/logs.d.ts +0 -48
- package/convex/logs.js +0 -621
- package/convex/migrateFilestack.d.ts +0 -2
- package/convex/migrateFilestack.js +0 -113
- package/convex/migratePratham.d.ts +0 -2
- package/convex/migratePratham.js +0 -121
- package/convex/mou.d.ts +0 -6
- package/convex/mou.js +0 -82
- package/convex/providerKeys.d.ts +0 -31
- package/convex/providerKeys.js +0 -257
- package/convex/providers.d.ts +0 -35
- package/convex/providers.js +0 -922
- package/convex/purchases.d.ts +0 -7
- package/convex/purchases.js +0 -157
- package/convex/ratelimit.d.ts +0 -4
- package/convex/ratelimit.js +0 -91
- package/convex/searchLogs.d.ts +0 -13
- package/convex/searchLogs.js +0 -232
- package/convex/seedAPILayerAPIs.d.ts +0 -7
- package/convex/seedAPILayerAPIs.js +0 -177
- package/convex/seedDirectCallConfigs.d.ts +0 -2
- package/convex/seedDirectCallConfigs.js +0 -324
- package/convex/seedPratham.d.ts +0 -6
- package/convex/seedPratham.js +0 -150
- package/convex/spendAlerts.d.ts +0 -36
- package/convex/spendAlerts.js +0 -380
- package/convex/stripeActions.d.ts +0 -19
- package/convex/stripeActions.js +0 -411
- package/convex/teams.d.ts +0 -21
- package/convex/teams.js +0 -215
- package/convex/telemetry.d.ts +0 -4
- package/convex/telemetry.js +0 -74
- package/convex/updateAPIStatus.d.ts +0 -6
- package/convex/updateAPIStatus.js +0 -40
- package/convex/usage.d.ts +0 -27
- package/convex/usage.js +0 -229
- package/convex/waitlist.d.ts +0 -4
- package/convex/waitlist.js +0 -49
- package/convex/webhooks.d.ts +0 -12
- package/convex/webhooks.js +0 -410
- package/convex/workspaces.d.ts +0 -33
- 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,
|
|
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"}
|
package/convex/searchLogs.js.map
CHANGED
|
@@ -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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"}
|
package/convex/searchLogs.ts
CHANGED
|
@@ -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
|
-
|
|
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 (
|
|
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",
|
|
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;
|
package/convex/seedPratham.ts
CHANGED
|
@@ -154,7 +154,7 @@ export const seedPrathamWorkspace = mutation({
|
|
|
154
154
|
created: createdCount,
|
|
155
155
|
existing: existingCount,
|
|
156
156
|
},
|
|
157
|
-
dashboardUrl: `https://apiclaw.
|
|
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
|
},
|
package/convex/spendAlerts.ts
CHANGED
|
@@ -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.
|
|
12
|
-
const EMAIL_FROM = "APIClaw <noreply@apiclaw.
|
|
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
|
package/convex/stripeActions.ts
CHANGED
|
@@ -69,7 +69,7 @@ export const createCheckoutSession = httpAction(async (ctx, request) => {
|
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
const baseUrl = returnUrl || "https://apiclaw.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
2155
|
+
Docs: https://apiclaw.cloud
|
|
2156
2156
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2157
2157
|
`);
|
|
2158
2158
|
}
|