orbitmap 0.3.0 → 0.4.0-next.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 (158) hide show
  1. package/README.md +443 -212
  2. package/dist/adapters/cloud.d.ts +334 -0
  3. package/dist/adapters/cloud.js +520 -0
  4. package/dist/adapters/cloud.js.map +1 -0
  5. package/dist/adapters/factory.d.ts +11 -0
  6. package/dist/adapters/factory.js +27 -0
  7. package/dist/adapters/factory.js.map +1 -0
  8. package/dist/adapters/local/adapter.d.ts +351 -0
  9. package/dist/adapters/local/adapter.js +346 -0
  10. package/dist/adapters/local/adapter.js.map +1 -0
  11. package/dist/adapters/local/context.d.ts +111 -0
  12. package/dist/adapters/local/context.js +136 -0
  13. package/dist/adapters/local/context.js.map +1 -0
  14. package/dist/adapters/local/entities/documents.d.ts +85 -0
  15. package/dist/adapters/local/entities/documents.js +251 -0
  16. package/dist/adapters/local/entities/documents.js.map +1 -0
  17. package/dist/adapters/local/entities/planning.d.ts +108 -0
  18. package/dist/adapters/local/entities/planning.js +540 -0
  19. package/dist/adapters/local/entities/planning.js.map +1 -0
  20. package/dist/adapters/local/entities/tasks.d.ts +95 -0
  21. package/dist/adapters/local/entities/tasks.js +442 -0
  22. package/dist/adapters/local/entities/tasks.js.map +1 -0
  23. package/dist/adapters/local/entities/work-items.d.ts +110 -0
  24. package/dist/adapters/local/entities/work-items.js +623 -0
  25. package/dist/adapters/local/entities/work-items.js.map +1 -0
  26. package/dist/adapters/local/rules.d.ts +172 -0
  27. package/dist/adapters/local/rules.js +319 -0
  28. package/dist/adapters/local/rules.js.map +1 -0
  29. package/dist/adapters/local/shapes.d.ts +209 -0
  30. package/dist/adapters/local/shapes.js +558 -0
  31. package/dist/adapters/local/shapes.js.map +1 -0
  32. package/dist/adapters/local/store.d.ts +200 -0
  33. package/dist/adapters/local/store.js +665 -0
  34. package/dist/adapters/local/store.js.map +1 -0
  35. package/dist/adapters/local/types.d.ts +226 -0
  36. package/dist/adapters/local/types.js +41 -0
  37. package/dist/adapters/local/types.js.map +1 -0
  38. package/dist/adapters/types.d.ts +332 -0
  39. package/dist/adapters/types.js +2 -0
  40. package/dist/adapters/types.js.map +1 -0
  41. package/dist/agent-instructions.d.ts +25 -9
  42. package/dist/agent-instructions.js +285 -237
  43. package/dist/agent-instructions.js.map +1 -1
  44. package/dist/api-client.d.ts +8 -239
  45. package/dist/api-client.js +8 -403
  46. package/dist/api-client.js.map +1 -1
  47. package/dist/commands/agents.d.ts +1 -1
  48. package/dist/commands/agents.js +10 -10
  49. package/dist/commands/agents.js.map +1 -1
  50. package/dist/commands/areas.d.ts +3 -0
  51. package/dist/commands/areas.js +29 -0
  52. package/dist/commands/areas.js.map +1 -0
  53. package/dist/commands/assign.d.ts +3 -2
  54. package/dist/commands/assign.js +47 -15
  55. package/dist/commands/assign.js.map +1 -1
  56. package/dist/commands/context.d.ts +1 -1
  57. package/dist/commands/context.js +18 -12
  58. package/dist/commands/context.js.map +1 -1
  59. package/dist/commands/create-area.d.ts +7 -0
  60. package/dist/commands/create-area.js +29 -0
  61. package/dist/commands/create-area.js.map +1 -0
  62. package/dist/commands/create.d.ts +3 -1
  63. package/dist/commands/create.js +4 -2
  64. package/dist/commands/create.js.map +1 -1
  65. package/dist/commands/dep.d.ts +2 -2
  66. package/dist/commands/dep.js +3 -3
  67. package/dist/commands/dep.js.map +1 -1
  68. package/dist/commands/doc-import.d.ts +1 -1
  69. package/dist/commands/doc-import.js +2 -2
  70. package/dist/commands/doc-import.js.map +1 -1
  71. package/dist/commands/doc-patch.d.ts +1 -1
  72. package/dist/commands/doc-patch.js +2 -2
  73. package/dist/commands/doc-patch.js.map +1 -1
  74. package/dist/commands/doc-share.d.ts +6 -6
  75. package/dist/commands/doc-share.js +13 -13
  76. package/dist/commands/doc-share.js.map +1 -1
  77. package/dist/commands/doc-update.d.ts +1 -1
  78. package/dist/commands/doc-update.js +2 -2
  79. package/dist/commands/doc-update.js.map +1 -1
  80. package/dist/commands/doc.d.ts +1 -1
  81. package/dist/commands/doc.js +5 -4
  82. package/dist/commands/doc.js.map +1 -1
  83. package/dist/commands/docs-cache.d.ts +2 -2
  84. package/dist/commands/docs-cache.js +3 -3
  85. package/dist/commands/docs-cache.js.map +1 -1
  86. package/dist/commands/docs.d.ts +1 -1
  87. package/dist/commands/docs.js +2 -2
  88. package/dist/commands/docs.js.map +1 -1
  89. package/dist/commands/get.d.ts +1 -1
  90. package/dist/commands/get.js +43 -3
  91. package/dist/commands/get.js.map +1 -1
  92. package/dist/commands/ideas.d.ts +4 -4
  93. package/dist/commands/ideas.js +5 -5
  94. package/dist/commands/ideas.js.map +1 -1
  95. package/dist/commands/init.d.ts +17 -3
  96. package/dist/commands/init.js +262 -30
  97. package/dist/commands/init.js.map +1 -1
  98. package/dist/commands/intent.d.ts +41 -0
  99. package/dist/commands/intent.js +237 -0
  100. package/dist/commands/intent.js.map +1 -0
  101. package/dist/commands/issues.d.ts +6 -5
  102. package/dist/commands/issues.js +7 -6
  103. package/dist/commands/issues.js.map +1 -1
  104. package/dist/commands/log.d.ts +1 -1
  105. package/dist/commands/log.js +2 -2
  106. package/dist/commands/log.js.map +1 -1
  107. package/dist/commands/mission.d.ts +42 -0
  108. package/dist/commands/mission.js +219 -0
  109. package/dist/commands/mission.js.map +1 -0
  110. package/dist/commands/orbit.d.ts +40 -3
  111. package/dist/commands/orbit.js +231 -58
  112. package/dist/commands/orbit.js.map +1 -1
  113. package/dist/commands/overview.d.ts +2 -2
  114. package/dist/commands/overview.js +25 -28
  115. package/dist/commands/overview.js.map +1 -1
  116. package/dist/commands/setup-agent.d.ts +11 -0
  117. package/dist/commands/setup-agent.js +47 -25
  118. package/dist/commands/setup-agent.js.map +1 -1
  119. package/dist/commands/setup-mcp.d.ts +1 -1
  120. package/dist/commands/setup-mcp.js +9 -9
  121. package/dist/commands/setup-mcp.js.map +1 -1
  122. package/dist/commands/start.d.ts +1 -1
  123. package/dist/commands/start.js +2 -2
  124. package/dist/commands/start.js.map +1 -1
  125. package/dist/commands/status.d.ts +2 -1
  126. package/dist/commands/status.js +3 -3
  127. package/dist/commands/status.js.map +1 -1
  128. package/dist/commands/subtask.d.ts +1 -1
  129. package/dist/commands/subtask.js +2 -2
  130. package/dist/commands/subtask.js.map +1 -1
  131. package/dist/commands/task-edit-content.d.ts +1 -1
  132. package/dist/commands/task-edit-content.js +2 -2
  133. package/dist/commands/task-edit-content.js.map +1 -1
  134. package/dist/commands/task.d.ts +10 -3
  135. package/dist/commands/task.js +16 -8
  136. package/dist/commands/task.js.map +1 -1
  137. package/dist/commands/tasks.d.ts +1 -1
  138. package/dist/commands/tasks.js +2 -2
  139. package/dist/commands/tasks.js.map +1 -1
  140. package/dist/commands/vibes.d.ts +4 -4
  141. package/dist/commands/vibes.js +5 -5
  142. package/dist/commands/vibes.js.map +1 -1
  143. package/dist/config.d.ts +10 -2
  144. package/dist/config.js +13 -4
  145. package/dist/config.js.map +1 -1
  146. package/dist/doc-cache.d.ts +2 -2
  147. package/dist/doc-cache.js.map +1 -1
  148. package/dist/errors.d.ts +19 -2
  149. package/dist/errors.js +35 -0
  150. package/dist/errors.js.map +1 -1
  151. package/dist/index.js +452 -93
  152. package/dist/index.js.map +1 -1
  153. package/dist/output.js +7 -2
  154. package/dist/output.js.map +1 -1
  155. package/dist/workspace-resolve.d.ts +126 -0
  156. package/dist/workspace-resolve.js +203 -0
  157. package/dist/workspace-resolve.js.map +1 -0
  158. package/package.json +53 -50
