@athenaintel/sdk 4.3.2170 → 4.3.2172

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 (56) hide show
  1. package/dist/cjs/BaseClient.js +2 -2
  2. package/dist/cjs/api/resources/meetings/client/Client.d.ts +2 -2
  3. package/dist/cjs/api/resources/meetings/client/Client.js +2 -2
  4. package/dist/cjs/api/resources/workspaces/client/Client.d.ts +35 -0
  5. package/dist/cjs/api/resources/workspaces/client/Client.js +154 -0
  6. package/dist/cjs/api/resources/workspaces/client/requests/CreatePresenceTokenWorkspacesRequest.d.ts +10 -0
  7. package/dist/cjs/api/resources/workspaces/client/requests/CreatePresenceTokenWorkspacesRequest.js +3 -0
  8. package/dist/cjs/api/resources/workspaces/client/requests/PresenceResolveRequestIn.d.ts +25 -0
  9. package/dist/cjs/api/resources/workspaces/client/requests/PresenceResolveRequestIn.js +3 -0
  10. package/dist/cjs/api/resources/workspaces/client/requests/index.d.ts +2 -0
  11. package/dist/cjs/api/types/MeetingArtifactsOut.d.ts +10 -8
  12. package/dist/cjs/api/types/PresenceAssetOut.d.ts +8 -0
  13. package/dist/cjs/api/types/PresenceAssetOut.js +3 -0
  14. package/dist/cjs/api/types/PresenceMemberOut.d.ts +10 -0
  15. package/dist/cjs/api/types/PresenceMemberOut.js +3 -0
  16. package/dist/cjs/api/types/PresenceProjectOut.d.ts +9 -0
  17. package/dist/cjs/api/types/PresenceProjectOut.js +3 -0
  18. package/dist/cjs/api/types/PresenceResolveResponseOut.d.ts +10 -0
  19. package/dist/cjs/api/types/PresenceResolveResponseOut.js +3 -0
  20. package/dist/cjs/api/types/PresenceSessionOut.d.ts +8 -0
  21. package/dist/cjs/api/types/PresenceSessionOut.js +3 -0
  22. package/dist/cjs/api/types/PresenceTokenResponseOut.d.ts +26 -0
  23. package/dist/cjs/api/types/PresenceTokenResponseOut.js +11 -0
  24. package/dist/cjs/api/types/index.d.ts +6 -0
  25. package/dist/cjs/api/types/index.js +6 -0
  26. package/dist/cjs/version.d.ts +1 -1
  27. package/dist/cjs/version.js +1 -1
  28. package/dist/esm/BaseClient.mjs +2 -2
  29. package/dist/esm/api/resources/meetings/client/Client.d.mts +2 -2
  30. package/dist/esm/api/resources/meetings/client/Client.mjs +2 -2
  31. package/dist/esm/api/resources/workspaces/client/Client.d.mts +35 -0
  32. package/dist/esm/api/resources/workspaces/client/Client.mjs +154 -0
  33. package/dist/esm/api/resources/workspaces/client/requests/CreatePresenceTokenWorkspacesRequest.d.mts +10 -0
  34. package/dist/esm/api/resources/workspaces/client/requests/CreatePresenceTokenWorkspacesRequest.mjs +2 -0
  35. package/dist/esm/api/resources/workspaces/client/requests/PresenceResolveRequestIn.d.mts +25 -0
  36. package/dist/esm/api/resources/workspaces/client/requests/PresenceResolveRequestIn.mjs +2 -0
  37. package/dist/esm/api/resources/workspaces/client/requests/index.d.mts +2 -0
  38. package/dist/esm/api/types/MeetingArtifactsOut.d.mts +10 -8
  39. package/dist/esm/api/types/PresenceAssetOut.d.mts +8 -0
  40. package/dist/esm/api/types/PresenceAssetOut.mjs +2 -0
  41. package/dist/esm/api/types/PresenceMemberOut.d.mts +10 -0
  42. package/dist/esm/api/types/PresenceMemberOut.mjs +2 -0
  43. package/dist/esm/api/types/PresenceProjectOut.d.mts +9 -0
  44. package/dist/esm/api/types/PresenceProjectOut.mjs +2 -0
  45. package/dist/esm/api/types/PresenceResolveResponseOut.d.mts +10 -0
  46. package/dist/esm/api/types/PresenceResolveResponseOut.mjs +2 -0
  47. package/dist/esm/api/types/PresenceSessionOut.d.mts +8 -0
  48. package/dist/esm/api/types/PresenceSessionOut.mjs +2 -0
  49. package/dist/esm/api/types/PresenceTokenResponseOut.d.mts +26 -0
  50. package/dist/esm/api/types/PresenceTokenResponseOut.mjs +8 -0
  51. package/dist/esm/api/types/index.d.mts +6 -0
  52. package/dist/esm/api/types/index.mjs +6 -0
  53. package/dist/esm/version.d.mts +1 -1
  54. package/dist/esm/version.mjs +1 -1
  55. package/package.json +1 -1
  56. package/reference.md +137 -2
