@amigo-ai/platform-sdk 0.1.0 → 0.2.1

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 (149) hide show
  1. package/README.md +114 -2
  2. package/dist/core/branded-types.js +1 -0
  3. package/dist/core/branded-types.js.map +1 -1
  4. package/dist/core/errors.js +43 -3
  5. package/dist/core/errors.js.map +1 -1
  6. package/dist/core/openapi-client.js +60 -48
  7. package/dist/core/openapi-client.js.map +1 -1
  8. package/dist/core/rate-limit.js +13 -0
  9. package/dist/core/rate-limit.js.map +1 -0
  10. package/dist/core/webhooks.js +17 -0
  11. package/dist/core/webhooks.js.map +1 -0
  12. package/dist/generated/api.js +2 -0
  13. package/dist/{types → generated}/api.js.map +1 -1
  14. package/dist/index.cjs +1668 -371
  15. package/dist/index.cjs.map +4 -4
  16. package/dist/index.js +59 -43
  17. package/dist/index.js.map +1 -1
  18. package/dist/index.mjs +1658 -371
  19. package/dist/index.mjs.map +4 -4
  20. package/dist/resources/actions.js +52 -0
  21. package/dist/resources/actions.js.map +1 -0
  22. package/dist/resources/agents.js +30 -30
  23. package/dist/resources/agents.js.map +1 -1
  24. package/dist/resources/analytics.js +34 -15
  25. package/dist/resources/analytics.js.map +1 -1
  26. package/dist/resources/api-keys.js +17 -19
  27. package/dist/resources/api-keys.js.map +1 -1
  28. package/dist/resources/audit.js +35 -0
  29. package/dist/resources/audit.js.map +1 -0
  30. package/dist/resources/base.js +12 -44
  31. package/dist/resources/base.js.map +1 -1
  32. package/dist/resources/billing.js +35 -7
  33. package/dist/resources/billing.js.map +1 -1
  34. package/dist/resources/calls.js +25 -9
  35. package/dist/resources/calls.js.map +1 -1
  36. package/dist/resources/compliance.js +19 -0
  37. package/dist/resources/compliance.js.map +1 -0
  38. package/dist/resources/context-graphs.js +46 -18
  39. package/dist/resources/context-graphs.js.map +1 -1
  40. package/dist/resources/data-sources.js +30 -12
  41. package/dist/resources/data-sources.js.map +1 -1
  42. package/dist/resources/functions.js +42 -0
  43. package/dist/resources/functions.js.map +1 -0
  44. package/dist/resources/integrations.js +32 -15
  45. package/dist/resources/integrations.js.map +1 -1
  46. package/dist/resources/memory.js +13 -4
  47. package/dist/resources/memory.js.map +1 -1
  48. package/dist/resources/operators.js +102 -0
  49. package/dist/resources/operators.js.map +1 -0
  50. package/dist/resources/personas.js +31 -0
  51. package/dist/resources/personas.js.map +1 -0
  52. package/dist/resources/phone-numbers.js +31 -16
  53. package/dist/resources/phone-numbers.js.map +1 -1
  54. package/dist/resources/recordings.js +19 -0
  55. package/dist/resources/recordings.js.map +1 -0
  56. package/dist/resources/review-queue.js +94 -0
  57. package/dist/resources/review-queue.js.map +1 -0
  58. package/dist/resources/safety.js +31 -0
  59. package/dist/resources/safety.js.map +1 -0
  60. package/dist/resources/services.js +18 -12
  61. package/dist/resources/services.js.map +1 -1
  62. package/dist/resources/settings.js +50 -24
  63. package/dist/resources/settings.js.map +1 -1
  64. package/dist/resources/simulations.js +23 -17
  65. package/dist/resources/simulations.js.map +1 -1
  66. package/dist/resources/skills.js +22 -16
  67. package/dist/resources/skills.js.map +1 -1
  68. package/dist/resources/triggers.js +51 -0
  69. package/dist/resources/triggers.js.map +1 -0
  70. package/dist/resources/webhook-destinations.js +44 -0
  71. package/dist/resources/webhook-destinations.js.map +1 -0
  72. package/dist/resources/workspaces.js +24 -38
  73. package/dist/resources/workspaces.js.map +1 -1
  74. package/dist/resources/world.js +58 -60
  75. package/dist/resources/world.js.map +1 -1
  76. package/dist/types/core/branded-types.d.ts +3 -0
  77. package/dist/types/core/branded-types.d.ts.map +1 -1
  78. package/dist/types/core/errors.d.ts +3 -0
  79. package/dist/types/core/errors.d.ts.map +1 -1
  80. package/dist/types/core/openapi-client.d.ts +13 -5
  81. package/dist/types/core/openapi-client.d.ts.map +1 -1
  82. package/dist/types/core/rate-limit.d.ts +8 -0
  83. package/dist/types/core/rate-limit.d.ts.map +1 -0
  84. package/dist/types/core/webhooks.d.ts +9 -0
  85. package/dist/types/core/webhooks.d.ts.map +1 -0
  86. package/dist/types/generated/api.d.ts +35120 -0
  87. package/dist/types/generated/api.d.ts.map +1 -0
  88. package/dist/types/index.d.ts +45 -43
  89. package/dist/types/index.d.ts.map +1 -1
  90. package/dist/types/resources/actions.d.ts +158 -0
  91. package/dist/types/resources/actions.d.ts.map +1 -0
  92. package/dist/types/resources/agents.d.ts +70 -22
  93. package/dist/types/resources/agents.d.ts.map +1 -1
  94. package/dist/types/resources/analytics.d.ts +100 -118
  95. package/dist/types/resources/analytics.d.ts.map +1 -1
  96. package/dist/types/resources/api-keys.d.ts +36 -7
  97. package/dist/types/resources/api-keys.d.ts.map +1 -1
  98. package/dist/types/resources/audit.d.ts +70 -0
  99. package/dist/types/resources/audit.d.ts.map +1 -0
  100. package/dist/types/resources/base.d.ts +13 -13
  101. package/dist/types/resources/base.d.ts.map +1 -1
  102. package/dist/types/resources/billing.d.ts +52 -12
  103. package/dist/types/resources/billing.d.ts.map +1 -1
  104. package/dist/types/resources/calls.d.ts +89 -35
  105. package/dist/types/resources/calls.d.ts.map +1 -1
  106. package/dist/types/resources/compliance.d.ts +45 -0
  107. package/dist/types/resources/compliance.d.ts.map +1 -0
  108. package/dist/types/resources/context-graphs.d.ts +77 -14
  109. package/dist/types/resources/context-graphs.d.ts.map +1 -1
  110. package/dist/types/resources/data-sources.d.ts +105 -9
  111. package/dist/types/resources/data-sources.d.ts.map +1 -1
  112. package/dist/types/resources/functions.d.ts +46 -0
  113. package/dist/types/resources/functions.d.ts.map +1 -0
  114. package/dist/types/resources/integrations.d.ts +83 -12
  115. package/dist/types/resources/integrations.d.ts.map +1 -1
  116. package/dist/types/resources/memory.d.ts +26 -73
  117. package/dist/types/resources/memory.d.ts.map +1 -1
  118. package/dist/types/resources/operators.d.ts +157 -0
  119. package/dist/types/resources/operators.d.ts.map +1 -0
  120. package/dist/types/resources/personas.d.ts +60 -0
  121. package/dist/types/resources/personas.d.ts.map +1 -0
  122. package/dist/types/resources/phone-numbers.d.ts +70 -10
  123. package/dist/types/resources/phone-numbers.d.ts.map +1 -1
  124. package/dist/types/resources/recordings.d.ts +29 -0
  125. package/dist/types/resources/recordings.d.ts.map +1 -0
  126. package/dist/types/resources/review-queue.d.ts +184 -0
  127. package/dist/types/resources/review-queue.d.ts.map +1 -0
  128. package/dist/types/resources/safety.d.ts +57 -0
  129. package/dist/types/resources/safety.d.ts.map +1 -0
  130. package/dist/types/resources/services.d.ts +85 -5
  131. package/dist/types/resources/services.d.ts.map +1 -1
  132. package/dist/types/resources/settings.d.ts +79 -78
  133. package/dist/types/resources/settings.d.ts.map +1 -1
  134. package/dist/types/resources/simulations.d.ts +41 -12
  135. package/dist/types/resources/simulations.d.ts.map +1 -1
  136. package/dist/types/resources/skills.d.ts +131 -6
  137. package/dist/types/resources/skills.d.ts.map +1 -1
  138. package/dist/types/resources/triggers.d.ts +129 -0
  139. package/dist/types/resources/triggers.d.ts.map +1 -0
  140. package/dist/types/resources/webhook-destinations.d.ts +75 -0
  141. package/dist/types/resources/webhook-destinations.d.ts.map +1 -0
  142. package/dist/types/resources/workspaces.d.ts +60 -15
  143. package/dist/types/resources/workspaces.d.ts.map +1 -1
  144. package/dist/types/resources/world.d.ts +152 -143
  145. package/dist/types/resources/world.d.ts.map +1 -1
  146. package/package.json +6 -3
  147. package/dist/types/api.js +0 -12
  148. package/dist/types/types/api.d.ts +0 -739
  149. package/dist/types/types/api.d.ts.map +0 -1
