@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.
Files changed (228) hide show
  1. package/convex/http.js.map +1 -1
  2. package/convex/http.ts +516 -0
  3. package/dist/analytics.d.ts +0 -4
  4. package/dist/analytics.d.ts.map +1 -1
  5. package/dist/analytics.js +0 -1
  6. package/dist/analytics.js.map +1 -1
  7. package/dist/bin.js +1 -1
  8. package/dist/cli/commands/mcp-install.d.ts.map +1 -1
  9. package/dist/cli/commands/mcp-install.js +8 -87
  10. package/dist/cli/commands/mcp-install.js.map +1 -1
  11. package/dist/cli/index.js +0 -7
  12. package/dist/credentials.d.ts.map +1 -1
  13. package/dist/credentials.js +38 -43
  14. package/dist/credentials.js.map +1 -1
  15. package/dist/discovery.d.ts.map +1 -1
  16. package/dist/discovery.js +82 -191
  17. package/dist/discovery.js.map +1 -1
  18. package/dist/http-api.d.ts.map +1 -1
  19. package/dist/http-api.js +33 -17
  20. package/dist/http-api.js.map +1 -1
  21. package/dist/proxy.js +1 -1
  22. package/dist/proxy.js.map +1 -1
  23. package/landing/next-env.d.ts +0 -1
  24. package/landing/src/app/api/auth/magic-link/route.ts +1 -1
  25. package/landing/src/app/auth/verify/page.tsx +0 -6
  26. package/landing/src/app/dashboard/verify/page.tsx +0 -6
  27. package/landing/src/app/join/page.tsx +0 -6
  28. package/landing/src/app/layout.tsx +2 -2
  29. package/landing/src/app/login/page.tsx +1 -1
  30. package/landing/src/app/mou/[partnerId]/page.tsx +0 -6
  31. package/landing/src/app/page.tsx +18 -39
  32. package/landing/src/app/providers/dashboard/[apiId]/actions/[actionId]/edit/page.tsx +0 -6
  33. package/landing/src/app/providers/dashboard/[apiId]/actions/new/page.tsx +0 -5
  34. package/landing/src/app/providers/dashboard/[apiId]/actions/page.tsx +0 -5
  35. package/landing/src/app/providers/dashboard/[apiId]/direct-call/page.tsx +1 -6
  36. package/landing/src/app/providers/dashboard/[apiId]/page.tsx +0 -5
  37. package/landing/src/app/providers/dashboard/[apiId]/test/page.tsx +0 -5
  38. package/landing/src/app/providers/dashboard/layout.tsx +6 -6
  39. package/landing/src/app/providers/dashboard/login/page.tsx +1 -1
  40. package/landing/src/app/providers/dashboard/page.tsx +1 -1
  41. package/landing/src/app/providers/dashboard/verify/page.tsx +0 -6
  42. package/landing/src/app/providers/layout.tsx +1 -1
  43. package/landing/src/app/upgrade/page.tsx +0 -6
  44. package/landing/src/app/workspace/page.tsx +0 -6
  45. package/landing/src/components/HeroTabs.tsx +2 -2
  46. package/landing/src/components/{Workspace.tsx → ProviderDashboard.tsx} +2 -2
  47. package/landing/src/components/VideoDemo.tsx +10 -21
  48. package/landing/src/lib/mock-data.ts +1 -1
  49. package/landing/src/lib/stats.json +1 -1
  50. package/package.json +3 -8
  51. package/src/analytics.ts +0 -5
  52. package/src/bin.ts +1 -1
  53. package/src/cli/commands/mcp-install.ts +8 -90
  54. package/src/cli/index.ts +0 -8
  55. package/src/credentials.ts +39 -44
  56. package/src/discovery.ts +82 -191
  57. package/src/http-api.ts +34 -18
  58. package/src/proxy.ts +1 -1
  59. package/APILAYER_STATUS_2026-03-24.md +0 -38
  60. package/CHANGELOG-WHITELIST-V2.md +0 -269
  61. package/HIVR-WHITELIST-STATUS.md +0 -205
  62. package/HIVR-WHITELIST.md +0 -148
  63. package/TERMINOLOGY-AUDIT.md +0 -99
  64. package/TERMINOLOGY-FIXED.md +0 -74
  65. package/VIDEO-DEMO-GUIDE.md +0 -82
  66. package/WHITELIST-ARCHITECTURE.md +0 -379
  67. package/api/discover.ts +0 -71
  68. package/api/health.ts +0 -20
  69. package/convex/adminActivate.d.ts +0 -3
  70. package/convex/adminActivate.js +0 -47
  71. package/convex/adminStats.d.ts +0 -3
  72. package/convex/adminStats.js +0 -42
  73. package/convex/agents.d.ts +0 -54
  74. package/convex/agents.js +0 -499
  75. package/convex/analytics.d.ts +0 -5
  76. package/convex/analytics.js +0 -166
  77. package/convex/billing.d.ts +0 -88
  78. package/convex/billing.js +0 -655
  79. package/convex/capabilities.d.ts +0 -9
  80. package/convex/capabilities.js +0 -145
  81. package/convex/chains.d.ts +0 -67
  82. package/convex/chains.js +0 -1042
  83. package/convex/credits.d.ts +0 -25
  84. package/convex/credits.js +0 -186
  85. package/convex/crons.d.ts +0 -3
  86. package/convex/crons.js +0 -17
  87. package/convex/directCall.d.ts +0 -72
  88. package/convex/directCall.js +0 -627
  89. package/convex/earnProgress.d.ts +0 -58
  90. package/convex/earnProgress.js +0 -649
  91. package/convex/email.d.ts +0 -14
  92. package/convex/email.js +0 -300
  93. package/convex/feedback.d.ts +0 -7
  94. package/convex/feedback.js +0 -227
  95. package/convex/http.d.ts +0 -3
  96. package/convex/http.js +0 -910
  97. package/convex/logs.d.ts +0 -38
  98. package/convex/logs.js +0 -487
  99. package/convex/mou.d.ts +0 -6
  100. package/convex/mou.js +0 -82
  101. package/convex/providerKeys.d.ts +0 -31
  102. package/convex/providerKeys.js +0 -257
  103. package/convex/providers.d.ts +0 -29
  104. package/convex/providers.js +0 -756
  105. package/convex/purchases.d.ts +0 -7
  106. package/convex/purchases.js +0 -157
  107. package/convex/ratelimit.d.ts +0 -4
  108. package/convex/ratelimit.js +0 -91
  109. package/convex/searchLogs.d.ts +0 -4
  110. package/convex/searchLogs.js +0 -129
  111. package/convex/spendAlerts.d.ts +0 -36
  112. package/convex/spendAlerts.js +0 -380
  113. package/convex/stripeActions.d.ts +0 -19
  114. package/convex/stripeActions.js +0 -411
  115. package/convex/teams.d.ts +0 -21
  116. package/convex/teams.js +0 -215
  117. package/convex/telemetry.d.ts +0 -4
  118. package/convex/telemetry.js +0 -74
  119. package/convex/usage.d.ts +0 -27
  120. package/convex/usage.js +0 -229
  121. package/convex/waitlist.d.ts +0 -4
  122. package/convex/waitlist.js +0 -49
  123. package/convex/webhooks.d.ts +0 -12
  124. package/convex/webhooks.js +0 -410
  125. package/convex/workspaces.d.ts +0 -29
  126. package/convex/workspaces.js +0 -880
  127. package/direct-test.mjs +0 -51
  128. package/dist/access-control.d.ts +0 -45
  129. package/dist/access-control.d.ts.map +0 -1
  130. package/dist/access-control.js +0 -142
  131. package/dist/access-control.js.map +0 -1
  132. package/dist/chain-types.d.ts +0 -187
  133. package/dist/chain-types.d.ts.map +0 -1
  134. package/dist/chain-types.js +0 -33
  135. package/dist/chain-types.js.map +0 -1
  136. package/dist/convex/adminActivate.js +0 -46
  137. package/dist/convex/adminStats.js +0 -41
  138. package/dist/convex/agents.js +0 -498
  139. package/dist/convex/analytics.js +0 -165
  140. package/dist/convex/billing.js +0 -654
  141. package/dist/convex/capabilities.js +0 -144
  142. package/dist/convex/chains.js +0 -1041
  143. package/dist/convex/credits.js +0 -185
  144. package/dist/convex/crons.js +0 -16
  145. package/dist/convex/directCall.js +0 -626
  146. package/dist/convex/earnProgress.js +0 -648
  147. package/dist/convex/email.js +0 -299
  148. package/dist/convex/feedback.js +0 -226
  149. package/dist/convex/http.js +0 -909
  150. package/dist/convex/logs.js +0 -486
  151. package/dist/convex/mou.js +0 -81
  152. package/dist/convex/providerKeys.js +0 -256
  153. package/dist/convex/providers.js +0 -755
  154. package/dist/convex/purchases.js +0 -156
  155. package/dist/convex/ratelimit.js +0 -90
  156. package/dist/convex/schema.js +0 -709
  157. package/dist/convex/searchLogs.js +0 -128
  158. package/dist/convex/spendAlerts.js +0 -379
  159. package/dist/convex/stripeActions.js +0 -410
  160. package/dist/convex/teams.js +0 -214
  161. package/dist/convex/telemetry.js +0 -73
  162. package/dist/convex/usage.js +0 -228
  163. package/dist/convex/waitlist.js +0 -48
  164. package/dist/convex/webhooks.js +0 -409
  165. package/dist/convex/workspaces.js +0 -879
  166. package/dist/hivr-whitelist.d.ts +0 -18
  167. package/dist/hivr-whitelist.d.ts.map +0 -1
  168. package/dist/hivr-whitelist.js +0 -95
  169. package/dist/hivr-whitelist.js.map +0 -1
  170. package/dist/http-server-minimal.d.ts +0 -7
  171. package/dist/http-server-minimal.d.ts.map +0 -1
  172. package/dist/http-server-minimal.js +0 -126
  173. package/dist/http-server-minimal.js.map +0 -1
  174. package/dist/product-whitelist.d.ts +0 -37
  175. package/dist/product-whitelist.d.ts.map +0 -1
  176. package/dist/product-whitelist.js +0 -203
  177. package/dist/product-whitelist.js.map +0 -1
  178. package/dist/src/analytics.js +0 -129
  179. package/dist/src/bin.js +0 -17
  180. package/dist/src/capability-router.js +0 -240
  181. package/dist/src/chainExecutor.js +0 -451
  182. package/dist/src/chainResolver.js +0 -518
  183. package/dist/src/cli/commands/doctor.js +0 -324
  184. package/dist/src/cli/commands/mcp-install.js +0 -255
  185. package/dist/src/cli/commands/restore.js +0 -259
  186. package/dist/src/cli/commands/setup.js +0 -205
  187. package/dist/src/cli/commands/uninstall.js +0 -188
  188. package/dist/src/cli/index.js +0 -111
  189. package/dist/src/cli.js +0 -302
  190. package/dist/src/confirmation.js +0 -240
  191. package/dist/src/credentials.js +0 -357
  192. package/dist/src/credits.js +0 -260
  193. package/dist/src/crypto.js +0 -66
  194. package/dist/src/discovery.js +0 -504
  195. package/dist/src/enterprise/env.js +0 -123
  196. package/dist/src/enterprise/script-generator.js +0 -460
  197. package/dist/src/execute-dynamic.js +0 -473
  198. package/dist/src/execute.js +0 -1727
  199. package/dist/src/index.js +0 -2062
  200. package/dist/src/metered.js +0 -80
  201. package/dist/src/open-apis.js +0 -276
  202. package/dist/src/proxy.js +0 -28
  203. package/dist/src/session.js +0 -86
  204. package/dist/src/stripe.js +0 -407
  205. package/dist/src/telemetry.js +0 -49
  206. package/dist/src/types.js +0 -2
  207. package/dist/src/utils/backup.js +0 -181
  208. package/dist/src/utils/config.js +0 -220
  209. package/dist/src/utils/os.js +0 -105
  210. package/dist/src/utils/paths.js +0 -159
  211. package/landing/pages/api/discover.ts +0 -43
  212. package/landing/pages/api/health.ts +0 -20
  213. package/scripts/test-whitelist-v2.sh +0 -128
  214. package/src/access-control.ts +0 -174
  215. package/src/hivr-whitelist.ts +0 -110
  216. package/src/http-server-minimal.ts +0 -154
  217. package/src/product-whitelist.ts +0 -246
  218. package/test-actual-handlers.ts +0 -92
  219. package/test-apilayer-all-14.ts +0 -249
  220. package/test-apilayer-fixed.ts +0 -248
  221. package/test-direct-endpoints.ts +0 -174
  222. package/test-exact-endpoints.ts +0 -144
  223. package/test-final.ts +0 -83
  224. package/test-full-routing.ts +0 -100
  225. package/test-handlers-correct.ts +0 -217
  226. package/test-numverify-key.ts +0 -41
  227. package/test-via-handlers.ts +0 -92
  228. package/test-worldnews.mjs +0 -26
