@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.
Files changed (77) hide show
  1. package/AGENTS.md +50 -33
  2. package/README.md +22 -12
  3. package/SOUL.md +60 -19
  4. package/STATUS.md +91 -169
  5. package/convex/_generated/api.d.ts +6 -0
  6. package/convex/directCall.ts +598 -0
  7. package/convex/providers.ts +341 -26
  8. package/convex/schema.ts +87 -0
  9. package/convex/usage.ts +260 -0
  10. package/convex/waitlist.ts +55 -0
  11. package/data/combined-02-26.json +22102 -0
  12. package/data/night-expansion-02-26-06-batch2.json +1898 -0
  13. package/data/night-expansion-02-26-06-batch3.json +1410 -0
  14. package/data/night-expansion-02-26-06.json +3146 -0
  15. package/data/night-expansion-02-26-full.json +9726 -0
  16. package/data/night-expansion-02-26-v2.json +330 -0
  17. package/data/night-expansion-02-26.json +171 -0
  18. package/dist/crypto.d.ts +7 -0
  19. package/dist/crypto.d.ts.map +1 -0
  20. package/dist/crypto.js +67 -0
  21. package/dist/crypto.js.map +1 -0
  22. package/dist/execute-dynamic.d.ts +116 -0
  23. package/dist/execute-dynamic.d.ts.map +1 -0
  24. package/dist/execute-dynamic.js +456 -0
  25. package/dist/execute-dynamic.js.map +1 -0
  26. package/dist/execute.d.ts +2 -1
  27. package/dist/execute.d.ts.map +1 -1
  28. package/dist/execute.js +35 -5
  29. package/dist/execute.js.map +1 -1
  30. package/dist/index.js +33 -4
  31. package/dist/index.js.map +1 -1
  32. package/dist/registry/apis.json +2081 -3
  33. package/docs/PRD-customer-key-passthrough.md +184 -0
  34. package/landing/public/badges/available-on-apiclaw.svg +14 -0
  35. package/landing/scripts/generate-stats.js +75 -4
  36. package/landing/src/app/admin/page.tsx +1 -1
  37. package/landing/src/app/api/auth/magic-link/route.ts +1 -1
  38. package/landing/src/app/api/auth/session/route.ts +1 -1
  39. package/landing/src/app/api/auth/verify/route.ts +1 -1
  40. package/landing/src/app/api/og/route.tsx +5 -3
  41. package/landing/src/app/docs/page.tsx +5 -4
  42. package/landing/src/app/earn/page.tsx +14 -11
  43. package/landing/src/app/globals.css +16 -15
  44. package/landing/src/app/layout.tsx +2 -2
  45. package/landing/src/app/page.tsx +425 -254
  46. package/landing/src/app/providers/dashboard/[apiId]/actions/[actionId]/edit/page.tsx +600 -0
  47. package/landing/src/app/providers/dashboard/[apiId]/actions/new/page.tsx +583 -0
  48. package/landing/src/app/providers/dashboard/[apiId]/actions/page.tsx +301 -0
  49. package/landing/src/app/providers/dashboard/[apiId]/direct-call/page.tsx +659 -0
  50. package/landing/src/app/providers/dashboard/[apiId]/page.tsx +381 -0
  51. package/landing/src/app/providers/dashboard/[apiId]/test/page.tsx +418 -0
  52. package/landing/src/app/providers/dashboard/layout.tsx +292 -0
  53. package/landing/src/app/providers/dashboard/page.tsx +353 -290
  54. package/landing/src/app/providers/register/page.tsx +87 -10
  55. package/landing/src/components/AiClientDropdown.tsx +85 -0
  56. package/landing/src/components/ConfigHelperModal.tsx +113 -0
  57. package/landing/src/components/HeroTabs.tsx +187 -0
  58. package/landing/src/components/ShareIntegrationModal.tsx +198 -0
  59. package/landing/src/hooks/useDashboardData.ts +53 -1
  60. package/landing/src/lib/apis.json +46554 -174
  61. package/landing/src/lib/convex-client.ts +22 -3
  62. package/landing/src/lib/stats.json +4 -4
  63. package/landing/tsconfig.tsbuildinfo +1 -1
  64. package/night-expansion-02-26-06-batch2.py +368 -0
  65. package/night-expansion-02-26-06-batch3.py +299 -0
  66. package/night-expansion-02-26-06.py +756 -0
  67. package/package.json +1 -1
  68. package/scripts/bulk-add-public-apis-v2.py +418 -0
  69. package/scripts/night-expansion-02-26-v2.py +296 -0
  70. package/scripts/night-expansion-02-26.py +890 -0
  71. package/scripts/seed-complete-api.js +181 -0
  72. package/scripts/seed-demo-api.sh +44 -0
  73. package/src/crypto.ts +75 -0
  74. package/src/execute-dynamic.ts +589 -0
  75. package/src/execute.ts +41 -5
  76. package/src/index.ts +38 -4
  77. package/src/registry/apis.json +2081 -3