@@ -0,0 +1,520 @@
1
+ import { createReadStream, statSync } from 'node:fs';
2
+ import { basename, extname } from 'node:path';
3
+ import { OrbitMapAPIError } from '../errors.js';
4
+ import { resolveAuth } from '../config.js';
5
+ export class CloudAdapter {
6
+ apiKey;
7
+ baseUrl;
8
+ area;
9
+ constructor(apiKey, area, apiUrl) {
10
+ this.apiKey = apiKey;
11
+ this.area = area;
12
+ this.baseUrl = (apiUrl ?? 'https://orbitmap.app/api/agent').replace(/\/$/, '');
13
+ }
14
+ async request(method, path, options) {
15
+ const url = new URL(`${this.baseUrl}${path}`);
16
+ if (options?.params) {
17
+ for (const [key, value] of Object.entries(options.params)) {
18
+ if (value !== undefined) {
19
+ url.searchParams.set(key, value);
20
+ }
21
+ }
22
+ }
23
+ const headers = {
24
+ Authorization: `Bearer ${this.apiKey}`,
25
+ Accept: 'application/json',
26
+ };
27
+ if (this.area) {
28
+ headers['X-Orbitmap-Area'] = this.area;
29
+ }
30
+ if (options?.body !== undefined) {
31
+ headers['Content-Type'] = 'application/json';
32
+ }
33
+ const controller = new AbortController();
34
+ const timeout = setTimeout(() => controller.abort(), 30_000);
35
+ try {
36
+ const response = await fetch(url.toString(), {
37
+ method,
38
+ headers,
39
+ body: options?.body !== undefined ? JSON.stringify(options.body) : undefined,
40
+ signal: controller.signal,
41
+ });
42
+ // Handle 204 No Content — no body to parse
43
+ if (response.status === 204) {
44
+ return undefined;
45
+ }
46
+ const text = await response.text();
47
+ let json;
48
+ try {
49
+ json = JSON.parse(text);
50
+ }
51
+ catch {
52
+ if (!response.ok) {
53
+ throw new OrbitMapAPIError(`HTTP ${response.status}: ${text}`, 'HTTP_ERROR', response.status);
54
+ }
55
+ throw new OrbitMapAPIError('Invalid JSON response from API', 'PARSE_ERROR', response.status);
56
+ }
57
+ if (!response.ok) {
58
+ if (OrbitMapAPIError.isApiErrorBody(json)) {
59
+ throw OrbitMapAPIError.fromResponse(json);
60
+ }
61
+ // Billing/usage-limit rejections (402, 429) use a flat shape where
62
+ // `error` is a string — dispatch on the type of `error`, not status.
63
+ if (OrbitMapAPIError.isFlatApiErrorBody(json)) {
64
+ throw OrbitMapAPIError.fromFlatResponse(json, response.status);
65
+ }
66
+ throw new OrbitMapAPIError(`HTTP ${response.status}`, 'HTTP_ERROR', response.status);
67
+ }
68
+ return json;
69
+ }
70
+ catch (error) {
71
+ if (error instanceof OrbitMapAPIError)
72
+ throw error;
73
+ if (error instanceof DOMException && error.name === 'AbortError') {
74
+ throw new OrbitMapAPIError('Request timed out after 30s', 'TIMEOUT', 0);
75
+ }
76
+ throw error;
77
+ }
78
+ finally {
79
+ clearTimeout(timeout);
80
+ }
81
+ }
82
+ // ── Context ──
83
+ async getContext(areaId) {
84
+ return this.request('GET', '/context', {
85
+ params: { area_id: areaId },
86
+ });
87
+ }
88
+ /**
89
+ * The area this client was constructed with (`--area` → `ORBITMAP_AREA` → config
90
+ * `area` → legacy `project_id`, resolved by `createClient`). No request is made.
91
+ */
92
+ async getDefaultArea() {
93
+ return this.area;
94
+ }
95
+ // ── Tasks ──
96
+ async getTasks(options) {
97
+ return this.request('GET', '/tasks', {
98
+ params: {
99
+ status: options?.status,
100
+ priority: options?.priority,
101
+ area_id: options?.areaId,
102
+ orbit_id: options?.orbit,
103
+ },
104
+ });
105
+ }
106
+ async getTask(taskId) {
107
+ return this.request('GET', `/tasks/${taskId}`);
108
+ }
109
+ async getTaskByNumber(taskNumber) {
110
+ return this.request('GET', `/tasks/by-number/${taskNumber}`);
111
+ }
112
+ async startTask(taskId) {
113
+ if (taskId) {
114
+ return this.request('POST', `/tasks/${taskId}/start`);
115
+ }
116
+ return this.request('POST', '/tasks/start');
117
+ }
118
+ async updateTaskStatus(taskId, status, deliveryStatus,
119
+ // `force` (spec §6.2) is deliberately ignored in cloud mode: the API already allows
120
+ // any→any status transitions, so honouring the flag means doing nothing. It is NOT
121
+ // put on the wire — an unknown request field would be contract drift with the
122
+ // Agent API. The parameter exists only so commands never branch on the mode.
123
+ _force) {
124
+ const body = {};
125
+ if (status !== undefined)
126
+ body.status = status;
127
+ if (deliveryStatus !== undefined)
128
+ body.delivery_status = deliveryStatus;
129
+ return this.request('PATCH', `/tasks/${taskId}/status`, { body });
130
+ }
131
+ async createSubtasks(parentId, subtasks) {
132
+ return this.request('POST', `/tasks/${parentId}/subtasks`, {
133
+ body: { subtasks },
134
+ });
135
+ }
136
+ async createTask(data) {
137
+ return this.request('POST', '/tasks', { body: data });
138
+ }
139
+ async editTaskContent(taskId, data) {
140
+ return this.request('PATCH', `/tasks/${taskId}/content`, {
141
+ body: data,
142
+ });
143
+ }
144
+ // ── Assignment ──
145
+ async assignTask(taskId, assignment) {
146
+ return this.request('PATCH', `/tasks/${taskId}/assign`, {
147
+ body: assignment,
148
+ });
149
+ }
150
+ async assignItem(objectType, objectId, assignment) {
151
+ const segments = {
152
+ task: 'tasks',
153
+ issue: 'issues',
154
+ idea: 'ideas',
155
+ intent: 'intents',
156
+ };
157
+ return this.request('PATCH', `/${segments[objectType]}/${objectId}/assign`, {
158
+ body: assignment,
159
+ });
160
+ }
161
+ // ── Task Dependencies ──
162
+ async addTaskDependency(taskId, data) {
163
+ return this.request('POST', `/tasks/${taskId}/dependencies`, { body: data });
164
+ }
165
+ async removeTaskDependency(taskId, targetTaskId, type) {
166
+ return this.request('DELETE', `/tasks/${taskId}/dependencies/${targetTaskId}`, {
167
+ params: { type },
168
+ });
169
+ }
170
+ // ── Logs ──
171
+ async logWork(taskId, type, content, metadata) {
172
+ return this.request('POST', `/tasks/${taskId}/logs`, {
173
+ body: { type, content, metadata },
174
+ });
175
+ }
176
+ // ── Documents ──
177
+ async getDocuments(options) {
178
+ return this.request('GET', '/documents', {
179
+ params: {
180
+ type: options?.type,
181
+ search: options?.search,
182
+ area_id: options?.areaId,
183
+ },
184
+ });
185
+ }
186
+ async getDocument(idOrSlug, mode, options) {
187
+ return this.request('GET', `/documents/${idOrSlug}`, {
188
+ params: {
189
+ mode,
190
+ full: options?.full ? 'true' : undefined,
191
+ section: options?.section,
192
+ },
193
+ });
194
+ }
195
+ async importDocument(data) {
196
+ return this.request('POST', '/documents', { body: data });
197
+ }
198
+ async updateDocument(idOrSlug, content, changelog) {
199
+ return this.request('PUT', `/documents/${idOrSlug}`, {
200
+ body: { content, changelog },
201
+ });
202
+ }
203
+ async patchDocument(idOrSlug, operations, baseVersion, changelog) {
204
+ return this.request('PATCH', `/documents/${idOrSlug}`, {
205
+ body: { base_version: baseVersion, operations, changelog },
206
+ });
207
+ }
208
+ // ── Presigned URL upload ──
209
+ async requestUploadUrl(data) {
210
+ return this.request('POST', '/documents/upload-url', { body: data });
211
+ }
212
+ async confirmUpload(uploadId) {
213
+ return this.request('POST', '/documents/confirm-upload', {
214
+ body: { upload_id: uploadId },
215
+ });
216
+ }
217
+ async requestUpdateUploadUrl(idOrSlug, changelog) {
218
+ return this.request('POST', `/documents/${idOrSlug}/upload-url`, {
219
+ body: changelog ? { changelog } : {},
220
+ });
221
+ }
222
+ async confirmUpdateUpload(idOrSlug, uploadId) {
223
+ return this.request('POST', `/documents/${idOrSlug}/confirm-upload`, {
224
+ body: { upload_id: uploadId },
225
+ });
226
+ }
227
+ async uploadToPresignedUrl(presignedUrl, filePath, onProgress) {
228
+ const stat = statSync(filePath);
229
+ const totalBytes = stat.size;
230
+ const ext = extname(filePath).toLowerCase();
231
+ const contentType = ext === '.md' ? 'text/markdown' : 'application/octet-stream';
232
+ const stream = createReadStream(filePath);
233
+ // Collect chunks for progress tracking and body assembly
234
+ const chunks = [];
235
+ let bytesRead = 0;
236
+ for await (const chunk of stream) {
237
+ const buf = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
238
+ chunks.push(buf);
239
+ bytesRead += buf.length;
240
+ onProgress?.(bytesRead, totalBytes);
241
+ }
242
+ const body = Buffer.concat(chunks);
243
+ const response = await fetch(presignedUrl, {
244
+ method: 'PUT',
245
+ headers: {
246
+ 'Content-Type': contentType,
247
+ 'Content-Length': String(totalBytes),
248
+ },
249
+ body,
250
+ });
251
+ if (!response.ok) {
252
+ const text = await response.text();
253
+ throw new OrbitMapAPIError(`R2 upload failed: HTTP ${response.status} — ${text.slice(0, 200)}`, 'UPLOAD_FAILED', response.status);
254
+ }
255
+ }
256
+ /**
257
+ * Attempts presigned URL upload for a new document.
258
+ * Returns null if the endpoint is not available (404), signaling caller to fall back.
259
+ */
260
+ async presignedImport(filePath, data, onProgress) {
261
+ let uploadResponse;
262
+ try {
263
+ uploadResponse = await this.requestUploadUrl({
264
+ title: data.title,
265
+ type: data.type,
266
+ filename: basename(filePath),
267
+ source_path: data.source_path,
268
+ context: data.context,
269
+ workspace_id: data.workspace_id,
270
+ });
271
+ }
272
+ catch (err) {
273
+ if (err instanceof OrbitMapAPIError && err.status === 404) {
274
+ return null; // endpoint not available — fallback
275
+ }
276
+ throw err;
277
+ }
278
+ await this.uploadToPresignedUrl(uploadResponse.data.presigned_url, filePath, onProgress);
279
+ const confirmed = await this.confirmUpload(uploadResponse.data.upload_id);
280
+ return { data: confirmed.data, upload_method: 'presigned' };
281
+ }
282
+ /**
283
+ * Attempts presigned URL upload for updating a document.
284
+ * Returns null if the endpoint is not available (404), signaling caller to fall back.
285
+ */
286
+ async presignedUpdate(idOrSlug, filePath, changelog, onProgress) {
287
+ let uploadResponse;
288
+ try {
289
+ uploadResponse = await this.requestUpdateUploadUrl(idOrSlug, changelog);
290
+ }
291
+ catch (err) {
292
+ if (err instanceof OrbitMapAPIError && err.status === 404) {
293
+ return null; // endpoint not available — fallback
294
+ }
295
+ throw err;
296
+ }
297
+ await this.uploadToPresignedUrl(uploadResponse.data.presigned_url, filePath, onProgress);
298
+ const confirmed = await this.confirmUpdateUpload(idOrSlug, uploadResponse.data.upload_id);
299
+ return { data: confirmed.data, upload_method: 'presigned' };
300
+ }
301
+ // ── Document sharing ──
302
+ async shareDocument(documentId, areaId, agentIds) {
303
+ return this.request('POST', `/documents/${documentId}/share`, {
304
+ body: { area_id: areaId, agent_ids: agentIds },
305
+ });
306
+ }
307
+ async unshareDocument(documentId, areaId) {
308
+ return this.request('DELETE', `/documents/${documentId}/share/${areaId}`);
309
+ }
310
+ async setDocumentVisibility(documentId, areaId, agentIds) {
311
+ return this.request('PUT', `/documents/${documentId}/share/${areaId}/visibility`, { body: { agent_ids: agentIds } });
312
+ }
313
+ // ── Areas ──
314
+ async getAreas() {
315
+ return this.request('GET', '/areas');
316
+ }
317
+ async getAreaMembers(areaId) {
318
+ return this.request('GET', `/areas/${areaId}/members`);
319
+ }
320
+ async getAreaOverview(areaId) {
321
+ return this.request('GET', `/areas/${areaId}/overview`);
322
+ }
323
+ async createArea(data) {
324
+ return this.request('POST', '/areas', { body: data });
325
+ }
326
+ // ── Issues ──
327
+ async registerIssue(data) {
328
+ return this.request('POST', '/issues', { body: data });
329
+ }
330
+ async listIssues(options) {
331
+ return this.request('GET', '/issues', {
332
+ params: {
333
+ status: options?.status,
334
+ severity: options?.severity,
335
+ limit: options?.limit,
336
+ },
337
+ });
338
+ }
339
+ async getIssue(idOrNumber) {
340
+ return this.request('GET', `/issues/${idOrNumber}`);
341
+ }
342
+ async getIssueByNumber(issueNumber) {
343
+ return this.request('GET', `/issues/by-number/${issueNumber}`);
344
+ }
345
+ async resolveIssueByNumber(issueNumber, data) {
346
+ return this.request('PATCH', `/issues/by-number/${issueNumber}/resolve`, {
347
+ body: data,
348
+ });
349
+ }
350
+ async resolveIssue(idOrNumber, data) {
351
+ return this.request('PATCH', `/issues/${idOrNumber}/resolve`, {
352
+ body: data,
353
+ });
354
+ }
355
+ async updateIssueStatus(idOrNumber, data) {
356
+ return this.request('PATCH', `/issues/${idOrNumber}/status`, {
357
+ body: data,
358
+ });
359
+ }
360
+ async updateIssueStatusByNumber(issueNumber, data) {
361
+ return this.request('PATCH', `/issues/by-number/${issueNumber}/status`, {
362
+ body: data,
363
+ });
364
+ }
365
+ // ── Vibes ──
366
+ async logVibe(data) {
367
+ return this.request('POST', '/vibes', { body: data });
368
+ }
369
+ async listVibes(options) {
370
+ return this.request('GET', '/vibes', {
371
+ params: {
372
+ type: options?.type,
373
+ since: options?.since,
374
+ limit: options?.limit,
375
+ },
376
+ });
377
+ }
378
+ async getVibe(id) {
379
+ return this.request('GET', `/vibes/${id}`);
380
+ }
381
+ async updateVibe(id, data) {
382
+ return this.request('PATCH', `/vibes/${id}`, { body: data });
383
+ }
384
+ // ── Ideas ──
385
+ async listIdeas(options) {
386
+ return this.request('GET', '/ideas', {
387
+ params: { status: options?.status, priority: options?.priority, limit: options?.limit },
388
+ });
389
+ }
390
+ async getIdea(idOrNumber) {
391
+ return this.request('GET', `/ideas/${idOrNumber}`);
392
+ }
393
+ async getIdeaByNumber(ideaNumber) {
394
+ return this.request('GET', `/ideas/by-number/${ideaNumber}`);
395
+ }
396
+ async createIdea(data) {
397
+ return this.request('POST', '/ideas', { body: data });
398
+ }
399
+ async updateIdeaStatus(idOrNumber, data) {
400
+ return this.request('PATCH', `/ideas/${idOrNumber}/status`, { body: data });
401
+ }
402
+ async updateIdeaStatusByNumber(ideaNumber, data) {
403
+ return this.request('PATCH', `/ideas/by-number/${ideaNumber}/status`, { body: data });
404
+ }
405
+ // ── Orbits ──
406
+ async listOrbits(options) {
407
+ return this.request('GET', '/orbits', {
408
+ params: {
409
+ area_id: options?.areaId,
410
+ workspace_id: options?.workspaceId,
411
+ },
412
+ });
413
+ }
414
+ async getOrbit(idOrSlug) {
415
+ return this.request('GET', `/orbits/${idOrSlug}`);
416
+ }
417
+ async createOrbit(data) {
418
+ return this.request('POST', '/orbits', { body: data });
419
+ }
420
+ async updateOrbit(idOrSlug, data) {
421
+ return this.request('PATCH', `/orbits/${idOrSlug}`, { body: data });
422
+ }
423
+ async getOrbitItems(orbitIdOrSlug, options) {
424
+ return this.request('GET', `/orbits/${orbitIdOrSlug}/items`, {
425
+ params: { object_type: options?.type },
426
+ });
427
+ }
428
+ async orbitAttach(orbitIdOrSlug, data) {
429
+ return this.request('POST', `/orbits/${orbitIdOrSlug}/items`, {
430
+ body: { action: 'attach', ...data },
431
+ });
432
+ }
433
+ async orbitDetach(orbitIdOrSlug, data) {
434
+ return this.request('POST', `/orbits/${orbitIdOrSlug}/items`, {
435
+ body: { action: 'detach', ...data },
436
+ });
437
+ }
438
+ async addOrbitArea(orbitIdOrSlug, areaId) {
439
+ return this.request('POST', `/orbits/${orbitIdOrSlug}/areas`, {
440
+ body: { area_id: areaId },
441
+ });
442
+ }
443
+ async removeOrbitArea(orbitIdOrSlug, areaId) {
444
+ return this.request('DELETE', `/orbits/${orbitIdOrSlug}/areas/${areaId}`);
445
+ }
446
+ async addOrbitDependency(orbitIdOrSlug, data) {
447
+ return this.request('POST', `/orbits/${orbitIdOrSlug}/dependencies`, {
448
+ body: data,
449
+ });
450
+ }
451
+ // ── Intents ──
452
+ async listIntents(options) {
453
+ return this.request('GET', '/intents', {
454
+ params: { status: options?.status, limit: options?.limit },
455
+ });
456
+ }
457
+ async getIntent(idOrNumber) {
458
+ return this.request('GET', `/intents/${idOrNumber}`);
459
+ }
460
+ async createIntent(data) {
461
+ return this.request('POST', '/intents', { body: data });
462
+ }
463
+ async updateIntent(idOrNumber, data) {
464
+ return this.request('PATCH', `/intents/${idOrNumber}`, { body: data });
465
+ }
466
+ async linkIntentItem(idOrNumber, data) {
467
+ return this.request('POST', `/intents/${idOrNumber}/items`, { body: data });
468
+ }
469
+ async unlinkIntentItem(idOrNumber, data) {
470
+ return this.request('DELETE', `/intents/${idOrNumber}/items`, { body: data });
471
+ }
472
+ async setIntentOrbit(idOrNumber, orbitId) {
473
+ if (orbitId === null) {
474
+ return this.request('DELETE', `/intents/${idOrNumber}/orbit`);
475
+ }
476
+ return this.request('PUT', `/intents/${idOrNumber}/orbit`, {
477
+ body: { orbit_id: orbitId },
478
+ });
479
+ }
480
+ // ── Missions ──
481
+ async listMissions(options) {
482
+ return this.request('GET', '/missions', {
483
+ params: { status: options?.status, limit: options?.limit },
484
+ });
485
+ }
486
+ async getMission(idOrNumber) {
487
+ return this.request('GET', `/missions/${idOrNumber}`);
488
+ }
489
+ async createMission(data) {
490
+ return this.request('POST', '/missions', { body: data });
491
+ }
492
+ async updateMission(idOrNumber, data) {
493
+ return this.request('PATCH', `/missions/${idOrNumber}`, { body: data });
494
+ }
495
+ async setMissionStatus(idOrNumber, data) {
496
+ return this.request('PATCH', `/missions/${idOrNumber}/status`, {
497
+ body: data,
498
+ });
499
+ }
500
+ async linkMissionItem(idOrNumber, data) {
501
+ return this.request('POST', `/missions/${idOrNumber}/items`, { body: data });
502
+ }
503
+ async unlinkMissionItem(idOrNumber, data) {
504
+ return this.request('DELETE', `/missions/${idOrNumber}/items`, { body: data });
505
+ }
506
+ // ── Prompts ──
507
+ async getWorkPrompt() {
508
+ return this.request('GET', '/prompts/work-on-next-task');
509
+ }
510
+ async getImportDocsPrompt() {
511
+ return this.request('GET', '/prompts/import-docs');
512
+ }
513
+ }
514
+ /** Backwards-compatible alias for the pre-adapter class name. */
515
+ export { CloudAdapter as OrbitMapClient };
516
+ export async function createClient(explicitArea) {
517
+ const auth = await resolveAuth();
518
+ return new CloudAdapter(auth.apiKey, explicitArea ?? auth.area, auth.apiUrl);
519
+ }
520
+ //# sourceMappingURL=cloud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud.js","sourceRoot":"","sources":["../../src/adapters/cloud.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { WorkspaceAdapter } from './types.js';
2
+ /**
3
+ * Resolves the workspace adapter for the current invocation.
4
+ *
5
+ * Signature-compatible with the former `createClient(area?)`. The resolved mode
6
+ * (§3.3: `--workspace` → `ORBITMAP_MODE` → local marker found by walking up from cwd →
7
+ * global config `mode`, defaulting to `'cloud'`) decides the backend:
8
+ * `local` returns a {@link LocalAdapter} over the resolved workspace directory,
9
+ * anything else the cloud adapter — unchanged.
10
+ */
11
+ export declare function createAdapter(explicitArea?: string): Promise<WorkspaceAdapter>;
@@ -0,0 +1,27 @@
1
+ // Imported through the `src/api-client.js` compatibility shim (which re-exports
2
+ // `./cloud.js`) so that existing consumers and test doubles targeting the
3
+ // historical module path keep working unchanged.
4
+ import { createClient } from '../api-client.js';
5
+ import { resolveWorkspaceContext } from '../workspace-resolve.js';
6
+ import { LocalAdapter } from './local/adapter.js';
7
+ /**
8
+ * Resolves the workspace adapter for the current invocation.
9
+ *
10
+ * Signature-compatible with the former `createClient(area?)`. The resolved mode
11
+ * (§3.3: `--workspace` → `ORBITMAP_MODE` → local marker found by walking up from cwd →
12
+ * global config `mode`, defaulting to `'cloud'`) decides the backend:
13
+ * `local` returns a {@link LocalAdapter} over the resolved workspace directory,
14
+ * anything else the cloud adapter — unchanged.
15
+ */
16
+ export async function createAdapter(explicitArea) {
17
+ const context = await resolveWorkspaceContext({ area: explicitArea });
18
+ if (context.mode === 'local' && context.workspacePath) {
19
+ return new LocalAdapter({
20
+ workspacePath: context.workspacePath,
21
+ area: context.area,
22
+ areaSource: context.areaSource,
23
+ });
24
+ }
25
+ return createClient(explicitArea);
26
+ }
27
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/adapters/factory.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,0EAA0E;AAC1E,iDAAiD;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,YAAqB;IAErB,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAEtE,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QACtD,OAAO,IAAI,YAAY,CAAC;YACtB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC;AACpC,CAAC"}