@naturali/cli 0.164.0 → 0.165.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.mjs +683 -1
  2. package/package.json +2 -2
package/dist/index.mjs CHANGED
@@ -17,7 +17,7 @@ var __exportAll = (all, no_symbols) => {
17
17
  };
18
18
  //#endregion
19
19
  //#region package.json
20
- var version = "0.164.0";
20
+ var version = "0.165.0";
21
21
  //#endregion
22
22
  //#region ../sdk/src/generated/core/bodySerializer.gen.ts
23
23
  const serializeFormDataPair = (data, key, value) => {
@@ -1187,6 +1187,34 @@ var Admin = class {
1187
1187
  ...options
1188
1188
  });
1189
1189
  }
1190
+ /**
1191
+ * List listings for review
1192
+ *
1193
+ * Every listing in one state, newest first — `in_review` by default, the queue an operator works through.
1194
+ *
1195
+ */
1196
+ static listAdminListings(options) {
1197
+ return (options?.client ?? client).get({
1198
+ url: "/v1/admin/listings",
1199
+ ...options
1200
+ });
1201
+ }
1202
+ /**
1203
+ * Review a listing
1204
+ *
1205
+ * List a listing in review or one that is suspended, send one in review back to `draft`, or suspend any listing. A listing an operator suspends cannot be resumed by its publisher. An invalid move answers `409 invalid_listing_state`.
1206
+ *
1207
+ */
1208
+ static setAdminListingState(options) {
1209
+ return (options.client ?? client).put({
1210
+ url: "/v1/admin/listings/{listing_id}/state",
1211
+ ...options,
1212
+ headers: {
1213
+ "Content-Type": "application/json",
1214
+ ...options.headers
1215
+ }
1216
+ });
1217
+ }
1190
1218
  };
