@nordsym/apiclaw 1.5.9 → 1.5.10

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 (72) hide show
  1. package/CHANGELOG-WHITELIST-V2.md +269 -0
  2. package/HIVR-INTEGRATION.md +281 -0
  3. package/HIVR-WHITELIST-STATUS.md +205 -0
  4. package/HIVR-WHITELIST.md +148 -0
  5. package/WHITELIST-ARCHITECTURE.md +379 -0
  6. package/api/discover.ts +71 -0
  7. package/api/health.ts +20 -0
  8. package/convex/http.d.ts.map +1 -1
  9. package/convex/http.js +8 -0
  10. package/convex/http.js.map +1 -1
  11. package/convex/http.ts +8 -0
  12. package/dist/access-control.d.ts +45 -0
  13. package/dist/access-control.d.ts.map +1 -0
  14. package/dist/access-control.js +142 -0
  15. package/dist/access-control.js.map +1 -0
  16. package/dist/analytics.d.ts +4 -0
  17. package/dist/analytics.d.ts.map +1 -1
  18. package/dist/analytics.js +1 -0
  19. package/dist/analytics.js.map +1 -1
  20. package/dist/credentials.d.ts.map +1 -1
  21. package/dist/credentials.js +20 -0
  22. package/dist/credentials.js.map +1 -1
  23. package/dist/execute.d.ts.map +1 -1
  24. package/dist/execute.js +245 -0
  25. package/dist/execute.js.map +1 -1
  26. package/dist/hivr-whitelist.d.ts +18 -0
  27. package/dist/hivr-whitelist.d.ts.map +1 -0
  28. package/dist/hivr-whitelist.js +95 -0
  29. package/dist/hivr-whitelist.js.map +1 -0
  30. package/dist/http-api.d.ts.map +1 -1
  31. package/dist/http-api.js +17 -33
  32. package/dist/http-api.js.map +1 -1
  33. package/dist/http-server-minimal.d.ts +7 -0
  34. package/dist/http-server-minimal.d.ts.map +1 -0
  35. package/dist/http-server-minimal.js +126 -0
  36. package/dist/http-server-minimal.js.map +1 -0
  37. package/dist/product-whitelist.d.ts +37 -0
  38. package/dist/product-whitelist.d.ts.map +1 -0
  39. package/dist/product-whitelist.js +203 -0
  40. package/dist/product-whitelist.js.map +1 -0
  41. package/dist/proxy.d.ts.map +1 -1
  42. package/dist/proxy.js +1 -1
  43. package/dist/proxy.js.map +1 -1
  44. package/landing/next-env.d.ts +1 -0
  45. package/landing/pages/api/discover.ts +43 -0
  46. package/landing/pages/api/health.ts +20 -0
  47. package/landing/src/app/auth/verify/page.tsx +6 -0
  48. package/landing/src/app/dashboard/verify/page.tsx +6 -0
  49. package/landing/src/app/join/page.tsx +6 -0
  50. package/landing/src/app/mou/[partnerId]/page.tsx +6 -0
  51. package/landing/src/app/providers/dashboard/[apiId]/actions/[actionId]/edit/page.tsx +6 -0
  52. package/landing/src/app/providers/dashboard/[apiId]/actions/new/page.tsx +5 -0
  53. package/landing/src/app/providers/dashboard/[apiId]/actions/page.tsx +5 -0
  54. package/landing/src/app/providers/dashboard/[apiId]/direct-call/page.tsx +5 -0
  55. package/landing/src/app/providers/dashboard/[apiId]/page.tsx +5 -0
  56. package/landing/src/app/providers/dashboard/[apiId]/test/page.tsx +5 -0
  57. package/landing/src/app/providers/dashboard/layout.tsx +6 -6
  58. package/landing/src/app/providers/dashboard/verify/page.tsx +6 -0
  59. package/landing/src/app/upgrade/page.tsx +6 -0
  60. package/landing/src/app/workspace/page.tsx +6 -0
  61. package/landing/src/lib/stats.json +1 -1
  62. package/package.json +4 -2
  63. package/scripts/test-whitelist-v2.sh +128 -0
  64. package/src/access-control.ts +174 -0
  65. package/src/analytics.ts +5 -0
  66. package/src/credentials.ts +20 -0
  67. package/src/execute.ts +247 -0
  68. package/src/hivr-whitelist.ts +110 -0
  69. package/src/http-api.ts +18 -34
  70. package/src/http-server-minimal.ts +154 -0
  71. package/src/product-whitelist.ts +246 -0
  72. package/src/proxy.ts +1 -1
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Access Control System
3
+ * Controls which products/agents can access which providers
4
+ *
5
+ * Rules format:
6
+ * - Wildcard: "hivr:*" = all Hivr agents
7
+ * - Specific: "hivr:bytebee" = only ByteBee
8
+ * - Product-level: "nordsym:*" = all NordSym agents
9
+ *
10
+ * Provider wildcards:
11
+ * - "*" = all providers
12
+ * - "brave_*" = all Brave providers
13
+ * - Specific: ["brave_search", "groq"]
14
+ */
15
+ interface AccessRule {
16
+ agentPattern: string;
17
+ allowedProviders: string[];
18
+ description?: string;
19
+ }
20
+ /**
21
+ * Check if agentId is allowed to access provider
22
+ */
23
+ export declare function canAccessProvider(agentId: string, provider: string): boolean;
24
+ /**
25
+ * Get allowed providers for agentId
26
+ */
27
+ export declare function getAllowedProviders(agentId: string): string[];
28
+ /**
29
+ * Add new access rule (runtime)
30
+ */
31
+ export declare function addAccessRule(rule: AccessRule): void;
32
+ /**
33
+ * Get all access rules (for debugging/admin)
34
+ */
35
+ export declare function getAccessRules(): AccessRule[];
36
+ /**
37
+ * Check if agentId + provider combination is allowed
38
+ * Combines whitelist check + access control
39
+ */
40
+ export declare function isAllowed(agentId: string | undefined, provider: string): Promise<{
41
+ allowed: boolean;
42
+ reason?: string;
43
+ }>;
44
+ export {};
45
+ //# sourceMappingURL=access-control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-control.d.ts","sourceRoot":"","sources":["../src/access-control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,UAAU,UAAU;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA4DD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAyB5E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAe7D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAIpD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,UAAU,EAAE,CAE7C;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBhD"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Access Control System
3
+ * Controls which products/agents can access which providers
4
+ *
5
+ * Rules format:
6
+ * - Wildcard: "hivr:*" = all Hivr agents
7
+ * - Specific: "hivr:bytebee" = only ByteBee
8
+ * - Product-level: "nordsym:*" = all NordSym agents
9
+ *
10
+ * Provider wildcards:
11
+ * - "*" = all providers
12
+ * - "brave_*" = all Brave providers
13
+ * - Specific: ["brave_search", "groq"]
14
+ */
15
+ // Default access rules
16
+ // These can be moved to Convex table for dynamic updates
17
+ const DEFAULT_RULES = [
18
+ {
19
+ agentPattern: 'hivr:*',
20
+ allowedProviders: ['*'], // Hivr gets everything
21
+ description: 'All Hivr bees get full access',
22
+ },
23
+ {
24
+ agentPattern: 'nordsym:*',
25
+ allowedProviders: ['brave_search', 'groq', 'replicate'],
26
+ description: 'NordSym team gets selected providers',
27
+ },
28
+ // Add more rules as needed
29
+ ];
30
+ // Cache for compiled rules
31
+ let compiledRules = null;
32
+ /**
33
+ * Compile agentPattern to RegExp
34
+ */
35
+ function compilePattern(pattern) {
36
+ // Convert wildcard pattern to regex
37
+ // "hivr:*" → /^hivr:.+$/
38
+ // "hivr:byte*" → /^hivr:byte.+$/
39
+ const escaped = pattern
40
+ .replace(/[.+^${}()|[\]\\]/g, '\\$&') // Escape regex chars
41
+ .replace(/\*/g, '.+'); // Replace * with .+
42
+ return new RegExp(`^${escaped}$`, 'i');
43
+ }
44
+ /**
45
+ * Compile all rules (cache for performance)
46
+ */
47
+ function compileRules() {
48
+ compiledRules = DEFAULT_RULES.map(rule => ({
49
+ pattern: compilePattern(rule.agentPattern),
50
+ providers: rule.allowedProviders,
51
+ }));
52
+ }
53
+ /**
54
+ * Check if provider matches pattern
55
+ */
56
+ function matchesProvider(provider, pattern) {
57
+ if (pattern === '*')
58
+ return true;
59
+ if (pattern.endsWith('*')) {
60
+ const prefix = pattern.slice(0, -1);
61
+ return provider.startsWith(prefix);
62
+ }
63
+ return provider === pattern;
64
+ }
65
+ /**
66
+ * Check if agentId is allowed to access provider
67
+ */
68
+ export function canAccessProvider(agentId, provider) {
69
+ if (!compiledRules) {
70
+ compileRules();
71
+ }
72
+ const normalized = agentId.toLowerCase().trim();
73
+ const normalizedProvider = provider.toLowerCase().trim();
74
+ // Find matching rule
75
+ for (const rule of compiledRules) {
76
+ if (rule.pattern.test(normalized)) {
77
+ // Check if provider is allowed
78
+ for (const providerPattern of rule.providers) {
79
+ if (matchesProvider(normalizedProvider, providerPattern)) {
80
+ return true;
81
+ }
82
+ }
83
+ // Rule matched but provider not in allowlist
84
+ return false;
85
+ }
86
+ }
87
+ // No rule matched = deny by default
88
+ console.warn(`[Access Control] No rule for ${normalized}`);
89
+ return false;
90
+ }
91
+ /**
92
+ * Get allowed providers for agentId
93
+ */
94
+ export function getAllowedProviders(agentId) {
95
+ if (!compiledRules) {
96
+ compileRules();
97
+ }
98
+ const normalized = agentId.toLowerCase().trim();
99
+ // Find matching rule
100
+ for (const rule of compiledRules) {
101
+ if (rule.pattern.test(normalized)) {
102
+ return rule.providers;
103
+ }
104
+ }
105
+ return [];
106
+ }
107
+ /**
108
+ * Add new access rule (runtime)
109
+ */
110
+ export function addAccessRule(rule) {
111
+ DEFAULT_RULES.push(rule);
112
+ compiledRules = null; // Force recompile
113
+ console.log(`[Access Control] Added rule for ${rule.agentPattern}`);
114
+ }
115
+ /**
116
+ * Get all access rules (for debugging/admin)
117
+ */
118
+ export function getAccessRules() {
119
+ return [...DEFAULT_RULES];
120
+ }
121
+ /**
122
+ * Check if agentId + provider combination is allowed
123
+ * Combines whitelist check + access control
124
+ */
125
+ export async function isAllowed(agentId, provider) {
126
+ if (!agentId) {
127
+ return { allowed: false, reason: 'No agentId provided' };
128
+ }
129
+ // First check: Is agent whitelisted?
130
+ const { isAuthorized } = await import('./product-whitelist.js');
131
+ const whitelisted = await isAuthorized(agentId);
132
+ if (!whitelisted) {
133
+ return { allowed: false, reason: 'Agent not whitelisted' };
134
+ }
135
+ // Second check: Does agent have access to this provider?
136
+ const hasAccess = canAccessProvider(agentId, provider);
137
+ if (!hasAccess) {
138
+ return { allowed: false, reason: 'Provider not in access list' };
139
+ }
140
+ return { allowed: true };
141
+ }
142
+ //# sourceMappingURL=access-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-control.js","sourceRoot":"","sources":["../src/access-control.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,10 @@ export interface APICallLog {
11
11
  success: boolean;
