@athenaintel/sdk 4.3.2241 → 4.3.2243

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 (48) hide show
  1. package/dist/cjs/BaseClient.js +2 -2
  2. package/dist/cjs/api/resources/assets/client/Client.d.ts +40 -1
  3. package/dist/cjs/api/resources/assets/client/Client.js +179 -1
  4. package/dist/cjs/api/resources/assets/client/requests/ConvertToUserInterfaceAssetsRequest.d.ts +10 -0
  5. package/dist/cjs/api/resources/assets/client/requests/ConvertToUserInterfaceAssetsRequest.js +3 -0
  6. package/dist/cjs/api/resources/assets/client/requests/CreateAssetRequestIn.d.ts +5 -1
  7. package/dist/cjs/api/resources/assets/client/requests/PublishAssetRequestIn.d.ts +15 -0
  8. package/dist/cjs/api/resources/assets/client/requests/PublishAssetRequestIn.js +3 -0
  9. package/dist/cjs/api/resources/assets/client/requests/index.d.ts +2 -0
  10. package/dist/cjs/api/types/ConvertToUserInterfaceResponseOut.d.ts +17 -0
  11. package/dist/cjs/api/types/ConvertToUserInterfaceResponseOut.js +3 -0
  12. package/dist/cjs/api/types/CreatableAssetType.d.ts +2 -0
  13. package/dist/cjs/api/types/CreatableAssetType.js +2 -0
  14. package/dist/cjs/api/types/PublicCollabAgentConfigIn.d.ts +19 -0
  15. package/dist/cjs/api/types/PublicCollabAgentConfigIn.js +3 -0
  16. package/dist/cjs/api/types/PublicSkillConfigIn.d.ts +19 -0
  17. package/dist/cjs/api/types/PublicSkillConfigIn.js +3 -0
  18. package/dist/cjs/api/types/PublishAssetResponseOut.d.ts +13 -0
  19. package/dist/cjs/api/types/PublishAssetResponseOut.js +3 -0
  20. package/dist/cjs/api/types/index.d.ts +4 -0
  21. package/dist/cjs/api/types/index.js +4 -0
  22. package/dist/cjs/version.d.ts +1 -1
  23. package/dist/cjs/version.js +1 -1
  24. package/dist/esm/BaseClient.mjs +2 -2
  25. package/dist/esm/api/resources/assets/client/Client.d.mts +40 -1
  26. package/dist/esm/api/resources/assets/client/Client.mjs +179 -1
  27. package/dist/esm/api/resources/assets/client/requests/ConvertToUserInterfaceAssetsRequest.d.mts +10 -0
  28. package/dist/esm/api/resources/assets/client/requests/ConvertToUserInterfaceAssetsRequest.mjs +2 -0
  29. package/dist/esm/api/resources/assets/client/requests/CreateAssetRequestIn.d.mts +5 -1
  30. package/dist/esm/api/resources/assets/client/requests/PublishAssetRequestIn.d.mts +15 -0
  31. package/dist/esm/api/resources/assets/client/requests/PublishAssetRequestIn.mjs +2 -0
  32. package/dist/esm/api/resources/assets/client/requests/index.d.mts +2 -0
  33. package/dist/esm/api/types/ConvertToUserInterfaceResponseOut.d.mts +17 -0
  34. package/dist/esm/api/types/ConvertToUserInterfaceResponseOut.mjs +2 -0
  35. package/dist/esm/api/types/CreatableAssetType.d.mts +2 -0
  36. package/dist/esm/api/types/CreatableAssetType.mjs +2 -0
  37. package/dist/esm/api/types/PublicCollabAgentConfigIn.d.mts +19 -0
  38. package/dist/esm/api/types/PublicCollabAgentConfigIn.mjs +2 -0
  39. package/dist/esm/api/types/PublicSkillConfigIn.d.mts +19 -0
  40. package/dist/esm/api/types/PublicSkillConfigIn.mjs +2 -0
  41. package/dist/esm/api/types/PublishAssetResponseOut.d.mts +13 -0
  42. package/dist/esm/api/types/PublishAssetResponseOut.mjs +2 -0
  43. package/dist/esm/api/types/index.d.mts +4 -0
  44. package/dist/esm/api/types/index.mjs +4 -0
  45. package/dist/esm/version.d.mts +1 -1
  46. package/dist/esm/version.mjs +1 -1
  47. package/package.json +1 -1
  48. package/reference.md +132 -1
@@ -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.2241",
47
- "User-Agent": "@athenaintel/sdk/4.3.2241",
46
+ "X-Fern-SDK-Version": "4.3.2243",
47
+ "User-Agent": "@athenaintel/sdk/4.3.2243",
48
48
  "X-Fern-Runtime": core.RUNTIME.type,
49
49
  "X-Fern-Runtime-Version": core.RUNTIME.version,
50
50
  "X-Athena-Session-Credential": options === null || options === void 0 ? void 0 : options.sessionCredential,