1191
1219
  var Agents = class {
1192
1220
  /**
@@ -3348,6 +3376,60 @@ var IngestionRules = class {
3348
3376
  });
3349
3377
  }
3350
3378
  };
3379
+ var Installs = class {
3380
+ /**
3381
+ * List installs
3382
+ *
3383
+ * The listings the project installed, newest first.
3384
+ */
3385
+ static listInstalls(options) {
3386
+ return (options.client ?? client).get({
3387
+ url: "/v1/projects/{project_id}/installs",
3388
+ ...options
3389
+ });
3390
+ }
3391
+ /**
3392
+ * Install a listing
3393
+ *
3394
+ * Install a listing by its id. A listed entry, a draft and a listing in review all install; a suspended one answers `409 listing_suspended`. Installing again answers the existing install.
3395
+ * After the publisher removed this project's access, installing answers `403 install_blocked`.
3396
+ *
3397
+ */
3398
+ static createInstall(options) {
3399
+ return (options.client ?? client).post({
3400
+ url: "/v1/projects/{project_id}/installs",
3401
+ ...options,
3402
+ headers: {
3403
+ "Content-Type": "application/json",
3404
+ ...options.headers
3405
+ }
3406
+ });
3407
+ }
3408
+ /**
3409
+ * Uninstall a listing
3410
+ *
3411
+ * Remove the install. While the project's agents, ingestion rules or other resources still name the installed resource, this answers `409 install_in_use` with them in `details.references`; `force=true` uninstalls anyway and those resources stop reaching it.
3412
+ * A `blocked` install, and the install managed conversion uses, answer `403`.
3413
+ *
3414
+ */
3415
+ static deleteInstall(options) {
3416
+ return (options.client ?? client).delete({
3417
+ url: "/v1/projects/{project_id}/installs/{install_id}",
3418
+ ...options
3419
+ });
3420
+ }
3421
+ /**
3422
+ * Get an install
3423
+ *
3424
+ * One of the project's installs.
3425
+ */
3426
+ static getInstall(options) {
3427
+ return (options.client ?? client).get({
3428
+ url: "/v1/projects/{project_id}/installs/{install_id}",
3429
+ ...options
3430
+ });
3431
+ }
3432
+ };
3351
3433
  var Knowledge = class {
3352
3434
  /**
3353
3435
  * Search knowledge
@@ -3365,6 +3447,123 @@ var Knowledge = class {
3365
3447
  });
3366
3448
  }
3367
3449
  };
3450
+ var Listings = class {
3451
+ /**
3452
+ * Browse the marketplace
3453
+ *
3454
+ * Every listed entry, newest first. `interface` is what an installing project sees of the resource, read live from the publisher.
3455
+ *
3456
+ */
3457
+ static listPublicListings(options) {
3458
+ return (options?.client ?? client).get({
3459
+ url: "/v1/listings",
3460
+ ...options
3461
+ });
3462
+ }
3463
+ /**
3464
+ * Get a public listing
3465
+ *
3466
+ * One listed entry. A listing that is not listed answers `404`.
3467
+ */
3468
+ static getPublicListing(options) {
3469
+ return (options.client ?? client).get({
3470
+ url: "/v1/listings/{listing_id}",
3471
+ ...options
3472
+ });
3473
+ }
3474
+ /**
3475
+ * List a project's listings
3476
+ *
3477
+ * The listings the project publishes, newest first.
3478
+ */
3479
+ static listListings(options) {
3480
+ return (options.client ?? client).get({
3481
+ url: "/v1/projects/{project_id}/listings",
3482
+ ...options
3483
+ });
3484
+ }
3485
+ /**
3486
+ * Create a listing
3487
+ *
3488
+ * Publish one of the project's tools or agents as a `draft`. Any project member may publish.
3489
+ * An agent on a naturali model whose model has no price answers `503 model_not_priced`. A resource that does not exist in the project answers `400 resource_not_found`, and one that already has a listing `409 listing_exists`.
3490
+ *
3491
+ */
3492
+ static createListing(options) {
3493
+ return (options.client ?? client).post({
3494
+ url: "/v1/projects/{project_id}/listings",
3495
+ ...options,
3496
+ headers: {
3497
+ "Content-Type": "application/json",
3498
+ ...options.headers
3499
+ }
3500
+ });
3501
+ }
3502
+ /**
3503
+ * Get a listing
3504
+ *
3505
+ * One of the project's listings.
3506
+ */
3507
+ static getListing(options) {
3508
+ return (options.client ?? client).get({
3509
+ url: "/v1/projects/{project_id}/listings/{listing_id}",
3510
+ ...options
3511
+ });
3512
+ }
3513
+ /**
3514
+ * Update a listing
3515
+ *
3516
+ * Change the title or description, or pause and resume the listing.
3517
+ * `state: suspended` stops the listing for every installing project at once; their installs are kept. `state: listed` resumes a listing you suspended, provided naturali had listed it; nobody reinstalls. A listing naturali suspended cannot be resumed here, and an invalid move answers `409 invalid_listing_state`.
3518
+ *
3519
+ */
3520
+ static updateListing(options) {
3521
+ return (options.client ?? client).patch({
3522
+ url: "/v1/projects/{project_id}/listings/{listing_id}",
3523
+ ...options,
3524
+ headers: {
3525
+ "Content-Type": "application/json",
3526
+ ...options.headers
3527
+ }
3528
+ });
3529
+ }
3530
+ /**
3531
+ * Submit a listing for review
3532
+ *
3533
+ * Move a `draft` listing to `in_review`. naturali lists it in the marketplace or sends it back to `draft`. Any other state answers `409 invalid_listing_state`.
3534
+ *
3535
+ */
3536
+ static submitListing(options) {
3537
+ return (options.client ?? client).post({
3538
+ url: "/v1/projects/{project_id}/listings/{listing_id}:submit",
3539
+ ...options
3540
+ });
3541
+ }
3542
+ /**
3543
+ * List a listing's installs
3544
+ *
3545
+ * Each project that installed the listing, with its usage this billing cycle as last sampled. Never the content of a call.
3546
+ *
3547
+ */
3548
+ static listListingInstalls(options) {
3549
+ return (options.client ?? client).get({
3550
+ url: "/v1/projects/{project_id}/listings/{listing_id}/installs",
3551
+ ...options
3552
+ });
3553
+ }
3554
+ /**
3555
+ * Remove a project's install
3556
+ *
3557
+ * Cut one installing project off. An `active` or `suspended` install becomes `blocked`, and that project cannot install the listing again. Deleting a `blocked` install removes it, which lets that project install again.
3558
+ *
3559
+ */
3560
+ static deleteListingInstall(options) {
3561
+ return (options.client ?? client).delete({
3562
+ url: "/v1/projects/{project_id}/listings/{listing_id}/installs/{install_id}",
3563
+ ...options
3564
+ });
3565
+ }
3566
+ };
3368
3567
  var Memories = class {
3369
3568
  /**
3370
3569
  * List memories
@@ -5524,7 +5723,9 @@ var NaturaliClient = class {
5524
5723
  generations;
5525
5724
  guardrails;
5526
5725
  ingestionRules;
5726
+ installs;
5527
5727
  knowledge;
5728
+ listings;
5528
5729
  memories;
5529
5730
  memoryRules;
5530
5731
  memoryStores;
@@ -5577,7 +5778,9 @@ var NaturaliClient = class {
5577
5778
  this.generations = bindResource(Generations, this.http);
5578
5779
  this.guardrails = bindResource(Guardrails, this.http);
5579
5780
  this.ingestionRules = bindResource(IngestionRules, this.http);
5781
+ this.installs = bindResource(Installs, this.http);
5580
5782
  this.knowledge = bindResource(Knowledge, this.http);
5783
+ this.listings = bindResource(Listings, this.http);
5581
5784
  this.memories = bindResource(Memories, this.http);
5582
5785
  this.memoryRules = bindResource(MemoryRules, this.http);
5583
5786
  this.memoryStores = bindResource(MemoryStores, this.http);
@@ -5625,7 +5828,9 @@ var src_exports = /* @__PURE__ */ __exportAll({
5625
5828
  Generations: () => Generations,
5626
5829
  Guardrails: () => Guardrails,
5627
5830
  IngestionRules: () => IngestionRules,
5831
+ Installs: () => Installs,
5628
5832
  Knowledge: () => Knowledge,
5833
+ Listings: () => Listings,
5629
5834
  Memories: () => Memories,
5630
5835
  MemoryRules: () => MemoryRules,
5631
5836
  MemoryStores: () => MemoryStores,
@@ -7208,6 +7413,68 @@ const routes = {
7208
7413
  }
7209
7414
  ]
7210
7415
  },
7416
+ "list-admin-listings": {
7417
+ serviceClass: "Admin",
7418
+ operationId: "listAdminListings",
7419
+ description: "Every listing in one state, newest first — `in_review` by default, the queue an operator works through.",
7420
+ moduleDocsUrl: "https://docs.naturali.ai/docs/modules/admin",
7421
+ httpMethod: "get",
7422
+ pathParams: [],
7423
+ queryParams: [
7424
+ "state",
7425
+ "limit",
7426
+ "cursor"
7427
+ ],
7428
+ headerParams: [],
7429
+ cookieParams: [],
7430
+ flags: [
7431
+ {
7432
+ "name": "state",
7433
+ "description": "",
7434
+ "required": false,
7435
+ "type": "string",
7436
+ "in": "query"
7437
+ },
7438
+ {
7439
+ "name": "limit",
7440
+ "description": "Maximum items per page — an integer from 1 to 100 (default 20).",
7441
+ "required": false,
7442
+ "type": "integer",
7443
+ "in": "query"
7444
+ },
7445
+ {
7446
+ "name": "cursor",
7447
+ "description": "The `next_cursor` of the previous page.",
7448
+ "required": false,
7449
+ "type": "string",
7450
+ "in": "query"
7451
+ }
7452
+ ]
7453
+ },
7454
+ "set-admin-listing-state": {
7455
+ serviceClass: "Admin",
7456
+ operationId: "setAdminListingState",
7457
+ description: "List a listing in review or one that is suspended, send one in review back to `draft`, or suspend any listing. A listing an operator suspends cannot be resumed by its publisher. An invalid move answers `409 invalid_listing_state`.",
7458
+ moduleDocsUrl: "https://docs.naturali.ai/docs/modules/admin",
7459
+ httpMethod: "put",
7460
+ pathParams: ["listing_id"],
7461
+ queryParams: [],
7462
+ headerParams: [],
7463
+ cookieParams: [],
7464
+ flags: [{
7465
+ "name": "listing_id",
7466
+ "description": "",
7467
+ "required": true,
7468
+ "type": "string",
7469
+ "in": "path"
7470
+ }, {
7471
+ "name": "state",
7472
+ "description": "",
7473
+ "required": true,
7474
+ "type": "string",
7475
+ "in": "body"
7476
+ }]
7477
+ },
7211
7478
  "list-agents": {
7212
7479
  serviceClass: "Agents",
7213
7480
  operationId: "listAgents",
@@ -14594,6 +14861,122 @@ const routes = {
14594
14861
  "in": "path"
14595
14862
  }]
14596
14863
  },
