@amigo-ai/platform-sdk 0.57.0 → 0.58.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 (50) hide show
  1. package/README.md +63 -0
  2. package/api.md +10 -2
  3. package/dist/core/branded-types.js +1 -0
  4. package/dist/core/branded-types.js.map +1 -1
  5. package/dist/index.cjs +113 -38
  6. package/dist/index.cjs.map +3 -3
  7. package/dist/index.js +5 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.mjs +113 -38
  10. package/dist/index.mjs.map +3 -3
  11. package/dist/resources/integrations.js +66 -34
  12. package/dist/resources/integrations.js.map +1 -1
  13. package/dist/resources/tokens.js +31 -0
  14. package/dist/resources/tokens.js.map +1 -0
  15. package/dist/types/core/branded-types.d.ts +2 -0
  16. package/dist/types/core/branded-types.d.ts.map +1 -1
  17. package/dist/types/generated/api.d.ts +1912 -1723
  18. package/dist/types/generated/api.d.ts.map +1 -1
  19. package/dist/types/index.d.cts +6 -2
  20. package/dist/types/index.d.cts.map +1 -1
  21. package/dist/types/index.d.ts +6 -2
  22. package/dist/types/index.d.ts.map +1 -1
  23. package/dist/types/resources/actions.d.ts +5 -20
  24. package/dist/types/resources/actions.d.ts.map +1 -1
  25. package/dist/types/resources/base.d.ts +1 -1
  26. package/dist/types/resources/base.d.ts.map +1 -1
  27. package/dist/types/resources/calls.d.ts +5 -5
  28. package/dist/types/resources/context-graphs.d.ts +16 -0
  29. package/dist/types/resources/context-graphs.d.ts.map +1 -1
  30. package/dist/types/resources/intake.d.ts.map +1 -1
  31. package/dist/types/resources/integrations.d.ts +457 -599
  32. package/dist/types/resources/integrations.d.ts.map +1 -1
  33. package/dist/types/resources/metrics.d.ts +1 -1
  34. package/dist/types/resources/metrics.d.ts.map +1 -1
  35. package/dist/types/resources/operators.d.ts +2 -2
  36. package/dist/types/resources/operators.d.ts.map +1 -1
  37. package/dist/types/resources/review-queue.d.ts +11 -11
  38. package/dist/types/resources/services.d.ts.map +1 -1
  39. package/dist/types/resources/settings.d.ts +2 -2
  40. package/dist/types/resources/settings.d.ts.map +1 -1
  41. package/dist/types/resources/skills.d.ts +5 -20
  42. package/dist/types/resources/skills.d.ts.map +1 -1
  43. package/dist/types/resources/surfaces.d.ts.map +1 -1
  44. package/dist/types/resources/tasks.d.ts +2 -2
  45. package/dist/types/resources/tokens.d.ts +20 -0
  46. package/dist/types/resources/tokens.d.ts.map +1 -0
  47. package/dist/types/resources/workspace-data-queries.d.ts +1 -1
  48. package/dist/types/resources/workspace-data-queries.d.ts.map +1 -1
  49. package/dist/types/resources/world.d.ts.map +1 -1
  50. package/package.json +1 -1