package/README.md CHANGED
@@ -41,6 +41,7 @@ console.log(stats.total_calls, stats.avg_duration_seconds)
41
41
  | `workspaceId` | `string` | Yes | Your workspace ID — all resource operations are scoped to this |
42
42
  | `baseUrl` | `string` | No | Override the API base URL (default: `https://api.platform.amigo.ai`) |
43
43
  | `retry` | `RetryOptions` | No | Retry configuration for transient failures |
44
+ | `fetch` | `typeof fetch` | No | Custom fetch for BFF proxy, cookie forwarding, or test mocking |
44
45
 
45
46
  ### Retry options
46
47
 
@@ -256,10 +257,121 @@ console.log(memory.dimensions) // list of configured memory dimensions
256
257
  ### Billing
257
258
 
258
259
  ```typescript
260
+ const dashboard = await client.billing.getDashboard()
259
261
  const usage = await client.billing.getUsage()
260
- console.log(usage.meters, usage.total_events)
261
-
262
262
  const { items: invoices } = await client.billing.listInvoices()
263
+ const pdf = await client.billing.getInvoicePdf('invoice-id')
264
+ ```
265
+
266
+ ### Operators
267
+
268
+ ```typescript
269
+ const { items: operators } = await client.operators.list()
270
+ const dashboard = await client.operators.getDashboard()
271
+ const queue = await client.operators.getQueue()
272
+ const escalations = await client.operators.getActiveEscalations()
273
+
274
+ // Join/leave calls, switch mode, send guidance
275
+ await client.operators.joinCall('operator-id', { call_sid: 'call-sid' })
276
+ await client.operators.sendGuidance('operator-id', { text: 'Ask about allergies' })
277
+ await client.operators.wrapUp('operator-id', { outcome: 'resolved' })
278
+ ```
279
+
280
+ ### Triggers (Automations)
281
+
282
+ ```typescript
283
+ const trigger = await client.triggers.create({
284
+ name: 'Daily outreach',
285
+ schedule: '0 9 * * 1-5',
286
+ timezone: 'America/New_York',
287
+ action_id: 'skill-id',
288
+ event_type: 'trigger.scheduled',
289
+ input_template: { campaign: 'follow-up' },
290
+ })
291
+
292
+ await client.triggers.fire(trigger.id)
293
+ await client.triggers.pause(trigger.id)
294
+ await client.triggers.resume(trigger.id)
295
+ const runs = await client.triggers.listRuns(trigger.id)
296
+ ```
297
+
298
+ ### Review Queue
299
+
300
+ ```typescript
301
+ const stats = await client.reviewQueue.getStats()
302
+ const dashboard = await client.reviewQueue.getDashboard()
303
+ const { items } = await client.reviewQueue.list({ status: 'pending' })
304
+
305
+ // Claim, approve, reject, correct
306
+ await client.reviewQueue.claim('item-id')
307
+ await client.reviewQueue.approve('item-id', { notes: 'Verified correct' })
308
+ await client.reviewQueue.reject('item-id', { reason: 'Data mismatch' })
309
+ await client.reviewQueue.batchApprove({ item_ids: ['id1', 'id2'] })
310
+ ```
311
+
312
+ ### Personas
313
+
314
+ ```typescript
315
+ const persona = await client.personas.create({
316
+ name: 'Friendly Scheduler',
317
+ voice_style: 'warm and professional',
318
+ })
319
+ const { items: personas } = await client.personas.list()
320
+ ```
321
+
322
+ ### Compliance & Safety
323
+
324
+ ```typescript
325
+ const hipaa = await client.compliance.getHipaa()
326
+ const safetyConfig = await client.safety.getConfig()
327
+ const templates = await client.safety.listTemplates()
328
+ ```
329
+
330
+ ### Audit
331
+
332
+ ```typescript
333
+ const { items: events } = await client.audit.list({ limit: 50 })
334
+ const summary = await client.audit.getSummary()
335
+ await client.audit.createExport({ start_date: '2026-01-01', end_date: '2026-03-31' })
336
+ ```
337
+
338
+ ### Recordings
339
+
340
+ ```typescript
341
+ const urls = await client.recordings.getUrls('call-sid')
342
+ const metadata = await client.recordings.getMetadata('call-sid')
343
+ ```
344
+
345
+ ### Functions (UC Functions)
346
+
347
+ ```typescript
348
+ const catalog = await client.functions.getCatalog()
349
+ const { items: functions } = await client.functions.list()
350
+ const result = await client.functions.test('my-function', { input: { query: 'test' } })
351
+ ```
352
+
353
+ ### Webhook Destinations
354
+
355
+ ```typescript
356
+ const dest = await client.webhookDestinations.create({
357
+ name: 'My Webhook',
358
+ url: 'https://example.com/webhook',
359
+ events: ['call.completed'],
360
+ })
361
+ const deliveries = await client.webhookDestinations.listDeliveries(dest.id)
362
+ ```
363
+
364
+ ## BFF Proxy (Next.js)
365
+
366
+ For frontend apps that use a Backend-for-Frontend proxy:
367
+
368
+ ```typescript
369
+ const client = new AmigoClient({
370
+ apiKey: 'bff-proxy',
371
+ workspaceId: 'ws-id',
372
+ baseUrl: '/api/platform',
373
+ fetch: customFetchWithCookies,
374
+ })
263
375
  ```
