@nordsym/apiclaw 1.7.2 → 1.7.4
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/convex/_generated/api.d.ts +115 -0
- package/convex/_generated/api.js +23 -0
- package/convex/_generated/dataModel.d.ts +60 -0
- package/convex/_generated/server.d.ts +143 -0
- package/convex/_generated/server.js +93 -0
- package/convex/adminActivate.d.ts +3 -0
- package/convex/adminActivate.d.ts.map +1 -0
- package/convex/adminActivate.js +47 -0
- package/convex/adminActivate.js.map +1 -0
- package/convex/adminActivate.ts +54 -0
- package/convex/adminStats.d.ts +3 -0
- package/convex/adminStats.d.ts.map +1 -0
- package/convex/adminStats.js +42 -0
- package/convex/adminStats.js.map +1 -0
- package/convex/adminStats.ts +44 -0
- package/convex/agents.d.ts +76 -0
- package/convex/agents.d.ts.map +1 -0
- package/convex/agents.js +699 -0
- package/convex/agents.js.map +1 -0
- package/convex/agents.ts +814 -0
- package/convex/analytics.d.ts +5 -0
- package/convex/analytics.d.ts.map +1 -0
- package/convex/analytics.js +166 -0
- package/convex/analytics.js.map +1 -0
- package/convex/analytics.ts +186 -0
- package/convex/billing.d.ts +88 -0
- package/convex/billing.d.ts.map +1 -0
- package/convex/billing.js +655 -0
- package/convex/billing.js.map +1 -0
- package/convex/billing.ts +791 -0
- package/convex/capabilities.d.ts +9 -0
- package/convex/capabilities.d.ts.map +1 -0
- package/convex/capabilities.js +145 -0
- package/convex/capabilities.js.map +1 -0
- package/convex/capabilities.ts +157 -0
- package/convex/chains.d.ts +68 -0
- package/convex/chains.d.ts.map +1 -0
- package/convex/chains.js +1105 -0
- package/convex/chains.js.map +1 -0
- package/convex/chains.ts +1318 -0
- package/convex/credits.d.ts +25 -0
- package/convex/credits.d.ts.map +1 -0
- package/convex/credits.js +186 -0
- package/convex/credits.js.map +1 -0
- package/convex/credits.ts +211 -0
- package/convex/crons.d.ts +3 -0
- package/convex/crons.d.ts.map +1 -0
- package/convex/crons.js +17 -0
- package/convex/crons.js.map +1 -0
- package/convex/crons.ts +28 -0
- package/convex/directCall.d.ts +72 -0
- package/convex/directCall.d.ts.map +1 -0
- package/convex/directCall.js +627 -0
- package/convex/directCall.js.map +1 -0
- package/convex/directCall.ts +678 -0
- package/convex/earnProgress.d.ts +58 -0
- package/convex/earnProgress.d.ts.map +1 -0
- package/convex/earnProgress.js +649 -0
- package/convex/earnProgress.js.map +1 -0
- package/convex/earnProgress.ts +753 -0
- package/convex/email.d.ts +14 -0
- package/convex/email.d.ts.map +1 -0
- package/convex/email.js +300 -0
- package/convex/email.js.map +1 -0
- package/convex/email.ts +329 -0
- package/convex/feedback.d.ts +7 -0
- package/convex/feedback.d.ts.map +1 -0
- package/convex/feedback.js +227 -0
- package/convex/feedback.js.map +1 -0
- package/convex/feedback.ts +265 -0
- package/convex/http.d.ts +3 -0
- package/convex/http.d.ts.map +1 -0
- package/convex/http.js +1405 -0
- package/convex/http.js.map +1 -0
- package/convex/http.ts +1577 -0
- package/convex/inbound.d.ts +2 -0
- package/convex/inbound.d.ts.map +1 -0
- package/convex/inbound.js +32 -0
- package/convex/inbound.js.map +1 -0
- package/convex/inbound.ts +32 -0
- package/convex/logs.d.ts +38 -0
- package/convex/logs.d.ts.map +1 -0
- package/convex/logs.js +487 -0
- package/convex/logs.js.map +1 -0
- package/convex/logs.ts +550 -0
- package/convex/mou.d.ts +6 -0
- package/convex/mou.d.ts.map +1 -0
- package/convex/mou.js +82 -0
- package/convex/mou.js.map +1 -0
- package/convex/mou.ts +91 -0
- package/convex/providerKeys.d.ts +31 -0
- package/convex/providerKeys.d.ts.map +1 -0
- package/convex/providerKeys.js +257 -0
- package/convex/providerKeys.js.map +1 -0
- package/convex/providerKeys.ts +289 -0
- package/convex/providers.d.ts +32 -0
- package/convex/providers.d.ts.map +1 -0
- package/convex/providers.js +814 -0
- package/convex/providers.js.map +1 -0
- package/convex/providers.ts +909 -0
- package/convex/purchases.d.ts +7 -0
- package/convex/purchases.d.ts.map +1 -0
- package/convex/purchases.js +157 -0
- package/convex/purchases.js.map +1 -0
- package/convex/purchases.ts +183 -0
- package/convex/ratelimit.d.ts +4 -0
- package/convex/ratelimit.d.ts.map +1 -0
- package/convex/ratelimit.js +91 -0
- package/convex/ratelimit.js.map +1 -0
- package/convex/ratelimit.ts +104 -0
- package/convex/schema.ts +802 -0
- package/convex/searchLogs.d.ts +4 -0
- package/convex/searchLogs.d.ts.map +1 -0
- package/convex/searchLogs.js +129 -0
- package/convex/searchLogs.js.map +1 -0
- package/convex/searchLogs.ts +146 -0
- package/convex/seedAPILayerAPIs.d.ts +7 -0
- package/convex/seedAPILayerAPIs.d.ts.map +1 -0
- package/convex/seedAPILayerAPIs.js +177 -0
- package/convex/seedAPILayerAPIs.js.map +1 -0
- package/convex/seedAPILayerAPIs.ts +191 -0
- package/convex/seedDirectCallConfigs.d.ts +2 -0
- package/convex/seedDirectCallConfigs.d.ts.map +1 -0
- package/convex/seedDirectCallConfigs.js +324 -0
- package/convex/seedDirectCallConfigs.js.map +1 -0
- package/convex/seedDirectCallConfigs.ts +336 -0
- package/convex/seedPratham.d.ts +6 -0
- package/convex/seedPratham.d.ts.map +1 -0
- package/convex/seedPratham.js +150 -0
- package/convex/seedPratham.js.map +1 -0
- package/convex/seedPratham.ts +161 -0
- package/convex/spendAlerts.d.ts +36 -0
- package/convex/spendAlerts.d.ts.map +1 -0
- package/convex/spendAlerts.js +380 -0
- package/convex/spendAlerts.js.map +1 -0
- package/convex/spendAlerts.ts +442 -0
- package/convex/stripeActions.d.ts +19 -0
- package/convex/stripeActions.d.ts.map +1 -0
- package/convex/stripeActions.js +411 -0
- package/convex/stripeActions.js.map +1 -0
- package/convex/stripeActions.ts +512 -0
- package/convex/teams.d.ts +21 -0
- package/convex/teams.d.ts.map +1 -0
- package/convex/teams.js +215 -0
- package/convex/teams.js.map +1 -0
- package/convex/teams.ts +243 -0
- package/convex/telemetry.d.ts +4 -0
- package/convex/telemetry.d.ts.map +1 -0
- package/convex/telemetry.js +74 -0
- package/convex/telemetry.js.map +1 -0
- package/convex/telemetry.ts +81 -0
- package/convex/tsconfig.json +25 -0
- package/convex/updateAPIStatus.d.ts +6 -0
- package/convex/updateAPIStatus.d.ts.map +1 -0
- package/convex/updateAPIStatus.js +40 -0
- package/convex/updateAPIStatus.js.map +1 -0
- package/convex/updateAPIStatus.ts +45 -0
- package/convex/usage.d.ts +27 -0
- package/convex/usage.d.ts.map +1 -0
- package/convex/usage.js +229 -0
- package/convex/usage.js.map +1 -0
- package/convex/usage.ts +260 -0
- package/convex/waitlist.d.ts +4 -0
- package/convex/waitlist.d.ts.map +1 -0
- package/convex/waitlist.js +49 -0
- package/convex/waitlist.js.map +1 -0
- package/convex/waitlist.ts +55 -0
- package/convex/webhooks.d.ts +12 -0
- package/convex/webhooks.d.ts.map +1 -0
- package/convex/webhooks.js +410 -0
- package/convex/webhooks.js.map +1 -0
- package/convex/webhooks.ts +494 -0
- package/convex/workspaces.d.ts +31 -0
- package/convex/workspaces.d.ts.map +1 -0
- package/convex/workspaces.js +975 -0
- package/convex/workspaces.js.map +1 -0
- package/convex/workspaces.ts +1130 -0
- package/dist/bin.js +0 -0
- package/dist/capability-router.js +1 -1
- package/dist/capability-router.js.map +1 -1
- package/dist/execute.d.ts +2 -0
- package/dist/execute.d.ts.map +1 -1
- package/dist/execute.js +18 -4
- package/dist/execute.js.map +1 -1
- package/dist/http-api.js +1 -1
- package/dist/http-api.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-analytics.d.ts +32 -0
- package/dist/mcp-analytics.d.ts.map +1 -0
- package/dist/mcp-analytics.js +130 -0
- package/dist/mcp-analytics.js.map +1 -0
- package/package.json +1 -1
- package/dist/chain-types.d.ts +0 -187
- package/dist/chain-types.d.ts.map +0 -1
- package/dist/chain-types.js +0 -33
- package/dist/chain-types.js.map +0 -1
- package/dist/registry/apis.json.bak +0 -248811
- package/dist/src/bin.js +0 -17
- package/dist/src/capability-router.js +0 -240
- package/dist/src/chainExecutor.js +0 -451
- package/dist/src/chainResolver.js +0 -518
- package/dist/src/cli/commands/doctor.js +0 -324
- package/dist/src/cli/commands/mcp-install.js +0 -255
- package/dist/src/cli/commands/restore.js +0 -259
- package/dist/src/cli/commands/setup.js +0 -205
- package/dist/src/cli/commands/uninstall.js +0 -188
- package/dist/src/cli/index.js +0 -111
- package/dist/src/cli.js +0 -302
- package/dist/src/confirmation.js +0 -240
- package/dist/src/credentials.js +0 -357
- package/dist/src/credits.js +0 -260
- package/dist/src/crypto.js +0 -66
- package/dist/src/discovery.js +0 -504
- package/dist/src/enterprise/env.js +0 -123
- package/dist/src/enterprise/script-generator.js +0 -460
- package/dist/src/execute-dynamic.js +0 -473
- package/dist/src/execute.js +0 -1727
- package/dist/src/index.js +0 -2062
- package/dist/src/metered.js +0 -80
- package/dist/src/open-apis.js +0 -276
- package/dist/src/proxy.js +0 -28
- package/dist/src/session.js +0 -86
- package/dist/src/stripe.js +0 -407
- package/dist/src/telemetry.js +0 -49
- package/dist/src/types.js +0 -2
- package/dist/src/utils/backup.js +0 -181
- package/dist/src/utils/config.js +0 -220
- package/dist/src/utils/os.js +0 -105
- package/dist/src/utils/paths.js +0 -159
package/dist/src/bin.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* APIClaw Entry Point
|
|
4
|
-
*
|
|
5
|
-
* - No args or MCP-related args → Run MCP server
|
|
6
|
-
* - setup/doctor/restore/uninstall → Run CLI
|
|
7
|
-
*/
|
|
8
|
-
const cliCommands = ['setup', 'mcp-install', 'mcp-uninstall', 'doctor', 'restore', 'uninstall', 'help', '--help', '-h', '--version', '-V'];
|
|
9
|
-
const firstArg = process.argv[2];
|
|
10
|
-
if (!firstArg || !cliCommands.includes(firstArg)) {
|
|
11
|
-
// Run MCP server
|
|
12
|
-
import('./index.js');
|
|
13
|
-
}
|
|
14
|
-
else {
|
|
15
|
-
// Run CLI
|
|
16
|
-
import('./cli/index.js');
|
|
17
|
-
}
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* APIClaw Capability Router
|
|
3
|
-
* Routes capability requests to the best available provider
|
|
4
|
-
*/
|
|
5
|
-
import { executeAPICall } from './execute.js';
|
|
6
|
-
import { logAPICall } from './analytics.js';
|
|
7
|
-
// Convex HTTP API for capability queries
|
|
8
|
-
const CONVEX_URL = process.env.NEXT_PUBLIC_CONVEX_URL || 'https://adventurous-avocet-799.convex.cloud';
|
|
9
|
-
/**
|
|
10
|
-
* Query Convex for providers that support a capability
|
|
11
|
-
*/
|
|
12
|
-
async function getProvidersForCapability(capabilityId, region) {
|
|
13
|
-
try {
|
|
14
|
-
const res = await fetch(`${CONVEX_URL}/api/query`, {
|
|
15
|
-
method: 'POST',
|
|
16
|
-
headers: { 'Content-Type': 'application/json' },
|
|
17
|
-
body: JSON.stringify({
|
|
18
|
-
path: 'capabilities:getProviders',
|
|
19
|
-
args: { capabilityId, region },
|
|
20
|
-
}),
|
|
21
|
-
});
|
|
22
|
-
if (!res.ok)
|
|
23
|
-
return [];
|
|
24
|
-
const data = await res.json();
|
|
25
|
-
if (Array.isArray(data))
|
|
26
|
-
return data;
|
|
27
|
-
return (data.value || []);
|
|
28
|
-
}
|
|
29
|
-
catch (e) {
|
|
30
|
-
console.error('Failed to fetch capability providers:', e);
|
|
31
|
-
return [];
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Map capability params to provider-specific params
|
|
36
|
-
*/
|
|
37
|
-
function mapParams(params, mapping) {
|
|
38
|
-
const result = {};
|
|
39
|
-
for (const [capParam, value] of Object.entries(params)) {
|
|
40
|
-
const providerParam = mapping[capParam] || capParam;
|
|
41
|
-
result[providerParam] = value;
|
|
42
|
-
}
|
|
43
|
-
return result;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Log capability usage to Convex
|
|
47
|
-
*/
|
|
48
|
-
async function logCapabilityUsage(params) {
|
|
49
|
-
try {
|
|
50
|
-
await fetch(`${CONVEX_URL}/api/mutation`, {
|
|
51
|
-
method: 'POST',
|
|
52
|
-
headers: { 'Content-Type': 'application/json' },
|
|
53
|
-
body: JSON.stringify({
|
|
54
|
-
path: 'capabilities:logUsage',
|
|
55
|
-
args: params,
|
|
56
|
-
}),
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
catch (e) {
|
|
60
|
-
console.error('Failed to log capability usage:', e);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Execute a capability request with automatic provider selection and fallback
|
|
65
|
-
*/
|
|
66
|
-
export async function executeCapability(capabilityId, action, params, userId, preferences = {}) {
|
|
67
|
-
const startTime = Date.now();
|
|
68
|
-
const enableFallback = preferences.fallback !== false; // Default true
|
|
69
|
-
// Get providers for this capability
|
|
70
|
-
const providers = await getProvidersForCapability(capabilityId, preferences.region);
|
|
71
|
-
if (providers.length === 0) {
|
|
72
|
-
return {
|
|
73
|
-
success: false,
|
|
74
|
-
capability: capabilityId,
|
|
75
|
-
action,
|
|
76
|
-
fallbackAttempted: false,
|
|
77
|
-
error: `No providers available for capability: ${capabilityId}`,
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
// Filter by max price if specified
|
|
81
|
-
let filteredProviders = providers;
|
|
82
|
-
if (preferences.maxPrice !== undefined) {
|
|
83
|
-
filteredProviders = providers.filter(p => p.pricePerUnit <= preferences.maxPrice);
|
|
84
|
-
}
|
|
85
|
-
// Prefer specific provider if requested
|
|
86
|
-
if (preferences.preferredProvider) {
|
|
87
|
-
const preferred = filteredProviders.find(p => p.providerId === preferences.preferredProvider);
|
|
88
|
-
if (preferred) {
|
|
89
|
-
filteredProviders = [preferred, ...filteredProviders.filter(p => p.providerId !== preferences.preferredProvider)];
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
if (filteredProviders.length === 0) {
|
|
93
|
-
return {
|
|
94
|
-
success: false,
|
|
95
|
-
capability: capabilityId,
|
|
96
|
-
action,
|
|
97
|
-
fallbackAttempted: false,
|
|
98
|
-
error: 'No providers match your preferences (region/price)',
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
// Try providers in order
|
|
102
|
-
let fallbackAttempted = false;
|
|
103
|
-
let lastError = '';
|
|
104
|
-
for (let i = 0; i < filteredProviders.length; i++) {
|
|
105
|
-
const provider = filteredProviders[i];
|
|
106
|
-
const isFirstAttempt = i === 0;
|
|
107
|
-
if (!isFirstAttempt) {
|
|
108
|
-
fallbackAttempted = true;
|
|
109
|
-
}
|
|
110
|
-
try {
|
|
111
|
-
// Map params to provider-specific format
|
|
112
|
-
const mappedParams = mapParams(params, provider.paramMapping || {});
|
|
113
|
-
// Execute via existing executeAPICall
|
|
114
|
-
const result = await executeAPICall(provider.providerId, action, mappedParams, userId);
|
|
115
|
-
const latencyMs = Date.now() - startTime;
|
|
116
|
-
if (result.success) {
|
|
117
|
-
// Log successful usage
|
|
118
|
-
logCapabilityUsage({
|
|
119
|
-
capabilityId,
|
|
120
|
-
providerId: provider.providerId,
|
|
121
|
-
userId,
|
|
122
|
-
action,
|
|
123
|
-
success: true,
|
|
124
|
-
fallbackUsed: fallbackAttempted,
|
|
125
|
-
fallbackReason: fallbackAttempted ? lastError : undefined,
|
|
126
|
-
latencyMs,
|
|
127
|
-
cost: provider.pricePerUnit,
|
|
128
|
-
currency: provider.currency,
|
|
129
|
-
});
|
|
130
|
-
// Also log to file-based analytics
|
|
131
|
-
logAPICall({
|
|
132
|
-
timestamp: new Date().toISOString(),
|
|
133
|
-
provider: provider.providerId,
|
|
134
|
-
action,
|
|
135
|
-
type: 'direct',
|
|
136
|
-
userId,
|
|
137
|
-
success: true,
|
|
138
|
-
latencyMs,
|
|
139
|
-
});
|
|
140
|
-
return {
|
|
141
|
-
success: true,
|
|
142
|
-
capability: capabilityId,
|
|
143
|
-
action,
|
|
144
|
-
providerUsed: provider.providerId,
|
|
145
|
-
fallbackAttempted,
|
|
146
|
-
fallbackReason: fallbackAttempted ? lastError : undefined,
|
|
147
|
-
data: result.data,
|
|
148
|
-
cost: provider.pricePerUnit,
|
|
149
|
-
currency: provider.currency,
|
|
150
|
-
latencyMs,
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
// Provider returned error, try next
|
|
154
|
-
lastError = result.error || 'Unknown error';
|
|
155
|
-
if (!enableFallback) {
|
|
156
|
-
break;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
catch (e) {
|
|
160
|
-
lastError = e.message || 'Provider execution failed';
|
|
161
|
-
if (!enableFallback) {
|
|
162
|
-
break;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
// All providers failed
|
|
167
|
-
const latencyMs = Date.now() - startTime;
|
|
168
|
-
logCapabilityUsage({
|
|
169
|
-
capabilityId,
|
|
170
|
-
providerId: filteredProviders[0].providerId,
|
|
171
|
-
userId,
|
|
172
|
-
action,
|
|
173
|
-
success: false,
|
|
174
|
-
fallbackUsed: fallbackAttempted,
|
|
175
|
-
fallbackReason: lastError,
|
|
176
|
-
latencyMs,
|
|
177
|
-
cost: 0,
|
|
178
|
-
currency: 'SEK',
|
|
179
|
-
});
|
|
180
|
-
return {
|
|
181
|
-
success: false,
|
|
182
|
-
capability: capabilityId,
|
|
183
|
-
action,
|
|
184
|
-
fallbackAttempted,
|
|
185
|
-
error: `All providers failed. Last error: ${lastError}`,
|
|
186
|
-
latencyMs,
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* List available capabilities
|
|
191
|
-
*/
|
|
192
|
-
export async function listCapabilities() {
|
|
193
|
-
try {
|
|
194
|
-
const res = await fetch(`${CONVEX_URL}/api/query`, {
|
|
195
|
-
method: 'POST',
|
|
196
|
-
headers: { 'Content-Type': 'application/json' },
|
|
197
|
-
body: JSON.stringify({
|
|
198
|
-
path: 'capabilities:list',
|
|
199
|
-
args: {},
|
|
200
|
-
}),
|
|
201
|
-
});
|
|
202
|
-
if (!res.ok)
|
|
203
|
-
return [];
|
|
204
|
-
const data = await res.json();
|
|
205
|
-
const capabilities = Array.isArray(data) ? data : (data.value || []);
|
|
206
|
-
return capabilities.map(c => ({
|
|
207
|
-
id: c.id,
|
|
208
|
-
name: c.name,
|
|
209
|
-
category: c.category,
|
|
210
|
-
}));
|
|
211
|
-
}
|
|
212
|
-
catch (e) {
|
|
213
|
-
return [];
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Check if a capability exists
|
|
218
|
-
*/
|
|
219
|
-
export async function hasCapability(capabilityId) {
|
|
220
|
-
try {
|
|
221
|
-
const res = await fetch(`${CONVEX_URL}/api/query`, {
|
|
222
|
-
method: 'POST',
|
|
223
|
-
headers: { 'Content-Type': 'application/json' },
|
|
224
|
-
body: JSON.stringify({
|
|
225
|
-
path: 'capabilities:getById',
|
|
226
|
-
args: { id: capabilityId },
|
|
227
|
-
}),
|
|
228
|
-
});
|
|
229
|
-
if (!res.ok)
|
|
230
|
-
return false;
|
|
231
|
-
const data = await res.json();
|
|
232
|
-
if (data && typeof data === 'object' && 'value' in data) {
|
|
233
|
-
return !!data.value;
|
|
234
|
-
}
|
|
235
|
-
return !!data;
|
|
236
|
-
}
|
|
237
|
-
catch (e) {
|
|
238
|
-
return false;
|
|
239
|
-
}
|
|
240
|
-
}
|