@nordsym/apiclaw 1.2.2 → 1.2.3
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/AGENTS.md +50 -33
- package/README.md +22 -12
- package/SOUL.md +60 -19
- package/STATUS.md +91 -169
- package/convex/_generated/api.d.ts +6 -0
- package/convex/directCall.ts +598 -0
- package/convex/providers.ts +341 -26
- package/convex/schema.ts +87 -0
- package/convex/usage.ts +260 -0
- package/convex/waitlist.ts +55 -0
- package/data/combined-02-26.json +22102 -0
- package/data/night-expansion-02-26-06-batch2.json +1898 -0
- package/data/night-expansion-02-26-06-batch3.json +1410 -0
- package/data/night-expansion-02-26-06.json +3146 -0
- package/data/night-expansion-02-26-full.json +9726 -0
- package/data/night-expansion-02-26-v2.json +330 -0
- package/data/night-expansion-02-26.json +171 -0
- package/dist/crypto.d.ts +7 -0
- package/dist/crypto.d.ts.map +1 -0
- package/dist/crypto.js +67 -0
- package/dist/crypto.js.map +1 -0
- package/dist/execute-dynamic.d.ts +116 -0
- package/dist/execute-dynamic.d.ts.map +1 -0
- package/dist/execute-dynamic.js +456 -0
- package/dist/execute-dynamic.js.map +1 -0
- package/dist/execute.d.ts +2 -1
- package/dist/execute.d.ts.map +1 -1
- package/dist/execute.js +35 -5
- package/dist/execute.js.map +1 -1
- package/dist/index.js +33 -4
- package/dist/index.js.map +1 -1
- package/dist/registry/apis.json +2081 -3
- package/docs/PRD-customer-key-passthrough.md +184 -0
- package/landing/public/badges/available-on-apiclaw.svg +14 -0
- package/landing/scripts/generate-stats.js +75 -4
- package/landing/src/app/admin/page.tsx +1 -1
- package/landing/src/app/api/auth/magic-link/route.ts +1 -1
- package/landing/src/app/api/auth/session/route.ts +1 -1
- package/landing/src/app/api/auth/verify/route.ts +1 -1
- package/landing/src/app/api/og/route.tsx +5 -3
- package/landing/src/app/docs/page.tsx +5 -4
- package/landing/src/app/earn/page.tsx +14 -11
- package/landing/src/app/globals.css +16 -15
- package/landing/src/app/layout.tsx +2 -2
- package/landing/src/app/page.tsx +425 -254
- package/landing/src/app/providers/dashboard/[apiId]/actions/[actionId]/edit/page.tsx +600 -0
- package/landing/src/app/providers/dashboard/[apiId]/actions/new/page.tsx +583 -0
- package/landing/src/app/providers/dashboard/[apiId]/actions/page.tsx +301 -0
- package/landing/src/app/providers/dashboard/[apiId]/direct-call/page.tsx +659 -0
- package/landing/src/app/providers/dashboard/[apiId]/page.tsx +381 -0
- package/landing/src/app/providers/dashboard/[apiId]/test/page.tsx +418 -0
- package/landing/src/app/providers/dashboard/layout.tsx +292 -0
- package/landing/src/app/providers/dashboard/page.tsx +353 -290
- package/landing/src/app/providers/register/page.tsx +87 -10
- package/landing/src/components/AiClientDropdown.tsx +85 -0
- package/landing/src/components/ConfigHelperModal.tsx +113 -0
- package/landing/src/components/HeroTabs.tsx +187 -0
- package/landing/src/components/ShareIntegrationModal.tsx +198 -0
- package/landing/src/hooks/useDashboardData.ts +53 -1
- package/landing/src/lib/apis.json +46554 -174
- package/landing/src/lib/convex-client.ts +22 -3
- package/landing/src/lib/stats.json +4 -4
- package/landing/tsconfig.tsbuildinfo +1 -1
- package/night-expansion-02-26-06-batch2.py +368 -0
- package/night-expansion-02-26-06-batch3.py +299 -0
- package/night-expansion-02-26-06.py +756 -0
- package/package.json +1 -1
- package/scripts/bulk-add-public-apis-v2.py +418 -0
- package/scripts/night-expansion-02-26-v2.py +296 -0
- package/scripts/night-expansion-02-26.py +890 -0
- package/scripts/seed-complete-api.js +181 -0
- package/scripts/seed-demo-api.sh +44 -0
- package/src/crypto.ts +75 -0
- package/src/execute-dynamic.ts +589 -0
- package/src/execute.ts +41 -5
- package/src/index.ts +38 -4
- package/src/registry/apis.json +2081 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Simple Convex HTTP client for the dashboard
|
|
2
2
|
|
|
3
|
-
const CONVEX_URL = process.env.NEXT_PUBLIC_CONVEX_URL || "https://
|
|
3
|
+
const CONVEX_URL = process.env.NEXT_PUBLIC_CONVEX_URL || "https://adventurous-avocet-799.convex.cloud";
|
|
4
4
|
|
|
5
5
|
export async function convexQuery<T>(path: string, args: Record<string, unknown>): Promise<T> {
|
|
6
6
|
const response = await fetch(`${CONVEX_URL}/api/query`, {
|
|
@@ -14,6 +14,12 @@ export async function convexQuery<T>(path: string, args: Record<string, unknown>
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
const result = await response.json();
|
|
17
|
+
|
|
18
|
+
// Convex returns HTTP 200 but status: "error" for query failures
|
|
19
|
+
if (result.status === "error") {
|
|
20
|
+
throw new Error(result.errorMessage || "Query failed");
|
|
21
|
+
}
|
|
22
|
+
|
|
17
23
|
// Convex wraps response in { status: "success", value: {...} }
|
|
18
24
|
return result.value !== undefined ? result.value : result;
|
|
19
25
|
}
|
|
@@ -30,6 +36,12 @@ export async function convexMutation<T>(path: string, args: Record<string, unkno
|
|
|
30
36
|
}
|
|
31
37
|
|
|
32
38
|
const result = await response.json();
|
|
39
|
+
|
|
40
|
+
// Convex returns HTTP 200 but status: "error" for mutation failures
|
|
41
|
+
if (result.status === "error") {
|
|
42
|
+
throw new Error(result.errorMessage || "Mutation failed");
|
|
43
|
+
}
|
|
44
|
+
|
|
33
45
|
// Convex wraps response in { status: "success", value: {...} }
|
|
34
46
|
return result.value !== undefined ? result.value : result;
|
|
35
47
|
}
|
|
@@ -54,6 +66,8 @@ export interface ProviderAPI {
|
|
|
54
66
|
pricingNotes?: string;
|
|
55
67
|
discoveryCount?: number;
|
|
56
68
|
createdAt: number;
|
|
69
|
+
hasDirectCall?: boolean;
|
|
70
|
+
directCallStatus?: string;
|
|
57
71
|
}
|
|
58
72
|
|
|
59
73
|
export interface DailyStats {
|
|
@@ -66,10 +80,14 @@ export interface Analytics {
|
|
|
66
80
|
totalCalls: number;
|
|
67
81
|
uniqueAgents: number;
|
|
68
82
|
totalRevenue: number;
|
|
83
|
+
successRate?: number;
|
|
84
|
+
avgLatency?: number;
|
|
69
85
|
callsByDay: DailyStats[];
|
|
70
86
|
topAgents: { agentId: string; calls: number }[];
|
|
71
|
-
|
|
87
|
+
topActions?: { actionName: string; calls: number }[];
|
|
88
|
+
callsByRegion?: Record<string, number>;
|
|
72
89
|
apis: { id: string; name: string; calls: number; status: string }[];
|
|
90
|
+
isPreview?: boolean;
|
|
73
91
|
}
|
|
74
92
|
|
|
75
93
|
export interface Earnings {
|
|
@@ -96,7 +114,8 @@ export async function getSession(token: string): Promise<ProviderSession | null>
|
|
|
96
114
|
|
|
97
115
|
// Get provider APIs
|
|
98
116
|
export async function getProviderAPIs(providerId: string): Promise<ProviderAPI[]> {
|
|
99
|
-
|
|
117
|
+
// Use the enhanced query that includes Direct Call status
|
|
118
|
+
return convexQuery("providers:getProviderAPIsWithStatus", { providerId });
|
|
100
119
|
}
|
|
101
120
|
|
|
102
121
|
// Get analytics
|