@nordsym/apiclaw 1.8.6 → 1.8.8
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/README.md +59 -31
- package/apiclaw-README.md +12 -12
- package/convex/_generated/api.d.ts +4 -0
- package/convex/adminActivate.d.ts.map +1 -1
- package/convex/adminActivate.js +1 -2
- package/convex/adminActivate.js.map +1 -1
- package/convex/adminActivate.ts +1 -2
- package/convex/adminStats.d.ts.map +1 -1
- package/convex/adminStats.js +5 -3
- package/convex/adminStats.js.map +1 -1
- package/convex/adminStats.ts +5 -3
- package/convex/apiKeys.d.ts +6 -0
- package/convex/apiKeys.d.ts.map +1 -0
- package/convex/apiKeys.js +186 -0
- package/convex/apiKeys.js.map +1 -0
- package/convex/apiKeys.ts +220 -0
- package/convex/billing.d.ts.map +1 -1
- package/convex/billing.js +1 -13
- package/convex/billing.js.map +1 -1
- package/convex/billing.ts +2 -14
- package/convex/directCall.d.ts.map +1 -1
- package/convex/directCall.js +49 -13
- package/convex/directCall.js.map +1 -1
- package/convex/directCall.ts +49 -14
- package/convex/email.js +5 -5
- package/convex/email.js.map +1 -1
- package/convex/email.ts +5 -5
- package/convex/http.d.ts.map +1 -1
- package/convex/http.js +756 -29
- package/convex/http.js.map +1 -1
- package/convex/http.ts +870 -40
- package/convex/logs.d.ts.map +1 -1
- package/convex/logs.js +21 -19
- package/convex/logs.js.map +1 -1
- package/convex/logs.ts +26 -22
- package/convex/migrateProviderWorkspaces.d.ts +11 -0
- package/convex/migrateProviderWorkspaces.d.ts.map +1 -1
- package/convex/migrateProviderWorkspaces.js +120 -34
- package/convex/migrateProviderWorkspaces.js.map +1 -1
- package/convex/migrateProviderWorkspaces.ts +154 -35
- package/convex/providers.d.ts.map +1 -1
- package/convex/providers.js +296 -191
- package/convex/providers.js.map +1 -1
- package/convex/providers.ts +313 -203
- package/convex/schema.ts +54 -5
- package/convex/searchLogs.d.ts.map +1 -1
- package/convex/searchLogs.js +2 -7
- package/convex/searchLogs.js.map +1 -1
- package/convex/searchLogs.ts +2 -6
- package/convex/seedPratham.d.ts.map +1 -1
- package/convex/seedPratham.js +2 -3
- package/convex/seedPratham.js.map +1 -1
- package/convex/seedPratham.ts +2 -3
- package/convex/spendAlerts.js +2 -2
- package/convex/spendAlerts.js.map +1 -1
- package/convex/spendAlerts.ts +2 -2
- package/convex/stripeActions.d.ts.map +1 -1
- package/convex/stripeActions.js +25 -4
- package/convex/stripeActions.js.map +1 -1
- package/convex/stripeActions.ts +26 -4
- package/convex/updateAPIStatus.d.ts.map +1 -1
- package/convex/updateAPIStatus.js +0 -1
- package/convex/updateAPIStatus.js.map +1 -1
- package/convex/updateAPIStatus.ts +2 -3
- package/convex/workspaceSettings.d.ts +7 -0
- package/convex/workspaceSettings.d.ts.map +1 -0
- package/convex/workspaceSettings.js +128 -0
- package/convex/workspaceSettings.js.map +1 -0
- package/convex/workspaceSettings.ts +136 -0
- package/convex/workspaces.d.ts.map +1 -1
- package/convex/workspaces.js +15 -17
- package/convex/workspaces.js.map +1 -1
- package/convex/workspaces.ts +18 -20
- package/dist/bin.js +0 -0
- package/dist/cli/commands/demo.js +3 -3
- package/dist/cli/commands/demo.js.map +1 -1
- package/dist/cli/commands/doctor.js +1 -1
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/login.js +1 -1
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/setup.js +2 -2
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +15 -0
- package/dist/credentials.js.map +1 -1
- package/dist/discovery.js +1 -1
- package/dist/discovery.js.map +1 -1
- package/dist/execute.js +3 -3
- package/dist/execute.js.map +1 -1
- package/dist/index.js +14 -14
- package/dist/index.js.map +1 -1
- package/dist/open-apis.d.ts.map +1 -1
- package/dist/open-apis.js +94 -2
- package/dist/open-apis.js.map +1 -1
- package/dist/ui/errors.js +16 -16
- package/dist/ui/errors.js.map +1 -1
- package/dist/ui/prompts.js +1 -1
- package/dist/ui/prompts.js.map +1 -1
- package/email-templates/filestack-provider-outreach.html +1 -1
- package/email-templates/partnership-template.html +1 -1
- package/email-templates/pratham-partnership-draft.html +2 -2
- package/package.json +2 -2
- package/reports/APIClaw-Session-Report-2026-04-05.pdf +0 -0
- package/reports/session-report-2026-04-05.html +433 -0
- package/src/cli/commands/demo.ts +3 -3
- package/src/cli/commands/doctor.ts +1 -1
- package/src/cli/commands/login.ts +1 -1
- package/src/cli/commands/setup.ts +2 -2
- package/src/credentials.ts +16 -0
- package/src/discovery.ts +1 -1
- package/src/execute.ts +3 -3
- package/src/index.ts +15 -15
- package/src/open-apis.ts +114 -4
- package/src/ui/errors.ts +16 -16
- package/src/ui/prompts.ts +1 -1
package/dist/ui/prompts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/ui/prompts.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/ui/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
|
|
112
112
|
<!-- CTA -->
|
|
113
113
|
<div style="text-align: center; margin: 32px 0;">
|
|
114
|
-
<a href="https://apiclaw.
|
|
114
|
+
<a href="https://apiclaw.cloud/providers/dashboard" style="display: inline-block; background-color: #ef4444; color: #ffffff; text-decoration: none; padding: 14px 36px; border-radius: 8px; font-weight: 600; font-size: 16px; box-shadow: 0 2px 4px rgba(239,68,68,0.3);">
|
|
115
115
|
View Your Provider Dashboard
|
|
116
116
|
</a>
|
|
117
117
|
<p class="text-muted" style="margin: 12px 0 0 0; font-size: 13px; color: #9ca3af;">
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
<div style="margin-top: 32px; text-align: center; color: #9ca3af; font-size: 12px;">
|
|
106
106
|
<p style="margin: 0;">NordSym AB (559535-5768) • Sweden</p>
|
|
107
107
|
<p style="margin: 4px 0 0 0;">
|
|
108
|
-
<a href="https://apiclaw.
|
|
108
|
+
<a href="https://apiclaw.cloud" style="color: #ef4444; text-decoration: none;">apiclaw.cloud</a> •
|
|
109
109
|
<a href="https://github.com/nordsym/apiclaw" style="color: #ef4444; text-decoration: none;">GitHub</a>
|
|
110
110
|
</p>
|
|
111
111
|
</div>
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
|
|
99
99
|
<!-- CTA -->
|
|
100
100
|
<div style="text-align: center; margin: 32px 0;">
|
|
101
|
-
<a href="https://apiclaw.
|
|
101
|
+
<a href="https://apiclaw.cloud" style="display: inline-block; background-color: #ef4444; color: #ffffff; text-decoration: none; padding: 14px 32px; border-radius: 8px; font-weight: 600; font-size: 16px; box-shadow: 0 2px 4px rgba(239, 68, 68, 0.2);">
|
|
102
102
|
View APIClaw Documentation
|
|
103
103
|
</a>
|
|
104
104
|
</div>
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
<div style="margin-top: 32px; text-align: center; color: #9ca3af; font-size: 12px;">
|
|
131
131
|
<p style="margin: 0;">NordSym AB (559535-5768) • Sweden</p>
|
|
132
132
|
<p style="margin: 4px 0 0 0;">
|
|
133
|
-
<a href="https://apiclaw.
|
|
133
|
+
<a href="https://apiclaw.cloud" style="color: #ef4444; text-decoration: none;">apiclaw.cloud</a> •
|
|
134
134
|
<a href="https://github.com/nordsym/apiclaw" style="color: #ef4444; text-decoration: none;">GitHub</a>
|
|
135
135
|
</p>
|
|
136
136
|
</div>
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nordsym/apiclaw",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.8",
|
|
4
4
|
"description": "The API layer for AI agents. Dashboard + 22K APIs + 18 Direct Call providers. MCP native.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
|
-
"homepage": "https://apiclaw.
|
|
7
|
+
"homepage": "https://apiclaw.cloud",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
10
10
|
"url": "https://github.com/nordsym/apiclaw"
|
|
Binary file
|
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>APIClaw Session Report — 2026-04-05</title>
|
|
7
|
+
<style>
|
|
8
|
+
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
|
|
9
|
+
|
|
10
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
11
|
+
|
|
12
|
+
body {
|
|
13
|
+
font-family: 'Inter', -apple-system, sans-serif;
|
|
14
|
+
background: #0a0a0a;
|
|
15
|
+
color: #e5e5e5;
|
|
16
|
+
line-height: 1.6;
|
|
17
|
+
padding: 60px;
|
|
18
|
+
max-width: 900px;
|
|
19
|
+
margin: 0 auto;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.header {
|
|
23
|
+
text-align: center;
|
|
24
|
+
padding-bottom: 48px;
|
|
25
|
+
border-bottom: 1px solid #262626;
|
|
26
|
+
margin-bottom: 48px;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.header .logo { font-size: 48px; margin-bottom: 12px; }
|
|
30
|
+
.header h1 { font-size: 32px; font-weight: 800; color: #fff; letter-spacing: -0.5px; }
|
|
31
|
+
.header .subtitle { font-size: 14px; color: #737373; margin-top: 8px; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; }
|
|
32
|
+
.header .date { font-size: 13px; color: #525252; margin-top: 16px; }
|
|
33
|
+
|
|
34
|
+
.highlight-box {
|
|
35
|
+
background: linear-gradient(135deg, #ef4444/10, #ef4444/5);
|
|
36
|
+
border: 1px solid #ef4444/30;
|
|
37
|
+
border-radius: 12px;
|
|
38
|
+
padding: 24px 28px;
|
|
39
|
+
margin-bottom: 40px;
|
|
40
|
+
text-align: center;
|
|
41
|
+
}
|
|
42
|
+
.highlight-box p { font-size: 16px; color: #fca5a5; font-weight: 600; }
|
|
43
|
+
.highlight-box .sub { font-size: 13px; color: #a3a3a3; margin-top: 8px; font-weight: 400; }
|
|
44
|
+
|
|
45
|
+
h2 {
|
|
46
|
+
font-size: 20px;
|
|
47
|
+
font-weight: 700;
|
|
48
|
+
color: #fff;
|
|
49
|
+
margin: 40px 0 20px;
|
|
50
|
+
padding-bottom: 10px;
|
|
51
|
+
border-bottom: 1px solid #1a1a1a;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
h3 {
|
|
55
|
+
font-size: 15px;
|
|
56
|
+
font-weight: 600;
|
|
57
|
+
color: #ef4444;
|
|
58
|
+
margin: 28px 0 12px;
|
|
59
|
+
text-transform: uppercase;
|
|
60
|
+
letter-spacing: 1px;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
p { font-size: 14px; color: #a3a3a3; margin-bottom: 12px; }
|
|
64
|
+
|
|
65
|
+
.feature-grid {
|
|
66
|
+
display: grid;
|
|
67
|
+
grid-template-columns: 1fr 1fr;
|
|
68
|
+
gap: 16px;
|
|
69
|
+
margin: 20px 0;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.feature-card {
|
|
73
|
+
background: #141414;
|
|
74
|
+
border: 1px solid #262626;
|
|
75
|
+
border-radius: 10px;
|
|
76
|
+
padding: 20px;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.feature-card .num {
|
|
80
|
+
font-size: 11px;
|
|
81
|
+
font-weight: 700;
|
|
82
|
+
color: #ef4444;
|
|
83
|
+
letter-spacing: 2px;
|
|
84
|
+
text-transform: uppercase;
|
|
85
|
+
margin-bottom: 8px;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.feature-card h4 {
|
|
89
|
+
font-size: 15px;
|
|
90
|
+
font-weight: 700;
|
|
91
|
+
color: #fff;
|
|
92
|
+
margin-bottom: 6px;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.feature-card p { font-size: 12px; color: #737373; margin: 0; }
|
|
96
|
+
|
|
97
|
+
table {
|
|
98
|
+
width: 100%;
|
|
99
|
+
border-collapse: collapse;
|
|
100
|
+
margin: 16px 0;
|
|
101
|
+
font-size: 13px;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
th {
|
|
105
|
+
text-align: left;
|
|
106
|
+
padding: 10px 14px;
|
|
107
|
+
background: #141414;
|
|
108
|
+
color: #a3a3a3;
|
|
109
|
+
font-weight: 600;
|
|
110
|
+
font-size: 11px;
|
|
111
|
+
text-transform: uppercase;
|
|
112
|
+
letter-spacing: 1px;
|
|
113
|
+
border-bottom: 1px solid #262626;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
td {
|
|
117
|
+
padding: 10px 14px;
|
|
118
|
+
border-bottom: 1px solid #1a1a1a;
|
|
119
|
+
color: #d4d4d4;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.status-pass {
|
|
123
|
+
color: #4ade80;
|
|
124
|
+
font-weight: 600;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.status-live {
|
|
128
|
+
background: #4ade80/15;
|
|
129
|
+
color: #4ade80;
|
|
130
|
+
padding: 2px 10px;
|
|
131
|
+
border-radius: 20px;
|
|
132
|
+
font-size: 11px;
|
|
133
|
+
font-weight: 600;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
code {
|
|
137
|
+
font-family: 'SF Mono', 'Fira Code', monospace;
|
|
138
|
+
background: #1a1a1a;
|
|
139
|
+
padding: 2px 6px;
|
|
140
|
+
border-radius: 4px;
|
|
141
|
+
font-size: 12px;
|
|
142
|
+
color: #fca5a5;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
pre {
|
|
146
|
+
background: #141414;
|
|
147
|
+
border: 1px solid #262626;
|
|
148
|
+
border-radius: 8px;
|
|
149
|
+
padding: 16px 20px;
|
|
150
|
+
overflow-x: auto;
|
|
151
|
+
margin: 12px 0;
|
|
152
|
+
font-family: 'SF Mono', 'Fira Code', monospace;
|
|
153
|
+
font-size: 12px;
|
|
154
|
+
line-height: 1.5;
|
|
155
|
+
color: #d4d4d4;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.e2e-chain {
|
|
159
|
+
display: flex;
|
|
160
|
+
align-items: center;
|
|
161
|
+
justify-content: center;
|
|
162
|
+
gap: 8px;
|
|
163
|
+
padding: 20px;
|
|
164
|
+
margin: 20px 0;
|
|
165
|
+
background: #141414;
|
|
166
|
+
border: 1px solid #262626;
|
|
167
|
+
border-radius: 10px;
|
|
168
|
+
flex-wrap: wrap;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.e2e-chain .node {
|
|
172
|
+
background: #1a1a1a;
|
|
173
|
+
border: 1px solid #333;
|
|
174
|
+
padding: 8px 14px;
|
|
175
|
+
border-radius: 6px;
|
|
176
|
+
font-size: 12px;
|
|
177
|
+
font-weight: 600;
|
|
178
|
+
color: #fff;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.e2e-chain .arrow { color: #ef4444; font-size: 16px; font-weight: 700; }
|
|
182
|
+
|
|
183
|
+
.files-list {
|
|
184
|
+
list-style: none;
|
|
185
|
+
margin: 12px 0;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.files-list li {
|
|
189
|
+
padding: 8px 0;
|
|
190
|
+
border-bottom: 1px solid #1a1a1a;
|
|
191
|
+
font-size: 13px;
|
|
192
|
+
display: flex;
|
|
193
|
+
gap: 12px;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.files-list li code { flex-shrink: 0; }
|
|
197
|
+
.files-list li span { color: #737373; }
|
|
198
|
+
|
|
199
|
+
.footer {
|
|
200
|
+
margin-top: 60px;
|
|
201
|
+
padding-top: 24px;
|
|
202
|
+
border-top: 1px solid #262626;
|
|
203
|
+
text-align: center;
|
|
204
|
+
font-size: 12px;
|
|
205
|
+
color: #525252;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.footer .brand { color: #737373; font-weight: 600; }
|
|
209
|
+
|
|
210
|
+
.badge {
|
|
211
|
+
display: inline-block;
|
|
212
|
+
padding: 3px 10px;
|
|
213
|
+
border-radius: 20px;
|
|
214
|
+
font-size: 11px;
|
|
215
|
+
font-weight: 600;
|
|
216
|
+
}
|
|
217
|
+
.badge-green { background: rgba(74, 222, 128, 0.15); color: #4ade80; }
|
|
218
|
+
.badge-red { background: rgba(239, 68, 68, 0.15); color: #ef4444; }
|
|
219
|
+
.badge-new { background: rgba(59, 130, 246, 0.15); color: #60a5fa; }
|
|
220
|
+
|
|
221
|
+
@media print {
|
|
222
|
+
body { background: #fff; color: #1a1a1a; padding: 40px; }
|
|
223
|
+
.feature-card, pre, .e2e-chain { background: #f5f5f5; border-color: #e5e5e5; }
|
|
224
|
+
.feature-card p, p { color: #525252; }
|
|
225
|
+
td { color: #1a1a1a; }
|
|
226
|
+
th { background: #f5f5f5; color: #525252; }
|
|
227
|
+
h2 { border-bottom-color: #e5e5e5; }
|
|
228
|
+
code { background: #f0f0f0; color: #dc2626; }
|
|
229
|
+
.e2e-chain .node { background: #f0f0f0; border-color: #d4d4d4; color: #1a1a1a; }
|
|
230
|
+
}
|
|
231
|
+
</style>
|
|
232
|
+
</head>
|
|
233
|
+
<body>
|
|
234
|
+
|
|
235
|
+
<div class="header">
|
|
236
|
+
<div class="logo">🦞</div>
|
|
237
|
+
<h1>APIClaw Session Report</h1>
|
|
238
|
+
<div class="subtitle">The API Layer for AI Agents</div>
|
|
239
|
+
<div class="date">Session: April 5, 2026 — NordSym AB</div>
|
|
240
|
+
</div>
|
|
241
|
+
|
|
242
|
+
<div class="highlight-box">
|
|
243
|
+
<p>APIClaw is now a live production API gateway.</p>
|
|
244
|
+
<div class="sub">Telegram bot responding via APIClaw. Anthropic OAuth dependency eliminated. E2E proven.</div>
|
|
245
|
+
</div>
|
|
246
|
+
|
|
247
|
+
<!-- ========== FEATURES ========== -->
|
|
248
|
+
<h2>What We Built</h2>
|
|
249
|
+
|
|
250
|
+
<div class="feature-grid">
|
|
251
|
+
<div class="feature-card">
|
|
252
|
+
<div class="num">Feature 1</div>
|
|
253
|
+
<h4>Workspace API Keys</h4>
|
|
254
|
+
<p>Generate persistent <code>sk-claw-</code> keys in your workspace. One key, every API. Keys are hashed after creation -- shown once, never stored in plain text.</p>
|
|
255
|
+
</div>
|
|
256
|
+
<div class="feature-card">
|
|
257
|
+
<div class="num">Feature 2</div>
|
|
258
|
+
<h4>Unified Auth Layer</h4>
|
|
259
|
+
<p>All 15+ proxy endpoints upgraded in one change. Accepts <code>Authorization: Bearer sk-claw-...</code> alongside legacy identifier auth. Zero breaking changes.</p>
|
|
260
|
+
</div>
|
|
261
|
+
<div class="feature-card">
|
|
262
|
+
<div class="num">Feature 3</div>
|
|
263
|
+
<h4>Gateway /v1/chat/completions</h4>
|
|
264
|
+
<p>OpenAI-compatible LLM endpoint. Routes to OpenRouter (800+ models). Streaming support. Usage tracking. Standard protocol -- works with any AI tool.</p>
|
|
265
|
+
</div>
|
|
266
|
+
<div class="feature-card">
|
|
267
|
+
<div class="num">Feature 4</div>
|
|
268
|
+
<h4>OpenClaw Integration</h4>
|
|
269
|
+
<p>APIClaw configured as a first-class provider in OpenClaw. Telegram bots now powered entirely by APIClaw gateway. No direct Anthropic key needed.</p>
|
|
270
|
+
</div>
|
|
271
|
+
</div>
|
|
272
|
+
|
|
273
|
+
<!-- ========== E2E CHAIN ========== -->
|
|
274
|
+
<h2>E2E Architecture</h2>
|
|
275
|
+
|
|
276
|
+
<div class="e2e-chain">
|
|
277
|
+
<div class="node">Telegram</div>
|
|
278
|
+
<div class="arrow">→</div>
|
|
279
|
+
<div class="node">OpenClaw Gateway</div>
|
|
280
|
+
<div class="arrow">→</div>
|
|
281
|
+
<div class="node">APIClaw Gateway<br><small style="color:#ef4444">sk-claw-...q6Yd</small></div>
|
|
282
|
+
<div class="arrow">→</div>
|
|
283
|
+
<div class="node">OpenRouter</div>
|
|
284
|
+
<div class="arrow">→</div>
|
|
285
|
+
<div class="node">Claude Sonnet 4.6</div>
|
|
286
|
+
</div>
|
|
287
|
+
|
|
288
|
+
<!-- ========== TEST RESULTS ========== -->
|
|
289
|
+
<h2>E2E Test Results</h2>
|
|
290
|
+
|
|
291
|
+
<table>
|
|
292
|
+
<thead>
|
|
293
|
+
<tr><th>Test</th><th>Result</th><th>Latency</th></tr>
|
|
294
|
+
</thead>
|
|
295
|
+
<tbody>
|
|
296
|
+
<tr>
|
|
297
|
+
<td><code>GET /v1/models</code> on prod</td>
|
|
298
|
+
<td class="status-pass">13 models listed</td>
|
|
299
|
+
<td>--</td>
|
|
300
|
+
</tr>
|
|
301
|
+
<tr>
|
|
302
|
+
<td>Fake key rejection</td>
|
|
303
|
+
<td class="status-pass">401 with error message</td>
|
|
304
|
+
<td>--</td>
|
|
305
|
+
</tr>
|
|
306
|
+
<tr>
|
|
307
|
+
<td><code>sk-claw-</code> → Gateway → OpenRouter → Claude</td>
|
|
308
|
+
<td class="status-pass">Response received</td>
|
|
309
|
+
<td>2.2s</td>
|
|
310
|
+
</tr>
|
|
311
|
+
<tr>
|
|
312
|
+
<td>OpenClaw CLI → APIClaw → Telegram delivery</td>
|
|
313
|
+
<td class="status-pass">"APIClaw e2e works through OpenClaw"</td>
|
|
314
|
+
<td>17.8s</td>
|
|
315
|
+
</tr>
|
|
316
|
+
<tr>
|
|
317
|
+
<td>Telegram DM → bot responds</td>
|
|
318
|
+
<td class="status-pass">Confirmed live by operator</td>
|
|
319
|
+
<td>--</td>
|
|
320
|
+
</tr>
|
|
321
|
+
</tbody>
|
|
322
|
+
</table>
|
|
323
|
+
|
|
324
|
+
<!-- ========== BACKEND DETAIL ========== -->
|
|
325
|
+
<h2>Backend: API Keys</h2>
|
|
326
|
+
|
|
327
|
+
<h3>Schema (convex/schema.ts)</h3>
|
|
328
|
+
<pre>workspaceApiKeys: defineTable({
|
|
329
|
+
workspaceId: v.id("workspaces"),
|
|
330
|
+
key: v.string(),
|
|
331
|
+
keyHash: v.string(), // SHA lookup (raw key not stored)
|
|
332
|
+
keyPrefix: v.string(), // "sk-claw-...last4" for display
|
|
333
|
+
name: v.string(), // user label
|
|
334
|
+
lastUsedAt: v.optional(v.number()),
|
|
335
|
+
createdAt: v.number(),
|
|
336
|
+
revokedAt: v.optional(v.number()),
|
|
337
|
+
})
|
|
338
|
+
.index("by_keyHash", ["keyHash"])
|
|
339
|
+
.index("by_workspaceId", ["workspaceId"])</pre>
|
|
340
|
+
|
|
341
|
+
<h3>Functions (convex/apiKeys.ts)</h3>
|
|
342
|
+
<table>
|
|
343
|
+
<thead><tr><th>Function</th><th>Type</th><th>Purpose</th></tr></thead>
|
|
344
|
+
<tbody>
|
|
345
|
+
<tr><td><code>generateKey</code></td><td>mutation</td><td>Create key, return raw ONCE, store hash only</td></tr>
|
|
346
|
+
<tr><td><code>listKeys</code></td><td>query</td><td>Return prefix + metadata (never raw key)</td></tr>
|
|
347
|
+
<tr><td><code>revokeKey</code></td><td>mutation</td><td>Soft delete with revokedAt timestamp</td></tr>
|
|
348
|
+
<tr><td><code>resolveKey</code></td><td>internalQuery</td><td>Hash lookup for gateway auth</td></tr>
|
|
349
|
+
<tr><td><code>touchKey</code></td><td>mutation</td><td>Update lastUsedAt on each use</td></tr>
|
|
350
|
+
</tbody>
|
|
351
|
+
</table>
|
|
352
|
+
|
|
353
|
+
<!-- ========== GATEWAY DETAIL ========== -->
|
|
354
|
+
<h2>Backend: Gateway</h2>
|
|
355
|
+
|
|
356
|
+
<h3>Auth Resolution (convex/http.ts)</h3>
|
|
357
|
+
<pre>resolveWorkspaceFromRequest(ctx, request)
|
|
358
|
+
1. Authorization: Bearer sk-claw-... → resolveKey → workspaceId
|
|
359
|
+
2. X-APIClaw-Identifier (legacy) → workspaceId
|
|
360
|
+
3. Anonymous → allowed, untracked</pre>
|
|
361
|
+
|
|
362
|
+
<h3>Endpoints</h3>
|
|
363
|
+
<table>
|
|
364
|
+
<thead><tr><th>Endpoint</th><th>Method</th><th>Auth</th><th>Purpose</th></tr></thead>
|
|
365
|
+
<tbody>
|
|
366
|
+
<tr><td><code>/v1/chat/completions</code></td><td>POST</td><td>sk-claw- required</td><td>OpenAI-compatible LLM gateway</td></tr>
|
|
367
|
+
<tr><td><code>/v1/models</code></td><td>GET</td><td>optional</td><td>List available models</td></tr>
|
|
368
|
+
<tr><td><code>/proxy/*</code> (15+ routes)</td><td>POST</td><td>sk-claw- or legacy</td><td>All existing API proxies</td></tr>
|
|
369
|
+
</tbody>
|
|
370
|
+
</table>
|
|
371
|
+
|
|
372
|
+
<!-- ========== OPENCLAW CONFIG ========== -->
|
|
373
|
+
<h2>OpenClaw Configuration</h2>
|
|
374
|
+
|
|
375
|
+
<pre>{
|
|
376
|
+
"models": {
|
|
377
|
+
"providers": {
|
|
378
|
+
"apiclaw": {
|
|
379
|
+
"baseUrl": "https://adventurous-avocet-799.convex.site/v1",
|
|
380
|
+
"apiKey": "sk-claw-...q6Yd",
|
|
381
|
+
"api": "openai-completions",
|
|
382
|
+
"auth": "api-key",
|
|
383
|
+
"models": [
|
|
384
|
+
{ "id": "anthropic/claude-sonnet-4-6", "name": "Claude Sonnet 4.6" },
|
|
385
|
+
{ "id": "anthropic/claude-haiku-3.5", "name": "Claude Haiku 3.5" },
|
|
386
|
+
{ "id": "openai/gpt-4o", "name": "GPT-4o" },
|
|
387
|
+
{ "id": "google/gemini-2.5-pro-preview", "name": "Gemini 2.5 Pro" },
|
|
388
|
+
{ "id": "meta-llama/llama-3.3-70b-instruct", "name": "Llama 3.3 70B" },
|
|
389
|
+
{ "id": "deepseek/deepseek-chat", "name": "DeepSeek Chat" }
|
|
390
|
+
]
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}</pre>
|
|
395
|
+
|
|
396
|
+
<p><strong>Key discovery:</strong> OpenClaw appends <code>/chat/completions</code> to baseUrl. The baseUrl must include <code>/v1</code>.</p>
|
|
397
|
+
|
|
398
|
+
<!-- ========== FILES ========== -->
|
|
399
|
+
<h2>Files Changed</h2>
|
|
400
|
+
|
|
401
|
+
<ul class="files-list">
|
|
402
|
+
<li><code>convex/schema.ts</code> <span>Added workspaceApiKeys table + indexes</span></li>
|
|
403
|
+
<li><code>convex/apiKeys.ts</code> <span class="badge badge-new">NEW</span> <span>Generate, list, revoke, resolve, touch</span></li>
|
|
404
|
+
<li><code>convex/http.ts</code> <span>Unified auth + /v1/chat/completions + /v1/models</span></li>
|
|
405
|
+
<li><code>landing/.../workspace/page.tsx</code> <span>API Keys tab + nav + config snippet</span></li>
|
|
406
|
+
<li><code>~/.openclaw/openclaw.json</code> <span>APIClaw as primary provider, Telegram restored</span></li>
|
|
407
|
+
</ul>
|
|
408
|
+
|
|
409
|
+
<!-- ========== PRODUCTION STATE ========== -->
|
|
410
|
+
<h2>Production State</h2>
|
|
411
|
+
|
|
412
|
+
<table>
|
|
413
|
+
<thead><tr><th>Component</th><th>Status</th><th>Detail</th></tr></thead>
|
|
414
|
+
<tbody>
|
|
415
|
+
<tr><td>Convex prod</td><td><span class="badge badge-green">DEPLOYED</span></td><td>adventurous-avocet-799</td></tr>
|
|
416
|
+
<tr><td>Gateway endpoint</td><td><span class="badge badge-green">LIVE</span></td><td>/v1/chat/completions responding</td></tr>
|
|
417
|
+
<tr><td>Prod API key</td><td><span class="badge badge-green">ACTIVE</span></td><td>sk-claw-...q6Yd ("OpenClaw Production")</td></tr>
|
|
418
|
+
<tr><td>OpenClaw default model</td><td><span class="badge badge-green">ACTIVE</span></td><td>apiclaw/anthropic/claude-sonnet-4-6</td></tr>
|
|
419
|
+
<tr><td>Telegram bots</td><td><span class="badge badge-green">LIVE</span></td><td>4 accounts responding</td></tr>
|
|
420
|
+
<tr><td>Anthropic OAuth</td><td><span class="badge badge-red">ELIMINATED</span></td><td>No longer needed</td></tr>
|
|
421
|
+
<tr><td>Frontend build</td><td><span class="badge badge-green">CLEAN</span></td><td>Next.js + Convex both pass</td></tr>
|
|
422
|
+
</tbody>
|
|
423
|
+
</table>
|
|
424
|
+
|
|
425
|
+
<!-- ========== FOOTER ========== -->
|
|
426
|
+
<div class="footer">
|
|
427
|
+
<p class="brand">NordSym AB (559535-5768)</p>
|
|
428
|
+
<p>APIClaw -- The API Layer for AI Agents</p>
|
|
429
|
+
<p>Session report generated April 5, 2026</p>
|
|
430
|
+
</div>
|
|
431
|
+
|
|
432
|
+
</body>
|
|
433
|
+
</html>
|
package/src/cli/commands/demo.ts
CHANGED
|
@@ -61,7 +61,7 @@ async function convertCurrency(): Promise<void> {
|
|
|
61
61
|
chalk.dim(` No API key needed. Your agent can call this too.\n`)
|
|
62
62
|
);
|
|
63
63
|
console.log(
|
|
64
|
-
chalk.cyan(` Dashboard: https://apiclaw.
|
|
64
|
+
chalk.cyan(` Dashboard: https://apiclaw.cloud/workspace`) + '\n'
|
|
65
65
|
);
|
|
66
66
|
}
|
|
67
67
|
|
|
@@ -93,7 +93,7 @@ export async function demoCommand(): Promise<void> {
|
|
|
93
93
|
spinner.stop();
|
|
94
94
|
|
|
95
95
|
console.log(chalk.green(' ✓ That was a live Direct Call through APIClaw.'));
|
|
96
|
-
console.log(chalk.dim('
|
|
96
|
+
console.log(chalk.dim(' 20 providers, hundreds of APIs. Zero API keys needed.\n'));
|
|
97
97
|
console.log(
|
|
98
98
|
chalk.bold(' Next step:') +
|
|
99
99
|
chalk.dim(' add APIClaw to your AI agent:\n')
|
|
@@ -104,6 +104,6 @@ export async function demoCommand(): Promise<void> {
|
|
|
104
104
|
);
|
|
105
105
|
} catch (err: any) {
|
|
106
106
|
spinner.fail('Demo failed: ' + err.message);
|
|
107
|
-
console.log(chalk.dim('\n Try again or check https://apiclaw.
|
|
107
|
+
console.log(chalk.dim('\n Try again or check https://apiclaw.cloud\n'));
|
|
108
108
|
}
|
|
109
109
|
}
|
|
@@ -174,7 +174,7 @@ async function checkConnectivity(): Promise<CheckResult> {
|
|
|
174
174
|
const convexUrl = process.env.CONVEX_URL || 'https://brilliant-puffin-712.eu-west-1.convex.cloud';
|
|
175
175
|
const candidates = [
|
|
176
176
|
`${apiUrl}/health`,
|
|
177
|
-
'https://apiclaw.
|
|
177
|
+
'https://apiclaw.cloud',
|
|
178
178
|
`${convexUrl.replace('.cloud', '.site')}/workspace/poll`,
|
|
179
179
|
];
|
|
180
180
|
const failures: string[] = [];
|
|
@@ -10,7 +10,7 @@ import chalk from 'chalk';
|
|
|
10
10
|
import { writeSession, readSession, getMachineFingerprint } from '../../session.js';
|
|
11
11
|
|
|
12
12
|
const CONVEX_URL = 'https://adventurous-avocet-799.convex.cloud';
|
|
13
|
-
const APICLAW_URL = 'https://apiclaw.
|
|
13
|
+
const APICLAW_URL = 'https://apiclaw.cloud';
|
|
14
14
|
const POLL_INTERVAL_MS = 2000;
|
|
15
15
|
const MAX_WAIT_MS = 15 * 60 * 1000; // 15 min (magic link TTL)
|
|
16
16
|
|
|
@@ -284,14 +284,14 @@ export async function setupCommand(options: SetupOptions): Promise<void> {
|
|
|
284
284
|
console.log('Next steps:');
|
|
285
285
|
console.log(' 1. Restart your AI coding assistant');
|
|
286
286
|
console.log(' 2. Ask your agent: "List available APIs"\n');
|
|
287
|
-
console.log('Need help? https://apiclaw.
|
|
287
|
+
console.log('Need help? https://apiclaw.cloud/docs/setup\n');
|
|
288
288
|
} else if (skipped === results.length) {
|
|
289
289
|
console.log('\n✅ APIClaw already configured in all clients.\n');
|
|
290
290
|
console.log('Use --force to reconfigure.\n');
|
|
291
291
|
}
|
|
292
292
|
} else {
|
|
293
293
|
console.log(`\n⚠️ Setup completed with ${failed} error(s).\n`);
|
|
294
|
-
console.log('For troubleshooting, visit: https://apiclaw.
|
|
294
|
+
console.log('For troubleshooting, visit: https://apiclaw.cloud/docs/setup/troubleshooting\n');
|
|
295
295
|
process.exit(1);
|
|
296
296
|
}
|
|
297
297
|
}
|
package/src/credentials.ts
CHANGED
|
@@ -291,6 +291,18 @@ const providers: Record<string, ProviderCredential> = {
|
|
|
291
291
|
return null;
|
|
292
292
|
},
|
|
293
293
|
},
|
|
294
|
+
|
|
295
|
+
voyage: {
|
|
296
|
+
type: 'bearer',
|
|
297
|
+
get(): APICredentials | null {
|
|
298
|
+
const env = loadEnvFile('voyage.env');
|
|
299
|
+
const key = env.VOYAGE_API_KEY || process.env.VOYAGE_API_KEY;
|
|
300
|
+
if (key) {
|
|
301
|
+
return { type: 'bearer', api_key: key };
|
|
302
|
+
}
|
|
303
|
+
return null;
|
|
304
|
+
},
|
|
305
|
+
},
|
|
294
306
|
};
|
|
295
307
|
|
|
296
308
|
/**
|
|
@@ -384,6 +396,10 @@ export function hasRealCredentials(providerId: string): boolean {
|
|
|
384
396
|
const env = loadEnvFile('assemblyai.env');
|
|
385
397
|
return !!(env.ASSEMBLYAI_API_KEY || process.env.ASSEMBLYAI_API_KEY);
|
|
386
398
|
}
|
|
399
|
+
if (providerId === 'voyage') {
|
|
400
|
+
const env = loadEnvFile('voyage.env');
|
|
401
|
+
return !!(env.VOYAGE_API_KEY || process.env.VOYAGE_API_KEY);
|
|
402
|
+
}
|
|
387
403
|
if (providerId === 'serper') {
|
|
388
404
|
const env = loadEnvFile('serper.env');
|
|
389
405
|
const envAlt = loadEnvFile('serpapi.env');
|
package/src/discovery.ts
CHANGED
|
@@ -192,7 +192,7 @@ const DIRECT_CALL_SPECS: Record<string, {
|
|
|
192
192
|
{ name: 'subject', required: true, desc: 'Email subject' },
|
|
193
193
|
{ name: 'html', required: false, desc: 'HTML body' },
|
|
194
194
|
{ name: 'text', required: false, desc: 'Plain text body' },
|
|
195
|
-
{ name: 'from', required: false, desc: 'Sender (default: noreply@apiclaw.
|
|
195
|
+
{ name: 'from', required: false, desc: 'Sender (default: noreply@apiclaw.cloud)' },
|
|
196
196
|
],
|
|
197
197
|
},
|
|
198
198
|
},
|
package/src/execute.ts
CHANGED
|
@@ -272,7 +272,7 @@ const mockResponses: Record<string, Record<string, (params: any) => unknown>> =
|
|
|
272
272
|
send_email: (params) => ({
|
|
273
273
|
id: 'mock_email_' + Date.now(),
|
|
274
274
|
to: params.to,
|
|
275
|
-
from: params.from || 'APIClaw <noreply@apiclaw.
|
|
275
|
+
from: params.from || 'APIClaw <noreply@apiclaw.cloud>',
|
|
276
276
|
subject: params.subject,
|
|
277
277
|
status: 'sent',
|
|
278
278
|
}),
|
|
@@ -674,7 +674,7 @@ const handlers: Record<string, Record<string, (params: any, creds: any) => Promi
|
|
|
674
674
|
// Resend - Email
|
|
675
675
|
resend: {
|
|
676
676
|
send_email: async (params, creds) => {
|
|
677
|
-
const { to, subject, html, text, from = 'APIClaw <noreply@apiclaw.
|
|
677
|
+
const { to, subject, html, text, from = 'APIClaw <noreply@apiclaw.cloud>' } = params;
|
|
678
678
|
|
|
679
679
|
if (!to || !subject || (!html && !text)) {
|
|
680
680
|
return createErrorResult('resend', 'send_email', 'Missing required params: to, subject, html or text', ERROR_CODES.INVALID_PARAMS);
|
|
@@ -718,7 +718,7 @@ const handlers: Record<string, Record<string, (params: any, creds: any) => Promi
|
|
|
718
718
|
headers: {
|
|
719
719
|
'Authorization': `Bearer ${creds.api_key}`,
|
|
720
720
|
'Content-Type': 'application/json',
|
|
721
|
-
'HTTP-Referer': 'https://apiclaw.
|
|
721
|
+
'HTTP-Referer': 'https://apiclaw.cloud',
|
|
722
722
|
},
|
|
723
723
|
body: JSON.stringify({ model, messages, max_tokens }),
|
|
724
724
|
}, { provider: 'openrouter', action: 'chat' });
|