@nordsym/apiclaw 1.5.17 → 1.5.19
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/http.js.map +1 -1
- package/convex/http.ts +516 -0
- package/dist/analytics.d.ts +0 -4
- package/dist/analytics.d.ts.map +1 -1
- package/dist/analytics.js +0 -1
- package/dist/analytics.js.map +1 -1
- package/dist/bin.js +1 -1
- package/dist/cli/commands/mcp-install.d.ts.map +1 -1
- package/dist/cli/commands/mcp-install.js +8 -87
- package/dist/cli/commands/mcp-install.js.map +1 -1
- package/dist/cli/index.js +0 -7
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +38 -43
- package/dist/credentials.js.map +1 -1
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +82 -191
- package/dist/discovery.js.map +1 -1
- package/dist/http-api.d.ts.map +1 -1
- package/dist/http-api.js +33 -17
- package/dist/http-api.js.map +1 -1
- package/dist/proxy.js +1 -1
- package/dist/proxy.js.map +1 -1
- package/landing/next-env.d.ts +0 -1
- package/landing/src/app/api/auth/magic-link/route.ts +1 -1
- package/landing/src/app/auth/verify/page.tsx +0 -6
- package/landing/src/app/dashboard/verify/page.tsx +0 -6
- package/landing/src/app/join/page.tsx +0 -6
- package/landing/src/app/layout.tsx +2 -2
- package/landing/src/app/login/page.tsx +1 -1
- package/landing/src/app/mou/[partnerId]/page.tsx +0 -6
- package/landing/src/app/page.tsx +18 -39
- package/landing/src/app/providers/dashboard/[apiId]/actions/[actionId]/edit/page.tsx +0 -6
- package/landing/src/app/providers/dashboard/[apiId]/actions/new/page.tsx +0 -5
- package/landing/src/app/providers/dashboard/[apiId]/actions/page.tsx +0 -5
- package/landing/src/app/providers/dashboard/[apiId]/direct-call/page.tsx +1 -6
- package/landing/src/app/providers/dashboard/[apiId]/page.tsx +0 -5
- package/landing/src/app/providers/dashboard/[apiId]/test/page.tsx +0 -5
- package/landing/src/app/providers/dashboard/layout.tsx +6 -6
- package/landing/src/app/providers/dashboard/login/page.tsx +1 -1
- package/landing/src/app/providers/dashboard/page.tsx +1 -1
- package/landing/src/app/providers/dashboard/verify/page.tsx +0 -6
- package/landing/src/app/providers/layout.tsx +1 -1
- package/landing/src/app/upgrade/page.tsx +0 -6
- package/landing/src/app/workspace/page.tsx +0 -6
- package/landing/src/components/HeroTabs.tsx +2 -2
- package/landing/src/components/{Workspace.tsx → ProviderDashboard.tsx} +2 -2
- package/landing/src/components/VideoDemo.tsx +10 -21
- package/landing/src/lib/mock-data.ts +1 -1
- package/landing/src/lib/stats.json +1 -1
- package/package.json +3 -8
- package/src/analytics.ts +0 -5
- package/src/bin.ts +1 -1
- package/src/cli/commands/mcp-install.ts +8 -90
- package/src/cli/index.ts +0 -8
- package/src/credentials.ts +39 -44
- package/src/discovery.ts +82 -191
- package/src/http-api.ts +34 -18
- package/src/proxy.ts +1 -1
- package/APILAYER_STATUS_2026-03-24.md +0 -38
- package/CHANGELOG-WHITELIST-V2.md +0 -269
- package/HIVR-WHITELIST-STATUS.md +0 -205
- package/HIVR-WHITELIST.md +0 -148
- package/TERMINOLOGY-AUDIT.md +0 -99
- package/TERMINOLOGY-FIXED.md +0 -74
- package/VIDEO-DEMO-GUIDE.md +0 -82
- package/WHITELIST-ARCHITECTURE.md +0 -379
- package/api/discover.ts +0 -71
- package/api/health.ts +0 -20
- package/convex/adminActivate.d.ts +0 -3
- package/convex/adminActivate.js +0 -47
- package/convex/adminStats.d.ts +0 -3
- package/convex/adminStats.js +0 -42
- package/convex/agents.d.ts +0 -54
- package/convex/agents.js +0 -499
- package/convex/analytics.d.ts +0 -5
- package/convex/analytics.js +0 -166
- package/convex/billing.d.ts +0 -88
- package/convex/billing.js +0 -655
- package/convex/capabilities.d.ts +0 -9
- package/convex/capabilities.js +0 -145
- package/convex/chains.d.ts +0 -67
- package/convex/chains.js +0 -1042
- package/convex/credits.d.ts +0 -25
- package/convex/credits.js +0 -186
- package/convex/crons.d.ts +0 -3
- package/convex/crons.js +0 -17
- package/convex/directCall.d.ts +0 -72
- package/convex/directCall.js +0 -627
- package/convex/earnProgress.d.ts +0 -58
- package/convex/earnProgress.js +0 -649
- package/convex/email.d.ts +0 -14
- package/convex/email.js +0 -300
- package/convex/feedback.d.ts +0 -7
- package/convex/feedback.js +0 -227
- package/convex/http.d.ts +0 -3
- package/convex/http.js +0 -910
- package/convex/logs.d.ts +0 -38
- package/convex/logs.js +0 -487
- package/convex/mou.d.ts +0 -6
- package/convex/mou.js +0 -82
- package/convex/providerKeys.d.ts +0 -31
- package/convex/providerKeys.js +0 -257
- package/convex/providers.d.ts +0 -29
- package/convex/providers.js +0 -756
- package/convex/purchases.d.ts +0 -7
- package/convex/purchases.js +0 -157
- package/convex/ratelimit.d.ts +0 -4
- package/convex/ratelimit.js +0 -91
- package/convex/searchLogs.d.ts +0 -4
- package/convex/searchLogs.js +0 -129
- package/convex/spendAlerts.d.ts +0 -36
- package/convex/spendAlerts.js +0 -380
- package/convex/stripeActions.d.ts +0 -19
- package/convex/stripeActions.js +0 -411
- package/convex/teams.d.ts +0 -21
- package/convex/teams.js +0 -215
- package/convex/telemetry.d.ts +0 -4
- package/convex/telemetry.js +0 -74
- package/convex/usage.d.ts +0 -27
- package/convex/usage.js +0 -229
- package/convex/waitlist.d.ts +0 -4
- package/convex/waitlist.js +0 -49
- package/convex/webhooks.d.ts +0 -12
- package/convex/webhooks.js +0 -410
- package/convex/workspaces.d.ts +0 -29
- package/convex/workspaces.js +0 -880
- package/direct-test.mjs +0 -51
- package/dist/access-control.d.ts +0 -45
- package/dist/access-control.d.ts.map +0 -1
- package/dist/access-control.js +0 -142
- package/dist/access-control.js.map +0 -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/convex/adminActivate.js +0 -46
- package/dist/convex/adminStats.js +0 -41
- package/dist/convex/agents.js +0 -498
- package/dist/convex/analytics.js +0 -165
- package/dist/convex/billing.js +0 -654
- package/dist/convex/capabilities.js +0 -144
- package/dist/convex/chains.js +0 -1041
- package/dist/convex/credits.js +0 -185
- package/dist/convex/crons.js +0 -16
- package/dist/convex/directCall.js +0 -626
- package/dist/convex/earnProgress.js +0 -648
- package/dist/convex/email.js +0 -299
- package/dist/convex/feedback.js +0 -226
- package/dist/convex/http.js +0 -909
- package/dist/convex/logs.js +0 -486
- package/dist/convex/mou.js +0 -81
- package/dist/convex/providerKeys.js +0 -256
- package/dist/convex/providers.js +0 -755
- package/dist/convex/purchases.js +0 -156
- package/dist/convex/ratelimit.js +0 -90
- package/dist/convex/schema.js +0 -709
- package/dist/convex/searchLogs.js +0 -128
- package/dist/convex/spendAlerts.js +0 -379
- package/dist/convex/stripeActions.js +0 -410
- package/dist/convex/teams.js +0 -214
- package/dist/convex/telemetry.js +0 -73
- package/dist/convex/usage.js +0 -228
- package/dist/convex/waitlist.js +0 -48
- package/dist/convex/webhooks.js +0 -409
- package/dist/convex/workspaces.js +0 -879
- package/dist/hivr-whitelist.d.ts +0 -18
- package/dist/hivr-whitelist.d.ts.map +0 -1
- package/dist/hivr-whitelist.js +0 -95
- package/dist/hivr-whitelist.js.map +0 -1
- package/dist/http-server-minimal.d.ts +0 -7
- package/dist/http-server-minimal.d.ts.map +0 -1
- package/dist/http-server-minimal.js +0 -126
- package/dist/http-server-minimal.js.map +0 -1
- package/dist/product-whitelist.d.ts +0 -37
- package/dist/product-whitelist.d.ts.map +0 -1
- package/dist/product-whitelist.js +0 -203
- package/dist/product-whitelist.js.map +0 -1
- package/dist/src/analytics.js +0 -129
- 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/landing/pages/api/discover.ts +0 -43
- package/landing/pages/api/health.ts +0 -20
- package/scripts/test-whitelist-v2.sh +0 -128
- package/src/access-control.ts +0 -174
- package/src/hivr-whitelist.ts +0 -110
- package/src/http-server-minimal.ts +0 -154
- package/src/product-whitelist.ts +0 -246
- package/test-actual-handlers.ts +0 -92
- package/test-apilayer-all-14.ts +0 -249
- package/test-apilayer-fixed.ts +0 -248
- package/test-direct-endpoints.ts +0 -174
- package/test-exact-endpoints.ts +0 -144
- package/test-final.ts +0 -83
- package/test-full-routing.ts +0 -100
- package/test-handlers-correct.ts +0 -217
- package/test-numverify-key.ts +0 -41
- package/test-via-handlers.ts +0 -92
- package/test-worldnews.mjs +0 -26
package/direct-test.mjs
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { executeAPICall } from './dist/execute.js';
|
|
2
|
-
|
|
3
|
-
const tests = [
|
|
4
|
-
'exchange_rates', 'market_data', 'aviation', 'pdf_generate',
|
|
5
|
-
'screenshot', 'verify_email', 'verify_number', 'vat_check',
|
|
6
|
-
'world_news', 'finance_news', 'scrape', 'image_crop',
|
|
7
|
-
'skills', 'form_submit'
|
|
8
|
-
];
|
|
9
|
-
|
|
10
|
-
const params = {
|
|
11
|
-
exchange_rates: { base: 'USD', symbols: 'EUR' },
|
|
12
|
-
market_data: { symbols: 'AAPL' },
|
|
13
|
-
aviation: { flight_iata: 'AA100' },
|
|
14
|
-
pdf_generate: { document_url: 'https://example.com' },
|
|
15
|
-
screenshot: { url: 'https://example.com' },
|
|
16
|
-
verify_email: { email: 'test@example.com' },
|
|
17
|
-
verify_number: { number: '+14158586273' },
|
|
18
|
-
vat_check: { vat_number: 'LU26375245' },
|
|
19
|
-
world_news: { url: 'https://example.com/news' },
|
|
20
|
-
finance_news: { tickers: 'AAPL' },
|
|
21
|
-
scrape: { url: 'https://example.com' },
|
|
22
|
-
image_crop: { url: 'https://example.com/img.jpg', width: '200' },
|
|
23
|
-
skills: { q: 'javascript' },
|
|
24
|
-
form_submit: { endpoint: 'test', data: {} }
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
let working = 0, blocked = 0;
|
|
28
|
-
|
|
29
|
-
console.log('🔬 Testing all 14 APILayer services...\n');
|
|
30
|
-
|
|
31
|
-
for (const action of tests) {
|
|
32
|
-
try {
|
|
33
|
-
const result = await executeAPICall('apilayer', action, params[action]);
|
|
34
|
-
|
|
35
|
-
if (result.success) {
|
|
36
|
-
console.log(`✅ ${action}`);
|
|
37
|
-
working++;
|
|
38
|
-
} else {
|
|
39
|
-
const errMsg = result.error || result.message || 'Failed';
|
|
40
|
-
console.log(`❌ ${action}: ${errMsg.substring(0, 60)}`);
|
|
41
|
-
blocked++;
|
|
42
|
-
}
|
|
43
|
-
} catch (e) {
|
|
44
|
-
console.log(`❌ ${action}: ${e.message.substring(0, 60)}`);
|
|
45
|
-
blocked++;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
console.log(`\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
|
|
50
|
-
console.log(`📊 FAKTISKA SIFFROR: ${working}/14 working, ${blocked}/14 blocked`);
|
|
51
|
-
console.log(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n`);
|
package/dist/access-control.d.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/access-control.js
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"access-control.js","sourceRoot":"","sources":["../src/access-control.ts"],"names":[],"mappings":"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"}
|
package/dist/chain-types.d.ts
DELETED
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Chain Execution Types for APIClaw
|
|
3
|
-
*
|
|
4
|
-
* Enables multi-step API orchestration with:
|
|
5
|
-
* - Sequential execution
|
|
6
|
-
* - Parallel execution
|
|
7
|
-
* - Conditional branching
|
|
8
|
-
* - Loops (forEach, map-reduce)
|
|
9
|
-
* - Error handling & retry
|
|
10
|
-
* - Cross-step references ($stepId.property)
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* Base step configuration
|
|
14
|
-
*/
|
|
15
|
-
export interface ChainStepBase {
|
|
16
|
-
id: string;
|
|
17
|
-
provider: string;
|
|
18
|
-
action: string;
|
|
19
|
-
params?: Record<string, any>;
|
|
20
|
-
onError?: ErrorHandler;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Parallel execution step - runs multiple steps concurrently
|
|
24
|
-
*/
|
|
25
|
-
export interface ParallelStep {
|
|
26
|
-
parallel: ChainStepBase[];
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Conditional step - executes based on condition
|
|
30
|
-
*/
|
|
31
|
-
export interface ConditionalStep {
|
|
32
|
-
if: string;
|
|
33
|
-
then: ChainStepBase | ChainStep;
|
|
34
|
-
else?: ChainStepBase | ChainStep;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Loop step - iterates over array
|
|
38
|
-
*/
|
|
39
|
-
export interface ForEachStep {
|
|
40
|
-
forEach: string;
|
|
41
|
-
as: string;
|
|
42
|
-
do: ChainStepBase;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Map step - transforms array
|
|
46
|
-
*/
|
|
47
|
-
export interface MapStep {
|
|
48
|
-
map: {
|
|
49
|
-
input: string;
|
|
50
|
-
fn: ChainStepBase;
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Reduce step - aggregates results
|
|
55
|
-
*/
|
|
56
|
-
export interface ReduceStep {
|
|
57
|
-
reduce: {
|
|
58
|
-
input: string;
|
|
59
|
-
fn: ChainStepBase;
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Union type for all step variants
|
|
64
|
-
*/
|
|
65
|
-
export type ChainStep = ChainStepBase | ParallelStep | ConditionalStep | ForEachStep | MapStep | ReduceStep;
|
|
66
|
-
export interface RetryConfig {
|
|
67
|
-
attempts?: number;
|
|
68
|
-
maxAttempts?: number;
|
|
69
|
-
backoff?: number[] | 'exponential' | 'linear';
|
|
70
|
-
backoffMs?: number;
|
|
71
|
-
}
|
|
72
|
-
export interface ErrorHandler {
|
|
73
|
-
retry?: RetryConfig;
|
|
74
|
-
fallback?: ChainStepBase;
|
|
75
|
-
abort?: boolean;
|
|
76
|
-
}
|
|
77
|
-
export type ErrorPolicy = 'fail-fast' | 'best-effort' | 'transactional';
|
|
78
|
-
export interface RollbackAction {
|
|
79
|
-
if: string;
|
|
80
|
-
do: ChainStepBase;
|
|
81
|
-
}
|
|
82
|
-
export interface ChainErrorPolicy {
|
|
83
|
-
mode: ErrorPolicy;
|
|
84
|
-
rollback?: RollbackAction[];
|
|
85
|
-
}
|
|
86
|
-
export interface ChainLimits {
|
|
87
|
-
maxSteps?: number;
|
|
88
|
-
maxParallel?: number;
|
|
89
|
-
maxCost?: {
|
|
90
|
-
cents: number;
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
export interface ChainOptions {
|
|
94
|
-
continueOnError?: boolean;
|
|
95
|
-
timeout?: number;
|
|
96
|
-
async?: boolean;
|
|
97
|
-
webhook?: string;
|
|
98
|
-
errorPolicy?: ChainErrorPolicy;
|
|
99
|
-
limits?: ChainLimits;
|
|
100
|
-
}
|
|
101
|
-
export interface ChainRequest extends ChainOptions {
|
|
102
|
-
chain: ChainStep[];
|
|
103
|
-
}
|
|
104
|
-
export type StepStatus = 'pending' | 'running' | 'completed' | 'failed' | 'skipped';
|
|
105
|
-
export interface StepResult {
|
|
106
|
-
id: string;
|
|
107
|
-
status: StepStatus;
|
|
108
|
-
result?: any;
|
|
109
|
-
error?: string;
|
|
110
|
-
errorCode?: string;
|
|
111
|
-
latencyMs: number;
|
|
112
|
-
cost?: {
|
|
113
|
-
cents: number;
|
|
114
|
-
};
|
|
115
|
-
retryAttempts?: number;
|
|
116
|
-
}
|
|
117
|
-
export interface ChainSuccessResponse {
|
|
118
|
-
success: true;
|
|
119
|
-
chainId: string;
|
|
120
|
-
steps: StepResult[];
|
|
121
|
-
finalResult: any;
|
|
122
|
-
totalLatencyMs: number;
|
|
123
|
-
totalCost: {
|
|
124
|
-
cents: number;
|
|
125
|
-
};
|
|
126
|
-
tokensSaved: number;
|
|
127
|
-
}
|
|
128
|
-
export interface ChainErrorResponse {
|
|
129
|
-
success: false;
|
|
130
|
-
chainId: string;
|
|
131
|
-
completedSteps: string[];
|
|
132
|
-
failedStep: {
|
|
133
|
-
id: string;
|
|
134
|
-
error: string;
|
|
135
|
-
code?: string;
|
|
136
|
-
retryAfter?: number;
|
|
137
|
-
};
|
|
138
|
-
partialResults: Record<string, any>;
|
|
139
|
-
canResume: boolean;
|
|
140
|
-
resumeToken?: string;
|
|
141
|
-
}
|
|
142
|
-
export type ChainResponse = ChainSuccessResponse | ChainErrorResponse;
|
|
143
|
-
export interface AsyncChainResponse {
|
|
144
|
-
chainId: string;
|
|
145
|
-
status: 'running' | 'completed' | 'failed';
|
|
146
|
-
estimatedCompletion?: string;
|
|
147
|
-
statusUrl: string;
|
|
148
|
-
}
|
|
149
|
-
export interface ChainStatusResponse {
|
|
150
|
-
chainId: string;
|
|
151
|
-
status: 'pending' | 'running' | 'completed' | 'failed';
|
|
152
|
-
progress: {
|
|
153
|
-
completedSteps: number;
|
|
154
|
-
totalSteps: number;
|
|
155
|
-
currentStep?: string;
|
|
156
|
-
};
|
|
157
|
-
startedAt: string;
|
|
158
|
-
completedAt?: string;
|
|
159
|
-
result?: ChainResponse;
|
|
160
|
-
}
|
|
161
|
-
export interface ResumeChainRequest {
|
|
162
|
-
resumeToken: string;
|
|
163
|
-
overrides?: Record<string, Record<string, any>>;
|
|
164
|
-
}
|
|
165
|
-
export interface ChainInput {
|
|
166
|
-
type: 'string' | 'number' | 'boolean' | 'object' | 'array';
|
|
167
|
-
required?: boolean;
|
|
168
|
-
default?: any;
|
|
169
|
-
description?: string;
|
|
170
|
-
}
|
|
171
|
-
export interface ChainTemplate {
|
|
172
|
-
name: string;
|
|
173
|
-
description?: string;
|
|
174
|
-
inputs: Record<string, ChainInput>;
|
|
175
|
-
chain: ChainStep[];
|
|
176
|
-
}
|
|
177
|
-
export interface UseChainRequest {
|
|
178
|
-
useChain: string;
|
|
179
|
-
inputs: Record<string, any>;
|
|
180
|
-
}
|
|
181
|
-
export declare function isParallelStep(step: ChainStep): step is ParallelStep;
|
|
182
|
-
export declare function isConditionalStep(step: ChainStep): step is ConditionalStep;
|
|
183
|
-
export declare function isForEachStep(step: ChainStep): step is ForEachStep;
|
|
184
|
-
export declare function isMapStep(step: ChainStep): step is MapStep;
|
|
185
|
-
export declare function isReduceStep(step: ChainStep): step is ReduceStep;
|
|
186
|
-
export declare function isBaseStep(step: ChainStep): step is ChainStepBase;
|
|
187
|
-
//# sourceMappingURL=chain-types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chain-types.d.ts","sourceRoot":"","sources":["../src/chain-types.ts"],"names":[],"mappings":"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"}
|
package/dist/chain-types.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Chain Execution Types for APIClaw
|
|
3
|
-
*
|
|
4
|
-
* Enables multi-step API orchestration with:
|
|
5
|
-
* - Sequential execution
|
|
6
|
-
* - Parallel execution
|
|
7
|
-
* - Conditional branching
|
|
8
|
-
* - Loops (forEach, map-reduce)
|
|
9
|
-
* - Error handling & retry
|
|
10
|
-
* - Cross-step references ($stepId.property)
|
|
11
|
-
*/
|
|
12
|
-
// ============================================
|
|
13
|
-
// TYPE GUARDS
|
|
14
|
-
// ============================================
|
|
15
|
-
export function isParallelStep(step) {
|
|
16
|
-
return 'parallel' in step;
|
|
17
|
-
}
|
|
18
|
-
export function isConditionalStep(step) {
|
|
19
|
-
return 'if' in step && 'then' in step;
|
|
20
|
-
}
|
|
21
|
-
export function isForEachStep(step) {
|
|
22
|
-
return 'forEach' in step && 'do' in step;
|
|
23
|
-
}
|
|
24
|
-
export function isMapStep(step) {
|
|
25
|
-
return 'map' in step;
|
|
26
|
-
}
|
|
27
|
-
export function isReduceStep(step) {
|
|
28
|
-
return 'reduce' in step;
|
|
29
|
-
}
|
|
30
|
-
export function isBaseStep(step) {
|
|
31
|
-
return 'provider' in step && 'action' in step;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=chain-types.js.map
|
package/dist/chain-types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chain-types.js","sourceRoot":"","sources":["../src/chain-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAyOH,+CAA+C;AAC/C,cAAc;AACd,+CAA+C;AAE/C,MAAM,UAAU,cAAc,CAAC,IAAe;IAC5C,OAAO,UAAU,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAe;IAC/C,OAAO,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAe;IAC3C,OAAO,SAAS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAe;IACvC,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAe;IAC1C,OAAO,QAAQ,IAAI,IAAI,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAe;IACxC,OAAO,UAAU,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC;AAChD,CAAC"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { mutation } from "./_generated/server";
|
|
2
|
-
import { v } from "convex/values";
|
|
3
|
-
export const activateWorkspace = mutation({
|
|
4
|
-
args: { workspaceId: v.id("workspaces") },
|
|
5
|
-
handler: async (ctx, { workspaceId }) => {
|
|
6
|
-
const workspace = await ctx.db.get(workspaceId);
|
|
7
|
-
if (!workspace) {
|
|
8
|
-
return { success: false, error: "not_found" };
|
|
9
|
-
}
|
|
10
|
-
await ctx.db.patch(workspaceId, {
|
|
11
|
-
status: "active",
|
|
12
|
-
tier: "backer", // Give Hivr bees backer status
|
|
13
|
-
weeklyUsageLimit: 999999,
|
|
14
|
-
usageLimit: 999999,
|
|
15
|
-
backerUntil: new Date("2026-12-31T23:59:59Z").getTime(), // Founding Backer until end of 2026
|
|
16
|
-
updatedAt: Date.now(),
|
|
17
|
-
});
|
|
18
|
-
return { success: true };
|
|
19
|
-
},
|
|
20
|
-
});
|
|
21
|
-
function generateToken() {
|
|
22
|
-
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
23
|
-
let result = '';
|
|
24
|
-
for (let i = 0; i < 32; i++) {
|
|
25
|
-
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
26
|
-
}
|
|
27
|
-
return result;
|
|
28
|
-
}
|
|
29
|
-
export const createSessionForWorkspace = mutation({
|
|
30
|
-
args: { workspaceId: v.id("workspaces") },
|
|
31
|
-
handler: async (ctx, { workspaceId }) => {
|
|
32
|
-
const workspace = await ctx.db.get(workspaceId);
|
|
33
|
-
if (!workspace || workspace.status !== "active") {
|
|
34
|
-
return { success: false, error: "workspace_not_active" };
|
|
35
|
-
}
|
|
36
|
-
const sessionToken = "apiclaw_" + generateToken();
|
|
37
|
-
await ctx.db.insert("agentSessions", {
|
|
38
|
-
workspaceId,
|
|
39
|
-
sessionToken,
|
|
40
|
-
fingerprint: "hivr-bees",
|
|
41
|
-
lastUsedAt: Date.now(),
|
|
42
|
-
createdAt: Date.now(),
|
|
43
|
-
});
|
|
44
|
-
return { success: true, sessionToken };
|
|
45
|
-
},
|
|
46
|
-
});
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { query } from "./_generated/server";
|
|
2
|
-
// Get total user/workspace count
|
|
3
|
-
export const getTotalWorkspaces = query({
|
|
4
|
-
args: {},
|
|
5
|
-
handler: async (ctx) => {
|
|
6
|
-
const workspaces = await ctx.db.query("workspaces").collect();
|
|
7
|
-
const providers = await ctx.db.query("providers").collect();
|
|
8
|
-
return {
|
|
9
|
-
totalWorkspaces: workspaces.length,
|
|
10
|
-
totalProviders: providers.length,
|
|
11
|
-
activeWorkspaces: workspaces.filter(w => w.status === "active").length,
|
|
12
|
-
backers: workspaces.filter(w => w.tier === "backer").length,
|
|
13
|
-
workspaceBreakdown: {
|
|
14
|
-
free: workspaces.filter(w => w.tier === "free").length,
|
|
15
|
-
pro: workspaces.filter(w => w.tier === "pro").length,
|
|
16
|
-
enterprise: workspaces.filter(w => w.tier === "enterprise").length,
|
|
17
|
-
backer: workspaces.filter(w => w.tier === "backer").length,
|
|
18
|
-
},
|
|
19
|
-
providerBreakdown: {
|
|
20
|
-
pending: providers.filter(p => p.status === "pending").length,
|
|
21
|
-
approved: providers.filter(p => p.status === "approved").length,
|
|
22
|
-
rejected: providers.filter(p => p.status === "rejected").length,
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
},
|
|
26
|
-
});
|
|
27
|
-
// List all workspace emails (for inspection)
|
|
28
|
-
export const listWorkspaces = query({
|
|
29
|
-
args: {},
|
|
30
|
-
handler: async (ctx) => {
|
|
31
|
-
const workspaces = await ctx.db.query("workspaces").collect();
|
|
32
|
-
return workspaces.map(w => ({
|
|
33
|
-
email: w.email,
|
|
34
|
-
status: w.status,
|
|
35
|
-
tier: w.tier,
|
|
36
|
-
usageCount: w.usageCount,
|
|
37
|
-
createdAt: w.createdAt,
|
|
38
|
-
lastActiveAt: w.lastActiveAt,
|
|
39
|
-
}));
|
|
40
|
-
},
|
|
41
|
-
});
|