@nordsym/apiclaw 1.0.0 → 1.1.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 (154) hide show
  1. package/AGENTS.md +74 -0
  2. package/HEARTBEAT.md +4 -0
  3. package/IDENTITY.md +22 -0
  4. package/README.md +197 -202
  5. package/SOUL.md +36 -0
  6. package/STATUS.md +237 -0
  7. package/TOOLS.md +36 -0
  8. package/USER.md +17 -0
  9. package/{backend/convex → convex}/_generated/api.d.ts +6 -6
  10. package/convex/credits.ts +211 -0
  11. package/convex/http.ts +490 -0
  12. package/convex/providers.ts +516 -0
  13. package/convex/purchases.ts +183 -0
  14. package/convex/schema.ts +180 -0
  15. package/convex.json +3 -0
  16. package/dist/credentials.d.ts +19 -0
  17. package/dist/credentials.d.ts.map +1 -0
  18. package/dist/credentials.js +158 -0
  19. package/dist/credentials.js.map +1 -0
  20. package/dist/credits.d.ts +14 -11
  21. package/dist/credits.d.ts.map +1 -1
  22. package/dist/credits.js +151 -99
  23. package/dist/credits.js.map +1 -1
  24. package/dist/discovery.d.ts +7 -16
  25. package/dist/discovery.d.ts.map +1 -1
  26. package/dist/discovery.js +33 -40
  27. package/dist/discovery.js.map +1 -1
  28. package/dist/execute.d.ts +19 -0
  29. package/dist/execute.d.ts.map +1 -0
  30. package/dist/execute.js +285 -0
  31. package/dist/execute.js.map +1 -0
  32. package/dist/index.js +106 -30
  33. package/dist/index.js.map +1 -1
  34. package/dist/proxy.d.ts +6 -0
  35. package/dist/proxy.d.ts.map +1 -0
  36. package/dist/proxy.js +19 -0
  37. package/dist/proxy.js.map +1 -0
  38. package/dist/registry/apis.json +95362 -202
  39. package/dist/registry/apis_expanded.json +100853 -0
  40. package/dist/stripe.d.ts +68 -0
  41. package/dist/stripe.d.ts.map +1 -0
  42. package/dist/stripe.js +196 -0
  43. package/dist/stripe.js.map +1 -0
  44. package/dist/test.d.ts +3 -2
  45. package/dist/test.d.ts.map +1 -1
  46. package/dist/test.js +105 -75
  47. package/dist/test.js.map +1 -1
  48. package/dist/types.d.ts +0 -28
  49. package/dist/types.d.ts.map +1 -1
  50. package/dist/webhook.d.ts +2 -0
  51. package/dist/webhook.d.ts.map +1 -0
  52. package/dist/webhook.js +90 -0
  53. package/dist/webhook.js.map +1 -0
  54. package/landing/DESIGN.md +343 -0
  55. package/landing/package-lock.json +1190 -40
  56. package/landing/package.json +5 -2
  57. package/landing/public/android-chrome-192x192.png +0 -0
  58. package/landing/public/android-chrome-512x512.png +0 -0
  59. package/landing/public/apple-touch-icon.png +0 -0
  60. package/landing/public/demo.gif +0 -0
  61. package/landing/public/demo.mp4 +0 -0
  62. package/landing/public/favicon-16x16.png +0 -0
  63. package/landing/public/favicon-32x32.png +0 -0
  64. package/landing/public/favicon.ico +0 -0
  65. package/landing/public/favicon.svg +3 -0
  66. package/landing/public/icon.svg +47 -0
  67. package/landing/public/logo-mono.svg +37 -0
  68. package/landing/public/logo-simple.svg +45 -0
  69. package/landing/public/logo.svg +84 -0
  70. package/landing/public/og-image.png +0 -0
  71. package/landing/public/og-template.html +184 -0
  72. package/landing/public/site.webmanifest +31 -0
  73. package/landing/scripts/generate-assets.js +284 -0
  74. package/landing/scripts/generate-pngs.js +48 -0
  75. package/landing/scripts/generate-stats.js +42 -0
  76. package/landing/src/app/admin/page.tsx +348 -0
  77. package/landing/src/app/api/auth/magic-link/route.ts +73 -0
  78. package/landing/src/app/api/auth/session/route.ts +38 -0
  79. package/landing/src/app/api/auth/verify/route.ts +43 -0
  80. package/landing/src/app/api/og/route.tsx +74 -0
  81. package/landing/src/app/globals.css +439 -100
  82. package/landing/src/app/layout.tsx +37 -9
  83. package/landing/src/app/page.tsx +640 -552
  84. package/landing/src/app/providers/dashboard/login/page.tsx +176 -0
  85. package/landing/src/app/providers/dashboard/page.tsx +589 -0
  86. package/landing/src/app/providers/dashboard/verify/page.tsx +106 -0
  87. package/landing/src/app/providers/layout.tsx +14 -0
  88. package/landing/src/app/providers/page.tsx +402 -0
  89. package/landing/src/app/providers/register/page.tsx +670 -0
  90. package/landing/src/components/ProviderDashboard.tsx +794 -0
  91. package/landing/src/hooks/useDashboardData.ts +99 -0
  92. package/landing/src/lib/apis.json +116054 -0
  93. package/landing/src/lib/convex-client.ts +106 -0
  94. package/landing/src/lib/mock-data.ts +285 -0
  95. package/landing/src/lib/stats.json +6 -0
  96. package/landing/tailwind.config.ts +12 -11
  97. package/landing/tsconfig.tsbuildinfo +1 -0
  98. package/package.json +21 -20
  99. package/scripts/SYMBOT-FIX.md +238 -0
  100. package/scripts/demo-simulation.py +177 -0
  101. package/scripts/expand-more.py +502 -0
  102. package/scripts/expand-registry.py +434 -0
  103. package/scripts/history-sanitizer.ts +272 -0
  104. package/scripts/mass-scrape.py +1308 -0
  105. package/scripts/sync-and-deploy.sh +36 -0
  106. package/src/credentials.ts +177 -0
  107. package/src/credits.ts +190 -122
  108. package/src/discovery.ts +45 -58
  109. package/src/execute.ts +350 -0
  110. package/src/index.ts +113 -31
  111. package/src/proxy.ts +24 -0
  112. package/src/registry/apis.json +95362 -202
  113. package/src/registry/apis_expanded.json +100853 -0
  114. package/src/stripe.ts +243 -0
  115. package/src/test.ts +127 -89
  116. package/src/types.ts +0 -34
  117. package/src/webhook.ts +107 -0
  118. package/.github/ISSUE_TEMPLATE/add-api.yml +0 -123
  119. package/BRIEFING.md +0 -30
  120. package/backend/convex/apiKeys.ts +0 -75
  121. package/backend/convex/purchases.ts +0 -74
  122. package/backend/convex/schema.ts +0 -45
  123. package/backend/convex/transactions.ts +0 -57
  124. package/backend/convex/users.ts +0 -94
  125. package/backend/package-lock.json +0 -521
  126. package/backend/package.json +0 -15
  127. package/dist/registry/parse_apis.py +0 -146
  128. package/dist/revenuecat.d.ts +0 -61
  129. package/dist/revenuecat.d.ts.map +0 -1
  130. package/dist/revenuecat.js +0 -166
  131. package/dist/revenuecat.js.map +0 -1
  132. package/dist/webhooks/revenuecat.d.ts +0 -48
  133. package/dist/webhooks/revenuecat.d.ts.map +0 -1
  134. package/dist/webhooks/revenuecat.js +0 -119
  135. package/dist/webhooks/revenuecat.js.map +0 -1
  136. package/docs/revenuecat-setup.md +0 -89
  137. package/landing/src/app/api/keys/route.ts +0 -71
  138. package/landing/src/app/api/log/route.ts +0 -37
  139. package/landing/src/app/api/stats/route.ts +0 -37
  140. package/landing/src/app/page.tsx.bak +0 -567
  141. package/landing/src/components/AddKeyModal.tsx +0 -159
  142. package/newsletter-template.html +0 -71
  143. package/outreach/OUTREACH-SYSTEM.md +0 -211
  144. package/outreach/email-template.html +0 -179
  145. package/outreach/targets.md +0 -133
  146. package/src/registry/parse_apis.py +0 -146
  147. package/src/revenuecat.ts +0 -239
  148. package/src/webhooks/revenuecat.ts +0 -187
  149. /package/{backend/convex → convex}/README.md +0 -0
  150. /package/{backend/convex → convex}/_generated/api.js +0 -0
  151. /package/{backend/convex → convex}/_generated/dataModel.d.ts +0 -0
  152. /package/{backend/convex → convex}/_generated/server.d.ts +0 -0
  153. /package/{backend/convex → convex}/_generated/server.js +0 -0
  154. /package/{backend/convex → convex}/tsconfig.json +0 -0
