@naturali/cli 0.65.0 → 0.66.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.
- package/dist/index.mjs +262 -5
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -14,7 +14,7 @@ var __exportAll = (all, no_symbols) => {
|
|
|
14
14
|
};
|
|
15
15
|
//#endregion
|
|
16
16
|
//#region package.json
|
|
17
|
-
var version = "0.
|
|
17
|
+
var version = "0.66.0";
|
|
18
18
|
//#endregion
|
|
19
19
|
//#region ../sdk/src/generated/core/bodySerializer.gen.ts
|
|
20
20
|
const jsonBodySerializer = { bodySerializer: (body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value) };
|
|
@@ -1453,7 +1453,7 @@ var Knowledge = class {
|
|
|
1453
1453
|
/**
|
|
1454
1454
|
* Query a collection (retrieval preview)
|
|
1455
1455
|
*
|
|
1456
|
-
* Retrieval preview
|
|
1456
|
+
* Retrieval preview: returns the chunks the collection would surface for a question — debuggable standalone, before any agent is bound to it. This is the `…:query` action; the path segment is `{collection_id}:query`.
|
|
1457
1457
|
*
|
|
1458
1458
|
*/
|
|
1459
1459
|
static queryKnowledgeCollection(options) {
|
|
@@ -1520,7 +1520,7 @@ var Knowledge = class {
|
|
|
1520
1520
|
/**
|
|
1521
1521
|
* Re-ingest a document
|
|
1522
1522
|
*
|
|
1523
|
-
* Re-run ingestion for a document against its stored source, resetting it to `pending` before re-processing — the recovery path for a `failed` ingest
|
|
1523
|
+
* Re-run ingestion for a document against its stored source, resetting it to `pending` before re-processing — the recovery path for a `failed` ingest. This is the `…:reingest` action; the path segment is `{document_id}:reingest`.
|
|
1524
1524
|
*
|
|
1525
1525
|
*/
|
|
1526
1526
|
static reingestKnowledgeDocument(options) {
|
|
@@ -1610,6 +1610,71 @@ var Knowledge = class {
|
|
|
1610
1610
|
});
|
|
1611
1611
|
}
|
|
1612
1612
|
};
|
|
1613
|
+
var ModelRoutes = class {
|
|
1614
|
+
/**
|
|
1615
|
+
* List model routes
|
|
1616
|
+
*
|
|
1617
|
+
* Returns the model routes defined in a project
|
|
1618
|
+
*/
|
|
1619
|
+
static listModelRoutes(options) {
|
|
1620
|
+
return (options.client ?? client).get({
|
|
1621
|
+
url: "/v1/projects/{project_id}/model-routes",
|
|
1622
|
+
...options
|
|
1623
|
+
});
|
|
1624
|
+
}
|
|
1625
|
+
/**
|
|
1626
|
+
* Create a model route
|
|
1627
|
+
*
|
|
1628
|
+
* Creates a project-scoped model route: a named, ordered list of provider+model targets tried in array order. Every target must reference an AI provider in the same project (400 otherwise), and the total attempt budget — the sum of `1 + max_retries` over all targets — may not exceed 10 (400 naming the computed total). A duplicate `name` in the project is rejected with 409.
|
|
1629
|
+
*/
|
|
1630
|
+
static createModelRoute(options) {
|
|
1631
|
+
return (options.client ?? client).post({
|
|
1632
|
+
url: "/v1/projects/{project_id}/model-routes",
|
|
1633
|
+
...options,
|
|
1634
|
+
headers: {
|
|
1635
|
+
"Content-Type": "application/json",
|
|
1636
|
+
...options.headers
|
|
1637
|
+
}
|
|
1638
|
+
});
|
|
1639
|
+
}
|
|
1640
|
+
/**
|
|
1641
|
+
* Delete a model route
|
|
1642
|
+
*
|
|
1643
|
+
* Deletes a model route. Returns 409 when an agent still references it — a routed agent has no pinned provider to fall back on, so the reference must be repointed or the agent deleted first.
|
|
1644
|
+
*/
|
|
1645
|
+
static deleteModelRoute(options) {
|
|
1646
|
+
return (options.client ?? client).delete({
|
|
1647
|
+
url: "/v1/projects/{project_id}/model-routes/{route_id}",
|
|
1648
|
+
...options
|
|
1649
|
+
});
|
|
1650
|
+
}
|
|
1651
|
+
/**
|
|
1652
|
+
* Get a model route
|
|
1653
|
+
*
|
|
1654
|
+
* Returns a specific model route
|
|
1655
|
+
*/
|
|
1656
|
+
static getModelRoute(options) {
|
|
1657
|
+
return (options.client ?? client).get({
|
|
1658
|
+
url: "/v1/projects/{project_id}/model-routes/{route_id}",
|
|
1659
|
+
...options
|
|
1660
|
+
});
|
|
1661
|
+
}
|
|
1662
|
+
/**
|
|
1663
|
+
* Update a model route
|
|
1664
|
+
*
|
|
1665
|
+
* Updates a model route's name, targets, retry classes, or breaker configuration. Omitted fields are left unchanged.
|
|
1666
|
+
*/
|
|
1667
|
+
static updateModelRoute(options) {
|
|
1668
|
+
return (options.client ?? client).put({
|
|
1669
|
+
url: "/v1/projects/{project_id}/model-routes/{route_id}",
|
|
1670
|
+
...options,
|
|
1671
|
+
headers: {
|
|
1672
|
+
"Content-Type": "application/json",
|
|
1673
|
+
...options.headers
|
|
1674
|
+
}
|
|
1675
|
+
});
|
|
1676
|
+
}
|
|
1677
|
+
};
|
|
1613
1678
|
var Models = class {
|
|
1614
1679
|
/**
|
|
1615
1680
|
* List models
|
|
@@ -2543,6 +2608,7 @@ var NaturaliClient = class {
|
|
|
2543
2608
|
channels;
|
|
2544
2609
|
generations;
|
|
2545
2610
|
knowledge;
|
|
2611
|
+
modelRoutes;
|
|
2546
2612
|
models;
|
|
2547
2613
|
orchestrations;
|
|
2548
2614
|
projects;
|
|
@@ -2572,6 +2638,7 @@ var NaturaliClient = class {
|
|
|
2572
2638
|
this.channels = bindResource(Channels, this.http);
|
|
2573
2639
|
this.generations = bindResource(Generations, this.http);
|
|
2574
2640
|
this.knowledge = bindResource(Knowledge, this.http);
|
|
2641
|
+
this.modelRoutes = bindResource(ModelRoutes, this.http);
|
|
2575
2642
|
this.models = bindResource(Models, this.http);
|
|
2576
2643
|
this.orchestrations = bindResource(Orchestrations, this.http);
|
|
2577
2644
|
this.projects = bindResource(Projects, this.http);
|
|
@@ -2596,6 +2663,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
|
|
|
2596
2663
|
Channels: () => Channels,
|
|
2597
2664
|
Generations: () => Generations,
|
|
2598
2665
|
Knowledge: () => Knowledge,
|
|
2666
|
+
ModelRoutes: () => ModelRoutes,
|
|
2599
2667
|
Models: () => Models,
|
|
2600
2668
|
NaturaliClient: () => NaturaliClient,
|
|
2601
2669
|
Orchestrations: () => Orchestrations,
|
|
@@ -5189,7 +5257,7 @@ const routes = {
|
|
|
5189
5257
|
"query-knowledge-collection": {
|
|
5190
5258
|
serviceClass: "Knowledge",
|
|
5191
5259
|
operationId: "queryKnowledgeCollection",
|
|
5192
|
-
description: "Retrieval preview
|
|
5260
|
+
description: "Retrieval preview: returns the chunks the collection would surface for a question — debuggable standalone, before any agent is bound to it. This is the `…:query` action; the path segment is `{collection_id}:query`.",
|
|
5193
5261
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/knowledge",
|
|
5194
5262
|
httpMethod: "post",
|
|
5195
5263
|
pathParams: ["project_id", "collection_id"],
|
|
@@ -5427,7 +5495,7 @@ const routes = {
|
|
|
5427
5495
|
"reingest-knowledge-document": {
|
|
5428
5496
|
serviceClass: "Knowledge",
|
|
5429
5497
|
operationId: "reingestKnowledgeDocument",
|
|
5430
|
-
description: "Re-run ingestion for a document against its stored source, resetting it to `pending` before re-processing — the recovery path for a `failed` ingest
|
|
5498
|
+
description: "Re-run ingestion for a document against its stored source, resetting it to `pending` before re-processing — the recovery path for a `failed` ingest. This is the `…:reingest` action; the path segment is `{document_id}:reingest`.",
|
|
5431
5499
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/knowledge",
|
|
5432
5500
|
httpMethod: "post",
|
|
5433
5501
|
pathParams: [
|
|
@@ -5691,6 +5759,195 @@ const routes = {
|
|
|
5691
5759
|
"in": "path"
|
|
5692
5760
|
}]
|
|
5693
5761
|
},
|
|
5762
|
+
"list-model-routes": {
|
|
5763
|
+
serviceClass: "ModelRoutes",
|
|
5764
|
+
operationId: "listModelRoutes",
|
|
5765
|
+
description: "Returns the model routes defined in a project",
|
|
5766
|
+
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/model-routes",
|
|
5767
|
+
httpMethod: "get",
|
|
5768
|
+
pathParams: ["project_id"],
|
|
5769
|
+
queryParams: ["limit", "offset"],
|
|
5770
|
+
flags: [
|
|
5771
|
+
{
|
|
5772
|
+
"name": "project_id",
|
|
5773
|
+
"description": "Project public ID (proj_ prefix).",
|
|
5774
|
+
"required": true,
|
|
5775
|
+
"type": "string",
|
|
5776
|
+
"in": "path"
|
|
5777
|
+
},
|
|
5778
|
+
{
|
|
5779
|
+
"name": "limit",
|
|
5780
|
+
"description": "Maximum number of results to return",
|
|
5781
|
+
"required": false,
|
|
5782
|
+
"type": "integer",
|
|
5783
|
+
"in": "query"
|
|
5784
|
+
},
|
|
5785
|
+
{
|
|
5786
|
+
"name": "offset",
|
|
5787
|
+
"description": "Number of results to skip",
|
|
5788
|
+
"required": false,
|
|
5789
|
+
"type": "integer",
|
|
5790
|
+
"in": "query"
|
|
5791
|
+
}
|
|
5792
|
+
]
|
|
5793
|
+
},
|
|
5794
|
+
"create-model-route": {
|
|
5795
|
+
serviceClass: "ModelRoutes",
|
|
5796
|
+
operationId: "createModelRoute",
|
|
5797
|
+
description: "Creates a project-scoped model route: a named, ordered list of provider+model targets tried in array order. Every target must reference an AI provider in the same project (400 otherwise), and the total attempt budget — the sum of `1 + max_retries` over all targets — may not exceed 10 (400 naming the computed total). A duplicate `name` in the project is rejected with 409.",
|
|
5798
|
+
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/model-routes",
|
|
5799
|
+
httpMethod: "post",
|
|
5800
|
+
pathParams: ["project_id"],
|
|
5801
|
+
queryParams: [],
|
|
5802
|
+
flags: [
|
|
5803
|
+
{
|
|
5804
|
+
"name": "project_id",
|
|
5805
|
+
"description": "Project public ID (proj_ prefix).",
|
|
5806
|
+
"required": true,
|
|
5807
|
+
"type": "string",
|
|
5808
|
+
"in": "path"
|
|
5809
|
+
},
|
|
5810
|
+
{
|
|
5811
|
+
"name": "name",
|
|
5812
|
+
"description": "Human-readable name, unique per project",
|
|
5813
|
+
"required": true,
|
|
5814
|
+
"type": "string",
|
|
5815
|
+
"in": "body"
|
|
5816
|
+
},
|
|
5817
|
+
{
|
|
5818
|
+
"name": "targets",
|
|
5819
|
+
"description": "Ordered failover targets. Position is priority: target 0 is tried first, and a retryable failure falls through to the next target.",
|
|
5820
|
+
"required": true,
|
|
5821
|
+
"type": "array",
|
|
5822
|
+
"in": "body"
|
|
5823
|
+
},
|
|
5824
|
+
{
|
|
5825
|
+
"name": "retry_on",
|
|
5826
|
+
"description": "Which failure classes are failover-eligible. A failure whose class is not listed (and every deterministic failure — 400-class, auth, content policy) fails the generation immediately instead of spending another target's budget.",
|
|
5827
|
+
"required": false,
|
|
5828
|
+
"type": "array",
|
|
5829
|
+
"in": "body"
|
|
5830
|
+
},
|
|
5831
|
+
{
|
|
5832
|
+
"name": "failure_threshold",
|
|
5833
|
+
"description": "Consecutive retryable failures after which a target is skipped for `cooldown_seconds`. Breaker state is in-process per node and keyed by (provider, model), so it is shared by every route pointing at the same backend.",
|
|
5834
|
+
"required": false,
|
|
5835
|
+
"type": "integer",
|
|
5836
|
+
"in": "body"
|
|
5837
|
+
},
|
|
5838
|
+
{
|
|
5839
|
+
"name": "cooldown_seconds",
|
|
5840
|
+
"description": "How long a tripped target is skipped before being probed again",
|
|
5841
|
+
"required": false,
|
|
5842
|
+
"type": "integer",
|
|
5843
|
+
"in": "body"
|
|
5844
|
+
}
|
|
5845
|
+
]
|
|
5846
|
+
},
|
|
5847
|
+
"get-model-route": {
|
|
5848
|
+
serviceClass: "ModelRoutes",
|
|
5849
|
+
operationId: "getModelRoute",
|
|
5850
|
+
description: "Returns a specific model route",
|
|
5851
|
+
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/model-routes",
|
|
5852
|
+
httpMethod: "get",
|
|
5853
|
+
pathParams: ["project_id", "route_id"],
|
|
5854
|
+
queryParams: [],
|
|
5855
|
+
flags: [{
|
|
5856
|
+
"name": "project_id",
|
|
5857
|
+
"description": "Project public ID (proj_ prefix).",
|
|
5858
|
+
"required": true,
|
|
5859
|
+
"type": "string",
|
|
5860
|
+
"in": "path"
|
|
5861
|
+
}, {
|
|
5862
|
+
"name": "route_id",
|
|
5863
|
+
"description": "Model route ID",
|
|
5864
|
+
"required": true,
|
|
5865
|
+
"type": "string",
|
|
5866
|
+
"in": "path"
|
|
5867
|
+
}]
|
|
5868
|
+
},
|
|
5869
|
+
"update-model-route": {
|
|
5870
|
+
serviceClass: "ModelRoutes",
|
|
5871
|
+
operationId: "updateModelRoute",
|
|
5872
|
+
description: "Updates a model route's name, targets, retry classes, or breaker configuration. Omitted fields are left unchanged.",
|
|
5873
|
+
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/model-routes",
|
|
5874
|
+
httpMethod: "put",
|
|
5875
|
+
pathParams: ["project_id", "route_id"],
|
|
5876
|
+
queryParams: [],
|
|
5877
|
+
flags: [
|
|
5878
|
+
{
|
|
5879
|
+
"name": "project_id",
|
|
5880
|
+
"description": "Project public ID (proj_ prefix).",
|
|
5881
|
+
"required": true,
|
|
5882
|
+
"type": "string",
|
|
5883
|
+
"in": "path"
|
|
5884
|
+
},
|
|
5885
|
+
{
|
|
5886
|
+
"name": "route_id",
|
|
5887
|
+
"description": "Model route ID",
|
|
5888
|
+
"required": true,
|
|
5889
|
+
"type": "string",
|
|
5890
|
+
"in": "path"
|
|
5891
|
+
},
|
|
5892
|
+
{
|
|
5893
|
+
"name": "name",
|
|
5894
|
+
"description": "New name (unique per project)",
|
|
5895
|
+
"required": false,
|
|
5896
|
+
"type": "string",
|
|
5897
|
+
"in": "body"
|
|
5898
|
+
},
|
|
5899
|
+
{
|
|
5900
|
+
"name": "targets",
|
|
5901
|
+
"description": "Replacement target list (ordered)",
|
|
5902
|
+
"required": false,
|
|
5903
|
+
"type": "array",
|
|
5904
|
+
"in": "body"
|
|
5905
|
+
},
|
|
5906
|
+
{
|
|
5907
|
+
"name": "retry_on",
|
|
5908
|
+
"description": "",
|
|
5909
|
+
"required": false,
|
|
5910
|
+
"type": "array",
|
|
5911
|
+
"in": "body"
|
|
5912
|
+
},
|
|
5913
|
+
{
|
|
5914
|
+
"name": "failure_threshold",
|
|
5915
|
+
"description": "",
|
|
5916
|
+
"required": false,
|
|
5917
|
+
"type": "integer",
|
|
5918
|
+
"in": "body"
|
|
5919
|
+
},
|
|
5920
|
+
{
|
|
5921
|
+
"name": "cooldown_seconds",
|
|
5922
|
+
"description": "",
|
|
5923
|
+
"required": false,
|
|
5924
|
+
"type": "integer",
|
|
5925
|
+
"in": "body"
|
|
5926
|
+
}
|
|
5927
|
+
]
|
|
5928
|
+
},
|
|
5929
|
+
"delete-model-route": {
|
|
5930
|
+
serviceClass: "ModelRoutes",
|
|
5931
|
+
operationId: "deleteModelRoute",
|
|
5932
|
+
description: "Deletes a model route. Returns 409 when an agent still references it — a routed agent has no pinned provider to fall back on, so the reference must be repointed or the agent deleted first.",
|
|
5933
|
+
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/model-routes",
|
|
5934
|
+
httpMethod: "delete",
|
|
5935
|
+
pathParams: ["project_id", "route_id"],
|
|
5936
|
+
queryParams: [],
|
|
5937
|
+
flags: [{
|
|
5938
|
+
"name": "project_id",
|
|
5939
|
+
"description": "Project public ID (proj_ prefix).",
|
|
5940
|
+
"required": true,
|
|
5941
|
+
"type": "string",
|
|
5942
|
+
"in": "path"
|
|
5943
|
+
}, {
|
|
5944
|
+
"name": "route_id",
|
|
5945
|
+
"description": "Model route ID",
|
|
5946
|
+
"required": true,
|
|
5947
|
+
"type": "string",
|
|
5948
|
+
"in": "path"
|
|
5949
|
+
}]
|
|
5950
|
+
},
|
|
5694
5951
|
"list-models": {
|
|
5695
5952
|
serviceClass: "Models",
|
|
5696
5953
|
operationId: "listModels",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@naturali/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.66.0",
|
|
4
4
|
"description": "Command-line interface for the naturali.ai API, generated from its OpenAPI specs",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"tsx": "^4.23.1",
|
|
31
31
|
"typescript": "~6.0.3",
|
|
32
32
|
"vitest": "^4.1.10",
|
|
33
|
-
"@naturali/sdk": "0.
|
|
33
|
+
"@naturali/sdk": "0.66.0"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
36
|
"generate": "tsx scripts/generate.ts",
|