264
376
 
265
377
  ## Pagination
@@ -4,6 +4,7 @@ export const apiKeyId = (id) => id;
4
4
  export const agentId = (id) => id;
5
5
  export const personaId = (id) => id;
6
6
  export const skillId = (id) => id;
7
+ export const actionId = (id) => id;
7
8
  export const serviceId = (id) => id;
8
9
  export const contextGraphId = (id) => id;
9
10
  export const callId = (id) => id;
@@ -1 +1 @@
1
- {"version":3,"file":"branded-types.js","sourceRoot":"","sources":["../../src/core/branded-types.ts"],"names":[],"mappings":"AA8BA,uBAAuB;AACvB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAU,EAAe,EAAE,CAAC,EAAiB,CAAA;AACzE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAY,EAAE,CAAC,EAAc,CAAA;AAChE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAU,EAAW,EAAE,CAAC,EAAa,CAAA;AAC7D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAa,EAAE,CAAC,EAAe,CAAA;AACnE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAU,EAAW,EAAE,CAAC,EAAa,CAAA;AAC7D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAa,EAAE,CAAC,EAAe,CAAA;AACnE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAU,EAAkB,EAAE,CAAC,EAAoB,CAAA;AAClF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,EAAY,CAAA;AAC1D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,EAAmB,CAAA;AAC/E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,EAAmB,CAAA;AAC/E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAY,EAAE,CAAC,EAAc,CAAA;AAChE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAU,EAAW,EAAE,CAAC,EAAa,CAAA;AAC7D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAa,EAAE,CAAC,EAAe,CAAA;AACnE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAU,EAAc,EAAE,CAAC,EAAgB,CAAA;AACtE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAa,EAAE,CAAC,EAAe,CAAA;AACnE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAU,EAAmB,EAAE,CAAC,EAAqB,CAAA;AACrF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAU,EAAuB,EAAE,CAAC,EAAyB,CAAA;AACjG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAU,EAAmB,EAAE,CAAC,EAAqB,CAAA;AACrF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAU,EAAc,EAAE,CAAC,EAAgB,CAAA;AACtE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAU,EAAgB,EAAE,CAAC,EAAkB,CAAA"}
1
+ {"version":3,"file":"branded-types.js","sourceRoot":"","sources":["../../src/core/branded-types.ts"],"names":[],"mappings":"AAgCA,uBAAuB;AACvB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAU,EAAe,EAAE,CAAC,EAAiB,CAAA;AACzE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAY,EAAE,CAAC,EAAc,CAAA;AAChE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAU,EAAW,EAAE,CAAC,EAAa,CAAA;AAC7D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAa,EAAE,CAAC,EAAe,CAAA;AACnE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAU,EAAW,EAAE,CAAC,EAAa,CAAA;AAC7D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAY,EAAE,CAAC,EAAc,CAAA;AAChE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAa,EAAE,CAAC,EAAe,CAAA;AACnE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAU,EAAkB,EAAE,CAAC,EAAoB,CAAA;AAClF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,EAAY,CAAA;AAC1D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,EAAmB,CAAA;AAC/E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,EAAmB,CAAA;AAC/E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAY,EAAE,CAAC,EAAc,CAAA;AAChE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAU,EAAW,EAAE,CAAC,EAAa,CAAA;AAC7D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAa,EAAE,CAAC,EAAe,CAAA;AACnE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAU,EAAc,EAAE,CAAC,EAAgB,CAAA;AACtE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAa,EAAE,CAAC,EAAe,CAAA;AACnE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAU,EAAmB,EAAE,CAAC,EAAqB,CAAA;AACrF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAU,EAAuB,EAAE,CAAC,EAAyB,CAAA;AACjG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAU,EAAmB,EAAE,CAAC,EAAqB,CAAA;AACrF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAU,EAAc,EAAE,CAAC,EAAgB,CAAA;AACtE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAU,EAAgB,EAAE,CAAC,EAAkB,CAAA"}
@@ -2,12 +2,37 @@
2
2
  * Error hierarchy for the Amigo Platform SDK.