14864
+ "list-installs": {
14865
+ serviceClass: "Installs",
14866
+ operationId: "listInstalls",
14867
+ description: "The listings the project installed, newest first.",
14868
+ moduleDocsUrl: "https://docs.naturali.ai/docs/modules/installs",
14869
+ httpMethod: "get",
14870
+ pathParams: ["project_id"],
14871
+ queryParams: ["limit", "cursor"],
14872
+ headerParams: [],
14873
+ cookieParams: [],
14874
+ flags: [
14875
+ {
14876
+ "name": "project_id",
14877
+ "description": "Project public ID (proj_ prefix).",
14878
+ "required": true,
14879
+ "type": "string",
14880
+ "in": "path"
14881
+ },
14882
+ {
14883
+ "name": "limit",
14884
+ "description": "Maximum items per page — an integer from 1 to 100 (default 20).",
14885
+ "required": false,
14886
+ "type": "integer",
14887
+ "in": "query"
14888
+ },
14889
+ {
14890
+ "name": "cursor",
14891
+ "description": "Opaque pagination cursor from a previous response's next_cursor.",
14892
+ "required": false,
14893
+ "type": "string",
14894
+ "in": "query"
14895
+ }
14896
+ ]
14897
+ },
14898
+ "create-install": {
14899
+ serviceClass: "Installs",
14900
+ operationId: "createInstall",
14901
+ description: "Install a listing by its id. A listed entry, a draft and a listing in review all install; a suspended one answers `409 listing_suspended`. Installing again answers the existing install. After the publisher removed this project's access, installing answers `403 install_blocked`.",
14902
+ moduleDocsUrl: "https://docs.naturali.ai/docs/modules/installs",
14903
+ httpMethod: "post",
14904
+ pathParams: ["project_id"],
14905
+ queryParams: [],
14906
+ headerParams: [],
14907
+ cookieParams: [],
14908
+ flags: [{
14909
+ "name": "project_id",
14910
+ "description": "Project public ID (proj_ prefix).",
14911
+ "required": true,
14912
+ "type": "string",
14913
+ "in": "path"
14914
+ }, {
14915
+ "name": "listing_id",
14916
+ "description": "",
14917
+ "required": true,
14918
+ "type": "string",
14919
+ "in": "body"
14920
+ }]
14921
+ },
14922
+ "get-install": {
14923
+ serviceClass: "Installs",
14924
+ operationId: "getInstall",
14925
+ description: "One of the project's installs.",
14926
+ moduleDocsUrl: "https://docs.naturali.ai/docs/modules/installs",
14927
+ httpMethod: "get",
14928
+ pathParams: ["project_id", "install_id"],
14929
+ queryParams: [],
14930
+ headerParams: [],
14931
+ cookieParams: [],
14932
+ flags: [{
14933
+ "name": "project_id",
14934
+ "description": "Project public ID (proj_ prefix).",
14935
+ "required": true,
14936
+ "type": "string",
14937
+ "in": "path"
14938
+ }, {
14939
+ "name": "install_id",
14940
+ "description": "Install public ID (ins_ prefix).",
14941
+ "required": true,
14942
+ "type": "string",
14943
+ "in": "path"
14944
+ }]
14945
+ },
14946
+ "delete-install": {
14947
+ serviceClass: "Installs",
14948
+ operationId: "deleteInstall",
14949
+ description: "Remove the install. While the project's agents, ingestion rules or other resources still name the installed resource, this answers `409 install_in_use` with them in `details.references`; `force=true` uninstalls anyway and those resources stop reaching it. A `blocked` install, and the install managed conversion uses, answer `403`.",
14950
+ moduleDocsUrl: "https://docs.naturali.ai/docs/modules/installs",
14951
+ httpMethod: "delete",
14952
+ pathParams: ["project_id", "install_id"],
14953
+ queryParams: ["force"],
14954
+ headerParams: [],
14955
+ cookieParams: [],
14956
+ flags: [
14957
+ {
14958
+ "name": "project_id",
14959
+ "description": "Project public ID (proj_ prefix).",
14960
+ "required": true,
14961
+ "type": "string",
14962
+ "in": "path"
14963
+ },
14964
+ {
14965
+ "name": "install_id",
14966
+ "description": "Install public ID (ins_ prefix).",
14967
+ "required": true,
14968
+ "type": "string",
14969
+ "in": "path"
14970
+ },
14971
+ {
14972
+ "name": "force",
14973
+ "description": "Uninstall even while resources still use it.",
14974
+ "required": false,
14975
+ "type": "boolean",
14976
+ "in": "query"
14977
+ }
14978
+ ]
14979
+ },
14597
14980
  "search-knowledge": {
14598
14981
  serviceClass: "Knowledge",
14599
14982
  operationId: "searchKnowledge",
@@ -14698,6 +15081,305 @@ const routes = {
14698
15081
  }
14699
15082
  ]