package/README.md CHANGED
@@ -126,6 +126,56 @@ const client = new AmigoClient({ apiKey: result.accessToken, workspaceId: result
126
126
 
127
127
  See [`examples/auth/device-code-login.ts`](./examples/auth/device-code-login.ts) for a complete working example.
128
128
 
129
+ ### Exchange an API key for a JWT
130
+
131
+ Use `client.tokens.exchangeApiKey()` to swap a long-lived API key for a
132
+ short-lived identity-issued JWT. This is useful when you want to mint a
133
+ narrowly scoped, time-bound token from a privileged server (for example to
134
+ forward to a browser via a BFF proxy, or to call the platform from a runtime
135
+ that can't safely hold the raw API key).
136
+
137
+ The call posts to `POST /token` on the configured `baseUrl` and is **not**
138
+ workspace-scoped — `workspaceId` is still required on the client because it
139
+ governs every other resource call on the same instance, but `POST /token`
140
+ itself ignores it. The SDK also unconditionally strips the configured
141
+ `Authorization` header for this one request and sends the exchange key only
142
+ as the `api_key` form field, so the configured client key is never sent over
143
+ the wire on the exchange call.
144
+
145
+ ```typescript
146
+ import { AmigoClient } from '@amigo-ai/platform-sdk'
147
+
148
+ const apiKey = process.env.AMIGO_API_KEY
149
+ const workspaceId = process.env.AMIGO_WORKSPACE_ID
150
+ if (!apiKey || !workspaceId) {
151
+ throw new Error('AMIGO_API_KEY and AMIGO_WORKSPACE_ID must be set')
152
+ }
153
+
154
+ const client = new AmigoClient({ apiKey, workspaceId })
155
+
156
+ const { access_token, expires_in, scope } = await client.tokens.exchangeApiKey({
157
+ apiKey,
158
+ // Optional: request a narrower scope on the issued JWT. Enforcement is
159
+ // server-side — the SDK just forwards the value as a form field.
160
+ scope: 'entities:read agents:read',
161
+ })
162
+
163
+ console.log(`Got JWT, expires in ${expires_in}s with scope "${scope}"`)
164
+
165
+ // Use the JWT in a second client. JWTs are passed as `apiKey` — Bearer auth.
166
+ const scopedClient = new AmigoClient({ apiKey: access_token, workspaceId })
167
+
168
+ const { items: agents } = await scopedClient.agents.list({ limit: 5 })
169
+ console.log(agents.map((agent) => agent.name))
170
+ ```
171
+
172
+ The response is the standard OAuth-style token payload (`access_token`,
173
+ `token_type`, `expires_in`, `scope`, plus optional `session_id` /
174
+ `refresh_token` when applicable). The `apiKey` you pass to
175
+ `exchangeApiKey()` can be a different key than the one configured on the
176
+ client — the configured key is not used to authenticate the exchange
177
+ request itself.
178
+
129
179
  ## Configuration
130
180
 
131
181
  | Option | Type | Required | Description |
@@ -280,6 +330,19 @@ const client = new AmigoClient({
280
330
 
281
331
  ## Resources
282
332
 
333
+ ### Tokens
334
+
335
+ Exchange a long-lived API key for a short-lived identity-issued JWT. See
336
+ [Exchange an API key for a JWT](#exchange-an-api-key-for-a-jwt) under
337
+ Authentication for the full walkthrough.
338
+
339
+ ```typescript
340
+ const { access_token, expires_in } = await client.tokens.exchangeApiKey({
341
+ apiKey: process.env.AMIGO_API_KEY!,
342
+ scope: 'entities:read agents:read',
343
+ })
344
+ ```
345
+
283
346
  ### Agents
284
347
 
285
348
  ```typescript
package/api.md CHANGED
@@ -90,6 +90,10 @@ All workspace-scoped resources also expose `withOptions(options)`.
90
90
  - `revoke`
91
91
  - `rotate`
92
92
 
93
+ ### `tokens`
94
+
95
+ - `exchangeApiKey`
96
+
93
97
  ### `agents`
94
98
 
95
99
  - `create`
@@ -270,9 +274,13 @@ All workspace-scoped resources also expose `withOptions(options)`.
270
274
  - `get`
271
275
  - `update`
272
276
  - `delete`
277
+ - `listEndpoints`
278
+ - `listEndpointsAutoPaging`
279
+ - `getEndpoint`
280
+ - `createEndpoint`
281
+ - `updateEndpoint`
282
+ - `deleteEndpoint`
273
283
  - `testEndpoint`
274
- - `testConnection`
275
- - `getHealthCheck`
276
284
 
277
285
  ### `analytics`
278
286
 
@@ -9,6 +9,7 @@ export const contextGraphId = (id) => id;
9
9
  export const callId = (id) => id;
10
10
  export const phoneNumberId = (id) => id;
11
11
  export const integrationId = (id) => id;
12
+ export const integrationEndpointId = (id) => id;
12
13
  export const entityId = (id) => id;
13
14
  export const eventId = (id) => id;
14
15
  export const surfaceId = (id) => id;
@@ -1 +1 @@
1
- {"version":3,"file":"branded-types.js","sourceRoot":"","sources":["../../src/core/branded-types.ts"],"names":[],"mappings":"AA+BA,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,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"}
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,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,qBAAqB,GAAG,CAAC,EAAU,EAAyB,EAAE,CACzE,EAA2B,CAAA;AAC7B,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"}
package/dist/index.cjs CHANGED
@@ -56,6 +56,7 @@ __export(index_exports, {
56
56
  ServiceUnavailableError: () => ServiceUnavailableError,
57
57
  SesSetupResource: () => SesSetupResource,
58
58
  TokenManager: () => TokenManager,
59
+ TokensResource: () => TokensResource,
59
60
  ValidationError: () => ValidationError,
60
61
  WebhookVerificationError: () => WebhookVerificationError,
61
62
  WorkspaceEventStreamError: () => WorkspaceEventStreamError,
@@ -74,6 +75,7 @@ __export(index_exports, {
74
75
  formatDeviceCodeLink: () => formatDeviceCodeLink,
75
76
  formatWorkspaceList: () => formatWorkspaceList,
76
77
  functionId: () => functionId,
78
+ integrationEndpointId: () => integrationEndpointId,
77
79
  integrationId: () => integrationId,
78
80
  isAmigoError: () => isAmigoError,
79
81
  isAuthenticationError: () => isAuthenticationError,
@@ -1157,6 +1159,36 @@ var ApiKeysResource = class extends WorkspaceScopedResource {
1157
1159
  }
1158
1160
  };
1159
1161
 
1162
+ // src/resources/tokens.ts
1163
+ var omitAuthorizationHeader = {
1164
+ onRequest({ request }) {
1165
+ request.headers.delete("Authorization");
1166
+ return request;
1167
+ }
1168
+ };
1169
+ var TokensResource = class extends WorkspaceScopedResource {
1170
+ /** Exchange an API key for an identity-issued JWT access token. */
1171
+ async exchangeApiKey(request) {
1172
+ const body = {
1173
+ grant_type: "api_key",
1174
+ api_key: request.apiKey
1175
+ };
1176
+ if (request.scope) {
1177
+ body.scope = request.scope;
1178
+ }
1179
+ return extractData(
1180
+ await this.client.POST(
1181
+ "/token",
1182
+ {
1183
+ body,
1184
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
1185
+ middleware: [omitAuthorizationHeader]
1186
+ }
1187
+ )
1188
+ );
1189
+ }
1190
+ };
1191
+
1160
1192
  // src/resources/agents.ts
1161
1193
  var AgentsResource = class extends WorkspaceScopedResource {
1162
1194
  async create(body) {
@@ -2611,7 +2643,8 @@ var ChannelsResource = class extends WorkspaceScopedResource {
2611
2643
 
2612
2644
  // src/resources/integrations.ts
2613
2645
  var IntegrationsResource = class extends WorkspaceScopedResource {
2614
- /** Create a new integration */
2646
+ // ─── Integrations ─────────────────────────────────────────────────────────
2647
+ /** Create a new REST integration */
2615
2648
  async create(body) {
2616
2649
  return extractData(
2617
2650
  await this.client.POST("/v1/{workspace_id}/integrations", {
@@ -2620,7 +2653,7 @@ var IntegrationsResource = class extends WorkspaceScopedResource {
2620
2653
  })
2621
2654
  );
2622
2655
  }
2623
- /** List integrations */
2656
+ /** List integrations (REST + desktop) */
2624
2657
  async list(params) {
2625
2658
  return extractData(
2626
2659
  await this.client.GET("/v1/{workspace_id}/integrations", {
@@ -2639,35 +2672,76 @@ var IntegrationsResource = class extends WorkspaceScopedResource {
2639
2672
  })
2640
2673
  );
2641
2674
  }
2642
- /** Update integration configuration */
2675
+ /** Patch a REST integration. Pass `auth: null` to clear auth. */
2643
2676
  async update(integrationId2, body) {
2644
2677
  return extractData(
2645
- await this.client.PUT("/v1/{workspace_id}/integrations/{integration_id}", {
2678
+ await this.client.PATCH("/v1/{workspace_id}/integrations/{integration_id}", {
2646
2679
  params: { path: { workspace_id: this.workspaceId, integration_id: integrationId2 } },
2647
2680
  body
2648
2681
  })
2649
2682
  );
2650
2683
  }
2651
- /** Delete an integration */
2684
+ /** Delete a REST integration */
2652
2685
  async delete(integrationId2) {
2653
2686
  await this.client.DELETE("/v1/{workspace_id}/integrations/{integration_id}", {
2654
2687
  params: { path: { workspace_id: this.workspaceId, integration_id: integrationId2 } }
2655
2688
  });
2656
2689
  }
2657
- /**
2658
- * Test a specific endpoint on an integration with given params.
2659
- * Used in the developer console to validate integration config.
2660
- */
2661
- async testEndpoint(integrationId2, endpointName, body) {
2690
+ // ─── Endpoints ────────────────────────────────────────────────────────────
2691
+ /** List endpoints on a REST integration */
2692
+ async listEndpoints(integrationId2, params) {
2662
2693
  return extractData(
2663
- await this.client.POST(
2664
- "/v1/{workspace_id}/integrations/{integration_id}/endpoints/{endpoint_name}/test",
2694
+ await this.client.GET("/v1/{workspace_id}/integrations/{integration_id}/endpoints", {
2695
+ params: {
2696
+ path: { workspace_id: this.workspaceId, integration_id: integrationId2 },
2697
+ query: params
2698
+ }
2699
+ })
2700
+ );
2701
+ }
2702
+ listEndpointsAutoPaging(integrationId2, params) {
2703
+ return this.iteratePaginatedList(
2704
+ (pageParams) => this.listEndpoints(integrationId2, pageParams),
2705
+ params
2706
+ );
2707
+ }
2708
+ /** Get a single endpoint */
2709
+ async getEndpoint(integrationId2, endpointId) {
2710
+ return extractData(
2711
+ await this.client.GET(
2712
+ "/v1/{workspace_id}/integrations/{integration_id}/endpoints/{endpoint_id}",
2713
+ {
2714
+ params: {
2715
+ path: {
2716
+ workspace_id: this.workspaceId,
2717
+ integration_id: integrationId2,
2718
+ endpoint_id: endpointId
2719
+ }
2720
+ }
2721
+ }
2722
+ )
2723
+ );
2724
+ }
2725
+ /** Add an endpoint to a REST integration */
2726
+ async createEndpoint(integrationId2, body) {
2727
+ return extractData(
2728
+ await this.client.POST("/v1/{workspace_id}/integrations/{integration_id}/endpoints", {
2729
+ params: { path: { workspace_id: this.workspaceId, integration_id: integrationId2 } },
2730
+ body
2731
+ })
2732
+ );
2733
+ }
2734
+ /** Patch an endpoint. The endpoint `name` is immutable. */
2735
+ async updateEndpoint(integrationId2, endpointId, body) {
2736
+ return extractData(
2737
+ await this.client.PATCH(
2738
+ "/v1/{workspace_id}/integrations/{integration_id}/endpoints/{endpoint_id}",
2665
2739
  {
2666
2740
  params: {
2667
2741
  path: {
2668
2742
  workspace_id: this.workspaceId,
2669
2743
  integration_id: integrationId2,
2670
- endpoint_name: endpointName
2744
+ endpoint_id: endpointId
2671
2745
  }
2672
2746
  },
2673
2747
  body
@@ -2675,44 +2749,42 @@ var IntegrationsResource = class extends WorkspaceScopedResource {
2675
2749
  )
2676
2750
  );
2677
2751
  }
2752
+ /** Delete an endpoint from a REST integration */
2753
+ async deleteEndpoint(integrationId2, endpointId) {
2754
+ await this.client.DELETE(
2755
+ "/v1/{workspace_id}/integrations/{integration_id}/endpoints/{endpoint_id}",
2756
+ {
2757
+ params: {
2758
+ path: {
2759
+ workspace_id: this.workspaceId,
2760
+ integration_id: integrationId2,
2761
+ endpoint_id: endpointId
2762
+ }
2763
+ }
2764
+ }
2765
+ );
2766
+ }
2678
2767
  /**
2679
- * Probe an integration's connection + auth without invoking any specific
2680
- * endpoint. Exercises auth resolution end-to-end (SSM lookups, OAuth2 token
2681
- * mints, JWT signing) and sends a HEAD request to ``base_url`` (REST/FHIR)
2682
- * or ``mcp_url`` (MCP). Safe on production integrations — HEAD carries no
2683
- * side effects.
2684
- *
2685
- * The most recent probe outcome is persisted on the integration so
2686
- * subsequent ``get`` / ``list`` responses surface ``last_tested_at`` +
2687
- * ``last_test_status`` without re-probing.
2688
- *
2689
- * @returns ``status`` is one of ``healthy`` / ``auth_failed`` /
2690
- * ``unreachable`` / ``timeout`` / ``ssl_error`` / ``misconfigured``,
2691
- * each mapping to a distinct, actionable user message.
2768
+ * Execute an endpoint with test parameters and return the full response
2769
+ * pipeline breakdown. Used by the developer console to validate config.
2692
2770
  */
2693
- async testConnection(integrationId2) {
2771
+ async testEndpoint(integrationId2, endpointId, body) {
2694
2772
  return extractData(
2695
2773
  await this.client.POST(
2696
- "/v1/{workspace_id}/integrations/{integration_id}/test-connection",
2774
+ "/v1/{workspace_id}/integrations/{integration_id}/endpoints/{endpoint_id}/test",
2697
2775
  {
2698
2776
  params: {
2699
2777
  path: {
2700
2778
  workspace_id: this.workspaceId,
2701
- integration_id: integrationId2
2779
+ integration_id: integrationId2,
2780
+ endpoint_id: endpointId
2702
2781
  }
2703
- }
2782
+ },
2783
+ body
2704
2784
  }
2705
2785
  )
2706
2786
  );
2707
2787
  }
2708
- /** Check health of all integrations in the workspace */
2709
- async getHealthCheck() {
2710
- return extractData(
2711
- await this.client.GET("/v1/{workspace_id}/integrations/health-check", {
2712
- params: { path: { workspace_id: this.workspaceId } }
2713
- })
2714
- );
2715
- }
2716
2788
  };
2717
2789
 
2718
2790
  // src/resources/analytics.ts
@@ -5213,6 +5285,7 @@ var contextGraphId = (id) => id;
5213
5285
  var callId = (id) => id;
5214
5286
  var phoneNumberId = (id) => id;
5215
5287
  var integrationId = (id) => id;
5288
+ var integrationEndpointId = (id) => id;
5216
5289
  var entityId = (id) => id;
5217
5290
  var eventId = (id) => id;
5218
5291
  var simulationRunId = (id) => id;
@@ -5836,6 +5909,7 @@ var AmigoClient = class _AmigoClient {
5836
5909
  workspaces;
5837
5910
  me;
5838
5911
  apiKeys;
5912
+ tokens;
5839
5913
  agents;
5840
5914
  /** @deprecated Use `actions` instead */
5841
5915
  skills;
@@ -5974,6 +6048,7 @@ var AmigoClient = class _AmigoClient {
5974
6048
  mutable.workspaces = new WorkspacesResource(client, workspaceId2);
5975
6049
  mutable.me = new MeResource(client, "_account");
5976
6050
  mutable.apiKeys = new ApiKeysResource(client, workspaceId2);
6051
+ mutable.tokens = new TokensResource(client, "_identity");
5977
6052
  mutable.agents = new AgentsResource(client, workspaceId2);
5978
6053
  mutable.skills = new SkillsResource(client, workspaceId2);
5979
6054
  mutable.actions = new ActionsResource(client, workspaceId2);