package/src/index.ts CHANGED
@@ -34,6 +34,33 @@ import { executeAPICall, getConnectedProviders } from './execute.js';
34
34
  // Default agent ID for MVP (in production, this would come from auth)
35
35
  const DEFAULT_AGENT_ID = 'agent_default';
36
36
 
37
+ /**
38
+ * Get customer API key from environment variable
39
+ * Convention: {PROVIDER}_API_KEY (e.g., COACCEPT_API_KEY, ELKS_API_KEY)
40
+ */
41
+ function getCustomerKey(providerId: string): string | undefined {
42
+ // Try exact match first (e.g., 46elks -> 46ELKS_API_KEY)
43
+ const exactKey = `${providerId.toUpperCase().replace(/-/g, '_')}_API_KEY`;
44
+ if (process.env[exactKey]) {
45
+ return process.env[exactKey];
46
+ }
47
+
48
+ // Try common variations
49
+ const variations = [
50
+ `${providerId.toUpperCase()}_API_KEY`,
51
+ `${providerId.toUpperCase()}_KEY`,
52
+ `${providerId.toUpperCase().replace(/_/g, '')}_API_KEY`,
53
+ ];
54
+
55
+ for (const key of variations) {
56
+ if (process.env[key]) {
57
+ return process.env[key];
58
+ }
59
+ }
60
+
61
+ return undefined;
62
+ }
63
+
37
64
  // Tool definitions
38
65
  const tools: Tool[] = [
39
66
  {
@@ -150,13 +177,13 @@ const tools: Tool[] = [
150
177
  },
151
178
  {
152
179
  name: 'call_api',
153
- description: 'Execute an API call through APIClaw Direct Call. No API keys needed - we handle authentication.',
180
+ description: 'Execute an API call through APIClaw Direct Call. No API keys needed - we handle authentication. For providers that require customer authentication (like CoAccept), pass your own API key via customer_key.',
154
181
  inputSchema: {
155
182
  type: 'object',
156
183
  properties: {
157
184
  provider: {
158
185
  type: 'string',
159
- description: 'Provider ID (e.g., "46elks", "brave_search", "resend", "openrouter", "elevenlabs", "twilio")'
186
+ description: 'Provider ID (e.g., "46elks", "brave_search", "resend", "openrouter", "elevenlabs", "twilio", "coaccept")'
160
187
  },
161
188
  action: {
162
189
  type: 'string',
@@ -165,6 +192,10 @@ const tools: Tool[] = [
165
192
  params: {
166
193
  type: 'object',
167
194
  description: 'Parameters for the action. Varies by provider/action.'
195
+ },
196
+ customer_key: {
197
+ type: 'string',
198
+ description: 'Optional: Your own API key for providers that require customer authentication. If not provided, uses APIClaw shared credentials (where available).'
168
199
  }
169
200
  },
170
201
  required: ['provider', 'action', 'params']
@@ -452,8 +483,11 @@ Docs: https://apiclaw.nordsym.com
452
483
  const provider = args?.provider as string;
453
484
  const action = args?.action as string;
454
485
  const params = (args?.params as Record<string, any>) || {};
486
+
487
+ // Check for customer-provided API key (from args first, then env fallback)
488
+ const customerKey = (args?.customer_key as string) || getCustomerKey(provider);
455
489
 
456
- const result = await executeAPICall(provider, action, params);
490
+ const result = await executeAPICall(provider, action, params, DEFAULT_AGENT_ID, customerKey);
457
491
 
458
492
  return {
459
493
  content: [
@@ -531,7 +565,7 @@ async function main() {
531
565
  🦞 APIClaw v1.1.5 — The API Layer for AI Agents
532
566
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
533
567
 
534
- 16,000+ APIs indexed
568
+ 19,000+ APIs indexed
535
569
  ✓ 23 categories
536
570
  ✓ 9 direct-call providers ready
537
571