14700
15083
  },
15084
+ "list-public-listings": {
15085
+ serviceClass: "Listings",
15086
+ operationId: "listPublicListings",
15087
+ description: "Every listed entry, newest first. `interface` is what an installing project sees of the resource, read live from the publisher.",
15088
+ moduleDocsUrl: "https://docs.naturali.ai/docs/modules/listings",
15089
+ httpMethod: "get",
15090
+ pathParams: [],
15091
+ queryParams: ["limit", "cursor"],
15092
+ headerParams: [],
15093
+ cookieParams: [],
15094
+ flags: [{
15095
+ "name": "limit",
15096
+ "description": "Maximum items per page — an integer from 1 to 100 (default 20).",
15097
+ "required": false,
15098
+ "type": "integer",
15099
+ "in": "query"
15100
+ }, {
15101
+ "name": "cursor",
15102
+ "description": "Opaque pagination cursor from a previous response's next_cursor.",
15103
+ "required": false,
15104
+ "type": "string",
15105
+ "in": "query"
15106
+ }]
15107
+ },
15108
+ "get-public-listing": {
15109
+ serviceClass: "Listings",
15110
+ operationId: "getPublicListing",
15111
+ description: "One listed entry. A listing that is not listed answers `404`.",
15112
+ moduleDocsUrl: "https://docs.naturali.ai/docs/modules/listings",
15113
+ httpMethod: "get",
15114
+ pathParams: ["listing_id"],
15115
+ queryParams: [],
15116
+ headerParams: [],
15117
+ cookieParams: [],
15118
+ flags: [{
15119
+ "name": "listing_id",
15120
+ "description": "Listing public ID (lst_ prefix).",
15121
+ "required": true,
15122
+ "type": "string",
15123
+ "in": "path"
15124
+ }]
15125
+ },
15126
+ "list-listings": {
15127
+ serviceClass: "Listings",
15128
+ operationId: "listListings",
15129
+ description: "The listings the project publishes, newest first.",
15130
+ moduleDocsUrl: "https://docs.naturali.ai/docs/modules/listings",
15131
+ httpMethod: "get",
15132
+ pathParams: ["project_id"],
15133
+ queryParams: ["limit", "cursor"],
15134
+ headerParams: [],
15135
+ cookieParams: [],
15136
+ flags: [
15137
+ {
15138
+ "name": "project_id",
15139
+ "description": "Project public ID (proj_ prefix).",
15140
+ "required": true,
15141
+ "type": "string",
15142
+ "in": "path"
15143
+ },
15144
+ {
15145
+ "name": "limit",
15146
+ "description": "Maximum items per page — an integer from 1 to 100 (default 20).",
15147
+ "required": false,
15148
+ "type": "integer",
15149
+ "in": "query"
15150
+ },
15151
+ {
15152
+ "name": "cursor",
15153
+ "description": "Opaque pagination cursor from a previous response's next_cursor.",
15154
+ "required": false,
15155
+ "type": "string",
15156
+ "in": "query"
15157
+ }
15158
+ ]
15159
+ },
15160
+ "create-listing": {
15161
+ serviceClass: "Listings",
15162
+ operationId: "createListing",
15163
+ description: "Publish one of the project's tools or agents as a `draft`. Any project member may publish. An agent on a naturali model whose model has no price answers `503 model_not_priced`. A resource that does not exist in the project answers `400 resource_not_found`, and one that already has a listing `409 listing_exists`.",
15164
+ moduleDocsUrl: "https://docs.naturali.ai/docs/modules/listings",
15165
+ httpMethod: "post",
15166
+ pathParams: ["project_id"],
15167
+ queryParams: [],
15168
+ headerParams: [],
15169
+ cookieParams: [],
15170
+ flags: [
15171
+ {
15172
+ "name": "project_id",
15173
+ "description": "Project public ID (proj_ prefix).",
15174
+ "required": true,
15175
+ "type": "string",
15176
+ "in": "path"
15177
+ },
15178
+ {
15179
+ "name": "resource_type",
15180
+ "description": "What the listing publishes.",
15181
+ "required": true,
15182
+ "type": "string",
15183
+ "in": "body"
15184
+ },
15185
+ {
15186
+ "name": "resource_id",
15187
+ "description": "A tool or agent in this project.",
15188
+ "required": true,
15189
+ "type": "string",
15190
+ "in": "body"
15191
+ },
15192
+ {
15193
+ "name": "title",
15194
+ "description": "",
15195
+ "required": true,
15196
+ "type": "string",
15197
+ "in": "body"
15198
+ },
15199
+ {
15200
+ "name": "description",
15201
+ "description": "",
15202
+ "required": false,
15203
+ "type": "string",
15204
+ "in": "body"
15205
+ }
15206
+ ]
15207
+ },
15208
+ "get-listing": {
15209
+ serviceClass: "Listings",
15210
+ operationId: "getListing",
15211
+ description: "One of the project's listings.",
15212
+ moduleDocsUrl: "https://docs.naturali.ai/docs/modules/listings",
15213
+ httpMethod: "get",
15214
+ pathParams: ["project_id", "listing_id"],
15215
+ queryParams: [],
15216
+ headerParams: [],
15217
+ cookieParams: [],
15218
+ flags: [{
15219
+ "name": "project_id",
15220
+ "description": "Project public ID (proj_ prefix).",
15221
+ "required": true,
15222
+ "type": "string",
15223
+ "in": "path"
15224
+ }, {
15225
+ "name": "listing_id",
15226
+ "description": "Listing public ID (lst_ prefix).",
15227
+ "required": true,
15228
+ "type": "string",
15229
+ "in": "path"
15230
+ }]
15231
+ },
15232
+ "update-listing": {
15233
+ serviceClass: "Listings",
15234
+ operationId: "updateListing",
15235
+ description: "Change the title or description, or pause and resume the listing. `state: suspended` stops the listing for every installing project at once; their installs are kept. `state: listed` resumes a listing you suspended, provided naturali had listed it; nobody reinstalls. A listing naturali suspended cannot be resumed here, and an invalid move answers `409 invalid_listing_state`.",
15236
+ moduleDocsUrl: "https://docs.naturali.ai/docs/modules/listings",
15237
+ httpMethod: "patch",
15238
+ pathParams: ["project_id", "listing_id"],
15239
+ queryParams: [],
15240
+ headerParams: [],
15241
+ cookieParams: [],
15242
+ flags: [
15243
+ {
15244
+ "name": "project_id",
15245
+ "description": "Project public ID (proj_ prefix).",
15246
+ "required": true,
15247
+ "type": "string",
15248
+ "in": "path"
15249
+ },
15250
+ {
15251
+ "name": "listing_id",
15252
+ "description": "Listing public ID (lst_ prefix).",
15253
+ "required": true,
15254
+ "type": "string",
15255
+ "in": "path"
15256
+ },
15257
+ {
15258
+ "name": "title",
15259
+ "description": "",
15260
+ "required": false,
15261
+ "type": "string",
15262
+ "in": "body"
15263
+ },
15264
+ {
15265
+ "name": "description",
15266
+ "description": "",
15267
+ "required": false,
15268
+ "type": "string",
15269
+ "in": "body"
15270
+ },
15271
+ {
15272
+ "name": "state",
15273
+ "description": "Pause the listing, or resume one you paused.",
15274
+ "required": false,
15275
+ "type": "string",
15276
+ "in": "body"
15277
+ }
15278
+ ]
15279
+ },
15280
+ "submit-listing": {
15281
+ serviceClass: "Listings",
15282
+ operationId: "submitListing",
15283
+ description: "Move a `draft` listing to `in_review`. naturali lists it in the marketplace or sends it back to `draft`. Any other state answers `409 invalid_listing_state`.",
15284
+ moduleDocsUrl: "https://docs.naturali.ai/docs/modules/listings",
15285
+ httpMethod: "post",
15286
+ pathParams: ["project_id", "listing_id"],
15287
+ queryParams: [],
15288
+ headerParams: [],
15289
+ cookieParams: [],
15290
+ flags: [{
15291
+ "name": "project_id",
15292
+ "description": "Project public ID (proj_ prefix).",
15293
+ "required": true,
15294
+ "type": "string",
15295
+ "in": "path"
15296
+ }, {
15297
+ "name": "listing_id",
15298
+ "description": "Listing public ID (lst_ prefix).",
15299
+ "required": true,
15300
+ "type": "string",
15301
+ "in": "path"
15302
+ }]
15303
+ },
15304
+ "list-listing-installs": {
15305
+ serviceClass: "Listings",
15306
+ operationId: "listListingInstalls",
15307
+ description: "Each project that installed the listing, with its usage this billing cycle as last sampled. Never the content of a call.",
15308
+ moduleDocsUrl: "https://docs.naturali.ai/docs/modules/listings",
15309
+ httpMethod: "get",
15310
+ pathParams: ["project_id", "listing_id"],
15311
+ queryParams: ["limit", "cursor"],
15312
+ headerParams: [],
15313
+ cookieParams: [],
15314
+ flags: [
15315
+ {
15316
+ "name": "project_id",
15317
+ "description": "Project public ID (proj_ prefix).",
15318
+ "required": true,
15319
+ "type": "string",
15320
+ "in": "path"
15321
+ },
15322
+ {
15323
+ "name": "listing_id",
15324
+ "description": "Listing public ID (lst_ prefix).",
15325
+ "required": true,
15326
+ "type": "string",
15327
+ "in": "path"
15328
+ },
15329
+ {
15330
+ "name": "limit",
15331
+ "description": "Maximum items per page — an integer from 1 to 100 (default 20).",
15332
+ "required": false,
15333
+ "type": "integer",
15334
+ "in": "query"
15335
+ },
15336
+ {
15337
+ "name": "cursor",
15338
+ "description": "Opaque pagination cursor from a previous response's next_cursor.",
15339
+ "required": false,
15340
+ "type": "string",
15341
+ "in": "query"
15342
+ }
15343
+ ]
15344
+ },
15345
+ "delete-listing-install": {
15346
+ serviceClass: "Listings",
15347
+ operationId: "deleteListingInstall",
15348
+ description: "Cut one installing project off. An `active` or `suspended` install becomes `blocked`, and that project cannot install the listing again. Deleting a `blocked` install removes it, which lets that project install again.",
15349
+ moduleDocsUrl: "https://docs.naturali.ai/docs/modules/listings",
15350
+ httpMethod: "delete",
15351
+ pathParams: [
15352
+ "project_id",
15353
+ "listing_id",
15354
+ "install_id"
15355
+ ],
15356
+ queryParams: [],
15357
+ headerParams: [],
15358
+ cookieParams: [],
15359
+ flags: [
15360
+ {
15361
+ "name": "project_id",
15362
+ "description": "Project public ID (proj_ prefix).",
15363
+ "required": true,
15364
+ "type": "string",
15365
+ "in": "path"
15366
+ },
15367
+ {
15368
+ "name": "listing_id",
15369
+ "description": "Listing public ID (lst_ prefix).",
15370
+ "required": true,
15371
+ "type": "string",
15372
+ "in": "path"
15373
+ },
15374
+ {
15375
+ "name": "install_id",
15376
+ "description": "Install public ID (ins_ prefix).",
15377
+ "required": true,
15378
+ "type": "string",
15379
+ "in": "path"
15380
+ }
15381
+ ]
15382
+ },
14701
15383
  "list-memories": {
14702
15384
  serviceClass: "Memories",
14703
15385
  operationId: "listMemories",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naturali/cli",
3
- "version": "0.164.0",
3
+ "version": "0.165.0",
4
4
  "description": "Command-line interface for the naturali.ai API, generated from its OpenAPI specs",
5
5
  "type": "module",
6
6
  "bin": {
@@ -25,7 +25,7 @@
25
25
  "yaml": "^2.9.1"
26
26
  },
27
27
  "devDependencies": {
28
- "@naturali/sdk": "0.164.0",
28
+ "@naturali/sdk": "0.165.0",
29
29
  "@ttoss/openapi-codegen": "^0.5.0",
30
30
  "@types/node": "^26.5.1",
31
31
  "tsdown": "^0.23.0",