@naturali/cli 0.176.2 → 0.177.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 +371 -371
- package/package.json +3 -3
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.
|
|
20
|
+
var version = "0.177.0";
|
|
21
21
|
//#endregion
|
|
22
22
|
//#region ../sdk/src/generated/core/bodySerializer.gen.ts
|
|
23
23
|
const serializeFormDataPair = (data, key, value) => {
|
|
@@ -6644,7 +6644,7 @@ const routes = {
|
|
|
6644
6644
|
serviceClass: "Activity",
|
|
6645
6645
|
operationId: "listActivity",
|
|
6646
6646
|
description: "Returns activity entries for a project, newest first, filterable by kind, severity, agent, generation and orchestration run — every filter composable with the rest. Paginated with an opaque cursor rather than offset/limit — pass the previous page's `next_cursor` to fetch the next one; a `null` `next_cursor` means there is no more data.",
|
|
6647
|
-
moduleDocsUrl: "https://
|
|
6647
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/activity",
|
|
6648
6648
|
httpMethod: "get",
|
|
6649
6649
|
pathParams: ["project_id"],
|
|
6650
6650
|
queryParams: [
|
|
@@ -6721,7 +6721,7 @@ const routes = {
|
|
|
6721
6721
|
serviceClass: "Activity",
|
|
6722
6722
|
operationId: "exportActivity",
|
|
6723
6723
|
description: "Streams a project's activity entries as newline-delimited JSON — one entry object per line, **oldest first**, where the feed itself reads newest first: a feed answers what just happened, and a file is read start to end. `project_id` is required: the export is per-project by design. Filters behave exactly as they do on the list endpoint.",
|
|
6724
|
-
moduleDocsUrl: "https://
|
|
6724
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/activity",
|
|
6725
6725
|
httpMethod: "get",
|
|
6726
6726
|
pathParams: ["project_id"],
|
|
6727
6727
|
queryParams: [
|
|
@@ -6782,7 +6782,7 @@ const routes = {
|
|
|
6782
6782
|
serviceClass: "Actors",
|
|
6783
6783
|
operationId: "listActors",
|
|
6784
6784
|
description: "Returns all actors in the project named in the path.",
|
|
6785
|
-
moduleDocsUrl: "https://
|
|
6785
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/actors",
|
|
6786
6786
|
httpMethod: "get",
|
|
6787
6787
|
pathParams: ["project_id"],
|
|
6788
6788
|
queryParams: [
|
|
@@ -6867,7 +6867,7 @@ const routes = {
|
|
|
6867
6867
|
serviceClass: "Actors",
|
|
6868
6868
|
operationId: "createActor",
|
|
6869
6869
|
description: "Creates a new actor in the project named in the path.",
|
|
6870
|
-
moduleDocsUrl: "https://
|
|
6870
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/actors",
|
|
6871
6871
|
httpMethod: "post",
|
|
6872
6872
|
pathParams: ["project_id"],
|
|
6873
6873
|
queryParams: [],
|
|
@@ -6922,7 +6922,7 @@ const routes = {
|
|
|
6922
6922
|
serviceClass: "Actors",
|
|
6923
6923
|
operationId: "getActor",
|
|
6924
6924
|
description: "Returns an actor by its ID",
|
|
6925
|
-
moduleDocsUrl: "https://
|
|
6925
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/actors",
|
|
6926
6926
|
httpMethod: "get",
|
|
6927
6927
|
pathParams: ["project_id", "actor_id"],
|
|
6928
6928
|
queryParams: [],
|
|
@@ -6946,7 +6946,7 @@ const routes = {
|
|
|
6946
6946
|
serviceClass: "Actors",
|
|
6947
6947
|
operationId: "updateActor",
|
|
6948
6948
|
description: "Updates an actor's properties",
|
|
6949
|
-
moduleDocsUrl: "https://
|
|
6949
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/actors",
|
|
6950
6950
|
httpMethod: "patch",
|
|
6951
6951
|
pathParams: ["project_id", "actor_id"],
|
|
6952
6952
|
queryParams: [],
|
|
@@ -7015,7 +7015,7 @@ const routes = {
|
|
|
7015
7015
|
serviceClass: "Actors",
|
|
7016
7016
|
operationId: "deleteActor",
|
|
7017
7017
|
description: "Deletes an actor by its ID",
|
|
7018
|
-
moduleDocsUrl: "https://
|
|
7018
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/actors",
|
|
7019
7019
|
httpMethod: "delete",
|
|
7020
7020
|
pathParams: ["project_id", "actor_id"],
|
|
7021
7021
|
queryParams: [],
|
|
@@ -7039,7 +7039,7 @@ const routes = {
|
|
|
7039
7039
|
serviceClass: "Actors",
|
|
7040
7040
|
operationId: "getActorTags",
|
|
7041
7041
|
description: "Returns all tags attached to the actor",
|
|
7042
|
-
moduleDocsUrl: "https://
|
|
7042
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/actors",
|
|
7043
7043
|
httpMethod: "get",
|
|
7044
7044
|
pathParams: ["project_id", "actor_id"],
|
|
7045
7045
|
queryParams: [],
|
|
@@ -7063,7 +7063,7 @@ const routes = {
|
|
|
7063
7063
|
serviceClass: "Actors",
|
|
7064
7064
|
operationId: "replaceActorTags",
|
|
7065
7065
|
description: "Replaces all tags on the actor with the provided tags (not merged)",
|
|
7066
|
-
moduleDocsUrl: "https://
|
|
7066
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/actors",
|
|
7067
7067
|
httpMethod: "put",
|
|
7068
7068
|
pathParams: ["project_id", "actor_id"],
|
|
7069
7069
|
queryParams: [],
|
|
@@ -7097,7 +7097,7 @@ const routes = {
|
|
|
7097
7097
|
serviceClass: "Actors",
|
|
7098
7098
|
operationId: "mergeActorTags",
|
|
7099
7099
|
description: "Merges provided tags into the actor's existing tags (existing tags are preserved unless overridden)",
|
|
7100
|
-
moduleDocsUrl: "https://
|
|
7100
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/actors",
|
|
7101
7101
|
httpMethod: "patch",
|
|
7102
7102
|
pathParams: ["project_id", "actor_id"],
|
|
7103
7103
|
queryParams: [],
|
|
@@ -7131,7 +7131,7 @@ const routes = {
|
|
|
7131
7131
|
serviceClass: "Channels",
|
|
7132
7132
|
operationId: "listAddresses",
|
|
7133
7133
|
description: "Every identifier this project has seen. An address appears the first time a message arrives from it, so this is what naturali has observed rather than a roster you maintain — most rows carry no `action` of their own and defer to the route table.",
|
|
7134
|
-
moduleDocsUrl: "https://
|
|
7134
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/addresses",
|
|
7135
7135
|
httpMethod: "get",
|
|
7136
7136
|
pathParams: ["project_id"],
|
|
7137
7137
|
queryParams: ["limit", "cursor"],
|
|
@@ -7165,7 +7165,7 @@ const routes = {
|
|
|
7165
7165
|
serviceClass: "Channels",
|
|
7166
7166
|
operationId: "getAddress",
|
|
7167
7167
|
description: "Reads one identifier's own action, if it has one. An identifier naturali has never seen is a `404`; to set an action without knowing whether it exists, use [`PUT /v1/projects/{project_id}/addresses/{identifier}`](/docs/api/addresses/set-address-action), which upserts.",
|
|
7168
|
-
moduleDocsUrl: "https://
|
|
7168
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/addresses",
|
|
7169
7169
|
httpMethod: "get",
|
|
7170
7170
|
pathParams: ["project_id", "identifier"],
|
|
7171
7171
|
queryParams: [],
|
|
@@ -7189,7 +7189,7 @@ const routes = {
|
|
|
7189
7189
|
serviceClass: "Channels",
|
|
7190
7190
|
operationId: "setAddressAction",
|
|
7191
7191
|
description: "Upserts the address and its `action` in one call. `action: null` forgets the exception and defers back to the route table; any other `action` requires the same fields a route or channel default would (`agent_id` for `agent`, `text` for `message`).",
|
|
7192
|
-
moduleDocsUrl: "https://
|
|
7192
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/addresses",
|
|
7193
7193
|
httpMethod: "put",
|
|
7194
7194
|
pathParams: ["project_id", "identifier"],
|
|
7195
7195
|
queryParams: [],
|
|
@@ -7265,7 +7265,7 @@ const routes = {
|
|
|
7265
7265
|
serviceClass: "Channels",
|
|
7266
7266
|
operationId: "deleteAddress",
|
|
7267
7267
|
description: "Removes the address, its conversations, and its runtime actor and sessions.",
|
|
7268
|
-
moduleDocsUrl: "https://
|
|
7268
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/addresses",
|
|
7269
7269
|
httpMethod: "delete",
|
|
7270
7270
|
pathParams: ["project_id", "identifier"],
|
|
7271
7271
|
queryParams: [],
|
|
@@ -7289,7 +7289,7 @@ const routes = {
|
|
|
7289
7289
|
serviceClass: "Channels",
|
|
7290
7290
|
operationId: "listAddressConversations",
|
|
7291
7291
|
description: "Every conversation this address has had, across every channel it has ever messaged — an address is project-scoped, not channel-scoped.",
|
|
7292
|
-
moduleDocsUrl: "https://
|
|
7292
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/addresses",
|
|
7293
7293
|
httpMethod: "get",
|
|
7294
7294
|
pathParams: ["project_id", "identifier"],
|
|
7295
7295
|
queryParams: ["limit", "cursor"],
|
|
@@ -7330,7 +7330,7 @@ const routes = {
|
|
|
7330
7330
|
serviceClass: "Admin",
|
|
7331
7331
|
operationId: "listUsers",
|
|
7332
7332
|
description: "A cursor page of every account, newest first, each with the plan it is on and the balance of its credit ledger. Needs the `admin` role. `email` narrows the page to one account. It matches the whole address case-insensitively and takes no wildcards: an operator looking for `Ana@Acme.com` finds a row stored as `ana@acme.com`, and there is no substring search across customers' addresses. An account with no subscription reads as `free` with a balance of `0`: the absence of a row is the free plan, and the least-privileged rung is also what any unresolvable lookup should answer.",
|
|
7333
|
-
moduleDocsUrl: "https://
|
|
7333
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/admin",
|
|
7334
7334
|
httpMethod: "get",
|
|
7335
7335
|
pathParams: [],
|
|
7336
7336
|
queryParams: [
|
|
@@ -7368,7 +7368,7 @@ const routes = {
|
|
|
7368
7368
|
serviceClass: "Admin",
|
|
7369
7369
|
operationId: "updateUserRoles",
|
|
7370
7370
|
description: "Replaces the platform roles of any user. Needs the `admin` role, and each role that changes needs the caller to hold the role that grants it (today `admin` grants `admin`). Values outside the catalog are rejected with a 400, and a caller cannot remove their own `admin` role.",
|
|
7371
|
-
moduleDocsUrl: "https://
|
|
7371
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/admin",
|
|
7372
7372
|
httpMethod: "put",
|
|
7373
7373
|
pathParams: ["user_id"],
|
|
7374
7374
|
queryParams: [],
|
|
@@ -7392,7 +7392,7 @@ const routes = {
|
|
|
7392
7392
|
serviceClass: "Admin",
|
|
7393
7393
|
operationId: "listUserPlanHistory",
|
|
7394
7394
|
description: "A cursor page of the account's plan history, newest first, and the rung it is on now. Needs the `admin` role. The history is append-only, so this is the record of who put the account where and why — nothing edits or removes a line. `plan` at the top level is the same value every entitlement check resolves, so one response answers both \"what plan is this?\" and \"how did it get there?\".",
|
|
7395
|
-
moduleDocsUrl: "https://
|
|
7395
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/admin",
|
|
7396
7396
|
httpMethod: "get",
|
|
7397
7397
|
pathParams: ["user_id"],
|
|
7398
7398
|
queryParams: ["limit", "cursor"],
|
|
@@ -7426,7 +7426,7 @@ const routes = {
|
|
|
7426
7426
|
serviceClass: "Admin",
|
|
7427
7427
|
operationId: "grantUserPlan",
|
|
7428
7428
|
description: "Puts the account on a rung of the infra ladder. Needs the `admin` role. `PUT` because an account is on exactly one rung at a time, but the change is **recorded rather than overwritten**: the plan history is append-only and the newest line is the account's plan. Setting the rung it already holds still writes a line — a re-confirmation is an act worth a record, and the `reason` given with it would otherwise have nowhere to go. Read the history back with `GET` on this path. An upgrade takes effect at once. A downgrade is the same call with a lower rung and takes effect when the month turns: until then `plan` stays the rung held and `next_plan` names the new one. At the turn, active channels past the new rung's allowance are disabled, oldest first; an upgrade re-enables them. A rung whose content-retention window a contract sets — `enterprise` — **requires `retention_days`**, since nothing else can answer what that window is and an unanswered one bounds nothing. Every other rung sets its own and refuses the field.",
|
|
7429
|
-
moduleDocsUrl: "https://
|
|
7429
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/admin",
|
|
7430
7430
|
httpMethod: "put",
|
|
7431
7431
|
pathParams: ["user_id"],
|
|
7432
7432
|
queryParams: [],
|
|
@@ -7467,7 +7467,7 @@ const routes = {
|
|
|
7467
7467
|
serviceClass: "Admin",
|
|
7468
7468
|
operationId: "listUserCredits",
|
|
7469
7469
|
description: "A cursor page of the account's credit lines, newest first, with the balance they sum to. Needs the `admin` role — including for the account's own owner, who reads their own balance at `GET /v1/users/me/billing` rather than here. That answers what is left; this is the line-by-line record behind it. What an operator reads it for is writing a correction: the line that was wrong stays on the record, so it has to be legible before it can be compensated for.",
|
|
7470
|
-
moduleDocsUrl: "https://
|
|
7470
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/admin",
|
|
7471
7471
|
httpMethod: "get",
|
|
7472
7472
|
pathParams: ["user_id"],
|
|
7473
7473
|
queryParams: ["limit", "cursor"],
|
|
@@ -7501,7 +7501,7 @@ const routes = {
|
|
|
7501
7501
|
serviceClass: "Admin",
|
|
7502
7502
|
operationId: "grantUserCredit",
|
|
7503
7503
|
description: "Writes one line to the account's credit ledger and answers with the balance it produced. Needs the `admin` role. The ledger is append-only and the balance is its sum — there is no balance to set and no line to edit or delete. A mistake is corrected by writing a **negative** `amount_usd`, which leaves the wrong line on the record beside the one that compensates for it. `kind` is required. Money received and credit given away report differently — one is revenue, the other customer-acquisition cost — so the line says which it is rather than defaulting to one of them. The balance this moves is not yet a ceiling anything enforces; turning it into one is a separate mechanism.",
|
|
7504
|
-
moduleDocsUrl: "https://
|
|
7504
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/admin",
|
|
7505
7505
|
httpMethod: "post",
|
|
7506
7506
|
pathParams: ["user_id"],
|
|
7507
7507
|
queryParams: [],
|
|
@@ -7542,7 +7542,7 @@ const routes = {
|
|
|
7542
7542
|
serviceClass: "Admin",
|
|
7543
7543
|
operationId: "getAdminPriceBook",
|
|
7544
7544
|
description: "The upstream runtime's global default prices — the rows carrying neither a provider nor a project, which is all the upstream listing returns, so no tenant's own rates appear here. These are a cost basis, not a tariff: what a customer pays is the plan they bought plus the multiplier in PRICING.md section 3, applied when spend is reconciled. This is the read behind the storage-rate assertion at boot and the pinned embedding rate.",
|
|
7545
|
-
moduleDocsUrl: "https://
|
|
7545
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/admin",
|
|
7546
7546
|
httpMethod: "get",
|
|
7547
7547
|
pathParams: [],
|
|
7548
7548
|
queryParams: [],
|
|
@@ -7554,7 +7554,7 @@ const routes = {
|
|
|
7554
7554
|
serviceClass: "Admin",
|
|
7555
7555
|
operationId: "listUserStatements",
|
|
7556
7556
|
description: "The same statements the account reads at `GET /v1/users/me/statements`, for an operator to bill from. Needs the `admin` role.",
|
|
7557
|
-
moduleDocsUrl: "https://
|
|
7557
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/admin",
|
|
7558
7558
|
httpMethod: "get",
|
|
7559
7559
|
pathParams: ["user_id"],
|
|
7560
7560
|
queryParams: ["limit", "cursor"],
|
|
@@ -7588,7 +7588,7 @@ const routes = {
|
|
|
7588
7588
|
serviceClass: "Admin",
|
|
7589
7589
|
operationId: "listAdminListings",
|
|
7590
7590
|
description: "Every listing in one state, newest first — `in_review` by default, the queue an operator works through.",
|
|
7591
|
-
moduleDocsUrl: "https://
|
|
7591
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/admin",
|
|
7592
7592
|
httpMethod: "get",
|
|
7593
7593
|
pathParams: [],
|
|
7594
7594
|
queryParams: [
|
|
@@ -7626,7 +7626,7 @@ const routes = {
|
|
|
7626
7626
|
serviceClass: "Admin",
|
|
7627
7627
|
operationId: "setAdminListingState",
|
|
7628
7628
|
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`.",
|
|
7629
|
-
moduleDocsUrl: "https://
|
|
7629
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/admin",
|
|
7630
7630
|
httpMethod: "put",
|
|
7631
7631
|
pathParams: ["listing_id"],
|
|
7632
7632
|
queryParams: [],
|
|
@@ -7650,7 +7650,7 @@ const routes = {
|
|
|
7650
7650
|
serviceClass: "Agents",
|
|
7651
7651
|
operationId: "listAgents",
|
|
7652
7652
|
description: "Returns all agents in the project.",
|
|
7653
|
-
moduleDocsUrl: "https://
|
|
7653
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/agents",
|
|
7654
7654
|
httpMethod: "get",
|
|
7655
7655
|
pathParams: ["project_id"],
|
|
7656
7656
|
queryParams: ["limit", "offset"],
|
|
@@ -7684,7 +7684,7 @@ const routes = {
|
|
|
7684
7684
|
serviceClass: "Agents",
|
|
7685
7685
|
operationId: "createAgent",
|
|
7686
7686
|
description: "Creates a new agent bound to an AI provider.",
|
|
7687
|
-
moduleDocsUrl: "https://
|
|
7687
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/agents",
|
|
7688
7688
|
httpMethod: "post",
|
|
7689
7689
|
pathParams: ["project_id"],
|
|
7690
7690
|
queryParams: [],
|
|
@@ -7858,7 +7858,7 @@ const routes = {
|
|
|
7858
7858
|
serviceClass: "Agents",
|
|
7859
7859
|
operationId: "getAgent",
|
|
7860
7860
|
description: "Returns a single agent by ID. A credential scoped to a project the agent is shared with, through an accepted share, reads its `id` and `name` only.",
|
|
7861
|
-
moduleDocsUrl: "https://
|
|
7861
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/agents",
|
|
7862
7862
|
httpMethod: "get",
|
|
7863
7863
|
pathParams: ["project_id", "agent_id"],
|
|
7864
7864
|
queryParams: [],
|
|
@@ -7882,7 +7882,7 @@ const routes = {
|
|
|
7882
7882
|
serviceClass: "Agents",
|
|
7883
7883
|
operationId: "updateAgent",
|
|
7884
7884
|
description: "Updates an existing agent. Identical to PATCH — both perform partial updates.",
|
|
7885
|
-
moduleDocsUrl: "https://
|
|
7885
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/agents",
|
|
7886
7886
|
httpMethod: "put",
|
|
7887
7887
|
pathParams: ["project_id", "agent_id"],
|
|
7888
7888
|
queryParams: [],
|
|
@@ -8077,7 +8077,7 @@ const routes = {
|
|
|
8077
8077
|
serviceClass: "Agents",
|
|
8078
8078
|
operationId: "patchAgent",
|
|
8079
8079
|
description: "Partially updates an existing agent. Identical to PUT — both perform partial updates.",
|
|
8080
|
-
moduleDocsUrl: "https://
|
|
8080
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/agents",
|
|
8081
8081
|
httpMethod: "patch",
|
|
8082
8082
|
pathParams: ["project_id", "agent_id"],
|
|
8083
8083
|
queryParams: [],
|
|
@@ -8272,7 +8272,7 @@ const routes = {
|
|
|
8272
8272
|
serviceClass: "Agents",
|
|
8273
8273
|
operationId: "deleteAgent",
|
|
8274
8274
|
description: "Deletes an agent by ID. Fails with `409` if the agent has dependent generations or traces, or another project has accepted a share of it, unless `force=true` is passed, in which case those generations and traces are deleted along with the agent and the shares are revoked. Every share of the agent is revoked when it is deleted.",
|
|
8275
|
-
moduleDocsUrl: "https://
|
|
8275
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/agents",
|
|
8276
8276
|
httpMethod: "delete",
|
|
8277
8277
|
pathParams: ["project_id", "agent_id"],
|
|
8278
8278
|
queryParams: ["force"],
|
|
@@ -8306,7 +8306,7 @@ const routes = {
|
|
|
8306
8306
|
serviceClass: "Agents",
|
|
8307
8307
|
operationId: "createAgentGeneration",
|
|
8308
8308
|
description: "Sends messages to the agent, resolves its tools, and runs the AI model loop. Background by default: returns `202 Accepted` with a `generation_id` to poll via `GET /v1/projects/{project_id}/generations/{generation_id}`. Pass `?wait=true` to block and receive the result inline, where client tools pause the generation and return `requires_action`. Streaming (`stream: true`) implies waiting. Pass `idempotency_key` to make a retry safe: a request whose key is already claimed runs nothing and answers `202` with the generation the key names. A credential scoped to a project the agent is shared with, through an accepted share, runs it in that project: on the publisher's configuration, recorded, metered and governed in the grantee project.",
|
|
8309
|
-
moduleDocsUrl: "https://
|
|
8309
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/agents",
|
|
8310
8310
|
httpMethod: "post",
|
|
8311
8311
|
pathParams: ["project_id", "agent_id"],
|
|
8312
8312
|
queryParams: ["wait"],
|
|
@@ -8424,7 +8424,7 @@ const routes = {
|
|
|
8424
8424
|
serviceClass: "Agents",
|
|
8425
8425
|
operationId: "submitAgentToolOutputs",
|
|
8426
8426
|
description: "Resumes a generation that was paused due to client tool calls. Provide tool outputs for each pending tool call.",
|
|
8427
|
-
moduleDocsUrl: "https://
|
|
8427
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/agents",
|
|
8428
8428
|
httpMethod: "post",
|
|
8429
8429
|
pathParams: [
|
|
8430
8430
|
"project_id",
|
|
@@ -8469,7 +8469,7 @@ const routes = {
|
|
|
8469
8469
|
serviceClass: "AgentVersions",
|
|
8470
8470
|
operationId: "listAgentVersions",
|
|
8471
8471
|
description: "Returns the agent's archived configurations, newest first. A version is written on create and on every subsequent write that changes the config — through the REST API or a formation apply alike. See [Versioning and Staged Rollout](/docs/modules/agents#versioning-and-staged-rollout).",
|
|
8472
|
-
moduleDocsUrl: "https://
|
|
8472
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/agents",
|
|
8473
8473
|
httpMethod: "get",
|
|
8474
8474
|
pathParams: ["project_id", "agent_id"],
|
|
8475
8475
|
queryParams: ["limit", "offset"],
|
|
@@ -8510,7 +8510,7 @@ const routes = {
|
|
|
8510
8510
|
serviceClass: "AgentVersions",
|
|
8511
8511
|
operationId: "getAgentVersion",
|
|
8512
8512
|
description: "Returns the exact configuration the agent held at a given version, so a generation can be traced back to the config that produced it.",
|
|
8513
|
-
moduleDocsUrl: "https://
|
|
8513
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/agents",
|
|
8514
8514
|
httpMethod: "get",
|
|
8515
8515
|
pathParams: [
|
|
8516
8516
|
"project_id",
|
|
@@ -8548,7 +8548,7 @@ const routes = {
|
|
|
8548
8548
|
serviceClass: "AgentVersions",
|
|
8549
8549
|
operationId: "restoreAgentVersion",
|
|
8550
8550
|
description: "Copies the named version's configuration onto the agent as a **new** version rather than rewinding the counter, so history stays append-only and the versions in between remain retrievable. Restoring the config the agent already holds is a no-op and creates no version. The restored config fully replaces the current one: a field the archived version did not set is cleared, not merged. Restore re-validates the config, so a tool, provider, or guardrail deleted since the snapshot was taken fails the request instead of writing a broken agent.",
|
|
8551
|
-
moduleDocsUrl: "https://
|
|
8551
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/agents",
|
|
8552
8552
|
httpMethod: "post",
|
|
8553
8553
|
pathParams: [
|
|
8554
8554
|
"project_id",
|
|
@@ -8593,7 +8593,7 @@ const routes = {
|
|
|
8593
8593
|
serviceClass: "AgentVersions",
|
|
8594
8594
|
operationId: "setAgentRelease",
|
|
8595
8595
|
description: "Starts serving two archived versions side by side: `canary_percent` of traffic gets `canary_version`, the rest gets `stable_version`. Assignment is deterministic — it hashes the actor behind the request's session (falling back to the session itself), so one end user never flip-flops between configs mid-conversation. Requests with neither are split randomly. While a release is active the agent's live columns act as a **draft**: further edits archive new versions but do not disturb either side of the running split. End the rollout with `promote` or `abort`.",
|
|
8596
|
-
moduleDocsUrl: "https://
|
|
8596
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/agents",
|
|
8597
8597
|
httpMethod: "put",
|
|
8598
8598
|
pathParams: ["project_id", "agent_id"],
|
|
8599
8599
|
queryParams: [],
|
|
@@ -8648,7 +8648,7 @@ const routes = {
|
|
|
8648
8648
|
serviceClass: "AgentVersions",
|
|
8649
8649
|
operationId: "promoteAgentRelease",
|
|
8650
8650
|
description: "Makes the canary version's config the agent's live config and clears the release. The canary is pinned by version, so an edit that landed mid-rollout is not promoted in its place — it stays an unreleased draft in the version history. When the release carries a `promotion_gate`, the eval it names must have a run that finished `completed` with `passed: true` **and** was pinned to the canary version (`agent_version`); otherwise the call is a `409` and the rollout is left running untouched. The run that cleared the gate is recorded as `eval_run_id` on the version that goes live.",
|
|
8651
|
-
moduleDocsUrl: "https://
|
|
8651
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/agents",
|
|
8652
8652
|
httpMethod: "post",
|
|
8653
8653
|
pathParams: ["project_id", "agent_id"],
|
|
8654
8654
|
queryParams: [],
|
|
@@ -8672,7 +8672,7 @@ const routes = {
|
|
|
8672
8672
|
serviceClass: "AgentVersions",
|
|
8673
8673
|
operationId: "abortAgentRelease",
|
|
8674
8674
|
description: "Restores the stable version's config as the agent's live config and clears the release, so all traffic returns to the configuration the rollout was measured against — not to whatever draft the live columns happened to hold.",
|
|
8675
|
-
moduleDocsUrl: "https://
|
|
8675
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/agents",
|
|
8676
8676
|
httpMethod: "post",
|
|
8677
8677
|
pathParams: ["project_id", "agent_id"],
|
|
8678
8678
|
queryParams: [],
|
|
@@ -8696,7 +8696,7 @@ const routes = {
|
|
|
8696
8696
|
serviceClass: "AIProviders",
|
|
8697
8697
|
operationId: "listAiProviders",
|
|
8698
8698
|
description: "Returns a list of AI provider configurations for a project",
|
|
8699
|
-
moduleDocsUrl: "https://
|
|
8699
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/ai-providers",
|
|
8700
8700
|
httpMethod: "get",
|
|
8701
8701
|
pathParams: ["project_id"],
|
|
8702
8702
|
queryParams: ["limit", "offset"],
|
|
@@ -8730,7 +8730,7 @@ const routes = {
|
|
|
8730
8730
|
serviceClass: "AIProviders",
|
|
8731
8731
|
operationId: "createAiProvider",
|
|
8732
8732
|
description: "Creates a new LLM provider configuration. A `bedrock` or `vertex` record must carry a credential of its own — a linked `secret_id`, or an `apiKey` in `config`. Without one the provider SDK signs with the server's own credentials (the AWS default credential chain, Google Application Default Credentials), which is refused with `400 VALIDATION_FAILED` unless the deployment allows it.",
|
|
8733
|
-
moduleDocsUrl: "https://
|
|
8733
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/ai-providers",
|
|
8734
8734
|
httpMethod: "post",
|
|
8735
8735
|
pathParams: ["project_id"],
|
|
8736
8736
|
queryParams: [],
|
|
@@ -8792,7 +8792,7 @@ const routes = {
|
|
|
8792
8792
|
serviceClass: "AIProviders",
|
|
8793
8793
|
operationId: "getAiProvider",
|
|
8794
8794
|
description: "Returns a specific AI provider configuration",
|
|
8795
|
-
moduleDocsUrl: "https://
|
|
8795
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/ai-providers",
|
|
8796
8796
|
httpMethod: "get",
|
|
8797
8797
|
pathParams: ["project_id", "ai_provider_id"],
|
|
8798
8798
|
queryParams: [],
|
|
@@ -8816,7 +8816,7 @@ const routes = {
|
|
|
8816
8816
|
serviceClass: "AIProviders",
|
|
8817
8817
|
operationId: "updateAiProvider",
|
|
8818
8818
|
description: "Updates an AI provider configuration",
|
|
8819
|
-
moduleDocsUrl: "https://
|
|
8819
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/ai-providers",
|
|
8820
8820
|
httpMethod: "patch",
|
|
8821
8821
|
pathParams: ["project_id", "ai_provider_id"],
|
|
8822
8822
|
queryParams: [],
|
|
@@ -8885,7 +8885,7 @@ const routes = {
|
|
|
8885
8885
|
serviceClass: "AIProviders",
|
|
8886
8886
|
operationId: "deleteAiProvider",
|
|
8887
8887
|
description: "Deletes an AI provider configuration. Live references — chats, agents, and model routes whose targets name this provider — always block deletion with `409 AI_PROVIDER_HAS_DEPENDENTS`; `force` does not override them, so delete or repoint those resources first. Soft dependents — price overrides and usage/generation records — also block with `409` unless `force=true`, which deletes the provider's price overrides and unlinks (nulls) its usage history, preserving those rows. The `409` body's `error.meta` reports the counts, a sample of offending IDs, and a `forcible` flag that is `true` when a `force=true` retry would succeed.",
|
|
8888
|
-
moduleDocsUrl: "https://
|
|
8888
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/ai-providers",
|
|
8889
8889
|
httpMethod: "delete",
|
|
8890
8890
|
pathParams: ["project_id", "ai_provider_id"],
|
|
8891
8891
|
queryParams: ["force"],
|
|
@@ -8919,7 +8919,7 @@ const routes = {
|
|
|
8919
8919
|
serviceClass: "AIProviders",
|
|
8920
8920
|
operationId: "listAiProviderModels",
|
|
8921
8921
|
description: "Asks the provider which models it can run, using this provider record's own credentials and configuration, and returns provider-native model ids — the same strings `default_model` and an agent's `model` carry. Which models are reachable is a property of the credential, not of the provider type: a Vertex provider sees only the publisher models its Google Cloud project and location serve, and a Bedrock provider only the foundation models enabled in its region. Reading the list is how a caller avoids pinning a model that fails at generation time. Not every provider type can answer. `azure` lists deployments an operator named rather than models, and `ollama` lists whatever was pulled onto that host, so both return `400 MODEL_LISTING_UNSUPPORTED`. Listing resolves credentials the same way generation does, so a record that can generate can list. The API-key types (`openai`, `groq`, `xai`, `gateway`, `custom`, `anthropic`, `google`) use the record's linked secret and cannot list without one. `bedrock` and `vertex` use the linked secret — IAM keys or a Bedrock API key, a Google service-account key. A record with no `secret_id` would fall back to the server's own credentials (the AWS default credential chain, Google Application Default Credentials); it can list only on a deployment that allows a record to use them, and returns `400 AI_PROVIDER_MISCONFIGURED` otherwise. A Vertex record needs no `config.project` when its secret is a service-account key, since the key file names its own project. A Vertex record in express mode (API key) cannot list at all: the publisher-model listing rejects API keys and needs a credential that asserts a principal, so it returns `400 MODEL_LISTING_UNSUPPORTED`. The Vertex answer is the publisher catalogue the record's `config.location` region serves. The project behind the credential is billed and quota'd for the call but does not filter the result, so a listed model may still be unavailable to that project at generation time.",
|
|
8922
|
-
moduleDocsUrl: "https://
|
|
8922
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/ai-providers",
|
|
8923
8923
|
httpMethod: "get",
|
|
8924
8924
|
pathParams: ["project_id", "ai_provider_id"],
|
|
8925
8925
|
queryParams: [],
|
|
@@ -8943,7 +8943,7 @@ const routes = {
|
|
|
8943
8943
|
serviceClass: "AIProviders",
|
|
8944
8944
|
operationId: "getAiProviderPrices",
|
|
8945
8945
|
description: "Returns the per-provider price overrides for this AI provider instance. An override prices this specific provider (e.g. an enterprise-negotiated rate or a gateway with markup) and wins over the global default at cost time. Authorized by the caller's access to the provider's project — so, unlike the global price book, a project's own overrides are visible here.",
|
|
8946
|
-
moduleDocsUrl: "https://
|
|
8946
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/ai-providers",
|
|
8947
8947
|
httpMethod: "get",
|
|
8948
8948
|
pathParams: ["project_id", "ai_provider_id"],
|
|
8949
8949
|
queryParams: [],
|
|
@@ -8967,7 +8967,7 @@ const routes = {
|
|
|
8967
8967
|
serviceClass: "AIProviders",
|
|
8968
8968
|
operationId: "updateAiProviderPrices",
|
|
8969
8969
|
description: "Upserts price overrides for this AI provider instance, keyed on (model, effective_from). The provider slug is taken from the AI provider itself, so only the model, rates, and effective_from are supplied. Authorized by the caller's access to the provider's project. `effective_from` must be in the future once the (model, component) has a price row — past prices are immutable, so corrections ship as new future-dated rows. A first price for a (model, component) nothing prices yet may be dated now or earlier, so a new provider is never live and unpriced.",
|
|
8970
|
-
moduleDocsUrl: "https://
|
|
8970
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/ai-providers",
|
|
8971
8971
|
httpMethod: "put",
|
|
8972
8972
|
pathParams: ["project_id", "ai_provider_id"],
|
|
8973
8973
|
queryParams: [],
|
|
@@ -9001,7 +9001,7 @@ const routes = {
|
|
|
9001
9001
|
serviceClass: "APIKeys",
|
|
9002
9002
|
operationId: "listApiKeys",
|
|
9003
9003
|
description: "Lists API keys accessible to the caller. A project-scoped credential sees only keys in its project; an account-scoped credential sees all keys in the account. Raw secrets are never returned.",
|
|
9004
|
-
moduleDocsUrl: "https://
|
|
9004
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/api-keys",
|
|
9005
9005
|
httpMethod: "get",
|
|
9006
9006
|
pathParams: [],
|
|
9007
9007
|
queryParams: ["limit", "cursor"],
|
|
@@ -9025,7 +9025,7 @@ const routes = {
|
|
|
9025
9025
|
serviceClass: "APIKeys",
|
|
9026
9026
|
operationId: "createApiKey",
|
|
9027
9027
|
description: "Creates an API key. When `project_id` is set the key is scoped to that project (the default and recommended stance); omit it for an account-scoped key. `capabilities` narrows what the key may do; when omitted the key inherits the creator's capabilities. The raw `key` (nat_sk_…) is returned only in this response. A project-scoped key requires membership of that project. The key carries no role of its own — every request it makes resolves its holder's membership again — so it can never reach past what its minter already had. An account-scoped key requires a credential that is not itself confined to one project. A connected app cannot create keys at all: a grant is revocable and a key is not, so a key minted under a grant would still work after the app was disconnected. Reading and revoking keys stay available.",
|
|
9028
|
-
moduleDocsUrl: "https://
|
|
9028
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/api-keys",
|
|
9029
9029
|
httpMethod: "post",
|
|
9030
9030
|
pathParams: [],
|
|
9031
9031
|
queryParams: [],
|
|
@@ -9059,7 +9059,7 @@ const routes = {
|
|
|
9059
9059
|
serviceClass: "APIKeys",
|
|
9060
9060
|
operationId: "getApiKey",
|
|
9061
9061
|
description: "Returns metadata for an API key. The raw secret is never returned after creation.",
|
|
9062
|
-
moduleDocsUrl: "https://
|
|
9062
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/api-keys",
|
|
9063
9063
|
httpMethod: "get",
|
|
9064
9064
|
pathParams: ["api_key_id"],
|
|
9065
9065
|
queryParams: [],
|
|
@@ -9077,7 +9077,7 @@ const routes = {
|
|
|
9077
9077
|
serviceClass: "APIKeys",
|
|
9078
9078
|
operationId: "updateApiKey",
|
|
9079
9079
|
description: "Rename an API key or replace its capability set. The scope (project vs account) is immutable.",
|
|
9080
|
-
moduleDocsUrl: "https://
|
|
9080
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/api-keys",
|
|
9081
9081
|
httpMethod: "patch",
|
|
9082
9082
|
pathParams: ["api_key_id"],
|
|
9083
9083
|
queryParams: [],
|
|
@@ -9111,7 +9111,7 @@ const routes = {
|
|
|
9111
9111
|
serviceClass: "APIKeys",
|
|
9112
9112
|
operationId: "deleteApiKey",
|
|
9113
9113
|
description: "Revokes an API key immediately. Subsequent use returns 401.",
|
|
9114
|
-
moduleDocsUrl: "https://
|
|
9114
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/api-keys",
|
|
9115
9115
|
httpMethod: "delete",
|
|
9116
9116
|
pathParams: ["api_key_id"],
|
|
9117
9117
|
queryParams: [],
|
|
@@ -9129,7 +9129,7 @@ const routes = {
|
|
|
9129
9129
|
serviceClass: "APIKeys",
|
|
9130
9130
|
operationId: "rotateApiKey",
|
|
9131
9131
|
description: "Issues a new secret for the same key record (same id, scope and capabilities) and invalidates the previous secret. The new raw `key` is returned only in this response. Refused for a connected app, like creation: rotation returns a raw secret for a key the caller need never have held, so it reaches the same place by another door.",
|
|
9132
|
-
moduleDocsUrl: "https://
|
|
9132
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/api-keys",
|
|
9133
9133
|
httpMethod: "post",
|
|
9134
9134
|
pathParams: ["api_key_id"],
|
|
9135
9135
|
queryParams: [],
|
|
@@ -9147,7 +9147,7 @@ const routes = {
|
|
|
9147
9147
|
serviceClass: "Approvals",
|
|
9148
9148
|
operationId: "listApprovals",
|
|
9149
9149
|
description: "Returns approval items for a project, filterable by status, origin, and expiry.",
|
|
9150
|
-
moduleDocsUrl: "https://
|
|
9150
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/approvals",
|
|
9151
9151
|
httpMethod: "get",
|
|
9152
9152
|
pathParams: ["project_id"],
|
|
9153
9153
|
queryParams: [
|
|
@@ -9208,7 +9208,7 @@ const routes = {
|
|
|
9208
9208
|
serviceClass: "Approvals",
|
|
9209
9209
|
operationId: "listApprovalRecurrences",
|
|
9210
9210
|
description: "Read-only rollup answering \"what keeps coming back?\" — groups items by `dedup_key` and returns those recurring at least `min_count` times, most-recurrent first. Each group carries the ordered item chain (via `previous_item_id`) and the resolution reasons in order, so a human can read recurring rejections side by side and graduate the pattern into a guardrail `deny`. Exact-key grouping only; no cluster state is stored.",
|
|
9211
|
-
moduleDocsUrl: "https://
|
|
9211
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/approvals",
|
|
9212
9212
|
httpMethod: "get",
|
|
9213
9213
|
pathParams: ["project_id"],
|
|
9214
9214
|
queryParams: [
|
|
@@ -9261,7 +9261,7 @@ const routes = {
|
|
|
9261
9261
|
serviceClass: "Approvals",
|
|
9262
9262
|
operationId: "getApproval",
|
|
9263
9263
|
description: "Returns a single approval item with its full evidence.",
|
|
9264
|
-
moduleDocsUrl: "https://
|
|
9264
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/approvals",
|
|
9265
9265
|
httpMethod: "get",
|
|
9266
9266
|
pathParams: ["project_id", "approval_id"],
|
|
9267
9267
|
queryParams: [],
|
|
@@ -9285,7 +9285,7 @@ const routes = {
|
|
|
9285
9285
|
serviceClass: "Approvals",
|
|
9286
9286
|
operationId: "approveApproval",
|
|
9287
9287
|
description: "Approves the item. Optionally supply edited `arguments` to replace the proposed arguments (edit-then-approve); the original is preserved on the item. Expiry is re-checked at decision time — an expired item can never be approved.",
|
|
9288
|
-
moduleDocsUrl: "https://
|
|
9288
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/approvals",
|
|
9289
9289
|
httpMethod: "post",
|
|
9290
9290
|
pathParams: ["project_id", "approval_id"],
|
|
9291
9291
|
queryParams: [],
|
|
@@ -9326,7 +9326,7 @@ const routes = {
|
|
|
9326
9326
|
serviceClass: "Approvals",
|
|
9327
9327
|
operationId: "rejectApproval",
|
|
9328
9328
|
description: "Rejects the item. A reason is required and preserved on the item.",
|
|
9329
|
-
moduleDocsUrl: "https://
|
|
9329
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/approvals",
|
|
9330
9330
|
httpMethod: "post",
|
|
9331
9331
|
pathParams: ["project_id", "approval_id"],
|
|
9332
9332
|
queryParams: [],
|
|
@@ -9360,7 +9360,7 @@ const routes = {
|
|
|
9360
9360
|
serviceClass: "Assistant",
|
|
9361
9361
|
operationId: "listAssistantGrants",
|
|
9362
9362
|
description: "Lists the caller's assistant grants — one per channel identity that may operate their account. Grants belong to the account, so this is the caller's own set regardless of which projects they own.",
|
|
9363
|
-
moduleDocsUrl: "https://
|
|
9363
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/assistant",
|
|
9364
9364
|
httpMethod: "get",
|
|
9365
9365
|
pathParams: [],
|
|
9366
9366
|
queryParams: ["limit", "cursor"],
|
|
@@ -9384,7 +9384,7 @@ const routes = {
|
|
|
9384
9384
|
serviceClass: "Assistant",
|
|
9385
9385
|
operationId: "revokeAssistantGrant",
|
|
9386
9386
|
description: "Revokes the grant, disabling the Assistant for that identity. The grant is resolved on every inbound message, so the next one from that identity is refused before the agent is invoked — revocation is immediate, not eventual. The identity is free to link again afterwards.",
|
|
9387
|
-
moduleDocsUrl: "https://
|
|
9387
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/assistant",
|
|
9388
9388
|
httpMethod: "delete",
|
|
9389
9389
|
pathParams: ["grant_id"],
|
|
9390
9390
|
queryParams: [],
|
|
@@ -9402,7 +9402,7 @@ const routes = {
|
|
|
9402
9402
|
serviceClass: "Assistant",
|
|
9403
9403
|
operationId: "previewAssistantLink",
|
|
9404
9404
|
description: "Resolves a link token **without consuming it**, so the confirmation screen can name the identity being linked (\"@user on Discord\") before anyone commits to it. Naming it is what makes a link pasted into the wrong hands fail the human check as well as the server-side binding. Reading is deliberately separate from redeeming: a single-use nonce must not be burned by a link preview, a URL scanner or a browser prefetch.",
|
|
9405
|
-
moduleDocsUrl: "https://
|
|
9405
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/assistant",
|
|
9406
9406
|
httpMethod: "get",
|
|
9407
9407
|
pathParams: [],
|
|
9408
9408
|
queryParams: ["token"],
|
|
@@ -9420,7 +9420,7 @@ const routes = {
|
|
|
9420
9420
|
serviceClass: "Assistant",
|
|
9421
9421
|
operationId: "redeemAssistantLink",
|
|
9422
9422
|
description: "Redeems a link token and creates the grant, binding the channel identity the token carries to the authenticated account. The identity is read from the token server-side — nothing in this request can point the link at a different one. The token is the idempotency key: it is single-use, so a replay of this request fails rather than creating a second grant.",
|
|
9423
|
-
moduleDocsUrl: "https://
|
|
9423
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/assistant",
|
|
9424
9424
|
httpMethod: "post",
|
|
9425
9425
|
pathParams: [],
|
|
9426
9426
|
queryParams: [],
|
|
@@ -9438,7 +9438,7 @@ const routes = {
|
|
|
9438
9438
|
serviceClass: "Assistant",
|
|
9439
9439
|
operationId: "listAssistantMessages",
|
|
9440
9440
|
description: "The newest 100 messages of your conversation with the Assistant in the app, oldest first. An account that has not messaged it yet has an empty conversation.",
|
|
9441
|
-
moduleDocsUrl: "https://
|
|
9441
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/assistant",
|
|
9442
9442
|
httpMethod: "get",
|
|
9443
9443
|
pathParams: [],
|
|
9444
9444
|
queryParams: [],
|
|
@@ -9450,7 +9450,7 @@ const routes = {
|
|
|
9450
9450
|
serviceClass: "Assistant",
|
|
9451
9451
|
operationId: "sendAssistantMessage",
|
|
9452
9452
|
description: "Runs one turn as your account and answers with the messages it added: yours, then the Assistant's reply. The turn is paid from your credit and refused before it runs when the balance is below zero.",
|
|
9453
|
-
moduleDocsUrl: "https://
|
|
9453
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/assistant",
|
|
9454
9454
|
httpMethod: "post",
|
|
9455
9455
|
pathParams: [],
|
|
9456
9456
|
queryParams: [],
|
|
@@ -9468,7 +9468,7 @@ const routes = {
|
|
|
9468
9468
|
serviceClass: "AuditLog",
|
|
9469
9469
|
operationId: "listAuditEntries",
|
|
9470
9470
|
description: "Returns audit-log entries visible to the caller, newest first. All filters are optional and combine with AND. `resource_srn` is a prefix match (e.g. `srn:{project}:secret:` matches every secret action); every other filter is exact.",
|
|
9471
|
-
moduleDocsUrl: "https://
|
|
9471
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/audit-log",
|
|
9472
9472
|
httpMethod: "get",
|
|
9473
9473
|
pathParams: ["project_id"],
|
|
9474
9474
|
queryParams: [
|
|
@@ -9553,7 +9553,7 @@ const routes = {
|
|
|
9553
9553
|
serviceClass: "AuditLog",
|
|
9554
9554
|
operationId: "exportAuditEntries",
|
|
9555
9555
|
description: "Streams a project's audit-log entries as newline-delimited JSON — one entry object per line, oldest first — for archival before the retention window expires, or for shipping into an external system. `project_id` is required: the export is per-project by design. Filters behave exactly as they do on the list endpoint.",
|
|
9556
|
-
moduleDocsUrl: "https://
|
|
9556
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/audit-log",
|
|
9557
9557
|
httpMethod: "get",
|
|
9558
9558
|
pathParams: ["project_id"],
|
|
9559
9559
|
queryParams: [
|
|
@@ -9622,7 +9622,7 @@ const routes = {
|
|
|
9622
9622
|
serviceClass: "AuditLog",
|
|
9623
9623
|
operationId: "getAuditEntry",
|
|
9624
9624
|
description: "Returns a single audit-log entry, including its `detail` payload",
|
|
9625
|
-
moduleDocsUrl: "https://
|
|
9625
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/audit-log",
|
|
9626
9626
|
httpMethod: "get",
|
|
9627
9627
|
pathParams: ["project_id", "entry_id"],
|
|
9628
9628
|
queryParams: [],
|
|
@@ -9646,7 +9646,7 @@ const routes = {
|
|
|
9646
9646
|
serviceClass: "Auth",
|
|
9647
9647
|
operationId: "requestSignInCode",
|
|
9648
9648
|
description: "Emails a short numeric code to the address. Always responds 200 with the same body whether or not the address has an account, so it never leaks existence. A first-time address gets an account on its first successful verification, so this is both sign-up and log-in. Issuing a code invalidates any previous one for the same address.",
|
|
9649
|
-
moduleDocsUrl: "https://
|
|
9649
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/auth",
|
|
9650
9650
|
httpMethod: "post",
|
|
9651
9651
|
pathParams: [],
|
|
9652
9652
|
queryParams: [],
|
|
@@ -9664,7 +9664,7 @@ const routes = {
|
|
|
9664
9664
|
serviceClass: "Auth",
|
|
9665
9665
|
operationId: "verifySignInCode",
|
|
9666
9666
|
description: "Exchanges an emailed code for a session, creating the account if the address is new. The code is single-use and short-lived. A code is destroyed after too many wrong guesses, since six digits is small enough to guess given unlimited attempts — the client must then request a new one rather than retry.",
|
|
9667
|
-
moduleDocsUrl: "https://
|
|
9667
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/auth",
|
|
9668
9668
|
httpMethod: "post",
|
|
9669
9669
|
pathParams: [],
|
|
9670
9670
|
queryParams: [],
|
|
@@ -9688,7 +9688,7 @@ const routes = {
|
|
|
9688
9688
|
serviceClass: "Auth",
|
|
9689
9689
|
operationId: "signInWithGoogle",
|
|
9690
9690
|
description: "Exchanges a Google ID token, issued to this deployment's web client, for a session. The account is the one for the token's address: an address that signed in with an emailed code reaches the same account, and a new address gets one. Google must have verified the address.",
|
|
9691
|
-
moduleDocsUrl: "https://
|
|
9691
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/auth",
|
|
9692
9692
|
httpMethod: "post",
|
|
9693
9693
|
pathParams: [],
|
|
9694
9694
|
queryParams: [],
|
|
@@ -9706,7 +9706,7 @@ const routes = {
|
|
|
9706
9706
|
serviceClass: "Auth",
|
|
9707
9707
|
operationId: "refreshSession",
|
|
9708
9708
|
description: "Exchanges a valid refresh token for a new access JWT and a rotated refresh token, taken from the body or from the `refresh_token` cookie set at sign-in — a browser sends an empty body and the cookie carries the credential. Refresh tokens are single-use; presenting a previously-rotated token is treated as reuse and revokes the whole session family (createRefreshRotation reuse detection), except within a few seconds of the rotation, where it is treated as two tabs racing on one cookie and rotated again.",
|
|
9709
|
-
moduleDocsUrl: "https://
|
|
9709
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/auth",
|
|
9710
9710
|
httpMethod: "post",
|
|
9711
9711
|
pathParams: [],
|
|
9712
9712
|
queryParams: [],
|
|
@@ -9724,7 +9724,7 @@ const routes = {
|
|
|
9724
9724
|
serviceClass: "Auth",
|
|
9725
9725
|
operationId: "logout",
|
|
9726
9726
|
description: "Revokes the current refresh token (and its rotation family) and clears the `refresh_token` cookie. Pass `all: true` to revoke every active session for the user.",
|
|
9727
|
-
moduleDocsUrl: "https://
|
|
9727
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/auth",
|
|
9728
9728
|
httpMethod: "post",
|
|
9729
9729
|
pathParams: [],
|
|
9730
9730
|
queryParams: [],
|
|
@@ -9748,7 +9748,7 @@ const routes = {
|
|
|
9748
9748
|
serviceClass: "Chains",
|
|
9749
9749
|
operationId: "listChains",
|
|
9750
9750
|
description: "Returns the continuation chains in a project, newest first. Filter by `status` to find the chains that may still be spending (`active`) or the ones a budget stopped (`budget_exhausted`).",
|
|
9751
|
-
moduleDocsUrl: "https://
|
|
9751
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/chains",
|
|
9752
9752
|
httpMethod: "get",
|
|
9753
9753
|
pathParams: ["project_id"],
|
|
9754
9754
|
queryParams: [
|
|
@@ -9801,7 +9801,7 @@ const routes = {
|
|
|
9801
9801
|
serviceClass: "Chains",
|
|
9802
9802
|
operationId: "getChain",
|
|
9803
9803
|
description: "Returns a single continuation chain. To read the generations in it, list generations filtered by `chain_id`.",
|
|
9804
|
-
moduleDocsUrl: "https://
|
|
9804
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/chains",
|
|
9805
9805
|
httpMethod: "get",
|
|
9806
9806
|
pathParams: ["project_id", "chain_id"],
|
|
9807
9807
|
queryParams: [],
|
|
@@ -9825,7 +9825,7 @@ const routes = {
|
|
|
9825
9825
|
serviceClass: "Channels",
|
|
9826
9826
|
operationId: "listChannelKinds",
|
|
9827
9827
|
description: "Every connectable kind, its surfaces, and the predicates its routes can match on (engine-wide ones like `address_known` plus its own, like Discord's `guild_id`).",
|
|
9828
|
-
moduleDocsUrl: "https://
|
|
9828
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/channel-kinds",
|
|
9829
9829
|
httpMethod: "get",
|
|
9830
9830
|
pathParams: [],
|
|
9831
9831
|
queryParams: [],
|
|
@@ -9837,7 +9837,7 @@ const routes = {
|
|
|
9837
9837
|
serviceClass: "Channels",
|
|
9838
9838
|
operationId: "listChannelRoutes",
|
|
9839
9839
|
description: "One channel's routes, newest first, `disabled` ones included — only `active` routes take part in resolution. For every route in the project in one read, use [`GET /v1/projects/{project_id}/channel-routes`](/docs/api/channel-routes/list-project-channel-routes).",
|
|
9840
|
-
moduleDocsUrl: "https://
|
|
9840
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/channel-routes",
|
|
9841
9841
|
httpMethod: "get",
|
|
9842
9842
|
pathParams: ["project_id", "channel_id"],
|
|
9843
9843
|
queryParams: ["limit", "cursor"],
|
|
@@ -9878,7 +9878,7 @@ const routes = {
|
|
|
9878
9878
|
serviceClass: "Channels",
|
|
9879
9879
|
operationId: "createChannelRoute",
|
|
9880
9880
|
description: "`action` is required; `agent_id` is required when it is `agent`, `text` when it is `message`; `repeat` is only valid alongside `action: message`. `surface`, when present, must be one this channel's kind serves (`GET /v1/channel-kinds`) — otherwise `400 unknown_surface`. `match` keys must be predicates that kind's registry declares — otherwise `400 unknown_predicate`. Writing a route for a surface whose transport mode is off (e.g. a Discord `guild_thread` route before `mention_threads` is enabled) still succeeds, with `unreachable_surface` in the response `warnings`.",
|
|
9881
|
-
moduleDocsUrl: "https://
|
|
9881
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/channel-routes",
|
|
9882
9882
|
httpMethod: "post",
|
|
9883
9883
|
pathParams: ["project_id", "channel_id"],
|
|
9884
9884
|
queryParams: [],
|
|
@@ -9975,7 +9975,7 @@ const routes = {
|
|
|
9975
9975
|
serviceClass: "Channels",
|
|
9976
9976
|
operationId: "getChannelRoute",
|
|
9977
9977
|
description: "A route id is only meaningful inside its own channel: the same id under another `channel_id` is a `404`. A conversation's `route_id` may instead be one of the two sentinels for the address's own action and the channel default — those name no route and are not readable here.",
|
|
9978
|
-
moduleDocsUrl: "https://
|
|
9978
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/channel-routes",
|
|
9979
9979
|
httpMethod: "get",
|
|
9980
9980
|
pathParams: [
|
|
9981
9981
|
"project_id",
|
|
@@ -10013,7 +10013,7 @@ const routes = {
|
|
|
10013
10013
|
serviceClass: "Channels",
|
|
10014
10014
|
operationId: "updateChannelRoute",
|
|
10015
10015
|
description: "Full replace, the same validation as create: an omitted field takes its create default. Where that default would widen a value the route sets, omission is `400 replace_omits_fields`, naming the fields in `details.fields`, and nothing is written: a set `surface` (the default is any surface), a non-empty `match` (every message), a non-empty `config` (it carries the Discord allowlist), and `status` on a `disabled` route (the default re-activates it). Send the value to keep it, or `\"surface\": null`, `\"match\": {}`, `\"config\": null`, `\"status\": \"active\"` to clear it.",
|
|
10016
|
-
moduleDocsUrl: "https://
|
|
10016
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/channel-routes",
|
|
10017
10017
|
httpMethod: "patch",
|
|
10018
10018
|
pathParams: [
|
|
10019
10019
|
"project_id",
|
|
@@ -10121,7 +10121,7 @@ const routes = {
|
|
|
10121
10121
|
serviceClass: "Channels",
|
|
10122
10122
|
operationId: "deleteChannelRoute",
|
|
10123
10123
|
description: "Conversations opened under this route keep its id and stay where they are; the next inbound resolves to the next most specific route, or the channel default, and opens a new conversation there. To stop a route from matching while keeping it readable, `PATCH` it to `status: disabled` instead.",
|
|
10124
|
-
moduleDocsUrl: "https://
|
|
10124
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/channel-routes",
|
|
10125
10125
|
httpMethod: "delete",
|
|
10126
10126
|
pathParams: [
|
|
10127
10127
|
"project_id",
|
|
@@ -10159,7 +10159,7 @@ const routes = {
|
|
|
10159
10159
|
serviceClass: "Channels",
|
|
10160
10160
|
operationId: "listProjectChannelRoutes",
|
|
10161
10161
|
description: "Every route across every channel in the project, one read — the table is small by construction (CHANNELS-ROUTING.md §3.6), so this is unpaginated.",
|
|
10162
|
-
moduleDocsUrl: "https://
|
|
10162
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/channel-routes",
|
|
10163
10163
|
httpMethod: "get",
|
|
10164
10164
|
pathParams: ["project_id"],
|
|
10165
10165
|
queryParams: [],
|
|
@@ -10177,7 +10177,7 @@ const routes = {
|
|
|
10177
10177
|
serviceClass: "Channels",
|
|
10178
10178
|
operationId: "listChannels",
|
|
10179
10179
|
description: "Lists the channels connected in the project.",
|
|
10180
|
-
moduleDocsUrl: "https://
|
|
10180
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/channels",
|
|
10181
10181
|
httpMethod: "get",
|
|
10182
10182
|
pathParams: ["project_id"],
|
|
10183
10183
|
queryParams: ["limit", "cursor"],
|
|
@@ -10211,7 +10211,7 @@ const routes = {
|
|
|
10211
10211
|
serviceClass: "Channels",
|
|
10212
10212
|
operationId: "createChannel",
|
|
10213
10213
|
description: "Connect a channel. The required fields depend on `channel`; no credential is ever returned. **Discord** (`channel: discord`) — supply `application_id` and `bot_token`, plus the `modes` selecting which Gateway flows to serve (direct messages, and/or @mention-opens-a-thread). The token is checked with Discord first: `400 invalid_bot_token` when Discord rejects it, `400 application_mismatch` when it belongs to another application. Returns `501` when the deployment has no `CHANNEL_TOKEN_KEY` configured. **WhatsApp** (default) — one of two credential paths, both filling the same write-only secret: * **BYOT** (`credential_source: byot`, default) — supply `phone_number_id` and `access_token` from your own Meta app. * **Embedded signup** (`credential_source: embedded_signup`) — supply `code` and `waba_id` (and optionally `pin`) from the Meta popup; naturali exchanges the `code` for the token and subscribes its app to the WABA, so the customer never hands over a token. Returns `501` on deployments where Meta App credentials are not configured. The project's plan limits how many channels it may hold. At the limit this responds `403` with `plan_limit_reached`, whose `details` carry the `plan` and the `limit`, before any credential is acquired. Only `active` channels count, so disabling one frees allowance without deleting it.",
|
|
10214
|
-
moduleDocsUrl: "https://
|
|
10214
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/channels",
|
|
10215
10215
|
httpMethod: "post",
|
|
10216
10216
|
pathParams: ["project_id"],
|
|
10217
10217
|
queryParams: [],
|
|
@@ -10315,7 +10315,7 @@ const routes = {
|
|
|
10315
10315
|
serviceClass: "Channels",
|
|
10316
10316
|
operationId: "getChannel",
|
|
10317
10317
|
description: "The channel's state, its transport modes and its default action. The access token is never returned — `has_credential` is all a read says about it.",
|
|
10318
|
-
moduleDocsUrl: "https://
|
|
10318
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/channels",
|
|
10319
10319
|
httpMethod: "get",
|
|
10320
10320
|
pathParams: ["project_id", "channel_id"],
|
|
10321
10321
|
queryParams: [],
|
|
@@ -10339,7 +10339,7 @@ const routes = {
|
|
|
10339
10339
|
serviceClass: "Channels",
|
|
10340
10340
|
operationId: "updateChannel",
|
|
10341
10341
|
description: "Rotate the credential, update the kind's config (`waba_id` / `credential_source` for WhatsApp, `modes` for Discord), or flip the naturali-side status. At least one field is required. Rotating a WhatsApp token stores a new write-only secret, repoints the send tool and deletes the old secret; rotating a Discord bot token reseals it and the gateway worker reconnects with it.",
|
|
10342
|
-
moduleDocsUrl: "https://
|
|
10342
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/channels",
|
|
10343
10343
|
httpMethod: "patch",
|
|
10344
10344
|
pathParams: ["project_id", "channel_id"],
|
|
10345
10345
|
queryParams: [],
|
|
@@ -10415,7 +10415,7 @@ const routes = {
|
|
|
10415
10415
|
serviceClass: "Channels",
|
|
10416
10416
|
operationId: "deleteChannel",
|
|
10417
10417
|
description: "Deletes the channel and whatever it provisioned — the WhatsApp send tool and write-only credential secret, or the Discord channel's sealed bot token (dropped with the row, closing its gateway connection).",
|
|
10418
|
-
moduleDocsUrl: "https://
|
|
10418
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/channels",
|
|
10419
10419
|
httpMethod: "delete",
|
|
10420
10420
|
pathParams: ["project_id", "channel_id"],
|
|
10421
10421
|
queryParams: [],
|
|
@@ -10439,7 +10439,7 @@ const routes = {
|
|
|
10439
10439
|
serviceClass: "Channels",
|
|
10440
10440
|
operationId: "listChannelConversations",
|
|
10441
10441
|
description: "A cursor page of the channel's conversations, newest first. A conversation is one address'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.",
|
|
10442
|
-
moduleDocsUrl: "https://
|
|
10442
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/channels",
|
|
10443
10443
|
httpMethod: "get",
|
|
10444
10444
|
pathParams: ["project_id", "channel_id"],
|
|
10445
10445
|
queryParams: [
|
|
@@ -10491,7 +10491,7 @@ const routes = {
|
|
|
10491
10491
|
serviceClass: "Channels",
|
|
10492
10492
|
operationId: "openChannelConversation",
|
|
10493
10493
|
description: "The outbound-first path: open a conversation for an `identifier` ahead of any inbound message, which falls out of making the identifier the unit rather than the message. Resolves the same three-layer action an inbound would; a `409` when that does not land on an agent — there is nothing to open for a `message`/`silence` outcome.",
|
|
10494
|
-
moduleDocsUrl: "https://
|
|
10494
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/channels",
|
|
10495
10495
|
httpMethod: "post",
|
|
10496
10496
|
pathParams: ["project_id", "channel_id"],
|
|
10497
10497
|
queryParams: [],
|
|
@@ -10525,7 +10525,7 @@ const routes = {
|
|
|
10525
10525
|
serviceClass: "Channels",
|
|
10526
10526
|
operationId: "getChannelConversation",
|
|
10527
10527
|
description: "Where the conversation points: the address it belongs to, the route (or sentinel) whose action opened it, and the runtime session it maps 1:1 to. The messages are not here — read them with [`GET /v1/projects/{project_id}/channels/{channel_id}/conversations/{conversation_id}/messages`](/docs/api/channels/list-channel-conversation-messages).",
|
|
10528
|
-
moduleDocsUrl: "https://
|
|
10528
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/channels",
|
|
10529
10529
|
httpMethod: "get",
|
|
10530
10530
|
pathParams: [
|
|
10531
10531
|
"project_id",
|
|
@@ -10563,7 +10563,7 @@ const routes = {
|
|
|
10563
10563
|
serviceClass: "Channels",
|
|
10564
10564
|
operationId: "deleteChannelConversation",
|
|
10565
10565
|
description: "Removes the conversation and the runtime session it maps to. The address, its actor and its other conversations are left alone; the address's next message opens a fresh conversation. To erase the address itself, use [`DELETE /v1/projects/{project_id}/addresses/{identifier}`](/docs/api/addresses/delete-address).",
|
|
10566
|
-
moduleDocsUrl: "https://
|
|
10566
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/channels",
|
|
10567
10567
|
httpMethod: "delete",
|
|
10568
10568
|
pathParams: [
|
|
10569
10569
|
"project_id",
|
|
@@ -10601,7 +10601,7 @@ const routes = {
|
|
|
10601
10601
|
serviceClass: "Channels",
|
|
10602
10602
|
operationId: "listChannelConversationMessages",
|
|
10603
10603
|
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.",
|
|
10604
|
-
moduleDocsUrl: "https://
|
|
10604
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/channels",
|
|
10605
10605
|
httpMethod: "get",
|
|
10606
10606
|
pathParams: [
|
|
10607
10607
|
"project_id",
|
|
@@ -10653,7 +10653,7 @@ const routes = {
|
|
|
10653
10653
|
serviceClass: "Conversations",
|
|
10654
10654
|
operationId: "listConversations",
|
|
10655
10655
|
description: "Returns all conversations in the project named in the path.",
|
|
10656
|
-
moduleDocsUrl: "https://
|
|
10656
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/conversations",
|
|
10657
10657
|
httpMethod: "get",
|
|
10658
10658
|
pathParams: ["project_id"],
|
|
10659
10659
|
queryParams: [
|
|
@@ -10706,7 +10706,7 @@ const routes = {
|
|
|
10706
10706
|
serviceClass: "Conversations",
|
|
10707
10707
|
operationId: "createConversation",
|
|
10708
10708
|
description: "Creates a new conversation in the project named in the path.",
|
|
10709
|
-
moduleDocsUrl: "https://
|
|
10709
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/conversations",
|
|
10710
10710
|
httpMethod: "post",
|
|
10711
10711
|
pathParams: ["project_id"],
|
|
10712
10712
|
queryParams: [],
|
|
@@ -10754,7 +10754,7 @@ const routes = {
|
|
|
10754
10754
|
serviceClass: "Conversations",
|
|
10755
10755
|
operationId: "getConversation",
|
|
10756
10756
|
description: "Returns a conversation by its ID",
|
|
10757
|
-
moduleDocsUrl: "https://
|
|
10757
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/conversations",
|
|
10758
10758
|
httpMethod: "get",
|
|
10759
10759
|
pathParams: ["project_id", "conversation_id"],
|
|
10760
10760
|
queryParams: [],
|
|
@@ -10778,7 +10778,7 @@ const routes = {
|
|
|
10778
10778
|
serviceClass: "Conversations",
|
|
10779
10779
|
operationId: "updateConversation",
|
|
10780
10780
|
description: "Updates the status of a conversation",
|
|
10781
|
-
moduleDocsUrl: "https://
|
|
10781
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/conversations",
|
|
10782
10782
|
httpMethod: "patch",
|
|
10783
10783
|
pathParams: ["project_id", "conversation_id"],
|
|
10784
10784
|
queryParams: [],
|
|
@@ -10826,7 +10826,7 @@ const routes = {
|
|
|
10826
10826
|
serviceClass: "Conversations",
|
|
10827
10827
|
operationId: "deleteConversation",
|
|
10828
10828
|
description: "Deletes a conversation by its ID",
|
|
10829
|
-
moduleDocsUrl: "https://
|
|
10829
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/conversations",
|
|
10830
10830
|
httpMethod: "delete",
|
|
10831
10831
|
pathParams: ["project_id", "conversation_id"],
|
|
10832
10832
|
queryParams: [],
|
|
@@ -10850,7 +10850,7 @@ const routes = {
|
|
|
10850
10850
|
serviceClass: "Conversations",
|
|
10851
10851
|
operationId: "listConversationMessages",
|
|
10852
10852
|
description: "Returns all messages (documents) attached to a conversation, ordered by position",
|
|
10853
|
-
moduleDocsUrl: "https://
|
|
10853
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/conversations",
|
|
10854
10854
|
httpMethod: "get",
|
|
10855
10855
|
pathParams: ["project_id", "conversation_id"],
|
|
10856
10856
|
queryParams: ["limit", "offset"],
|
|
@@ -10891,7 +10891,7 @@ const routes = {
|
|
|
10891
10891
|
serviceClass: "Conversations",
|
|
10892
10892
|
operationId: "addConversationMessage",
|
|
10893
10893
|
description: "Creates a document from the message text and attaches it to the conversation at the given position. If position is omitted, it is appended at the end.",
|
|
10894
|
-
moduleDocsUrl: "https://
|
|
10894
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/conversations",
|
|
10895
10895
|
httpMethod: "post",
|
|
10896
10896
|
pathParams: ["project_id", "conversation_id"],
|
|
10897
10897
|
queryParams: [],
|
|
@@ -10953,7 +10953,7 @@ const routes = {
|
|
|
10953
10953
|
serviceClass: "Conversations",
|
|
10954
10954
|
operationId: "generateConversationMessage",
|
|
10955
10955
|
description: "Generates the next message using the specified actor's linked agent or chat. Background by default: returns `202 Accepted` immediately and the reply lands as a new ConversationMessage when it completes — poll `GET /v1/projects/{project_id}/conversations/{conversation_id}/messages` for it. Pass `?wait=true` to block and receive the result inline. On `completed`, the reply is persisted as a new ConversationMessage authored by that actor. On `requires_action`, nothing is persisted; the caller must submit tool outputs via the Agents module and re-invoke generate — so a flow using client tools should pass `?wait=true`.",
|
|
10956
|
-
moduleDocsUrl: "https://
|
|
10956
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/conversations",
|
|
10957
10957
|
httpMethod: "post",
|
|
10958
10958
|
pathParams: ["project_id", "conversation_id"],
|
|
10959
10959
|
queryParams: ["wait"],
|
|
@@ -11015,7 +11015,7 @@ const routes = {
|
|
|
11015
11015
|
serviceClass: "Conversations",
|
|
11016
11016
|
operationId: "removeConversationMessage",
|
|
11017
11017
|
description: "Removes a document from a conversation",
|
|
11018
|
-
moduleDocsUrl: "https://
|
|
11018
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/conversations",
|
|
11019
11019
|
httpMethod: "delete",
|
|
11020
11020
|
pathParams: [
|
|
11021
11021
|
"project_id",
|
|
@@ -11053,7 +11053,7 @@ const routes = {
|
|
|
11053
11053
|
serviceClass: "Conversations",
|
|
11054
11054
|
operationId: "getConversationTags",
|
|
11055
11055
|
description: "Returns all tags attached to the conversation",
|
|
11056
|
-
moduleDocsUrl: "https://
|
|
11056
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/conversations",
|
|
11057
11057
|
httpMethod: "get",
|
|
11058
11058
|
pathParams: ["project_id", "conversation_id"],
|
|
11059
11059
|
queryParams: [],
|
|
@@ -11077,7 +11077,7 @@ const routes = {
|
|
|
11077
11077
|
serviceClass: "Conversations",
|
|
11078
11078
|
operationId: "replaceConversationTags",
|
|
11079
11079
|
description: "Replaces all tags on the conversation with the provided tags",
|
|
11080
|
-
moduleDocsUrl: "https://
|
|
11080
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/conversations",
|
|
11081
11081
|
httpMethod: "put",
|
|
11082
11082
|
pathParams: ["project_id", "conversation_id"],
|
|
11083
11083
|
queryParams: [],
|
|
@@ -11111,7 +11111,7 @@ const routes = {
|
|
|
11111
11111
|
serviceClass: "Conversations",
|
|
11112
11112
|
operationId: "mergeConversationTags",
|
|
11113
11113
|
description: "Merges provided tags into the conversation's existing tags (existing tags are preserved unless overridden)",
|
|
11114
|
-
moduleDocsUrl: "https://
|
|
11114
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/conversations",
|
|
11115
11115
|
httpMethod: "patch",
|
|
11116
11116
|
pathParams: ["project_id", "conversation_id"],
|
|
11117
11117
|
queryParams: [],
|
|
@@ -11145,7 +11145,7 @@ const routes = {
|
|
|
11145
11145
|
serviceClass: "Deciders",
|
|
11146
11146
|
operationId: "listDeciders",
|
|
11147
11147
|
description: "Returns the deciders defined in a project, newest first.",
|
|
11148
|
-
moduleDocsUrl: "https://
|
|
11148
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/deciders",
|
|
11149
11149
|
httpMethod: "get",
|
|
11150
11150
|
pathParams: ["project_id"],
|
|
11151
11151
|
queryParams: ["limit", "offset"],
|
|
@@ -11179,7 +11179,7 @@ const routes = {
|
|
|
11179
11179
|
serviceClass: "Deciders",
|
|
11180
11180
|
operationId: "createDecider",
|
|
11181
11181
|
description: "Creates a decider at version 1: a named question set and the backend that answers it, exactly one of `agent_id` and `tool_id`. Every question declares a finite answer space, validated here. The backend must be in the decider's project. An agent must carry no tool surface — no tool binding left active by `active_tool_ids` and no `knowledge_config.write_memory_store_id` — or the create is refused with `400 DECIDER_AGENT_NOT_TOOL_LESS`. A tool must be `http` or `pipeline` and must not pin `state` or `questions` in its `preset_parameters`, or the create is refused with `400 DECIDER_TOOL_NOT_CALLABLE`. A duplicate `name` in the project is `409 NAME_CONFLICT`.",
|
|
11182
|
-
moduleDocsUrl: "https://
|
|
11182
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/deciders",
|
|
11183
11183
|
httpMethod: "post",
|
|
11184
11184
|
pathParams: ["project_id"],
|
|
11185
11185
|
queryParams: [],
|
|
@@ -11241,7 +11241,7 @@ const routes = {
|
|
|
11241
11241
|
serviceClass: "Deciders",
|
|
11242
11242
|
operationId: "getDecider",
|
|
11243
11243
|
description: "Returns a decider with its current question set and version.",
|
|
11244
|
-
moduleDocsUrl: "https://
|
|
11244
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/deciders",
|
|
11245
11245
|
httpMethod: "get",
|
|
11246
11246
|
pathParams: ["project_id", "decider_id"],
|
|
11247
11247
|
queryParams: [],
|
|
@@ -11265,7 +11265,7 @@ const routes = {
|
|
|
11265
11265
|
serviceClass: "Deciders",
|
|
11266
11266
|
operationId: "updateDecider",
|
|
11267
11267
|
description: "Updates any of `name`, `description`, the backend and `questions`. Naming `agent_id` or `tool_id` replaces the current backend; naming both is `400`. Only a change to `questions` archives a new version; a rename, a new backend or a rewrite of the questions the decider already holds leaves `version` where it is. A new backend is held to the same rules as on create.",
|
|
11268
|
-
moduleDocsUrl: "https://
|
|
11268
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/deciders",
|
|
11269
11269
|
httpMethod: "patch",
|
|
11270
11270
|
pathParams: ["project_id", "decider_id"],
|
|
11271
11271
|
queryParams: [],
|
|
@@ -11348,7 +11348,7 @@ const routes = {
|
|
|
11348
11348
|
serviceClass: "Deciders",
|
|
11349
11349
|
operationId: "deleteDecider",
|
|
11350
11350
|
description: "Deletes a decider and its version archive. Its decisions remain and keep naming the decider's ID.",
|
|
11351
|
-
moduleDocsUrl: "https://
|
|
11351
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/deciders",
|
|
11352
11352
|
httpMethod: "delete",
|
|
11353
11353
|
pathParams: ["project_id", "decider_id"],
|
|
11354
11354
|
queryParams: [],
|
|
@@ -11372,7 +11372,7 @@ const routes = {
|
|
|
11372
11372
|
serviceClass: "Deciders",
|
|
11373
11373
|
operationId: "listDeciderVersions",
|
|
11374
11374
|
description: "Returns the decider's archived question sets, newest first. A version is written on create and on every write that changes `questions`.",
|
|
11375
|
-
moduleDocsUrl: "https://
|
|
11375
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/deciders",
|
|
11376
11376
|
httpMethod: "get",
|
|
11377
11377
|
pathParams: ["project_id", "decider_id"],
|
|
11378
11378
|
queryParams: ["limit", "offset"],
|
|
@@ -11413,7 +11413,7 @@ const routes = {
|
|
|
11413
11413
|
serviceClass: "Deciders",
|
|
11414
11414
|
operationId: "getDeciderVersion",
|
|
11415
11415
|
description: "Returns the question set a version held. A decision names the `decider_version` it was answered under, so this is how its criteria are read after the decider has changed.",
|
|
11416
|
-
moduleDocsUrl: "https://
|
|
11416
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/deciders",
|
|
11417
11417
|
httpMethod: "get",
|
|
11418
11418
|
pathParams: [
|
|
11419
11419
|
"project_id",
|
|
@@ -11451,7 +11451,7 @@ const routes = {
|
|
|
11451
11451
|
serviceClass: "Deciders",
|
|
11452
11452
|
operationId: "restoreDeciderVersion",
|
|
11453
11453
|
description: "Writes an archived question set back as the decider's live one, which archives it again as a new version rather than rewinding the counter. Restoring the question set the decider already holds is a no-op.",
|
|
11454
|
-
moduleDocsUrl: "https://
|
|
11454
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/deciders",
|
|
11455
11455
|
httpMethod: "post",
|
|
11456
11456
|
pathParams: [
|
|
11457
11457
|
"project_id",
|
|
@@ -11496,7 +11496,7 @@ const routes = {
|
|
|
11496
11496
|
serviceClass: "Deciders",
|
|
11497
11497
|
operationId: "createDecision",
|
|
11498
11498
|
description: "Evaluates the decider against `state` and records the decision. The questions come from the decider, never from the request, so a call site can only supply what is judged. Everything that can refuse the request is checked before the decision is written, so a refusal is a `4xx` and never a polled failure: the agent's tool surface (`400 DECIDER_AGENT_NOT_TOOL_LESS`), a tool that cannot answer (`400 DECIDER_TOOL_NOT_CALLABLE`), a paused project (`409 PROJECT_PAUSED`) and, for an agent, quota admission (`429 QUOTA_EXCEEDED`). A tool backend is called with `{ state, questions }` and must answer `{ answers: { <question id>: { choice | score | value, probabilities? } } }`; an answer outside that contract fails the decision with `DECISION_ANSWER_INVALID`. With `wait: false`, the default, the answer is `201` with the decision `queued`; poll `GET /v1/projects/{project_id}/decisions/{decision_id}` or subscribe to `decisions.completed` and `decisions.failed`. With `wait: true` it is `201` with the decision settled.",
|
|
11499
|
-
moduleDocsUrl: "https://
|
|
11499
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/deciders",
|
|
11500
11500
|
httpMethod: "post",
|
|
11501
11501
|
pathParams: ["project_id", "decider_id"],
|
|
11502
11502
|
queryParams: [],
|
|
@@ -11544,7 +11544,7 @@ const routes = {
|
|
|
11544
11544
|
serviceClass: "Deciders",
|
|
11545
11545
|
operationId: "listDecisions",
|
|
11546
11546
|
description: "Returns the decisions in a project, newest first.",
|
|
11547
|
-
moduleDocsUrl: "https://
|
|
11547
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/deciders",
|
|
11548
11548
|
httpMethod: "get",
|
|
11549
11549
|
pathParams: ["project_id"],
|
|
11550
11550
|
queryParams: [
|
|
@@ -11597,7 +11597,7 @@ const routes = {
|
|
|
11597
11597
|
serviceClass: "Deciders",
|
|
11598
11598
|
operationId: "getDecision",
|
|
11599
11599
|
description: "Returns a decision. Poll it after a `wait: false` request until `status` is `completed` or `failed`.",
|
|
11600
|
-
moduleDocsUrl: "https://
|
|
11600
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/deciders",
|
|
11601
11601
|
httpMethod: "get",
|
|
11602
11602
|
pathParams: ["project_id", "decision_id"],
|
|
11603
11603
|
queryParams: [],
|
|
@@ -11621,7 +11621,7 @@ const routes = {
|
|
|
11621
11621
|
serviceClass: "Documents",
|
|
11622
11622
|
operationId: "listDocuments",
|
|
11623
11623
|
description: "Returns all documents in the project named in the path.",
|
|
11624
|
-
moduleDocsUrl: "https://
|
|
11624
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
11625
11625
|
httpMethod: "get",
|
|
11626
11626
|
pathParams: ["project_id"],
|
|
11627
11627
|
queryParams: [
|
|
@@ -11698,7 +11698,7 @@ const routes = {
|
|
|
11698
11698
|
serviceClass: "Documents",
|
|
11699
11699
|
operationId: "createDocument",
|
|
11700
11700
|
description: "Creates a new text document and generates an embedding vector for semantic search, in the project named in the path.",
|
|
11701
|
-
moduleDocsUrl: "https://
|
|
11701
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
11702
11702
|
httpMethod: "post",
|
|
11703
11703
|
pathParams: ["project_id"],
|
|
11704
11704
|
queryParams: [],
|
|
@@ -11781,7 +11781,7 @@ const routes = {
|
|
|
11781
11781
|
serviceClass: "Documents",
|
|
11782
11782
|
operationId: "ingestDocument",
|
|
11783
11783
|
description: "Parses an already-uploaded file and creates one Document split into one or more embedded chunks. The source format is detected from the file's content type: PDFs are parsed page-by-page; `text/plain` and `text/markdown` files are read as a single source. How the source is chunked is controlled by `chunk_strategy`. A file can only back one Document — a second call with the same `file_id` returns `409 FILE_ALREADY_INGESTED`. To re-process an already-ingested file (e.g. with a different `chunk_strategy`), use `POST /documents/{document_id}/ingest`; to ingest the same source under a different path, upload a new copy of the file first.",
|
|
11784
|
-
moduleDocsUrl: "https://
|
|
11784
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
11785
11785
|
httpMethod: "post",
|
|
11786
11786
|
pathParams: ["project_id"],
|
|
11787
11787
|
queryParams: ["wait"],
|
|
@@ -11850,7 +11850,7 @@ const routes = {
|
|
|
11850
11850
|
serviceClass: "Documents",
|
|
11851
11851
|
operationId: "exportDocuments",
|
|
11852
11852
|
description: "Streams a project's documents as newline-delimited JSON — one document object per line, oldest first — for archiving the corpus or shipping it into another system. `project_id` is required: the export is per-project by design. The rows are the rows the listing returns for the same caller, so a policy that hides a document hides it here too, and withdrawn documents and the reserved `/.system/` root are left out.",
|
|
11853
|
-
moduleDocsUrl: "https://
|
|
11853
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
11854
11854
|
httpMethod: "get",
|
|
11855
11855
|
pathParams: ["project_id"],
|
|
11856
11856
|
queryParams: ["path_prefix"],
|
|
@@ -11874,7 +11874,7 @@ const routes = {
|
|
|
11874
11874
|
serviceClass: "Documents",
|
|
11875
11875
|
operationId: "getDocument",
|
|
11876
11876
|
description: "Returns a document with its text content",
|
|
11877
|
-
moduleDocsUrl: "https://
|
|
11877
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
11878
11878
|
httpMethod: "get",
|
|
11879
11879
|
pathParams: ["project_id", "document_id"],
|
|
11880
11880
|
queryParams: [],
|
|
@@ -11898,7 +11898,7 @@ const routes = {
|
|
|
11898
11898
|
serviceClass: "Documents",
|
|
11899
11899
|
operationId: "updateDocument",
|
|
11900
11900
|
description: "Updates document content, title, path, metadata, or tags. Supplying `path` moves the document to a new logical path within the project.",
|
|
11901
|
-
moduleDocsUrl: "https://
|
|
11901
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
11902
11902
|
httpMethod: "patch",
|
|
11903
11903
|
pathParams: ["project_id", "document_id"],
|
|
11904
11904
|
queryParams: [],
|
|
@@ -11974,7 +11974,7 @@ const routes = {
|
|
|
11974
11974
|
serviceClass: "Documents",
|
|
11975
11975
|
operationId: "deleteDocument",
|
|
11976
11976
|
description: "Deletes a document and its underlying file",
|
|
11977
|
-
moduleDocsUrl: "https://
|
|
11977
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
11978
11978
|
httpMethod: "delete",
|
|
11979
11979
|
pathParams: ["project_id", "document_id"],
|
|
11980
11980
|
queryParams: [],
|
|
@@ -11998,7 +11998,7 @@ const routes = {
|
|
|
11998
11998
|
serviceClass: "Documents",
|
|
11999
11999
|
operationId: "listDocumentRelations",
|
|
12000
12000
|
description: "Returns the typed edges this document asserts about others, oldest first. An edge is owned by the document it leaves, so this is what the document claims — use `?related_to=` on the listing to find what claims something about it.",
|
|
12001
|
-
moduleDocsUrl: "https://
|
|
12001
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
12002
12002
|
httpMethod: "get",
|
|
12003
12003
|
pathParams: ["project_id", "document_id"],
|
|
12004
12004
|
queryParams: [],
|
|
@@ -12022,7 +12022,7 @@ const routes = {
|
|
|
12022
12022
|
serviceClass: "Documents",
|
|
12023
12023
|
operationId: "createDocumentRelation",
|
|
12024
12024
|
description: "Asserts a typed edge from this document to another in the same project. Asserting the same edge twice is `409`: an edge is a fact, and the second assertion is the same fact. Writing an edge is a write of the asserting document (`documents:UpdateDocument`); the document it points at is unchanged, which is what lets an agent record what its own report derives from without being able to make another report claim anything.",
|
|
12025
|
-
moduleDocsUrl: "https://
|
|
12025
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
12026
12026
|
httpMethod: "post",
|
|
12027
12027
|
pathParams: ["project_id", "document_id"],
|
|
12028
12028
|
queryParams: [],
|
|
@@ -12063,7 +12063,7 @@ const routes = {
|
|
|
12063
12063
|
serviceClass: "Documents",
|
|
12064
12064
|
operationId: "deleteDocumentRelation",
|
|
12065
12065
|
description: "Removes an edge this document asserts. Both documents are left as they are — retracting a claim is not a change to what it was about.",
|
|
12066
|
-
moduleDocsUrl: "https://
|
|
12066
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
12067
12067
|
httpMethod: "delete",
|
|
12068
12068
|
pathParams: [
|
|
12069
12069
|
"project_id",
|
|
@@ -12101,7 +12101,7 @@ const routes = {
|
|
|
12101
12101
|
serviceClass: "Documents",
|
|
12102
12102
|
operationId: "getDocumentStatus",
|
|
12103
12103
|
description: "Returns a lightweight ingestion status payload for polling — `status`, `chunk_count`, `total_pages`, and (when failed) `error`. Unlike `GET /documents/{document_id}`, it never returns the assembled chunk content, so it is cheap to poll on large documents. A document whose ingestion has stalled (no progress past the configured timeout) is transitioned to `failed` with `error=INGESTION_TIMEOUT` on read.",
|
|
12104
|
-
moduleDocsUrl: "https://
|
|
12104
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
12105
12105
|
httpMethod: "get",
|
|
12106
12106
|
pathParams: ["project_id", "document_id"],
|
|
12107
12107
|
queryParams: [],
|
|
@@ -12125,7 +12125,7 @@ const routes = {
|
|
|
12125
12125
|
serviceClass: "Documents",
|
|
12126
12126
|
operationId: "withdrawDocument",
|
|
12127
12127
|
description: "Takes a document out of every default read while keeping its history. The withdrawal is archived as a **tombstone version**, so one mechanism answers what a document holds now and there is no second lifecycle flag for a reader to miss. Its chunks are dropped from the knowledge index, so a withdrawn document costs a live search nothing. The content is not lost with them: it is in the version before the tombstone, which [`POST /v1/projects/{project_id}/documents/{document_id}/versions/{version}/restore`](/docs/api/documents/restore-document-version) re-chunks from. `DELETE` stays what it is — permanent, and it removes the backing file. Withdrawal is the reversible act. It does not apply under `/.system/`: a platform-written document keeps the owning module's lifecycle.",
|
|
12128
|
-
moduleDocsUrl: "https://
|
|
12128
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
12129
12129
|
httpMethod: "post",
|
|
12130
12130
|
pathParams: ["project_id", "document_id"],
|
|
12131
12131
|
queryParams: [],
|
|
@@ -12173,7 +12173,7 @@ const routes = {
|
|
|
12173
12173
|
serviceClass: "Documents",
|
|
12174
12174
|
operationId: "listDocumentVersions",
|
|
12175
12175
|
description: "Returns the document's archived states, newest first. A version is written on create and on every subsequent write that changes the content or its annotations, and a withdrawal is archived as a version carrying no content.",
|
|
12176
|
-
moduleDocsUrl: "https://
|
|
12176
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
12177
12177
|
httpMethod: "get",
|
|
12178
12178
|
pathParams: ["project_id", "document_id"],
|
|
12179
12179
|
queryParams: ["limit", "offset"],
|
|
@@ -12214,7 +12214,7 @@ const routes = {
|
|
|
12214
12214
|
serviceClass: "Documents",
|
|
12215
12215
|
operationId: "getDocumentVersion",
|
|
12216
12216
|
description: "Returns the exact content and annotations the document held at a given version, which is what lets a run that cited a version read what it read.",
|
|
12217
|
-
moduleDocsUrl: "https://
|
|
12217
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
12218
12218
|
httpMethod: "get",
|
|
12219
12219
|
pathParams: [
|
|
12220
12220
|
"project_id",
|
|
@@ -12252,7 +12252,7 @@ const routes = {
|
|
|
12252
12252
|
serviceClass: "Documents",
|
|
12253
12253
|
operationId: "restoreDocumentVersion",
|
|
12254
12254
|
description: "Writes an archived version's content and annotations back as the document's live state, which archives them again as a **new** version rather than rewinding the counter — so a run citing any version in between still resolves. The restore runs through the ordinary update path, so the content is re-chunked and re-embedded; restoring the state the document already holds is a no-op and archives nothing. Restoring any content version of a withdrawn document brings it back into listings and search. A tombstone version has no content, so naming one is `400 VALIDATION_FAILED`: restore the version before it instead.",
|
|
12255
|
-
moduleDocsUrl: "https://
|
|
12255
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
12256
12256
|
httpMethod: "post",
|
|
12257
12257
|
pathParams: [
|
|
12258
12258
|
"project_id",
|
|
@@ -12297,7 +12297,7 @@ const routes = {
|
|
|
12297
12297
|
serviceClass: "Documents",
|
|
12298
12298
|
operationId: "reingestDocument",
|
|
12299
12299
|
description: "Re-runs ingestion for an existing document against its already-stored source file. Existing chunks are discarded and the document is reset to `status=pending` before re-processing. Use this to recover a document stuck in `processing`/`failed` or to re-chunk with a different strategy without re-uploading the file. Background by default (`202`); pass `?wait=true` to run synchronously (`201`).",
|
|
12300
|
-
moduleDocsUrl: "https://
|
|
12300
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
12301
12301
|
httpMethod: "post",
|
|
12302
12302
|
pathParams: ["project_id", "document_id"],
|
|
12303
12303
|
queryParams: ["wait"],
|
|
@@ -12352,7 +12352,7 @@ const routes = {
|
|
|
12352
12352
|
serviceClass: "Documents",
|
|
12353
12353
|
operationId: "getDocumentTags",
|
|
12354
12354
|
description: "Returns all tags attached to the document",
|
|
12355
|
-
moduleDocsUrl: "https://
|
|
12355
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
12356
12356
|
httpMethod: "get",
|
|
12357
12357
|
pathParams: ["project_id", "document_id"],
|
|
12358
12358
|
queryParams: [],
|
|
@@ -12376,7 +12376,7 @@ const routes = {
|
|
|
12376
12376
|
serviceClass: "Documents",
|
|
12377
12377
|
operationId: "replaceDocumentTags",
|
|
12378
12378
|
description: "Replaces all tags on the document with the provided tags (not merged)",
|
|
12379
|
-
moduleDocsUrl: "https://
|
|
12379
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
12380
12380
|
httpMethod: "put",
|
|
12381
12381
|
pathParams: ["project_id", "document_id"],
|
|
12382
12382
|
queryParams: [],
|
|
@@ -12410,7 +12410,7 @@ const routes = {
|
|
|
12410
12410
|
serviceClass: "Documents",
|
|
12411
12411
|
operationId: "mergeDocumentTags",
|
|
12412
12412
|
description: "Merges provided tags into the document's existing tags (existing tags are preserved unless overridden)",
|
|
12413
|
-
moduleDocsUrl: "https://
|
|
12413
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
|
|
12414
12414
|
httpMethod: "patch",
|
|
12415
12415
|
pathParams: ["project_id", "document_id"],
|
|
12416
12416
|
queryParams: [],
|
|
@@ -12444,7 +12444,7 @@ const routes = {
|
|
|
12444
12444
|
serviceClass: "Embeddings",
|
|
12445
12445
|
operationId: "createEmbeddings",
|
|
12446
12446
|
description: "Generates embedding vectors for one or more text inputs using the server's configured embedding model. Provide `input` for a single text or `inputs` for a batch. At least one is required. Returns `embedding` when `input` is used, and `embeddings` when `inputs` is used. `project_id` names the project the call's token usage is metered against, so embedding spend reaches the usage rollup and the project's `cost_usd` / `tokens` quotas. A project-scoped credential supplies its own project; a call that names none and is bound to none is served but not metered.",
|
|
12447
|
-
moduleDocsUrl: "https://
|
|
12447
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/embeddings",
|
|
12448
12448
|
httpMethod: "post",
|
|
12449
12449
|
pathParams: ["project_id"],
|
|
12450
12450
|
queryParams: [],
|
|
@@ -12478,7 +12478,7 @@ const routes = {
|
|
|
12478
12478
|
serviceClass: "Evaluations",
|
|
12479
12479
|
operationId: "listDatasets",
|
|
12480
12480
|
description: "Returns the datasets defined in a project",
|
|
12481
|
-
moduleDocsUrl: "https://
|
|
12481
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
12482
12482
|
httpMethod: "get",
|
|
12483
12483
|
pathParams: ["project_id"],
|
|
12484
12484
|
queryParams: ["limit", "offset"],
|
|
@@ -12512,7 +12512,7 @@ const routes = {
|
|
|
12512
12512
|
serviceClass: "Evaluations",
|
|
12513
12513
|
operationId: "createDataset",
|
|
12514
12514
|
description: "Creates a project-scoped dataset — a named collection of test cases an eval runs an agent against. Names are unique per project. Datasets are operator-owned **fixtures**. The platform's content purge never deletes or mutates a dataset item, so erasing a generation cannot silently stop a test suite from being runnable.",
|
|
12515
|
-
moduleDocsUrl: "https://
|
|
12515
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
12516
12516
|
httpMethod: "post",
|
|
12517
12517
|
pathParams: ["project_id"],
|
|
12518
12518
|
queryParams: [],
|
|
@@ -12546,7 +12546,7 @@ const routes = {
|
|
|
12546
12546
|
serviceClass: "Evaluations",
|
|
12547
12547
|
operationId: "getDataset",
|
|
12548
12548
|
description: "Returns a specific dataset",
|
|
12549
|
-
moduleDocsUrl: "https://
|
|
12549
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
12550
12550
|
httpMethod: "get",
|
|
12551
12551
|
pathParams: ["project_id", "dataset_id"],
|
|
12552
12552
|
queryParams: [],
|
|
@@ -12570,7 +12570,7 @@ const routes = {
|
|
|
12570
12570
|
serviceClass: "Evaluations",
|
|
12571
12571
|
operationId: "updateDataset",
|
|
12572
12572
|
description: "Updates a dataset's name and/or description",
|
|
12573
|
-
moduleDocsUrl: "https://
|
|
12573
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
12574
12574
|
httpMethod: "put",
|
|
12575
12575
|
pathParams: ["project_id", "dataset_id"],
|
|
12576
12576
|
queryParams: [],
|
|
@@ -12611,7 +12611,7 @@ const routes = {
|
|
|
12611
12611
|
serviceClass: "Evaluations",
|
|
12612
12612
|
operationId: "deleteDataset",
|
|
12613
12613
|
description: "Deletes a dataset, its items, and every eval bound to it. Results of runs that already scored those items keep their frozen copies of the input and expected output.",
|
|
12614
|
-
moduleDocsUrl: "https://
|
|
12614
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
12615
12615
|
httpMethod: "delete",
|
|
12616
12616
|
pathParams: ["project_id", "dataset_id"],
|
|
12617
12617
|
queryParams: [],
|
|
@@ -12635,7 +12635,7 @@ const routes = {
|
|
|
12635
12635
|
serviceClass: "Evaluations",
|
|
12636
12636
|
operationId: "listDatasetItems",
|
|
12637
12637
|
description: "Returns the test cases in a dataset, oldest first",
|
|
12638
|
-
moduleDocsUrl: "https://
|
|
12638
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
12639
12639
|
httpMethod: "get",
|
|
12640
12640
|
pathParams: ["project_id", "dataset_id"],
|
|
12641
12641
|
queryParams: ["limit", "offset"],
|
|
@@ -12676,7 +12676,7 @@ const routes = {
|
|
|
12676
12676
|
serviceClass: "Evaluations",
|
|
12677
12677
|
operationId: "createDatasetItem",
|
|
12678
12678
|
description: "Adds one test case. `input` is replayed verbatim as the generation's messages, so it must be a non-empty array of `{ role, content }`.",
|
|
12679
|
-
moduleDocsUrl: "https://
|
|
12679
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
12680
12680
|
httpMethod: "post",
|
|
12681
12681
|
pathParams: ["project_id", "dataset_id"],
|
|
12682
12682
|
queryParams: [],
|
|
@@ -12724,7 +12724,7 @@ const routes = {
|
|
|
12724
12724
|
serviceClass: "Evaluations",
|
|
12725
12725
|
operationId: "createDatasetItemFromGeneration",
|
|
12726
12726
|
description: "Promotes a real, completed generation into a test case: its input messages become the item's `input`, and its own answer becomes `expected_output` unless you supply one. Use it to build an evaluation set out of production traffic rather than hand-authoring fixtures. The item is a **copy**, not a view. It keeps working after the source generation's content is purged, and `source_generation_id` goes null if that generation is deleted — a purge can never quietly stop a suite from being runnable. Requires both `evaluations:CreateDataset` and `generations:GetGeneration`: the call copies content out of a generation, so a principal that may not read that generation may not curate it either. Only a **completed** generation can be promoted (`409 GENERATION_NOT_COMPLETED`), and only while its content is still available: an agent or project running with `trace_content_mode: none` never stored the input, and a purged or expired generation no longer has it (`409 GENERATION_CONTENT_UNAVAILABLE`). Generations that predate input recording answer the same way.",
|
|
12727
|
-
moduleDocsUrl: "https://
|
|
12727
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
12728
12728
|
httpMethod: "post",
|
|
12729
12729
|
pathParams: ["project_id", "dataset_id"],
|
|
12730
12730
|
queryParams: [],
|
|
@@ -12772,7 +12772,7 @@ const routes = {
|
|
|
12772
12772
|
serviceClass: "Evaluations",
|
|
12773
12773
|
operationId: "updateDatasetItem",
|
|
12774
12774
|
description: "Updates a test case. Runs that already scored it are unaffected — each result carries its own frozen copy of the input and expected output.",
|
|
12775
|
-
moduleDocsUrl: "https://
|
|
12775
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
12776
12776
|
httpMethod: "put",
|
|
12777
12777
|
pathParams: [
|
|
12778
12778
|
"project_id",
|
|
@@ -12831,7 +12831,7 @@ const routes = {
|
|
|
12831
12831
|
serviceClass: "Evaluations",
|
|
12832
12832
|
operationId: "deleteDatasetItem",
|
|
12833
12833
|
description: "Deletes a test case. Results of runs that already scored it stay readable; their `dataset_item_id` becomes null.",
|
|
12834
|
-
moduleDocsUrl: "https://
|
|
12834
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
12835
12835
|
httpMethod: "delete",
|
|
12836
12836
|
pathParams: [
|
|
12837
12837
|
"project_id",
|
|
@@ -12869,7 +12869,7 @@ const routes = {
|
|
|
12869
12869
|
serviceClass: "Evaluations",
|
|
12870
12870
|
operationId: "listEvals",
|
|
12871
12871
|
description: "Returns the evals defined in a project",
|
|
12872
|
-
moduleDocsUrl: "https://
|
|
12872
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
12873
12873
|
httpMethod: "get",
|
|
12874
12874
|
pathParams: ["project_id"],
|
|
12875
12875
|
queryParams: ["limit", "offset"],
|
|
@@ -12903,7 +12903,7 @@ const routes = {
|
|
|
12903
12903
|
serviceClass: "Evaluations",
|
|
12904
12904
|
operationId: "createEval",
|
|
12905
12905
|
description: "Binds an agent under test to a dataset and a list of scorers. The agent and the dataset must belong to the same project as the eval; a cross-project reference is rejected with 400. Scorer config is frozen here rather than read from the agent at run time, so two runs of the same eval are always judged by the same criteria and their comparison measures the agent instead of the config drifting underneath it. Each scorer `type` may appear at most once.",
|
|
12906
|
-
moduleDocsUrl: "https://
|
|
12906
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
12907
12907
|
httpMethod: "post",
|
|
12908
12908
|
pathParams: ["project_id"],
|
|
12909
12909
|
queryParams: [],
|
|
@@ -12965,7 +12965,7 @@ const routes = {
|
|
|
12965
12965
|
serviceClass: "Evaluations",
|
|
12966
12966
|
operationId: "getEval",
|
|
12967
12967
|
description: "Returns a specific eval",
|
|
12968
|
-
moduleDocsUrl: "https://
|
|
12968
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
12969
12969
|
httpMethod: "get",
|
|
12970
12970
|
pathParams: ["project_id", "eval_id"],
|
|
12971
12971
|
queryParams: [],
|
|
@@ -12989,7 +12989,7 @@ const routes = {
|
|
|
12989
12989
|
serviceClass: "Evaluations",
|
|
12990
12990
|
operationId: "updateEval",
|
|
12991
12991
|
description: "Updates an eval. Changing `agent_id` re-validates the scorers against the new agent, since an `output_schema` scorer that was legal against the old one may not be.",
|
|
12992
|
-
moduleDocsUrl: "https://
|
|
12992
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
12993
12993
|
httpMethod: "put",
|
|
12994
12994
|
pathParams: ["project_id", "eval_id"],
|
|
12995
12995
|
queryParams: [],
|
|
@@ -13058,7 +13058,7 @@ const routes = {
|
|
|
13058
13058
|
serviceClass: "Evaluations",
|
|
13059
13059
|
operationId: "deleteEval",
|
|
13060
13060
|
description: "Deletes an eval, its runs, and their results",
|
|
13061
|
-
moduleDocsUrl: "https://
|
|
13061
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
13062
13062
|
httpMethod: "delete",
|
|
13063
13063
|
pathParams: ["project_id", "eval_id"],
|
|
13064
13064
|
queryParams: [],
|
|
@@ -13082,7 +13082,7 @@ const routes = {
|
|
|
13082
13082
|
serviceClass: "Evaluations",
|
|
13083
13083
|
operationId: "listEvalRuns",
|
|
13084
13084
|
description: "Returns an eval's runs, newest first",
|
|
13085
|
-
moduleDocsUrl: "https://
|
|
13085
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
13086
13086
|
httpMethod: "get",
|
|
13087
13087
|
pathParams: ["project_id", "eval_id"],
|
|
13088
13088
|
queryParams: ["limit", "offset"],
|
|
@@ -13123,7 +13123,7 @@ const routes = {
|
|
|
13123
13123
|
serviceClass: "Evaluations",
|
|
13124
13124
|
operationId: "startEvalRun",
|
|
13125
13125
|
description: "Runs the eval against its dataset, creating one real agent generation per item and scoring the outputs. `wait: true` executes the run synchronously and returns it terminal, with its scores. The dataset is capped at 25 items for a synchronous run; a larger one is rejected with 400 rather than partially scored. `wait: false` (the default) enqueues one task per item and returns immediately with `status: \"queued\"`. A worker executes the items and the run settles itself; poll `GET /evals/{eval_id}/runs/{eval_run_id}` for the terminal status. There is no item cap on a queued run. The whole run is pinned to **one** agent version, stamped on `agent_version`: pass one explicitly to evaluate a canary before promoting it, or omit it to use the active release's stable version (or the live draft when no release is in effect). Without the pin, release assignment would bucket each item independently and blend two configs into a single score. With `baseline_run_id`, the finished run's `aggregate_scores.baseline` carries per-scorer deltas against that run, computed over the items present and scorable in **both** runs, with the divergence counted. A delta over a shifted dataset is therefore never presented as a clean comparison.",
|
|
13126
|
-
moduleDocsUrl: "https://
|
|
13126
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
13127
13127
|
httpMethod: "post",
|
|
13128
13128
|
pathParams: ["project_id", "eval_id"],
|
|
13129
13129
|
queryParams: [],
|
|
@@ -13185,7 +13185,7 @@ const routes = {
|
|
|
13185
13185
|
serviceClass: "Evaluations",
|
|
13186
13186
|
operationId: "getEvalRun",
|
|
13187
13187
|
description: "Returns a run's status, counts, and aggregate scores",
|
|
13188
|
-
moduleDocsUrl: "https://
|
|
13188
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
13189
13189
|
httpMethod: "get",
|
|
13190
13190
|
pathParams: [
|
|
13191
13191
|
"project_id",
|
|
@@ -13223,7 +13223,7 @@ const routes = {
|
|
|
13223
13223
|
serviceClass: "Evaluations",
|
|
13224
13224
|
operationId: "listEvalResults",
|
|
13225
13225
|
description: "Returns the per-item results of a run, oldest first",
|
|
13226
|
-
moduleDocsUrl: "https://
|
|
13226
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
13227
13227
|
httpMethod: "get",
|
|
13228
13228
|
pathParams: [
|
|
13229
13229
|
"project_id",
|
|
@@ -13275,7 +13275,7 @@ const routes = {
|
|
|
13275
13275
|
serviceClass: "Evaluations",
|
|
13276
13276
|
operationId: "cancelEvalRun",
|
|
13277
13277
|
description: "Cancels a queued or running run: its outstanding item tasks are dropped so it stops consuming provider budget, and the run settles as `canceled`. Results already written are kept — they are real measurements of generations that were really paid for — and `completed_count` / `errored_count` report what ran. `aggregate_scores` is deliberately left null: a partial roll-up in the same field a completed run uses would read as a whole-dataset verdict. A run that has already finished is rejected with 400.",
|
|
13278
|
-
moduleDocsUrl: "https://
|
|
13278
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/evaluations",
|
|
13279
13279
|
httpMethod: "post",
|
|
13280
13280
|
pathParams: [
|
|
13281
13281
|
"project_id",
|
|
@@ -13313,7 +13313,7 @@ const routes = {
|
|
|
13313
13313
|
serviceClass: "Exceptions",
|
|
13314
13314
|
operationId: "listExceptions",
|
|
13315
13315
|
description: "Returns exception items for a project, filterable by status, severity, and kind.",
|
|
13316
|
-
moduleDocsUrl: "https://
|
|
13316
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/exceptions",
|
|
13317
13317
|
httpMethod: "get",
|
|
13318
13318
|
pathParams: ["project_id"],
|
|
13319
13319
|
queryParams: [
|
|
@@ -13374,7 +13374,7 @@ const routes = {
|
|
|
13374
13374
|
serviceClass: "Exceptions",
|
|
13375
13375
|
operationId: "getException",
|
|
13376
13376
|
description: "Returns a single exception item with its full detail.",
|
|
13377
|
-
moduleDocsUrl: "https://
|
|
13377
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/exceptions",
|
|
13378
13378
|
httpMethod: "get",
|
|
13379
13379
|
pathParams: ["project_id", "exception_id"],
|
|
13380
13380
|
queryParams: [],
|
|
@@ -13398,7 +13398,7 @@ const routes = {
|
|
|
13398
13398
|
serviceClass: "Exceptions",
|
|
13399
13399
|
operationId: "acknowledgeException",
|
|
13400
13400
|
description: "Moves the item to `acknowledged` (\"someone is on it\"), recording who. A no-op that returns the item unchanged when already acknowledged; rejected when already resolved.",
|
|
13401
|
-
moduleDocsUrl: "https://
|
|
13401
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/exceptions",
|
|
13402
13402
|
httpMethod: "post",
|
|
13403
13403
|
pathParams: ["project_id", "exception_id"],
|
|
13404
13404
|
queryParams: [],
|
|
@@ -13422,7 +13422,7 @@ const routes = {
|
|
|
13422
13422
|
serviceClass: "Exceptions",
|
|
13423
13423
|
operationId: "resolveException",
|
|
13424
13424
|
description: "Moves the item to `resolved` (\"fixed\"), recording who and an optional note.",
|
|
13425
|
-
moduleDocsUrl: "https://
|
|
13425
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/exceptions",
|
|
13426
13426
|
httpMethod: "post",
|
|
13427
13427
|
pathParams: ["project_id", "exception_id"],
|
|
13428
13428
|
queryParams: [],
|
|
@@ -13456,7 +13456,7 @@ const routes = {
|
|
|
13456
13456
|
serviceClass: "Files",
|
|
13457
13457
|
operationId: "listFiles",
|
|
13458
13458
|
description: "Returns a list of all stored files",
|
|
13459
|
-
moduleDocsUrl: "https://
|
|
13459
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/files",
|
|
13460
13460
|
httpMethod: "get",
|
|
13461
13461
|
pathParams: ["project_id"],
|
|
13462
13462
|
queryParams: [
|
|
@@ -13509,7 +13509,7 @@ const routes = {
|
|
|
13509
13509
|
serviceClass: "Files",
|
|
13510
13510
|
operationId: "createFile",
|
|
13511
13511
|
description: "Creates a new file record in the system",
|
|
13512
|
-
moduleDocsUrl: "https://
|
|
13512
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/files",
|
|
13513
13513
|
httpMethod: "post",
|
|
13514
13514
|
pathParams: ["project_id"],
|
|
13515
13515
|
queryParams: [],
|
|
@@ -13564,7 +13564,7 @@ const routes = {
|
|
|
13564
13564
|
serviceClass: "Files",
|
|
13565
13565
|
operationId: "uploadFile",
|
|
13566
13566
|
description: "Uploads a file to the server and stores it in the configured storage directory",
|
|
13567
|
-
moduleDocsUrl: "https://
|
|
13567
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/files",
|
|
13568
13568
|
httpMethod: "post",
|
|
13569
13569
|
pathParams: ["project_id"],
|
|
13570
13570
|
queryParams: [],
|
|
@@ -13582,7 +13582,7 @@ const routes = {
|
|
|
13582
13582
|
serviceClass: "Files",
|
|
13583
13583
|
operationId: "uploadFileBase64",
|
|
13584
13584
|
description: "Uploads a file to the server using base64-encoded content",
|
|
13585
|
-
moduleDocsUrl: "https://
|
|
13585
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/files",
|
|
13586
13586
|
httpMethod: "post",
|
|
13587
13587
|
pathParams: ["project_id"],
|
|
13588
13588
|
queryParams: [],
|
|
@@ -13637,7 +13637,7 @@ const routes = {
|
|
|
13637
13637
|
serviceClass: "Files",
|
|
13638
13638
|
operationId: "getFile",
|
|
13639
13639
|
description: "Returns the data and metadata of a specific file",
|
|
13640
|
-
moduleDocsUrl: "https://
|
|
13640
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/files",
|
|
13641
13641
|
httpMethod: "get",
|
|
13642
13642
|
pathParams: ["project_id", "file_id"],
|
|
13643
13643
|
queryParams: [],
|
|
@@ -13661,7 +13661,7 @@ const routes = {
|
|
|
13661
13661
|
serviceClass: "Files",
|
|
13662
13662
|
operationId: "deleteFile",
|
|
13663
13663
|
description: "Removes a file from the system by ID",
|
|
13664
|
-
moduleDocsUrl: "https://
|
|
13664
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/files",
|
|
13665
13665
|
httpMethod: "delete",
|
|
13666
13666
|
pathParams: ["project_id", "file_id"],
|
|
13667
13667
|
queryParams: [],
|
|
@@ -13685,7 +13685,7 @@ const routes = {
|
|
|
13685
13685
|
serviceClass: "Files",
|
|
13686
13686
|
operationId: "downloadFile",
|
|
13687
13687
|
description: "Streams the file content to the client",
|
|
13688
|
-
moduleDocsUrl: "https://
|
|
13688
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/files",
|
|
13689
13689
|
httpMethod: "get",
|
|
13690
13690
|
pathParams: ["project_id", "file_id"],
|
|
13691
13691
|
queryParams: ["token"],
|
|
@@ -13719,7 +13719,7 @@ const routes = {
|
|
|
13719
13719
|
serviceClass: "Files",
|
|
13720
13720
|
operationId: "updateFileMetadata",
|
|
13721
13721
|
description: "Updates the metadata field of a file",
|
|
13722
|
-
moduleDocsUrl: "https://
|
|
13722
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/files",
|
|
13723
13723
|
httpMethod: "patch",
|
|
13724
13724
|
pathParams: ["project_id", "file_id"],
|
|
13725
13725
|
queryParams: [],
|
|
@@ -13767,7 +13767,7 @@ const routes = {
|
|
|
13767
13767
|
serviceClass: "Files",
|
|
13768
13768
|
operationId: "downloadFileBase64",
|
|
13769
13769
|
description: "Returns the file content encoded as base64",
|
|
13770
|
-
moduleDocsUrl: "https://
|
|
13770
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/files",
|
|
13771
13771
|
httpMethod: "get",
|
|
13772
13772
|
pathParams: ["project_id", "file_id"],
|
|
13773
13773
|
queryParams: ["token"],
|
|
@@ -13801,7 +13801,7 @@ const routes = {
|
|
|
13801
13801
|
serviceClass: "Files",
|
|
13802
13802
|
operationId: "getFileTags",
|
|
13803
13803
|
description: "Returns all tags attached to the file",
|
|
13804
|
-
moduleDocsUrl: "https://
|
|
13804
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/files",
|
|
13805
13805
|
httpMethod: "get",
|
|
13806
13806
|
pathParams: ["project_id", "file_id"],
|
|
13807
13807
|
queryParams: [],
|
|
@@ -13825,7 +13825,7 @@ const routes = {
|
|
|
13825
13825
|
serviceClass: "Files",
|
|
13826
13826
|
operationId: "replaceFileTags",
|
|
13827
13827
|
description: "Replaces all tags on the file with the provided tags",
|
|
13828
|
-
moduleDocsUrl: "https://
|
|
13828
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/files",
|
|
13829
13829
|
httpMethod: "put",
|
|
13830
13830
|
pathParams: ["project_id", "file_id"],
|
|
13831
13831
|
queryParams: [],
|
|
@@ -13859,7 +13859,7 @@ const routes = {
|
|
|
13859
13859
|
serviceClass: "Files",
|
|
13860
13860
|
operationId: "mergeFileTags",
|
|
13861
13861
|
description: "Merges provided tags into the file's existing tags (existing tags are preserved unless overridden)",
|
|
13862
|
-
moduleDocsUrl: "https://
|
|
13862
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/files",
|
|
13863
13863
|
httpMethod: "patch",
|
|
13864
13864
|
pathParams: ["project_id", "file_id"],
|
|
13865
13865
|
queryParams: [],
|
|
@@ -13893,7 +13893,7 @@ const routes = {
|
|
|
13893
13893
|
serviceClass: "Formations",
|
|
13894
13894
|
operationId: "validateFormation",
|
|
13895
13895
|
description: "Validates a formation template without creating any resources. Returns a list of errors and warnings. Accepts the template as a JSON object or as a YAML/JSON string.",
|
|
13896
|
-
moduleDocsUrl: "https://
|
|
13896
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/formations",
|
|
13897
13897
|
httpMethod: "post",
|
|
13898
13898
|
pathParams: ["project_id"],
|
|
13899
13899
|
queryParams: [],
|
|
@@ -13927,7 +13927,7 @@ const routes = {
|
|
|
13927
13927
|
serviceClass: "Formations",
|
|
13928
13928
|
operationId: "planFormation",
|
|
13929
13929
|
description: "Computes a diff between the desired template and the current stack state without making any changes. Returns the list of planned actions.",
|
|
13930
|
-
moduleDocsUrl: "https://
|
|
13930
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/formations",
|
|
13931
13931
|
httpMethod: "post",
|
|
13932
13932
|
pathParams: ["project_id"],
|
|
13933
13933
|
queryParams: [],
|
|
@@ -13968,7 +13968,7 @@ const routes = {
|
|
|
13968
13968
|
serviceClass: "Formations",
|
|
13969
13969
|
operationId: "listFormations",
|
|
13970
13970
|
description: "Returns all formation stacks for a project",
|
|
13971
|
-
moduleDocsUrl: "https://
|
|
13971
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/formations",
|
|
13972
13972
|
httpMethod: "get",
|
|
13973
13973
|
pathParams: ["project_id"],
|
|
13974
13974
|
queryParams: ["limit", "offset"],
|
|
@@ -14002,7 +14002,7 @@ const routes = {
|
|
|
14002
14002
|
serviceClass: "Formations",
|
|
14003
14003
|
operationId: "createFormation",
|
|
14004
14004
|
description: "Validates the template, creates the formation record, then provisions all declared resources in dependency order. A **template-shape** error is refused with `400`. A **deploy** failure is not: the operation ran, so the formation is returned with `201` and `status: \"failed\"`, and `error` explains why (the resources created before the failure are rolled back). Read `status` — a `2xx` here means the deploy was attempted, not that it worked. The `naturali` CLI exits non-zero on that body so `create-formation && …` does not lie.",
|
|
14005
|
-
moduleDocsUrl: "https://
|
|
14005
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/formations",
|
|
14006
14006
|
httpMethod: "post",
|
|
14007
14007
|
pathParams: ["project_id"],
|
|
14008
14008
|
queryParams: [],
|
|
@@ -14050,7 +14050,7 @@ const routes = {
|
|
|
14050
14050
|
serviceClass: "Formations",
|
|
14051
14051
|
operationId: "getFormation",
|
|
14052
14052
|
description: "Returns the formation stack including its current resources.",
|
|
14053
|
-
moduleDocsUrl: "https://
|
|
14053
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/formations",
|
|
14054
14054
|
httpMethod: "get",
|
|
14055
14055
|
pathParams: ["project_id", "formation_id"],
|
|
14056
14056
|
queryParams: [],
|
|
@@ -14074,7 +14074,7 @@ const routes = {
|
|
|
14074
14074
|
serviceClass: "Formations",
|
|
14075
14075
|
operationId: "updateFormation",
|
|
14076
14076
|
description: "Applies a new template to the formation. Resources are created, updated, or deleted to reconcile the current state with the desired state. A **template-shape** error is refused with `400`. A **deploy** failure is not: the operation ran, so the formation is returned with `200` and `status: \"failed\"`, and `error` explains why. Read `status` — a `2xx` here means the deploy was attempted, not that it worked. The `naturali` CLI exits non-zero on that body so `update-formation && …` does not lie. A deploy that replaced a resource and could not delete the superseded one answers `status: \"active\"` with `error.code: \"FORMATION_REPLACE_CLEANUP_FAILED\"` — the desired state is realised, and `error.meta.failures` names every resource still live. The next deploy retries the disposal.",
|
|
14077
|
-
moduleDocsUrl: "https://
|
|
14077
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/formations",
|
|
14078
14078
|
httpMethod: "put",
|
|
14079
14079
|
pathParams: ["project_id", "formation_id"],
|
|
14080
14080
|
queryParams: [],
|
|
@@ -14122,7 +14122,7 @@ const routes = {
|
|
|
14122
14122
|
serviceClass: "Formations",
|
|
14123
14123
|
operationId: "deleteFormation",
|
|
14124
14124
|
description: "Deletes the formation stack and all its managed resources in reverse dependency order. A resource the platform refuses to delete on its own — most often an agent that has generation or trace history — fails the teardown with `409 FORMATION_DELETE_FAILED`, naming every blocking resource in `error.meta.failures`. Resolve the blockers (for an agent, `DELETE /v1/projects/{project_id}/agents/{agent_id}?force=true` also removes its generations and traces, and `deletion_policy: retain` exempts it from teardown entirely) and delete the formation again. A refusal the platform can foresee is found by a pre-flight, before the first delete: nothing is removed, and the formation stays `active` and intact for the retry. An unforeseeable error surfaces mid-teardown instead, where resources deleted before the blocker stay deleted and the formation is left in `delete_failed`. The error message states which happened.",
|
|
14125
|
-
moduleDocsUrl: "https://
|
|
14125
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/formations",
|
|
14126
14126
|
httpMethod: "delete",
|
|
14127
14127
|
pathParams: ["project_id", "formation_id"],
|
|
14128
14128
|
queryParams: [],
|
|
@@ -14146,7 +14146,7 @@ const routes = {
|
|
|
14146
14146
|
serviceClass: "Formations",
|
|
14147
14147
|
operationId: "listFormationEvents",
|
|
14148
14148
|
description: "Returns all operations (create, update, delete) with their event logs for the formation, ordered chronologically.",
|
|
14149
|
-
moduleDocsUrl: "https://
|
|
14149
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/formations",
|
|
14150
14150
|
httpMethod: "get",
|
|
14151
14151
|
pathParams: ["project_id", "formation_id"],
|
|
14152
14152
|
queryParams: ["limit", "offset"],
|
|
@@ -14187,7 +14187,7 @@ const routes = {
|
|
|
14187
14187
|
serviceClass: "Generations",
|
|
14188
14188
|
operationId: "listGenerations",
|
|
14189
14189
|
description: "Returns generations the caller can access, optionally filtered by agent, trace, orchestration run, node, and status. The generations of one trace are the `trace_id` filter. Filtering by `orchestration_run_id` is the supported way to get from an orchestration run to the generations its agent nodes produced: a node execution record carries no generation id, so the pointer lives here, alongside the run's other attribution columns.",
|
|
14190
|
-
moduleDocsUrl: "https://
|
|
14190
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/generations",
|
|
14191
14191
|
httpMethod: "get",
|
|
14192
14192
|
pathParams: ["project_id"],
|
|
14193
14193
|
queryParams: [
|
|
@@ -14296,7 +14296,7 @@ const routes = {
|
|
|
14296
14296
|
serviceClass: "Generations",
|
|
14297
14297
|
operationId: "getGeneration",
|
|
14298
14298
|
description: "Returns a single generation record by ID, including its status and the structured `error` payload when the generation failed (e.g. because the upstream AI provider returned an error).",
|
|
14299
|
-
moduleDocsUrl: "https://
|
|
14299
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/generations",
|
|
14300
14300
|
httpMethod: "get",
|
|
14301
14301
|
pathParams: ["project_id", "generation_id"],
|
|
14302
14302
|
queryParams: [],
|
|
@@ -14320,7 +14320,7 @@ const routes = {
|
|
|
14320
14320
|
serviceClass: "Generations",
|
|
14321
14321
|
operationId: "updateGeneration",
|
|
14322
14322
|
description: "Attaches caller-supplied key/value metadata to a generation record for per-run audit attribution (e.g. the ticket or case an AI action belongs to). The provided keys are shallow-merged over the existing `metadata`, so repeated patches accumulate. The bag is caller-owned and no key is reserved: server-owned state (usage attribution, the served agent version, the route's record, the extraction summary, what knowledge retrieval served) lives in its own top-level fields and cannot be written from here.",
|
|
14323
|
-
moduleDocsUrl: "https://
|
|
14323
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/generations",
|
|
14324
14324
|
httpMethod: "patch",
|
|
14325
14325
|
pathParams: ["project_id", "generation_id"],
|
|
14326
14326
|
queryParams: [],
|
|
@@ -14354,7 +14354,7 @@ const routes = {
|
|
|
14354
14354
|
serviceClass: "Generations",
|
|
14355
14355
|
operationId: "purgeGenerationContent",
|
|
14356
14356
|
description: "Clears the generation's content — `metadata`, `error`, `extraction`, and the internal recovery state of a paused run — and stamps `content_redacted_at`. The usage and audit skeleton is preserved: ids, timestamps, status, stop reason, and the attribution fields (`action_id`, `trigger_id`, `orchestration_run_id`, `node_id`, `node_attempt`, `agent_version`, `routing`) the billing ledger reads. A purged generation reads back as that skeleton, not a 404. This does **not** delete the parent trace's steps object, which holds this generation's content alongside its siblings'. To erase the run's content completely, purge the trace (`DELETE /v1/projects/{project_id}/traces/{trace_id}/content`), which cascades here. Idempotent — purging an already-purged generation succeeds and leaves the original `content_redacted_at` in place.",
|
|
14357
|
-
moduleDocsUrl: "https://
|
|
14357
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/generations",
|
|
14358
14358
|
httpMethod: "delete",
|
|
14359
14359
|
pathParams: ["project_id", "generation_id"],
|
|
14360
14360
|
queryParams: [],
|
|
@@ -14378,7 +14378,7 @@ const routes = {
|
|
|
14378
14378
|
serviceClass: "Generations",
|
|
14379
14379
|
operationId: "getGenerationTranscript",
|
|
14380
14380
|
description: "Returns one generation's turn read back as an ordered sequence of steps: what it was asked, each model step with its tool calls and results, and how it ended. The transcript is assembled at read time from the generation record and the trace's steps object; nothing is stored, so it cannot outlive the content it projects. Requires `traces:GetTrace` in addition to `generations:GetGeneration`, because the response merges content from both resources. A generation whose content is unavailable — never written under zero-retention, or cleared by a purge — returns `200` with the skeleton rather than an error: `input` and `output` are null, `steps` is empty, and the `content_redacted_*` fields say which happened. `content_redacted_by_principal_id` is `zero_retention` when the content was never stored, and the purging principal's ID when it was erased later. A generation that is still running returns the same shape with an empty `steps`; `status` disambiguates the two.",
|
|
14381
|
-
moduleDocsUrl: "https://
|
|
14381
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/generations",
|
|
14382
14382
|
httpMethod: "get",
|
|
14383
14383
|
pathParams: ["project_id", "generation_id"],
|
|
14384
14384
|
queryParams: [],
|
|
@@ -14402,7 +14402,7 @@ const routes = {
|
|
|
14402
14402
|
serviceClass: "Guardrails",
|
|
14403
14403
|
operationId: "listGuardrails",
|
|
14404
14404
|
description: "Returns all guardrails in the project.",
|
|
14405
|
-
moduleDocsUrl: "https://
|
|
14405
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/guardrails",
|
|
14406
14406
|
httpMethod: "get",
|
|
14407
14407
|
pathParams: ["project_id"],
|
|
14408
14408
|
queryParams: ["limit", "offset"],
|
|
@@ -14436,7 +14436,7 @@ const routes = {
|
|
|
14436
14436
|
serviceClass: "Guardrails",
|
|
14437
14437
|
operationId: "createGuardrail",
|
|
14438
14438
|
description: "Creates a new guardrail in the project, archiving its document as version 1. The `document` is validated on write: `class` must be a literal (A/B/C/D) or a JSON Logic expression, and every variable it (and `guard`) reference must resolve to the `args.*` / `context.*` / `runtime.*` namespaces — an out-of-catalog `runtime.*` key is rejected with 400.",
|
|
14439
|
-
moduleDocsUrl: "https://
|
|
14439
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/guardrails",
|
|
14440
14440
|
httpMethod: "post",
|
|
14441
14441
|
pathParams: ["project_id"],
|
|
14442
14442
|
queryParams: [],
|
|
@@ -14498,7 +14498,7 @@ const routes = {
|
|
|
14498
14498
|
serviceClass: "Guardrails",
|
|
14499
14499
|
operationId: "getGuardrail",
|
|
14500
14500
|
description: "Returns a single guardrail by ID.",
|
|
14501
|
-
moduleDocsUrl: "https://
|
|
14501
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/guardrails",
|
|
14502
14502
|
httpMethod: "get",
|
|
14503
14503
|
pathParams: ["project_id", "guardrail_id"],
|
|
14504
14504
|
queryParams: [],
|
|
@@ -14522,7 +14522,7 @@ const routes = {
|
|
|
14522
14522
|
serviceClass: "Guardrails",
|
|
14523
14523
|
operationId: "updateGuardrail",
|
|
14524
14524
|
description: "Updates an existing guardrail. A `document` write that actually changes the policy increments `version` and archives the new document as a GuardrailVersion; metadata-only edits (name / description / context), and re-writing the document the guardrail already holds, leave the version untouched.",
|
|
14525
|
-
moduleDocsUrl: "https://
|
|
14525
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/guardrails",
|
|
14526
14526
|
httpMethod: "patch",
|
|
14527
14527
|
pathParams: ["project_id", "guardrail_id"],
|
|
14528
14528
|
queryParams: [],
|
|
@@ -14605,7 +14605,7 @@ const routes = {
|
|
|
14605
14605
|
serviceClass: "Guardrails",
|
|
14606
14606
|
operationId: "deleteGuardrail",
|
|
14607
14607
|
description: "Deletes a guardrail and its archived versions by ID.",
|
|
14608
|
-
moduleDocsUrl: "https://
|
|
14608
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/guardrails",
|
|
14609
14609
|
httpMethod: "delete",
|
|
14610
14610
|
pathParams: ["project_id", "guardrail_id"],
|
|
14611
14611
|
queryParams: [],
|
|
@@ -14629,7 +14629,7 @@ const routes = {
|
|
|
14629
14629
|
serviceClass: "Guardrails",
|
|
14630
14630
|
operationId: "listGuardrailVersions",
|
|
14631
14631
|
description: "Returns the guardrail's archived configurations, newest first. A version is written on create and on every subsequent write that changes the policy `document` — through the REST API or a formation apply alike. Metadata-only edits (name, description, context binding) do not archive a version. See [Versioning](/docs/modules/guardrails#versioning).",
|
|
14632
|
-
moduleDocsUrl: "https://
|
|
14632
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/guardrails",
|
|
14633
14633
|
httpMethod: "get",
|
|
14634
14634
|
pathParams: ["project_id", "guardrail_id"],
|
|
14635
14635
|
queryParams: ["limit", "offset"],
|
|
@@ -14670,7 +14670,7 @@ const routes = {
|
|
|
14670
14670
|
serviceClass: "Guardrails",
|
|
14671
14671
|
operationId: "getGuardrailVersion",
|
|
14672
14672
|
description: "Returns the exact configuration — and so the exact `document` — that governed at a given version. Approval items, activity entries, and exceptions record the version that governed them, so the audit chain survives edits.",
|
|
14673
|
-
moduleDocsUrl: "https://
|
|
14673
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/guardrails",
|
|
14674
14674
|
httpMethod: "get",
|
|
14675
14675
|
pathParams: [
|
|
14676
14676
|
"project_id",
|
|
@@ -14708,7 +14708,7 @@ const routes = {
|
|
|
14708
14708
|
serviceClass: "Guardrails",
|
|
14709
14709
|
operationId: "restoreGuardrailVersion",
|
|
14710
14710
|
description: "Writes an archived version's `document` back as the guardrail's live policy, which archives it again as a **new** version rather than rewinding the counter — so an approval item or exception citing any version in between still resolves. The restore runs through the ordinary update path, so the archived document is re-validated; restoring the policy the guardrail already holds is a no-op and archives nothing.",
|
|
14711
|
-
moduleDocsUrl: "https://
|
|
14711
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/guardrails",
|
|
14712
14712
|
httpMethod: "post",
|
|
14713
14713
|
pathParams: [
|
|
14714
14714
|
"project_id",
|
|
@@ -14753,7 +14753,7 @@ const routes = {
|
|
|
14753
14753
|
serviceClass: "Guardrails",
|
|
14754
14754
|
operationId: "evaluateGuardrail",
|
|
14755
14755
|
description: "Runs the full evaluation pipeline — the `class` expression, the guard, the context tool per `context_mode`, live `runtime.*` resolution — against caller-supplied `args` and `guardrail_context`, and returns the exact `guardrail_evaluation` record a real call would produce. Nothing executes, no approval item is filed, and no activity entry is written. This is the adoption path: preview a document's decisions against production-shaped calls before attaching it — or before editing a widely-attached one. Pass an optional `tool_id` to resolve `runtime.tools.*`.",
|
|
14756
|
-
moduleDocsUrl: "https://
|
|
14756
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/guardrails",
|
|
14757
14757
|
httpMethod: "post",
|
|
14758
14758
|
pathParams: ["project_id", "guardrail_id"],
|
|
14759
14759
|
queryParams: [],
|
|
@@ -14801,7 +14801,7 @@ const routes = {
|
|
|
14801
14801
|
serviceClass: "IngestionRules",
|
|
14802
14802
|
operationId: "listIngestionRules",
|
|
14803
14803
|
description: "Returns the ingestion rules for a project",
|
|
14804
|
-
moduleDocsUrl: "https://
|
|
14804
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/ingestion-rules",
|
|
14805
14805
|
httpMethod: "get",
|
|
14806
14806
|
pathParams: ["project_id"],
|
|
14807
14807
|
queryParams: ["limit", "offset"],
|
|
@@ -14835,7 +14835,7 @@ const routes = {
|
|
|
14835
14835
|
serviceClass: "IngestionRules",
|
|
14836
14836
|
operationId: "createIngestionRule",
|
|
14837
14837
|
description: "Creates a rule mapping a content_type glob to a converter. Exactly one of tool_id or agent_id must be set.",
|
|
14838
|
-
moduleDocsUrl: "https://
|
|
14838
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/ingestion-rules",
|
|
14839
14839
|
httpMethod: "post",
|
|
14840
14840
|
pathParams: ["project_id"],
|
|
14841
14841
|
queryParams: [],
|
|
@@ -14932,7 +14932,7 @@ const routes = {
|
|
|
14932
14932
|
serviceClass: "IngestionRules",
|
|
14933
14933
|
operationId: "getIngestionRule",
|
|
14934
14934
|
description: "Returns a specific ingestion rule",
|
|
14935
|
-
moduleDocsUrl: "https://
|
|
14935
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/ingestion-rules",
|
|
14936
14936
|
httpMethod: "get",
|
|
14937
14937
|
pathParams: ["project_id", "ingestion_rule_id"],
|
|
14938
14938
|
queryParams: [],
|
|
@@ -14956,7 +14956,7 @@ const routes = {
|
|
|
14956
14956
|
serviceClass: "IngestionRules",
|
|
14957
14957
|
operationId: "updateIngestionRule",
|
|
14958
14958
|
description: "Updates fields of an ingestion rule",
|
|
14959
|
-
moduleDocsUrl: "https://
|
|
14959
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/ingestion-rules",
|
|
14960
14960
|
httpMethod: "patch",
|
|
14961
14961
|
pathParams: ["project_id", "ingestion_rule_id"],
|
|
14962
14962
|
queryParams: [],
|
|
@@ -15060,7 +15060,7 @@ const routes = {
|
|
|
15060
15060
|
serviceClass: "IngestionRules",
|
|
15061
15061
|
operationId: "deleteIngestionRule",
|
|
15062
15062
|
description: "Deletes an ingestion rule",
|
|
15063
|
-
moduleDocsUrl: "https://
|
|
15063
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/ingestion-rules",
|
|
15064
15064
|
httpMethod: "delete",
|
|
15065
15065
|
pathParams: ["project_id", "ingestion_rule_id"],
|
|
15066
15066
|
queryParams: [],
|
|
@@ -15084,7 +15084,7 @@ const routes = {
|
|
|
15084
15084
|
serviceClass: "Installs",
|
|
15085
15085
|
operationId: "listInstalls",
|
|
15086
15086
|
description: "The listings the project installed, newest first.",
|
|
15087
|
-
moduleDocsUrl: "https://
|
|
15087
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/installs",
|
|
15088
15088
|
httpMethod: "get",
|
|
15089
15089
|
pathParams: ["project_id"],
|
|
15090
15090
|
queryParams: ["limit", "cursor"],
|
|
@@ -15118,7 +15118,7 @@ const routes = {
|
|
|
15118
15118
|
serviceClass: "Installs",
|
|
15119
15119
|
operationId: "createInstall",
|
|
15120
15120
|
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`.",
|
|
15121
|
-
moduleDocsUrl: "https://
|
|
15121
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/installs",
|
|
15122
15122
|
httpMethod: "post",
|
|
15123
15123
|
pathParams: ["project_id"],
|
|
15124
15124
|
queryParams: [],
|
|
@@ -15142,7 +15142,7 @@ const routes = {
|
|
|
15142
15142
|
serviceClass: "Installs",
|
|
15143
15143
|
operationId: "getInstall",
|
|
15144
15144
|
description: "One of the project's installs.",
|
|
15145
|
-
moduleDocsUrl: "https://
|
|
15145
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/installs",
|
|
15146
15146
|
httpMethod: "get",
|
|
15147
15147
|
pathParams: ["project_id", "install_id"],
|
|
15148
15148
|
queryParams: [],
|
|
@@ -15166,7 +15166,7 @@ const routes = {
|
|
|
15166
15166
|
serviceClass: "Installs",
|
|
15167
15167
|
operationId: "deleteInstall",
|
|
15168
15168
|
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`.",
|
|
15169
|
-
moduleDocsUrl: "https://
|
|
15169
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/installs",
|
|
15170
15170
|
httpMethod: "delete",
|
|
15171
15171
|
pathParams: ["project_id", "install_id"],
|
|
15172
15172
|
queryParams: ["force"],
|
|
@@ -15200,7 +15200,7 @@ const routes = {
|
|
|
15200
15200
|
serviceClass: "Knowledge",
|
|
15201
15201
|
operationId: "searchKnowledge",
|
|
15202
15202
|
description: "Searches across documents and memories using hybrid retrieval — a vector query and a full-text query per source, fused by reciprocal rank — or by file paths, document IDs, memory store IDs, or tags. At least one of `query`, `tags`, `document_paths`, `document_ids`, or `memory_store_ids` must be provided.",
|
|
15203
|
-
moduleDocsUrl: "https://
|
|
15203
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/knowledge",
|
|
15204
15204
|
httpMethod: "post",
|
|
15205
15205
|
pathParams: ["project_id"],
|
|
15206
15206
|
queryParams: [],
|
|
@@ -15304,7 +15304,7 @@ const routes = {
|
|
|
15304
15304
|
serviceClass: "Listings",
|
|
15305
15305
|
operationId: "listPublicListings",
|
|
15306
15306
|
description: "Every listed entry, newest first. `interface` is what an installing project sees of the resource, read live from the publisher.",
|
|
15307
|
-
moduleDocsUrl: "https://
|
|
15307
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/listings",
|
|
15308
15308
|
httpMethod: "get",
|
|
15309
15309
|
pathParams: [],
|
|
15310
15310
|
queryParams: ["limit", "cursor"],
|
|
@@ -15328,7 +15328,7 @@ const routes = {
|
|
|
15328
15328
|
serviceClass: "Listings",
|
|
15329
15329
|
operationId: "getPublicListing",
|
|
15330
15330
|
description: "One listed entry. A listing that is not listed answers `404`.",
|
|
15331
|
-
moduleDocsUrl: "https://
|
|
15331
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/listings",
|
|
15332
15332
|
httpMethod: "get",
|
|
15333
15333
|
pathParams: ["listing_id"],
|
|
15334
15334
|
queryParams: [],
|
|
@@ -15346,7 +15346,7 @@ const routes = {
|
|
|
15346
15346
|
serviceClass: "Listings",
|
|
15347
15347
|
operationId: "listListings",
|
|
15348
15348
|
description: "The listings the project publishes, newest first.",
|
|
15349
|
-
moduleDocsUrl: "https://
|
|
15349
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/listings",
|
|
15350
15350
|
httpMethod: "get",
|
|
15351
15351
|
pathParams: ["project_id"],
|
|
15352
15352
|
queryParams: ["limit", "cursor"],
|
|
@@ -15380,7 +15380,7 @@ const routes = {
|
|
|
15380
15380
|
serviceClass: "Listings",
|
|
15381
15381
|
operationId: "createListing",
|
|
15382
15382
|
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`.",
|
|
15383
|
-
moduleDocsUrl: "https://
|
|
15383
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/listings",
|
|
15384
15384
|
httpMethod: "post",
|
|
15385
15385
|
pathParams: ["project_id"],
|
|
15386
15386
|
queryParams: [],
|
|
@@ -15435,7 +15435,7 @@ const routes = {
|
|
|
15435
15435
|
serviceClass: "Listings",
|
|
15436
15436
|
operationId: "getListing",
|
|
15437
15437
|
description: "One of the project's listings.",
|
|
15438
|
-
moduleDocsUrl: "https://
|
|
15438
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/listings",
|
|
15439
15439
|
httpMethod: "get",
|
|
15440
15440
|
pathParams: ["project_id", "listing_id"],
|
|
15441
15441
|
queryParams: [],
|
|
@@ -15459,7 +15459,7 @@ const routes = {
|
|
|
15459
15459
|
serviceClass: "Listings",
|
|
15460
15460
|
operationId: "updateListing",
|
|
15461
15461
|
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`.",
|
|
15462
|
-
moduleDocsUrl: "https://
|
|
15462
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/listings",
|
|
15463
15463
|
httpMethod: "patch",
|
|
15464
15464
|
pathParams: ["project_id", "listing_id"],
|
|
15465
15465
|
queryParams: [],
|
|
@@ -15514,7 +15514,7 @@ const routes = {
|
|
|
15514
15514
|
serviceClass: "Listings",
|
|
15515
15515
|
operationId: "submitListing",
|
|
15516
15516
|
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`.",
|
|
15517
|
-
moduleDocsUrl: "https://
|
|
15517
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/listings",
|
|
15518
15518
|
httpMethod: "post",
|
|
15519
15519
|
pathParams: ["project_id", "listing_id"],
|
|
15520
15520
|
queryParams: [],
|
|
@@ -15538,7 +15538,7 @@ const routes = {
|
|
|
15538
15538
|
serviceClass: "Listings",
|
|
15539
15539
|
operationId: "listListingInstalls",
|
|
15540
15540
|
description: "Each project that installed the listing, with its usage this billing cycle as last sampled. Never the content of a call.",
|
|
15541
|
-
moduleDocsUrl: "https://
|
|
15541
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/listings",
|
|
15542
15542
|
httpMethod: "get",
|
|
15543
15543
|
pathParams: ["project_id", "listing_id"],
|
|
15544
15544
|
queryParams: ["limit", "cursor"],
|
|
@@ -15579,7 +15579,7 @@ const routes = {
|
|
|
15579
15579
|
serviceClass: "Listings",
|
|
15580
15580
|
operationId: "deleteListingInstall",
|
|
15581
15581
|
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.",
|
|
15582
|
-
moduleDocsUrl: "https://
|
|
15582
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/listings",
|
|
15583
15583
|
httpMethod: "delete",
|
|
15584
15584
|
pathParams: [
|
|
15585
15585
|
"project_id",
|
|
@@ -15617,7 +15617,7 @@ const routes = {
|
|
|
15617
15617
|
serviceClass: "Memories",
|
|
15618
15618
|
operationId: "listMemories",
|
|
15619
15619
|
description: "Returns all memories in a memory store",
|
|
15620
|
-
moduleDocsUrl: "https://
|
|
15620
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memories",
|
|
15621
15621
|
httpMethod: "get",
|
|
15622
15622
|
pathParams: ["project_id"],
|
|
15623
15623
|
queryParams: [
|
|
@@ -15678,7 +15678,7 @@ const routes = {
|
|
|
15678
15678
|
serviceClass: "Memories",
|
|
15679
15679
|
operationId: "createMemory",
|
|
15680
15680
|
description: "Writes a fact to the specified memory store through the standard write algorithm: the content is embedded (or matched to text the store already holds), compared against the most similar currently-valid memory, and resolved to exactly one of three outcomes — `skipped` at or above `duplicate_threshold`, `superseded` at or above `supersede_threshold`, `created` below it. `supersedes` overrides that comparison entirely, retiring the memory it names. Every call records one assertion, whatever the outcome.",
|
|
15681
|
-
moduleDocsUrl: "https://
|
|
15681
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memories",
|
|
15682
15682
|
httpMethod: "post",
|
|
15683
15683
|
pathParams: ["project_id"],
|
|
15684
15684
|
queryParams: [],
|
|
@@ -15761,7 +15761,7 @@ const routes = {
|
|
|
15761
15761
|
serviceClass: "Memories",
|
|
15762
15762
|
operationId: "getMemory",
|
|
15763
15763
|
description: "Returns a single memory by ID",
|
|
15764
|
-
moduleDocsUrl: "https://
|
|
15764
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memories",
|
|
15765
15765
|
httpMethod: "get",
|
|
15766
15766
|
pathParams: ["project_id", "memory_id"],
|
|
15767
15767
|
queryParams: [],
|
|
@@ -15785,7 +15785,7 @@ const routes = {
|
|
|
15785
15785
|
serviceClass: "Memories",
|
|
15786
15786
|
operationId: "updateMemory",
|
|
15787
15787
|
description: "Updates an existing memory. Regenerates the embedding if content changes.",
|
|
15788
|
-
moduleDocsUrl: "https://
|
|
15788
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memories",
|
|
15789
15789
|
httpMethod: "put",
|
|
15790
15790
|
pathParams: ["project_id", "memory_id"],
|
|
15791
15791
|
queryParams: [],
|
|
@@ -15847,7 +15847,7 @@ const routes = {
|
|
|
15847
15847
|
serviceClass: "Memories",
|
|
15848
15848
|
operationId: "deleteMemory",
|
|
15849
15849
|
description: "Deletes a memory",
|
|
15850
|
-
moduleDocsUrl: "https://
|
|
15850
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memories",
|
|
15851
15851
|
httpMethod: "delete",
|
|
15852
15852
|
pathParams: ["project_id", "memory_id"],
|
|
15853
15853
|
queryParams: [],
|
|
@@ -15871,7 +15871,7 @@ const routes = {
|
|
|
15871
15871
|
serviceClass: "Memories",
|
|
15872
15872
|
operationId: "retractMemory",
|
|
15873
15873
|
description: "Retires a fact that stopped holding with nothing replacing it. The memory leaves the default listing, [knowledge search](/docs/api/knowledge/search-knowledge) and write deduplication, so restating the fact later lands as a new memory. It is an invalidation with no successor, which is what tells it apart from a supersede: `invalidated_at` is set and `superseded_by_memory_id` stays null. The retraction is appended to the assertion ledger with outcome `retracted`, so who withdrew the fact is part of the record. The memory stays readable by id, with its text and its assertions. `DELETE` remains the way to remove it outright.",
|
|
15874
|
-
moduleDocsUrl: "https://
|
|
15874
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memories",
|
|
15875
15875
|
httpMethod: "post",
|
|
15876
15876
|
pathParams: ["project_id", "memory_id"],
|
|
15877
15877
|
queryParams: [],
|
|
@@ -15912,7 +15912,7 @@ const routes = {
|
|
|
15912
15912
|
serviceClass: "Memories",
|
|
15913
15913
|
operationId: "listMemoryAssertions",
|
|
15914
15914
|
description: "Returns every write that resolved into this memory, oldest first: the one that created it, the duplicates it absorbed, and the assertion that superseded another memory in its favour. A superseded memory keeps its own assertions, so the chain can be walked in both directions.",
|
|
15915
|
-
moduleDocsUrl: "https://
|
|
15915
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memories",
|
|
15916
15916
|
httpMethod: "get",
|
|
15917
15917
|
pathParams: ["project_id", "memory_id"],
|
|
15918
15918
|
queryParams: ["limit", "offset"],
|
|
@@ -15953,7 +15953,7 @@ const routes = {
|
|
|
15953
15953
|
serviceClass: "Memories",
|
|
15954
15954
|
operationId: "getMemoryTags",
|
|
15955
15955
|
description: "Returns all tags attached to the memory",
|
|
15956
|
-
moduleDocsUrl: "https://
|
|
15956
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memories",
|
|
15957
15957
|
httpMethod: "get",
|
|
15958
15958
|
pathParams: ["project_id", "memory_id"],
|
|
15959
15959
|
queryParams: [],
|
|
@@ -15977,7 +15977,7 @@ const routes = {
|
|
|
15977
15977
|
serviceClass: "Memories",
|
|
15978
15978
|
operationId: "replaceMemoryTags",
|
|
15979
15979
|
description: "Replaces all tags on the memory with the provided tags (not merged)",
|
|
15980
|
-
moduleDocsUrl: "https://
|
|
15980
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memories",
|
|
15981
15981
|
httpMethod: "put",
|
|
15982
15982
|
pathParams: ["project_id", "memory_id"],
|
|
15983
15983
|
queryParams: [],
|
|
@@ -16011,7 +16011,7 @@ const routes = {
|
|
|
16011
16011
|
serviceClass: "Memories",
|
|
16012
16012
|
operationId: "mergeMemoryTags",
|
|
16013
16013
|
description: "Merges provided tags into the memory's existing tags (existing tags are preserved unless overridden)",
|
|
16014
|
-
moduleDocsUrl: "https://
|
|
16014
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memories",
|
|
16015
16015
|
httpMethod: "patch",
|
|
16016
16016
|
pathParams: ["project_id", "memory_id"],
|
|
16017
16017
|
queryParams: [],
|
|
@@ -16045,7 +16045,7 @@ const routes = {
|
|
|
16045
16045
|
serviceClass: "MemoryRules",
|
|
16046
16046
|
operationId: "listMemoryRules",
|
|
16047
16047
|
description: "Returns memory rules, newest first. Narrow to one store with `memory_store_id` — that form is authorized against the store itself, so it answers \"what feeds this store?\" in one call.",
|
|
16048
|
-
moduleDocsUrl: "https://
|
|
16048
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memory-rules",
|
|
16049
16049
|
httpMethod: "get",
|
|
16050
16050
|
pathParams: ["project_id"],
|
|
16051
16051
|
queryParams: [
|
|
@@ -16090,7 +16090,7 @@ const routes = {
|
|
|
16090
16090
|
serviceClass: "MemoryRules",
|
|
16091
16091
|
operationId: "createMemoryRule",
|
|
16092
16092
|
description: "Creates an ingestion rule on a memory store. With neither `agent_id` nor `tool_id` the built-in extractor runs, configurable through `prompt`, `ai_provider_id` and `model`.",
|
|
16093
|
-
moduleDocsUrl: "https://
|
|
16093
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memory-rules",
|
|
16094
16094
|
httpMethod: "post",
|
|
16095
16095
|
pathParams: ["project_id"],
|
|
16096
16096
|
queryParams: [],
|
|
@@ -16187,7 +16187,7 @@ const routes = {
|
|
|
16187
16187
|
serviceClass: "MemoryRules",
|
|
16188
16188
|
operationId: "getMemoryRule",
|
|
16189
16189
|
description: "Returns a specific memory rule",
|
|
16190
|
-
moduleDocsUrl: "https://
|
|
16190
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memory-rules",
|
|
16191
16191
|
httpMethod: "get",
|
|
16192
16192
|
pathParams: ["project_id", "memory_rule_id"],
|
|
16193
16193
|
queryParams: [],
|
|
@@ -16211,7 +16211,7 @@ const routes = {
|
|
|
16211
16211
|
serviceClass: "MemoryRules",
|
|
16212
16212
|
operationId: "updateMemoryRule",
|
|
16213
16213
|
description: "Updates a memory rule. Validation runs against the rule as it would stand after the change, so a one-field update cannot pair a handler with a stored extractor override from the side.",
|
|
16214
|
-
moduleDocsUrl: "https://
|
|
16214
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memory-rules",
|
|
16215
16215
|
httpMethod: "patch",
|
|
16216
16216
|
pathParams: ["project_id", "memory_rule_id"],
|
|
16217
16217
|
queryParams: [],
|
|
@@ -16308,7 +16308,7 @@ const routes = {
|
|
|
16308
16308
|
serviceClass: "MemoryRules",
|
|
16309
16309
|
operationId: "deleteMemoryRule",
|
|
16310
16310
|
description: "Deletes a memory rule. The assertions it wrote are kept; their `rule_id` becomes null.",
|
|
16311
|
-
moduleDocsUrl: "https://
|
|
16311
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memory-rules",
|
|
16312
16312
|
httpMethod: "delete",
|
|
16313
16313
|
pathParams: ["project_id", "memory_rule_id"],
|
|
16314
16314
|
queryParams: [],
|
|
@@ -16332,7 +16332,7 @@ const routes = {
|
|
|
16332
16332
|
serviceClass: "MemoryStores",
|
|
16333
16333
|
operationId: "listMemoryStores",
|
|
16334
16334
|
description: "Returns a list of memory store configurations for a project",
|
|
16335
|
-
moduleDocsUrl: "https://
|
|
16335
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memory-stores",
|
|
16336
16336
|
httpMethod: "get",
|
|
16337
16337
|
pathParams: ["project_id"],
|
|
16338
16338
|
queryParams: [
|
|
@@ -16377,7 +16377,7 @@ const routes = {
|
|
|
16377
16377
|
serviceClass: "MemoryStores",
|
|
16378
16378
|
operationId: "createMemoryStore",
|
|
16379
16379
|
description: "Creates a new memory store configuration in a project",
|
|
16380
|
-
moduleDocsUrl: "https://
|
|
16380
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memory-stores",
|
|
16381
16381
|
httpMethod: "post",
|
|
16382
16382
|
pathParams: ["project_id"],
|
|
16383
16383
|
queryParams: [],
|
|
@@ -16432,7 +16432,7 @@ const routes = {
|
|
|
16432
16432
|
serviceClass: "MemoryStores",
|
|
16433
16433
|
operationId: "getMemoryStore",
|
|
16434
16434
|
description: "Returns a single memory store configuration by ID",
|
|
16435
|
-
moduleDocsUrl: "https://
|
|
16435
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memory-stores",
|
|
16436
16436
|
httpMethod: "get",
|
|
16437
16437
|
pathParams: ["project_id", "memory_store_id"],
|
|
16438
16438
|
queryParams: [],
|
|
@@ -16456,7 +16456,7 @@ const routes = {
|
|
|
16456
16456
|
serviceClass: "MemoryStores",
|
|
16457
16457
|
operationId: "updateMemoryStore",
|
|
16458
16458
|
description: "Updates an existing memory store configuration",
|
|
16459
|
-
moduleDocsUrl: "https://
|
|
16459
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memory-stores",
|
|
16460
16460
|
httpMethod: "put",
|
|
16461
16461
|
pathParams: ["project_id", "memory_store_id"],
|
|
16462
16462
|
queryParams: [],
|
|
@@ -16518,7 +16518,7 @@ const routes = {
|
|
|
16518
16518
|
serviceClass: "MemoryStores",
|
|
16519
16519
|
operationId: "deleteMemoryStore",
|
|
16520
16520
|
description: "Deletes a memory store configuration",
|
|
16521
|
-
moduleDocsUrl: "https://
|
|
16521
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memory-stores",
|
|
16522
16522
|
httpMethod: "delete",
|
|
16523
16523
|
pathParams: ["project_id", "memory_store_id"],
|
|
16524
16524
|
queryParams: [],
|
|
@@ -16542,7 +16542,7 @@ const routes = {
|
|
|
16542
16542
|
serviceClass: "MemoryStores",
|
|
16543
16543
|
operationId: "listMemoryStoreAssertions",
|
|
16544
16544
|
description: "Returns the store's write ledger, newest first: one row per write attempt, skips included. This is how \"which write path is filling this store?\" is asked — a question no column on a memory row could answer, because a skipped write produced no memory at all.",
|
|
16545
|
-
moduleDocsUrl: "https://
|
|
16545
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memory-stores",
|
|
16546
16546
|
httpMethod: "get",
|
|
16547
16547
|
pathParams: ["project_id", "memory_store_id"],
|
|
16548
16548
|
queryParams: [
|
|
@@ -16618,7 +16618,7 @@ const routes = {
|
|
|
16618
16618
|
serviceClass: "MemoryStores",
|
|
16619
16619
|
operationId: "exportMemories",
|
|
16620
16620
|
description: "Streams one store's memories as newline-delimited JSON — one memory object per line, oldest first. Invalidated memories (retracted or superseded) are left out unless `include_invalidated` asks for them, so the file holds what the store currently asserts. The rows are the rows the listing returns for the same caller.",
|
|
16621
|
-
moduleDocsUrl: "https://
|
|
16621
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memory-stores",
|
|
16622
16622
|
httpMethod: "get",
|
|
16623
16623
|
pathParams: ["project_id", "memory_store_id"],
|
|
16624
16624
|
queryParams: ["include_invalidated", "tags"],
|
|
@@ -16659,7 +16659,7 @@ const routes = {
|
|
|
16659
16659
|
serviceClass: "MemoryStores",
|
|
16660
16660
|
operationId: "getMemoryStoreTags",
|
|
16661
16661
|
description: "Returns all tags attached to the memory store",
|
|
16662
|
-
moduleDocsUrl: "https://
|
|
16662
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memory-stores",
|
|
16663
16663
|
httpMethod: "get",
|
|
16664
16664
|
pathParams: ["project_id", "memory_store_id"],
|
|
16665
16665
|
queryParams: [],
|
|
@@ -16683,7 +16683,7 @@ const routes = {
|
|
|
16683
16683
|
serviceClass: "MemoryStores",
|
|
16684
16684
|
operationId: "replaceMemoryStoreTags",
|
|
16685
16685
|
description: "Replaces all tags on the memory store with the provided tags (not merged)",
|
|
16686
|
-
moduleDocsUrl: "https://
|
|
16686
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memory-stores",
|
|
16687
16687
|
httpMethod: "put",
|
|
16688
16688
|
pathParams: ["project_id", "memory_store_id"],
|
|
16689
16689
|
queryParams: [],
|
|
@@ -16717,7 +16717,7 @@ const routes = {
|
|
|
16717
16717
|
serviceClass: "MemoryStores",
|
|
16718
16718
|
operationId: "mergeMemoryStoreTags",
|
|
16719
16719
|
description: "Merges provided tags into the memory store's existing tags (existing tags are preserved unless overridden)",
|
|
16720
|
-
moduleDocsUrl: "https://
|
|
16720
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/memory-stores",
|
|
16721
16721
|
httpMethod: "patch",
|
|
16722
16722
|
pathParams: ["project_id", "memory_store_id"],
|
|
16723
16723
|
queryParams: [],
|
|
@@ -16751,7 +16751,7 @@ const routes = {
|
|
|
16751
16751
|
serviceClass: "MetadataSchemas",
|
|
16752
16752
|
operationId: "listMetadataSchemas",
|
|
16753
16753
|
description: "Returns the declarations in scope, oldest first. `resource_type` narrows them to one governed resource.",
|
|
16754
|
-
moduleDocsUrl: "https://
|
|
16754
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/metadata-schemas",
|
|
16755
16755
|
httpMethod: "get",
|
|
16756
16756
|
pathParams: ["project_id"],
|
|
16757
16757
|
queryParams: [
|
|
@@ -16796,7 +16796,7 @@ const routes = {
|
|
|
16796
16796
|
serviceClass: "MetadataSchemas",
|
|
16797
16797
|
operationId: "createMetadataSchema",
|
|
16798
16798
|
description: "Declares what `metadata` must satisfy for one resource type under one selector. A document is selected by `path_prefix`, matched on a path boundary: `/reports` covers `/reports/q1.txt` and never `/reports-archive/q1.txt`. The schema is compiled here, so one JSON Schema cannot parse is refused rather than stored — a stored one would be a rule that silently governs nothing. One selector has one schema per resource type; a second declaration of the same one is `409 NAME_CONFLICT`. The reserved root `/.system` cannot be governed: a platform-written document carries no caller metadata.",
|
|
16799
|
-
moduleDocsUrl: "https://
|
|
16799
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/metadata-schemas",
|
|
16800
16800
|
httpMethod: "post",
|
|
16801
16801
|
pathParams: ["project_id"],
|
|
16802
16802
|
queryParams: [],
|
|
@@ -16837,7 +16837,7 @@ const routes = {
|
|
|
16837
16837
|
serviceClass: "MetadataSchemas",
|
|
16838
16838
|
operationId: "validateMetadata",
|
|
16839
16839
|
description: "Answers what a write would be told, without writing: a caller preparing a batch learns which declaration would refuse it, and why, before it sends anything. It reports; it does not enforce. The refusal itself lives in each resource's own write path, because a check a writer has to call is advisory and the writer who skips it is the one the rule exists for.",
|
|
16840
|
-
moduleDocsUrl: "https://
|
|
16840
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/metadata-schemas",
|
|
16841
16841
|
httpMethod: "post",
|
|
16842
16842
|
pathParams: ["project_id"],
|
|
16843
16843
|
queryParams: [],
|
|
@@ -16871,7 +16871,7 @@ const routes = {
|
|
|
16871
16871
|
serviceClass: "MetadataSchemas",
|
|
16872
16872
|
operationId: "getMetadataSchema",
|
|
16873
16873
|
description: "Returns one declaration by id.",
|
|
16874
|
-
moduleDocsUrl: "https://
|
|
16874
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/metadata-schemas",
|
|
16875
16875
|
httpMethod: "get",
|
|
16876
16876
|
pathParams: ["project_id", "metadata_schema_id"],
|
|
16877
16877
|
queryParams: [],
|
|
@@ -16895,7 +16895,7 @@ const routes = {
|
|
|
16895
16895
|
serviceClass: "MetadataSchemas",
|
|
16896
16896
|
operationId: "updateMetadataSchema",
|
|
16897
16897
|
description: "Changes the schema, the selector, or both. `resource_type` is fixed at creation: it decides the selector's spelling and which write path reads the row, so changing it would silently repoint the declaration at a different door — delete it and declare again instead.",
|
|
16898
|
-
moduleDocsUrl: "https://
|
|
16898
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/metadata-schemas",
|
|
16899
16899
|
httpMethod: "patch",
|
|
16900
16900
|
pathParams: ["project_id", "metadata_schema_id"],
|
|
16901
16901
|
queryParams: [],
|
|
@@ -16936,7 +16936,7 @@ const routes = {
|
|
|
16936
16936
|
serviceClass: "MetadataSchemas",
|
|
16937
16937
|
operationId: "deleteMetadataSchema",
|
|
16938
16938
|
description: "Removes the declaration. Documents already stored keep the metadata they hold — the rule governed writes, not rows.",
|
|
16939
|
-
moduleDocsUrl: "https://
|
|
16939
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/metadata-schemas",
|
|
16940
16940
|
httpMethod: "delete",
|
|
16941
16941
|
pathParams: ["project_id", "metadata_schema_id"],
|
|
16942
16942
|
queryParams: [],
|
|
@@ -16960,7 +16960,7 @@ const routes = {
|
|
|
16960
16960
|
serviceClass: "ModelRoutes",
|
|
16961
16961
|
operationId: "listModelRoutes",
|
|
16962
16962
|
description: "Returns the model routes defined in a project",
|
|
16963
|
-
moduleDocsUrl: "https://
|
|
16963
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/model-routes",
|
|
16964
16964
|
httpMethod: "get",
|
|
16965
16965
|
pathParams: ["project_id"],
|
|
16966
16966
|
queryParams: ["limit", "offset"],
|
|
@@ -16994,7 +16994,7 @@ const routes = {
|
|
|
16994
16994
|
serviceClass: "ModelRoutes",
|
|
16995
16995
|
operationId: "createModelRoute",
|
|
16996
16996
|
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.",
|
|
16997
|
-
moduleDocsUrl: "https://
|
|
16997
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/model-routes",
|
|
16998
16998
|
httpMethod: "post",
|
|
16999
16999
|
pathParams: ["project_id"],
|
|
17000
17000
|
queryParams: [],
|
|
@@ -17049,7 +17049,7 @@ const routes = {
|
|
|
17049
17049
|
serviceClass: "ModelRoutes",
|
|
17050
17050
|
operationId: "getModelRoute",
|
|
17051
17051
|
description: "Returns a specific model route",
|
|
17052
|
-
moduleDocsUrl: "https://
|
|
17052
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/model-routes",
|
|
17053
17053
|
httpMethod: "get",
|
|
17054
17054
|
pathParams: ["project_id", "route_id"],
|
|
17055
17055
|
queryParams: [],
|
|
@@ -17073,7 +17073,7 @@ const routes = {
|
|
|
17073
17073
|
serviceClass: "ModelRoutes",
|
|
17074
17074
|
operationId: "updateModelRoute",
|
|
17075
17075
|
description: "Updates a model route's name, targets, retry classes, or breaker configuration. Omitted fields are left unchanged.",
|
|
17076
|
-
moduleDocsUrl: "https://
|
|
17076
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/model-routes",
|
|
17077
17077
|
httpMethod: "put",
|
|
17078
17078
|
pathParams: ["project_id", "route_id"],
|
|
17079
17079
|
queryParams: [],
|
|
@@ -17135,7 +17135,7 @@ const routes = {
|
|
|
17135
17135
|
serviceClass: "ModelRoutes",
|
|
17136
17136
|
operationId: "deleteModelRoute",
|
|
17137
17137
|
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.",
|
|
17138
|
-
moduleDocsUrl: "https://
|
|
17138
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/model-routes",
|
|
17139
17139
|
httpMethod: "delete",
|
|
17140
17140
|
pathParams: ["project_id", "route_id"],
|
|
17141
17141
|
queryParams: [],
|
|
@@ -17159,7 +17159,7 @@ const routes = {
|
|
|
17159
17159
|
serviceClass: "Models",
|
|
17160
17160
|
operationId: "listModels",
|
|
17161
17161
|
description: "Lists the models naturali offers, sorted by name. Filter by vendor, input/output modality or lifecycle status. Every model listed here is available to any project with a `provider: \"naturali\"` [AI provider](/docs/api/ai-providers/create-ai-provider) — there is no second class to filter for. Models naturali cannot serve (unpriced, or producing something other than text) are not in this catalog; to generate on one of those, register your own credentials as an [AI provider](/docs/api/ai-providers/create-ai-provider) and ask that provider what it serves with [`GET /v1/projects/{project_id}/ai-providers/{ai_provider_id}/models`](/docs/api/ai-providers/list-ai-provider-models).",
|
|
17162
|
-
moduleDocsUrl: "https://
|
|
17162
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/models",
|
|
17163
17163
|
httpMethod: "get",
|
|
17164
17164
|
pathParams: [],
|
|
17165
17165
|
queryParams: [
|
|
@@ -17213,7 +17213,7 @@ const routes = {
|
|
|
17213
17213
|
serviceClass: "Models",
|
|
17214
17214
|
operationId: "getModel",
|
|
17215
17215
|
description: "`{model}` is naturali's own name for the model, the same value [`GET /v1/models`](/docs/api/models/list-models) returns — a vendor's invocation string is a `404`. A `deprecated` model still reads here, so a project already generating on one can see what happened to it.",
|
|
17216
|
-
moduleDocsUrl: "https://
|
|
17216
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/models",
|
|
17217
17217
|
httpMethod: "get",
|
|
17218
17218
|
pathParams: ["model"],
|
|
17219
17219
|
queryParams: [],
|
|
@@ -17231,7 +17231,7 @@ const routes = {
|
|
|
17231
17231
|
serviceClass: "Orchestrations",
|
|
17232
17232
|
operationId: "listOrchestrations",
|
|
17233
17233
|
description: "Returns orchestrations accessible to the caller.",
|
|
17234
|
-
moduleDocsUrl: "https://
|
|
17234
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
|
|
17235
17235
|
httpMethod: "get",
|
|
17236
17236
|
pathParams: ["project_id"],
|
|
17237
17237
|
queryParams: ["limit", "offset"],
|
|
@@ -17265,7 +17265,7 @@ const routes = {
|
|
|
17265
17265
|
serviceClass: "Orchestrations",
|
|
17266
17266
|
operationId: "createOrchestration",
|
|
17267
17267
|
description: "Creates a new orchestration (pipeline) definition in the project.",
|
|
17268
|
-
moduleDocsUrl: "https://
|
|
17268
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
|
|
17269
17269
|
httpMethod: "post",
|
|
17270
17270
|
pathParams: ["project_id"],
|
|
17271
17271
|
queryParams: [],
|
|
@@ -17341,7 +17341,7 @@ const routes = {
|
|
|
17341
17341
|
serviceClass: "Orchestrations",
|
|
17342
17342
|
operationId: "validateOrchestration",
|
|
17343
17343
|
description: "Statically validates an orchestration graph without persisting anything. Checks that every node has its required field, node ids are unique, edges reference existing nodes, the graph is acyclic (unless it contains a loop node), and every `input_mapping` `{\"var\": \"...\"}` reference resolves to a state key written by an upstream node or seeded by `input_schema`. Returns blocking `errors` and non-blocking `warnings` (e.g. a state key only written on a conditional branch). The same `errors` checks are enforced on create and update, which fail with `400` when any error is present.",
|
|
17344
|
-
moduleDocsUrl: "https://
|
|
17344
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
|
|
17345
17345
|
httpMethod: "post",
|
|
17346
17346
|
pathParams: ["project_id"],
|
|
17347
17347
|
queryParams: [],
|
|
@@ -17382,7 +17382,7 @@ const routes = {
|
|
|
17382
17382
|
serviceClass: "Orchestrations",
|
|
17383
17383
|
operationId: "getQueueStats",
|
|
17384
17384
|
description: "Returns a point-in-time snapshot of the orchestration run queue: how many tasks are waiting to be claimed (`queue_depth`), how many are currently claimed with a valid lease (`claimed_tasks`), the age of the oldest waiting task, recent claim-latency percentiles over a rolling in-process window, and a per-project breakdown. Intended for admin/operator policies; guarded by `orchestrations:GetQueueStats`. Every figure is scoped to what the caller may see. A project-scoped caller gets `per_project` for their own projects only, `queue_depth` and `claimed_tasks` summed over those same projects, and `null` for `oldest_queued_age_seconds` and the `claim_latency_ms` percentiles — both describe the whole deployment and cannot be narrowed, so they are withheld rather than approximated. An unrestricted caller (the action granted on every project) gets the deployment-wide figures.",
|
|
17385
|
-
moduleDocsUrl: "https://
|
|
17385
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
|
|
17386
17386
|
httpMethod: "get",
|
|
17387
17387
|
pathParams: ["project_id"],
|
|
17388
17388
|
queryParams: [],
|
|
@@ -17400,7 +17400,7 @@ const routes = {
|
|
|
17400
17400
|
serviceClass: "Orchestrations",
|
|
17401
17401
|
operationId: "getOrchestration",
|
|
17402
17402
|
description: "Returns the orchestration with nodes and edges.",
|
|
17403
|
-
moduleDocsUrl: "https://
|
|
17403
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
|
|
17404
17404
|
httpMethod: "get",
|
|
17405
17405
|
pathParams: ["project_id", "orchestration_id"],
|
|
17406
17406
|
queryParams: [],
|
|
@@ -17424,7 +17424,7 @@ const routes = {
|
|
|
17424
17424
|
serviceClass: "Orchestrations",
|
|
17425
17425
|
operationId: "updateOrchestration",
|
|
17426
17426
|
description: "Partially updates an orchestration definition.",
|
|
17427
|
-
moduleDocsUrl: "https://
|
|
17427
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
|
|
17428
17428
|
httpMethod: "patch",
|
|
17429
17429
|
pathParams: ["project_id", "orchestration_id"],
|
|
17430
17430
|
queryParams: [],
|
|
@@ -17521,7 +17521,7 @@ const routes = {
|
|
|
17521
17521
|
serviceClass: "Orchestrations",
|
|
17522
17522
|
operationId: "deleteOrchestration",
|
|
17523
17523
|
description: "Deletes an orchestration definition and all its runs.",
|
|
17524
|
-
moduleDocsUrl: "https://
|
|
17524
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
|
|
17525
17525
|
httpMethod: "delete",
|
|
17526
17526
|
pathParams: ["project_id", "orchestration_id"],
|
|
17527
17527
|
queryParams: [],
|
|
@@ -17545,7 +17545,7 @@ const routes = {
|
|
|
17545
17545
|
serviceClass: "Orchestrations",
|
|
17546
17546
|
operationId: "listOrchestrationVersions",
|
|
17547
17547
|
description: "Returns the orchestration's archived graphs, newest first. A version is written on create and on every subsequent write that changes the graph (`nodes`, `edges`, `state_schema`, `input_schema`) — through the REST API or a formation apply alike. Metadata-only edits (name, description) do not archive a version. See [Versioning](/docs/modules/orchestrations#versioning).",
|
|
17548
|
-
moduleDocsUrl: "https://
|
|
17548
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
|
|
17549
17549
|
httpMethod: "get",
|
|
17550
17550
|
pathParams: ["project_id", "orchestration_id"],
|
|
17551
17551
|
queryParams: ["limit", "offset"],
|
|
@@ -17586,7 +17586,7 @@ const routes = {
|
|
|
17586
17586
|
serviceClass: "Orchestrations",
|
|
17587
17587
|
operationId: "getOrchestrationVersion",
|
|
17588
17588
|
description: "Returns the exact graph a given version describes. Every run records the version it started on in `orchestration_version` and executes that graph for its whole life, so this is how you read the topology a run actually took — including a run whose orchestration has been rewired since.",
|
|
17589
|
-
moduleDocsUrl: "https://
|
|
17589
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
|
|
17590
17590
|
httpMethod: "get",
|
|
17591
17591
|
pathParams: [
|
|
17592
17592
|
"project_id",
|
|
@@ -17624,7 +17624,7 @@ const routes = {
|
|
|
17624
17624
|
serviceClass: "Orchestrations",
|
|
17625
17625
|
operationId: "restoreOrchestrationVersion",
|
|
17626
17626
|
description: "Writes an archived version's graph back as the orchestration's live definition, which archives it again as a **new** version rather than rewinding the counter — so a run pinned to any version in between still resolves the graph it started on. The restore runs through the ordinary update path, so the archived graph goes through the same static validation as an authored one. Node resource references (`agent_id`, `tool_id`, `orchestration_id`) resolve when a run reaches the node, so a target deleted since the snapshot was taken restores cleanly and surfaces as a failed run rather than a `400`. Restoring the graph the orchestration already holds is a no-op and archives nothing. Runs already in flight are unaffected either way — a restore is an ordinary edit, and pinning is what keeps it from reaching them.",
|
|
17627
|
-
moduleDocsUrl: "https://
|
|
17627
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
|
|
17628
17628
|
httpMethod: "post",
|
|
17629
17629
|
pathParams: [
|
|
17630
17630
|
"project_id",
|
|
@@ -17669,7 +17669,7 @@ const routes = {
|
|
|
17669
17669
|
serviceClass: "Orchestrations",
|
|
17670
17670
|
operationId: "listOrchestrationRuns",
|
|
17671
17671
|
description: "Returns orchestration runs the caller can access, optionally filtered by orchestration, by parent run, by status, or by whether the run has a parent at all. Note when aggregating: a run's `usage` covers its whole subtree, so summing it over a list that contains both a parent and its children counts the children more than once. Pass `nested=false` to sum over runs a caller started.",
|
|
17672
|
-
moduleDocsUrl: "https://
|
|
17672
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
|
|
17673
17673
|
httpMethod: "get",
|
|
17674
17674
|
pathParams: ["project_id"],
|
|
17675
17675
|
queryParams: [
|
|
@@ -17738,7 +17738,7 @@ const routes = {
|
|
|
17738
17738
|
serviceClass: "Orchestrations",
|
|
17739
17739
|
operationId: "startOrchestrationRun",
|
|
17740
17740
|
description: "Creates a new run for the orchestration named by orchestration_id. By default the run executes durably in the background: the response returns immediately with status \"queued\" (a worker then claims it and moves it to \"running\") and progress is observed via get-orchestration-run or run lifecycle webhook events (orchestration_runs.started/awaiting_input/succeeded/failed). Delay and poll waits park the run as \"sleeping\" and are woken by a background scheduler, surviving restarts. Pass wait=true to block until the run reaches a terminal or awaiting_input state.",
|
|
17741
|
-
moduleDocsUrl: "https://
|
|
17741
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
|
|
17742
17742
|
httpMethod: "post",
|
|
17743
17743
|
pathParams: ["project_id"],
|
|
17744
17744
|
queryParams: [],
|
|
@@ -17800,7 +17800,7 @@ const routes = {
|
|
|
17800
17800
|
serviceClass: "Orchestrations",
|
|
17801
17801
|
operationId: "cancelOrchestrationRun",
|
|
17802
17802
|
description: "Cancels a run that has not yet reached a terminal state.",
|
|
17803
|
-
moduleDocsUrl: "https://
|
|
17803
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
|
|
17804
17804
|
httpMethod: "post",
|
|
17805
17805
|
pathParams: ["project_id", "orchestration_run_id"],
|
|
17806
17806
|
queryParams: [],
|
|
@@ -17824,7 +17824,7 @@ const routes = {
|
|
|
17824
17824
|
serviceClass: "Orchestrations",
|
|
17825
17825
|
operationId: "pauseOrchestrationRun",
|
|
17826
17826
|
description: "Parks a run in flight as `awaiting_input` at its next checkpoint, with a `required_action` of type `paused` naming the pause as operator-initiated rather than a node's. Unlike cancel, the run keeps its last checkpoint and resume-orchestration-run re-drives it from there — so work already done is deferred rather than discarded. A `queued` or `sleeping` run is parked immediately (a sleeping run keeps the wake it was due, and resuming hands it back to the scheduler at that instant). A `running` run keeps running until the round in flight reaches its checkpoint, so the response may still read `running` while `pause_requested_at` is set. A run already parked on a human, webhook or approval node keeps that node's `required_action`; the pause is still recorded, which is what makes submit-human-input refuse until the run is resumed. The pause fans out to the run's `loop` / `sub_orchestration` descendants — each parks at its own next checkpoint — because otherwise a parent's pause would bound nothing. Resuming does not fan out: each parked descendant is resumed by its own id. Idempotent: pausing an already-paused run answers with it unchanged.",
|
|
17827
|
-
moduleDocsUrl: "https://
|
|
17827
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
|
|
17828
17828
|
httpMethod: "post",
|
|
17829
17829
|
pathParams: ["project_id", "orchestration_run_id"],
|
|
17830
17830
|
queryParams: [],
|
|
@@ -17858,7 +17858,7 @@ const routes = {
|
|
|
17858
17858
|
serviceClass: "Orchestrations",
|
|
17859
17859
|
operationId: "submitHumanInput",
|
|
17860
17860
|
description: "Provides human input to a run that is awaiting_input at a human node.",
|
|
17861
|
-
moduleDocsUrl: "https://
|
|
17861
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
|
|
17862
17862
|
httpMethod: "post",
|
|
17863
17863
|
pathParams: ["project_id", "orchestration_run_id"],
|
|
17864
17864
|
queryParams: [],
|
|
@@ -17899,7 +17899,7 @@ const routes = {
|
|
|
17899
17899
|
serviceClass: "Orchestrations",
|
|
17900
17900
|
operationId: "resumeOrchestrationRun",
|
|
17901
17901
|
description: "Re-drives an awaiting_input orchestration run from its last checkpoint. This does not satisfy the pause itself — it carries no node_id or payload, so a run parked on a human or webhook-receive node re-parks on the same node. Use submit-human-input to supply the awaited payload and advance the run. It is also the only thing that lifts an operator pause (pause-orchestration-run): a run parked with `required_action.type` of `paused` re-drives the frontier that had not run yet, and one paused mid-timer goes back to `sleeping` for the wake it was already due.",
|
|
17902
|
-
moduleDocsUrl: "https://
|
|
17902
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
|
|
17903
17903
|
httpMethod: "post",
|
|
17904
17904
|
pathParams: ["project_id", "orchestration_run_id"],
|
|
17905
17905
|
queryParams: [],
|
|
@@ -17923,7 +17923,7 @@ const routes = {
|
|
|
17923
17923
|
serviceClass: "Orchestrations",
|
|
17924
17924
|
operationId: "getOrchestrationRun",
|
|
17925
17925
|
description: "Returns the status, state, and artifacts of a specific run.",
|
|
17926
|
-
moduleDocsUrl: "https://
|
|
17926
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
|
|
17927
17927
|
httpMethod: "get",
|
|
17928
17928
|
pathParams: ["project_id", "orchestration_run_id"],
|
|
17929
17929
|
queryParams: [],
|
|
@@ -17947,7 +17947,7 @@ const routes = {
|
|
|
17947
17947
|
serviceClass: "Projects",
|
|
17948
17948
|
operationId: "listProjects",
|
|
17949
17949
|
description: "Lists the projects the caller is a member of. A project-scoped API key lists only its own project.",
|
|
17950
|
-
moduleDocsUrl: "https://
|
|
17950
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/projects",
|
|
17951
17951
|
httpMethod: "get",
|
|
17952
17952
|
pathParams: [],
|
|
17953
17953
|
queryParams: ["limit", "cursor"],
|
|
@@ -17971,7 +17971,7 @@ const routes = {
|
|
|
17971
17971
|
serviceClass: "Projects",
|
|
17972
17972
|
operationId: "createProject",
|
|
17973
17973
|
description: "Creates a project (one per client or per environment). Your plan limits how many projects you may own. At the limit this responds `403` with `plan_limit_reached`, whose `details` carry the `plan` and the `limit`. An archived project still counts — archiving keeps every resource, so it frees nothing; deleting a project does. A new project starts at the content-retention window your plan sets (`trace_content_retention_days`); `PATCH` it to anything shorter.",
|
|
17974
|
-
moduleDocsUrl: "https://
|
|
17974
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/projects",
|
|
17975
17975
|
httpMethod: "post",
|
|
17976
17976
|
pathParams: [],
|
|
17977
17977
|
queryParams: [],
|
|
@@ -17995,7 +17995,7 @@ const routes = {
|
|
|
17995
17995
|
serviceClass: "Projects",
|
|
17996
17996
|
operationId: "getProject",
|
|
17997
17997
|
description: "Returns one project you are a member of, and your `role` in it. An id you are not a member of — including one that does not exist — responds `404`, not `403`: the API never confirms that an id exists elsewhere. `403` is reserved for the cases where there is nothing to hide: a project you *are* in, addressed with a credential scoped to a different one, or an action your role does not carry. There the message is what makes the failure fixable.",
|
|
17998
|
-
moduleDocsUrl: "https://
|
|
17998
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/projects",
|
|
17999
17999
|
httpMethod: "get",
|
|
18000
18000
|
pathParams: ["project_id"],
|
|
18001
18001
|
queryParams: [],
|
|
@@ -18013,7 +18013,7 @@ const routes = {
|
|
|
18013
18013
|
serviceClass: "Projects",
|
|
18014
18014
|
operationId: "updateProject",
|
|
18015
18015
|
description: "Rename or archive a project, and/or change its content-retention settings (`trace_content_retention_days`, `trace_content_mode`), its execution ceilings (`max_concurrent_runs`, `max_chain_generations`, `max_orchestration_run_depth`), its priced-model gate (`require_priced_model`), its project-scope guardrails (`guardrail_ids`) and managed conversion (`managed_conversion`). Archiving is reversible; resources are retained. Requires the `admin` role in the project (an `owner` has it too). These are the terms every member works under, which is why setting them sits above the role that works under them. The ceilings and the priced-model gate are uncapped by plan: each one only ever narrows what the project may spend, so setting one takes on a restriction rather than claiming an entitlement. On the three ceilings `null` clears the project's own bound and omission leaves it alone — they are different instructions. `guardrail_ids` is the floor under every tool call by every agent in the project, including tools added later. The list is replaced wholesale, so send the ids you want to keep; `[]` detaches every one. An id naming no guardrail in the project responds `400` with `guardrail_not_found`, whose `details.missing` lists the ids. It is uncapped by plan, like the ceilings: a guardrail can only tighten what runs. The two retention controls answer different questions. The window bounds how long content *stays* — a daily sweep purges anything past it, leaving auditable skeletons behind. `trace_content_mode: none` means content is never *written*, which is the stronger guarantee: it cannot be missed by a sweep or survive in a backup. Your plan sets the longest window you may keep content for. A wider one — `null` included, which keeps content indefinitely — responds `403` with `plan_limit_reached`, whose `details` carry the `plan` and the `limit` in days. Anything shorter is always allowed. Moving to a plan with a shorter window takes effect at the end of the billing cycle, and content already stored is then purged by age like everything else.",
|
|
18016
|
-
moduleDocsUrl: "https://
|
|
18016
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/projects",
|
|
18017
18017
|
httpMethod: "patch",
|
|
18018
18018
|
pathParams: ["project_id"],
|
|
18019
18019
|
queryParams: [],
|
|
@@ -18103,7 +18103,7 @@ const routes = {
|
|
|
18103
18103
|
serviceClass: "Projects",
|
|
18104
18104
|
operationId: "deleteProject",
|
|
18105
18105
|
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. Requires the `owner` role — an `admin` runs the project day to day, but destroying it is the billing owner's call.",
|
|
18106
|
-
moduleDocsUrl: "https://
|
|
18106
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/projects",
|
|
18107
18107
|
httpMethod: "delete",
|
|
18108
18108
|
pathParams: ["project_id"],
|
|
18109
18109
|
queryParams: ["force"],
|
|
@@ -18127,7 +18127,7 @@ const routes = {
|
|
|
18127
18127
|
serviceClass: "Projects",
|
|
18128
18128
|
operationId: "pauseProject",
|
|
18129
18129
|
description: "Stops everything the project runs, with one call. From the moment it answers, nothing new starts: generations, tool calls, orchestration runs, eval runs and trigger fires in the project respond `409` with `PROJECT_PAUSED`, and so does resuming a single run or task the pause holds. A channel keeps receiving messages and answers each with a neutral \"can't reply right now\" line. What is already in motion is parked, not discarded: live orchestration runs pause at their next checkpoint, open tasks stop dispatching, schedule triggers stop firing and queued eval items wait. A generation already running finishes. Reads and configuration changes keep working. Idempotent: pausing a paused project answers it unchanged and keeps the first `reason`. Emits `project.paused`. Requires the `admin` role.",
|
|
18130
|
-
moduleDocsUrl: "https://
|
|
18130
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/projects",
|
|
18131
18131
|
httpMethod: "post",
|
|
18132
18132
|
pathParams: ["project_id"],
|
|
18133
18133
|
queryParams: [],
|
|
@@ -18151,7 +18151,7 @@ const routes = {
|
|
|
18151
18151
|
serviceClass: "Projects",
|
|
18152
18152
|
operationId: "resumeProject",
|
|
18153
18153
|
description: "Lifts the project's pause and hands back exactly what it held: the runs and tasks it parked resume, and schedule triggers fire again from their next occurrence after now — an occurrence that fell due while paused is not fired late. A run or task paused on its own before the project was paused stays paused. Emits `project.resumed`. Requires the `admin` role.",
|
|
18154
|
-
moduleDocsUrl: "https://
|
|
18154
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/projects",
|
|
18155
18155
|
httpMethod: "post",
|
|
18156
18156
|
pathParams: ["project_id"],
|
|
18157
18157
|
queryParams: [],
|
|
@@ -18169,7 +18169,7 @@ const routes = {
|
|
|
18169
18169
|
serviceClass: "Projects",
|
|
18170
18170
|
operationId: "listProjectMembers",
|
|
18171
18171
|
description: "Lists who may act in the project, and with what role. Readable by every member, whatever their role: who else is in the project is not a privileged fact, and hiding it makes \"why can that person see my agents?\" unanswerable. Somebody invited who has never signed in is listed too, with status `pending` — the invitation is already a grant, so hiding it until they arrive would hide access that exists.",
|
|
18172
|
-
moduleDocsUrl: "https://
|
|
18172
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/projects",
|
|
18173
18173
|
httpMethod: "get",
|
|
18174
18174
|
pathParams: ["project_id"],
|
|
18175
18175
|
queryParams: [],
|
|
@@ -18187,7 +18187,7 @@ const routes = {
|
|
|
18187
18187
|
serviceClass: "Projects",
|
|
18188
18188
|
operationId: "addProjectMember",
|
|
18189
18189
|
description: "Adds a colleague to the project by email address. Free and uncapped on every plan: a member adds no run, no channel, no trigger and no byte, so every cost they cause is already billed through the project's owner. Members are counted nowhere. **The address does not need an account.** Inviting one that has none creates it unverified and records the membership beside it, so the invitee is already a member with status `pending`. Their first sign-in code — which they request themselves, from the link in the invitation — is what makes them `active`. There is no separate acceptance step and no invitation to expire: the address is the credential, and the invitation reached it. An `owner` may grant `admin` or `member`; an `admin` may grant `member` only, so administration cannot hand out its own authority. `role: owner` is refused — that is the billing owner, and transferring it is a different act. The invitation email is a courtesy, not the grant: if it cannot be sent the membership still stands, and the response still says `pending`. Requires an account-wide credential — a project-scoped key cannot grant access that would outlive its own revocation.",
|
|
18190
|
-
moduleDocsUrl: "https://
|
|
18190
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/projects",
|
|
18191
18191
|
httpMethod: "post",
|
|
18192
18192
|
pathParams: ["project_id"],
|
|
18193
18193
|
queryParams: [],
|
|
@@ -18221,7 +18221,7 @@ const routes = {
|
|
|
18221
18221
|
serviceClass: "Projects",
|
|
18222
18222
|
operationId: "updateProjectMember",
|
|
18223
18223
|
description: "Moves a member between `admin` and `member`. The project `owner` only: promoting somebody to `admin` hands them every write in the project, and an `admin` who could do that could erase the difference between the two roles for themselves. The owner's own row is refused in either direction — it names who pays, so changing it is a transfer rather than a role change.",
|
|
18224
|
-
moduleDocsUrl: "https://
|
|
18224
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/projects",
|
|
18225
18225
|
httpMethod: "patch",
|
|
18226
18226
|
pathParams: ["project_id", "member_id"],
|
|
18227
18227
|
queryParams: [],
|
|
@@ -18255,7 +18255,7 @@ const routes = {
|
|
|
18255
18255
|
serviceClass: "Projects",
|
|
18256
18256
|
operationId: "removeProjectMember",
|
|
18257
18257
|
description: "Removes a member, or leaves the project yourself. **Anyone may remove themselves**, whatever their role: a colleague who no longer wants access should not have to ask for it, and leaving takes nothing from anybody else. Removing *somebody else* needs authority — an `owner` may remove anyone, an `admin` may remove a `member` and not another `admin`. The owner's own row is refused: a project with no owner is unreachable, and the row names who pays.",
|
|
18258
|
-
moduleDocsUrl: "https://
|
|
18258
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/projects",
|
|
18259
18259
|
httpMethod: "delete",
|
|
18260
18260
|
pathParams: ["project_id", "member_id"],
|
|
18261
18261
|
queryParams: [],
|
|
@@ -18279,7 +18279,7 @@ const routes = {
|
|
|
18279
18279
|
serviceClass: "Projects",
|
|
18280
18280
|
operationId: "getProjectUsage",
|
|
18281
18281
|
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. Every bucket also carries components — the amounts actually measured. The token counts describe LLM usage alone, so that is where a storage, api_request or compute_execution bucket reports its real quantity instead of zeroed token fields. The rollup can also be narrowed to one session or one end user before it is bucketed. That is the question no dimension answers: group_by splits the project's whole spend, so \"what did this conversation cost, per day\" and \"what has this end user spent across every session\" are reachable only by narrowing. The narrowings intersect, apply to the totals as well as the buckets, and are echoed back complete — null for each one not applied — because a rollup of zeros is otherwise indistinguishable from a project that spent nothing.",
|
|
18282
|
-
moduleDocsUrl: "https://
|
|
18282
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/projects",
|
|
18283
18283
|
httpMethod: "get",
|
|
18284
18284
|
pathParams: ["project_id"],
|
|
18285
18285
|
queryParams: [
|
|
@@ -18444,7 +18444,7 @@ const routes = {
|
|
|
18444
18444
|
serviceClass: "Projects",
|
|
18445
18445
|
operationId: "listProjectUsageEvents",
|
|
18446
18446
|
description: "The rows a rollup summed — one per metered occurrence, most recent first. Takes the same narrowings [the meter](/docs/api/projects/get-project-usage) does, so a query that produced a bucket answers here unchanged and reads back what went into it. This is the audit and reconciliation view: what was measured, when, against which agent, session, actor and provider, and what each component was priced at. An id naming nothing in this project yields an empty page rather than dropping the filter, so a mistyped narrowing can never widen the list past what was asked for.",
|
|
18447
|
-
moduleDocsUrl: "https://
|
|
18447
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/projects",
|
|
18448
18448
|
httpMethod: "get",
|
|
18449
18449
|
pathParams: ["project_id"],
|
|
18450
18450
|
queryParams: [
|
|
@@ -18577,7 +18577,7 @@ const routes = {
|
|
|
18577
18577
|
serviceClass: "Projects",
|
|
18578
18578
|
operationId: "getProjectUsageReceipt",
|
|
18579
18579
|
description: "What one occurrence was billed, line by line: per-event line items with their measured components and unit prices, a per-meter-type split, and the totals. Pass generation_id for one generation, or orchestration_run_id for a receipt summed across every event the run metered. Exactly one of the two is required. This is the itemisation behind a single number — where [the meter](/docs/api/projects/get-project-usage) says a window cost $12.40, a receipt says which components of which call made up one occurrence of it. On an orchestration-run receipt every line carries node_id, so grouping by it gives the per-node cost the total hides; a retried node contributes one line per attempt, which is the intended reading for spend.",
|
|
18580
|
-
moduleDocsUrl: "https://
|
|
18580
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/projects",
|
|
18581
18581
|
httpMethod: "get",
|
|
18582
18582
|
pathParams: ["project_id"],
|
|
18583
18583
|
queryParams: ["generation_id", "orchestration_run_id"],
|
|
@@ -18611,7 +18611,7 @@ const routes = {
|
|
|
18611
18611
|
serviceClass: "Projects",
|
|
18612
18612
|
operationId: "listProjectUsageThresholds",
|
|
18613
18613
|
description: "The spend alerts this project has set. A threshold fires the usage.threshold_crossed event when the project's windowed usage crosses it, so one is only useful alongside a webhook subscribed to that event.",
|
|
18614
|
-
moduleDocsUrl: "https://
|
|
18614
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/projects",
|
|
18615
18615
|
httpMethod: "get",
|
|
18616
18616
|
pathParams: ["project_id"],
|
|
18617
18617
|
queryParams: ["limit", "offset"],
|
|
@@ -18645,7 +18645,7 @@ const routes = {
|
|
|
18645
18645
|
serviceClass: "Projects",
|
|
18646
18646
|
operationId: "createProjectUsageThreshold",
|
|
18647
18647
|
description: "Creates an alert on this project's windowed usage. Crossing it fires usage.threshold_crossed once per window — a calendar_month threshold fires at most once in a month, and a rolling_24h one re-arms when the windowed total falls back below 90% of the threshold, so a total hovering at the line does not alert repeatedly. Requires the admin role: an alerting rule belongs to the account that pays, not to one member.",
|
|
18648
|
-
moduleDocsUrl: "https://
|
|
18648
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/projects",
|
|
18649
18649
|
httpMethod: "post",
|
|
18650
18650
|
pathParams: ["project_id"],
|
|
18651
18651
|
queryParams: [],
|
|
@@ -18686,7 +18686,7 @@ const routes = {
|
|
|
18686
18686
|
serviceClass: "Projects",
|
|
18687
18687
|
operationId: "deleteProjectUsageThreshold",
|
|
18688
18688
|
description: "Stops the alert. Requires the admin role.",
|
|
18689
|
-
moduleDocsUrl: "https://
|
|
18689
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/projects",
|
|
18690
18690
|
httpMethod: "delete",
|
|
18691
18691
|
pathParams: ["project_id", "threshold_id"],
|
|
18692
18692
|
queryParams: [],
|
|
@@ -18710,7 +18710,7 @@ const routes = {
|
|
|
18710
18710
|
serviceClass: "Quotas",
|
|
18711
18711
|
operationId: "listQuotas",
|
|
18712
18712
|
description: "Returns the quotas defined in a project",
|
|
18713
|
-
moduleDocsUrl: "https://
|
|
18713
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/quotas",
|
|
18714
18714
|
httpMethod: "get",
|
|
18715
18715
|
pathParams: ["project_id"],
|
|
18716
18716
|
queryParams: ["limit", "offset"],
|
|
@@ -18744,7 +18744,7 @@ const routes = {
|
|
|
18744
18744
|
serviceClass: "Quotas",
|
|
18745
18745
|
operationId: "createQuota",
|
|
18746
18746
|
description: "Creates a project-scoped quota. `requests` is valid for `scope: project`/`api_key`; `tokens` and `cost_usd` are valid for `scope: project`/`agent`/`actor`; `storage_bytes` is valid for `scope: project` only. Any other scope/metric pair is rejected with 400 (no attribution exists to enforce it). An `actor` quota caps one end user's spend, matched from the generation's session; a null `scope_ref` means one budget *per* actor rather than a pooled project total. A `cost_usd` quota may name one `meter_type` to cap; omitting it caps every priced meter. A duplicate quota (same project, scope, scope_ref, metric, window, meter_type) is rejected with 409. `storage_bytes` caps a stored total rather than a windowed one, so it takes `window: current` and every other metric refuses that value (400 either way). It is enforced at the corpus write paths — file upload and create, document create, document ingest and re-ingest, memory create — with `409 QUOTA_STORAGE_EXCEEDED` and no `Retry-After`, since no window reset clears a footprint.",
|
|
18747
|
-
moduleDocsUrl: "https://
|
|
18747
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/quotas",
|
|
18748
18748
|
httpMethod: "post",
|
|
18749
18749
|
pathParams: ["project_id"],
|
|
18750
18750
|
queryParams: [],
|
|
@@ -18820,7 +18820,7 @@ const routes = {
|
|
|
18820
18820
|
serviceClass: "Quotas",
|
|
18821
18821
|
operationId: "getQuota",
|
|
18822
18822
|
description: "Returns a specific quota, including current window usage",
|
|
18823
|
-
moduleDocsUrl: "https://
|
|
18823
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/quotas",
|
|
18824
18824
|
httpMethod: "get",
|
|
18825
18825
|
pathParams: ["project_id", "quota_id"],
|
|
18826
18826
|
queryParams: [],
|
|
@@ -18844,7 +18844,7 @@ const routes = {
|
|
|
18844
18844
|
serviceClass: "Quotas",
|
|
18845
18845
|
operationId: "updateQuota",
|
|
18846
18846
|
description: "Updates a quota's limit and/or mode. Other fields are immutable.",
|
|
18847
|
-
moduleDocsUrl: "https://
|
|
18847
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/quotas",
|
|
18848
18848
|
httpMethod: "patch",
|
|
18849
18849
|
pathParams: ["project_id", "quota_id"],
|
|
18850
18850
|
queryParams: [],
|
|
@@ -18892,7 +18892,7 @@ const routes = {
|
|
|
18892
18892
|
serviceClass: "Quotas",
|
|
18893
18893
|
operationId: "deleteQuota",
|
|
18894
18894
|
description: "Deletes a quota and drops its window counters",
|
|
18895
|
-
moduleDocsUrl: "https://
|
|
18895
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/quotas",
|
|
18896
18896
|
httpMethod: "delete",
|
|
18897
18897
|
pathParams: ["project_id", "quota_id"],
|
|
18898
18898
|
queryParams: [],
|
|
@@ -18916,7 +18916,7 @@ const routes = {
|
|
|
18916
18916
|
serviceClass: "Secrets",
|
|
18917
18917
|
operationId: "listSecrets",
|
|
18918
18918
|
description: "Returns a list of secrets for a project",
|
|
18919
|
-
moduleDocsUrl: "https://
|
|
18919
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/secrets",
|
|
18920
18920
|
httpMethod: "get",
|
|
18921
18921
|
pathParams: ["project_id"],
|
|
18922
18922
|
queryParams: ["limit", "offset"],
|
|
@@ -18950,7 +18950,7 @@ const routes = {
|
|
|
18950
18950
|
serviceClass: "Secrets",
|
|
18951
18951
|
operationId: "createSecret",
|
|
18952
18952
|
description: "Creates a new encrypted secret in a project",
|
|
18953
|
-
moduleDocsUrl: "https://
|
|
18953
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/secrets",
|
|
18954
18954
|
httpMethod: "post",
|
|
18955
18955
|
pathParams: ["project_id"],
|
|
18956
18956
|
queryParams: [],
|
|
@@ -18984,7 +18984,7 @@ const routes = {
|
|
|
18984
18984
|
serviceClass: "Secrets",
|
|
18985
18985
|
operationId: "getSecret",
|
|
18986
18986
|
description: "Returns a specific secret",
|
|
18987
|
-
moduleDocsUrl: "https://
|
|
18987
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/secrets",
|
|
18988
18988
|
httpMethod: "get",
|
|
18989
18989
|
pathParams: ["project_id", "secret_id"],
|
|
18990
18990
|
queryParams: [],
|
|
@@ -19008,7 +19008,7 @@ const routes = {
|
|
|
19008
19008
|
serviceClass: "Secrets",
|
|
19009
19009
|
operationId: "updateSecret",
|
|
19010
19010
|
description: "Updates a secret's name and/or value",
|
|
19011
|
-
moduleDocsUrl: "https://
|
|
19011
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/secrets",
|
|
19012
19012
|
httpMethod: "patch",
|
|
19013
19013
|
pathParams: ["project_id", "secret_id"],
|
|
19014
19014
|
queryParams: [],
|
|
@@ -19049,7 +19049,7 @@ const routes = {
|
|
|
19049
19049
|
serviceClass: "Secrets",
|
|
19050
19050
|
operationId: "deleteSecret",
|
|
19051
19051
|
description: "Deletes a secret",
|
|
19052
|
-
moduleDocsUrl: "https://
|
|
19052
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/secrets",
|
|
19053
19053
|
httpMethod: "delete",
|
|
19054
19054
|
pathParams: ["project_id", "secret_id"],
|
|
19055
19055
|
queryParams: ["force"],
|
|
@@ -19083,7 +19083,7 @@ const routes = {
|
|
|
19083
19083
|
serviceClass: "Sessions",
|
|
19084
19084
|
operationId: "listSessions",
|
|
19085
19085
|
description: "Returns sessions the caller can access, optionally filtered by agent, actor and status.",
|
|
19086
|
-
moduleDocsUrl: "https://
|
|
19086
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/sessions",
|
|
19087
19087
|
httpMethod: "get",
|
|
19088
19088
|
pathParams: ["project_id"],
|
|
19089
19089
|
queryParams: [
|
|
@@ -19152,7 +19152,7 @@ const routes = {
|
|
|
19152
19152
|
serviceClass: "Sessions",
|
|
19153
19153
|
operationId: "createSession",
|
|
19154
19154
|
description: "Creates a new session for the specified agent, along with the underlying conversation, so the caller only needs this single call to start interacting with the agent. No actor is created: pass `actor_id` to attach an existing actor as the session's end user. When it is omitted the session has no actor, and generations in it carry no end-user attribution — they are not billed to an actor in the usage meter and they match no `actor`-scoped quota.",
|
|
19155
|
-
moduleDocsUrl: "https://
|
|
19155
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/sessions",
|
|
19156
19156
|
httpMethod: "post",
|
|
19157
19157
|
pathParams: ["project_id"],
|
|
19158
19158
|
queryParams: [],
|
|
@@ -19228,7 +19228,7 @@ const routes = {
|
|
|
19228
19228
|
serviceClass: "Sessions",
|
|
19229
19229
|
operationId: "getSession",
|
|
19230
19230
|
description: "Returns details of a single session, including a `usage` roll-up of what its generations cost. The listing omits `usage`; for a window, a split by day or model, or one end user across every session, narrow `GET /v1/projects/{project_id}/usage` with `session_id` / `actor_id` instead.",
|
|
19231
|
-
moduleDocsUrl: "https://
|
|
19231
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/sessions",
|
|
19232
19232
|
httpMethod: "get",
|
|
19233
19233
|
pathParams: ["project_id", "session_id"],
|
|
19234
19234
|
queryParams: [],
|
|
@@ -19252,7 +19252,7 @@ const routes = {
|
|
|
19252
19252
|
serviceClass: "Sessions",
|
|
19253
19253
|
operationId: "updateSession",
|
|
19254
19254
|
description: "Updates the session name and/or status.",
|
|
19255
|
-
moduleDocsUrl: "https://
|
|
19255
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/sessions",
|
|
19256
19256
|
httpMethod: "patch",
|
|
19257
19257
|
pathParams: ["project_id", "session_id"],
|
|
19258
19258
|
queryParams: [],
|
|
@@ -19321,7 +19321,7 @@ const routes = {
|
|
|
19321
19321
|
serviceClass: "Sessions",
|
|
19322
19322
|
operationId: "deleteSession",
|
|
19323
19323
|
description: "Deletes the session and its underlying conversation and messages. The session's actor is not deleted. Generations and traces produced by the session are not deleted either, since they are not linked to the session or conversation.",
|
|
19324
|
-
moduleDocsUrl: "https://
|
|
19324
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/sessions",
|
|
19325
19325
|
httpMethod: "delete",
|
|
19326
19326
|
pathParams: ["project_id", "session_id"],
|
|
19327
19327
|
queryParams: [],
|
|
@@ -19345,7 +19345,7 @@ const routes = {
|
|
|
19345
19345
|
serviceClass: "Sessions",
|
|
19346
19346
|
operationId: "addSessionMessage",
|
|
19347
19347
|
description: "Saves a user message to the session. When autoGenerate is enabled on the session and no generation is currently in progress, generation is triggered automatically and the response mirrors GenerateSessionResponse. Otherwise returns the saved user message.",
|
|
19348
|
-
moduleDocsUrl: "https://
|
|
19348
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/sessions",
|
|
19349
19349
|
httpMethod: "post",
|
|
19350
19350
|
pathParams: ["project_id", "session_id"],
|
|
19351
19351
|
queryParams: [],
|
|
@@ -19400,7 +19400,7 @@ const routes = {
|
|
|
19400
19400
|
serviceClass: "Sessions",
|
|
19401
19401
|
operationId: "generateSessionResponse",
|
|
19402
19402
|
description: "Triggers the agent to generate a response based on the current conversation. Background by default: returns `202 Accepted` immediately while the generation runs. Pass ?wait=true to block and receive the assistant reply (or a requires_action status if the agent needs client tool outputs) in the response.",
|
|
19403
|
-
moduleDocsUrl: "https://
|
|
19403
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/sessions",
|
|
19404
19404
|
httpMethod: "post",
|
|
19405
19405
|
pathParams: ["project_id", "session_id"],
|
|
19406
19406
|
queryParams: ["wait"],
|
|
@@ -19448,7 +19448,7 @@ const routes = {
|
|
|
19448
19448
|
serviceClass: "Sessions",
|
|
19449
19449
|
operationId: "submitSessionToolOutputs",
|
|
19450
19450
|
description: "Submits client tool outputs for a generation that returned requires_action. The agent continues its loop and returns the final or next requires_action result.",
|
|
19451
|
-
moduleDocsUrl: "https://
|
|
19451
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/sessions",
|
|
19452
19452
|
httpMethod: "post",
|
|
19453
19453
|
pathParams: ["project_id", "session_id"],
|
|
19454
19454
|
queryParams: [],
|
|
@@ -19489,7 +19489,7 @@ const routes = {
|
|
|
19489
19489
|
serviceClass: "Sessions",
|
|
19490
19490
|
operationId: "forkSession",
|
|
19491
19491
|
description: "Branches a new session from a point in this session's history: same context, different continuation. The fork gets its own conversation whose messages **reference the same documents** as the parent rather than copying them, so there is one stored copy of the content and a retention purge erases it from both. Recorded tool results ride along on those messages and are **replayed** as model input on the fork's next turn — forking never re-invokes a tool, so exploring a \"what if\" cannot send an email or charge a card a second time. The consequence to accept is that a forked turn sees the tool data as it was, not as it is now. The fork is created **inert**: `auto_generate` is false and no generation is triggered. Drive it with the normal message and generate endpoints. The fork has no actor — attach one only if the branch is meant to be driven by the same end user, since `single_session_per_actor` agents allow one open session per actor.",
|
|
19492
|
-
moduleDocsUrl: "https://
|
|
19492
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/sessions",
|
|
19493
19493
|
httpMethod: "post",
|
|
19494
19494
|
pathParams: ["project_id", "session_id"],
|
|
19495
19495
|
queryParams: [],
|
|
@@ -19551,7 +19551,7 @@ const routes = {
|
|
|
19551
19551
|
serviceClass: "Sessions",
|
|
19552
19552
|
operationId: "listSessionForks",
|
|
19553
19553
|
description: "Returns the sessions forked directly from this one. One level of lineage: a fork of a fork is listed under its own parent.",
|
|
19554
|
-
moduleDocsUrl: "https://
|
|
19554
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/sessions",
|
|
19555
19555
|
httpMethod: "get",
|
|
19556
19556
|
pathParams: ["project_id", "session_id"],
|
|
19557
19557
|
queryParams: ["limit", "offset"],
|
|
@@ -19592,7 +19592,7 @@ const routes = {
|
|
|
19592
19592
|
serviceClass: "Sessions",
|
|
19593
19593
|
operationId: "getSessionTags",
|
|
19594
19594
|
description: "Returns the session's tags object.",
|
|
19595
|
-
moduleDocsUrl: "https://
|
|
19595
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/sessions",
|
|
19596
19596
|
httpMethod: "get",
|
|
19597
19597
|
pathParams: ["project_id", "session_id"],
|
|
19598
19598
|
queryParams: [],
|
|
@@ -19616,7 +19616,7 @@ const routes = {
|
|
|
19616
19616
|
serviceClass: "Sessions",
|
|
19617
19617
|
operationId: "replaceSessionTags",
|
|
19618
19618
|
description: "Replaces all tags on the session.",
|
|
19619
|
-
moduleDocsUrl: "https://
|
|
19619
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/sessions",
|
|
19620
19620
|
httpMethod: "put",
|
|
19621
19621
|
pathParams: ["project_id", "session_id"],
|
|
19622
19622
|
queryParams: [],
|
|
@@ -19650,7 +19650,7 @@ const routes = {
|
|
|
19650
19650
|
serviceClass: "Sessions",
|
|
19651
19651
|
operationId: "mergeSessionTags",
|
|
19652
19652
|
description: "Merges the provided tags into the session's existing tags.",
|
|
19653
|
-
moduleDocsUrl: "https://
|
|
19653
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/sessions",
|
|
19654
19654
|
httpMethod: "patch",
|
|
19655
19655
|
pathParams: ["project_id", "session_id"],
|
|
19656
19656
|
queryParams: [],
|
|
@@ -19684,7 +19684,7 @@ const routes = {
|
|
|
19684
19684
|
serviceClass: "Tasks",
|
|
19685
19685
|
operationId: "listTasks",
|
|
19686
19686
|
description: "Lists tasks (the board query). Filter by workflow, state, status, automation status, or assignee — `GET /tasks?workflow_id=...&state=...` is one board column.",
|
|
19687
|
-
moduleDocsUrl: "https://
|
|
19687
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/tasks",
|
|
19688
19688
|
httpMethod: "get",
|
|
19689
19689
|
pathParams: ["project_id"],
|
|
19690
19690
|
queryParams: [
|
|
@@ -19761,7 +19761,7 @@ const routes = {
|
|
|
19761
19761
|
serviceClass: "Tasks",
|
|
19762
19762
|
operationId: "createTask",
|
|
19763
19763
|
description: "Creates a task bound to a workflow. By default the task is placed in the workflow's initial state; passing `state` places it directly in that named state instead — an alternate entry point for starting a task mid-flow (e.g. \"a new recorte for an existing theme by id\"), rather than re-submitting from the initial state and hoping a guard or similarity gate recognizes it. Entering the resulting state, initial or named, behaves identically: that state's `on_enter` automation fires and its `stalled_after` clock arms.",
|
|
19764
|
-
moduleDocsUrl: "https://
|
|
19764
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/tasks",
|
|
19765
19765
|
httpMethod: "post",
|
|
19766
19766
|
pathParams: ["project_id"],
|
|
19767
19767
|
queryParams: [],
|
|
@@ -19830,7 +19830,7 @@ const routes = {
|
|
|
19830
19830
|
serviceClass: "Tasks",
|
|
19831
19831
|
operationId: "getTask",
|
|
19832
19832
|
description: "Retrieves a task, including its active dispatch and automation status.",
|
|
19833
|
-
moduleDocsUrl: "https://
|
|
19833
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/tasks",
|
|
19834
19834
|
httpMethod: "get",
|
|
19835
19835
|
pathParams: ["project_id", "task_id"],
|
|
19836
19836
|
queryParams: [],
|
|
@@ -19854,7 +19854,7 @@ const routes = {
|
|
|
19854
19854
|
serviceClass: "Tasks",
|
|
19855
19855
|
operationId: "updateTask",
|
|
19856
19856
|
description: "Updates a task's payload, title, or assignee. `state` is never directly writable — move it with a transition; sending a `state` field is rejected as an unknown field (`VALIDATION_FAILED`). `payload` is shallow-merged over the existing payload (PATCH semantics): keys the request omits are preserved. The payload is caller-owned; the automation result lives in the read-only `last_result` field, which no patch can reach. The merged payload is validated against the workflow's `payload_schema`.",
|
|
19857
|
-
moduleDocsUrl: "https://
|
|
19857
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/tasks",
|
|
19858
19858
|
httpMethod: "patch",
|
|
19859
19859
|
pathParams: ["project_id", "task_id"],
|
|
19860
19860
|
queryParams: [],
|
|
@@ -19902,7 +19902,7 @@ const routes = {
|
|
|
19902
19902
|
serviceClass: "Tasks",
|
|
19903
19903
|
operationId: "deleteTask",
|
|
19904
19904
|
description: "Deletes a task. Its transition history cascades.",
|
|
19905
|
-
moduleDocsUrl: "https://
|
|
19905
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/tasks",
|
|
19906
19906
|
httpMethod: "delete",
|
|
19907
19907
|
pathParams: ["project_id", "task_id"],
|
|
19908
19908
|
queryParams: [],
|
|
@@ -19926,7 +19926,7 @@ const routes = {
|
|
|
19926
19926
|
serviceClass: "Tasks",
|
|
19927
19927
|
operationId: "transitionTask",
|
|
19928
19928
|
description: "Fires a named transition on a task. The transition must exist in the workflow and be valid from the task's current state; its guard must pass. This is the single path every state change routes through. A transition declaring `requires_approval` does not move the task — it parks a pending ApprovalItem and returns the task with `pending_transition` set; the move applies only when the approval is approved.",
|
|
19929
|
-
moduleDocsUrl: "https://
|
|
19929
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/tasks",
|
|
19930
19930
|
httpMethod: "post",
|
|
19931
19931
|
pathParams: ["project_id", "task_id"],
|
|
19932
19932
|
queryParams: [],
|
|
@@ -19974,7 +19974,7 @@ const routes = {
|
|
|
19974
19974
|
serviceClass: "Tasks",
|
|
19975
19975
|
operationId: "pauseTask",
|
|
19976
19976
|
description: "Pauses a task's automation. While a pause is in force no state's `on_enter` dispatches and no retry chain continues — an agent generation, a tool call and a sub-orchestration alike — so the task stops spending without losing its place. A workflow has no run object, so this is the workflow half of pause-orchestration-run: the pause lands on the instance, which is the task. Transitions are deliberately still allowed — a move costs nothing while every dispatch it would start is suppressed — so a board stays usable under a pause. Entering a state whose dispatch is suppressed records `automation_status: paused`, which resume-task reads to know that state still owes its work. A dispatch already in flight is left to finish, and its outcome still routes; only what would start after it is suppressed. Idempotent: pausing an already-paused task answers with it unchanged.",
|
|
19977
|
-
moduleDocsUrl: "https://
|
|
19977
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/tasks",
|
|
19978
19978
|
httpMethod: "post",
|
|
19979
19979
|
pathParams: ["project_id", "task_id"],
|
|
19980
19980
|
queryParams: [],
|
|
@@ -20008,7 +20008,7 @@ const routes = {
|
|
|
20008
20008
|
serviceClass: "Tasks",
|
|
20009
20009
|
operationId: "resumeTask",
|
|
20010
20010
|
description: "Lifts a task's pause. When the pause suppressed the current state's `on_enter` — `automation_status: paused` — that dispatch is started now, as the caller resuming rather than as whoever last moved the task. A state whose dispatch had already completed, or that declares none, is left alone, so a resume never re-spends work the pause did not stop. This is the only way a pause is lifted; a task that is merely idle is advanced by firing a transition instead.",
|
|
20011
|
-
moduleDocsUrl: "https://
|
|
20011
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/tasks",
|
|
20012
20012
|
httpMethod: "post",
|
|
20013
20013
|
pathParams: ["project_id", "task_id"],
|
|
20014
20014
|
queryParams: [],
|
|
@@ -20032,7 +20032,7 @@ const routes = {
|
|
|
20032
20032
|
serviceClass: "Tasks",
|
|
20033
20033
|
operationId: "getTaskHistory",
|
|
20034
20034
|
description: "Returns the append-only transition history of a task.",
|
|
20035
|
-
moduleDocsUrl: "https://
|
|
20035
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/tasks",
|
|
20036
20036
|
httpMethod: "get",
|
|
20037
20037
|
pathParams: ["project_id", "task_id"],
|
|
20038
20038
|
queryParams: [],
|
|
@@ -20056,7 +20056,7 @@ const routes = {
|
|
|
20056
20056
|
serviceClass: "Tools",
|
|
20057
20057
|
operationId: "listTools",
|
|
20058
20058
|
description: "Returns all tools in the project.",
|
|
20059
|
-
moduleDocsUrl: "https://
|
|
20059
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/tools",
|
|
20060
20060
|
httpMethod: "get",
|
|
20061
20061
|
pathParams: ["project_id"],
|
|
20062
20062
|
queryParams: ["limit", "offset"],
|
|
@@ -20090,7 +20090,7 @@ const routes = {
|
|
|
20090
20090
|
serviceClass: "Tools",
|
|
20091
20091
|
operationId: "createTool",
|
|
20092
20092
|
description: "Creates a new tool in the project.",
|
|
20093
|
-
moduleDocsUrl: "https://
|
|
20093
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/tools",
|
|
20094
20094
|
httpMethod: "post",
|
|
20095
20095
|
pathParams: ["project_id"],
|
|
20096
20096
|
queryParams: [],
|
|
@@ -20201,7 +20201,7 @@ const routes = {
|
|
|
20201
20201
|
serviceClass: "Tools",
|
|
20202
20202
|
operationId: "getTool",
|
|
20203
20203
|
description: "Returns a single tool by ID. A credential scoped to a project the tool is shared with, through an accepted share, reads its `id`, `name`, `description` and `parameters` only.",
|
|
20204
|
-
moduleDocsUrl: "https://
|
|
20204
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/tools",
|
|
20205
20205
|
httpMethod: "get",
|
|
20206
20206
|
pathParams: ["project_id", "tool_id"],
|
|
20207
20207
|
queryParams: [],
|
|
@@ -20225,7 +20225,7 @@ const routes = {
|
|
|
20225
20225
|
serviceClass: "Tools",
|
|
20226
20226
|
operationId: "updateTool",
|
|
20227
20227
|
description: "Updates an existing tool.",
|
|
20228
|
-
moduleDocsUrl: "https://
|
|
20228
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/tools",
|
|
20229
20229
|
httpMethod: "patch",
|
|
20230
20230
|
pathParams: ["project_id", "tool_id"],
|
|
20231
20231
|
queryParams: [],
|
|
@@ -20343,7 +20343,7 @@ const routes = {
|
|
|
20343
20343
|
serviceClass: "Tools",
|
|
20344
20344
|
operationId: "deleteTool",
|
|
20345
20345
|
description: "Deletes a tool by ID. A tool that is a decider's backend is refused with `409 TOOL_HAS_DEPENDENTS`, and so is one another project has accepted a share of, or one of its own project's ingestion rules converts with, until `force=true`. Every share of the tool is revoked when it is deleted; an ingestion rule keeps its `tool_id` and fails the documents it matches with `CONVERTER_FAILED` until repointed.",
|
|
20346
|
-
moduleDocsUrl: "https://
|
|
20346
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/tools",
|
|
20347
20347
|
httpMethod: "delete",
|
|
20348
20348
|
pathParams: ["project_id", "tool_id"],
|
|
20349
20349
|
queryParams: ["force"],
|
|
@@ -20377,7 +20377,7 @@ const routes = {
|
|
|
20377
20377
|
serviceClass: "Tools",
|
|
20378
20378
|
operationId: "callTool",
|
|
20379
20379
|
description: "Directly invokes a tool and returns its output. Supported for `http`, `mcp`, and `pipeline` tools. `client` tools cannot be invoked server-side and will return 422. A `pipeline` tool runs its declared steps in order and returns the mapped `output` (or the last step's output); `action` is ignored and `input` is the pipeline input. For `mcp` tools the `action` field is required and identifies which tool name to invoke. For `http` tools `action` is ignored. When an `mcp` tool declares an `actions` allowlist, an action outside it is rejected with `400 VALIDATION_FAILED` (\"not available on this tool\") before any outbound request is made. `preset_parameters` stored on the tool are pinned over the caller-supplied `input` before execution: a key the tool presets keeps its preset value even when `input` sets it. Keys the presets do not name are taken from `input` as sent. Guardrails attached to the tool or to its project adjudicate the call before dispatch, composing project + tool scope. A call this route cannot await a decision on — class C (human sign-off), class D, or a class-B tripwire — is refused with `422 TOOL_DISPATCH_FAILED`, whose `meta` carries the `tool_id` and the `outcome`. A `pipeline` tool is adjudicated before its first step runs, and every step is adjudicated as the call of that tool it is. A credential scoped to a project the tool is shared with, through an accepted share, calls it in that project: the calling project's guardrails adjudicate it, it is metered there with `publisher_project_id`, and the tool receives the calling project as the `calling_project_id` tool context key.",
|
|
20380
|
-
moduleDocsUrl: "https://
|
|
20380
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/tools",
|
|
20381
20381
|
httpMethod: "post",
|
|
20382
20382
|
pathParams: ["project_id", "tool_id"],
|
|
20383
20383
|
queryParams: [],
|
|
@@ -20425,7 +20425,7 @@ const routes = {
|
|
|
20425
20425
|
serviceClass: "Traces",
|
|
20426
20426
|
operationId: "listTraces",
|
|
20427
20427
|
description: "Returns a paginated list of execution traces for the project.",
|
|
20428
|
-
moduleDocsUrl: "https://
|
|
20428
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/traces",
|
|
20429
20429
|
httpMethod: "get",
|
|
20430
20430
|
pathParams: ["project_id"],
|
|
20431
20431
|
queryParams: ["limit", "offset"],
|
|
@@ -20459,7 +20459,7 @@ const routes = {
|
|
|
20459
20459
|
serviceClass: "Traces",
|
|
20460
20460
|
operationId: "getTrace",
|
|
20461
20461
|
description: "Returns a single trace by ID.",
|
|
20462
|
-
moduleDocsUrl: "https://
|
|
20462
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/traces",
|
|
20463
20463
|
httpMethod: "get",
|
|
20464
20464
|
pathParams: ["project_id", "trace_id"],
|
|
20465
20465
|
queryParams: [],
|
|
@@ -20483,7 +20483,7 @@ const routes = {
|
|
|
20483
20483
|
serviceClass: "Traces",
|
|
20484
20484
|
operationId: "getTraceTree",
|
|
20485
20485
|
description: "Returns the full execution tree rooted at the given trace (or its root if the given trace is a child). Each node represents one agent's execution session. The `children` array contains traces triggered by sub-agent tool calls from that trace.",
|
|
20486
|
-
moduleDocsUrl: "https://
|
|
20486
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/traces",
|
|
20487
20487
|
httpMethod: "get",
|
|
20488
20488
|
pathParams: ["project_id", "trace_id"],
|
|
20489
20489
|
queryParams: ["include"],
|
|
@@ -20517,7 +20517,7 @@ const routes = {
|
|
|
20517
20517
|
serviceClass: "Traces",
|
|
20518
20518
|
operationId: "purgeTraceContent",
|
|
20519
20519
|
description: "Deletes the trace's steps object from storage and clears its content columns (`file_id`, `error`), cascading to every descendant trace and to all of their generations. A descendant holds its own steps object covering the same run, so the cascade is what makes the erasure complete rather than merely partial. The rows survive as auditable skeletons with `content_redacted_at` set — ids, timestamps, step counts, and the generations' usage-attribution fields are preserved, because the billing and audit ledger must outlive a tenant's erasure of the content. A purged trace therefore reads back as a skeleton, not a 404: a 404 would prove nothing. Idempotent — purging an already-purged trace succeeds and leaves the original `content_redacted_at` in place.",
|
|
20520
|
-
moduleDocsUrl: "https://
|
|
20520
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/traces",
|
|
20521
20521
|
httpMethod: "delete",
|
|
20522
20522
|
pathParams: ["project_id", "trace_id"],
|
|
20523
20523
|
queryParams: [],
|
|
@@ -20541,7 +20541,7 @@ const routes = {
|
|
|
20541
20541
|
serviceClass: "Triggers",
|
|
20542
20542
|
operationId: "listTriggers",
|
|
20543
20543
|
description: "Lists triggers. Filter by project, starter type, or target type.",
|
|
20544
|
-
moduleDocsUrl: "https://
|
|
20544
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/triggers",
|
|
20545
20545
|
httpMethod: "get",
|
|
20546
20546
|
pathParams: ["project_id"],
|
|
20547
20547
|
queryParams: [
|
|
@@ -20594,7 +20594,7 @@ const routes = {
|
|
|
20594
20594
|
serviceClass: "Triggers",
|
|
20595
20595
|
operationId: "createTrigger",
|
|
20596
20596
|
description: "Creates a new trigger for a project",
|
|
20597
|
-
moduleDocsUrl: "https://
|
|
20597
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/triggers",
|
|
20598
20598
|
httpMethod: "post",
|
|
20599
20599
|
pathParams: ["project_id"],
|
|
20600
20600
|
queryParams: [],
|
|
@@ -20698,7 +20698,7 @@ const routes = {
|
|
|
20698
20698
|
serviceClass: "Triggers",
|
|
20699
20699
|
operationId: "getTrigger",
|
|
20700
20700
|
description: "Retrieves the details of a specific trigger",
|
|
20701
|
-
moduleDocsUrl: "https://
|
|
20701
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/triggers",
|
|
20702
20702
|
httpMethod: "get",
|
|
20703
20703
|
pathParams: ["project_id", "trigger_id"],
|
|
20704
20704
|
queryParams: [],
|
|
@@ -20722,7 +20722,7 @@ const routes = {
|
|
|
20722
20722
|
serviceClass: "Triggers",
|
|
20723
20723
|
operationId: "updateTrigger",
|
|
20724
20724
|
description: "Updates an existing trigger's configuration. The type is immutable. Changing `target_type` or `target_id` re-checks the target-start action (`orchestrations:StartRun`, `agents:CreateAgentGeneration` or `tools:CallTool`) against the resulting target, because a firing runs with the trigger creator's authority rather than the updater's. A caller who could not start the new target is answered `403` and the trigger keeps the target it had.",
|
|
20725
|
-
moduleDocsUrl: "https://
|
|
20725
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/triggers",
|
|
20726
20726
|
httpMethod: "patch",
|
|
20727
20727
|
pathParams: ["project_id", "trigger_id"],
|
|
20728
20728
|
queryParams: [],
|
|
@@ -20826,7 +20826,7 @@ const routes = {
|
|
|
20826
20826
|
serviceClass: "Triggers",
|
|
20827
20827
|
operationId: "deleteTrigger",
|
|
20828
20828
|
description: "Deletes a trigger",
|
|
20829
|
-
moduleDocsUrl: "https://
|
|
20829
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/triggers",
|
|
20830
20830
|
httpMethod: "delete",
|
|
20831
20831
|
pathParams: ["project_id", "trigger_id"],
|
|
20832
20832
|
queryParams: [],
|
|
@@ -20850,7 +20850,7 @@ const routes = {
|
|
|
20850
20850
|
serviceClass: "Triggers",
|
|
20851
20851
|
operationId: "fireTrigger",
|
|
20852
20852
|
description: "Fires a trigger synchronously and returns the terminal firing record. The firing itself always settles here; an `eval` target's run is queued rather than executed inline, so the record names a `queued` run to poll.",
|
|
20853
|
-
moduleDocsUrl: "https://
|
|
20853
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/triggers",
|
|
20854
20854
|
httpMethod: "post",
|
|
20855
20855
|
pathParams: ["project_id", "trigger_id"],
|
|
20856
20856
|
queryParams: [],
|
|
@@ -20891,7 +20891,7 @@ const routes = {
|
|
|
20891
20891
|
serviceClass: "Triggers",
|
|
20892
20892
|
operationId: "getTriggerSecret",
|
|
20893
20893
|
description: "Retrieves the signing secret for a webhook trigger",
|
|
20894
|
-
moduleDocsUrl: "https://
|
|
20894
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/triggers",
|
|
20895
20895
|
httpMethod: "get",
|
|
20896
20896
|
pathParams: ["project_id", "trigger_id"],
|
|
20897
20897
|
queryParams: [],
|
|
@@ -20915,7 +20915,7 @@ const routes = {
|
|
|
20915
20915
|
serviceClass: "Triggers",
|
|
20916
20916
|
operationId: "rotateTriggerSecret",
|
|
20917
20917
|
description: "Rotates the signing secret for a webhook trigger",
|
|
20918
|
-
moduleDocsUrl: "https://
|
|
20918
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/triggers",
|
|
20919
20919
|
httpMethod: "post",
|
|
20920
20920
|
pathParams: ["project_id", "trigger_id"],
|
|
20921
20921
|
queryParams: [],
|
|
@@ -20939,7 +20939,7 @@ const routes = {
|
|
|
20939
20939
|
serviceClass: "Triggers",
|
|
20940
20940
|
operationId: "listTriggerFirings",
|
|
20941
20941
|
description: "Lists firings for a trigger (trigger_id is required).",
|
|
20942
|
-
moduleDocsUrl: "https://
|
|
20942
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/triggers",
|
|
20943
20943
|
httpMethod: "get",
|
|
20944
20944
|
pathParams: ["project_id"],
|
|
20945
20945
|
queryParams: [
|
|
@@ -20984,7 +20984,7 @@ const routes = {
|
|
|
20984
20984
|
serviceClass: "Triggers",
|
|
20985
20985
|
operationId: "getTriggerFiring",
|
|
20986
20986
|
description: "Retrieves the details of a specific trigger firing",
|
|
20987
|
-
moduleDocsUrl: "https://
|
|
20987
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/triggers",
|
|
20988
20988
|
httpMethod: "get",
|
|
20989
20989
|
pathParams: ["project_id", "firing_id"],
|
|
20990
20990
|
queryParams: [],
|
|
@@ -21008,7 +21008,7 @@ const routes = {
|
|
|
21008
21008
|
serviceClass: "Users",
|
|
21009
21009
|
operationId: "getCurrentUser",
|
|
21010
21010
|
description: "Returns the account the presented credential resolves to.",
|
|
21011
|
-
moduleDocsUrl: "https://
|
|
21011
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21012
21012
|
httpMethod: "get",
|
|
21013
21013
|
pathParams: [],
|
|
21014
21014
|
queryParams: [],
|
|
@@ -21020,7 +21020,7 @@ const routes = {
|
|
|
21020
21020
|
serviceClass: "Users",
|
|
21021
21021
|
operationId: "updateCurrentUser",
|
|
21022
21022
|
description: "Edits the account's display name and whether it receives usage alerts. At least one field is required, so a request that misspelled a field is rejected rather than answered with a silent 200. Send `name: null` to clear the name. With `usage_alerts` on, the account is emailed once each time its model credit, its runs this month or its indexed storage reaches 75%, 90% and 100%. Credit is measured as the share spent this month of what the month had available, so a top-up lowers it. Usage falling back below a level re-arms that level. Figures are read every 15 minutes, so an alert can arrive up to that long after the crossing.",
|
|
21023
|
-
moduleDocsUrl: "https://
|
|
21023
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21024
21024
|
httpMethod: "patch",
|
|
21025
21025
|
pathParams: [],
|
|
21026
21026
|
queryParams: [],
|
|
@@ -21044,7 +21044,7 @@ const routes = {
|
|
|
21044
21044
|
serviceClass: "Users",
|
|
21045
21045
|
operationId: "getCurrentUserBilling",
|
|
21046
21046
|
description: "The plan the account is on, how long its projects may keep content, how much indexed storage it is holding, and the credit it has left — the figures the platform already enforces against, readable by the account they are enforced against. A managed-model generation is refused with `402 insufficient_credit` while `credit_balance_usd` is negative, and a feature or a resource count outside the plan is refused with `403`, as is a retention window wider than `retention_days` or an ingest past `storage_limit_gb`. Every refusal names what is missing; this is where the numbers behind them are read. Every figure here is a local read, which is what keeps this route cheap enough to poll — unlike `GET /v1/users/me/usage`, which asks the meter once per project. Answers for the caller's own account only, and always the account the credential resolves to — an API key answers for the user that minted it. The plan gating a *project* is that project's billing owner's, so a member of someone else's project reads their own rung here, not that project's.",
|
|
21047
|
-
moduleDocsUrl: "https://
|
|
21047
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21048
21048
|
httpMethod: "get",
|
|
21049
21049
|
pathParams: [],
|
|
21050
21050
|
queryParams: [],
|
|
@@ -21056,7 +21056,7 @@ const routes = {
|
|
|
21056
21056
|
serviceClass: "Users",
|
|
21057
21057
|
operationId: "getCurrentUserUsage",
|
|
21058
21058
|
description: "How many runs the account has made this billing cycle, and how many its plan includes. A **run is one agent generation or one tool call** — the unit every rung is priced in. Every tool call counts, including those an agent makes inside a generation; a `client` tool counts nothing. Counted across the projects this account is the billing owner of, over the current UTC calendar month, from the meter itself. Archived projects are included: the runs they already made were made. **On the `free` plan the allowance is enforced.** An account that has used it is refused `403 plan_limit_reached` with `resource: \"runs\"` on everything that starts a generation and on a direct tool call — on its own provider credential as much as on a managed model, because a run is a run — until the billing month turns or it upgrades. On `pro` and `business` nothing is refused: runs past the allowance are billed at the overage rate those plans are sold with. A contract plan is not counted. The other thing that stops a managed-model generation is a negative credit balance, which is `GET /v1/users/me/billing`, and it never applies to your own credential. **This route counts live; the refusal reads a figure counted every few minutes.** So the two can differ by a burst: this is the more current number, and a refusal quotes the one it actually enforced. It is also more expensive than the balance read: it asks the meter once per project. Poll it on the order of minutes, not seconds.",
|
|
21059
|
-
moduleDocsUrl: "https://
|
|
21059
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21060
21060
|
httpMethod: "get",
|
|
21061
21061
|
pathParams: [],
|
|
21062
21062
|
queryParams: [],
|
|
@@ -21068,7 +21068,7 @@ const routes = {
|
|
|
21068
21068
|
serviceClass: "Users",
|
|
21069
21069
|
operationId: "listCurrentUserStops",
|
|
21070
21070
|
description: "Schedule triggers, eval runs, orchestration runs and workflow tasks the platform stopped on this account's projects because the credit balance went below zero or a Free plan's runs ran out, and that have not been restored or dismissed yet. Newest first. `blocked_by` names the ceiling still closed: while it is set, nothing can be restored. Top up for `debt`; upgrade or wait for the month to turn for `run_allowance`. A `marketplace_fee` stop, for work naming a priced installed listing, is restored only while the paid balance is positive. A project-confined key sees its own project's stops only.",
|
|
21071
|
-
moduleDocsUrl: "https://
|
|
21071
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21072
21072
|
httpMethod: "get",
|
|
21073
21073
|
pathParams: [],
|
|
21074
21074
|
queryParams: ["limit", "cursor"],
|
|
@@ -21092,7 +21092,7 @@ const routes = {
|
|
|
21092
21092
|
serviceClass: "Users",
|
|
21093
21093
|
operationId: "restoreCurrentUserStop",
|
|
21094
21094
|
description: "Turns one stopped item back on — re-enables the schedule trigger, or resumes the orchestration run or workflow task — and stops listing it. An item that is no longer stopped (resumed already, finished or deleted) is marked restored too. Refused with `409 stop_ceiling_closed` while a ceiling is still closed, naming it in `details.blocked_by`, and with `409 stop_not_restorable` for a cancelled eval run, which can only be dismissed.",
|
|
21095
|
-
moduleDocsUrl: "https://
|
|
21095
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21096
21096
|
httpMethod: "post",
|
|
21097
21097
|
pathParams: ["stop_id"],
|
|
21098
21098
|
queryParams: [],
|
|
@@ -21110,7 +21110,7 @@ const routes = {
|
|
|
21110
21110
|
serviceClass: "Users",
|
|
21111
21111
|
operationId: "dismissCurrentUserStop",
|
|
21112
21112
|
description: "Stops listing an item without turning it back on. Allowed while a ceiling is still closed.",
|
|
21113
|
-
moduleDocsUrl: "https://
|
|
21113
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21114
21114
|
httpMethod: "delete",
|
|
21115
21115
|
pathParams: ["stop_id"],
|
|
21116
21116
|
queryParams: [],
|
|
@@ -21128,7 +21128,7 @@ const routes = {
|
|
|
21128
21128
|
serviceClass: "Users",
|
|
21129
21129
|
operationId: "listCurrentUserStatements",
|
|
21130
21130
|
description: "What the account owes for each closed billing month, newest first: the subscription fee, prorated by the share of the month each plan was held, and runs past the allowance at the plan's overage rate, less what was paid at an upgrade. Overage is measured against the highest plan held that month. A statement is written within an hour of the month closing, once, and never changes; `payment_status` follows its charge on the saved card. It is not a tax invoice. Months on the Free plan alone, contract plans and storage are not stated.",
|
|
21131
|
-
moduleDocsUrl: "https://
|
|
21131
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21132
21132
|
httpMethod: "get",
|
|
21133
21133
|
pathParams: [],
|
|
21134
21134
|
queryParams: ["limit", "cursor"],
|
|
@@ -21152,7 +21152,7 @@ const routes = {
|
|
|
21152
21152
|
serviceClass: "Users",
|
|
21153
21153
|
operationId: "getCurrentUserStatement",
|
|
21154
21154
|
description: "One of this account's monthly statements, with its lines and total. Another account's statement answers `404`.",
|
|
21155
|
-
moduleDocsUrl: "https://
|
|
21155
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21156
21156
|
httpMethod: "get",
|
|
21157
21157
|
pathParams: ["statement_id"],
|
|
21158
21158
|
queryParams: [],
|
|
@@ -21170,7 +21170,7 @@ const routes = {
|
|
|
21170
21170
|
serviceClass: "Users",
|
|
21171
21171
|
operationId: "createCurrentUserTopUp",
|
|
21172
21172
|
description: "Buys model credit for the caller's account. Once the card is charged the full amount is added to `credit_balance_usd` as purchased credit, which never expires. The card fee is not deducted. `amount_usd` is what is credited; a card issued in Brazil is charged its equivalent in Brazilian reais at the Banco Central's latest closing PTAX selling rate, and a checkout shows reais to a payer in Brazil. With `saved_card: true` the saved card is charged at once and the answer is `status: paid`. When the card needs authentication or is declined, nothing is charged and the answer falls back to a checkout. A checkout (`status: checkout`) is a hosted page: send the caller to `checkout_url`. Creating it charges nothing, and one left unpaid lapses at `expires_at`. The card paid with there becomes the account's saved card, replacing any other. After paying, the browser returns to the console's billing page.",
|
|
21173
|
-
moduleDocsUrl: "https://
|
|
21173
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21174
21174
|
httpMethod: "post",
|
|
21175
21175
|
pathParams: [],
|
|
21176
21176
|
queryParams: [],
|
|
@@ -21194,7 +21194,7 @@ const routes = {
|
|
|
21194
21194
|
serviceClass: "Users",
|
|
21195
21195
|
operationId: "getCurrentUserPaymentMethod",
|
|
21196
21196
|
description: "The card auto-recharge and monthly statements are charged to, as the payment provider reports it. Only the brand, last four digits, expiry and issuing country are kept here. A card issued in Brazil is charged in Brazilian reais, every other card in US dollars.",
|
|
21197
|
-
moduleDocsUrl: "https://
|
|
21197
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21198
21198
|
httpMethod: "get",
|
|
21199
21199
|
pathParams: [],
|
|
21200
21200
|
queryParams: [],
|
|
@@ -21206,7 +21206,7 @@ const routes = {
|
|
|
21206
21206
|
serviceClass: "Users",
|
|
21207
21207
|
operationId: "createCurrentUserPaymentMethod",
|
|
21208
21208
|
description: "A hosted page that saves a card for charges made without the payer present: auto-recharge and monthly statements. Send the caller to `checkout_url`; nothing is charged. A card saved this way replaces the one already saved.",
|
|
21209
|
-
moduleDocsUrl: "https://
|
|
21209
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21210
21210
|
httpMethod: "post",
|
|
21211
21211
|
pathParams: [],
|
|
21212
21212
|
queryParams: [],
|
|
@@ -21218,7 +21218,7 @@ const routes = {
|
|
|
21218
21218
|
serviceClass: "Users",
|
|
21219
21219
|
operationId: "deleteCurrentUserPaymentMethod",
|
|
21220
21220
|
description: "Forgets the saved card and turns auto-recharge off.",
|
|
21221
|
-
moduleDocsUrl: "https://
|
|
21221
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21222
21222
|
httpMethod: "delete",
|
|
21223
21223
|
pathParams: [],
|
|
21224
21224
|
queryParams: [],
|
|
@@ -21230,7 +21230,7 @@ const routes = {
|
|
|
21230
21230
|
serviceClass: "Users",
|
|
21231
21231
|
operationId: "getCurrentUserAutoRecharge",
|
|
21232
21232
|
description: "Whether the credit balance is topped up on the saved card, by how much and below what balance. `enabled` is false until a card is saved and the setting turned on.",
|
|
21233
|
-
moduleDocsUrl: "https://
|
|
21233
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21234
21234
|
httpMethod: "get",
|
|
21235
21235
|
pathParams: [],
|
|
21236
21236
|
queryParams: [],
|
|
@@ -21242,7 +21242,7 @@ const routes = {
|
|
|
21242
21242
|
serviceClass: "Users",
|
|
21243
21243
|
operationId: "setCurrentUserAutoRecharge",
|
|
21244
21244
|
description: "Top up `amount_usd` on the saved card whenever the credit balance falls below `below_usd`. Checked every 15 minutes, at most one charge an hour. A declined charge turns it off and emails the account.",
|
|
21245
|
-
moduleDocsUrl: "https://
|
|
21245
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21246
21246
|
httpMethod: "put",
|
|
21247
21247
|
pathParams: [],
|
|
21248
21248
|
queryParams: [],
|
|
@@ -21266,7 +21266,7 @@ const routes = {
|
|
|
21266
21266
|
serviceClass: "Users",
|
|
21267
21267
|
operationId: "disableCurrentUserAutoRecharge",
|
|
21268
21268
|
description: "Stops topping up the balance automatically. The saved card stays saved.",
|
|
21269
|
-
moduleDocsUrl: "https://
|
|
21269
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21270
21270
|
httpMethod: "delete",
|
|
21271
21271
|
pathParams: [],
|
|
21272
21272
|
queryParams: [],
|
|
@@ -21278,7 +21278,7 @@ const routes = {
|
|
|
21278
21278
|
serviceClass: "Users",
|
|
21279
21279
|
operationId: "setCurrentUserPlan",
|
|
21280
21280
|
description: "Choose `free`, `pro` or `business`. An upgrade is charged for the price difference over the rest of the month, then takes effect; the month's statement nets that payment out. The saved card is charged at once, in its currency. With no saved card, or when the card needs authentication or is declined, nothing is charged and the answer carries a `checkout_url`: a hosted page that charges the upgrade and saves the card. The plan changes once it is paid; one left unpaid lapses at `expires_at`. A downgrade takes effect when the month ends, and `next_plan` names it until then. A contract plan is changed by asking us.",
|
|
21281
|
-
moduleDocsUrl: "https://
|
|
21281
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21282
21282
|
httpMethod: "put",
|
|
21283
21283
|
pathParams: [],
|
|
21284
21284
|
queryParams: [],
|
|
@@ -21296,7 +21296,7 @@ const routes = {
|
|
|
21296
21296
|
serviceClass: "Users",
|
|
21297
21297
|
operationId: "getCurrentUserPlanQuote",
|
|
21298
21298
|
description: "What choosing `plan` would charge now: an upgrade's share of the rest of the month, else 0. Changes nothing.",
|
|
21299
|
-
moduleDocsUrl: "https://
|
|
21299
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/users",
|
|
21300
21300
|
httpMethod: "get",
|
|
21301
21301
|
pathParams: [],
|
|
21302
21302
|
queryParams: ["plan"],
|
|
@@ -21314,7 +21314,7 @@ const routes = {
|
|
|
21314
21314
|
serviceClass: "Webhooks",
|
|
21315
21315
|
operationId: "listWebhooks",
|
|
21316
21316
|
description: "The endpoints registered in the project, newest first.",
|
|
21317
|
-
moduleDocsUrl: "https://
|
|
21317
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/webhooks",
|
|
21318
21318
|
httpMethod: "get",
|
|
21319
21319
|
pathParams: ["project_id"],
|
|
21320
21320
|
queryParams: ["limit", "cursor"],
|
|
@@ -21348,7 +21348,7 @@ const routes = {
|
|
|
21348
21348
|
serviceClass: "Webhooks",
|
|
21349
21349
|
operationId: "createWebhook",
|
|
21350
21350
|
description: "Register an endpoint and subscribe it to one or more event types. The response carries `secret` — the signing key, in plaintext. **This is the only time it is returned.** Store it where your receiver can read it; if you lose it, rotate rather than re-create, so the endpoint keeps its delivery history. A project holds at most 20 webhooks, inactive ones included; the 21st is refused with `409 webhook_limit_reached`. Returns `501` on a deployment with no credential-sealing key configured, since the secret could not then be stored safely.",
|
|
21351
|
-
moduleDocsUrl: "https://
|
|
21351
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/webhooks",
|
|
21352
21352
|
httpMethod: "post",
|
|
21353
21353
|
pathParams: ["project_id"],
|
|
21354
21354
|
queryParams: [],
|
|
@@ -21396,7 +21396,7 @@ const routes = {
|
|
|
21396
21396
|
serviceClass: "Webhooks",
|
|
21397
21397
|
operationId: "getWebhook",
|
|
21398
21398
|
description: "The endpoint, the events it is subscribed to and whether deliveries are attempted. The signing secret is not returned: it is shown once by [`POST /v1/projects/{project_id}/webhooks`](/docs/api/webhooks/create-webhook) and again by [`POST /v1/projects/{project_id}/webhooks/{webhook_id}:rotate-secret`](/docs/api/webhooks/rotate-webhook-secret).",
|
|
21399
|
-
moduleDocsUrl: "https://
|
|
21399
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/webhooks",
|
|
21400
21400
|
httpMethod: "get",
|
|
21401
21401
|
pathParams: ["project_id", "webhook_id"],
|
|
21402
21402
|
queryParams: [],
|
|
@@ -21420,7 +21420,7 @@ const routes = {
|
|
|
21420
21420
|
serviceClass: "Webhooks",
|
|
21421
21421
|
operationId: "updateWebhook",
|
|
21422
21422
|
description: "Change the destination, the subscription, the label, or whether deliveries are attempted at all. At least one field is required. Setting `active: false` is the reversible half of `DELETE`: deliveries stop, the endpoint and its history stay. It is what to reach for while a receiver is being repaired.",
|
|
21423
|
-
moduleDocsUrl: "https://
|
|
21423
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/webhooks",
|
|
21424
21424
|
httpMethod: "patch",
|
|
21425
21425
|
pathParams: ["project_id", "webhook_id"],
|
|
21426
21426
|
queryParams: [],
|
|
@@ -21475,7 +21475,7 @@ const routes = {
|
|
|
21475
21475
|
serviceClass: "Webhooks",
|
|
21476
21476
|
operationId: "deleteWebhook",
|
|
21477
21477
|
description: "Removes the endpoint and its delivery records. To stop deliveries while keeping the audit trail, `PATCH` it to `active: false` instead.",
|
|
21478
|
-
moduleDocsUrl: "https://
|
|
21478
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/webhooks",
|
|
21479
21479
|
httpMethod: "delete",
|
|
21480
21480
|
pathParams: ["project_id", "webhook_id"],
|
|
21481
21481
|
queryParams: [],
|
|
@@ -21499,7 +21499,7 @@ const routes = {
|
|
|
21499
21499
|
serviceClass: "Webhooks",
|
|
21500
21500
|
operationId: "rotateWebhookSecret",
|
|
21501
21501
|
description: "Issues a new signing secret for the same endpoint and returns it — the second and last time a secret is ever returned. This is the `…:rotate-secret` action; the path segment is `{webhook_id}:rotate-secret`. The change takes effect on the next delivery, including retries of deliveries already queued, so roll the new secret out to your receiver promptly. There is no overlap window in which both secrets verify.",
|
|
21502
|
-
moduleDocsUrl: "https://
|
|
21502
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/webhooks",
|
|
21503
21503
|
httpMethod: "post",
|
|
21504
21504
|
pathParams: ["project_id", "webhook_id"],
|
|
21505
21505
|
queryParams: [],
|
|
@@ -21523,7 +21523,7 @@ const routes = {
|
|
|
21523
21523
|
serviceClass: "Webhooks",
|
|
21524
21524
|
operationId: "listWebhookDeliveries",
|
|
21525
21525
|
description: "Every delivery attempted in the project, newest first — what was sent, where, how many times, and what came back. Filter by endpoint, by lifecycle status, or by event type. Deliveries are per (event, endpoint): an event matching two subscribed endpoints produces two rows, retried and observed independently. A `success` or `failed` delivery is deleted 30 days after it was created, and can no longer be read or redelivered. A `pending` one is kept until it settles.",
|
|
21526
|
-
moduleDocsUrl: "https://
|
|
21526
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/webhooks",
|
|
21527
21527
|
httpMethod: "get",
|
|
21528
21528
|
pathParams: ["project_id"],
|
|
21529
21529
|
queryParams: [
|
|
@@ -21584,7 +21584,7 @@ const routes = {
|
|
|
21584
21584
|
serviceClass: "Webhooks",
|
|
21585
21585
|
operationId: "getWebhookDelivery",
|
|
21586
21586
|
description: "One delivery, including the exact payload that was signed and sent.",
|
|
21587
|
-
moduleDocsUrl: "https://
|
|
21587
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/webhooks",
|
|
21588
21588
|
httpMethod: "get",
|
|
21589
21589
|
pathParams: ["project_id", "delivery_id"],
|
|
21590
21590
|
queryParams: [],
|
|
@@ -21608,7 +21608,7 @@ const routes = {
|
|
|
21608
21608
|
serviceClass: "Webhooks",
|
|
21609
21609
|
operationId: "redeliverWebhookDelivery",
|
|
21610
21610
|
description: "Queue the same event at the same endpoint again — the recovery path for a delivery that failed, or one your receiver dropped. This is the `…:redeliver` action; the path segment is `{delivery_id}:redeliver`. A **new** delivery is created and returned; the original record is left untouched, because its attempt history is the evidence you redelivered on. The event's `id` is carried over unchanged, so a receiver deduping on the event sees the same event twice while one deduping on `X-Naturali-Delivery` sees a distinct delivery.",
|
|
21611
|
-
moduleDocsUrl: "https://
|
|
21611
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/webhooks",
|
|
21612
21612
|
httpMethod: "post",
|
|
21613
21613
|
pathParams: ["project_id", "delivery_id"],
|
|
21614
21614
|
queryParams: [],
|
|
@@ -21632,7 +21632,7 @@ const routes = {
|
|
|
21632
21632
|
serviceClass: "Workflows",
|
|
21633
21633
|
operationId: "listWorkflows",
|
|
21634
21634
|
description: "Lists workflow definitions in a project.",
|
|
21635
|
-
moduleDocsUrl: "https://
|
|
21635
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/workflows",
|
|
21636
21636
|
httpMethod: "get",
|
|
21637
21637
|
pathParams: ["project_id"],
|
|
21638
21638
|
queryParams: ["limit", "offset"],
|
|
@@ -21666,7 +21666,7 @@ const routes = {
|
|
|
21666
21666
|
serviceClass: "Workflows",
|
|
21667
21667
|
operationId: "createWorkflow",
|
|
21668
21668
|
description: "Creates a new workflow definition. The definition is statically validated.",
|
|
21669
|
-
moduleDocsUrl: "https://
|
|
21669
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/workflows",
|
|
21670
21670
|
httpMethod: "post",
|
|
21671
21671
|
pathParams: ["project_id"],
|
|
21672
21672
|
queryParams: [],
|
|
@@ -21728,7 +21728,7 @@ const routes = {
|
|
|
21728
21728
|
serviceClass: "Workflows",
|
|
21729
21729
|
operationId: "getWorkflow",
|
|
21730
21730
|
description: "Retrieves a workflow definition.",
|
|
21731
|
-
moduleDocsUrl: "https://
|
|
21731
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/workflows",
|
|
21732
21732
|
httpMethod: "get",
|
|
21733
21733
|
pathParams: ["project_id", "workflow_id"],
|
|
21734
21734
|
queryParams: [],
|
|
@@ -21752,7 +21752,7 @@ const routes = {
|
|
|
21752
21752
|
serviceClass: "Workflows",
|
|
21753
21753
|
operationId: "updateWorkflow",
|
|
21754
21754
|
description: "Updates a workflow definition. Structural changes (states/transitions) are re-validated. Existing tasks in a removed state stay put but can only leave via transitions valid in the new definition.",
|
|
21755
|
-
moduleDocsUrl: "https://
|
|
21755
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/workflows",
|
|
21756
21756
|
httpMethod: "patch",
|
|
21757
21757
|
pathParams: ["project_id", "workflow_id"],
|
|
21758
21758
|
queryParams: [],
|
|
@@ -21835,7 +21835,7 @@ const routes = {
|
|
|
21835
21835
|
serviceClass: "Workflows",
|
|
21836
21836
|
operationId: "deleteWorkflow",
|
|
21837
21837
|
description: "Deletes a workflow. Rejected while open tasks exist.",
|
|
21838
|
-
moduleDocsUrl: "https://
|
|
21838
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/workflows",
|
|
21839
21839
|
httpMethod: "delete",
|
|
21840
21840
|
pathParams: ["project_id", "workflow_id"],
|
|
21841
21841
|
queryParams: [],
|
|
@@ -21859,7 +21859,7 @@ const routes = {
|
|
|
21859
21859
|
serviceClass: "Workflows",
|
|
21860
21860
|
operationId: "listWorkflowVersions",
|
|
21861
21861
|
description: "Returns the workflow's archived state machines, newest first. A version is written on create and on every subsequent write that changes the definition (`states`, `transitions`, `payload_schema`) — through the REST API or a formation apply alike. Metadata-only edits (name, description) do not archive a version. See [Versioning](/docs/modules/workflows#versioning).",
|
|
21862
|
-
moduleDocsUrl: "https://
|
|
21862
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/workflows",
|
|
21863
21863
|
httpMethod: "get",
|
|
21864
21864
|
pathParams: ["project_id", "workflow_id"],
|
|
21865
21865
|
queryParams: ["limit", "offset"],
|
|
@@ -21900,7 +21900,7 @@ const routes = {
|
|
|
21900
21900
|
serviceClass: "Workflows",
|
|
21901
21901
|
operationId: "getWorkflowVersion",
|
|
21902
21902
|
description: "Returns the exact state machine a given version describes. Every task records the version it entered on in `workflow_version` and runs on that machine for its whole life, so this is how you read the definition a task is actually being validated against — including a task whose workflow has been rewired since.",
|
|
21903
|
-
moduleDocsUrl: "https://
|
|
21903
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/workflows",
|
|
21904
21904
|
httpMethod: "get",
|
|
21905
21905
|
pathParams: [
|
|
21906
21906
|
"project_id",
|
|
@@ -21938,7 +21938,7 @@ const routes = {
|
|
|
21938
21938
|
serviceClass: "Workflows",
|
|
21939
21939
|
operationId: "restoreWorkflowVersion",
|
|
21940
21940
|
description: "Writes an archived version's state machine back as the workflow's live definition, which archives it again as a **new** version rather than rewinding the counter — so a task pinned to any version in between still runs on the machine it entered on. The restore runs through the ordinary update path, so the archived definition goes through the same validation as an authored one. That includes resolving every `on_enter` dispatch target, so restoring a version whose agent or orchestration has since been deleted fails with `400` rather than writing a definition that would strand a task on entry. Restoring the definition the workflow already holds is a no-op and archives nothing. Tasks already in flight are unaffected either way — a restore is an ordinary edit, and pinning is what keeps it from reaching them.",
|
|
21941
|
-
moduleDocsUrl: "https://
|
|
21941
|
+
moduleDocsUrl: "https://naturali.ai/docs/modules/workflows",
|
|
21942
21942
|
httpMethod: "post",
|
|
21943
21943
|
pathParams: [
|
|
21944
21944
|
"project_id",
|