12
12
  latencyMs?: number;
13
13
  error?: string;
14
+ metadata?: {
15
+ product?: string;
16
+ [key: string]: any;
17
+ };
14
18
  }
15
19
  /**
16
20
  * Log an API call to local file AND Convex
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA+BD;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAYhD;AA8BD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAalE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,GAAG,MAAM,EACvB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CA0BZ"}
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AA+BD;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAYhD;AA+BD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAalE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,GAAG,MAAM,EACvB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CA0BZ"}
package/dist/analytics.js CHANGED
@@ -69,6 +69,7 @@ async function sendToConvex(log) {
69
69
  latencyMs: log.latencyMs,
70
70
  error: log.error,
71
71
  timestamp: log.timestamp,
72
+ ...log.metadata, // Include product and any other metadata
72
73
  },
73
74
  });
74
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAalD,gBAAgB;AAChB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAElD,4BAA4B;AAC5B,IAAI,YAAY,GAA4B,IAAI,CAAC;AAEjD,SAAS,eAAe;IACtB,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IAEtC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACvF,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,IAAI,CAAC;QACH,YAAY,GAAG,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,CAAC,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,8BAA8B;AAC9B,SAAS,YAAY;IACnB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,GAAe;IACxC,oCAAoC;IACpC,IAAI,CAAC;QACH,YAAY,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACxC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,qDAAqD;IACrD,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB;AACvD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,YAAY,CAAC,GAAe;IACzC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;YACvC,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,8BAA8B;YACjD,UAAU,EAAE,GAAG,CAAC,MAAM,IAAI,WAAW;YACrC,QAAQ,EAAE;gBACR,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,SAAS,EAAE,GAAG,CAAC,SAAS;aACzB;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,yDAAyD;QACzD,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAe;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;IACzD,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,UAAU,EAAE;YACtB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,cAAc;IAChB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAgB,EAChB,MAAc,EACd,IAAuB,EACvB,MAA0B,EAC1B,EAAoB;IAEpB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,KAAyB,CAAC;IAE9B,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,GAAG,KAAK,CAAC;QAChB,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;QAClB,MAAM,CAAC,CAAC;IACV,CAAC;YAAS,CAAC;QACT,MAAM,GAAG,GAAe;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ;YACR,MAAM;YACN,IAAI;YACJ,MAAM;YACN,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC7B,KAAK;SACN,CAAC;QAEF,UAAU,CAAC,GAAG,CAAC,CAAC;QAChB,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB;IACxD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAqK5C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAIxE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAkC9D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEnE"}
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAqL5C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAIxE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAsC9D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEnE"}
@@ -146,6 +146,22 @@ const providers = {
146
146
  return null;
147
147
  },
148
148
  },
149
+ apilayer: {
150
+ type: 'api_key',
151
+ get() {
152
+ const env = loadEnvFile('apilayer.env');
153
+ // Return all keys — handler picks the right one per action
154
+ const keys = {};
155
+ for (const [k, v] of Object.entries(env)) {
156
+ if (k.startsWith('APILAYER_') && v) {
157
+ keys[k] = v;
158
+ }
159
+ }
160
+ if (Object.keys(keys).length === 0)
161
+ return null;
162
+ return { type: 'api_key', api_key: keys.APILAYER_EXCHANGERATE_KEY || '', ...keys };
163
+ },
164
+ },
149
165
  };
150
166
  /**
151
167
  * Get real credentials for a provider
@@ -193,6 +209,10 @@ export function hasRealCredentials(providerId) {
193
209
  const env = loadEnvFile('e2b.env');
194
210
  return !!(env.E2B_API_KEY || process.env.E2B_API_KEY);
195
211
  }
212
+ if (providerId === 'apilayer') {
213
+ const env = loadEnvFile('apilayer.env');
214
+ return !!(env.APILAYER_EXCHANGERATE_KEY || process.env.APILAYER_EXCHANGERATE_KEY);
215
+ }
196
216
  return false;
197
217
  }
198
218
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../src/execute.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EACV,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,EACT,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,YAAY,EACZ,SAAS,EACT,cAAc,EACd,SAAS,EACT,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,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;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiLD,UAAU,YAAY;IACpB,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,aAAa,EAAE;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,OAAO,CAAC;QACd,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAyKD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,YAAY,CA8Dd;AAspCD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAE/D;AAGD,wBAAsB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CASnF;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,EAC3B,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,CAAC,CAkGxB"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../src/execute.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EACV,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,EACT,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,YAAY,EACZ,SAAS,EACT,cAAc,EACd,SAAS,EACT,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,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;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiLD,UAAU,YAAY;IACpB,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,aAAa,EAAE;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,OAAO,CAAC;QACd,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAwLD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,YAAY,CA8Dd;AA83CD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAE/D;AAGD,wBAAsB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CASnF;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,EAC3B,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,CAAC,CAkGxB"}
package/dist/execute.js CHANGED
@@ -320,6 +320,21 @@ const apiEndpoints = {
320
320
  run_code: { url: 'https://api.e2b.dev/v1/sandboxes', method: 'POST' },
321
321
  run_shell: { url: 'https://api.e2b.dev/v1/sandboxes', method: 'POST' },
322
322
  },
323
+ apilayer: {
324
+ exchange_rates: { url: 'https://api.apilayer.com/exchangerates_data/latest', method: 'GET' },
325
+ market_data: { url: 'http://api.marketstack.com/v1/eod', method: 'GET' },
326
+ aviation: { url: 'http://api.aviationstack.com/v1/flights', method: 'GET' },
327
+ pdf_generate: { url: 'https://api.pdflayer.com/api/convert', method: 'GET' },
328
+ screenshot: { url: 'https://api.screenshotlayer.com/api/capture', method: 'GET' },
329
+ verify_email: { url: 'https://api.apilayer.com/email_verification/check', method: 'GET' },
330
+ verify_number: { url: 'https://api.apilayer.com/number_verification/validate', method: 'GET' },
331
+ vat_check: { url: 'http://apilayer.net/api/validate', method: 'GET' },
332
+ world_news: { url: 'https://api.apilayer.com/world_news/search-news', method: 'GET' },
333
+ finance_news: { url: 'https://api.apilayer.com/financelayer/news', method: 'GET' },
334
+ scrape: { url: 'https://api.apilayer.com/adv_scraper/scraper', method: 'GET' },
335
+ image_crop: { url: 'https://api.apilayer.com/image_crop/crop', method: 'GET' },
336
+ skills: { url: 'https://api.apilayer.com/skills', method: 'GET' },
337
+ },
323
338
  };
324
339
  /**
325
340
  * Generate a dry-run result showing what would be sent without making actual API calls
@@ -1354,6 +1369,236 @@ const handlers = {
1354
1369
  };
1355
1370
  },
1356
1371
  },
1372
+ // APILayer - 14 APIs via one provider
1373
+ apilayer: {
1374
+ // Helper to pick the right key per action
1375
+ exchange_rates: async (params, creds) => {
1376
+ const key = creds.APILAYER_EXCHANGERATE_KEY || creds.api_key;
1377
+ const { base = 'USD', symbols, date } = params;
1378
+ const endpoint = date ? 'historical' : 'latest';
1379
+ const url = new URL(`https://api.apilayer.com/exchangerates_data/${endpoint}`);
1380
+ url.searchParams.set('base', base);
1381
+ if (symbols)
1382
+ url.searchParams.set('symbols', symbols);
1383
+ if (date)
1384
+ url.searchParams.set('date', date);
1385
+ const response = await fetchWithRetry(url.toString(), {
1386
+ headers: { 'apikey': key },
1387
+ }, { provider: 'apilayer', action: 'exchange_rates' });
1388
+ const data = await response.json();
1389
+ if (!response.ok)
1390
+ return createErrorResult('apilayer', 'exchange_rates', data.message || 'Request failed', statusToErrorCode(response.status));
1391
+ return { success: true, provider: 'apilayer', action: 'exchange_rates', data };
1392
+ },
1393
+ market_data: async (params, creds) => {
1394
+ const key = creds.APILAYER_MARKETSTACK_KEY || creds.api_key;
1395
+ const { symbols, date_from, date_to, limit = 10 } = params;
1396
+ if (!symbols)
1397
+ return createErrorResult('apilayer', 'market_data', 'Missing required param: symbols', ERROR_CODES.INVALID_PARAMS);
1398
+ const url = new URL('http://api.marketstack.com/v1/eod');
1399
+ url.searchParams.set('access_key', key);
1400
+ url.searchParams.set('symbols', symbols);
1401
+ url.searchParams.set('limit', limit.toString());
1402
+ if (date_from)
1403
+ url.searchParams.set('date_from', date_from);
1404
+ if (date_to)
1405
+ url.searchParams.set('date_to', date_to);
1406
+ const response = await fetchWithRetry(url.toString(), {}, { provider: 'apilayer', action: 'market_data' });
1407
+ const data = await response.json();
1408
+ if (!response.ok)
1409
+ return createErrorResult('apilayer', 'market_data', data.error?.message || 'Request failed', statusToErrorCode(response.status));
1410
+ return { success: true, provider: 'apilayer', action: 'market_data', data };
1411
+ },
1412
+ aviation: async (params, creds) => {
1413
+ const key = creds.APILAYER_AVIATIONSTACK_KEY || creds.api_key;
1414
+ const { flight_iata, dep_iata, arr_iata, airline_iata } = params;
1415
+ const url = new URL('http://api.aviationstack.com/v1/flights');
1416
+ url.searchParams.set('access_key', key);
1417
+ if (flight_iata)
1418
+ url.searchParams.set('flight_iata', flight_iata);
1419
+ if (dep_iata)
1420
+ url.searchParams.set('dep_iata', dep_iata);
1421
+ if (arr_iata)
1422
+ url.searchParams.set('arr_iata', arr_iata);
1423
+ if (airline_iata)
1424
+ url.searchParams.set('airline_iata', airline_iata);
1425
+ const response = await fetchWithRetry(url.toString(), {}, { provider: 'apilayer', action: 'aviation' });
1426
+ const data = await response.json();
1427
+ if (!response.ok)
1428
+ return createErrorResult('apilayer', 'aviation', 'Request failed', statusToErrorCode(response.status));
1429
+ return { success: true, provider: 'apilayer', action: 'aviation', data };
1430
+ },
1431
+ pdf_generate: async (params, creds) => {
1432
+ const key = creds.APILAYER_PDFLAYER_KEY || creds.api_key;
1433
+ const { document_url, document_html, page_size = 'A4' } = params;
1434
+ if (!document_url && !document_html)
1435
+ return createErrorResult('apilayer', 'pdf_generate', 'Missing: document_url or document_html', ERROR_CODES.INVALID_PARAMS);
1436
+ const url = new URL('https://api.pdflayer.com/api/convert');
1437
+ url.searchParams.set('access_key', key);
1438
+ url.searchParams.set('page_size', page_size);
1439
+ if (document_url)
1440
+ url.searchParams.set('document_url', document_url);
1441
+ if (document_html)
1442
+ url.searchParams.set('document_html', document_html);
1443
+ const response = await fetchWithRetry(url.toString(), {}, { provider: 'apilayer', action: 'pdf_generate' });
1444
+ const contentType = response.headers.get('content-type') || '';
1445
+ if (contentType.includes('application/pdf')) {
1446
+ return { success: true, provider: 'apilayer', action: 'pdf_generate', data: { message: 'PDF generated', content_type: 'application/pdf', size: response.headers.get('content-length') } };
1447
+ }
1448
+ const data = await response.json();
1449
+ if (!response.ok)
1450
+ return createErrorResult('apilayer', 'pdf_generate', data.error?.info || 'Request failed', statusToErrorCode(response.status));
1451
+ return { success: true, provider: 'apilayer', action: 'pdf_generate', data };
1452
+ },
1453
+ screenshot: async (params, creds) => {
1454
+ const key = creds.APILAYER_SCREENSHOTLAYER_KEY || creds.api_key;
1455
+ const { url: targetUrl, viewport = '1440x900', fullpage = 0 } = params;
1456
+ if (!targetUrl)
1457
+ return createErrorResult('apilayer', 'screenshot', 'Missing required param: url', ERROR_CODES.INVALID_PARAMS);
1458
+ const url = new URL('https://api.screenshotlayer.com/api/capture');
1459
+ url.searchParams.set('access_key', key);
1460
+ url.searchParams.set('url', targetUrl);
1461
+ url.searchParams.set('viewport', viewport);
1462
+ url.searchParams.set('fullpage', fullpage.toString());
1463
+ const response = await fetchWithRetry(url.toString(), {}, { provider: 'apilayer', action: 'screenshot' });
1464
+ const contentType = response.headers.get('content-type') || '';
1465
+ if (contentType.includes('image/')) {
1466
+ return { success: true, provider: 'apilayer', action: 'screenshot', data: { message: 'Screenshot captured', content_type: contentType, url: url.toString() } };
1467
+ }
1468
+ const data = await response.json();
1469
+ return { success: true, provider: 'apilayer', action: 'screenshot', data };
1470
+ },
1471
+ verify_email: async (params, creds) => {
1472
+ const key = creds.APILAYER_EMAILVERIFY_KEY || creds.api_key;
1473
+ const { email } = params;
1474
+ if (!email)
1475
+ return createErrorResult('apilayer', 'verify_email', 'Missing required param: email', ERROR_CODES.INVALID_PARAMS);
1476
+ const url = new URL('https://api.apilayer.com/email_verification/check');
1477
+ url.searchParams.set('email', email);
1478
+ const response = await fetchWithRetry(url.toString(), {
1479
+ headers: { 'apikey': key },
1480
+ }, { provider: 'apilayer', action: 'verify_email' });
1481
+ const data = await response.json();
1482
+ if (!response.ok)
1483
+ return createErrorResult('apilayer', 'verify_email', 'Request failed', statusToErrorCode(response.status));
1484
+ return { success: true, provider: 'apilayer', action: 'verify_email', data };
1485
+ },
1486
+ verify_number: async (params, creds) => {
1487
+ const key = creds.APILAYER_NUMVERIFY_KEY || creds.api_key;
1488
+ const { number } = params;
1489
+ if (!number)
1490
+ return createErrorResult('apilayer', 'verify_number', 'Missing required param: number', ERROR_CODES.INVALID_PARAMS);
1491
+ const url = new URL('https://api.apilayer.com/number_verification/validate');
1492
+ url.searchParams.set('number', number);
1493
+ const response = await fetchWithRetry(url.toString(), {
1494
+ headers: { 'apikey': key },
1495
+ }, { provider: 'apilayer', action: 'verify_number' });
1496
+ const data = await response.json();
1497
+ if (!response.ok)
1498
+ return createErrorResult('apilayer', 'verify_number', 'Request failed', statusToErrorCode(response.status));
1499
+ return { success: true, provider: 'apilayer', action: 'verify_number', data };
1500
+ },
1501
+ vat_check: async (params, creds) => {
1502
+ const key = creds.APILAYER_VATLAYER_KEY || creds.api_key;
1503
+ const { vat_number } = params;
1504
+ if (!vat_number)
1505
+ return createErrorResult('apilayer', 'vat_check', 'Missing required param: vat_number', ERROR_CODES.INVALID_PARAMS);
1506
+ const url = new URL('http://apilayer.net/api/validate');
1507
+ url.searchParams.set('access_key', key);
1508
+ url.searchParams.set('vat_number', vat_number);
1509
+ const response = await fetchWithRetry(url.toString(), {}, { provider: 'apilayer', action: 'vat_check' });
1510
+ const data = await response.json();
1511
+ if (!response.ok)
1512
+ return createErrorResult('apilayer', 'vat_check', 'Request failed', statusToErrorCode(response.status));
1513
+ return { success: true, provider: 'apilayer', action: 'vat_check', data };
1514
+ },
1515
+ world_news: async (params, creds) => {
1516
+ const key = creds.APILAYER_WORLDNEWS_KEY || creds.api_key;
1517
+ const { text, source_countries, language = 'en', number = 5 } = params;
1518
+ const url = new URL('https://api.apilayer.com/world_news/search-news');
1519
+ if (text)
1520
+ url.searchParams.set('text', text);
1521
+ if (source_countries)
1522
+ url.searchParams.set('source-countries', source_countries);
1523
+ url.searchParams.set('language', language);
1524
+ url.searchParams.set('number', number.toString());
1525
+ const response = await fetchWithRetry(url.toString(), {
1526
+ headers: { 'apikey': key },
1527
+ }, { provider: 'apilayer', action: 'world_news' });
1528
+ const data = await response.json();
1529
+ if (!response.ok)
1530
+ return createErrorResult('apilayer', 'world_news', 'Request failed', statusToErrorCode(response.status));
1531
+ return { success: true, provider: 'apilayer', action: 'world_news', data };
1532
+ },
1533
+ finance_news: async (params, creds) => {
1534
+ const key = creds.APILAYER_FINANCENEWS_KEY || creds.api_key;
1535
+ const { tickers, text, number = 5 } = params;
1536
+ const url = new URL('https://api.apilayer.com/financelayer/news');
1537
+ if (tickers)
1538
+ url.searchParams.set('tickers', tickers);
1539
+ if (text)
1540
+ url.searchParams.set('keywords', text);
1541
+ url.searchParams.set('limit', number.toString());
1542
+ const response = await fetchWithRetry(url.toString(), {
1543
+ headers: { 'apikey': key },
1544
+ }, { provider: 'apilayer', action: 'finance_news' });
1545
+ const data = await response.json();
1546
+ if (!response.ok)
1547
+ return createErrorResult('apilayer', 'finance_news', 'Request failed', statusToErrorCode(response.status));
1548
+ return { success: true, provider: 'apilayer', action: 'finance_news', data };
1549
+ },
1550
+ scrape: async (params, creds) => {
1551
+ const key = creds.APILAYER_SCRAPER_KEY || creds.api_key;
1552
+ const { url: targetUrl } = params;
1553
+ if (!targetUrl)
1554
+ return createErrorResult('apilayer', 'scrape', 'Missing required param: url', ERROR_CODES.INVALID_PARAMS);
1555
+ const url = new URL('https://api.apilayer.com/adv_scraper/scraper');
1556
+ url.searchParams.set('url', targetUrl);
1557
+ const response = await fetchWithRetry(url.toString(), {
1558
+ headers: { 'apikey': key },
1559
+ }, { provider: 'apilayer', action: 'scrape' });
1560
+ const data = await response.json();
1561
+ if (!response.ok)
1562
+ return createErrorResult('apilayer', 'scrape', 'Request failed', statusToErrorCode(response.status));
1563
+ return { success: true, provider: 'apilayer', action: 'scrape', data };
1564
+ },
1565
+ image_crop: async (params, creds) => {
1566
+ const key = creds.APILAYER_IMAGECROP_KEY || creds.api_key;
1567
+ const { url: imageUrl, width, height } = params;
1568
+ if (!imageUrl)
1569
+ return createErrorResult('apilayer', 'image_crop', 'Missing required param: url', ERROR_CODES.INVALID_PARAMS);
1570
+ const url = new URL('https://api.apilayer.com/image_crop/crop');
1571
+ url.searchParams.set('url', imageUrl);
1572
+ if (width)
1573
+ url.searchParams.set('width', width.toString());
1574
+ if (height)
1575
+ url.searchParams.set('height', height.toString());
1576
+ const response = await fetchWithRetry(url.toString(), {
1577
+ headers: { 'apikey': key },
1578
+ }, { provider: 'apilayer', action: 'image_crop' });
1579
+ const contentType = response.headers.get('content-type') || '';
1580
+ if (contentType.includes('image/')) {
1581
+ return { success: true, provider: 'apilayer', action: 'image_crop', data: { message: 'Image cropped', content_type: contentType } };
1582
+ }
1583
+ const data = await response.json();
1584
+ return { success: true, provider: 'apilayer', action: 'image_crop', data };
1585
+ },
1586
+ skills: async (params, creds) => {
1587
+ const key = creds.APILAYER_SKILLAPI_KEY || creds.api_key;
1588
+ const { q } = params;
1589
+ if (!q)
1590
+ return createErrorResult('apilayer', 'skills', 'Missing required param: q', ERROR_CODES.INVALID_PARAMS);
1591
+ const url = new URL('https://api.apilayer.com/skills');
1592
+ url.searchParams.set('q', q);
1593
+ const response = await fetchWithRetry(url.toString(), {
1594
+ headers: { 'apikey': key },
1595
+ }, { provider: 'apilayer', action: 'skills' });
1596
+ const data = await response.json();
1597
+ if (!response.ok)
1598
+ return createErrorResult('apilayer', 'skills', 'Request failed', statusToErrorCode(response.status));
1599
+ return { success: true, provider: 'apilayer', action: 'skills', data };
1600
+ },
1601
+ },
1357
1602
  };
1358
1603
  // Get available actions for a provider (static handlers only)
1359
1604
  export function getProviderActions(providerId) {