@@ -43,8 +43,8 @@ function normalizeClientOptions(options) {
43
43
  const headers = (0, headers_js_1.mergeHeaders)({
44
44
  "X-Fern-Language": "JavaScript",
45
45
  "X-Fern-SDK-Name": "@athenaintel/sdk",
46
- "X-Fern-SDK-Version": "4.3.2170",
47
- "User-Agent": "@athenaintel/sdk/4.3.2170",
46
+ "X-Fern-SDK-Version": "4.3.2172",
47
+ "User-Agent": "@athenaintel/sdk/4.3.2172",
48
48
  "X-Fern-Runtime": core.RUNTIME.type,
49
49
  "X-Fern-Runtime-Version": core.RUNTIME.version,
50
50
  }, options === null || options === void 0 ? void 0 : options.headers);
@@ -27,7 +27,7 @@ export declare class MeetingsClient {
27
27
  */
28
28
  list(request?: AthenaIntelligence.ListMeetingsRequest, requestOptions?: MeetingsClient.RequestOptions): Promise<core.Page<AthenaIntelligence.MeetingOut, AthenaIntelligence.PaginatedMeetingsOut>>;
29
29
  /**
30
- * Retrieve a single meeting by its asset ID, including status, AI summary, participants, and the asset IDs of its downloadable artifacts (recording, transcripts, chat).
30
+ * Retrieve a single meeting by its asset ID, including status, AI summary, participants, and the asset IDs of its downloadable artifacts (recording, transcripts, chat). Meetings captured since September 2026 store their artifacts on the meeting itself, so those IDs are null for them; use the download endpoint, which serves both shapes.
31
31
  *
32
32
  * @param {AthenaIntelligence.GetMeetingsRequest} request
33
33
  * @param {MeetingsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -44,7 +44,7 @@ export declare class MeetingsClient {
44
44
  get(request: AthenaIntelligence.GetMeetingsRequest, requestOptions?: MeetingsClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.MeetingOut>;
45
45
  private __get;
46
46
  /**
47
- * Download a meeting artifact. By default streams a ZIP archive containing metadata.json plus every available artifact (video recording, raw transcript, formatted transcript, chat). Pass the artifact parameter to download a single artifact instead.
47
+ * Download a meeting artifact. By default streams a ZIP archive containing metadata.json plus every available artifact (video recording, raw transcript, formatted transcript, chat). Pass the artifact parameter to download a single artifact instead. Works for every meeting, whether its artifacts are stored on the meeting itself (meetings captured since September 2026, whose artifact asset IDs are null) or as separate child assets.
48
48
  *
49
49
  * @param {AthenaIntelligence.DownloadMeetingsRequest} request
50
50
  * @param {MeetingsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -175,7 +175,7 @@ class MeetingsClient {
175
175
  });
176
176
  }
177
177
  /**
178
- * Retrieve a single meeting by its asset ID, including status, AI summary, participants, and the asset IDs of its downloadable artifacts (recording, transcripts, chat).
178
+ * Retrieve a single meeting by its asset ID, including status, AI summary, participants, and the asset IDs of its downloadable artifacts (recording, transcripts, chat). Meetings captured since September 2026 store their artifacts on the meeting itself, so those IDs are null for them; use the download endpoint, which serves both shapes.
179
179
  *
180
180
  * @param {AthenaIntelligence.GetMeetingsRequest} request
181
181
  * @param {MeetingsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -251,7 +251,7 @@ class MeetingsClient {
251
251
  });
252
252
  }
253
253
  /**
254
- * Download a meeting artifact. By default streams a ZIP archive containing metadata.json plus every available artifact (video recording, raw transcript, formatted transcript, chat). Pass the artifact parameter to download a single artifact instead.
254
+ * Download a meeting artifact. By default streams a ZIP archive containing metadata.json plus every available artifact (video recording, raw transcript, formatted transcript, chat). Pass the artifact parameter to download a single artifact instead. Works for every meeting, whether its artifacts are stored on the meeting itself (meetings captured since September 2026, whose artifact asset IDs are null) or as separate child assets.
255
255
  *
256
256
  * @param {AthenaIntelligence.DownloadMeetingsRequest} request
257
257
  * @param {MeetingsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -45,6 +45,41 @@ export declare class WorkspacesClient {
45
45
  */
46
46
  updateConfiguration(request: AthenaIntelligence.UpdateWorkspaceConfigurationRequestIn, requestOptions?: WorkspacesClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.WorkspaceConfigurationResponseOut>;
47
47
  private __updateConfiguration;
48
+ /**
49
+ * Admin only. Mint a short-lived, read-only Keryx token for a workspace's live presence feed (the awareness room the People page renders). The token is bound to the calling user, so Keryx narrows every frame to the documents that user may open; it can never publish presence or write document content. Requires the presence roster to be enabled for the deployment and opted in for the workspace. Computer-asset sandbox credentials are refused: call with the viewing user's own token.
50
+ *
51
+ * @param {AthenaIntelligence.CreatePresenceTokenWorkspacesRequest} request
52
+ * @param {WorkspacesClient.RequestOptions} requestOptions - Request-specific configuration.
53
+ *
54
+ * @throws {@link AthenaIntelligence.UnprocessableEntityError}
55
+ *
56
+ * @example
57
+ * await client.workspaces.createPresenceToken({
58
+ * workspace_id: "workspace_9ec609ea-ee1a-48b6-9e61-d73d9dfbb651"
59
+ * })
60
+ */
61
+ createPresenceToken(request: AthenaIntelligence.CreatePresenceTokenWorkspacesRequest, requestOptions?: WorkspacesClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.PresenceTokenResponseOut>;
62
+ private __createPresenceToken;
63
+ /**
64
+ * Admin only. Resolve the guids a presence feed carries into display titles, asset kinds, and project membership, and optionally list the projects and members of the workspace. Every id is checked against the calling user's own read permission as an ordinary member; anything the caller could not open is omitted rather than reported. Same gates as the presence-token mint.
65
+ *
66
+ * @param {AthenaIntelligence.PresenceResolveRequestIn} request
67
+ * @param {WorkspacesClient.RequestOptions} requestOptions - Request-specific configuration.
68
+ *
69
+ * @throws {@link AthenaIntelligence.UnprocessableEntityError}
70
+ *
71
+ * @example
72
+ * await client.workspaces.resolvePresence({
73
+ * workspace_id: "workspace_9ec609ea-ee1a-48b6-9e61-d73d9dfbb651",
74
+ * asset_ids: ["asset_1f9b6b2e-4c1d-4a0a-9c1e-2b7d1a0f3c44"],
75
+ * include_members: true,
76
+ * include_projects: true,
77
+ * project_ids: ["asset_7c2d1e0f-3a4b-4c5d-8e6f-1a2b3c4d5e6f"],
78
+ * session_ids: ["thread_3f0a9c2e-6b1d-4d8e-8a2f-5c7e9b1d2a30"]
79
+ * })
80
+ */
81
+ resolvePresence(request: AthenaIntelligence.PresenceResolveRequestIn, requestOptions?: WorkspacesClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.PresenceResolveResponseOut>;
82
+ private __resolvePresence;
48
83
  /**
49
84
  * Retrieve the persisted per-workspace Tool Registry policy. The response contains explicit tool overrides; environment feature flags, billing restrictions, and disabled tags may further restrict effective availability. Requires workspace owner or admin permissions.
50
85
  *
@@ -226,6 +226,160 @@ class WorkspacesClient {
226
226
  }
227
227
  });
228
228
  }
229
+ /**
230
+ * Admin only. Mint a short-lived, read-only Keryx token for a workspace's live presence feed (the awareness room the People page renders). The token is bound to the calling user, so Keryx narrows every frame to the documents that user may open; it can never publish presence or write document content. Requires the presence roster to be enabled for the deployment and opted in for the workspace. Computer-asset sandbox credentials are refused: call with the viewing user's own token.
231
+ *
232
+ * @param {AthenaIntelligence.CreatePresenceTokenWorkspacesRequest} request
233
+ * @param {WorkspacesClient.RequestOptions} requestOptions - Request-specific configuration.
234
+ *
235
+ * @throws {@link AthenaIntelligence.UnprocessableEntityError}
236
+ *
237
+ * @example
238
+ * await client.workspaces.createPresenceToken({
239
+ * workspace_id: "workspace_9ec609ea-ee1a-48b6-9e61-d73d9dfbb651"
240
+ * })
241
+ */
242
+ createPresenceToken(request, requestOptions) {
243
+ return core.HttpResponsePromise.fromPromise(this.__createPresenceToken(request, requestOptions));
244
+ }
245
+ __createPresenceToken(request, requestOptions) {
246
+ return __awaiter(this, void 0, void 0, function* () {
247
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
248
+ const { workspace_id: workspaceId } = request;
249
+ const _authRequest = yield this._options.authProvider.getAuthRequest();
250
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
251
+ const _response = yield ((_b = this._options.fetcher) !== null && _b !== void 0 ? _b : core.fetcher)({
252
+ url: core.url.join((_d = (_c = (yield core.Supplier.get(this._options.baseUrl))) !== null && _c !== void 0 ? _c : (yield core.Supplier.get(this._options.environment))) !== null && _d !== void 0 ? _d : environments.AthenaIntelligenceEnvironment.Production, `api/v0/workspaces/${core.url.encodePathParam(workspaceId)}/presence-token`),
253
+ method: "POST",
254
+ headers: _headers,
255
+ queryParameters: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams,
256
+ timeoutMs: ((_g = (_e = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _e !== void 0 ? _e : (_f = this._options) === null || _f === void 0 ? void 0 : _f.timeoutInSeconds) !== null && _g !== void 0 ? _g : 60) * 1000,
257
+ maxRetries: (_h = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _h !== void 0 ? _h : (_j = this._options) === null || _j === void 0 ? void 0 : _j.maxRetries,
258
+ abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
259
+ fetchFn: (_k = this._options) === null || _k === void 0 ? void 0 : _k.fetch,
260
+ logging: this._options.logging,
261
+ });
262
+ if (_response.ok) {
263
+ return {
264
+ data: _response.body,
265
+ rawResponse: _response.rawResponse,
266
+ };
267
+ }
268
+ if (_response.error.reason === "status-code") {
269
+ switch (_response.error.statusCode) {
270
+ case 422:
271
+ throw new AthenaIntelligence.UnprocessableEntityError(_response.error.body, _response.rawResponse);
272
+ default:
273
+ throw new errors.AthenaIntelligenceError({
274
+ statusCode: _response.error.statusCode,
275
+ body: _response.error.body,
276
+ rawResponse: _response.rawResponse,
277
+ });
278
+ }
279
+ }
280
+ switch (_response.error.reason) {
281
+ case "non-json":
282
+ throw new errors.AthenaIntelligenceError({
283
+ statusCode: _response.error.statusCode,
284
+ body: _response.error.rawBody,
285
+ rawResponse: _response.rawResponse,
286
+ });
287
+ case "body-is-null":
288
+ throw new errors.AthenaIntelligenceError({
289
+ statusCode: _response.error.statusCode,
290
+ rawResponse: _response.rawResponse,
291
+ });
292
+ case "timeout":
293
+ throw new errors.AthenaIntelligenceTimeoutError("Timeout exceeded when calling POST /api/v0/workspaces/{workspace_id}/presence-token.");
294
+ case "unknown":
295
+ throw new errors.AthenaIntelligenceError({
296
+ message: _response.error.errorMessage,
297
+ rawResponse: _response.rawResponse,
298
+ });
299
+ }
300
+ });
301
+ }
302
+ /**
303
+ * Admin only. Resolve the guids a presence feed carries into display titles, asset kinds, and project membership, and optionally list the projects and members of the workspace. Every id is checked against the calling user's own read permission as an ordinary member; anything the caller could not open is omitted rather than reported. Same gates as the presence-token mint.
304
+ *
305
+ * @param {AthenaIntelligence.PresenceResolveRequestIn} request
306
+ * @param {WorkspacesClient.RequestOptions} requestOptions - Request-specific configuration.
307
+ *
308
+ * @throws {@link AthenaIntelligence.UnprocessableEntityError}
309
+ *
310
+ * @example
311
+ * await client.workspaces.resolvePresence({
312
+ * workspace_id: "workspace_9ec609ea-ee1a-48b6-9e61-d73d9dfbb651",
313
+ * asset_ids: ["asset_1f9b6b2e-4c1d-4a0a-9c1e-2b7d1a0f3c44"],
314
+ * include_members: true,
315
+ * include_projects: true,
316
+ * project_ids: ["asset_7c2d1e0f-3a4b-4c5d-8e6f-1a2b3c4d5e6f"],
317
+ * session_ids: ["thread_3f0a9c2e-6b1d-4d8e-8a2f-5c7e9b1d2a30"]
318
+ * })
319
+ */
320
+ resolvePresence(request, requestOptions) {
321
+ return core.HttpResponsePromise.fromPromise(this.__resolvePresence(request, requestOptions));
322
+ }
323
+ __resolvePresence(request, requestOptions) {
324
+ return __awaiter(this, void 0, void 0, function* () {
325
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
326
+ const { workspace_id: workspaceId } = request, _body = __rest(request, ["workspace_id"]);
327
+ const _authRequest = yield this._options.authProvider.getAuthRequest();
328
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
329
+ const _response = yield ((_b = this._options.fetcher) !== null && _b !== void 0 ? _b : core.fetcher)({
330
+ url: core.url.join((_d = (_c = (yield core.Supplier.get(this._options.baseUrl))) !== null && _c !== void 0 ? _c : (yield core.Supplier.get(this._options.environment))) !== null && _d !== void 0 ? _d : environments.AthenaIntelligenceEnvironment.Production, `api/v0/workspaces/${core.url.encodePathParam(workspaceId)}/presence/resolve`),
331
+ method: "POST",
332
+ headers: _headers,
333
+ contentType: "application/json",
334
+ queryParameters: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams,
335
+ requestType: "json",
336
+ body: _body,
337
+ timeoutMs: ((_g = (_e = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _e !== void 0 ? _e : (_f = this._options) === null || _f === void 0 ? void 0 : _f.timeoutInSeconds) !== null && _g !== void 0 ? _g : 60) * 1000,
338
+ maxRetries: (_h = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _h !== void 0 ? _h : (_j = this._options) === null || _j === void 0 ? void 0 : _j.maxRetries,
339
+ abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
340
+ fetchFn: (_k = this._options) === null || _k === void 0 ? void 0 : _k.fetch,
341
+ logging: this._options.logging,
342
+ });
343
+ if (_response.ok) {
344
+ return {
345
+ data: _response.body,
346
+ rawResponse: _response.rawResponse,
347
+ };
348
+ }
349
+ if (_response.error.reason === "status-code") {
350
+ switch (_response.error.statusCode) {
351
+ case 422:
352
+ throw new AthenaIntelligence.UnprocessableEntityError(_response.error.body, _response.rawResponse);
353
+ default:
354
+ throw new errors.AthenaIntelligenceError({
355
+ statusCode: _response.error.statusCode,
356
+ body: _response.error.body,
357
+ rawResponse: _response.rawResponse,
358
+ });
359
+ }
360
+ }
361
+ switch (_response.error.reason) {
362
+ case "non-json":
363
+ throw new errors.AthenaIntelligenceError({
364
+ statusCode: _response.error.statusCode,
365
+ body: _response.error.rawBody,
366
+ rawResponse: _response.rawResponse,
367
+ });
368
+ case "body-is-null":
369
+ throw new errors.AthenaIntelligenceError({
370
+ statusCode: _response.error.statusCode,
371
+ rawResponse: _response.rawResponse,
372
+ });
373
+ case "timeout":
374
+ throw new errors.AthenaIntelligenceTimeoutError("Timeout exceeded when calling POST /api/v0/workspaces/{workspace_id}/presence/resolve.");
375
+ case "unknown":
376
+ throw new errors.AthenaIntelligenceError({
377
+ message: _response.error.errorMessage,
378
+ rawResponse: _response.rawResponse,
379
+ });
380
+ }
381
+ });
382
+ }
229
383
  /**
230
384
  * Retrieve the persisted per-workspace Tool Registry policy. The response contains explicit tool overrides; environment feature flags, billing restrictions, and disabled tags may further restrict effective availability. Requires workspace owner or admin permissions.
231
385
  *
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @example
3
+ * {
4
+ * workspace_id: "workspace_9ec609ea-ee1a-48b6-9e61-d73d9dfbb651"
5
+ * }
6
+ */
7
+ export interface CreatePresenceTokenWorkspacesRequest {
8
+ /** The workspace whose presence feed to read. */
9
+ workspace_id: string;
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @example
3
+ * {
4
+ * workspace_id: "workspace_9ec609ea-ee1a-48b6-9e61-d73d9dfbb651",
5
+ * asset_ids: ["asset_1f9b6b2e-4c1d-4a0a-9c1e-2b7d1a0f3c44"],
6
+ * include_members: true,
7
+ * include_projects: true,
8
+ * project_ids: ["asset_7c2d1e0f-3a4b-4c5d-8e6f-1a2b3c4d5e6f"],
9
+ * session_ids: ["thread_3f0a9c2e-6b1d-4d8e-8a2f-5c7e9b1d2a30"]
10
+ * }
11
+ */
12
+ export interface PresenceResolveRequestIn {
13
+ /** The workspace whose presence feed to read. */
14
+ workspace_id: string;
15
+ /** Asset guids from presence contexts of type asset. */
16
+ asset_ids?: string[];
17
+ /** Also list the workspace's members (name, email, avatar) so the app can name people by their attested user id rather than the self-reported slot. */
18
+ include_members?: boolean;
19
+ /** Also list every project the caller may open in this workspace, each with the linked documents the caller may open. */
20
+ include_projects?: boolean;
21
+ /** Project guids from coarse presence contexts or from a visible context's projects annotation. */
22
+ project_ids?: string[];
23
+ /** Thread ids from presence contexts of type session (what an open chat publishes). Each resolves to the workspace's session asset. */
24
+ session_ids?: string[];
25
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +1,6 @@
1
+ export type { CreatePresenceTokenWorkspacesRequest } from "./CreatePresenceTokenWorkspacesRequest.js";
1
2
  export type { GetConfigurationWorkspacesRequest } from "./GetConfigurationWorkspacesRequest.js";
2
3
  export type { GetToolRegistryWorkspacesRequest } from "./GetToolRegistryWorkspacesRequest.js";
4
+ export type { PresenceResolveRequestIn } from "./PresenceResolveRequestIn.js";
3
5
  export type { UpdateWorkspaceConfigurationRequestIn } from "./UpdateWorkspaceConfigurationRequestIn.js";
4
6
  export type { UpdateWorkspaceToolRegistryRequestIn } from "./UpdateWorkspaceToolRegistryRequestIn.js";
@@ -1,17 +1,19 @@
1
1
  /**
2
- * Asset IDs of the downloadable artifacts attached to a meeting.
2
+ * Legacy asset IDs of the downloadable artifacts attached to a meeting.
3
3
  *
4
- * Each artifact is itself an asset; a null value means the meeting does
5
- * not (yet) have that artifact. Individual artifacts can be downloaded
6
- * via the meeting download endpoint or the generic raw file data endpoint.
4
+ * Meetings captured since September 2026 are a single asset: their
5
+ * recording, transcript and chat are stored on the meeting itself, so every
6
+ * ID here is null for them and the artifacts are downloaded through the
7
+ * meeting download endpoint (``GET /meetings/{asset_id}/download``), which
8
+ * serves both shapes. Older meetings keep their child assets and their IDs.
7
9
  */
8
10
  export interface MeetingArtifactsOut {
9
- /** Asset ID of the in-meeting chat transcript (JSON) */
11
+ /** Asset ID of the in-meeting chat transcript (JSON) for meetings captured before September 2026; null for newer meetings, whose chat is downloaded via the meeting download endpoint */
10
12
  chat_asset_id?: string | null;
11
- /** Asset ID of the formatted meeting transcript (JSON) */
13
+ /** Asset ID of the formatted meeting transcript (JSON) for meetings captured before September 2026; null for newer meetings */
12
14
  formatted_transcript_asset_id?: string | null;
13
- /** Asset ID of the meeting video recording (MP4) */
15
+ /** Asset ID of the meeting video recording (MP4) for meetings captured before September 2026; null for newer meetings, whose recording is downloaded via the meeting download endpoint */
14
16
  recording_asset_id?: string | null;
15
- /** Asset ID of the raw meeting transcript (JSON) */
17
+ /** Asset ID of the raw meeting transcript (JSON) for meetings captured before September 2026; null for newer meetings, whose transcript is downloaded via the meeting download endpoint */
16
18
  transcript_asset_id?: string | null;
17
19
  }
@@ -0,0 +1,8 @@
1
+ export interface PresenceAssetOut {
2
+ /** Athena asset type, e.g. document, spreadsheet, project. */
3
+ asset_type?: string | null;
4
+ /** Asset guid. */
5
+ id: string;
6
+ /** Display title. */
7
+ title?: string | null;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ export interface PresenceMemberOut {
2
+ /** Avatar URL. */
3
+ avatar_url?: string | null;
4
+ /** Email. */
5
+ email: string;
6
+ /** User id (matches a slot's attested authUserId). */
7
+ id: string;
8
+ /** Display name. */
9
+ name: string;
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import type * as AthenaIntelligence from "../index.js";
2
+ export interface PresenceProjectOut {
3
+ /** Documents linked into the project that the caller may open. */
4
+ assets?: AthenaIntelligence.PresenceAssetOut[];
5
+ /** Project guid. */
6
+ id: string;
7
+ /** Display title. */
8
+ title?: string | null;
9
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ import type * as AthenaIntelligence from "../index.js";
2
+ /**
3
+ * Only what the caller may open comes back; unknown or refused ids are absent.
4
+ */
5
+ export interface PresenceResolveResponseOut {
6
+ assets?: AthenaIntelligence.PresenceAssetOut[];
7
+ members?: AthenaIntelligence.PresenceMemberOut[];
8
+ projects?: AthenaIntelligence.PresenceProjectOut[];
9
+ sessions?: AthenaIntelligence.PresenceSessionOut[];
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ export interface PresenceSessionOut {
2
+ /** The session asset carrying that thread. */
3
+ asset_id: string;
4
+ /** The thread id the feed published. */
5
+ thread_id: string;
6
+ /** Display title. */
7
+ title?: string | null;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,26 @@
1
+ /**
2
+ * A read-only, room-bound Keryx capability for the workspace awareness room.
3
+ */
4
+ export interface PresenceTokenResponseOut {
5
+ /** Always r: subscribe only. The app never publishes a slot. */
6
+ access_type: PresenceTokenResponseOut.AccessType;
7
+ /** Document branch. */
8
+ branch?: string;
9
+ /** Keryx document id within the org: awareness. */
10
+ doc_id: string;
11
+ /** Token expiry in epoch milliseconds. Re-mint before this passes; the @athenaintel/react presence client does so automatically. */
12
+ expires_at_ms: number;
13
+ /** Keryx org (room namespace): the workspace id. */
14
+ org: string;
15
+ /** Keryx capability token (yauth). Pass as the yauth query parameter on the WebSocket upgrade. Read-only and bound to this workspace's awareness room; Keryx narrows every frame to what the token's user may open. */
16
+ token: string;
17
+ /** WebSocket base URL. Connect to {ws_url}/{org}/{doc_id}?yauth={token}. */
18
+ ws_url: string;
19
+ }
20
+ export declare namespace PresenceTokenResponseOut {
21
+ /** Always r: subscribe only. The app never publishes a slot. */
22
+ const AccessType: {
23
+ readonly R: "r";
24
+ };
25
+ type AccessType = (typeof AccessType)[keyof typeof AccessType];
26
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PresenceTokenResponseOut = void 0;
5
+ var PresenceTokenResponseOut;
6
+ (function (PresenceTokenResponseOut) {
7
+ /** Always r: subscribe only. The app never publishes a slot. */
8
+ PresenceTokenResponseOut.AccessType = {
9
+ R: "r",
10
+ };
11
+ })(PresenceTokenResponseOut || (exports.PresenceTokenResponseOut = PresenceTokenResponseOut = {}));
@@ -92,6 +92,12 @@ export * from "./NumberFormatType.js";
92
92
  export * from "./PaginatedAssetsOut.js";
93
93
  export * from "./PaginatedMeetingsOut.js";
94
94
  export * from "./PaginatedSessionsOut.js";
95
+ export * from "./PresenceAssetOut.js";
96
+ export * from "./PresenceMemberOut.js";
97
+ export * from "./PresenceProjectOut.js";
98
+ export * from "./PresenceResolveResponseOut.js";
99
+ export * from "./PresenceSessionOut.js";
100
+ export * from "./PresenceTokenResponseOut.js";
95
101
  export * from "./PromptMessage.js";
96
102
  export * from "./PublicAssetOut.js";
97
103
  export * from "./ReadCapabilitiesOut.js";
@@ -108,6 +108,12 @@ __exportStar(require("./NumberFormatType.js"), exports);
108
108
  __exportStar(require("./PaginatedAssetsOut.js"), exports);
109
109
  __exportStar(require("./PaginatedMeetingsOut.js"), exports);
110
110
  __exportStar(require("./PaginatedSessionsOut.js"), exports);
111
+ __exportStar(require("./PresenceAssetOut.js"), exports);
112
+ __exportStar(require("./PresenceMemberOut.js"), exports);
113
+ __exportStar(require("./PresenceProjectOut.js"), exports);
114
+ __exportStar(require("./PresenceResolveResponseOut.js"), exports);
115
+ __exportStar(require("./PresenceSessionOut.js"), exports);
116
+ __exportStar(require("./PresenceTokenResponseOut.js"), exports);
111
117
  __exportStar(require("./PromptMessage.js"), exports);
112
118
  __exportStar(require("./PublicAssetOut.js"), exports);
113
119
  __exportStar(require("./ReadCapabilitiesOut.js"), exports);
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "4.3.2170";
1
+ export declare const SDK_VERSION = "4.3.2172";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SDK_VERSION = void 0;
4
- exports.SDK_VERSION = "4.3.2170";
4
+ exports.SDK_VERSION = "4.3.2172";
@@ -6,8 +6,8 @@ export function normalizeClientOptions(options) {
6
6
  const headers = mergeHeaders({
7
7
  "X-Fern-Language": "JavaScript",
8
8
  "X-Fern-SDK-Name": "@athenaintel/sdk",
9
- "X-Fern-SDK-Version": "4.3.2170",
10
- "User-Agent": "@athenaintel/sdk/4.3.2170",
9
+ "X-Fern-SDK-Version": "4.3.2172",
10
+ "User-Agent": "@athenaintel/sdk/4.3.2172",
11
11
  "X-Fern-Runtime": core.RUNTIME.type,
12
12
  "X-Fern-Runtime-Version": core.RUNTIME.version,
13
13
  }, options === null || options === void 0 ? void 0 : options.headers);
@@ -27,7 +27,7 @@ export declare class MeetingsClient {
27
27
  */
28
28
  list(request?: AthenaIntelligence.ListMeetingsRequest, requestOptions?: MeetingsClient.RequestOptions): Promise<core.Page<AthenaIntelligence.MeetingOut, AthenaIntelligence.PaginatedMeetingsOut>>;
29
29
  /**
30
- * Retrieve a single meeting by its asset ID, including status, AI summary, participants, and the asset IDs of its downloadable artifacts (recording, transcripts, chat).
30
+ * Retrieve a single meeting by its asset ID, including status, AI summary, participants, and the asset IDs of its downloadable artifacts (recording, transcripts, chat). Meetings captured since September 2026 store their artifacts on the meeting itself, so those IDs are null for them; use the download endpoint, which serves both shapes.
31
31
  *
32
32
  * @param {AthenaIntelligence.GetMeetingsRequest} request
33
33
  * @param {MeetingsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -44,7 +44,7 @@ export declare class MeetingsClient {
44
44
  get(request: AthenaIntelligence.GetMeetingsRequest, requestOptions?: MeetingsClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.MeetingOut>;
45
45
  private __get;
46
46
  /**
47
- * Download a meeting artifact. By default streams a ZIP archive containing metadata.json plus every available artifact (video recording, raw transcript, formatted transcript, chat). Pass the artifact parameter to download a single artifact instead.
47
+ * Download a meeting artifact. By default streams a ZIP archive containing metadata.json plus every available artifact (video recording, raw transcript, formatted transcript, chat). Pass the artifact parameter to download a single artifact instead. Works for every meeting, whether its artifacts are stored on the meeting itself (meetings captured since September 2026, whose artifact asset IDs are null) or as separate child assets.
48
48
  *
49
49
  * @param {AthenaIntelligence.DownloadMeetingsRequest} request
50
50
  * @param {MeetingsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -139,7 +139,7 @@ export class MeetingsClient {
139
139
  });
140
140
  }
141
141
  /**
142
- * Retrieve a single meeting by its asset ID, including status, AI summary, participants, and the asset IDs of its downloadable artifacts (recording, transcripts, chat).
142
+ * Retrieve a single meeting by its asset ID, including status, AI summary, participants, and the asset IDs of its downloadable artifacts (recording, transcripts, chat). Meetings captured since September 2026 store their artifacts on the meeting itself, so those IDs are null for them; use the download endpoint, which serves both shapes.
143
143
  *
144
144
  * @param {AthenaIntelligence.GetMeetingsRequest} request
145
145
  * @param {MeetingsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -215,7 +215,7 @@ export class MeetingsClient {
215
215
  });
216
216
  }
217
217
  /**
218
- * Download a meeting artifact. By default streams a ZIP archive containing metadata.json plus every available artifact (video recording, raw transcript, formatted transcript, chat). Pass the artifact parameter to download a single artifact instead.
218
+ * Download a meeting artifact. By default streams a ZIP archive containing metadata.json plus every available artifact (video recording, raw transcript, formatted transcript, chat). Pass the artifact parameter to download a single artifact instead. Works for every meeting, whether its artifacts are stored on the meeting itself (meetings captured since September 2026, whose artifact asset IDs are null) or as separate child assets.
219
219
  *
220
220
  * @param {AthenaIntelligence.DownloadMeetingsRequest} request
221
221
  * @param {MeetingsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -45,6 +45,41 @@ export declare class WorkspacesClient {
45
45
  */
46
46
  updateConfiguration(request: AthenaIntelligence.UpdateWorkspaceConfigurationRequestIn, requestOptions?: WorkspacesClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.WorkspaceConfigurationResponseOut>;
47
47
  private __updateConfiguration;
48
+ /**
49
+ * Admin only. Mint a short-lived, read-only Keryx token for a workspace's live presence feed (the awareness room the People page renders). The token is bound to the calling user, so Keryx narrows every frame to the documents that user may open; it can never publish presence or write document content. Requires the presence roster to be enabled for the deployment and opted in for the workspace. Computer-asset sandbox credentials are refused: call with the viewing user's own token.
50
+ *
51
+ * @param {AthenaIntelligence.CreatePresenceTokenWorkspacesRequest} request
52
+ * @param {WorkspacesClient.RequestOptions} requestOptions - Request-specific configuration.
53
+ *
54
+ * @throws {@link AthenaIntelligence.UnprocessableEntityError}
55
+ *
56
+ * @example
57
+ * await client.workspaces.createPresenceToken({
58
+ * workspace_id: "workspace_9ec609ea-ee1a-48b6-9e61-d73d9dfbb651"
59
+ * })
60
+ */
61
+ createPresenceToken(request: AthenaIntelligence.CreatePresenceTokenWorkspacesRequest, requestOptions?: WorkspacesClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.PresenceTokenResponseOut>;
62
+ private __createPresenceToken;
63
+ /**
64
+ * Admin only. Resolve the guids a presence feed carries into display titles, asset kinds, and project membership, and optionally list the projects and members of the workspace. Every id is checked against the calling user's own read permission as an ordinary member; anything the caller could not open is omitted rather than reported. Same gates as the presence-token mint.
65
+ *
66
+ * @param {AthenaIntelligence.PresenceResolveRequestIn} request
67
+ * @param {WorkspacesClient.RequestOptions} requestOptions - Request-specific configuration.
68
+ *
69
+ * @throws {@link AthenaIntelligence.UnprocessableEntityError}
70
+ *
71
+ * @example
72
+ * await client.workspaces.resolvePresence({
73
+ * workspace_id: "workspace_9ec609ea-ee1a-48b6-9e61-d73d9dfbb651",
74
+ * asset_ids: ["asset_1f9b6b2e-4c1d-4a0a-9c1e-2b7d1a0f3c44"],
75
+ * include_members: true,
76
+ * include_projects: true,
77
+ * project_ids: ["asset_7c2d1e0f-3a4b-4c5d-8e6f-1a2b3c4d5e6f"],
78
+ * session_ids: ["thread_3f0a9c2e-6b1d-4d8e-8a2f-5c7e9b1d2a30"]
79
+ * })
80
+ */
81
+ resolvePresence(request: AthenaIntelligence.PresenceResolveRequestIn, requestOptions?: WorkspacesClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.PresenceResolveResponseOut>;
82
+ private __resolvePresence;
48
83
  /**
49
84
  * Retrieve the persisted per-workspace Tool Registry policy. The response contains explicit tool overrides; environment feature flags, billing restrictions, and disabled tags may further restrict effective availability. Requires workspace owner or admin permissions.
50
85
  *
@@ -190,6 +190,160 @@ export class WorkspacesClient {
190
190
  }
191
191
  });
192
192
  }
193
+ /**
194
+ * Admin only. Mint a short-lived, read-only Keryx token for a workspace's live presence feed (the awareness room the People page renders). The token is bound to the calling user, so Keryx narrows every frame to the documents that user may open; it can never publish presence or write document content. Requires the presence roster to be enabled for the deployment and opted in for the workspace. Computer-asset sandbox credentials are refused: call with the viewing user's own token.
195
+ *
196
+ * @param {AthenaIntelligence.CreatePresenceTokenWorkspacesRequest} request
197
+ * @param {WorkspacesClient.RequestOptions} requestOptions - Request-specific configuration.
198
+ *
199
+ * @throws {@link AthenaIntelligence.UnprocessableEntityError}
200
+ *
201
+ * @example
202
+ * await client.workspaces.createPresenceToken({
203
+ * workspace_id: "workspace_9ec609ea-ee1a-48b6-9e61-d73d9dfbb651"
204
+ * })
205
+ */
206
+ createPresenceToken(request, requestOptions) {
207
+ return core.HttpResponsePromise.fromPromise(this.__createPresenceToken(request, requestOptions));
208
+ }
209
+ __createPresenceToken(request, requestOptions) {
210
+ return __awaiter(this, void 0, void 0, function* () {
211
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
212
+ const { workspace_id: workspaceId } = request;
213
+ const _authRequest = yield this._options.authProvider.getAuthRequest();
214
+ const _headers = mergeHeaders(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
215
+ const _response = yield ((_b = this._options.fetcher) !== null && _b !== void 0 ? _b : core.fetcher)({
216
+ url: core.url.join((_d = (_c = (yield core.Supplier.get(this._options.baseUrl))) !== null && _c !== void 0 ? _c : (yield core.Supplier.get(this._options.environment))) !== null && _d !== void 0 ? _d : environments.AthenaIntelligenceEnvironment.Production, `api/v0/workspaces/${core.url.encodePathParam(workspaceId)}/presence-token`),
217
+ method: "POST",
218
+ headers: _headers,
219
+ queryParameters: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams,
220
+ timeoutMs: ((_g = (_e = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _e !== void 0 ? _e : (_f = this._options) === null || _f === void 0 ? void 0 : _f.timeoutInSeconds) !== null && _g !== void 0 ? _g : 60) * 1000,
221
+ maxRetries: (_h = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _h !== void 0 ? _h : (_j = this._options) === null || _j === void 0 ? void 0 : _j.maxRetries,
222
+ abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
223
+ fetchFn: (_k = this._options) === null || _k === void 0 ? void 0 : _k.fetch,
224
+ logging: this._options.logging,
225
+ });
226
+ if (_response.ok) {
227
+ return {
228
+ data: _response.body,
229
+ rawResponse: _response.rawResponse,
230
+ };
231
+ }
232
+ if (_response.error.reason === "status-code") {
233
+ switch (_response.error.statusCode) {
234
+ case 422:
235
+ throw new AthenaIntelligence.UnprocessableEntityError(_response.error.body, _response.rawResponse);
236
+ default:
237
+ throw new errors.AthenaIntelligenceError({
238
+ statusCode: _response.error.statusCode,
239
+ body: _response.error.body,
240
+ rawResponse: _response.rawResponse,
241
+ });
242
+ }
243
+ }
244
+ switch (_response.error.reason) {
245
+ case "non-json":
246
+ throw new errors.AthenaIntelligenceError({
247
+ statusCode: _response.error.statusCode,
248
+ body: _response.error.rawBody,
249
+ rawResponse: _response.rawResponse,
250
+ });
251
+ case "body-is-null":
252
+ throw new errors.AthenaIntelligenceError({
253
+ statusCode: _response.error.statusCode,
254
+ rawResponse: _response.rawResponse,
255
+ });
256
+ case "timeout":
257
+ throw new errors.AthenaIntelligenceTimeoutError("Timeout exceeded when calling POST /api/v0/workspaces/{workspace_id}/presence-token.");
258
+ case "unknown":
259
+ throw new errors.AthenaIntelligenceError({
260
+ message: _response.error.errorMessage,
261
+ rawResponse: _response.rawResponse,
262
+ });
263
+ }
264
+ });
265
+ }
266
+ /**
267
+ * Admin only. Resolve the guids a presence feed carries into display titles, asset kinds, and project membership, and optionally list the projects and members of the workspace. Every id is checked against the calling user's own read permission as an ordinary member; anything the caller could not open is omitted rather than reported. Same gates as the presence-token mint.
268
+ *
269
+ * @param {AthenaIntelligence.PresenceResolveRequestIn} request
270
+ * @param {WorkspacesClient.RequestOptions} requestOptions - Request-specific configuration.
271
+ *
272
+ * @throws {@link AthenaIntelligence.UnprocessableEntityError}
273
+ *
274
+ * @example
275
+ * await client.workspaces.resolvePresence({
276
+ * workspace_id: "workspace_9ec609ea-ee1a-48b6-9e61-d73d9dfbb651",
277
+ * asset_ids: ["asset_1f9b6b2e-4c1d-4a0a-9c1e-2b7d1a0f3c44"],
278
+ * include_members: true,
279
+ * include_projects: true,
280
+ * project_ids: ["asset_7c2d1e0f-3a4b-4c5d-8e6f-1a2b3c4d5e6f"],
281
+ * session_ids: ["thread_3f0a9c2e-6b1d-4d8e-8a2f-5c7e9b1d2a30"]
282
+ * })
283
+ */
284
+ resolvePresence(request, requestOptions) {
285
+ return core.HttpResponsePromise.fromPromise(this.__resolvePresence(request, requestOptions));
286
+ }
287
+ __resolvePresence(request, requestOptions) {
288
+ return __awaiter(this, void 0, void 0, function* () {
289
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
290
+ const { workspace_id: workspaceId } = request, _body = __rest(request, ["workspace_id"]);
291
+ const _authRequest = yield this._options.authProvider.getAuthRequest();
292
+ const _headers = mergeHeaders(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
293
+ const _response = yield ((_b = this._options.fetcher) !== null && _b !== void 0 ? _b : core.fetcher)({
294
+ url: core.url.join((_d = (_c = (yield core.Supplier.get(this._options.baseUrl))) !== null && _c !== void 0 ? _c : (yield core.Supplier.get(this._options.environment))) !== null && _d !== void 0 ? _d : environments.AthenaIntelligenceEnvironment.Production, `api/v0/workspaces/${core.url.encodePathParam(workspaceId)}/presence/resolve`),
295
+ method: "POST",
296
+ headers: _headers,
297
+ contentType: "application/json",
298
+ queryParameters: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams,
299
+ requestType: "json",
300
+ body: _body,
301
+ timeoutMs: ((_g = (_e = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _e !== void 0 ? _e : (_f = this._options) === null || _f === void 0 ? void 0 : _f.timeoutInSeconds) !== null && _g !== void 0 ? _g : 60) * 1000,
302
+ maxRetries: (_h = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _h !== void 0 ? _h : (_j = this._options) === null || _j === void 0 ? void 0 : _j.maxRetries,
303
+ abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
304
+ fetchFn: (_k = this._options) === null || _k === void 0 ? void 0 : _k.fetch,
305
+ logging: this._options.logging,
306
+ });
307
+ if (_response.ok) {
308
+ return {
309
+ data: _response.body,
310
+ rawResponse: _response.rawResponse,
311
+ };
312
+ }
313
+ if (_response.error.reason === "status-code") {
314
+ switch (_response.error.statusCode) {
315
+ case 422:
316
+ throw new AthenaIntelligence.UnprocessableEntityError(_response.error.body, _response.rawResponse);
317
+ default:
318
+ throw new errors.AthenaIntelligenceError({
319
+ statusCode: _response.error.statusCode,
320
+ body: _response.error.body,
321
+ rawResponse: _response.rawResponse,
322
+ });
323
+ }
324
+ }
325
+ switch (_response.error.reason) {
326
+ case "non-json":
327
+ throw new errors.AthenaIntelligenceError({
328
+ statusCode: _response.error.statusCode,
329
+ body: _response.error.rawBody,
330
+ rawResponse: _response.rawResponse,
331
+ });
332
+ case "body-is-null":
333
+ throw new errors.AthenaIntelligenceError({
334
+ statusCode: _response.error.statusCode,
335
+ rawResponse: _response.rawResponse,
336
+ });
337
+ case "timeout":
338
+ throw new errors.AthenaIntelligenceTimeoutError("Timeout exceeded when calling POST /api/v0/workspaces/{workspace_id}/presence/resolve.");
339
+ case "unknown":
340
+ throw new errors.AthenaIntelligenceError({
341
+ message: _response.error.errorMessage,
342
+ rawResponse: _response.rawResponse,
343
+ });
344
+ }
345
+ });
346
+ }
193
347
  /**
194
348
  * Retrieve the persisted per-workspace Tool Registry policy. The response contains explicit tool overrides; environment feature flags, billing restrictions, and disabled tags may further restrict effective availability. Requires workspace owner or admin permissions.
195
349
  *
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @example
3
+ * {
4
+ * workspace_id: "workspace_9ec609ea-ee1a-48b6-9e61-d73d9dfbb651"
5
+ * }
6
+ */
7
+ export interface CreatePresenceTokenWorkspacesRequest {
8
+ /** The workspace whose presence feed to read. */
9
+ workspace_id: string;
10
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @example
3
+ * {
4
+ * workspace_id: "workspace_9ec609ea-ee1a-48b6-9e61-d73d9dfbb651",
5
+ * asset_ids: ["asset_1f9b6b2e-4c1d-4a0a-9c1e-2b7d1a0f3c44"],
6
+ * include_members: true,
7
+ * include_projects: true,
8
+ * project_ids: ["asset_7c2d1e0f-3a4b-4c5d-8e6f-1a2b3c4d5e6f"],
9
+ * session_ids: ["thread_3f0a9c2e-6b1d-4d8e-8a2f-5c7e9b1d2a30"]
10
+ * }
11
+ */
12
+ export interface PresenceResolveRequestIn {
13
+ /** The workspace whose presence feed to read. */
14
+ workspace_id: string;
15
+ /** Asset guids from presence contexts of type asset. */
16
+ asset_ids?: string[];
17
+ /** Also list the workspace's members (name, email, avatar) so the app can name people by their attested user id rather than the self-reported slot. */
18
+ include_members?: boolean;
19
+ /** Also list every project the caller may open in this workspace, each with the linked documents the caller may open. */
20
+ include_projects?: boolean;
21
+ /** Project guids from coarse presence contexts or from a visible context's projects annotation. */
22
+ project_ids?: string[];
23
+ /** Thread ids from presence contexts of type session (what an open chat publishes). Each resolves to the workspace's session asset. */
24
+ session_ids?: string[];
25
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -1,4 +1,6 @@
1
+ export type { CreatePresenceTokenWorkspacesRequest } from "./CreatePresenceTokenWorkspacesRequest.mjs";
1
2
  export type { GetConfigurationWorkspacesRequest } from "./GetConfigurationWorkspacesRequest.mjs";
2
3
  export type { GetToolRegistryWorkspacesRequest } from "./GetToolRegistryWorkspacesRequest.mjs";
4
+ export type { PresenceResolveRequestIn } from "./PresenceResolveRequestIn.mjs";
3
5
  export type { UpdateWorkspaceConfigurationRequestIn } from "./UpdateWorkspaceConfigurationRequestIn.mjs";
4
6
  export type { UpdateWorkspaceToolRegistryRequestIn } from "./UpdateWorkspaceToolRegistryRequestIn.mjs";
@@ -1,17 +1,19 @@
1
1
  /**
2
- * Asset IDs of the downloadable artifacts attached to a meeting.
2
+ * Legacy asset IDs of the downloadable artifacts attached to a meeting.
3
3
  *
4
- * Each artifact is itself an asset; a null value means the meeting does
5
- * not (yet) have that artifact. Individual artifacts can be downloaded
6
- * via the meeting download endpoint or the generic raw file data endpoint.
4
+ * Meetings captured since September 2026 are a single asset: their
5
+ * recording, transcript and chat are stored on the meeting itself, so every
6
+ * ID here is null for them and the artifacts are downloaded through the
7
+ * meeting download endpoint (``GET /meetings/{asset_id}/download``), which
8
+ * serves both shapes. Older meetings keep their child assets and their IDs.
7
9
  */
8
10
  export interface MeetingArtifactsOut {
9
- /** Asset ID of the in-meeting chat transcript (JSON) */
11
+ /** Asset ID of the in-meeting chat transcript (JSON) for meetings captured before September 2026; null for newer meetings, whose chat is downloaded via the meeting download endpoint */
10
12
  chat_asset_id?: string | null;
11
- /** Asset ID of the formatted meeting transcript (JSON) */
13
+ /** Asset ID of the formatted meeting transcript (JSON) for meetings captured before September 2026; null for newer meetings */
12
14
  formatted_transcript_asset_id?: string | null;
13
- /** Asset ID of the meeting video recording (MP4) */
15
+ /** Asset ID of the meeting video recording (MP4) for meetings captured before September 2026; null for newer meetings, whose recording is downloaded via the meeting download endpoint */
14
16
  recording_asset_id?: string | null;
15
- /** Asset ID of the raw meeting transcript (JSON) */
17
+ /** Asset ID of the raw meeting transcript (JSON) for meetings captured before September 2026; null for newer meetings, whose transcript is downloaded via the meeting download endpoint */
16
18
  transcript_asset_id?: string | null;
17
19
  }
@@ -0,0 +1,8 @@
1
+ export interface PresenceAssetOut {
2
+ /** Athena asset type, e.g. document, spreadsheet, project. */
3
+ asset_type?: string | null;
4
+ /** Asset guid. */
5
+ id: string;
6
+ /** Display title. */
7
+ title?: string | null;
8
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -0,0 +1,10 @@
1
+ export interface PresenceMemberOut {
2
+ /** Avatar URL. */
3
+ avatar_url?: string | null;
4
+ /** Email. */
5
+ email: string;
6
+ /** User id (matches a slot's attested authUserId). */
7
+ id: string;
8
+ /** Display name. */
9
+ name: string;
10
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -0,0 +1,9 @@
1
+ import type * as AthenaIntelligence from "../index.mjs";
2
+ export interface PresenceProjectOut {
3
+ /** Documents linked into the project that the caller may open. */
4
+ assets?: AthenaIntelligence.PresenceAssetOut[];
5
+ /** Project guid. */
6
+ id: string;
7
+ /** Display title. */
8
+ title?: string | null;
9
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -0,0 +1,10 @@
1
+ import type * as AthenaIntelligence from "../index.mjs";
2
+ /**
3
+ * Only what the caller may open comes back; unknown or refused ids are absent.
4
+ */
5
+ export interface PresenceResolveResponseOut {
6
+ assets?: AthenaIntelligence.PresenceAssetOut[];
7
+ members?: AthenaIntelligence.PresenceMemberOut[];
8
+ projects?: AthenaIntelligence.PresenceProjectOut[];
9
+ sessions?: AthenaIntelligence.PresenceSessionOut[];
10
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -0,0 +1,8 @@
1
+ export interface PresenceSessionOut {
2
+ /** The session asset carrying that thread. */
3
+ asset_id: string;
4
+ /** The thread id the feed published. */
5
+ thread_id: string;
6
+ /** Display title. */
7
+ title?: string | null;
8
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -0,0 +1,26 @@
1
+ /**
2
+ * A read-only, room-bound Keryx capability for the workspace awareness room.
3
+ */
4
+ export interface PresenceTokenResponseOut {
5
+ /** Always r: subscribe only. The app never publishes a slot. */
6
+ access_type: PresenceTokenResponseOut.AccessType;
7
+ /** Document branch. */
8
+ branch?: string;
9
+ /** Keryx document id within the org: awareness. */
10
+ doc_id: string;
11
+ /** Token expiry in epoch milliseconds. Re-mint before this passes; the @athenaintel/react presence client does so automatically. */
12
+ expires_at_ms: number;
13
+ /** Keryx org (room namespace): the workspace id. */
14
+ org: string;
15
+ /** Keryx capability token (yauth). Pass as the yauth query parameter on the WebSocket upgrade. Read-only and bound to this workspace's awareness room; Keryx narrows every frame to what the token's user may open. */
16
+ token: string;
17
+ /** WebSocket base URL. Connect to {ws_url}/{org}/{doc_id}?yauth={token}. */
18
+ ws_url: string;
19
+ }
20
+ export declare namespace PresenceTokenResponseOut {
21
+ /** Always r: subscribe only. The app never publishes a slot. */
22
+ const AccessType: {
23
+ readonly R: "r";
24
+ };
25
+ type AccessType = (typeof AccessType)[keyof typeof AccessType];
26
+ }
@@ -0,0 +1,8 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export var PresenceTokenResponseOut;
3
+ (function (PresenceTokenResponseOut) {
4
+ /** Always r: subscribe only. The app never publishes a slot. */
5
+ PresenceTokenResponseOut.AccessType = {
6
+ R: "r",
7
+ };
8
+ })(PresenceTokenResponseOut || (PresenceTokenResponseOut = {}));
@@ -92,6 +92,12 @@ export * from "./NumberFormatType.mjs";
92
92
  export * from "./PaginatedAssetsOut.mjs";
93
93
  export * from "./PaginatedMeetingsOut.mjs";
94
94
  export * from "./PaginatedSessionsOut.mjs";
95
+ export * from "./PresenceAssetOut.mjs";
96
+ export * from "./PresenceMemberOut.mjs";
97
+ export * from "./PresenceProjectOut.mjs";
98
+ export * from "./PresenceResolveResponseOut.mjs";
99
+ export * from "./PresenceSessionOut.mjs";
100
+ export * from "./PresenceTokenResponseOut.mjs";
95
101
  export * from "./PromptMessage.mjs";
96
102
  export * from "./PublicAssetOut.mjs";
97
103
  export * from "./ReadCapabilitiesOut.mjs";
@@ -92,6 +92,12 @@ export * from "./NumberFormatType.mjs";
92
92
  export * from "./PaginatedAssetsOut.mjs";
93
93
  export * from "./PaginatedMeetingsOut.mjs";
94
94
  export * from "./PaginatedSessionsOut.mjs";
95
+ export * from "./PresenceAssetOut.mjs";
96
+ export * from "./PresenceMemberOut.mjs";
97
+ export * from "./PresenceProjectOut.mjs";
98
+ export * from "./PresenceResolveResponseOut.mjs";
99
+ export * from "./PresenceSessionOut.mjs";
100
+ export * from "./PresenceTokenResponseOut.mjs";
95
101
  export * from "./PromptMessage.mjs";
96
102
  export * from "./PublicAssetOut.mjs";
97
103
  export * from "./ReadCapabilitiesOut.mjs";
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "4.3.2170";
1
+ export declare const SDK_VERSION = "4.3.2172";
@@ -1 +1 @@
1
- export const SDK_VERSION = "4.3.2170";
1
+ export const SDK_VERSION = "4.3.2172";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@athenaintel/sdk",
3
- "version": "4.3.2170",
3
+ "version": "4.3.2172",
4
4
  "private": false,
5
5
  "repository": "github:Athena-Intel/athena-typescript",
6
6
  "type": "commonjs",
package/reference.md CHANGED
@@ -3087,7 +3087,7 @@ const response = page.response;
3087
3087
  <dl>
3088
3088
  <dd>
3089
3089
 
3090
- Retrieve a single meeting by its asset ID, including status, AI summary, participants, and the asset IDs of its downloadable artifacts (recording, transcripts, chat).
3090
+ Retrieve a single meeting by its asset ID, including status, AI summary, participants, and the asset IDs of its downloadable artifacts (recording, transcripts, chat). Meetings captured since September 2026 store their artifacts on the meeting itself, so those IDs are null for them; use the download endpoint, which serves both shapes.
3091
3091
  </dd>
3092
3092
  </dl>
3093
3093
  </dd>
@@ -3152,7 +3152,7 @@ await client.meetings.get({
3152
3152
  <dl>
3153
3153
  <dd>
3154
3154
 
3155
- Download a meeting artifact. By default streams a ZIP archive containing metadata.json plus every available artifact (video recording, raw transcript, formatted transcript, chat). Pass the artifact parameter to download a single artifact instead.
3155
+ Download a meeting artifact. By default streams a ZIP archive containing metadata.json plus every available artifact (video recording, raw transcript, formatted transcript, chat). Pass the artifact parameter to download a single artifact instead. Works for every meeting, whether its artifacts are stored on the meeting itself (meetings captured since September 2026, whose artifact asset IDs are null) or as separate child assets.
3156
3156
  </dd>
3157
3157
  </dl>
3158
3158
  </dd>
@@ -4850,6 +4850,141 @@ await client.workspaces.updateConfiguration({
4850
4850
  </dl>
4851
4851
 
4852
4852
 
4853
+ </dd>
4854
+ </dl>
4855
+ </details>
4856
+
4857
+ <details><summary><code>client.workspaces.<a href="/src/api/resources/workspaces/client/Client.ts">createPresenceToken</a>({ ...params }) -> AthenaIntelligence.PresenceTokenResponseOut</code></summary>
4858
+ <dl>
4859
+ <dd>
4860
+
4861
+ #### 📝 Description
4862
+
4863
+ <dl>
4864
+ <dd>
4865
+
4866
+ <dl>
4867
+ <dd>
4868
+
4869
+ Admin only. Mint a short-lived, read-only Keryx token for a workspace's live presence feed (the awareness room the People page renders). The token is bound to the calling user, so Keryx narrows every frame to the documents that user may open; it can never publish presence or write document content. Requires the presence roster to be enabled for the deployment and opted in for the workspace. Computer-asset sandbox credentials are refused: call with the viewing user's own token.
4870
+ </dd>
4871
+ </dl>
4872
+ </dd>
4873
+ </dl>
4874
+
4875
+ #### 🔌 Usage
4876
+
4877
+ <dl>
4878
+ <dd>
4879
+
4880
+ <dl>
4881
+ <dd>
4882
+
4883
+ ```typescript
4884
+ await client.workspaces.createPresenceToken({
4885
+ workspace_id: "workspace_9ec609ea-ee1a-48b6-9e61-d73d9dfbb651"
4886
+ });
4887
+
4888
+ ```
4889
+ </dd>
4890
+ </dl>
4891
+ </dd>
4892
+ </dl>
4893
+
4894
+ #### ⚙️ Parameters
4895
+
4896
+ <dl>
4897
+ <dd>
4898
+
4899
+ <dl>
4900
+ <dd>
4901
+
4902
+ **request:** `AthenaIntelligence.CreatePresenceTokenWorkspacesRequest`
4903
+
4904
+ </dd>
4905
+ </dl>
4906
+
4907
+ <dl>
4908
+ <dd>
4909
+
4910
+ **requestOptions:** `WorkspacesClient.RequestOptions`
4911
+
4912
+ </dd>
4913
+ </dl>
4914
+ </dd>
4915
+ </dl>
4916
+
4917
+
4918
+ </dd>
4919
+ </dl>
4920
+ </details>
4921
+
4922
+ <details><summary><code>client.workspaces.<a href="/src/api/resources/workspaces/client/Client.ts">resolvePresence</a>({ ...params }) -> AthenaIntelligence.PresenceResolveResponseOut</code></summary>
4923
+ <dl>
4924
+ <dd>
4925
+
4926
+ #### 📝 Description
4927
+
4928
+ <dl>
4929
+ <dd>
4930
+
4931
+ <dl>
4932
+ <dd>
4933
+
4934
+ Admin only. Resolve the guids a presence feed carries into display titles, asset kinds, and project membership, and optionally list the projects and members of the workspace. Every id is checked against the calling user's own read permission as an ordinary member; anything the caller could not open is omitted rather than reported. Same gates as the presence-token mint.
4935
+ </dd>
4936
+ </dl>
4937
+ </dd>
4938
+ </dl>
4939
+
4940
+ #### 🔌 Usage
4941
+
4942
+ <dl>
4943
+ <dd>
4944
+
4945
+ <dl>
4946
+ <dd>
4947
+
4948
+ ```typescript
4949
+ await client.workspaces.resolvePresence({
4950
+ workspace_id: "workspace_9ec609ea-ee1a-48b6-9e61-d73d9dfbb651",
4951
+ asset_ids: ["asset_1f9b6b2e-4c1d-4a0a-9c1e-2b7d1a0f3c44"],
4952
+ include_members: true,
4953
+ include_projects: true,
4954
+ project_ids: ["asset_7c2d1e0f-3a4b-4c5d-8e6f-1a2b3c4d5e6f"],
4955
+ session_ids: ["thread_3f0a9c2e-6b1d-4d8e-8a2f-5c7e9b1d2a30"]
4956
+ });
4957
+
4958
+ ```
4959
+ </dd>
4960
+ </dl>
4961
+ </dd>
4962
+ </dl>
4963
+
4964
+ #### ⚙️ Parameters
4965
+
4966
+ <dl>
4967
+ <dd>
4968
+
4969
+ <dl>
4970
+ <dd>
4971
+
4972
+ **request:** `AthenaIntelligence.PresenceResolveRequestIn`
4973
+
4974
+ </dd>
4975
+ </dl>
4976
+
4977
+ <dl>
4978
+ <dd>
4979
+
4980
+ **requestOptions:** `WorkspacesClient.RequestOptions`
4981
+
4982
+ </dd>
4983
+ </dl>
4984
+ </dd>
4985
+ </dl>
4986
+
4987
+
4853
4988
  </dd>
4854
4989
  </dl>
4855
4990
  </details>