@recursiv/sdk 0.2.0

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 (208) hide show
  1. package/LICENSE +105 -0
  2. package/README.md +331 -0
  3. package/dist/client.d.ts +22 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +192 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/errors.d.ts +29 -0
  8. package/dist/errors.d.ts.map +1 -0
  9. package/dist/errors.js +60 -0
  10. package/dist/errors.js.map +1 -0
  11. package/dist/index.d.ts +148 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +184 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/lib/sse.d.ts +6 -0
  16. package/dist/lib/sse.d.ts.map +1 -0
  17. package/dist/lib/sse.js +52 -0
  18. package/dist/lib/sse.js.map +1 -0
  19. package/dist/lib/webhooks.d.ts +41 -0
  20. package/dist/lib/webhooks.d.ts.map +1 -0
  21. package/dist/lib/webhooks.js +91 -0
  22. package/dist/lib/webhooks.js.map +1 -0
  23. package/dist/react/index.d.ts +2 -0
  24. package/dist/react/index.d.ts.map +1 -0
  25. package/dist/react/index.js +2 -0
  26. package/dist/react/index.js.map +1 -0
  27. package/dist/react/useChat.d.ts +26 -0
  28. package/dist/react/useChat.d.ts.map +1 -0
  29. package/dist/react/useChat.js +111 -0
  30. package/dist/react/useChat.js.map +1 -0
  31. package/dist/realtime.d.ts +67 -0
  32. package/dist/realtime.d.ts.map +1 -0
  33. package/dist/realtime.js +104 -0
  34. package/dist/realtime.js.map +1 -0
  35. package/dist/resources/admin.d.ts +287 -0
  36. package/dist/resources/admin.d.ts.map +1 -0
  37. package/dist/resources/admin.js +110 -0
  38. package/dist/resources/admin.js.map +1 -0
  39. package/dist/resources/agents.d.ts +136 -0
  40. package/dist/resources/agents.d.ts.map +1 -0
  41. package/dist/resources/agents.js +113 -0
  42. package/dist/resources/agents.js.map +1 -0
  43. package/dist/resources/auth.d.ts +68 -0
  44. package/dist/resources/auth.d.ts.map +1 -0
  45. package/dist/resources/auth.js +231 -0
  46. package/dist/resources/auth.js.map +1 -0
  47. package/dist/resources/billing.d.ts +143 -0
  48. package/dist/resources/billing.d.ts.map +1 -0
  49. package/dist/resources/billing.js +55 -0
  50. package/dist/resources/billing.js.map +1 -0
  51. package/dist/resources/brain.d.ts +26 -0
  52. package/dist/resources/brain.d.ts.map +1 -0
  53. package/dist/resources/brain.js +11 -0
  54. package/dist/resources/brain.js.map +1 -0
  55. package/dist/resources/chat.d.ts +52 -0
  56. package/dist/resources/chat.d.ts.map +1 -0
  57. package/dist/resources/chat.js +59 -0
  58. package/dist/resources/chat.js.map +1 -0
  59. package/dist/resources/commands.d.ts +41 -0
  60. package/dist/resources/commands.d.ts.map +1 -0
  61. package/dist/resources/commands.js +15 -0
  62. package/dist/resources/commands.js.map +1 -0
  63. package/dist/resources/communities.d.ts +19 -0
  64. package/dist/resources/communities.d.ts.map +1 -0
  65. package/dist/resources/communities.js +31 -0
  66. package/dist/resources/communities.js.map +1 -0
  67. package/dist/resources/databases.d.ts +58 -0
  68. package/dist/resources/databases.d.ts.map +1 -0
  69. package/dist/resources/databases.js +27 -0
  70. package/dist/resources/databases.js.map +1 -0
  71. package/dist/resources/deployments.d.ts +57 -0
  72. package/dist/resources/deployments.d.ts.map +1 -0
  73. package/dist/resources/deployments.js +31 -0
  74. package/dist/resources/deployments.js.map +1 -0
  75. package/dist/resources/dispatcher.d.ts +330 -0
  76. package/dist/resources/dispatcher.d.ts.map +1 -0
  77. package/dist/resources/dispatcher.js +155 -0
  78. package/dist/resources/dispatcher.js.map +1 -0
  79. package/dist/resources/email.d.ts +136 -0
  80. package/dist/resources/email.d.ts.map +1 -0
  81. package/dist/resources/email.js +51 -0
  82. package/dist/resources/email.js.map +1 -0
  83. package/dist/resources/free-tier.d.ts +59 -0
  84. package/dist/resources/free-tier.d.ts.map +1 -0
  85. package/dist/resources/free-tier.js +27 -0
  86. package/dist/resources/free-tier.js.map +1 -0
  87. package/dist/resources/github.d.ts +55 -0
  88. package/dist/resources/github.d.ts.map +1 -0
  89. package/dist/resources/github.js +23 -0
  90. package/dist/resources/github.js.map +1 -0
  91. package/dist/resources/inbox.d.ts +13 -0
  92. package/dist/resources/inbox.d.ts.map +1 -0
  93. package/dist/resources/inbox.js +11 -0
  94. package/dist/resources/inbox.js.map +1 -0
  95. package/dist/resources/integrations.d.ts +158 -0
  96. package/dist/resources/integrations.d.ts.map +1 -0
  97. package/dist/resources/integrations.js +78 -0
  98. package/dist/resources/integrations.js.map +1 -0
  99. package/dist/resources/invite-codes-admin.d.ts +69 -0
  100. package/dist/resources/invite-codes-admin.d.ts.map +1 -0
  101. package/dist/resources/invite-codes-admin.js +31 -0
  102. package/dist/resources/invite-codes-admin.js.map +1 -0
  103. package/dist/resources/invite-codes.d.ts +166 -0
  104. package/dist/resources/invite-codes.d.ts.map +1 -0
  105. package/dist/resources/invite-codes.js +69 -0
  106. package/dist/resources/invite-codes.js.map +1 -0
  107. package/dist/resources/jobs.d.ts +40 -0
  108. package/dist/resources/jobs.d.ts.map +1 -0
  109. package/dist/resources/jobs.js +23 -0
  110. package/dist/resources/jobs.js.map +1 -0
  111. package/dist/resources/media.d.ts +21 -0
  112. package/dist/resources/media.d.ts.map +1 -0
  113. package/dist/resources/media.js +11 -0
  114. package/dist/resources/media.js.map +1 -0
  115. package/dist/resources/memory.d.ts +116 -0
  116. package/dist/resources/memory.d.ts.map +1 -0
  117. package/dist/resources/memory.js +57 -0
  118. package/dist/resources/memory.js.map +1 -0
  119. package/dist/resources/network.d.ts +24 -0
  120. package/dist/resources/network.d.ts.map +1 -0
  121. package/dist/resources/network.js +11 -0
  122. package/dist/resources/network.js.map +1 -0
  123. package/dist/resources/notifications.d.ts +11 -0
  124. package/dist/resources/notifications.d.ts.map +1 -0
  125. package/dist/resources/notifications.js +36 -0
  126. package/dist/resources/notifications.js.map +1 -0
  127. package/dist/resources/organization-security.d.ts +29 -0
  128. package/dist/resources/organization-security.d.ts.map +1 -0
  129. package/dist/resources/organization-security.js +15 -0
  130. package/dist/resources/organization-security.js.map +1 -0
  131. package/dist/resources/organization-settings.d.ts +80 -0
  132. package/dist/resources/organization-settings.d.ts.map +1 -0
  133. package/dist/resources/organization-settings.js +35 -0
  134. package/dist/resources/organization-settings.js.map +1 -0
  135. package/dist/resources/organizations.d.ts +73 -0
  136. package/dist/resources/organizations.d.ts.map +1 -0
  137. package/dist/resources/organizations.js +63 -0
  138. package/dist/resources/organizations.js.map +1 -0
  139. package/dist/resources/posts.d.ts +28 -0
  140. package/dist/resources/posts.d.ts.map +1 -0
  141. package/dist/resources/posts.js +39 -0
  142. package/dist/resources/posts.js.map +1 -0
  143. package/dist/resources/profiles.d.ts +45 -0
  144. package/dist/resources/profiles.d.ts.map +1 -0
  145. package/dist/resources/profiles.js +55 -0
  146. package/dist/resources/profiles.js.map +1 -0
  147. package/dist/resources/project-brain.d.ts +239 -0
  148. package/dist/resources/project-brain.d.ts.map +1 -0
  149. package/dist/resources/project-brain.js +83 -0
  150. package/dist/resources/project-brain.js.map +1 -0
  151. package/dist/resources/projects.d.ts +37 -0
  152. package/dist/resources/projects.d.ts.map +1 -0
  153. package/dist/resources/projects.js +55 -0
  154. package/dist/resources/projects.js.map +1 -0
  155. package/dist/resources/protocols.d.ts +66 -0
  156. package/dist/resources/protocols.d.ts.map +1 -0
  157. package/dist/resources/protocols.js +31 -0
  158. package/dist/resources/protocols.js.map +1 -0
  159. package/dist/resources/sandbox.d.ts +12 -0
  160. package/dist/resources/sandbox.d.ts.map +1 -0
  161. package/dist/resources/sandbox.js +14 -0
  162. package/dist/resources/sandbox.js.map +1 -0
  163. package/dist/resources/settings.d.ts +52 -0
  164. package/dist/resources/settings.d.ts.map +1 -0
  165. package/dist/resources/settings.js +66 -0
  166. package/dist/resources/settings.js.map +1 -0
  167. package/dist/resources/simulator.d.ts +20 -0
  168. package/dist/resources/simulator.d.ts.map +1 -0
  169. package/dist/resources/simulator.js +23 -0
  170. package/dist/resources/simulator.js.map +1 -0
  171. package/dist/resources/storage.d.ts +82 -0
  172. package/dist/resources/storage.d.ts.map +1 -0
  173. package/dist/resources/storage.js +43 -0
  174. package/dist/resources/storage.js.map +1 -0
  175. package/dist/resources/swarms.d.ts +98 -0
  176. package/dist/resources/swarms.d.ts.map +1 -0
  177. package/dist/resources/swarms.js +53 -0
  178. package/dist/resources/swarms.js.map +1 -0
  179. package/dist/resources/tags.d.ts +19 -0
  180. package/dist/resources/tags.d.ts.map +1 -0
  181. package/dist/resources/tags.js +23 -0
  182. package/dist/resources/tags.js.map +1 -0
  183. package/dist/resources/templates.d.ts +62 -0
  184. package/dist/resources/templates.d.ts.map +1 -0
  185. package/dist/resources/templates.js +36 -0
  186. package/dist/resources/templates.js.map +1 -0
  187. package/dist/resources/uploads.d.ts +43 -0
  188. package/dist/resources/uploads.d.ts.map +1 -0
  189. package/dist/resources/uploads.js +39 -0
  190. package/dist/resources/uploads.js.map +1 -0
  191. package/dist/resources/users.d.ts +15 -0
  192. package/dist/resources/users.d.ts.map +1 -0
  193. package/dist/resources/users.js +23 -0
  194. package/dist/resources/users.js.map +1 -0
  195. package/dist/resources/wallet.d.ts +57 -0
  196. package/dist/resources/wallet.d.ts.map +1 -0
  197. package/dist/resources/wallet.js +43 -0
  198. package/dist/resources/wallet.js.map +1 -0
  199. package/dist/resources/webhooks.d.ts +29 -0
  200. package/dist/resources/webhooks.d.ts.map +1 -0
  201. package/dist/resources/webhooks.js +19 -0
  202. package/dist/resources/webhooks.js.map +1 -0
  203. package/dist/types.d.ts +703 -0
  204. package/dist/types.d.ts.map +1 -0
  205. package/dist/types.js +3 -0
  206. package/dist/types.js.map +1 -0
  207. package/llm.md +532 -0
  208. package/package.json +62 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ // ── Shared ──
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,eAAe"}
package/llm.md ADDED
@@ -0,0 +1,532 @@
1
+ # Recursiv SDK — Reference for AI Coding Assistants
2
+
3
+ > Read this file before writing any code with @recursiv/sdk.
4
+ > It covers all resources, decision rules, working examples, and known gotchas.
5
+
6
+ ```typescript
7
+ import { Recursiv } from '@recursiv/sdk'
8
+ const r = new Recursiv() // reads RECURSIV_API_KEY from env
9
+ ```
10
+
11
+ ## Decision rules — pick the right resource
12
+
13
+ | Need | Use | Do NOT use |
14
+ |------|-----|-----------|
15
+ | Structured/relational data | `r.databases` → Postgres | `r.posts` with JSON blobs |
16
+ | Social content, feeds, reactions | `r.posts` + `r.communities` + `r.tags` | `r.databases` for social feeds |
17
+ | File storage (photos, docs, media) | `r.storage` (buckets, presigned URLs) | `r.uploads` (legacy) |
18
+ | User auth and API keys | `r.auth` | Raw fetch to `/api/auth/*` |
19
+ | AI agent with model + system prompt | `r.agents` | Direct LLM API calls |
20
+ | Agent code/tool execution | `r.projects.executeCode()` + `r.commands` | External sandboxes |
21
+ | Deploy to production | `r.projects.deploy()` | Manual CI/CD |
22
+ | Messaging between users | `r.chat` | Custom WebSocket layer |
23
+ | Team/org management | `r.organizations` | Custom user-group tables |
24
+ | Per-project task tracking & decisions | `r.projectBrain` | External project management |
25
+ | Persistent agent memory | `r.memory` (facts, decisions, search) | Storing knowledge in `r.posts` or `r.databases` |
26
+ | Transactional email (receipts, alerts) | `r.email.send()` | Direct Resend/SendGrid calls |
27
+ | Receive external webhooks (Stripe, etc.) | `r.webhooks.register()` | Custom webhook server |
28
+ | Server-side cron / scheduled tasks | `r.jobs.create()` | External cron services |
29
+
30
+ **IMPORTANT:** Do NOT store structured app data (records, inventory, tasks, settings) as JSON inside `r.posts.content`. Posts are for social content. Use `r.databases` for application data.
31
+
32
+ ---
33
+
34
+ ## Infrastructure
35
+
36
+ ### r.databases — Provision and query Postgres
37
+
38
+ ```typescript
39
+ const { data: db } = await r.databases.ensure({ project_id: 'proj_xxx', name: 'my-app-db' })
40
+ const { data: creds } = await r.databases.getCredentials({ project_id: 'proj_xxx', name: 'my-app-db' })
41
+ // creds.connection_string → "postgresql://user:pass@host:5432/dbname"
42
+ ```
43
+
44
+ Methods: `list({ project_id })`, `create({ project_id, name })`, `ensure({ project_id, name? })`, `getCredentials({ project_id, name })`
45
+
46
+ Note: `ensure` is idempotent — safe to call on every app launch. `getCredentials` takes `project_id` + `name`, not `database_id`.
47
+
48
+ ### r.projects — Deploy, sandbox, execute code
49
+
50
+ ```typescript
51
+ const { data: project } = await r.projects.create({ name: 'My App', organization_id: orgId })
52
+ await r.projects.createSandbox(project.id)
53
+
54
+ const { data: result } = await r.projects.executeCode(project.id, {
55
+ code: 'console.log("hello")',
56
+ language: 'typescript',
57
+ })
58
+ // result.output → "hello\n"
59
+
60
+ const { data: deployment } = await r.projects.deploy(project.id, { branch: 'main', type: 'production' })
61
+ const { data: logs } = await r.projects.deploymentLogs(project.id, deployment.id)
62
+ ```
63
+
64
+ Methods: `list`, `get`, `create`, `delete`, `deploy`, `executeCode`, `sandbox`, `createSandbox`, `stopSandbox`, `deployment`, `deploymentLogs`, `deployments`
65
+
66
+ ### r.storage — Bucket-based file storage
67
+
68
+ ```typescript
69
+ const { data: bucket } = await r.storage.ensureBucket({ name: 'user-photos', project_id: project.id })
70
+ const { data: upload } = await r.storage.getUploadUrl({
71
+ bucket_name: 'user-photos', key: 'photo.jpg', content_type: 'image/jpeg', project_id: project.id,
72
+ })
73
+ // PUT file to upload.url
74
+ const { data: download } = await r.storage.getDownloadUrl({
75
+ bucket_name: 'user-photos', key: 'photo.jpg', project_id: project.id,
76
+ })
77
+ // GET file from download.url
78
+ ```
79
+
80
+ Methods: `listBuckets`, `getBucket`, `createBucket`, `ensureBucket`, `listItems`, `createFolder`, `getUploadUrl`, `getDownloadUrl`, `deleteObject`
81
+
82
+ Note: `ensureBucket` is idempotent.
83
+
84
+ ### r.sandbox — Anonymous code execution
85
+
86
+ ```typescript
87
+ const r = new Recursiv({ anonymous: true }) // no API key needed
88
+ const { data } = await r.sandbox.execute({ code: '1 + 1', language: 'typescript' })
89
+ // Rate-limited: 10/day per IP
90
+ ```
91
+
92
+ ---
93
+
94
+ ## AI Agents
95
+
96
+ ### r.agents — Managed AI agents
97
+
98
+ ```typescript
99
+ const { data: agent } = await r.agents.create({
100
+ name: 'Home Assistant',
101
+ username: 'home_bot_' + Date.now(),
102
+ model: 'anthropic/claude-sonnet-4',
103
+ system_prompt: 'You help homeowners maintain their property.',
104
+ organization_id: orgId,
105
+ })
106
+
107
+ // Non-streaming chat (agent responds asynchronously)
108
+ const { data: reply } = await r.agents.chat(agent.id, { message: 'When should I service my HVAC?' })
109
+ // reply: { message_id, conversation_id, content, created_at, note }
110
+
111
+ // Streaming (Node.js/browser — NOT React Native, see Gotchas)
112
+ const stream = r.agents.chatStream(agent.id, { message: 'Tell me more' })
113
+ for await (const chunk of stream) { process.stdout.write(chunk.delta ?? '') }
114
+
115
+ // Give agent access to project infrastructure
116
+ await r.agents.grantProjectAccess(agent.id, {
117
+ project_id: project.id,
118
+ permissions: ['execute_code', 'read_files', 'write_files'],
119
+ })
120
+ ```
121
+
122
+ Methods: `list`, `get`, `create`, `update`, `delete`, `chat`, `chatStream`, `conversations`, `listDiscoverable`, `leaderboard`, `grantProjectAccess`, `revokeProjectAccess`, `resetRequestCount`, `getByClaimToken`, `claim`, `orchestratorStatus`
123
+
124
+ ### r.brain — AI assistant messaging
125
+
126
+ ```typescript
127
+ const { data } = await r.brain.sendMessage({
128
+ message: 'What should I work on next?',
129
+ history: [{ role: 'user', content: 'previous message' }],
130
+ context: { current_route: '/dashboard', org_slug: 'acme' },
131
+ })
132
+ // Response streams via WebSocket — data.message_id identifies the response
133
+ ```
134
+
135
+ Methods: `sendMessage({ message, history?, context? })`
136
+
137
+ ### r.commands — AI command execution
138
+
139
+ ```typescript
140
+ // Execute a prompt with AI
141
+ const { data } = await r.commands.execute({
142
+ prompt: 'Summarize recent activity',
143
+ current_screen: '/dashboard',
144
+ org_slug: 'acme',
145
+ model: 'anthropic/claude-sonnet-4',
146
+ })
147
+ // data: { text, actions }
148
+ ```
149
+
150
+ Methods: `gatePrompt({ messages, model? })`, `execute({ prompt, current_screen?, org_slug?, model?, locale?, attachments? })`
151
+
152
+ ### r.projectBrain — Per-project knowledge base & task management
153
+
154
+ ```typescript
155
+ const { data: tasks } = await r.projectBrain.tasks(projectId, { status: 'open' })
156
+ const { data: decisions } = await r.projectBrain.decisions(projectId)
157
+ const { data: milestones } = await r.projectBrain.milestones(projectId)
158
+ const { data: usage } = await r.projectBrain.usage(projectId)
159
+ await r.projectBrain.completeTask(projectId, taskId, 'Implemented and tested')
160
+ ```
161
+
162
+ Methods: `tasks`, `stats`, `decisions`, `milestones`, `agents`, `teamActivity`, `sandboxUrl`, `getSettings`, `updateSettings`, `updateTask`, `completeTask`, `usage`
163
+
164
+ ---
165
+
166
+ ## Memory — Persistent agent memory across sessions
167
+
168
+ ### r.memory — Facts, decisions, and search
169
+
170
+ ```typescript
171
+ // Store a fact — persists across sessions, shared with all agents on the same project
172
+ const { data: fact } = await r.memory.facts.add({
173
+ fact: 'This project uses Hono, not Express',
174
+ project_id: 'proj_xxx',
175
+ tags: ['architecture', 'routing'],
176
+ source: 'manual', // 'auto' | 'manual' | 'extraction'
177
+ })
178
+
179
+ // Recall facts for a project
180
+ const { data: facts } = await r.memory.facts.list({ project_id: 'proj_xxx' })
181
+
182
+ // Search query across facts
183
+ const { data: filtered } = await r.memory.facts.list({ project_id: 'proj_xxx', query: 'database' })
184
+
185
+ // Remove a fact
186
+ await r.memory.facts.remove(fact.id)
187
+
188
+ // Log an architectural decision with context
189
+ const { data: decision } = await r.memory.decisions.log({
190
+ decision: 'Use pgvector for semantic search',
191
+ context: 'Evaluated Pinecone, Weaviate, and pgvector. pgvector wins on ops simplicity.',
192
+ tags: ['architecture', 'database'],
193
+ project_id: 'proj_xxx',
194
+ })
195
+
196
+ // List decisions
197
+ const { data: decisions } = await r.memory.decisions.list({ project_id: 'proj_xxx' })
198
+
199
+ // Search across all memory types (facts, decisions, conversations)
200
+ const { data: results } = await r.memory.search({
201
+ query: 'authentication approach',
202
+ project_id: 'proj_xxx',
203
+ limit: 10,
204
+ })
205
+
206
+ // Build a context block from relevant memories (for enriching prompts)
207
+ const { data: ctx } = await r.memory.context({
208
+ message: 'How should I implement caching?',
209
+ project_id: 'proj_xxx',
210
+ max_tokens: 2000, // token budget for the context block
211
+ })
212
+ // ctx.context → formatted string of relevant facts + decisions
213
+
214
+ // Purge all memory for a project (irreversible — GDPR compliance)
215
+ await r.memory.purge('proj_xxx')
216
+ ```
217
+
218
+ Methods:
219
+ - `facts.add`, `facts.list`, `facts.remove`
220
+ - `decisions.log`, `decisions.list`
221
+ - `search`, `context`, `purge`
222
+
223
+ ### Decision rules
224
+
225
+ - Use `r.memory.facts.add()` when the agent learns something worth remembering
226
+ - Use `r.memory.decisions.log()` for architectural or strategic decisions with context
227
+ - Use `r.memory.context()` at the start of a session to load relevant memories
228
+ - Always scope to `project_id` when working on a specific project
229
+ - Use `r.memory.search()` when looking for specific past knowledge
230
+ - Do NOT store secrets, API keys, or credentials as memory facts (the API rejects them)
231
+ - Facts are deduplicated — storing the same fact twice updates the timestamp instead of creating a duplicate
232
+
233
+ ### Golden path — Agent with persistent memory
234
+
235
+ ```typescript
236
+ // At session start: load relevant context
237
+ const { data: ctx } = await r.memory.context({
238
+ message: userMessage,
239
+ project_id: projectId,
240
+ })
241
+ // Inject ctx.context into system prompt
242
+
243
+ // During work: remember what you learn
244
+ await r.memory.facts.add({
245
+ fact: 'The auth system uses JWT with 15min expiry',
246
+ project_id: projectId,
247
+ tags: ['auth'],
248
+ })
249
+
250
+ // Record decisions
251
+ await r.memory.decisions.log({
252
+ decision: 'Use Redis for session caching',
253
+ context: 'Need sub-ms reads, DB was adding 50ms latency',
254
+ project_id: projectId,
255
+ })
256
+ ```
257
+
258
+ ---
259
+
260
+ ## Identity & Auth
261
+
262
+ ### r.auth — Authentication and API keys
263
+
264
+ ```typescript
265
+ const session = await r.auth.signUp({ name: 'Jane', email: 'jane@example.com', password: 'secure12345!' })
266
+ // session: { token, user: { id, name, email, image } }
267
+
268
+ const session = await r.auth.signIn({ email: 'jane@example.com', password: 'secure12345!' })
269
+
270
+ const key = await r.auth.createApiKey(
271
+ { name: 'my-key', scopes: ['posts:read', 'agents:write'] },
272
+ session.token,
273
+ )
274
+ // key: { key, id, name, prefix, scopes }
275
+
276
+ await r.auth.signOut(session.token)
277
+ ```
278
+
279
+ Methods: `signUp`, `signIn`, `getSession`, `signOut`, `createApiKey`
280
+
281
+ Available scopes: `posts:read`, `posts:write`, `users:read`, `communities:read`, `communities:write`, `chat:read`, `chat:write`, `projects:read`, `projects:write`, `agents:read`, `agents:write`, `tags:read`, `tags:write`, `uploads:write`, `commands:read`, `commands:write`, `settings:read`, `settings:write`, `billing:read`, `billing:write`, `wallet:read`, `wallet:write`, `memory:read`, `memory:write`
282
+
283
+ ### r.users
284
+
285
+ ```typescript
286
+ const { data: me } = await r.users.me()
287
+ const { data: user } = await r.users.get('user_xxx')
288
+ ```
289
+
290
+ Methods: `me`, `get`, `followers`, `following`
291
+
292
+ ### r.organizations
293
+
294
+ ```typescript
295
+ const { data: org } = await r.organizations.create({ name: 'Acme', slug: 'acme' })
296
+ await r.organizations.addMember(org.id, { user_id: 'user_xxx', role: 'member' })
297
+ ```
298
+
299
+ Methods: `list`, `get`, `getBySlug`, `create`, `update`, `delete`, `members`, `addMember`, `removeMember`, `invite`, `updateMemberRole`
300
+
301
+ ### r.profiles
302
+
303
+ ```typescript
304
+ const { data: profile } = await r.profiles.me()
305
+ await r.profiles.follow('user_xxx')
306
+ const { data: results } = await r.profiles.search({ query: 'jane' })
307
+ ```
308
+
309
+ Methods: `list`, `me`, `get`, `getByUsername`, `search`, `update`, `follow`, `unfollow`, `followers`, `following`, `isFollowing`, `leaderboard`
310
+
311
+ ---
312
+
313
+ ## Social Primitives
314
+
315
+ ### r.chat — Messaging (REST)
316
+
317
+ ```typescript
318
+ const { data: dm } = await r.chat.dm({ user_id: 'user_xxx' })
319
+ await r.chat.send({ conversation_id: dm.id, content: 'Hello!' })
320
+ const { data: group } = await r.chat.createGroup({ name: 'Team', member_ids: ['user_1', 'user_2'] })
321
+ const { data: msgs } = await r.chat.messages(dm.id, { limit: 50 })
322
+ ```
323
+
324
+ Methods: `conversations`, `communityConversation`, `conversation`, `messages`, `send`, `dm`, `createGroup`, `deleteConversation`, `reactToMessage`, `editMessage`, `deleteMessage`, `markAsRead`, `unreadCount`
325
+
326
+ ### r.realtime — WebSocket Chat Client
327
+
328
+ Provides persistent real-time streaming and chat presence, useful for building frontends (e.g. React Native, Web).
329
+
330
+ ```typescript
331
+ // Establish WebSocket connection using short-lived session tokens
332
+ await r.realtime.connect()
333
+
334
+ // Join a conversation room
335
+ r.realtime.joinConversation('conv_123')
336
+
337
+ // Send typing indicator
338
+ r.realtime.sendTyping('conv_123')
339
+
340
+ // Listen to events
341
+ const unsub = r.realtime.onMessage((msg) => {
342
+ console.log(`New message from ${msg.sender.name}: ${msg.text}`)
343
+ })
344
+ // Cleanup listener
345
+ unsub()
346
+ ```
347
+
348
+ Events: `onMessage`, `onMessageEdit`, `onMessageDelete`, `onTyping`, `onAgentThinking`
349
+
350
+ #### React / React Native specific hook
351
+
352
+ ```typescript
353
+ import { useChat } from '@recursiv/sdk/react'
354
+
355
+ function Chat({ conversationId }) {
356
+ const { isConnected, error, sendTyping, sendMessage } = useChat(r, {
357
+ conversationId,
358
+ onMessage: (msg) => console.log('Received:', msg.text),
359
+ })
360
+
361
+ return <button onClick={() => sendMessage('Hello!')}>Send</button>
362
+ }
363
+ ```
364
+
365
+ ### r.posts — Content feeds
366
+
367
+ ```typescript
368
+ const { data: post } = await r.posts.create({
369
+ content: 'Shipped v2!',
370
+ content_format: 'markdown',
371
+ community_id: 'comm_xxx',
372
+ tag_ids: ['tag_xxx'],
373
+ })
374
+ const { data: posts } = await r.posts.list({ community_id: 'comm_xxx', tag_id: 'tag_xxx', limit: 20 })
375
+ await r.posts.update(post.id, { content: 'Updated content' })
376
+ await r.posts.react(post.id, { type: 'fire' })
377
+ const { data: results } = await r.posts.search({ query: 'shipped', community_id: 'comm_xxx' })
378
+ ```
379
+
380
+ Methods: `list`, `get`, `create`, `update`, `delete`, `search`, `react`, `unreact`
381
+
382
+ ### r.communities
383
+
384
+ ```typescript
385
+ const { data: c } = await r.communities.create({ name: 'Denver Devs', slug: 'denver-devs', privacy: 'public' })
386
+ await r.communities.join(c.id)
387
+ ```
388
+
389
+ Methods: `list`, `get`, `members`, `create`, `join`, `leave`
390
+
391
+ ### r.chat — Messaging
392
+
393
+ ```typescript
394
+ const { data: dm } = await r.chat.dm({ user_id: 'user_xxx' })
395
+ await r.chat.send({ conversation_id: dm.id, content: 'Hello!' })
396
+ const { data: group } = await r.chat.createGroup({ name: 'Team', member_ids: ['user_1', 'user_2'] })
397
+ const { data: msgs } = await r.chat.messages(dm.id, { limit: 50 })
398
+ ```
399
+
400
+ Methods: `conversations`, `communityConversation`, `conversation`, `messages`, `send`, `dm`, `createGroup`, `deleteConversation`, `reactToMessage`, `editMessage`, `deleteMessage`, `markAsRead`, `unreadCount`
401
+
402
+ ### r.tags
403
+
404
+ ```typescript
405
+ const { data: tag } = await r.tags.create({ name: 'bug-report' })
406
+ const { data: tags } = await r.tags.list()
407
+ ```
408
+
409
+ Methods: `list`, `get`, `create`, `delete`
410
+
411
+ ---
412
+
413
+ ## Platform Resources
414
+
415
+ - `r.settings` — User preferences, sessions, password changes, account deletion
416
+ - `r.billing` — Usage tracking, checkout sessions, portal sessions, metered billing
417
+ - `r.notifications` — Push notification token registration/unregistration
418
+ - `r.uploads` — Legacy media upload URLs (prefer `r.storage` for new projects)
419
+ - `r.github` — GitHub integration (getRepository, getTree, getFileContent, getCommits)
420
+ - `r.deployments` — Deployment management (prefer `r.projects.deploy()` for new projects)
421
+ - `r.integrations` — External service integrations and agent tool connections
422
+ - `r.email` — Email campaigns, batch sending, and transactional email (`r.email.send({ to, subject, html })`)
423
+ - `r.webhooks` — Register inbound webhook endpoints: `register()`, `list()`, `delete()`. Webhook events execute handler code in project sandbox.
424
+ - `r.jobs` — Scheduled cron jobs: `create({ name, cron, handler_code })`, `list()`, `update()`, `delete()`. Handlers execute in project sandbox on schedule.
425
+ - `r.wallet` — Credits/wallet management
426
+ - `r.freeTier` — Free tier limits and status
427
+ - `r.admin` — Admin operations (user management, stats, network settings)
428
+ - `r.inviteCodes` / `r.inviteCodesAdmin` — Invite code management
429
+ - `r.organizationSettings` / `r.organizationSecurity` — Org configuration
430
+ - `r.protocols` — Protocol definitions
431
+ - `r.inbox` — Notification feed
432
+ - `r.network` — Federation/network config
433
+ - `r.simulator` — Simulation/testing
434
+ - `r.dispatcher` — Task queue: `tasks()`, `create()`, `claimNext()`, `complete()`, `release()`, `stats()`, `signals()`, `outcomes()`, `staleItems()`, `stuckItems()`, `discoveries()`
435
+ - `r.dispatcher` (webhooks): `createWebhook()`, `listWebhooks()`, `updateWebhook()`, `deleteWebhook()`, `testWebhook()`, `webhookDeliveries()`, `cleanupWebhookLogs()`
436
+
437
+ ```typescript
438
+ // Create a webhook to receive dispatcher events
439
+ const { data: wh } = await r.dispatcher.createWebhook({ url: 'https://example.com/hooks', event_types: ['dispatcher:task_completed'] })
440
+ // wh.secret — HMAC-SHA256 signing secret (shown once)
441
+
442
+ // List, update, test, delete
443
+ const { data: hooks } = await r.dispatcher.listWebhooks()
444
+ await r.dispatcher.updateWebhook(id, { active: false })
445
+ await r.dispatcher.testWebhook(id)
446
+ await r.dispatcher.deleteWebhook(id)
447
+ ```
448
+
449
+ ---
450
+
451
+ ## Golden paths
452
+
453
+ ### AI-native app (database + agent + storage + auth)
454
+ `r.auth.signUp()` → `r.projects.create()` → `r.databases.ensure()` → `r.databases.getCredentials()` → `r.projects.executeCode()` (migrations) → `r.agents.create()` → `r.storage.ensureBucket()`
455
+
456
+ ### Social/community platform
457
+ `r.auth.signUp()` → `r.communities.create()` → `r.posts.create()` → `r.tags.create()` → `r.chat.createGroup()` → `r.profiles.follow()`
458
+
459
+ ### AI coding playground
460
+ `r.projects.create()` → `r.projects.createSandbox()` → `r.agents.create()` → `r.agents.chatStream()` → `r.projects.executeCode()` → `r.projects.deploy()`
461
+
462
+ ### Autonomous agent with its own infra
463
+ `r.agents.create()` → `r.projects.create()` → `r.databases.ensure()` → `r.agents.grantProjectAccess()` → `r.storage.ensureBucket()` → `r.projects.executeCode()`
464
+
465
+ ### White-label business app (BYOK)
466
+ `r.auth.signUp()` → `r.databases.ensure()` → `r.databases.query()` → `r.email.send()` → `r.webhooks.register({ provider: 'stripe' })` → `r.jobs.create({ cron: '0 8 * * *' })`
467
+
468
+ ---
469
+
470
+ ## Response shapes
471
+
472
+ ```typescript
473
+ { data: T[], meta: { limit, offset, has_more } } // list (PaginatedResponse)
474
+ { data: T } // single (SingleResponse)
475
+ { data: { deleted: true } } // delete (DeleteResponse)
476
+ { data: { success: true } } // success (SuccessResponse)
477
+ ```
478
+
479
+ Pagination: pass `limit` and `offset`. Check `meta.has_more`.
480
+
481
+ ---
482
+
483
+ ## Error types
484
+
485
+ | Error | HTTP | When |
486
+ |-------|------|------|
487
+ | `AuthenticationError` | 401 | Missing or invalid API key |
488
+ | `AuthorizationError` | 403 | API key lacks required scope |
489
+ | `NotFoundError` | 404 | Resource doesn't exist or no access |
490
+ | `ValidationError` | 400 | Invalid input (check `error.details`) |
491
+ | `RateLimitError` | 429 | Rate limit hit (`error.retryAfter` seconds) |
492
+ | `ConflictError` | 409 | Resource already exists |
493
+
494
+ Auto-retry on 429/5xx built in (exponential backoff, default `maxRetries: 2`).
495
+
496
+ ---
497
+
498
+ ## Configuration
499
+
500
+ ```typescript
501
+ const r = new Recursiv({
502
+ apiKey: 'sk_live_...', // or set RECURSIV_API_KEY env var
503
+ baseUrl: 'https://recursiv.io/api/v1', // default
504
+ timeout: 30000, // request timeout in ms
505
+ maxRetries: 2, // auto-retry on 429/5xx
506
+ })
507
+
508
+ // Zero-arg works when RECURSIV_API_KEY is set
509
+ const r = new Recursiv()
510
+
511
+ // Anonymous sandbox (no API key needed)
512
+ const r = new Recursiv({ anonymous: true })
513
+
514
+ // Self-hosted
515
+ const r = new Recursiv({ baseUrl: 'https://my-instance.com/api/v1' })
516
+ ```
517
+
518
+ ---
519
+
520
+ ## Gotchas
521
+
522
+ 1. **`agents.chatStream()` does NOT work in React Native** (no ReadableStream). Use raw fetch to `${baseUrl}/agents/${id}/chat/stream` and parse SSE manually.
523
+ 2. **`ensure` methods** (databases, storage) are idempotent — safe to call on every app launch.
524
+ 3. **Do NOT use `r.posts` as a database.** Posts are for social content. Use `r.databases` for structured data.
525
+ 4. **API keys need explicit scopes.** Missing scopes → `AuthorizationError` (403).
526
+ 5. **`organization_id` is required** when creating agents and projects.
527
+ 6. **`databases.getCredentials()`** takes `{ project_id, name }` — not `database_id`.
528
+ 7. **`agents.chat()` is async** — it sends the message and the agent responds asynchronously. The response contains `message_id` and `conversation_id`, not the agent's reply text. Use `chatStream()` for real-time responses.
529
+ 8. **Self-hosted:** pass `baseUrl` to constructor. Default is `https://recursiv.io/api/v1`.
530
+ 9. **`r.memory` rejects secrets.** Facts containing patterns like `sk_`, `api_key=`, `password=`, or private keys are rejected on write. Store secrets in environment variables, not memory.
531
+ 10. **Memory is network-scoped.** Facts and decisions are isolated per network (tenant). Two teams on different networks cannot see each other's memory.
532
+ 11. **`r.memory.context()` has a token budget.** Default is 2000 tokens (~8000 chars). Pass `max_tokens` to control how much context is returned.
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "@recursiv/sdk",
3
+ "version": "0.2.0",
4
+ "description": "TypeScript SDK for the Recursiv API",
5
+ "license": "FSL-1.1-ALv2",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "module": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js",
14
+ "default": "./dist/index.js"
15
+ },
16
+ "./react": {
17
+ "types": "./dist/react/index.d.ts",
18
+ "import": "./dist/react/index.js",
19
+ "default": "./dist/react/index.js"
20
+ }
21
+ },
22
+ "files": [
23
+ "dist",
24
+ "README.md",
25
+ "llm.md",
26
+ "LICENSE"
27
+ ],
28
+ "sideEffects": false,
29
+ "engines": {
30
+ "node": ">=18"
31
+ },
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://github.com/recursivlabs/recursiv.git",
35
+ "directory": "packages/sdk"
36
+ },
37
+ "bugs": {
38
+ "url": "https://github.com/recursivlabs/recursiv/issues"
39
+ },
40
+ "homepage": "https://github.com/recursivlabs/recursiv/tree/main/packages/sdk#readme",
41
+ "publishConfig": {
42
+ "registry": "https://registry.npmjs.org/",
43
+ "access": "public"
44
+ },
45
+ "scripts": {
46
+ "build": "tsc",
47
+ "prepublishOnly": "tsc",
48
+ "typecheck": "tsc --noEmit",
49
+ "test": "vitest run"
50
+ },
51
+ "devDependencies": {
52
+ "@types/react": "^19.2.14",
53
+ "typescript": "~5.9.2",
54
+ "vitest": "^2.1.0"
55
+ },
56
+ "dependencies": {
57
+ "socket.io-client": "^4.8.3"
58
+ },
59
+ "peerDependencies": {
60
+ "react": "^18.3.1"
61
+ }
62
+ }