@@ -50,7 +50,7 @@ export declare class AssetsClient {
50
50
  convertExcelToSheet(request: AthenaIntelligence.ConvertExcelToSheetRequestIn, requestOptions?: AssetsClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.ConvertExcelToSheetResponseOut>;
51
51
  private __convertExcelToSheet;
52
52
  /**
53
- * Create a new asset such as a spreadsheet, document, folder, database, computer, user interface, or generic doc (admin-only) in your workspace with your current permissions. Computer assets return 202 after durable submission, which commits the asset and initialization delivery intent together. Runtime provisioning continues asynchronously. Inspect the returned asset ID for progress instead of repeating creation. Computers accept the same configuration as the Athena UI's creation dialog: template, provider, cpu, memory (GiB), disk (GiB) and env_vars. Sizes must be offered by the environment's computer resource policy, and only admins may pick a size other than the template default (403 otherwise). In capability enforce mode, computer creation requires computer.create and returns 403 when denied.
53
+ * Create a new asset such as a spreadsheet, document, folder, database, computer, user interface, skill, collab agent, or generic doc (admin-only) in your workspace with your current permissions. Computer assets return 202 after durable submission, which commits the asset and initialization delivery intent together. Runtime provisioning continues asynchronously. Inspect the returned asset ID for progress instead of repeating creation. Computers accept the same configuration as the Athena UI's creation dialog: template, provider, cpu, memory (GiB), disk (GiB) and env_vars. Sizes must be offered by the environment's computer resource policy, and only admins may pick a size other than the template default (403 otherwise). In capability enforce mode, computer creation requires computer.create and returns 403 when denied.
54
54
  *
55
55
  * @param {AthenaIntelligence.CreateAssetRequestIn} request
56
56
  * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -254,6 +254,26 @@ export declare class AssetsClient {
254
254
  */
255
255
  createCollabToken(request: AthenaIntelligence.CollabTokenRequest, requestOptions?: AssetsClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.CollabTokenResponse>;
256
256
  private __createCollabToken;
257
+ /**
258
+ * Turn an uploaded HTML file into a user interface (an app) under its own id — the conversion the Athena app's Convert to user interface performs. The asset keeps its id, folder, links and sharing (its title drops the .html extension), and no second asset is created. An uploaded HTML file stays a file until a request like this one asks: nothing converts on its own. The switch is one-way; the original upload stays downloadable from the asset's Versions pane. Requires edit access to the file. Idempotent: an asset that already is a user interface is answered as it is, with converted false. A refused conversion answers with a detail object: code CONVERSION_REFUSED, the reason, and a message saying why.
259
+ *
260
+ * @param {AthenaIntelligence.ConvertToUserInterfaceAssetsRequest} request
261
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
262
+ *
263
+ * @throws {@link AthenaIntelligence.BadRequestError}
264
+ * @throws {@link AthenaIntelligence.ForbiddenError}
265
+ * @throws {@link AthenaIntelligence.NotFoundError}
266
+ * @throws {@link AthenaIntelligence.ConflictError}
267
+ * @throws {@link AthenaIntelligence.UnprocessableEntityError}
268
+ * @throws {@link AthenaIntelligence.ServiceUnavailableError}
269
+ *
270
+ * @example
271
+ * await client.assets.convertToUserInterface({
272
+ * asset_id: "asset_92492920-d118-42d3-95b4-00eccfe0754f"
273
+ * })
274
+ */
275
+ convertToUserInterface(request: AthenaIntelligence.ConvertToUserInterfaceAssetsRequest, requestOptions?: AssetsClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.ConvertToUserInterfaceResponseOut>;
276
+ private __convertToUserInterface;
257
277
  /**
258
278
  * Download an asset's file exactly as Athena stores or serves it — no type coercion, no pagination. Native collaborative assets are converted from live content to their canonical Office format: Athena documents download as .docx, spreadsheets as .xlsx (round-trip faithful — string identifiers, leading zeros, and number formats are preserved), PPTX Studio presentations and Word documents export their live studio content as .pptx/.docx. Uploaded files stream their original bytes. The response sets Content-Disposition with a filename derived from the asset title and media type. With `live_sync=true`, a spreadsheet's .xlsx, a PPTX Studio presentation's .pptx or a Word document's .docx also carries the Athena for Microsoft 365 add-in's link record, so opening it in Excel, PowerPoint or Word with the add-in installed starts syncing it with the asset; other asset types ignore the flag.
259
279
  * @throws {@link AthenaIntelligence.BadRequestError}
@@ -282,6 +302,25 @@ export declare class AssetsClient {
282
302
  */
283
303
  move(request: AthenaIntelligence.MoveAssetRequestIn, requestOptions?: AssetsClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.MoveAssetResponseOut>;
284
304
  private __move;
305
+ /**
306
+ * Publish a skill or collab agent so it is live for everyone who uses it. Omit version_id to snapshot and publish the current draft, or pass an existing version to promote it. Requires edit access to the asset.
307
+ *
308
+ * @param {AthenaIntelligence.PublishAssetRequestIn} request
309
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
310
+ *
311
+ * @throws {@link AthenaIntelligence.BadRequestError}
312
+ * @throws {@link AthenaIntelligence.ForbiddenError}
313
+ * @throws {@link AthenaIntelligence.NotFoundError}
314
+ * @throws {@link AthenaIntelligence.UnprocessableEntityError}
315
+ *
316
+ * @example
317
+ * await client.assets.publish({
318
+ * asset_id: "asset_92492920-d118-42d3-95b4-00eccfe0754f",
319
+ * note: "First release"
320
+ * })
321
+ */
322
+ publish(request: AthenaIntelligence.PublishAssetRequestIn, requestOptions?: AssetsClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.PublishAssetResponseOut>;
323
+ private __publish;
285
324
  /**
286
325
  * Share an asset with specific users by email. Only users who have edit access to the asset can share it. You can share with individual users (granting 'view' or 'edit' permission). Sharing with a user who does not have an account will result in an error for that recipient, but other recipients will still be processed.
287
326
  *
@@ -252,7 +252,7 @@ class AssetsClient {
252
252
  });
253
253
  }
254
254
  /**
255
- * Create a new asset such as a spreadsheet, document, folder, database, computer, user interface, or generic doc (admin-only) in your workspace with your current permissions. Computer assets return 202 after durable submission, which commits the asset and initialization delivery intent together. Runtime provisioning continues asynchronously. Inspect the returned asset ID for progress instead of repeating creation. Computers accept the same configuration as the Athena UI's creation dialog: template, provider, cpu, memory (GiB), disk (GiB) and env_vars. Sizes must be offered by the environment's computer resource policy, and only admins may pick a size other than the template default (403 otherwise). In capability enforce mode, computer creation requires computer.create and returns 403 when denied.
255
+ * Create a new asset such as a spreadsheet, document, folder, database, computer, user interface, skill, collab agent, or generic doc (admin-only) in your workspace with your current permissions. Computer assets return 202 after durable submission, which commits the asset and initialization delivery intent together. Runtime provisioning continues asynchronously. Inspect the returned asset ID for progress instead of repeating creation. Computers accept the same configuration as the Athena UI's creation dialog: template, provider, cpu, memory (GiB), disk (GiB) and env_vars. Sizes must be offered by the environment's computer resource policy, and only admins may pick a size other than the template default (403 otherwise). In capability enforce mode, computer creation requires computer.create and returns 403 when denied.
256
256
  *
257
257
  * @param {AthenaIntelligence.CreateAssetRequestIn} request
258
258
  * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -1138,6 +1138,96 @@ class AssetsClient {
1138
1138
  }
1139
1139
  });
1140
1140
  }
1141
+ /**
1142
+ * Turn an uploaded HTML file into a user interface (an app) under its own id — the conversion the Athena app's Convert to user interface performs. The asset keeps its id, folder, links and sharing (its title drops the .html extension), and no second asset is created. An uploaded HTML file stays a file until a request like this one asks: nothing converts on its own. The switch is one-way; the original upload stays downloadable from the asset's Versions pane. Requires edit access to the file. Idempotent: an asset that already is a user interface is answered as it is, with converted false. A refused conversion answers with a detail object: code CONVERSION_REFUSED, the reason, and a message saying why.
1143
+ *
1144
+ * @param {AthenaIntelligence.ConvertToUserInterfaceAssetsRequest} request
1145
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
1146
+ *
1147
+ * @throws {@link AthenaIntelligence.BadRequestError}
1148
+ * @throws {@link AthenaIntelligence.ForbiddenError}
1149
+ * @throws {@link AthenaIntelligence.NotFoundError}
1150
+ * @throws {@link AthenaIntelligence.ConflictError}
1151
+ * @throws {@link AthenaIntelligence.UnprocessableEntityError}
1152
+ * @throws {@link AthenaIntelligence.ServiceUnavailableError}
1153
+ *
1154
+ * @example
1155
+ * await client.assets.convertToUserInterface({
1156
+ * asset_id: "asset_92492920-d118-42d3-95b4-00eccfe0754f"
1157
+ * })
1158
+ */
1159
+ convertToUserInterface(request, requestOptions) {
1160
+ return core.HttpResponsePromise.fromPromise(this.__convertToUserInterface(request, requestOptions));
1161
+ }
1162
+ __convertToUserInterface(request, requestOptions) {
1163
+ return __awaiter(this, void 0, void 0, function* () {
1164
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
1165
+ const { asset_id: assetId } = request;
1166
+ const _authRequest = yield this._options.authProvider.getAuthRequest();
1167
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, (0, headers_js_1.mergeOnlyDefinedHeaders)({
1168
+ "X-Athena-Session-Credential": (_b = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.sessionCredential) !== null && _b !== void 0 ? _b : (_c = this._options) === null || _c === void 0 ? void 0 : _c.sessionCredential,
1169
+ }), requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
1170
+ const _response = yield ((_d = this._options.fetcher) !== null && _d !== void 0 ? _d : core.fetcher)({
1171
+ url: core.url.join((_f = (_e = (yield core.Supplier.get(this._options.baseUrl))) !== null && _e !== void 0 ? _e : (yield core.Supplier.get(this._options.environment))) !== null && _f !== void 0 ? _f : environments.AthenaIntelligenceEnvironment.Production, `api/v0/assets/${core.url.encodePathParam(assetId)}/convert-to-user-interface`),
1172
+ method: "POST",
1173
+ headers: _headers,
1174
+ queryParameters: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams,
1175
+ timeoutMs: ((_j = (_g = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _g !== void 0 ? _g : (_h = this._options) === null || _h === void 0 ? void 0 : _h.timeoutInSeconds) !== null && _j !== void 0 ? _j : 60) * 1000,
1176
+ maxRetries: (_k = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _k !== void 0 ? _k : (_l = this._options) === null || _l === void 0 ? void 0 : _l.maxRetries,
1177
+ abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
1178
+ fetchFn: (_m = this._options) === null || _m === void 0 ? void 0 : _m.fetch,
1179
+ logging: this._options.logging,
1180
+ });
1181
+ if (_response.ok) {
1182
+ return {
1183
+ data: _response.body,
1184
+ rawResponse: _response.rawResponse,
1185
+ };
1186
+ }
1187
+ if (_response.error.reason === "status-code") {
1188
+ switch (_response.error.statusCode) {
1189
+ case 400:
1190
+ throw new AthenaIntelligence.BadRequestError(_response.error.body, _response.rawResponse);
1191
+ case 403:
1192
+ throw new AthenaIntelligence.ForbiddenError(_response.error.body, _response.rawResponse);
1193
+ case 404:
1194
+ throw new AthenaIntelligence.NotFoundError(_response.error.body, _response.rawResponse);
1195
+ case 409:
1196
+ throw new AthenaIntelligence.ConflictError(_response.error.body, _response.rawResponse);
1197
+ case 422:
1198
+ throw new AthenaIntelligence.UnprocessableEntityError(_response.error.body, _response.rawResponse);
1199
+ case 503:
1200
+ throw new AthenaIntelligence.ServiceUnavailableError(_response.error.body, _response.rawResponse);
1201
+ default:
1202
+ throw new errors.AthenaIntelligenceError({
1203
+ statusCode: _response.error.statusCode,
1204
+ body: _response.error.body,
1205
+ rawResponse: _response.rawResponse,
1206
+ });
1207
+ }
1208
+ }
1209
+ switch (_response.error.reason) {
1210
+ case "non-json":
1211
+ throw new errors.AthenaIntelligenceError({
1212
+ statusCode: _response.error.statusCode,
1213
+ body: _response.error.rawBody,
1214
+ rawResponse: _response.rawResponse,
1215
+ });
1216
+ case "body-is-null":
1217
+ throw new errors.AthenaIntelligenceError({
1218
+ statusCode: _response.error.statusCode,
1219
+ rawResponse: _response.rawResponse,
1220
+ });
1221
+ case "timeout":
1222
+ throw new errors.AthenaIntelligenceTimeoutError("Timeout exceeded when calling POST /api/v0/assets/{asset_id}/convert-to-user-interface.");
1223
+ case "unknown":
1224
+ throw new errors.AthenaIntelligenceError({
1225
+ message: _response.error.errorMessage,
1226
+ rawResponse: _response.rawResponse,
1227
+ });
1228
+ }
1229
+ });
1230
+ }
1141
1231
  /**
1142
1232
  * Download an asset's file exactly as Athena stores or serves it — no type coercion, no pagination. Native collaborative assets are converted from live content to their canonical Office format: Athena documents download as .docx, spreadsheets as .xlsx (round-trip faithful — string identifiers, leading zeros, and number formats are preserved), PPTX Studio presentations and Word documents export their live studio content as .pptx/.docx. Uploaded files stream their original bytes. The response sets Content-Disposition with a filename derived from the asset title and media type. With `live_sync=true`, a spreadsheet's .xlsx, a PPTX Studio presentation's .pptx or a Word document's .docx also carries the Athena for Microsoft 365 add-in's link record, so opening it in Excel, PowerPoint or Word with the add-in installed starts syncing it with the asset; other asset types ignore the flag.
1143
1233
  * @throws {@link AthenaIntelligence.BadRequestError}
@@ -1306,6 +1396,94 @@ class AssetsClient {
1306
1396
  }
1307
1397
  });
1308
1398
  }
1399
+ /**
1400
+ * Publish a skill or collab agent so it is live for everyone who uses it. Omit version_id to snapshot and publish the current draft, or pass an existing version to promote it. Requires edit access to the asset.
1401
+ *
1402
+ * @param {AthenaIntelligence.PublishAssetRequestIn} request
1403
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
1404
+ *
1405
+ * @throws {@link AthenaIntelligence.BadRequestError}
1406
+ * @throws {@link AthenaIntelligence.ForbiddenError}
1407
+ * @throws {@link AthenaIntelligence.NotFoundError}
1408
+ * @throws {@link AthenaIntelligence.UnprocessableEntityError}
1409
+ *
1410
+ * @example
1411
+ * await client.assets.publish({
1412
+ * asset_id: "asset_92492920-d118-42d3-95b4-00eccfe0754f",
1413
+ * note: "First release"
1414
+ * })
1415
+ */
1416
+ publish(request, requestOptions) {
1417
+ return core.HttpResponsePromise.fromPromise(this.__publish(request, requestOptions));
1418
+ }
1419
+ __publish(request, requestOptions) {
1420
+ return __awaiter(this, void 0, void 0, function* () {
1421
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
1422
+ const { asset_id: assetId } = request, _body = __rest(request, ["asset_id"]);
1423
+ const _authRequest = yield this._options.authProvider.getAuthRequest();
1424
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, (0, headers_js_1.mergeOnlyDefinedHeaders)({
1425
+ "X-Athena-Session-Credential": (_b = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.sessionCredential) !== null && _b !== void 0 ? _b : (_c = this._options) === null || _c === void 0 ? void 0 : _c.sessionCredential,
1426
+ }), requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
1427
+ const _response = yield ((_d = this._options.fetcher) !== null && _d !== void 0 ? _d : core.fetcher)({
1428
+ url: core.url.join((_f = (_e = (yield core.Supplier.get(this._options.baseUrl))) !== null && _e !== void 0 ? _e : (yield core.Supplier.get(this._options.environment))) !== null && _f !== void 0 ? _f : environments.AthenaIntelligenceEnvironment.Production, `api/v0/assets/${core.url.encodePathParam(assetId)}/publish`),
1429
+ method: "POST",
1430
+ headers: _headers,
1431
+ contentType: "application/json",
1432
+ queryParameters: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams,
1433
+ requestType: "json",
1434
+ body: _body,
1435
+ timeoutMs: ((_j = (_g = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _g !== void 0 ? _g : (_h = this._options) === null || _h === void 0 ? void 0 : _h.timeoutInSeconds) !== null && _j !== void 0 ? _j : 60) * 1000,
1436
+ maxRetries: (_k = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _k !== void 0 ? _k : (_l = this._options) === null || _l === void 0 ? void 0 : _l.maxRetries,
1437
+ abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
1438
+ fetchFn: (_m = this._options) === null || _m === void 0 ? void 0 : _m.fetch,
1439
+ logging: this._options.logging,
1440
+ });
1441
+ if (_response.ok) {
1442
+ return {
1443
+ data: _response.body,
1444
+ rawResponse: _response.rawResponse,
1445
+ };
1446
+ }
1447
+ if (_response.error.reason === "status-code") {
1448
+ switch (_response.error.statusCode) {
1449
+ case 400:
1450
+ throw new AthenaIntelligence.BadRequestError(_response.error.body, _response.rawResponse);
1451
+ case 403:
1452
+ throw new AthenaIntelligence.ForbiddenError(_response.error.body, _response.rawResponse);
1453
+ case 404:
1454
+ throw new AthenaIntelligence.NotFoundError(_response.error.body, _response.rawResponse);
1455
+ case 422:
1456
+ throw new AthenaIntelligence.UnprocessableEntityError(_response.error.body, _response.rawResponse);
1457
+ default:
1458
+ throw new errors.AthenaIntelligenceError({
1459
+ statusCode: _response.error.statusCode,
1460
+ body: _response.error.body,
1461
+ rawResponse: _response.rawResponse,
1462
+ });
1463
+ }
1464
+ }
1465
+ switch (_response.error.reason) {
1466
+ case "non-json":
1467
+ throw new errors.AthenaIntelligenceError({
1468
+ statusCode: _response.error.statusCode,
1469
+ body: _response.error.rawBody,
1470
+ rawResponse: _response.rawResponse,
1471
+ });
1472
+ case "body-is-null":
1473
+ throw new errors.AthenaIntelligenceError({
1474
+ statusCode: _response.error.statusCode,
1475
+ rawResponse: _response.rawResponse,
1476
+ });
1477
+ case "timeout":
1478
+ throw new errors.AthenaIntelligenceTimeoutError("Timeout exceeded when calling POST /api/v0/assets/{asset_id}/publish.");
1479
+ case "unknown":
1480
+ throw new errors.AthenaIntelligenceError({
1481
+ message: _response.error.errorMessage,
1482
+ rawResponse: _response.rawResponse,
1483
+ });
1484
+ }
1485
+ });
1486
+ }
1309
1487
  /**
1310
1488
  * Share an asset with specific users by email. Only users who have edit access to the asset can share it. You can share with individual users (granting 'view' or 'edit' permission). Sharing with a user who does not have an account will result in an error for that recipient, but other recipients will still be processed.
1311
1489
  *
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @example
3
+ * {
4
+ * asset_id: "asset_92492920-d118-42d3-95b4-00eccfe0754f"
5
+ * }
6
+ */
7
+ export interface ConvertToUserInterfaceAssetsRequest {
8
+ /** ID of the uploaded HTML file to turn into a user interface */
9
+ asset_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 });
@@ -8,7 +8,9 @@ import type * as AthenaIntelligence from "../../../../index.js";
8
8
  * }
9
9
  */
10
10
  export interface CreateAssetRequestIn {
11
- /** Type of asset to create. Supported types: 'spreadsheet' (or 'sheet'), 'document' (or 'doc'), 'folder', 'database' (or 'db'), 'computer', 'generic_doc', 'user_interface' (or 'ui') */
11
+ /** collab_agent only. Initial agent configuration. Created as a draft; publish it with POST /api/v0/assets/{asset_id}/publish. */
12
+ agent_config?: AthenaIntelligence.PublicCollabAgentConfigIn | null;
13
+ /** Type of asset to create. Supported types: 'spreadsheet' (or 'sheet'), 'document' (or 'doc'), 'folder', 'database' (or 'db'), 'computer', 'generic_doc', 'user_interface' (or 'ui'), 'skill', 'collab_agent' (or 'agent') */
12
14
  asset_type: AthenaIntelligence.CreatableAssetType;
13
15
  /** Computer only. vCPU count. Defaults to the template's default. Must be a size the environment's computer resource policy offers; sizes other than the template default require an admin. */
14
16
  cpu?: number | null;
@@ -24,6 +26,8 @@ export interface CreateAssetRequestIn {
24
26
  parent_folder_id?: string | null;
25
27
  /** Computer only. Runtime provider for the computer (e.g. 'talos_v2'). Defaults to the environment's configured computer provider. */
26
28
  provider?: string | null;
29
+ /** skill only. The skill's SKILL.md content. Created as a draft; publish it with POST /api/v0/assets/{asset_id}/publish. */
30
+ skill_config?: AthenaIntelligence.PublicSkillConfigIn | null;
27
31
  /** Computer only. Template key to create the computer from, as picked in the Athena UI's computer creation dialog (e.g. 'default'), or an 'environment:<asset_id>' reference to a saved environment. Defaults to the default template. Also accepted as 'snapshot'. */
28
32
  template?: string | null;
29
33
  /** Title for the new asset */
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @example
3
+ * {
4
+ * asset_id: "asset_92492920-d118-42d3-95b4-00eccfe0754f",
5
+ * note: "First release"
6
+ * }
7
+ */
8
+ export interface PublishAssetRequestIn {
9
+ /** ID of the skill or collab agent to publish */
10
+ asset_id: string;
11
+ /** Optional release note shown in the publish history */
12
+ note?: string | null;
13
+ /** Existing version to promote to published. Omit to snapshot and publish the current draft. */
14
+ version_id?: string | null;
15
+ }
@@ -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 });
@@ -2,6 +2,7 @@ export type { ArchiveAssetsRequest } from "./ArchiveAssetsRequest.js";
2
2
  export type { AssetActivityDeltaBatchRequestIn } from "./AssetActivityDeltaBatchRequestIn.js";
3
3
  export type { CollabTokenRequest } from "./CollabTokenRequest.js";
4
4
  export type { ConvertExcelToSheetRequestIn } from "./ConvertExcelToSheetRequestIn.js";
5
+ export type { ConvertToUserInterfaceAssetsRequest } from "./ConvertToUserInterfaceAssetsRequest.js";
5
6
  export type { CreateAssetRequestIn } from "./CreateAssetRequestIn.js";
6
7
  export type { CreateProjectRequestIn } from "./CreateProjectRequestIn.js";
7
8
  export type { DownloadAssetsRequest } from "./DownloadAssetsRequest.js";
@@ -11,6 +12,7 @@ export type { GetAssetsRequest } from "./GetAssetsRequest.js";
11
12
  export type { ListActivityAssetsRequest } from "./ListActivityAssetsRequest.js";
12
13
  export type { ListAssetsRequest } from "./ListAssetsRequest.js";
13
14
  export type { MoveAssetRequestIn } from "./MoveAssetRequestIn.js";
15
+ export type { PublishAssetRequestIn } from "./PublishAssetRequestIn.js";
14
16
  export type { RenameAssetRequestIn } from "./RenameAssetRequestIn.js";
15
17
  export type { ShareAssetRequestIn } from "./ShareAssetRequestIn.js";
16
18
  export type { UpdateWorkspaceAccessRequestIn } from "./UpdateWorkspaceAccessRequestIn.js";
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Response model for turning an uploaded HTML file into a user interface.
3
+ */
4
+ export interface ConvertToUserInterfaceResponseOut {
5
+ /** ID of the user interface: the HTML file's own id, which it keeps (no second asset is created) */
6
+ asset_id: string;
7
+ /** Type of the asset after the request: user_interface */
8
+ asset_type: string;
9
+ /** True when this request converted the file; false when the asset already was a user interface, in which case nothing changed */
10
+ converted: boolean;
11
+ /** ID of the asset's parent folder, which the conversion keeps */
12
+ parent_folder_id?: string | null;
13
+ /** Title of the user interface */
14
+ title: string;
15
+ /** ID of the workspace that owns the asset */
16
+ workspace_id?: string | null;
17
+ }
@@ -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 });
@@ -7,5 +7,7 @@ export declare const CreatableAssetType: {
7
7
  readonly Computer: "computer";
8
8
  readonly GenericDoc: "generic_doc";
9
9
  readonly UserInterface: "user_interface";
10
+ readonly Skill: "skill";
11
+ readonly CollabAgent: "collab_agent";
10
12
  };
11
13
  export type CreatableAssetType = (typeof CreatableAssetType)[keyof typeof CreatableAssetType];
@@ -11,4 +11,6 @@ exports.CreatableAssetType = {
11
11
  Computer: "computer",
12
12
  GenericDoc: "generic_doc",
13
13
  UserInterface: "user_interface",
14
+ Skill: "skill",
15
+ CollabAgent: "collab_agent",
14
16
  };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Initial configuration for a collab agent created via the public API.
3
+ */
4
+ export interface PublicCollabAgentConfigIn {
5
+ /** What the agent does */
6
+ description?: string | null;
7
+ /** Model ID the agent runs on */
8
+ model?: string | null;
9
+ /** Agent name; also the asset title when title is omitted. */
10
+ name?: string | null;
11
+ /** Knowledge source references: native source IDs, or collab_source:<asset_id> to give the agent an asset as knowledge (e.g. collab_source:asset_123). Unrecognized entries are ignored. */
12
+ sources?: string[] | null;
13
+ /** Instructions the agent follows */
14
+ system_prompt?: string | null;
15
+ /** Toolkit IDs the agent can use */
16
+ toolkits?: string[] | null;
17
+ /** Tool IDs the agent can use */
18
+ tools?: string[] | null;
19
+ }
@@ -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,19 @@
1
+ /**
2
+ * SKILL.md content for a skill created via the public API.
3
+ */
4
+ export interface PublicSkillConfigIn {
5
+ /** Space-separated list of pre-approved tools (experimental) */
6
+ allowed_tools?: string | null;
7
+ /** The markdown instructions below the SKILL.md frontmatter */
8
+ body_markdown?: string;
9
+ /** Environment requirements (max 500 chars) */
10
+ compatibility?: string | null;
11
+ /** What the skill does and when to use it (max 1024 chars) */
12
+ description?: string;
13
+ /** License name or reference */
14
+ license?: string | null;
15
+ /** Additional string metadata */
16
+ metadata?: Record<string, string | null> | null;
17
+ /** Skill name slug (lowercase letters, numbers, single hyphens; max 64 chars). Defaults to a slug of the asset title. */
18
+ name?: string;
19
+ }
@@ -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,13 @@
1
+ /**
2
+ * Response model for publishing a skill or collab agent.
3
+ */
4
+ export interface PublishAssetResponseOut {
5
+ /** ID of the published asset */
6
+ asset_id: string;
7
+ /** Type of the published asset */
8
+ asset_type: string;
9
+ /** Always true on success */
10
+ published: boolean;
11
+ /** Title of the published asset */
12
+ title: string;
13
+ }
@@ -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 });
@@ -45,6 +45,7 @@ export * from "./ConversationAssetInfo.js";
45
45
  export * from "./ConversationMessage.js";
46
46
  export * from "./ConversationResult.js";
47
47
  export * from "./ConvertExcelToSheetResponseOut.js";
48
+ export * from "./ConvertToUserInterfaceResponseOut.js";
48
49
  export * from "./CreatableAssetType.js";
49
50
  export * from "./CreateAssetResponseOut.js";
50
51
  export * from "./CreateNewSheetTabResponse.js";
@@ -106,6 +107,9 @@ export * from "./PresenceSessionOut.js";
106
107
  export * from "./PresenceTokenResponseOut.js";
107
108
  export * from "./PromptMessage.js";
108
109
  export * from "./PublicAssetOut.js";
110
+ export * from "./PublicCollabAgentConfigIn.js";
111
+ export * from "./PublicSkillConfigIn.js";
112
+ export * from "./PublishAssetResponseOut.js";
109
113
  export * from "./ReadCapabilitiesOut.js";
110
114
  export * from "./RedactedThinkingContent.js";
111
115
  export * from "./RenameAssetResponseOut.js";
@@ -61,6 +61,7 @@ __exportStar(require("./ConversationAssetInfo.js"), exports);
61
61
  __exportStar(require("./ConversationMessage.js"), exports);
62
62
  __exportStar(require("./ConversationResult.js"), exports);
63
63
  __exportStar(require("./ConvertExcelToSheetResponseOut.js"), exports);
64
+ __exportStar(require("./ConvertToUserInterfaceResponseOut.js"), exports);
64
65
  __exportStar(require("./CreatableAssetType.js"), exports);
65
66
  __exportStar(require("./CreateAssetResponseOut.js"), exports);
66
67
  __exportStar(require("./CreateNewSheetTabResponse.js"), exports);
@@ -122,6 +123,9 @@ __exportStar(require("./PresenceSessionOut.js"), exports);
122
123
  __exportStar(require("./PresenceTokenResponseOut.js"), exports);
123
124
  __exportStar(require("./PromptMessage.js"), exports);
124
125
  __exportStar(require("./PublicAssetOut.js"), exports);
126
+ __exportStar(require("./PublicCollabAgentConfigIn.js"), exports);
127
+ __exportStar(require("./PublicSkillConfigIn.js"), exports);
128
+ __exportStar(require("./PublishAssetResponseOut.js"), exports);
125
129
  __exportStar(require("./ReadCapabilitiesOut.js"), exports);
126
130
  __exportStar(require("./RedactedThinkingContent.js"), exports);
127
131
  __exportStar(require("./RenameAssetResponseOut.js"), exports);
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "4.3.2241";
1
+ export declare const SDK_VERSION = "4.3.2243";
@@ -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.2241";
4
+ exports.SDK_VERSION = "4.3.2243";
@@ -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.2241",
10
- "User-Agent": "@athenaintel/sdk/4.3.2241",
9
+ "X-Fern-SDK-Version": "4.3.2243",
10
+ "User-Agent": "@athenaintel/sdk/4.3.2243",
11
11
  "X-Fern-Runtime": core.RUNTIME.type,
12
12
  "X-Fern-Runtime-Version": core.RUNTIME.version,
13
13
  "X-Athena-Session-Credential": options === null || options === void 0 ? void 0 : options.sessionCredential,
@@ -50,7 +50,7 @@ export declare class AssetsClient {
50
50
  convertExcelToSheet(request: AthenaIntelligence.ConvertExcelToSheetRequestIn, requestOptions?: AssetsClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.ConvertExcelToSheetResponseOut>;
51
51
  private __convertExcelToSheet;
52
52
  /**
53
- * Create a new asset such as a spreadsheet, document, folder, database, computer, user interface, or generic doc (admin-only) in your workspace with your current permissions. Computer assets return 202 after durable submission, which commits the asset and initialization delivery intent together. Runtime provisioning continues asynchronously. Inspect the returned asset ID for progress instead of repeating creation. Computers accept the same configuration as the Athena UI's creation dialog: template, provider, cpu, memory (GiB), disk (GiB) and env_vars. Sizes must be offered by the environment's computer resource policy, and only admins may pick a size other than the template default (403 otherwise). In capability enforce mode, computer creation requires computer.create and returns 403 when denied.
53
+ * Create a new asset such as a spreadsheet, document, folder, database, computer, user interface, skill, collab agent, or generic doc (admin-only) in your workspace with your current permissions. Computer assets return 202 after durable submission, which commits the asset and initialization delivery intent together. Runtime provisioning continues asynchronously. Inspect the returned asset ID for progress instead of repeating creation. Computers accept the same configuration as the Athena UI's creation dialog: template, provider, cpu, memory (GiB), disk (GiB) and env_vars. Sizes must be offered by the environment's computer resource policy, and only admins may pick a size other than the template default (403 otherwise). In capability enforce mode, computer creation requires computer.create and returns 403 when denied.
54
54
  *
55
55
  * @param {AthenaIntelligence.CreateAssetRequestIn} request
56
56
  * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -254,6 +254,26 @@ export declare class AssetsClient {
254
254
  */
255
255
  createCollabToken(request: AthenaIntelligence.CollabTokenRequest, requestOptions?: AssetsClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.CollabTokenResponse>;
256
256
  private __createCollabToken;
257
+ /**
258
+ * Turn an uploaded HTML file into a user interface (an app) under its own id — the conversion the Athena app's Convert to user interface performs. The asset keeps its id, folder, links and sharing (its title drops the .html extension), and no second asset is created. An uploaded HTML file stays a file until a request like this one asks: nothing converts on its own. The switch is one-way; the original upload stays downloadable from the asset's Versions pane. Requires edit access to the file. Idempotent: an asset that already is a user interface is answered as it is, with converted false. A refused conversion answers with a detail object: code CONVERSION_REFUSED, the reason, and a message saying why.
259
+ *
260
+ * @param {AthenaIntelligence.ConvertToUserInterfaceAssetsRequest} request
261
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
262
+ *
263
+ * @throws {@link AthenaIntelligence.BadRequestError}
264
+ * @throws {@link AthenaIntelligence.ForbiddenError}
265
+ * @throws {@link AthenaIntelligence.NotFoundError}
266
+ * @throws {@link AthenaIntelligence.ConflictError}
267
+ * @throws {@link AthenaIntelligence.UnprocessableEntityError}
268
+ * @throws {@link AthenaIntelligence.ServiceUnavailableError}
269
+ *
270
+ * @example
271
+ * await client.assets.convertToUserInterface({
272
+ * asset_id: "asset_92492920-d118-42d3-95b4-00eccfe0754f"
273
+ * })
274
+ */
275
+ convertToUserInterface(request: AthenaIntelligence.ConvertToUserInterfaceAssetsRequest, requestOptions?: AssetsClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.ConvertToUserInterfaceResponseOut>;
276
+ private __convertToUserInterface;
257
277
  /**
258
278
  * Download an asset's file exactly as Athena stores or serves it — no type coercion, no pagination. Native collaborative assets are converted from live content to their canonical Office format: Athena documents download as .docx, spreadsheets as .xlsx (round-trip faithful — string identifiers, leading zeros, and number formats are preserved), PPTX Studio presentations and Word documents export their live studio content as .pptx/.docx. Uploaded files stream their original bytes. The response sets Content-Disposition with a filename derived from the asset title and media type. With `live_sync=true`, a spreadsheet's .xlsx, a PPTX Studio presentation's .pptx or a Word document's .docx also carries the Athena for Microsoft 365 add-in's link record, so opening it in Excel, PowerPoint or Word with the add-in installed starts syncing it with the asset; other asset types ignore the flag.
259
279
  * @throws {@link AthenaIntelligence.BadRequestError}
@@ -282,6 +302,25 @@ export declare class AssetsClient {
282
302
  */
283
303
  move(request: AthenaIntelligence.MoveAssetRequestIn, requestOptions?: AssetsClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.MoveAssetResponseOut>;
284
304
  private __move;
305
+ /**
306
+ * Publish a skill or collab agent so it is live for everyone who uses it. Omit version_id to snapshot and publish the current draft, or pass an existing version to promote it. Requires edit access to the asset.
307
+ *
308
+ * @param {AthenaIntelligence.PublishAssetRequestIn} request
309
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
310
+ *
311
+ * @throws {@link AthenaIntelligence.BadRequestError}
312
+ * @throws {@link AthenaIntelligence.ForbiddenError}
313
+ * @throws {@link AthenaIntelligence.NotFoundError}
314
+ * @throws {@link AthenaIntelligence.UnprocessableEntityError}
315
+ *
316
+ * @example
317
+ * await client.assets.publish({
318
+ * asset_id: "asset_92492920-d118-42d3-95b4-00eccfe0754f",
319
+ * note: "First release"
320
+ * })
321
+ */
322
+ publish(request: AthenaIntelligence.PublishAssetRequestIn, requestOptions?: AssetsClient.RequestOptions): core.HttpResponsePromise<AthenaIntelligence.PublishAssetResponseOut>;
323
+ private __publish;
285
324
  /**
286
325
  * Share an asset with specific users by email. Only users who have edit access to the asset can share it. You can share with individual users (granting 'view' or 'edit' permission). Sharing with a user who does not have an account will result in an error for that recipient, but other recipients will still be processed.
287
326
  *
@@ -216,7 +216,7 @@ export class AssetsClient {
216
216
  });
217
217
  }
218
218
  /**
219
- * Create a new asset such as a spreadsheet, document, folder, database, computer, user interface, or generic doc (admin-only) in your workspace with your current permissions. Computer assets return 202 after durable submission, which commits the asset and initialization delivery intent together. Runtime provisioning continues asynchronously. Inspect the returned asset ID for progress instead of repeating creation. Computers accept the same configuration as the Athena UI's creation dialog: template, provider, cpu, memory (GiB), disk (GiB) and env_vars. Sizes must be offered by the environment's computer resource policy, and only admins may pick a size other than the template default (403 otherwise). In capability enforce mode, computer creation requires computer.create and returns 403 when denied.
219
+ * Create a new asset such as a spreadsheet, document, folder, database, computer, user interface, skill, collab agent, or generic doc (admin-only) in your workspace with your current permissions. Computer assets return 202 after durable submission, which commits the asset and initialization delivery intent together. Runtime provisioning continues asynchronously. Inspect the returned asset ID for progress instead of repeating creation. Computers accept the same configuration as the Athena UI's creation dialog: template, provider, cpu, memory (GiB), disk (GiB) and env_vars. Sizes must be offered by the environment's computer resource policy, and only admins may pick a size other than the template default (403 otherwise). In capability enforce mode, computer creation requires computer.create and returns 403 when denied.
220
220
  *
221
221
  * @param {AthenaIntelligence.CreateAssetRequestIn} request
222
222
  * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -1102,6 +1102,96 @@ export class AssetsClient {
1102
1102
  }
1103
1103
  });
1104
1104
  }
1105
+ /**
1106
+ * Turn an uploaded HTML file into a user interface (an app) under its own id — the conversion the Athena app's Convert to user interface performs. The asset keeps its id, folder, links and sharing (its title drops the .html extension), and no second asset is created. An uploaded HTML file stays a file until a request like this one asks: nothing converts on its own. The switch is one-way; the original upload stays downloadable from the asset's Versions pane. Requires edit access to the file. Idempotent: an asset that already is a user interface is answered as it is, with converted false. A refused conversion answers with a detail object: code CONVERSION_REFUSED, the reason, and a message saying why.
1107
+ *
1108
+ * @param {AthenaIntelligence.ConvertToUserInterfaceAssetsRequest} request
1109
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
1110
+ *
1111
+ * @throws {@link AthenaIntelligence.BadRequestError}
1112
+ * @throws {@link AthenaIntelligence.ForbiddenError}
1113
+ * @throws {@link AthenaIntelligence.NotFoundError}
1114
+ * @throws {@link AthenaIntelligence.ConflictError}
1115
+ * @throws {@link AthenaIntelligence.UnprocessableEntityError}
1116
+ * @throws {@link AthenaIntelligence.ServiceUnavailableError}
1117
+ *
1118
+ * @example
1119
+ * await client.assets.convertToUserInterface({
1120
+ * asset_id: "asset_92492920-d118-42d3-95b4-00eccfe0754f"
1121
+ * })
1122
+ */
1123
+ convertToUserInterface(request, requestOptions) {
1124
+ return core.HttpResponsePromise.fromPromise(this.__convertToUserInterface(request, requestOptions));
1125
+ }
1126
+ __convertToUserInterface(request, requestOptions) {
1127
+ return __awaiter(this, void 0, void 0, function* () {
1128
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
1129
+ const { asset_id: assetId } = request;
1130
+ const _authRequest = yield this._options.authProvider.getAuthRequest();
1131
+ const _headers = mergeHeaders(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, mergeOnlyDefinedHeaders({
1132
+ "X-Athena-Session-Credential": (_b = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.sessionCredential) !== null && _b !== void 0 ? _b : (_c = this._options) === null || _c === void 0 ? void 0 : _c.sessionCredential,
1133
+ }), requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
1134
+ const _response = yield ((_d = this._options.fetcher) !== null && _d !== void 0 ? _d : core.fetcher)({
1135
+ url: core.url.join((_f = (_e = (yield core.Supplier.get(this._options.baseUrl))) !== null && _e !== void 0 ? _e : (yield core.Supplier.get(this._options.environment))) !== null && _f !== void 0 ? _f : environments.AthenaIntelligenceEnvironment.Production, `api/v0/assets/${core.url.encodePathParam(assetId)}/convert-to-user-interface`),
1136
+ method: "POST",
1137
+ headers: _headers,
1138
+ queryParameters: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams,
1139
+ timeoutMs: ((_j = (_g = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _g !== void 0 ? _g : (_h = this._options) === null || _h === void 0 ? void 0 : _h.timeoutInSeconds) !== null && _j !== void 0 ? _j : 60) * 1000,
1140
+ maxRetries: (_k = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _k !== void 0 ? _k : (_l = this._options) === null || _l === void 0 ? void 0 : _l.maxRetries,
1141
+ abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
1142
+ fetchFn: (_m = this._options) === null || _m === void 0 ? void 0 : _m.fetch,
1143
+ logging: this._options.logging,
1144
+ });
1145
+ if (_response.ok) {
1146
+ return {
1147
+ data: _response.body,
1148
+ rawResponse: _response.rawResponse,
1149
+ };
1150
+ }
1151
+ if (_response.error.reason === "status-code") {
1152
+ switch (_response.error.statusCode) {
1153
+ case 400:
1154
+ throw new AthenaIntelligence.BadRequestError(_response.error.body, _response.rawResponse);
1155
+ case 403:
1156
+ throw new AthenaIntelligence.ForbiddenError(_response.error.body, _response.rawResponse);
1157
+ case 404:
1158
+ throw new AthenaIntelligence.NotFoundError(_response.error.body, _response.rawResponse);
1159
+ case 409:
1160
+ throw new AthenaIntelligence.ConflictError(_response.error.body, _response.rawResponse);
1161
+ case 422:
1162
+ throw new AthenaIntelligence.UnprocessableEntityError(_response.error.body, _response.rawResponse);
1163
+ case 503:
1164
+ throw new AthenaIntelligence.ServiceUnavailableError(_response.error.body, _response.rawResponse);
1165
+ default:
1166
+ throw new errors.AthenaIntelligenceError({
1167
+ statusCode: _response.error.statusCode,
1168
+ body: _response.error.body,
1169
+ rawResponse: _response.rawResponse,
1170
+ });
1171
+ }
1172
+ }
1173
+ switch (_response.error.reason) {
1174
+ case "non-json":
1175
+ throw new errors.AthenaIntelligenceError({
1176
+ statusCode: _response.error.statusCode,
1177
+ body: _response.error.rawBody,
1178
+ rawResponse: _response.rawResponse,
1179
+ });
1180
+ case "body-is-null":
1181
+ throw new errors.AthenaIntelligenceError({
1182
+ statusCode: _response.error.statusCode,
1183
+ rawResponse: _response.rawResponse,
1184
+ });
1185
+ case "timeout":
1186
+ throw new errors.AthenaIntelligenceTimeoutError("Timeout exceeded when calling POST /api/v0/assets/{asset_id}/convert-to-user-interface.");
1187
+ case "unknown":
1188
+ throw new errors.AthenaIntelligenceError({
1189
+ message: _response.error.errorMessage,
1190
+ rawResponse: _response.rawResponse,
1191
+ });
1192
+ }
1193
+ });
1194
+ }
1105
1195
  /**
1106
1196
  * Download an asset's file exactly as Athena stores or serves it — no type coercion, no pagination. Native collaborative assets are converted from live content to their canonical Office format: Athena documents download as .docx, spreadsheets as .xlsx (round-trip faithful — string identifiers, leading zeros, and number formats are preserved), PPTX Studio presentations and Word documents export their live studio content as .pptx/.docx. Uploaded files stream their original bytes. The response sets Content-Disposition with a filename derived from the asset title and media type. With `live_sync=true`, a spreadsheet's .xlsx, a PPTX Studio presentation's .pptx or a Word document's .docx also carries the Athena for Microsoft 365 add-in's link record, so opening it in Excel, PowerPoint or Word with the add-in installed starts syncing it with the asset; other asset types ignore the flag.
1107
1197
  * @throws {@link AthenaIntelligence.BadRequestError}
@@ -1270,6 +1360,94 @@ export class AssetsClient {
1270
1360
  }
1271
1361
  });
1272
1362
  }
1363
+ /**
1364
+ * Publish a skill or collab agent so it is live for everyone who uses it. Omit version_id to snapshot and publish the current draft, or pass an existing version to promote it. Requires edit access to the asset.
1365
+ *
1366
+ * @param {AthenaIntelligence.PublishAssetRequestIn} request
1367
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
1368
+ *
1369
+ * @throws {@link AthenaIntelligence.BadRequestError}
1370
+ * @throws {@link AthenaIntelligence.ForbiddenError}
1371
+ * @throws {@link AthenaIntelligence.NotFoundError}
1372
+ * @throws {@link AthenaIntelligence.UnprocessableEntityError}
1373
+ *
1374
+ * @example
1375
+ * await client.assets.publish({
1376
+ * asset_id: "asset_92492920-d118-42d3-95b4-00eccfe0754f",
1377
+ * note: "First release"
1378
+ * })
1379
+ */
1380
+ publish(request, requestOptions) {
1381
+ return core.HttpResponsePromise.fromPromise(this.__publish(request, requestOptions));
1382
+ }
1383
+ __publish(request, requestOptions) {
1384
+ return __awaiter(this, void 0, void 0, function* () {
1385
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
1386
+ const { asset_id: assetId } = request, _body = __rest(request, ["asset_id"]);
1387
+ const _authRequest = yield this._options.authProvider.getAuthRequest();
1388
+ const _headers = mergeHeaders(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, mergeOnlyDefinedHeaders({
1389
+ "X-Athena-Session-Credential": (_b = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.sessionCredential) !== null && _b !== void 0 ? _b : (_c = this._options) === null || _c === void 0 ? void 0 : _c.sessionCredential,
1390
+ }), requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
1391
+ const _response = yield ((_d = this._options.fetcher) !== null && _d !== void 0 ? _d : core.fetcher)({
1392
+ url: core.url.join((_f = (_e = (yield core.Supplier.get(this._options.baseUrl))) !== null && _e !== void 0 ? _e : (yield core.Supplier.get(this._options.environment))) !== null && _f !== void 0 ? _f : environments.AthenaIntelligenceEnvironment.Production, `api/v0/assets/${core.url.encodePathParam(assetId)}/publish`),
1393
+ method: "POST",
1394
+ headers: _headers,
1395
+ contentType: "application/json",
1396
+ queryParameters: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams,
1397
+ requestType: "json",
1398
+ body: _body,
1399
+ timeoutMs: ((_j = (_g = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _g !== void 0 ? _g : (_h = this._options) === null || _h === void 0 ? void 0 : _h.timeoutInSeconds) !== null && _j !== void 0 ? _j : 60) * 1000,
1400
+ maxRetries: (_k = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _k !== void 0 ? _k : (_l = this._options) === null || _l === void 0 ? void 0 : _l.maxRetries,
1401
+ abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
1402
+ fetchFn: (_m = this._options) === null || _m === void 0 ? void 0 : _m.fetch,
1403
+ logging: this._options.logging,
1404
+ });
1405
+ if (_response.ok) {
1406
+ return {
1407
+ data: _response.body,
1408
+ rawResponse: _response.rawResponse,
1409
+ };
1410
+ }
1411
+ if (_response.error.reason === "status-code") {
1412
+ switch (_response.error.statusCode) {
1413
+ case 400:
1414
+ throw new AthenaIntelligence.BadRequestError(_response.error.body, _response.rawResponse);
1415
+ case 403:
1416
+ throw new AthenaIntelligence.ForbiddenError(_response.error.body, _response.rawResponse);
1417
+ case 404:
1418
+ throw new AthenaIntelligence.NotFoundError(_response.error.body, _response.rawResponse);
1419
+ case 422:
1420
+ throw new AthenaIntelligence.UnprocessableEntityError(_response.error.body, _response.rawResponse);
1421
+ default:
1422
+ throw new errors.AthenaIntelligenceError({
1423
+ statusCode: _response.error.statusCode,
1424
+ body: _response.error.body,
1425
+ rawResponse: _response.rawResponse,
1426
+ });
1427
+ }
1428
+ }
1429
+ switch (_response.error.reason) {
1430
+ case "non-json":
1431
+ throw new errors.AthenaIntelligenceError({
1432
+ statusCode: _response.error.statusCode,
1433
+ body: _response.error.rawBody,
1434
+ rawResponse: _response.rawResponse,
1435
+ });
1436
+ case "body-is-null":
1437
+ throw new errors.AthenaIntelligenceError({
1438
+ statusCode: _response.error.statusCode,
1439
+ rawResponse: _response.rawResponse,
1440
+ });
1441
+ case "timeout":
1442
+ throw new errors.AthenaIntelligenceTimeoutError("Timeout exceeded when calling POST /api/v0/assets/{asset_id}/publish.");
1443
+ case "unknown":
1444
+ throw new errors.AthenaIntelligenceError({
1445
+ message: _response.error.errorMessage,
1446
+ rawResponse: _response.rawResponse,
1447
+ });
1448
+ }
1449
+ });
1450
+ }
1273
1451
  /**
1274
1452
  * Share an asset with specific users by email. Only users who have edit access to the asset can share it. You can share with individual users (granting 'view' or 'edit' permission). Sharing with a user who does not have an account will result in an error for that recipient, but other recipients will still be processed.
1275
1453
  *
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @example
3
+ * {
4
+ * asset_id: "asset_92492920-d118-42d3-95b4-00eccfe0754f"
5
+ * }
6
+ */
7
+ export interface ConvertToUserInterfaceAssetsRequest {
8
+ /** ID of the uploaded HTML file to turn into a user interface */
9
+ asset_id: string;
10
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -8,7 +8,9 @@ import type * as AthenaIntelligence from "../../../../index.mjs";
8
8
  * }
9
9
  */
10
10
  export interface CreateAssetRequestIn {
11
- /** Type of asset to create. Supported types: 'spreadsheet' (or 'sheet'), 'document' (or 'doc'), 'folder', 'database' (or 'db'), 'computer', 'generic_doc', 'user_interface' (or 'ui') */
11
+ /** collab_agent only. Initial agent configuration. Created as a draft; publish it with POST /api/v0/assets/{asset_id}/publish. */
12
+ agent_config?: AthenaIntelligence.PublicCollabAgentConfigIn | null;
13
+ /** Type of asset to create. Supported types: 'spreadsheet' (or 'sheet'), 'document' (or 'doc'), 'folder', 'database' (or 'db'), 'computer', 'generic_doc', 'user_interface' (or 'ui'), 'skill', 'collab_agent' (or 'agent') */
12
14
  asset_type: AthenaIntelligence.CreatableAssetType;
13
15
  /** Computer only. vCPU count. Defaults to the template's default. Must be a size the environment's computer resource policy offers; sizes other than the template default require an admin. */
14
16
  cpu?: number | null;
@@ -24,6 +26,8 @@ export interface CreateAssetRequestIn {
24
26
  parent_folder_id?: string | null;
25
27
  /** Computer only. Runtime provider for the computer (e.g. 'talos_v2'). Defaults to the environment's configured computer provider. */
26
28
  provider?: string | null;
29
+ /** skill only. The skill's SKILL.md content. Created as a draft; publish it with POST /api/v0/assets/{asset_id}/publish. */
30
+ skill_config?: AthenaIntelligence.PublicSkillConfigIn | null;
27
31
  /** Computer only. Template key to create the computer from, as picked in the Athena UI's computer creation dialog (e.g. 'default'), or an 'environment:<asset_id>' reference to a saved environment. Defaults to the default template. Also accepted as 'snapshot'. */
28
32
  template?: string | null;
29
33
  /** Title for the new asset */
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @example
3
+ * {
4
+ * asset_id: "asset_92492920-d118-42d3-95b4-00eccfe0754f",
5
+ * note: "First release"
6
+ * }
7
+ */
8
+ export interface PublishAssetRequestIn {
9
+ /** ID of the skill or collab agent to publish */
10
+ asset_id: string;
11
+ /** Optional release note shown in the publish history */
12
+ note?: string | null;
13
+ /** Existing version to promote to published. Omit to snapshot and publish the current draft. */
14
+ version_id?: string | null;
15
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -2,6 +2,7 @@ export type { ArchiveAssetsRequest } from "./ArchiveAssetsRequest.mjs";
2
2
  export type { AssetActivityDeltaBatchRequestIn } from "./AssetActivityDeltaBatchRequestIn.mjs";
3
3
  export type { CollabTokenRequest } from "./CollabTokenRequest.mjs";
4
4
  export type { ConvertExcelToSheetRequestIn } from "./ConvertExcelToSheetRequestIn.mjs";
5
+ export type { ConvertToUserInterfaceAssetsRequest } from "./ConvertToUserInterfaceAssetsRequest.mjs";
5
6
  export type { CreateAssetRequestIn } from "./CreateAssetRequestIn.mjs";
6
7
  export type { CreateProjectRequestIn } from "./CreateProjectRequestIn.mjs";
7
8
  export type { DownloadAssetsRequest } from "./DownloadAssetsRequest.mjs";
@@ -11,6 +12,7 @@ export type { GetAssetsRequest } from "./GetAssetsRequest.mjs";
11
12
  export type { ListActivityAssetsRequest } from "./ListActivityAssetsRequest.mjs";
12
13
  export type { ListAssetsRequest } from "./ListAssetsRequest.mjs";
13
14
  export type { MoveAssetRequestIn } from "./MoveAssetRequestIn.mjs";
15
+ export type { PublishAssetRequestIn } from "./PublishAssetRequestIn.mjs";
14
16
  export type { RenameAssetRequestIn } from "./RenameAssetRequestIn.mjs";
15
17
  export type { ShareAssetRequestIn } from "./ShareAssetRequestIn.mjs";
16
18
  export type { UpdateWorkspaceAccessRequestIn } from "./UpdateWorkspaceAccessRequestIn.mjs";
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Response model for turning an uploaded HTML file into a user interface.
3
+ */
4
+ export interface ConvertToUserInterfaceResponseOut {
5
+ /** ID of the user interface: the HTML file's own id, which it keeps (no second asset is created) */
6
+ asset_id: string;
7
+ /** Type of the asset after the request: user_interface */
8
+ asset_type: string;
9
+ /** True when this request converted the file; false when the asset already was a user interface, in which case nothing changed */
10
+ converted: boolean;
11
+ /** ID of the asset's parent folder, which the conversion keeps */
12
+ parent_folder_id?: string | null;
13
+ /** Title of the user interface */
14
+ title: string;
15
+ /** ID of the workspace that owns the asset */
16
+ workspace_id?: string | null;
17
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -7,5 +7,7 @@ export declare const CreatableAssetType: {
7
7
  readonly Computer: "computer";
8
8
  readonly GenericDoc: "generic_doc";
9
9
  readonly UserInterface: "user_interface";
10
+ readonly Skill: "skill";
11
+ readonly CollabAgent: "collab_agent";
10
12
  };
11
13
  export type CreatableAssetType = (typeof CreatableAssetType)[keyof typeof CreatableAssetType];
@@ -8,4 +8,6 @@ export const CreatableAssetType = {
8
8
  Computer: "computer",
9
9
  GenericDoc: "generic_doc",
10
10
  UserInterface: "user_interface",
11
+ Skill: "skill",
12
+ CollabAgent: "collab_agent",
11
13
  };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Initial configuration for a collab agent created via the public API.
3
+ */
4
+ export interface PublicCollabAgentConfigIn {
5
+ /** What the agent does */
6
+ description?: string | null;
7
+ /** Model ID the agent runs on */
8
+ model?: string | null;
9
+ /** Agent name; also the asset title when title is omitted. */
10
+ name?: string | null;
11
+ /** Knowledge source references: native source IDs, or collab_source:<asset_id> to give the agent an asset as knowledge (e.g. collab_source:asset_123). Unrecognized entries are ignored. */
12
+ sources?: string[] | null;
13
+ /** Instructions the agent follows */
14
+ system_prompt?: string | null;
15
+ /** Toolkit IDs the agent can use */
16
+ toolkits?: string[] | null;
17
+ /** Tool IDs the agent can use */
18
+ tools?: string[] | null;
19
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -0,0 +1,19 @@
1
+ /**
2
+ * SKILL.md content for a skill created via the public API.
3
+ */
4
+ export interface PublicSkillConfigIn {
5
+ /** Space-separated list of pre-approved tools (experimental) */
6
+ allowed_tools?: string | null;
7
+ /** The markdown instructions below the SKILL.md frontmatter */
8
+ body_markdown?: string;
9
+ /** Environment requirements (max 500 chars) */
10
+ compatibility?: string | null;
11
+ /** What the skill does and when to use it (max 1024 chars) */
12
+ description?: string;
13
+ /** License name or reference */
14
+ license?: string | null;
15
+ /** Additional string metadata */
16
+ metadata?: Record<string, string | null> | null;
17
+ /** Skill name slug (lowercase letters, numbers, single hyphens; max 64 chars). Defaults to a slug of the asset title. */
18
+ name?: string;
19
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Response model for publishing a skill or collab agent.
3
+ */
4
+ export interface PublishAssetResponseOut {
5
+ /** ID of the published asset */
6
+ asset_id: string;
7
+ /** Type of the published asset */
8
+ asset_type: string;
9
+ /** Always true on success */
10
+ published: boolean;
11
+ /** Title of the published asset */
12
+ title: string;
13
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -45,6 +45,7 @@ export * from "./ConversationAssetInfo.mjs";
45
45
  export * from "./ConversationMessage.mjs";
46
46
  export * from "./ConversationResult.mjs";
47
47
  export * from "./ConvertExcelToSheetResponseOut.mjs";
48
+ export * from "./ConvertToUserInterfaceResponseOut.mjs";
48
49
  export * from "./CreatableAssetType.mjs";
49
50
  export * from "./CreateAssetResponseOut.mjs";
50
51
  export * from "./CreateNewSheetTabResponse.mjs";
@@ -106,6 +107,9 @@ export * from "./PresenceSessionOut.mjs";
106
107
  export * from "./PresenceTokenResponseOut.mjs";
107
108
  export * from "./PromptMessage.mjs";
108
109
  export * from "./PublicAssetOut.mjs";
110
+ export * from "./PublicCollabAgentConfigIn.mjs";
111
+ export * from "./PublicSkillConfigIn.mjs";
112
+ export * from "./PublishAssetResponseOut.mjs";
109
113
  export * from "./ReadCapabilitiesOut.mjs";
110
114
  export * from "./RedactedThinkingContent.mjs";
111
115
  export * from "./RenameAssetResponseOut.mjs";
@@ -45,6 +45,7 @@ export * from "./ConversationAssetInfo.mjs";
45
45
  export * from "./ConversationMessage.mjs";
46
46
  export * from "./ConversationResult.mjs";
47
47
  export * from "./ConvertExcelToSheetResponseOut.mjs";
48
+ export * from "./ConvertToUserInterfaceResponseOut.mjs";
48
49
  export * from "./CreatableAssetType.mjs";
49
50
  export * from "./CreateAssetResponseOut.mjs";
50
51
  export * from "./CreateNewSheetTabResponse.mjs";
@@ -106,6 +107,9 @@ export * from "./PresenceSessionOut.mjs";
106
107
  export * from "./PresenceTokenResponseOut.mjs";
107
108
  export * from "./PromptMessage.mjs";
108
109
  export * from "./PublicAssetOut.mjs";
110
+ export * from "./PublicCollabAgentConfigIn.mjs";
111
+ export * from "./PublicSkillConfigIn.mjs";
112
+ export * from "./PublishAssetResponseOut.mjs";
109
113
  export * from "./ReadCapabilitiesOut.mjs";
110
114
  export * from "./RedactedThinkingContent.mjs";
111
115
  export * from "./RenameAssetResponseOut.mjs";
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "4.3.2241";
1
+ export declare const SDK_VERSION = "4.3.2243";
@@ -1 +1 @@
1
- export const SDK_VERSION = "4.3.2241";
1
+ export const SDK_VERSION = "4.3.2243";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@athenaintel/sdk",
3
- "version": "4.3.2241",
3
+ "version": "4.3.2243",
4
4
  "private": false,
5
5
  "repository": "github:Athena-Intel/athena-typescript",
6
6
  "type": "commonjs",
package/reference.md CHANGED
@@ -648,7 +648,7 @@ await client.assets.convertExcelToSheet({
648
648
  <dl>
649
649
  <dd>
650
650
 
651
- Create a new asset such as a spreadsheet, document, folder, database, computer, user interface, or generic doc (admin-only) in your workspace with your current permissions. Computer assets return 202 after durable submission, which commits the asset and initialization delivery intent together. Runtime provisioning continues asynchronously. Inspect the returned asset ID for progress instead of repeating creation. Computers accept the same configuration as the Athena UI's creation dialog: template, provider, cpu, memory (GiB), disk (GiB) and env_vars. Sizes must be offered by the environment's computer resource policy, and only admins may pick a size other than the template default (403 otherwise). In capability enforce mode, computer creation requires computer.create and returns 403 when denied.
651
+ Create a new asset such as a spreadsheet, document, folder, database, computer, user interface, skill, collab agent, or generic doc (admin-only) in your workspace with your current permissions. Computer assets return 202 after durable submission, which commits the asset and initialization delivery intent together. Runtime provisioning continues asynchronously. Inspect the returned asset ID for progress instead of repeating creation. Computers accept the same configuration as the Athena UI's creation dialog: template, provider, cpu, memory (GiB), disk (GiB) and env_vars. Sizes must be offered by the environment's computer resource policy, and only admins may pick a size other than the template default (403 otherwise). In capability enforce mode, computer creation requires computer.create and returns 403 when denied.
652
652
  </dd>
653
653
  </dl>
654
654
  </dd>
@@ -1307,6 +1307,71 @@ await client.assets.createCollabToken({
1307
1307
  </dl>
1308
1308
 
1309
1309
 
1310
+ </dd>
1311
+ </dl>
1312
+ </details>
1313
+
1314
+ <details><summary><code>client.assets.<a href="/src/api/resources/assets/client/Client.ts">convertToUserInterface</a>({ ...params }) -> AthenaIntelligence.ConvertToUserInterfaceResponseOut</code></summary>
1315
+ <dl>
1316
+ <dd>
1317
+
1318
+ #### 📝 Description
1319
+
1320
+ <dl>
1321
+ <dd>
1322
+
1323
+ <dl>
1324
+ <dd>
1325
+
1326
+ Turn an uploaded HTML file into a user interface (an app) under its own id — the conversion the Athena app's Convert to user interface performs. The asset keeps its id, folder, links and sharing (its title drops the .html extension), and no second asset is created. An uploaded HTML file stays a file until a request like this one asks: nothing converts on its own. The switch is one-way; the original upload stays downloadable from the asset's Versions pane. Requires edit access to the file. Idempotent: an asset that already is a user interface is answered as it is, with converted false. A refused conversion answers with a detail object: code CONVERSION_REFUSED, the reason, and a message saying why.
1327
+ </dd>
1328
+ </dl>
1329
+ </dd>
1330
+ </dl>
1331
+
1332
+ #### 🔌 Usage
1333
+
1334
+ <dl>
1335
+ <dd>
1336
+
1337
+ <dl>
1338
+ <dd>
1339
+
1340
+ ```typescript
1341
+ await client.assets.convertToUserInterface({
1342
+ asset_id: "asset_92492920-d118-42d3-95b4-00eccfe0754f"
1343
+ });
1344
+
1345
+ ```
1346
+ </dd>
1347
+ </dl>
1348
+ </dd>
1349
+ </dl>
1350
+
1351
+ #### ⚙️ Parameters
1352
+
1353
+ <dl>
1354
+ <dd>
1355
+
1356
+ <dl>
1357
+ <dd>
1358
+
1359
+ **request:** `AthenaIntelligence.ConvertToUserInterfaceAssetsRequest`
1360
+
1361
+ </dd>
1362
+ </dl>
1363
+
1364
+ <dl>
1365
+ <dd>
1366
+
1367
+ **requestOptions:** `AssetsClient.RequestOptions`
1368
+
1369
+ </dd>
1370
+ </dl>
1371
+ </dd>
1372
+ </dl>
1373
+
1374
+
1310
1375
  </dd>
1311
1376
  </dl>
1312
1377
  </details>
@@ -1438,6 +1503,72 @@ await client.assets.move({
1438
1503
  </dl>
1439
1504
 
1440
1505
 
1506
+ </dd>
1507
+ </dl>
1508
+ </details>
1509
+
1510
+ <details><summary><code>client.assets.<a href="/src/api/resources/assets/client/Client.ts">publish</a>({ ...params }) -> AthenaIntelligence.PublishAssetResponseOut</code></summary>
1511
+ <dl>
1512
+ <dd>
1513
+
1514
+ #### 📝 Description
1515
+
1516
+ <dl>
1517
+ <dd>
1518
+
1519
+ <dl>
1520
+ <dd>
1521
+
1522
+ Publish a skill or collab agent so it is live for everyone who uses it. Omit version_id to snapshot and publish the current draft, or pass an existing version to promote it. Requires edit access to the asset.
1523
+ </dd>
1524
+ </dl>
1525
+ </dd>
1526
+ </dl>
1527
+
1528
+ #### 🔌 Usage
1529
+
1530
+ <dl>
1531
+ <dd>
1532
+
1533
+ <dl>
1534
+ <dd>
1535
+
1536
+ ```typescript
1537
+ await client.assets.publish({
1538
+ asset_id: "asset_92492920-d118-42d3-95b4-00eccfe0754f",
1539
+ note: "First release"
1540
+ });
1541
+
1542
+ ```
1543
+ </dd>
1544
+ </dl>
1545
+ </dd>
1546
+ </dl>
1547
+
1548
+ #### ⚙️ Parameters
1549
+
1550
+ <dl>
1551
+ <dd>
1552
+
1553
+ <dl>
1554
+ <dd>
1555
+
1556
+ **request:** `AthenaIntelligence.PublishAssetRequestIn`
1557
+
1558
+ </dd>
1559
+ </dl>
1560
+
1561
+ <dl>
1562
+ <dd>
1563
+
1564
+ **requestOptions:** `AssetsClient.RequestOptions`
1565
+
1566
+ </dd>
1567
+ </dl>
1568
+ </dd>
1569
+ </dl>
1570
+
1571
+
1441
1572
  </dd>
1442
1573
  </dl>
1443
1574
  </details>