package/dist/credits.js CHANGED
@@ -1,41 +1,59 @@
1
- // Credit system for APIvault
2
- // MVP: In-memory store. Production: Supabase
1
+ // Credit system for APIClaw
2
+ // Supports both in-memory (dev) and Convex (production) backends
3
+ import { getCredentials, hasRealCredentials } from './credentials.js';
3
4
  import { randomUUID } from 'crypto';
4
- import { hasProSubscription } from './revenuecat.js';
5
- // In-memory stores (replace with Supabase in production)
6
- const agentCredits = new Map();
7
- const purchases = new Map();
8
- const usage = new Map();
9
- // Mock API keys for demo (in production, these would be provisioned from providers)
10
- const mockCredentials = {
11
- '46elks': () => ({
12
- type: 'basic',
13
- username: `u_${randomUUID().slice(0, 8)}`,
14
- password: `p_${randomUUID().slice(0, 16)}`
15
- }),
16
- 'resend': () => ({
17
- type: 'api_key',
18
- api_key: `re_${randomUUID().replace(/-/g, '')}`
19
- }),
20
- 'brave_search': () => ({
21
- type: 'api_key',
22
- api_key: `BSA${randomUUID().replace(/-/g, '').toUpperCase().slice(0, 20)}`
23
- }),
24
- 'openrouter': () => ({
25
- type: 'bearer',
26
- api_key: `sk-or-v1-${randomUUID().replace(/-/g, '')}`
27
- }),
28
- 'elevenlabs': () => ({
29
- type: 'api_key',
30
- api_key: `${randomUUID().replace(/-/g, '')}`
31
- })
5
+ // Configuration
6
+ const BACKEND = process.env.APICLAW_BACKEND === 'convex' ? 'convex' : 'memory';
7
+ const CONVEX_URL = process.env.CONVEX_URL || '';
8
+ const CONVEX_DEPLOY_KEY = process.env.CONVEX_DEPLOY_KEY || '';
9
+ // In-memory stores (for local development)
10
+ const agentCreditsStore = new Map();
11
+ const purchasesStore = new Map();
12
+ const usageStore = new Map();
13
+ // Provider that have real credentials available
14
+ const REAL_CREDENTIAL_PROVIDERS = ['46elks', 'twilio'];
15
+ // Credits per dollar by provider
16
+ const CREDITS_PER_DOLLAR = {
17
+ '46elks': 30, // ~30 SMS per dollar
18
+ 'twilio': 25, // ~25 SMS per dollar
19
+ 'resend': 1000, // ~1000 emails per dollar
20
+ 'brave_search': 200, // ~200 searches per dollar
21
+ 'openrouter': 100, // ~100k tokens per dollar (varies by model)
22
+ 'elevenlabs': 3333 // ~3333 characters per dollar
32
23
  };
24
+ /**
25
+ * Calculate credits based on provider pricing
26
+ */
27
+ function calculateCredits(providerId, amountUsd) {
28
+ return Math.floor(amountUsd * (CREDITS_PER_DOLLAR[providerId] || 100));
29
+ }
30
+ /**
31
+ * Generate credentials for a provider
32
+ * Returns real credentials for supported providers, mock for others
33
+ */
34
+ function generateCredentials(providerId) {
35
+ // Try to get real credentials first
36
+ const realCreds = getCredentials(providerId);
37
+ if (realCreds && hasRealCredentials(providerId)) {
38
+ console.log(`[APIClaw] Using REAL credentials for ${providerId}`);
39
+ return realCreds;
40
+ }
41
+ // Fall back to mock credentials
42
+ console.log(`[APIClaw] Using MOCK credentials for ${providerId}`);
43
+ return realCreds || {
44
+ type: 'api_key',
45
+ api_key: `mock_${providerId}_${randomUUID().slice(0, 8)}`
46
+ };
47
+ }
48
+ // =============================================================================
49
+ // In-Memory Backend (for development)
50
+ // =============================================================================
33
51
  /**
34
52
  * Get or create agent credits account
35
53
  */
36
54
  export function getAgentCredits(agentId) {
37
- if (!agentCredits.has(agentId)) {
38
- agentCredits.set(agentId, {
55
+ if (!agentCreditsStore.has(agentId)) {
56
+ agentCreditsStore.set(agentId, {
39
57
  agent_id: agentId,
40
58
  balance_usd: 0,
41
59
  currency: 'USD',
@@ -43,7 +61,7 @@ export function getAgentCredits(agentId) {
43
61
  updated_at: new Date().toISOString()
44
62
  });
45
63
  }
46
- return agentCredits.get(agentId);
64
+ return agentCreditsStore.get(agentId);
47
65
  }
48
66
  /**
49
67
  * Add credits to an agent's account
@@ -56,7 +74,7 @@ export function addCredits(agentId, amountUsd) {
56
74
  }
57
75
  /**
58
76
  * Purchase API access
59
- * Returns credentials if successful
77
+ * Returns real credentials for 46elks and Twilio
60
78
  */
61
79
  export function purchaseAPIAccess(agentId, providerId, amountUsd) {
62
80
  const credits = getAgentCredits(agentId);
@@ -67,16 +85,19 @@ export function purchaseAPIAccess(agentId, providerId, amountUsd) {
67
85
  error: `Insufficient balance. Have $${credits.balance_usd.toFixed(2)}, need $${amountUsd.toFixed(2)}`
68
86
  };
69
87
  }
70
- // Check if provider exists
71
- if (!mockCredentials[providerId]) {
88
+ // Check if provider is supported
89
+ const providerCredentials = getCredentials(providerId);
90
+ if (!providerCredentials) {
72
91
  return {
73
92
  success: false,
74
- error: `Unknown provider: ${providerId}`
93
+ error: `Unknown provider: ${providerId}. Supported: ${Object.keys(CREDITS_PER_DOLLAR).join(', ')}`
75
94
  };
76
95
  }
77
96
  // Deduct credits
78
97
  credits.balance_usd -= amountUsd;
79
98
  credits.updated_at = new Date().toISOString();
99
+ // Generate credentials (real for 46elks/twilio, mock for others)
100
+ const credentials = generateCredentials(providerId);
80
101
  // Create purchase record
81
102
  const purchaseId = `pur_${randomUUID().slice(0, 12)}`;
82
103
  const purchase = {
@@ -86,12 +107,12 @@ export function purchaseAPIAccess(agentId, providerId, amountUsd) {
86
107
  amount_usd: amountUsd,
87
108
  credits_purchased: calculateCredits(providerId, amountUsd),
88
109
  status: 'active',
89
- credentials: mockCredentials[providerId](),
110
+ credentials,
90
111
  created_at: new Date().toISOString()
91
112
  };
92
- purchases.set(purchaseId, purchase);
113
+ purchasesStore.set(purchaseId, purchase);
93
114
  // Initialize usage tracking
94
- usage.set(purchaseId, {
115
+ usageStore.set(purchaseId, {
95
116
  purchase_id: purchaseId,
96
117
  provider_id: providerId,
97
118
  units_used: 0,
@@ -99,39 +120,28 @@ export function purchaseAPIAccess(agentId, providerId, amountUsd) {
99
120
  cost_incurred_usd: 0,
100
121
  last_used_at: new Date().toISOString()
101
122
  });
123
+ // Flag if using real credentials
124
+ const isRealCredentials = hasRealCredentials(providerId);
125
+ console.log(`[APIClaw] Purchase complete: ${providerId} ($${amountUsd}) - Real credentials: ${isRealCredentials}`);
102
126
  return { success: true, purchase };
103
127
  }
104
- /**
105
- * Calculate credits based on provider pricing
106
- */
107
- function calculateCredits(providerId, amountUsd) {
108
- // Simplified credit calculation per provider
109
- const creditsPerDollar = {
110
- '46elks': 30, // ~30 SMS per dollar
111
- 'resend': 1000, // ~1000 emails per dollar
112
- 'brave_search': 200, // ~200 searches per dollar
113
- 'openrouter': 100, // ~100k tokens per dollar (varies by model)
114
- 'elevenlabs': 3333 // ~3333 characters per dollar
115
- };
116
- return Math.floor(amountUsd * (creditsPerDollar[providerId] || 100));
117
- }
118
128
  /**
119
129
  * Get all purchases for an agent
120
130
  */
121
131
  export function getAgentPurchases(agentId) {
122
- return Array.from(purchases.values()).filter(p => p.agent_id === agentId);
132
+ return Array.from(purchasesStore.values()).filter(p => p.agent_id === agentId);
123
133
  }
124
134
  /**
125
135
  * Get usage for a purchase
126
136
  */
127
137
  export function getUsage(purchaseId) {
128
- return usage.get(purchaseId) || null;
138
+ return usageStore.get(purchaseId) || null;
129
139
  }
130
140
  /**
131
141
  * Record usage (call this when API is used)
132
142
  */
133
143
  export function recordUsage(purchaseId, unitsUsed, costUsd) {
134
- const record = usage.get(purchaseId);
144
+ const record = usageStore.get(purchaseId);
135
145
  if (!record)
136
146
  return null;
137
147
  record.units_used += unitsUsed;
@@ -140,7 +150,7 @@ export function recordUsage(purchaseId, unitsUsed, costUsd) {
140
150
  record.last_used_at = new Date().toISOString();
141
151
  // Update purchase status if depleted
142
152
  if (record.units_remaining === 0) {
143
- const purchase = purchases.get(purchaseId);
153
+ const purchase = purchasesStore.get(purchaseId);
144
154
  if (purchase)
145
155
  purchase.status = 'exhausted';
146
156
  }
@@ -154,56 +164,98 @@ export function getBalanceSummary(agentId) {
154
164
  const agentPurchases = getAgentPurchases(agentId);
155
165
  const activePurchases = agentPurchases.filter(p => p.status === 'active');
156
166
  const totalSpent = agentPurchases.reduce((sum, p) => sum + p.amount_usd, 0);
167
+ // List providers with real credentials
168
+ const realCredentialProviders = REAL_CREDENTIAL_PROVIDERS.filter(p => hasRealCredentials(p));
157
169
  return {
158
170
  credits,
159
171
  active_purchases: activePurchases,
160
- total_spent_usd: totalSpent
172
+ total_spent_usd: totalSpent,
173
+ real_credentials_available: realCredentialProviders
161
174
  };
162
175
  }
163
176
  /**
164
- * Calculate transaction fee based on user's subscription
165
- * Pro users: 2% fee
166
- * Free users: 5% fee
177
+ * Check which providers have real credentials
167
178
  */
168
- export async function calculateTransactionFee(userId, amountUsd) {
169
- const isPro = await hasProSubscription(userId);
170
- const feePercentage = isPro ? 0.02 : 0.05;
171
- const feeAmount = Math.round(amountUsd * feePercentage * 100) / 100;
172
- return {
173
- amount_usd: amountUsd,
174
- fee_percentage: feePercentage,
175
- fee_amount_usd: feeAmount,
176
- net_amount_usd: Math.round((amountUsd - feeAmount) * 100) / 100,
177
- tier: isPro ? 'pro' : 'free',
178
- };
179
+ export function getProvidersWithRealCredentials() {
180
+ return REAL_CREDENTIAL_PROVIDERS.filter(p => hasRealCredentials(p));
179
181
  }
180
- /**
181
- * Purchase API access with subscription-aware fees
182
- */
183
- export async function purchaseAPIAccessWithFees(agentId, userId, providerId, amountUsd) {
184
- // Calculate fees first
185
- const fee = await calculateTransactionFee(userId, amountUsd);
186
- // Total amount user pays = API cost + platform fee
187
- const totalCost = amountUsd + fee.fee_amount_usd;
188
- const credits = getAgentCredits(agentId);
189
- if (credits.balance_usd < totalCost) {
190
- return {
191
- success: false,
192
- error: `Insufficient balance. Have $${credits.balance_usd.toFixed(2)}, need $${totalCost.toFixed(2)} (includes ${fee.tier === 'pro' ? '2%' : '5%'} platform fee)`
193
- };
182
+ async function convexQuery(path, args) {
183
+ if (!CONVEX_URL) {
184
+ return { error: 'Convex URL not configured' };
194
185
  }
195
- // Make the purchase (deducts API cost)
196
- const result = purchaseAPIAccess(agentId, providerId, amountUsd);
197
- if (result.success && result.purchase) {
198
- // Deduct platform fee separately
199
- credits.balance_usd -= fee.fee_amount_usd;
200
- credits.updated_at = new Date().toISOString();
201
- return {
202
- success: true,
203
- purchase: result.purchase,
204
- fee,
205
- };
186
+ try {
187
+ const response = await fetch(`${CONVEX_URL}/api/query`, {
188
+ method: 'POST',
189
+ headers: {
190
+ 'Content-Type': 'application/json',
191
+ ...(CONVEX_DEPLOY_KEY ? { 'Authorization': `Convex ${CONVEX_DEPLOY_KEY}` } : {}),
192
+ },
193
+ body: JSON.stringify({ path, args }),
194
+ });
195
+ const result = await response.json();
196
+ return { data: result };
197
+ }
198
+ catch (error) {
199
+ return { error: error instanceof Error ? error.message : 'Convex query failed' };
200
+ }
201
+ }
202
+ async function convexMutation(path, args) {
203
+ if (!CONVEX_URL) {
204
+ return { error: 'Convex URL not configured' };
205
+ }
206
+ try {
207
+ const response = await fetch(`${CONVEX_URL}/api/mutation`, {
208
+ method: 'POST',
209
+ headers: {
210
+ 'Content-Type': 'application/json',
211
+ ...(CONVEX_DEPLOY_KEY ? { 'Authorization': `Convex ${CONVEX_DEPLOY_KEY}` } : {}),
212
+ },
213
+ body: JSON.stringify({ path, args }),
214
+ });
215
+ const result = await response.json();
216
+ return { data: result };
206
217
  }
207
- return result;
218
+ catch (error) {
219
+ return { error: error instanceof Error ? error.message : 'Convex mutation failed' };
220
+ }
221
+ }
222
+ // Convex-backed versions (async)
223
+ export async function getAgentCreditsAsync(agentId) {
224
+ if (BACKEND === 'memory') {
225
+ return getAgentCredits(agentId);
226
+ }
227
+ const result = await convexQuery('credits:getAgentCredits', { agentId });
228
+ return result.data || null;
229
+ }
230
+ export async function addCreditsAsync(agentId, amountUsd) {
231
+ if (BACKEND === 'memory') {
232
+ return addCredits(agentId, amountUsd);
233
+ }
234
+ const result = await convexMutation('credits:addCredits', { agentId, amountUsd });
235
+ return result.data || null;
236
+ }
237
+ export async function purchaseAPIAccessAsync(agentId, providerId, amountUsd) {
238
+ if (BACKEND === 'memory') {
239
+ return purchaseAPIAccess(agentId, providerId, amountUsd);
240
+ }
241
+ // Generate credentials server-side
242
+ const credentials = generateCredentials(providerId);
243
+ const result = await convexMutation('purchases:purchaseAccess', {
244
+ agentId,
245
+ providerId,
246
+ amountUsd,
247
+ credentials,
248
+ });
249
+ if (result.error) {
250
+ return { success: false, error: result.error };
251
+ }
252
+ return { success: true, purchase: result.data };
253
+ }
254
+ // Export backend info
255
+ export function getBackendInfo() {
256
+ return {
257
+ type: BACKEND,
258
+ convexUrl: BACKEND === 'convex' ? CONVEX_URL : null,
259
+ };
208
260
  }
209
261
  //# sourceMappingURL=credits.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"credits.js","sourceRoot":"","sources":["../src/credits.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credits.js","sourceRoot":"","sources":["../src/credits.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,4 @@
1
- import { SimpleAPI } from './types.js';
2
- export interface SimpleSearchResult {
3
- api: SimpleAPI;
4
- relevance_score: number;
5
- match_reasons: string[];
6
- }
1
+ import { APIProvider, SearchResult } from './types.js';
7
2
  /**
8
3
  * Discover APIs based on a natural language query
9
4
  * MVP uses keyword matching; production would use embeddings
@@ -11,17 +6,17 @@ export interface SimpleSearchResult {
11
6
  export declare function discoverAPIs(query: string, options?: {
12
7
  category?: string;
13
8
  maxResults?: number;
14
- auth?: string;
15
- httpsOnly?: boolean;
16
- }): SimpleSearchResult[];
9
+ maxPrice?: number;
10
+ region?: string;
11
+ }): SearchResult[];
17
12
  /**
18
13
  * Get detailed information about a specific API
19
14
  */
20
- export declare function getAPIDetails(apiId: string): SimpleAPI | null;
15
+ export declare function getAPIDetails(apiId: string): APIProvider | null;
21
16
  /**
22
17
  * List all APIs in a category
23
18
  */
24
- export declare function listByCategory(category: string): SimpleAPI[];
19
+ export declare function listByCategory(category: string): APIProvider[];
25
20
  /**
26
21
  * Get all available categories
27
22
  */
@@ -29,9 +24,5 @@ export declare function getCategories(): string[];
29
24
  /**
30
25
  * Get all APIs
31
26
  */
32
- export declare function getAllAPIs(): SimpleAPI[];
33
- /**
34
- * Get API count
35
- */
36
- export declare function getAPICount(): number;
27
+ export declare function getAllAPIs(): APIProvider[];
37
28
  //# sourceMappingURL=discovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAgBvC,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,SAAS,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CAChB,GACL,kBAAkB,EAAE,CA0EtB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAE7D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,CAE5D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,SAAS,EAAE,CAExC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAavD;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ,GACL,YAAY,EAAE,CA6EhB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAE/D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CAE9D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,WAAW,EAAE,CAE1C"}
package/dist/discovery.js CHANGED
@@ -5,68 +5,67 @@ import { fileURLToPath } from 'url';
5
5
  import { dirname, join } from 'path';
6
6
  const __filename = fileURLToPath(import.meta.url);
7
7
  const __dirname = dirname(__filename);
8
- // Load APIs from registry
9
8
  const apisData = JSON.parse(readFileSync(join(__dirname, 'registry', 'apis.json'), 'utf-8'));
10
9
  const apis = apisData.apis;
11
- console.error(`[APIvault] Loaded ${apis.length} APIs from registry`);
12
10
  /**
13
11
  * Discover APIs based on a natural language query
14
12
  * MVP uses keyword matching; production would use embeddings
15
13
  */
16
14
  export function discoverAPIs(query, options = {}) {
17
- const { category, maxResults = 10, auth, httpsOnly } = options;
15
+ const { category, maxResults = 5, maxPrice, region } = options;
18
16
  const queryLower = query.toLowerCase();
19
17
  const queryWords = queryLower.split(/\s+/).filter(w => w.length > 2);
20
18
  const results = [];
21
19
  for (const api of apis) {
22
- // Category filter (case-insensitive)
23
- if (category && api.category.toLowerCase() !== category.toLowerCase())
20
+ // Category filter
21
+ if (category && api.category !== category)
24
22
  continue;
25
- // Auth filter
26
- if (auth && api.auth.toLowerCase() !== auth.toLowerCase())
27
- continue;
28
- // HTTPS filter
29
- if (httpsOnly && !api.https)
23
+ // Region filter
24
+ if (region && !api.regions.includes(region) && !api.regions.includes('global'))
30
25
  continue;
31
26
  // Calculate relevance score
32
27
  let score = 0;
33
28
  const matchReasons = [];
29
+ // Check keywords
34
30
  for (const word of queryWords) {
35
- // Name match (highest weight)
36
- if (api.name.toLowerCase().includes(word)) {
37
- score += 25;
38
- matchReasons.push(`name: ${word}`);
31
+ // Direct keyword match
32
+ if (api.keywords.some(k => k.includes(word))) {
33
+ score += 10;
34
+ matchReasons.push(`keyword: ${word}`);
39
35
  }
40
- // Keyword match
41
- if (api.keywords && api.keywords.some(k => k.toLowerCase().includes(word))) {
36
+ // Capability match
37
+ if (api.capabilities.some(c => c.includes(word))) {
42
38
  score += 15;
43
- matchReasons.push(`keyword: ${word}`);
39
+ matchReasons.push(`capability: ${word}`);
40
+ }
41
+ // Name match
42
+ if (api.name.toLowerCase().includes(word)) {
43
+ score += 20;
44
+ matchReasons.push(`name: ${word}`);
44
45
  }
45
46
  // Description match
46
47
  if (api.description.toLowerCase().includes(word)) {
47
- score += 10;
48
+ score += 5;
48
49
  matchReasons.push(`description: ${word}`);
49
50
  }
50
- // Category match
51
- if (api.category.toLowerCase().includes(word)) {
51
+ // Feature match
52
+ if (api.features.some(f => f.toLowerCase().includes(word))) {
52
53
  score += 8;
53
- matchReasons.push(`category: ${word}`);
54
+ matchReasons.push(`feature: ${word}`);
54
55
  }
55
56
  }
56
- // Only add secondary boosts if there's a primary match
57
- if (score > 0) {
58
- // Boost for HTTPS
59
- if (api.https) {
60
- score += 2;
61
- }
62
- // Boost for known CORS support
63
- if (api.cors === 'yes') {
64
- score += 1;
65
- }
57
+ // Boost for high success rate
58
+ score += api.agent_success_rate * 10;
59
+ // Boost for low latency
60
+ score += Math.max(0, (1000 - api.avg_latency_ms) / 100);
61
+ // Boost for free tier
62
+ if (api.pricing.free_tier) {
63
+ score += 5;
64
+ matchReasons.push('has free tier');
66
65
  }
67
66
  if (score > 0) {
68
67
  results.push({
69
- api,
68
+ provider: api,
70
69
  relevance_score: Math.round(score * 100) / 100,
71
70
  match_reasons: [...new Set(matchReasons)]
72
71
  });
@@ -86,13 +85,13 @@ export function getAPIDetails(apiId) {
86
85
  * List all APIs in a category
87
86
  */
88
87
  export function listByCategory(category) {
89
- return apis.filter(api => api.category.toLowerCase() === category.toLowerCase());
88
+ return apis.filter(api => api.category === category);
90
89
  }
91
90
  /**
92
91
  * Get all available categories
93
92
  */
94
93
  export function getCategories() {
95
- return [...new Set(apis.map(api => api.category))].sort();
94
+ return [...new Set(apis.map(api => api.category))];
96
95
  }
97
96
  /**
98
97
  * Get all APIs
@@ -100,10 +99,4 @@ export function getCategories() {
100
99
  export function getAllAPIs() {
101
100
  return apis;
102
101
  }
103
- /**
104
- * Get API count
105
- */
106
- export function getAPICount() {
107
- return apis.length;
108
- }
109
102
  //# sourceMappingURL=discovery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * APIClaw Instant Connect - Execute API calls through connected providers
3
+ */
4
+ interface ExecuteResult {
5
+ success: boolean;
6
+ provider: string;
7
+ action: string;
8
+ data?: unknown;
9
+ error?: string;
10
+ cost?: number;
11
+ }
12
+ export declare function getProviderActions(providerId: string): string[];
13
+ export declare function getConnectedProviders(): {
14
+ provider: string;
15
+ actions: string[];
16
+ }[];
17
+ export declare function executeAPICall(providerId: string, action: string, params: Record<string, any>): Promise<ExecuteResult>;
18
+ export {};
19
+ //# sourceMappingURL=execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../src/execute.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,UAAU,aAAa;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA8PD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAE/D;AAGD,wBAAgB,qBAAqB,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,CAKjF;AAGD,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC,aAAa,CAAC,CAgExB"}