3
3
  * All errors extend AmigoError which can be caught with a single catch.
4
4
  */
5
+ const SENSITIVE_FIELDS = new Set([
6
+ 'id_token', 'access_token', 'refresh_token', 'authorization',
7
+ 'api_key', 'apikey', 'token', 'secret', 'password', 'x-api-key',
8
+ 'cookie', 'set-cookie',
9
+ ]);
10
+ function sanitizeErrorContext(obj) {
11
+ if (typeof obj !== 'object' || !obj)
12
+ return obj;
13
+ if (Array.isArray(obj))
14
+ return obj.map(sanitizeErrorContext);
15
+ const result = {};
16
+ for (const [key, value] of Object.entries(obj)) {
17
+ if (SENSITIVE_FIELDS.has(key.toLowerCase())) {
18
+ result[key] = '[REDACTED]';
19
+ }
20
+ else if (typeof value === 'object' && value !== null) {
21
+ result[key] = sanitizeErrorContext(value);
22
+ }
23
+ else {
24
+ result[key] = value;
25
+ }
26
+ }
27
+ return result;
28
+ }
5
29
  /** Base class for all Amigo Platform SDK errors */
6
30
  export class AmigoError extends Error {
7
31
  statusCode;
8
32
  errorCode;
9
33
  requestId;
10
34
  detail;
35
+ context;
11
36
  constructor(message, ctx = {}) {
12
37
  super(message);
13
38
  this.name = this.constructor.name;
@@ -15,8 +40,23 @@ export class AmigoError extends Error {
15
40
  this.errorCode = ctx.errorCode;
16
41
  this.requestId = ctx.requestId;
17
42
  this.detail = ctx.detail;
18
- // Maintain proper prototype chain
43
+ this.context = ctx.context ? sanitizeErrorContext(ctx.context) : undefined;
19
44
  Object.setPrototypeOf(this, new.target.prototype);
45
+ if (typeof Error.captureStackTrace === 'function') {
46
+ Error.captureStackTrace(this, this.constructor);
47
+ }
48
+ }
49
+ toJSON() {
50
+ return {
51
+ name: this.name,
52
+ message: this.message,
53
+ statusCode: this.statusCode,
54
+ errorCode: this.errorCode,
55
+ requestId: this.requestId,
56
+ detail: this.detail,
57
+ context: this.context,
58
+ stack: this.stack,
59
+ };
20
60
  }
21
61
  }
22
62
  /** 400 Bad Request */
@@ -80,8 +120,7 @@ export class NetworkError extends AmigoError {
80
120
  constructor(message, cause) {
81
121
  super(message);
82
122
  if (cause !== undefined) {
83
- ;
84
- this.cause = cause;
123
+ Object.defineProperty(this, 'cause', { value: cause, writable: false, enumerable: true });
85
124
  }
86
125
  }
87
126
  }
@@ -114,6 +153,7 @@ export async function createApiError(response) {
114
153
  errorCode: body.error_code,
115
154
  requestId: body.request_id,
116
155
  detail: body.detail,
156
+ context: { url: response.url, response: body },
117
157
  };
118
158
  const message = body.message ?? body.detail ?? response.statusText ?? `HTTP ${response.status}`;
119
159
  switch (response.status) {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
@@ -1,63 +1,75 @@
1
1
  /**
2
- * Creates a configured openapi-fetch client with auth, error handling, and retry middleware.
2
+ * Creates a configured openapi-fetch client with auth, error handling,
3
+ * and retry middleware.
4
+ *
5
+ * Supports custom `fetch` for BFF proxy patterns (e.g., developer-console
6
+ * routing through Next.js API routes).
3
7
  */
4
- import createClient from 'openapi-fetch';
8
+ import createClientImport from 'openapi-fetch';
5
9
  import { createAuthMiddleware } from './auth.js';
6
- import { createApiError } from './errors.js';
10
+ import { createApiError, NetworkError } from './errors.js';
7
11
  import { shouldRetry, computeDelay, resolveRetryOptions } from './retry.js';
8
- export function createAmigoClient(config) {
9
- const retryOptions = resolveRetryOptions(config.retry);
10
- const client = createClient({ baseUrl: config.baseUrl });
11
- // Auth middleware — attaches Bearer token and converts 401
12
- client.use(createAuthMiddleware({ apiKey: config.apiKey }));
13
- // Error middleware — converts HTTP error responses to typed errors
12
+ // Handle ESM/CJS interop for openapi-fetch (esbuild __toESM wrapper)
13
+ const createClient = typeof createClientImport === 'function'
14
+ ? createClientImport
15
+ : createClientImport.default;
16
+ export function createPlatformClient(config) {
17
+ const retryOpts = resolveRetryOptions(config.retry);
18
+ const baseFetch = config.fetch ?? globalThis.fetch;
19
+ // Wrap fetch with retry logic
20
+ const retryingFetch = async (input, init) => {
21
+ const method = (init?.method ?? 'GET').toUpperCase();
22
+ const signal = init?.signal;
23
+ const isIdempotent = method === 'GET' || method === 'HEAD' || method === 'OPTIONS';
24
+ for (let attempt = 0; attempt < retryOpts.maxAttempts; attempt++) {
25
+ let response;
26
+ let error;
27
+ try {
28
+ response = await baseFetch(input, init);
29
+ }
30
+ catch (err) {
31
+ error = err;
32
+ }
33
+ if (!error && response && response.ok)
34
+ return response;
35
+ const ctx = { method, attempt, response: response, options: retryOpts };
36
+ const attemptsRemain = attempt + 1 < retryOpts.maxAttempts;
37
+ if (error) {
38
+ if (isIdempotent && attemptsRemain) {
39
+ await sleep(computeDelay(attempt, new Response(), retryOpts));
40
+ continue;
41
+ }
42
+ throw new NetworkError(`Network error: ${error instanceof Error ? error.message : String(error)}`, error);
43
+ }
44
+ if (response && attemptsRemain && shouldRetry(ctx)) {
45
+ const delay = computeDelay(attempt, response, retryOpts);
46
+ if (signal?.aborted)
47
+ return response;
48
+ await sleep(delay);
49
+ continue;
50
+ }
51
+ return response;
52
+ }
53
+ throw new NetworkError('Retry loop exhausted');
54
+ };
55
+ const client = createClient({
56
+ baseUrl: config.baseUrl,
57
+ fetch: retryingFetch,
58
+ });
59
+ // Error middleware — convert HTTP errors to typed AmigoError subclasses
14
60
  const errorMiddleware = {
15
61
  async onResponse({ response }) {
16
- if (response.status >= 400) {
62
+ if (!response.ok) {
17
63
  throw await createApiError(response);
18
64
  }
19
65
  return response;
20
66
  },
21
67
  };
68
+ // Auth middleware — attach Bearer token
69
+ const authMiddleware = createAuthMiddleware({ apiKey: config.apiKey });
70
+ // Order: auth first (adds header), then error (converts failures)
71
+ client.use(authMiddleware);
22
72
  client.use(errorMiddleware);
23
- // Retry middleware — exponential backoff with jitter
24
- const retryMiddleware = {
25
- async onRequest({ request, schemaPath }) {
26
- // Store method for use in onResponse
27
- ;
28
- request._method =
29
- request.method.toUpperCase();
30
- void schemaPath;
31
- return request;
32
- },
33
- async onResponse({ request, response }) {
34
- const method = request._method ?? request.method.toUpperCase();
35
- let attempt = 0;
36
- let currentResponse = response;
37
- while (shouldRetry({
38
- method,
39
- attempt,
40
- response: currentResponse,
41
- options: retryOptions,
42
- })) {
43
- const delayMs = computeDelay(attempt, currentResponse, retryOptions);
44
- await sleep(delayMs);
45
- attempt++;
46
- try {
47
- const retried = await fetch(request.clone());
48
- currentResponse = retried;
49
- if (currentResponse.status < 400)
50
- return currentResponse;
51
- }
52
- catch {
53
- // Network error on retry — fall through to throw original
54
- break;
55
- }
56
- }
57
- return currentResponse;
58
- },
59
- };
60
- client.use(retryMiddleware);
61
73
  return client;
62
74
  }
63
75
  function sleep(ms) {
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-client.js","sourceRoot":"","sources":["../../src/core/openapi-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,YAAiC,MAAM,eAAe,CAAA;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAqB,MAAM,YAAY,CAAA;AAU9F,MAAM,UAAU,iBAAiB,CAAC,MAAoB;IACpD,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAEtD,MAAM,MAAM,GAAG,YAAY,CAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;IAE/D,2DAA2D;IAC3D,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAE3D,mEAAmE;IACnE,MAAM,eAAe,GAAe;QAClC,KAAK,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE;YAC3B,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;gBAC3B,MAAM,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAA;YACtC,CAAC;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC;KACF,CAAA;IACD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAE3B,qDAAqD;IACrD,MAAM,eAAe,GAAe;QAClC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE;YACrC,qCAAqC;YACrC,CAAC;YAAC,OAA0C,CAAC,OAAO;gBAClD,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;YAC9B,KAAK,UAAU,CAAA;YACf,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;YACpC,MAAM,MAAM,GAAI,OAA0C,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;YAClG,IAAI,OAAO,GAAG,CAAC,CAAA;YACf,IAAI,eAAe,GAAG,QAAQ,CAAA;YAE9B,OACE,WAAW,CAAC;gBACV,MAAM;gBACN,OAAO;gBACP,QAAQ,EAAE,eAAe;gBACzB,OAAO,EAAE,YAAY;aACtB,CAAC,EACF,CAAC;gBACD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,CAAC,CAAA;gBACpE,MAAM,KAAK,CAAC,OAAO,CAAC,CAAA;gBACpB,OAAO,EAAE,CAAA;gBACT,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;oBAC5C,eAAe,GAAG,OAAO,CAAA;oBACzB,IAAI,eAAe,CAAC,MAAM,GAAG,GAAG;wBAAE,OAAO,eAAe,CAAA;gBAC1D,CAAC;gBAAC,MAAM,CAAC;oBACP,0DAA0D;oBAC1D,MAAK;gBACP,CAAC;YACH,CAAC;YAED,OAAO,eAAe,CAAA;QACxB,CAAC;KACF,CAAA;IACD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAE3B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAC1D,CAAC"}
1
+ {"version":3,"file":"openapi-client.js","sourceRoot":"","sources":["../../src/core/openapi-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export function parseRateLimitHeaders(headers) {
2
+ const limit = headers.get('x-ratelimit-limit');
3
+ const remaining = headers.get('x-ratelimit-remaining');
4
+ const reset = headers.get('x-ratelimit-reset');
5
+ const retryAfter = headers.get('retry-after');
6
+ return {
7
+ limit: limit ? parseInt(limit, 10) : null,
8
+ remaining: remaining ? parseInt(remaining, 10) : null,
9
+ reset: reset ? new Date(parseInt(reset, 10) * 1000) : null,
10
+ retryAfter: retryAfter ? parseInt(retryAfter, 10) : null,
11
+ };
12
+ }
13
+ //# sourceMappingURL=rate-limit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../src/core/rate-limit.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;IAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAE7C,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;QACzC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;QACrD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;QAC1D,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;KACzD,CAAA;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ export async function verifyWebhookSignature(payload, signature, secret) {
2
+ const encoder = new TextEncoder();
3
+ const key = await crypto.subtle.importKey('raw', encoder.encode(secret), { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']);
4
+ const mac = await crypto.subtle.sign('HMAC', key, typeof payload === 'string' ? encoder.encode(payload) : payload);
5
+ const expected = Array.from(new Uint8Array(mac))
6
+ .map((b) => b.toString(16).padStart(2, '0'))
7
+ .join('');
8
+ return signature === `sha256=${expected}`;
9
+ }
10
+ export async function parseWebhookEvent(payload, signature, secret) {
11
+ const valid = await verifyWebhookSignature(payload, signature, secret);
12
+ if (!valid) {
13
+ throw new Error('Invalid webhook signature');
14
+ }
15
+ return JSON.parse(payload);
16
+ }
17
+ //# sourceMappingURL=webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/core/webhooks.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAA4B,EAC5B,SAAiB,EACjB,MAAc;IAEd,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IACjC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CACvC,KAAK,EACL,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EACtB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EACjC,KAAK,EACL,CAAC,MAAM,CAAC,CACT,CAAA;IACD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAClC,MAAM,EACN,GAAG,EACH,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAChE,CAAA;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;SAC7C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAA;IACX,OAAO,SAAS,KAAK,UAAU,QAAQ,EAAE,CAAA;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAe,EACf,SAAiB,EACjB,MAAc;IAEd,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IACtE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAA;AAC/C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/generated/api.ts"],"names":[],"mappings":""}