package/HIVR-WHITELIST.md DELETED
@@ -1,148 +0,0 @@
1
- # Hivr Auto-Whitelist System
2
-
3
- **Problem:** Manually updating hardcoded whitelist every time new bee is added = fragile + easy to forget.
4
-
5
- **Solution:** APIClaw dynamically fetches active agents from Hivr's Convex deployment.
6
-
7
- ---
8
-
9
- ## How It Works
10
-
11
- 1. **Hivr Convex Deployment:** `sensible-quail-275` (PROD)
12
- 2. **APIClaw queries:** `agents:list` from Hivr
13
- 3. **Cache:** 5 minutes (performance)
14
- 4. **Fallback:** Static whitelist if Convex unreachable
15
-
16
- ---
17
-
18
- ## Files
19
-
20
- | File | Purpose |
21
- |------|---------|
22
- | `src/hivr-whitelist.ts` | Dynamic whitelist module |
23
- | `src/http-api.ts` | Uses `isAuthorized()` from hivr-whitelist |
24
-
25
- ---
26
-
27
- ## Usage
28
-
29
- ### In Code
30
- ```typescript
31
- import { isAuthorized, invalidateCache } from './hivr-whitelist.js';
32
-
33
- // Check if agent is whitelisted
34
- const authorized = await isAuthorized('bytebee'); // true
35
-
36
- // Force refresh (after adding new bee)
37
- invalidateCache();
38
- ```
39
-
40
- ### Adding New Bee (Automatic!)
41
- 1. Add agent in Hivr (hivr.online admin)
42
- 2. APIClaw will auto-discover within 5 minutes
43
- 3. **No code changes needed!**
44
-
45
- ---
46
-
47
- ## Manual Override (Emergency)
48
-
49
- If Hivr Convex is down, edit static fallback:
50
-
51
- **File:** `src/hivr-whitelist.ts`
52
- **Line:** 10-23
53
-
54
- ```typescript
55
- const STATIC_WHITELIST = [
56
- 'bytebee',
57
- 'symbot',
58
- // Add emergency agents here
59
- ];
60
- ```
61
-
62
- Then rebuild:
63
- ```bash
64
- npm run build
65
- ```
66
-
67
- ---
68
-
69
- ## Testing
70
-
71
- ### Local Test
72
- ```bash
73
- # Start APIClaw HTTP API
74
- npm run start:http
75
-
76
- # Test authorization
77
- curl "http://localhost:3000/api/discover?query=web&agentId=bytebee"
78
- # Should return 200 (authorized)
79
-
80
- curl "http://localhost:3000/api/discover?query=web&agentId=unauthorized"
81
- # Should return 403 (unauthorized)
82
- ```
83
-
84
- ### Check Whitelist Cache
85
- APIClaw logs when fetching whitelist:
86
- ```
87
- [Hivr Whitelist] Fetched 12 agents from Hivr
88
- ```
89
-
90
- ---
91
-
92
- ## Troubleshooting
93
-
94
- **Problem:** New bee not authorized immediately
95
- **Solution:** Wait 5 minutes (cache) or restart APIClaw server
96
-
97
- **Problem:** "Failed to fetch from Hivr Convex"
98
- **Solution:** Check Hivr Convex URL in `hivr-whitelist.ts`, fallback to static
99
-
100
- **Problem:** All bees unauthorized
101
- **Solution:** Check Hivr agents table has `agentId` field
102
-
103
- ---
104
-
105
- ## Architecture
106
-
107
- ```
108
- ┌─────────────────────────────────────────────┐
109
- │ Hivr.online (sensible-quail-275) │
110
- │ ┌───────────────────────────────────────┐ │
111
- │ │ agents table │ │
112
- │ │ { agentId: "bytebee", ... } │ │
113
- │ └───────────────────────────────────────┘ │
114
- └─────────────────────────────────────────────┘
115
-
116
- │ Query agents:list
117
- │ (every 5 min)
118
-
119
- ┌─────────────────────────────────────────────┐
120
- │ APIClaw HTTP API │
121
- │ ┌───────────────────────────────────────┐ │
122
- │ │ hivr-whitelist.ts │ │
123
- │ │ - Cached whitelist │ │
124
- │ │ - Auto-refresh every 5 min │ │
125
- │ │ - Fallback to static list │ │
126
- │ └───────────────────────────────────────┘ │
127
- │ │ │
128
- │ ┌───────────────────────────────────────┐ │
129
- │ │ http-api.ts │ │
130
- │ │ - /api/discover │ │
131
- │ │ - /api/call_api │ │
132
- │ │ - Calls isAuthorized(agentId) │ │
133
- │ └───────────────────────────────────────┘ │
134
- └─────────────────────────────────────────────┘
135
- ```
136
-
137
- ---
138
-
139
- ## Future Improvements
140
-
141
- - [ ] Webhook from Hivr when new agent added (instant refresh)
142
- - [ ] Admin endpoint to manually refresh: `GET /api/admin/refresh-whitelist`
143
- - [ ] Whitelist per-API (some bees only get certain providers)
144
- - [ ] Usage quotas per bee (track in Convex)
145
-
146
- ---
147
-
148
- **TL;DR:** Add agent in Hivr → APIClaw auto-whitelists within 5 min. Zero manual code changes.
@@ -1,99 +0,0 @@
1
- # 🔍 APIClaw Terminology Audit - "Provider Dashboard" → "Workspace"
2
-
3
- **Goal:** Unify all dashboard terminology to "Workspace" regardless of user role.
4
-
5
- **Principle:** ONE dashboard for ALL users. Same name: **Workspace**. Different data based on role.
6
-
7
- ---
8
-
9
- ## ❌ Current Issues
10
-
11
- **Problem:** Multiple terms for the same concept:
12
- - "Provider Dashboard" (for API providers like APILayer)
13
- - "Workspace" (for regular users)
14
- - Routes: `/providers/dashboard` vs `/workspace`
15
-
16
- **Confusion:** Users/AI don't know if these are different things or the same.
17
-
18
- ---
19
-
20
- ## 📋 Files to Update
21
-
22
- ### **1. Component Rename**
23
-
24
- **File:** `src/components/ProviderDashboard.tsx`
25
- - Rename to: `Workspace.tsx`
26
- - Export: `ProviderDashboard` → `Workspace`
27
-
28
- ### **2. Route Structure**
29
-
30
- **Current:** `/providers/dashboard/*`
31
- **Decision needed:**
32
- - Option A: Rename to `/providers/workspace/*` (keeps separation)
33
- - Option B: Merge into `/workspace` (unified, role-based views)
34
-
35
- **Recommendation:** Option B - One workspace, role-based content.
36
-
37
- ### **3. UI Text Changes (9 files)**
38
-
39
- | File | Line | Current | Replace With |
40
- |------|------|---------|--------------|
41
- | `src/app/api/auth/magic-link/route.ts` | 54 | "provider dashboard" | "workspace" |
42
- | `src/app/login/page.tsx` | 202 | "Provider Dashboard" | "Workspace" |
43
- | `src/app/providers/dashboard/[apiId]/direct-call/page.tsx` | 448 | "provider dashboard" | "workspace" |
44
- | `src/app/providers/dashboard/login/page.tsx` | 112 | "Provider Dashboard" | "Workspace" |
45
- | `src/app/providers/dashboard/page.tsx` | 7 | `ProviderDashboardRedirect` | `WorkspaceRedirect` |
46
- | `src/app/providers/layout.tsx` | 4 | "Provider Dashboard" | "Workspace" |
47
- | `src/components/ProviderDashboard.tsx` | 79 | "Provider Dashboard" | "Workspace" |
48
- | `src/lib/mock-data.ts` | 1 | "provider dashboard demo" | "workspace demo" |
49
-
50
- ---
51
-
52
- ## ✅ Acceptable "Provider" Usage
53
-
54
- **These are OK (not confusing):**
55
- - "API provider" (describes what someone IS, not a UI element)
56
- - "Direct Call provider" (describes a service type)
57
- - Technical variable names like `providerId`, `providerName` (code internals)
58
- - "Provider" in list contexts ("Browse providers")
59
-
60
- **Rule:** "Provider" OK when describing a ROLE or TYPE. NOT OK when naming UI elements.
61
-
62
- ---
63
-
64
- ## 🎯 Proposed Changes
65
-
66
- ### Phase 1: UI Text (Quick Win)
67
- Replace all "Provider Dashboard" → "Workspace" in user-facing text.
68
-
69
- ### Phase 2: Component Rename
70
- `ProviderDashboard.tsx` → `Workspace.tsx`
71
-
72
- ### Phase 3: Route Consolidation (Optional)
73
- Merge `/providers/dashboard` into `/workspace` with role-based rendering.
74
-
75
- ---
76
-
77
- ## 📝 Implementation Script
78
-
79
- ```bash
80
- # Find all instances (for verification)
81
- cd ~/Projects/apiclaw/landing
82
- grep -rn "Provider Dashboard" src/ --include="*.tsx" --include="*.ts"
83
-
84
- # Replace in files (do manually or scripted)
85
- # See detailed file list above
86
- ```
87
-
88
- ---
89
-
90
- ## 🚀 Next Steps
91
-
92
- 1. Review this audit
93
- 2. Confirm approach (Phase 1-3 vs all at once)
94
- 3. Execute changes
95
- 4. Test routes still work
96
- 5. Deploy
97
-
98
- **Created:** 2026-03-24
99
- **Status:** Ready for implementation
@@ -1,74 +0,0 @@
1
- # ✅ Terminology Fixed - "Provider Dashboard" → "Workspace"
2
-
3
- **Completed:** 2026-03-24 16:39
4
-
5
- ---
6
-
7
- ## Changes Made
8
-
9
- ### 1. Component Renamed ✅
10
- - `src/components/ProviderDashboard.tsx` → `Workspace.tsx`
11
- - Export function: `ProviderDashboard()` → `Workspace()`
12
- - Internal h1: "Provider Dashboard" → "Workspace"
13
-
14
- ### 2. All UI Text Updated ✅
15
-
16
- | File | Old | New |
17
- |------|-----|-----|
18
- | `src/app/api/auth/magic-link/route.ts` | "provider dashboard" | "workspace" |
19
- | `src/app/login/page.tsx` | "Provider Dashboard" | "Workspace" |
20
- | `src/app/providers/dashboard/[apiId]/direct-call/page.tsx` | "provider dashboard" | "workspace" |
21
- | `src/app/providers/dashboard/login/page.tsx` | "Provider Dashboard" | "Workspace" |
22
- | `src/app/providers/dashboard/page.tsx` | `ProviderDashboardRedirect` | `WorkspaceRedirect` |
23
- | `src/app/providers/layout.tsx` | "Provider Dashboard" | "Workspace" |
24
- | `src/lib/mock-data.ts` | "provider dashboard demo" | "workspace demo" |
25
-
26
- ### 3. Verification ✅
27
- ```bash
28
- grep -rn "Provider Dashboard\|ProviderDashboard" src/
29
- # Result: No matches found ✓
30
- ```
31
-
32
- ---
33
-
34
- ## Result
35
-
36
- **Before:**
37
- - "Provider Dashboard" for API providers
38
- - "Workspace" for regular users
39
- - **Confusing:** Are these different things?
40
-
41
- **After:**
42
- - **"Workspace"** for EVERYONE
43
- - Same name, different data based on role
44
- - **Clear:** One unified dashboard concept
45
-
46
- ---
47
-
48
- ## Next Steps
49
-
50
- **When ready to deploy:**
51
- ```bash
52
- cd ~/Projects/apiclaw/landing
53
- npm install # if needed
54
- npm run build
55
- npx vercel --prod --yes
56
- ```
57
-
58
- **Routes still work:**
59
- - `/workspace` → User workspace
60
- - `/providers/dashboard` → Still routes to workspace (URL unchanged for now)
61
- - Both show "Workspace" in UI
62
-
63
- ---
64
-
65
- ## No More Confusion
66
-
67
- ✅ Users see: "Workspace"
68
- ✅ API providers see: "Workspace"
69
- ✅ Pratham will see: "Workspace"
70
- ✅ AI/bots see: "Workspace"
71
-
72
- **One term. Clear meaning. No confusion.**
73
-
74
- 🎯 **Done.**
@@ -1,82 +0,0 @@
1
- # 🎬 Video Demo Setup Guide
2
-
3
- ## ✅ What's Ready
4
-
5
- **Component created:** `landing/src/components/VideoDemo.tsx`
6
- **Integrated:** Landing page (`landing/src/app/page.tsx`)
7
- **Position:** Floating bubble, bottom-right corner
8
- **Animation:** Pulse effect + hover expand
9
-
10
- ## 📹 Tomorrow Morning - Steps
11
-
12
- ### 1. Record with Tella
13
- - Open Tella on Mac
14
- - Record 2-minute demo:
15
- - Install: `npx @nordsym/apiclaw mcp-install`
16
- - Show workspace
17
- - Make an API call
18
- - Show it working
19
- - Upload to Tella & get embed URL
20
-
21
- ### 2. Update Component
22
-
23
- Open: `landing/src/components/VideoDemo.tsx`
24
-
25
- **Line 14** - Replace:
26
- ```tsx
27
- videoUrl = "PASTE_TELLA_URL_HERE"
28
- ```
29
-
30
- With your Tella embed URL (format: `https://www.tella.tv/video/...`)
31
-
32
- ### 3. Deploy
33
-
34
- ```bash
35
- cd ~/Projects/apiclaw/landing
36
- npm run build
37
- npx vercel --prod --yes
38
- ```
39
-
40
- ## 🎨 Styling
41
-
42
- **Already styled to match APIClaw design:**
43
- - Red accent (#ef4444)
44
- - Pulse animation
45
- - Clean modal
46
- - Mobile responsive
47
- - Dark mode compatible
48
-
49
- ## 📝 Video Content Suggestion
50
-
51
- **0:00-0:20** - "I'm going to show you how to use APIClaw in 2 minutes"
52
- **0:20-0:40** - Install command + MCP setup
53
- **0:40-1:20** - Open workspace, discover APIs, make call
54
- **1:20-1:40** - Show response, explain Direct Call
55
- **1:40-2:00** - "That's it. No API keys needed. Go to apiclaw.cloud"
56
-
57
- ## 🔧 Optional Customization
58
-
59
- **Change button text:**
60
- ```tsx
61
- // In VideoDemo.tsx, line 28
62
- <span>Watch Demo</span> // Change this
63
- ```
64
-
65
- **Change video title:**
66
- ```tsx
67
- // In VideoDemo.tsx, line 65
68
- <h3>🦞 APIClaw Quick Start</h3> // Change this
69
- ```
70
-
71
- ## ✨ Features
72
-
73
- - ✅ Floating button (always visible while scrolling)
74
- - ✅ Click to open full-screen modal
75
- - ✅ Click outside to close
76
- - ✅ ESC key support
77
- - ✅ Responsive (works on mobile)
78
- - ✅ Smooth animations
79
-
80
- ## 🚀 Ready to Go!
81
-
82
- Just record the video and paste the URL. Everything else is done.