@naturali/cli 0.38.1 → 0.40.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 +57 -43
- 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.40.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) };
|
|
@@ -651,7 +651,7 @@ var Agents = class {
|
|
|
651
651
|
/**
|
|
652
652
|
* Delete an agent
|
|
653
653
|
*
|
|
654
|
-
* Deletes the backing
|
|
654
|
+
* Deletes the backing runtime agent. Returns 409 if the agent still has dependent generations or traces — pass `force=true` to delete those along with the agent (destructive and irreversible).
|
|
655
655
|
*
|
|
656
656
|
*/
|
|
657
657
|
static deleteAgent(options) {
|
|
@@ -672,7 +672,7 @@ var Agents = class {
|
|
|
672
672
|
/**
|
|
673
673
|
* Update an agent
|
|
674
674
|
*
|
|
675
|
-
* Change the bound provider, name, model, instructions, sampling/step config, attached tools (tool_ids/tool_choice), or the naturali-side status. At least one field is required.
|
|
675
|
+
* Change the bound provider, name, model, instructions, sampling/step config, attached tools (tool_ids/tool_choice), the structured-output schema (output_schema), or the naturali-side status. At least one field is required.
|
|
676
676
|
*
|
|
677
677
|
*/
|
|
678
678
|
static updateAgent(options) {
|
|
@@ -1024,7 +1024,7 @@ var Channels = class {
|
|
|
1024
1024
|
/**
|
|
1025
1025
|
* List the channel's conversations
|
|
1026
1026
|
*
|
|
1027
|
-
* A cursor page of the channel's conversations, newest first. A conversation is one contact's dialogue on the channel — the continuity anchor that resumes the same
|
|
1027
|
+
* A cursor page of the channel's conversations, newest first. A conversation is one contact's dialogue on the channel — the continuity anchor that resumes the same runtime session instead of starting fresh per message — so this is the read path for who has talked to the channel and which actor/session their dialogue resolved to.
|
|
1028
1028
|
* Conversations are created by the inbound path (the WhatsApp webhook, the Discord gateway worker) when a real message arrives; there is no way to create one directly.
|
|
1029
1029
|
*
|
|
1030
1030
|
*/
|
|
@@ -1046,7 +1046,7 @@ var Channels = class {
|
|
|
1046
1046
|
/**
|
|
1047
1047
|
* Read a conversation's transcript
|
|
1048
1048
|
*
|
|
1049
|
-
* The conversation's messages, oldest first. naturali stores no message bodies — the dialogue lives in the
|
|
1049
|
+
* The conversation's messages, oldest first. naturali stores no message bodies — the dialogue lives in the runtime session the conversation maps to, so this reads through to the runtime. Pagination is `limit`/`offset` rather than an opaque cursor because the upstream is offset-based over a stable `position` ordering.
|
|
1050
1050
|
*
|
|
1051
1051
|
*/
|
|
1052
1052
|
static listChannelConversationMessages(options) {
|
|
@@ -1074,7 +1074,7 @@ var Contacts = class {
|
|
|
1074
1074
|
* Create a contact
|
|
1075
1075
|
*
|
|
1076
1076
|
* Record a contact the customer already knows about, optionally with the identifiers it is expected to arrive at.
|
|
1077
|
-
* Optional by design — the inbound path creates contacts on its own. This is for the embedder who has a user in their own system and wants naturali to agree about who that is before the first message, which is what makes `external_id` (and, through it, a session's `tool_context`) useful. No
|
|
1077
|
+
* Optional by design — the inbound path creates contacts on its own. This is for the embedder who has a user in their own system and wants naturali to agree about who that is before the first message, which is what makes `external_id` (and, through it, a session's `tool_context`) useful. No runtime actor is created here; the contact gets one on first need.
|
|
1078
1078
|
*
|
|
1079
1079
|
*/
|
|
1080
1080
|
static createContact(options) {
|
|
@@ -1090,7 +1090,7 @@ var Contacts = class {
|
|
|
1090
1090
|
/**
|
|
1091
1091
|
* Erase a contact
|
|
1092
1092
|
*
|
|
1093
|
-
* **Erasure (C4/LGPD).** Not a soft delete and not reversible: the contact's sessions — with their messages and media — its
|
|
1093
|
+
* **Erasure (C4/LGPD).** Not a soft delete and not reversible: the contact's sessions — with their messages and media — its runtime actor, its memory container and every identifier it was reachable at are removed, along with the merge records that reference it.
|
|
1094
1094
|
* The upstream deletes happen first, so a failure there aborts before the local pointers are dropped and a retry can still find what is left. A contact that was merged into another cannot be erased directly: its data lives with the survivor, so erase that one.
|
|
1095
1095
|
*
|
|
1096
1096
|
*/
|
|
@@ -1169,7 +1169,7 @@ var Contacts = class {
|
|
|
1169
1169
|
* Merge another contact into this one
|
|
1170
1170
|
*
|
|
1171
1171
|
* Fold `source_contact_id` into this contact — "same human, two identifiers" (C4).
|
|
1172
|
-
* What moves: every identity and every conversation, so the survivor's history is the union of both. What is *shared* rather than moved: agent memory —
|
|
1172
|
+
* What moves: every identity and every conversation, so the survivor's history is the union of both. What is *shared* rather than moved: agent memory — the runtime hangs it off the actor, so the source's actor is re-pointed at the survivor's memory container and both keep answering with one recollection. Existing sessions keep working, which is the point of not rewriting them.
|
|
1173
1173
|
* The source is not deleted: it stays as a tombstone pointing at the survivor, and the returned merge record lists exactly what moved, so the merge can be audited and reverted.
|
|
1174
1174
|
*
|
|
1175
1175
|
*/
|
|
@@ -1225,7 +1225,7 @@ var Generations = class {
|
|
|
1225
1225
|
/**
|
|
1226
1226
|
* Run an agent generation
|
|
1227
1227
|
*
|
|
1228
|
-
* Sends messages to the agent, resolves its tools, and runs the model loop. Returns the final text when `status` is `completed` (plus `object` when the agent has an output schema), or the pending `tool_calls` when `status` is `requires_action`. With `stream: true` the response is a Server-Sent Events stream (Content-Type text/event-stream) proxied from
|
|
1228
|
+
* Sends messages to the agent, resolves its tools, and runs the model loop. Returns the final text when `status` is `completed` (plus `object` when the agent has an output schema), or the pending `tool_calls` when `status` is `requires_action`. With `stream: true` the response is a Server-Sent Events stream (Content-Type text/event-stream) proxied from the runtime instead of a single JSON body.
|
|
1229
1229
|
*
|
|
1230
1230
|
*/
|
|
1231
1231
|
static createGeneration(options) {
|
|
@@ -1254,7 +1254,7 @@ var Generations = class {
|
|
|
1254
1254
|
/**
|
|
1255
1255
|
* Get a generation's cost
|
|
1256
1256
|
*
|
|
1257
|
-
* What this one generation cost, and the tokens it was charged on — the billing-grade receipt
|
|
1257
|
+
* What this one generation cost, and the tokens it was charged on — the billing-grade receipt the runtime froze at write time, per model line item.
|
|
1258
1258
|
* This is the per-generation grain that `GET /v1/projects/{project_id}/usage` cannot express: that meter buckets a whole project by model, agent, run, day or meter type, and a run can hold more than one generation. Use this to price a single turn, and the project meter to roll spend up.
|
|
1259
1259
|
* `cost_usd` is `null` when nothing was priced — never that the work was free. Only naturali-managed providers are priced; a BYOK generation runs on your own provider account, so it carries no LLM cost here (its tokens are still reported).
|
|
1260
1260
|
* A generation belonging to another project responds `404`, not `403`.
|
|
@@ -1460,7 +1460,7 @@ var Projects = class {
|
|
|
1460
1460
|
/**
|
|
1461
1461
|
* Delete a project
|
|
1462
1462
|
*
|
|
1463
|
-
* Permanently deletes the project and its backing
|
|
1463
|
+
* Permanently deletes the project and its backing runtime project. Fails with 409 if the runtime project still has dependent resources — remove them first, or pass `force=true` to delete the project and all its dependents (agents, providers, tools, sessions, generations, traces). Forcing is destructive and irreversible.
|
|
1464
1464
|
*
|
|
1465
1465
|
*/
|
|
1466
1466
|
static deleteProject(options) {
|
|
@@ -1496,7 +1496,7 @@ var Projects = class {
|
|
|
1496
1496
|
/**
|
|
1497
1497
|
* Get per-project usage
|
|
1498
1498
|
*
|
|
1499
|
-
* The per-project meter — the re-billing view (A11/C12/P3). Aggregates the project's usage over an optional [from, to] window, bucketed by a single dimension. Costs are the billing-grade cost_usd
|
|
1499
|
+
* The per-project meter — the re-billing view (A11/C12/P3). Aggregates the project's usage over an optional [from, to] window, bucketed by a single dimension. Costs are the billing-grade cost_usd the runtime freezes at write time; null means nothing in the bucket was priced (never that it was free). Only managed providers are priced (on the runtime), so cost reflects managed usage; BYOK usage carries no LLM cost.
|
|
1500
1500
|
*
|
|
1501
1501
|
*/
|
|
1502
1502
|
static getProjectUsage(options) {
|
|
@@ -1521,7 +1521,7 @@ var Providers = class {
|
|
|
1521
1521
|
/**
|
|
1522
1522
|
* Register a provider (managed or BYOK)
|
|
1523
1523
|
*
|
|
1524
|
-
* Register a managed provider (naturali-keyed, priced on
|
|
1524
|
+
* Register a managed provider (naturali-keyed, priced on the runtime) or a BYOK provider (your credentials, stored write-only and never priced). See ProviderCreate for the fields each mode takes.
|
|
1525
1525
|
*
|
|
1526
1526
|
*/
|
|
1527
1527
|
static createProvider(options) {
|
|
@@ -1537,7 +1537,7 @@ var Providers = class {
|
|
|
1537
1537
|
/**
|
|
1538
1538
|
* Delete a provider
|
|
1539
1539
|
*
|
|
1540
|
-
* Deletes the backing
|
|
1540
|
+
* Deletes the backing provider record on the runtime and its secret. Returns 409 if the provider is still referenced by live resources (agents) — detach those first. `force=true` clears only soft dependents (price overrides, usage history); live references always block deletion.
|
|
1541
1541
|
*
|
|
1542
1542
|
*/
|
|
1543
1543
|
static deleteProvider(options) {
|
|
@@ -1576,7 +1576,7 @@ var Sessions = class {
|
|
|
1576
1576
|
/**
|
|
1577
1577
|
* Open a session
|
|
1578
1578
|
*
|
|
1579
|
-
* Opens a durable session against the agent. The session accumulates messages and is resumable by id; its lifecycle (open / closed / expired) and configuration live in the backing
|
|
1579
|
+
* Opens a durable session against the agent. The session accumulates messages and is resumable by id; its lifecycle (open / closed / expired) and configuration live in the backing runtime session.
|
|
1580
1580
|
*
|
|
1581
1581
|
*/
|
|
1582
1582
|
static createSession(options) {
|
|
@@ -1592,7 +1592,7 @@ var Sessions = class {
|
|
|
1592
1592
|
/**
|
|
1593
1593
|
* Get a session
|
|
1594
1594
|
*
|
|
1595
|
-
* Returns the session's current state — status, activity timestamps and configuration — read live from the backing
|
|
1595
|
+
* Returns the session's current state — status, activity timestamps and configuration — read live from the backing runtime session, so a resumed session reflects everything that has happened since it was opened.
|
|
1596
1596
|
*
|
|
1597
1597
|
*/
|
|
1598
1598
|
static getSession(options) {
|
|
@@ -1765,7 +1765,7 @@ var Tools = class {
|
|
|
1765
1765
|
/**
|
|
1766
1766
|
* Delete a tool
|
|
1767
1767
|
*
|
|
1768
|
-
* Deletes the backing
|
|
1768
|
+
* Deletes the backing runtime tool. Returns 409 if the tool is still attached to an agent (detach it first).
|
|
1769
1769
|
*
|
|
1770
1770
|
*/
|
|
1771
1771
|
static deleteTool(options) {
|
|
@@ -2387,7 +2387,7 @@ const routes = {
|
|
|
2387
2387
|
},
|
|
2388
2388
|
{
|
|
2389
2389
|
"name": "model",
|
|
2390
|
-
"description": "Model string
|
|
2390
|
+
"description": "Model string the runtime sends (see /v1/models provider_model). Defaults to the provider's default model.",
|
|
2391
2391
|
"required": false,
|
|
2392
2392
|
"type": "string",
|
|
2393
2393
|
"in": "body"
|
|
@@ -2433,6 +2433,13 @@ const routes = {
|
|
|
2433
2433
|
"required": false,
|
|
2434
2434
|
"type": "string",
|
|
2435
2435
|
"in": "body"
|
|
2436
|
+
},
|
|
2437
|
+
{
|
|
2438
|
+
"name": "output_schema",
|
|
2439
|
+
"description": "JSON Schema describing the structured object the model must return. When set, a non-streaming generation is constrained to it and the parsed value comes back as `object` on the generation result. Omit (the default) to leave the output unconstrained. Streaming generations are unaffected.\n",
|
|
2440
|
+
"required": false,
|
|
2441
|
+
"type": "object",
|
|
2442
|
+
"in": "body"
|
|
2436
2443
|
}
|
|
2437
2444
|
]
|
|
2438
2445
|
},
|
|
@@ -2461,7 +2468,7 @@ const routes = {
|
|
|
2461
2468
|
"update-agent": {
|
|
2462
2469
|
serviceClass: "Agents",
|
|
2463
2470
|
operationId: "updateAgent",
|
|
2464
|
-
description: "Change the bound provider, name, model, instructions, sampling/step config, attached tools (tool_ids/tool_choice), or the naturali-side status. At least one field is required.",
|
|
2471
|
+
description: "Change the bound provider, name, model, instructions, sampling/step config, attached tools (tool_ids/tool_choice), the structured-output schema (output_schema), or the naturali-side status. At least one field is required.",
|
|
2465
2472
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/agents",
|
|
2466
2473
|
httpMethod: "patch",
|
|
2467
2474
|
pathParams: ["project_id", "agent_id"],
|
|
@@ -2544,6 +2551,13 @@ const routes = {
|
|
|
2544
2551
|
"type": "string",
|
|
2545
2552
|
"in": "body"
|
|
2546
2553
|
},
|
|
2554
|
+
{
|
|
2555
|
+
"name": "output_schema",
|
|
2556
|
+
"description": "Replace the agent's structured-output schema. An object constrains non-streaming generations to it; `null` clears it and leaves the output unconstrained.\n",
|
|
2557
|
+
"required": false,
|
|
2558
|
+
"type": "object",
|
|
2559
|
+
"in": "body"
|
|
2560
|
+
},
|
|
2547
2561
|
{
|
|
2548
2562
|
"name": "status",
|
|
2549
2563
|
"description": "",
|
|
@@ -2556,7 +2570,7 @@ const routes = {
|
|
|
2556
2570
|
"delete-agent": {
|
|
2557
2571
|
serviceClass: "Agents",
|
|
2558
2572
|
operationId: "deleteAgent",
|
|
2559
|
-
description: "Deletes the backing
|
|
2573
|
+
description: "Deletes the backing runtime agent. Returns 409 if the agent still has dependent generations or traces — pass `force=true` to delete those along with the agent (destructive and irreversible).",
|
|
2560
2574
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/agents",
|
|
2561
2575
|
httpMethod: "delete",
|
|
2562
2576
|
pathParams: ["project_id", "agent_id"],
|
|
@@ -3325,7 +3339,7 @@ const routes = {
|
|
|
3325
3339
|
"list-channel-conversations": {
|
|
3326
3340
|
serviceClass: "Channels",
|
|
3327
3341
|
operationId: "listChannelConversations",
|
|
3328
|
-
description: "A cursor page of the channel's conversations, newest first. A conversation is one contact's dialogue on the channel — the continuity anchor that resumes the same
|
|
3342
|
+
description: "A cursor page of the channel's conversations, newest first. A conversation is one contact's dialogue on the channel — the continuity anchor that resumes the same runtime session instead of starting fresh per message — so this is the read path for who has talked to the channel and which actor/session their dialogue resolved to. Conversations are created by the inbound path (the WhatsApp webhook, the Discord gateway worker) when a real message arrives; there is no way to create one directly.",
|
|
3329
3343
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/channels",
|
|
3330
3344
|
httpMethod: "get",
|
|
3331
3345
|
pathParams: ["project_id", "channel_id"],
|
|
@@ -3419,7 +3433,7 @@ const routes = {
|
|
|
3419
3433
|
"list-channel-conversation-messages": {
|
|
3420
3434
|
serviceClass: "Channels",
|
|
3421
3435
|
operationId: "listChannelConversationMessages",
|
|
3422
|
-
description: "The conversation's messages, oldest first. naturali stores no message bodies — the dialogue lives in the
|
|
3436
|
+
description: "The conversation's messages, oldest first. naturali stores no message bodies — the dialogue lives in the runtime session the conversation maps to, so this reads through to the runtime. Pagination is `limit`/`offset` rather than an opaque cursor because the upstream is offset-based over a stable `position` ordering.",
|
|
3423
3437
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/channels",
|
|
3424
3438
|
httpMethod: "get",
|
|
3425
3439
|
pathParams: [
|
|
@@ -3536,7 +3550,7 @@ const routes = {
|
|
|
3536
3550
|
"create-contact": {
|
|
3537
3551
|
serviceClass: "Contacts",
|
|
3538
3552
|
operationId: "createContact",
|
|
3539
|
-
description: "Record a contact the customer already knows about, optionally with the identifiers it is expected to arrive at. Optional by design — the inbound path creates contacts on its own. This is for the embedder who has a user in their own system and wants naturali to agree about who that is before the first message, which is what makes `external_id` (and, through it, a session's `tool_context`) useful. No
|
|
3553
|
+
description: "Record a contact the customer already knows about, optionally with the identifiers it is expected to arrive at. Optional by design — the inbound path creates contacts on its own. This is for the embedder who has a user in their own system and wants naturali to agree about who that is before the first message, which is what makes `external_id` (and, through it, a session's `tool_context`) useful. No runtime actor is created here; the contact gets one on first need.",
|
|
3540
3554
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/contacts",
|
|
3541
3555
|
httpMethod: "post",
|
|
3542
3556
|
pathParams: ["project_id"],
|
|
@@ -3650,7 +3664,7 @@ const routes = {
|
|
|
3650
3664
|
"delete-contact": {
|
|
3651
3665
|
serviceClass: "Contacts",
|
|
3652
3666
|
operationId: "deleteContact",
|
|
3653
|
-
description: "**Erasure (C4/LGPD).** Not a soft delete and not reversible: the contact's sessions — with their messages and media — its
|
|
3667
|
+
description: "**Erasure (C4/LGPD).** Not a soft delete and not reversible: the contact's sessions — with their messages and media — its runtime actor, its memory container and every identifier it was reachable at are removed, along with the merge records that reference it. The upstream deletes happen first, so a failure there aborts before the local pointers are dropped and a retry can still find what is left. A contact that was merged into another cannot be erased directly: its data lives with the survivor, so erase that one.",
|
|
3654
3668
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/contacts",
|
|
3655
3669
|
httpMethod: "delete",
|
|
3656
3670
|
pathParams: ["project_id", "contact_id"],
|
|
@@ -3776,7 +3790,7 @@ const routes = {
|
|
|
3776
3790
|
"merge-contact": {
|
|
3777
3791
|
serviceClass: "Contacts",
|
|
3778
3792
|
operationId: "mergeContact",
|
|
3779
|
-
description: "Fold `source_contact_id` into this contact — \"same human, two identifiers\" (C4). What moves: every identity and every conversation, so the survivor's history is the union of both. What is *shared* rather than moved: agent memory —
|
|
3793
|
+
description: "Fold `source_contact_id` into this contact — \"same human, two identifiers\" (C4). What moves: every identity and every conversation, so the survivor's history is the union of both. What is *shared* rather than moved: agent memory — the runtime hangs it off the actor, so the source's actor is re-pointed at the survivor's memory container and both keep answering with one recollection. Existing sessions keep working, which is the point of not rewriting them. The source is not deleted: it stays as a tombstone pointing at the survivor, and the returned merge record lists exactly what moved, so the merge can be audited and reverted.",
|
|
3780
3794
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/contacts",
|
|
3781
3795
|
httpMethod: "post",
|
|
3782
3796
|
pathParams: ["project_id", "contact_id"],
|
|
@@ -3916,7 +3930,7 @@ const routes = {
|
|
|
3916
3930
|
"create-generation": {
|
|
3917
3931
|
serviceClass: "Generations",
|
|
3918
3932
|
operationId: "createGeneration",
|
|
3919
|
-
description: "Sends messages to the agent, resolves its tools, and runs the model loop. Returns the final text when `status` is `completed` (plus `object` when the agent has an output schema), or the pending `tool_calls` when `status` is `requires_action`. With `stream: true` the response is a Server-Sent Events stream (Content-Type text/event-stream) proxied from
|
|
3933
|
+
description: "Sends messages to the agent, resolves its tools, and runs the model loop. Returns the final text when `status` is `completed` (plus `object` when the agent has an output schema), or the pending `tool_calls` when `status` is `requires_action`. With `stream: true` the response is a Server-Sent Events stream (Content-Type text/event-stream) proxied from the runtime instead of a single JSON body.",
|
|
3920
3934
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/generations",
|
|
3921
3935
|
httpMethod: "post",
|
|
3922
3936
|
pathParams: ["project_id", "agent_id"],
|
|
@@ -3998,7 +4012,7 @@ const routes = {
|
|
|
3998
4012
|
"get-generation-usage": {
|
|
3999
4013
|
serviceClass: "Generations",
|
|
4000
4014
|
operationId: "getGenerationUsage",
|
|
4001
|
-
description: "What this one generation cost, and the tokens it was charged on — the billing-grade receipt
|
|
4015
|
+
description: "What this one generation cost, and the tokens it was charged on — the billing-grade receipt the runtime froze at write time, per model line item. This is the per-generation grain that `GET /v1/projects/{project_id}/usage` cannot express: that meter buckets a whole project by model, agent, run, day or meter type, and a run can hold more than one generation. Use this to price a single turn, and the project meter to roll spend up. `cost_usd` is `null` when nothing was priced — never that the work was free. Only naturali-managed providers are priced; a BYOK generation runs on your own provider account, so it carries no LLM cost here (its tokens are still reported). A generation belonging to another project responds `404`, not `403`.",
|
|
4002
4016
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/generations",
|
|
4003
4017
|
httpMethod: "get",
|
|
4004
4018
|
pathParams: ["project_id", "generation_id"],
|
|
@@ -4324,7 +4338,7 @@ const routes = {
|
|
|
4324
4338
|
},
|
|
4325
4339
|
{
|
|
4326
4340
|
"name": "document_id",
|
|
4327
|
-
"description": "Knowledge document public ID (doc_ prefix) — the
|
|
4341
|
+
"description": "Knowledge document public ID (doc_ prefix) — the runtime document id.",
|
|
4328
4342
|
"required": true,
|
|
4329
4343
|
"type": "string",
|
|
4330
4344
|
"in": "path"
|
|
@@ -4360,7 +4374,7 @@ const routes = {
|
|
|
4360
4374
|
},
|
|
4361
4375
|
{
|
|
4362
4376
|
"name": "document_id",
|
|
4363
|
-
"description": "Knowledge document public ID (doc_ prefix) — the
|
|
4377
|
+
"description": "Knowledge document public ID (doc_ prefix) — the runtime document id.",
|
|
4364
4378
|
"required": true,
|
|
4365
4379
|
"type": "string",
|
|
4366
4380
|
"in": "path"
|
|
@@ -4396,7 +4410,7 @@ const routes = {
|
|
|
4396
4410
|
},
|
|
4397
4411
|
{
|
|
4398
4412
|
"name": "document_id",
|
|
4399
|
-
"description": "Knowledge document public ID (doc_ prefix) — the
|
|
4413
|
+
"description": "Knowledge document public ID (doc_ prefix) — the runtime document id.",
|
|
4400
4414
|
"required": true,
|
|
4401
4415
|
"type": "string",
|
|
4402
4416
|
"in": "path"
|
|
@@ -4443,7 +4457,7 @@ const routes = {
|
|
|
4443
4457
|
},
|
|
4444
4458
|
{
|
|
4445
4459
|
"name": "provider",
|
|
4446
|
-
"description": "Filter by the
|
|
4460
|
+
"description": "Filter by the provider slug that serves the model.",
|
|
4447
4461
|
"required": false,
|
|
4448
4462
|
"type": "string",
|
|
4449
4463
|
"in": "query"
|
|
@@ -4576,7 +4590,7 @@ const routes = {
|
|
|
4576
4590
|
"delete-project": {
|
|
4577
4591
|
serviceClass: "Projects",
|
|
4578
4592
|
operationId: "deleteProject",
|
|
4579
|
-
description: "Permanently deletes the project and its backing
|
|
4593
|
+
description: "Permanently deletes the project and its backing runtime project. Fails with 409 if the runtime project still has dependent resources — remove them first, or pass `force=true` to delete the project and all its dependents (agents, providers, tools, sessions, generations, traces). Forcing is destructive and irreversible.",
|
|
4580
4594
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/projects",
|
|
4581
4595
|
httpMethod: "delete",
|
|
4582
4596
|
pathParams: ["project_id"],
|
|
@@ -4598,7 +4612,7 @@ const routes = {
|
|
|
4598
4612
|
"get-project-usage": {
|
|
4599
4613
|
serviceClass: "Projects",
|
|
4600
4614
|
operationId: "getProjectUsage",
|
|
4601
|
-
description: "The per-project meter — the re-billing view (A11/C12/P3). Aggregates the project's usage over an optional [from, to] window, bucketed by a single dimension. Costs are the billing-grade cost_usd
|
|
4615
|
+
description: "The per-project meter — the re-billing view (A11/C12/P3). Aggregates the project's usage over an optional [from, to] window, bucketed by a single dimension. Costs are the billing-grade cost_usd the runtime freezes at write time; null means nothing in the bucket was priced (never that it was free). Only managed providers are priced (on the runtime), so cost reflects managed usage; BYOK usage carries no LLM cost.",
|
|
4602
4616
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/projects",
|
|
4603
4617
|
httpMethod: "get",
|
|
4604
4618
|
pathParams: ["project_id"],
|
|
@@ -4673,7 +4687,7 @@ const routes = {
|
|
|
4673
4687
|
"create-provider": {
|
|
4674
4688
|
serviceClass: "Providers",
|
|
4675
4689
|
operationId: "createProvider",
|
|
4676
|
-
description: "Register a managed provider (naturali-keyed, priced on
|
|
4690
|
+
description: "Register a managed provider (naturali-keyed, priced on the runtime) or a BYOK provider (your credentials, stored write-only and never priced). See ProviderCreate for the fields each mode takes.",
|
|
4677
4691
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/providers",
|
|
4678
4692
|
httpMethod: "post",
|
|
4679
4693
|
pathParams: ["project_id"],
|
|
@@ -4702,14 +4716,14 @@ const routes = {
|
|
|
4702
4716
|
},
|
|
4703
4717
|
{
|
|
4704
4718
|
"name": "provider",
|
|
4705
|
-
"description": "BYOK only — the
|
|
4719
|
+
"description": "BYOK only — the provider slug.",
|
|
4706
4720
|
"required": false,
|
|
4707
4721
|
"type": "string",
|
|
4708
4722
|
"in": "body"
|
|
4709
4723
|
},
|
|
4710
4724
|
{
|
|
4711
4725
|
"name": "default_model",
|
|
4712
|
-
"description": "BYOK only — model string
|
|
4726
|
+
"description": "BYOK only — model string the runtime sends (see /v1/models provider_model).",
|
|
4713
4727
|
"required": false,
|
|
4714
4728
|
"type": "string",
|
|
4715
4729
|
"in": "body"
|
|
@@ -4822,7 +4836,7 @@ const routes = {
|
|
|
4822
4836
|
"delete-provider": {
|
|
4823
4837
|
serviceClass: "Providers",
|
|
4824
4838
|
operationId: "deleteProvider",
|
|
4825
|
-
description: "Deletes the backing
|
|
4839
|
+
description: "Deletes the backing provider record on the runtime and its secret. Returns 409 if the provider is still referenced by live resources (agents) — detach those first. `force=true` clears only soft dependents (price overrides, usage history); live references always block deletion.",
|
|
4826
4840
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/providers",
|
|
4827
4841
|
httpMethod: "delete",
|
|
4828
4842
|
pathParams: ["project_id", "provider_id"],
|
|
@@ -4844,7 +4858,7 @@ const routes = {
|
|
|
4844
4858
|
},
|
|
4845
4859
|
{
|
|
4846
4860
|
"name": "force",
|
|
4847
|
-
"description": "When true, also clear the provider's soft dependents (price overrides, usage history)
|
|
4861
|
+
"description": "When true, also clear the provider's soft dependents (price overrides, usage history) on the runtime. Live references (agents) always block deletion.\n",
|
|
4848
4862
|
"required": false,
|
|
4849
4863
|
"type": "boolean",
|
|
4850
4864
|
"in": "query"
|
|
@@ -4854,7 +4868,7 @@ const routes = {
|
|
|
4854
4868
|
"create-session": {
|
|
4855
4869
|
serviceClass: "Sessions",
|
|
4856
4870
|
operationId: "createSession",
|
|
4857
|
-
description: "Opens a durable session against the agent. The session accumulates messages and is resumable by id; its lifecycle (open / closed / expired) and configuration live in the backing
|
|
4871
|
+
description: "Opens a durable session against the agent. The session accumulates messages and is resumable by id; its lifecycle (open / closed / expired) and configuration live in the backing runtime session.",
|
|
4858
4872
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/sessions",
|
|
4859
4873
|
httpMethod: "post",
|
|
4860
4874
|
pathParams: ["project_id", "agent_id"],
|
|
@@ -4883,14 +4897,14 @@ const routes = {
|
|
|
4883
4897
|
},
|
|
4884
4898
|
{
|
|
4885
4899
|
"name": "contact_id",
|
|
4886
|
-
"description": "The contact the session is for (Contacts API, §6). naturali resolves it to the contact's
|
|
4900
|
+
"description": "The contact the session is for (Contacts API, §6). naturali resolves it to the contact's runtime actor — minting one on first need — so a web or in-app session gets the same continuity, memory and history a channel conversation gets, instead of a throwaway identity per session. When the contact has an `external_id` it rides along in `tool_context` as `actor_external_id`, so the customer's own HTTP tools receive the user reference they already key on; an explicit `tool_context` entry still wins. Mutually exclusive with `actor_id`.\n",
|
|
4887
4901
|
"required": false,
|
|
4888
4902
|
"type": "string",
|
|
4889
4903
|
"in": "body"
|
|
4890
4904
|
},
|
|
4891
4905
|
{
|
|
4892
4906
|
"name": "actor_id",
|
|
4893
|
-
"description": "Public ID of an existing actor to attach as the user actor. A
|
|
4907
|
+
"description": "Public ID of an existing actor to attach as the user actor. A runtime id showing through the public contract; prefer `contact_id`. Mutually exclusive with it.\n",
|
|
4894
4908
|
"required": false,
|
|
4895
4909
|
"type": "string",
|
|
4896
4910
|
"in": "body"
|
|
@@ -4928,7 +4942,7 @@ const routes = {
|
|
|
4928
4942
|
"get-session": {
|
|
4929
4943
|
serviceClass: "Sessions",
|
|
4930
4944
|
operationId: "getSession",
|
|
4931
|
-
description: "Returns the session's current state — status, activity timestamps and configuration — read live from the backing
|
|
4945
|
+
description: "Returns the session's current state — status, activity timestamps and configuration — read live from the backing runtime session, so a resumed session reflects everything that has happened since it was opened.",
|
|
4932
4946
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/sessions",
|
|
4933
4947
|
httpMethod: "get",
|
|
4934
4948
|
pathParams: [
|
|
@@ -5579,7 +5593,7 @@ const routes = {
|
|
|
5579
5593
|
"delete-tool": {
|
|
5580
5594
|
serviceClass: "Tools",
|
|
5581
5595
|
operationId: "deleteTool",
|
|
5582
|
-
description: "Deletes the backing
|
|
5596
|
+
description: "Deletes the backing runtime tool. Returns 409 if the tool is still attached to an agent (detach it first).",
|
|
5583
5597
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/tools",
|
|
5584
5598
|
httpMethod: "delete",
|
|
5585
5599
|
pathParams: ["project_id", "tool_id"],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@naturali/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.40.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.40.0"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
36
|
"generate": "tsx scripts/generate.ts",
|