@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.
Files changed (2) hide show
  1. package/dist/index.mjs +371 -371
  2. 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.176.2";
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://docs.naturali.ai/docs/modules/activity",
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://docs.naturali.ai/docs/modules/activity",
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://docs.naturali.ai/docs/modules/actors",
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://docs.naturali.ai/docs/modules/actors",
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://docs.naturali.ai/docs/modules/actors",
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://docs.naturali.ai/docs/modules/actors",
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://docs.naturali.ai/docs/modules/actors",
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://docs.naturali.ai/docs/modules/actors",
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://docs.naturali.ai/docs/modules/actors",
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://docs.naturali.ai/docs/modules/actors",
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://docs.naturali.ai/docs/modules/addresses",
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://docs.naturali.ai/docs/modules/addresses",
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://docs.naturali.ai/docs/modules/addresses",
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://docs.naturali.ai/docs/modules/addresses",
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://docs.naturali.ai/docs/modules/addresses",
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://docs.naturali.ai/docs/modules/admin",
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://docs.naturali.ai/docs/modules/admin",
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://docs.naturali.ai/docs/modules/admin",
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://docs.naturali.ai/docs/modules/admin",
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://docs.naturali.ai/docs/modules/admin",
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://docs.naturali.ai/docs/modules/admin",
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://docs.naturali.ai/docs/modules/admin",
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://docs.naturali.ai/docs/modules/admin",
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://docs.naturali.ai/docs/modules/admin",
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://docs.naturali.ai/docs/modules/admin",
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://docs.naturali.ai/docs/modules/agents",
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://docs.naturali.ai/docs/modules/agents",
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://docs.naturali.ai/docs/modules/agents",
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://docs.naturali.ai/docs/modules/agents",
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://docs.naturali.ai/docs/modules/agents",
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://docs.naturali.ai/docs/modules/agents",
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://docs.naturali.ai/docs/modules/agents",
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://docs.naturali.ai/docs/modules/agents",
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://docs.naturali.ai/docs/modules/agents",
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://docs.naturali.ai/docs/modules/agents",
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://docs.naturali.ai/docs/modules/agents",
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://docs.naturali.ai/docs/modules/agents",
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://docs.naturali.ai/docs/modules/agents",
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://docs.naturali.ai/docs/modules/agents",
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://docs.naturali.ai/docs/modules/ai-providers",
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://docs.naturali.ai/docs/modules/ai-providers",
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://docs.naturali.ai/docs/modules/ai-providers",
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://docs.naturali.ai/docs/modules/ai-providers",
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://docs.naturali.ai/docs/modules/ai-providers",
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://docs.naturali.ai/docs/modules/ai-providers",
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://docs.naturali.ai/docs/modules/ai-providers",
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://docs.naturali.ai/docs/modules/ai-providers",
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://docs.naturali.ai/docs/modules/api-keys",
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://docs.naturali.ai/docs/modules/api-keys",
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://docs.naturali.ai/docs/modules/api-keys",
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://docs.naturali.ai/docs/modules/api-keys",
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://docs.naturali.ai/docs/modules/api-keys",
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://docs.naturali.ai/docs/modules/api-keys",
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://docs.naturali.ai/docs/modules/approvals",
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://docs.naturali.ai/docs/modules/approvals",
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://docs.naturali.ai/docs/modules/approvals",
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://docs.naturali.ai/docs/modules/approvals",
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://docs.naturali.ai/docs/modules/approvals",
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://docs.naturali.ai/docs/modules/assistant",
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://docs.naturali.ai/docs/modules/assistant",
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://docs.naturali.ai/docs/modules/assistant",
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://docs.naturali.ai/docs/modules/assistant",
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://docs.naturali.ai/docs/modules/assistant",
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://docs.naturali.ai/docs/modules/assistant",
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://docs.naturali.ai/docs/modules/audit-log",
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://docs.naturali.ai/docs/modules/audit-log",
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://docs.naturali.ai/docs/modules/audit-log",
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://docs.naturali.ai/docs/modules/auth",
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://docs.naturali.ai/docs/modules/auth",
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://docs.naturali.ai/docs/modules/auth",
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://docs.naturali.ai/docs/modules/auth",
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://docs.naturali.ai/docs/modules/auth",
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://docs.naturali.ai/docs/modules/chains",
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://docs.naturali.ai/docs/modules/chains",
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://docs.naturali.ai/docs/modules/channel-kinds",
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://docs.naturali.ai/docs/modules/channel-routes",
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://docs.naturali.ai/docs/modules/channel-routes",
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://docs.naturali.ai/docs/modules/channel-routes",
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://docs.naturali.ai/docs/modules/channel-routes",
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://docs.naturali.ai/docs/modules/channel-routes",
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://docs.naturali.ai/docs/modules/channel-routes",
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://docs.naturali.ai/docs/modules/channels",
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://docs.naturali.ai/docs/modules/channels",
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://docs.naturali.ai/docs/modules/channels",
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://docs.naturali.ai/docs/modules/channels",
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://docs.naturali.ai/docs/modules/channels",
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://docs.naturali.ai/docs/modules/channels",
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://docs.naturali.ai/docs/modules/channels",
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://docs.naturali.ai/docs/modules/channels",
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://docs.naturali.ai/docs/modules/channels",
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://docs.naturali.ai/docs/modules/channels",
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://docs.naturali.ai/docs/modules/conversations",
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://docs.naturali.ai/docs/modules/conversations",
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://docs.naturali.ai/docs/modules/conversations",
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://docs.naturali.ai/docs/modules/conversations",
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://docs.naturali.ai/docs/modules/conversations",
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://docs.naturali.ai/docs/modules/conversations",
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://docs.naturali.ai/docs/modules/conversations",
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://docs.naturali.ai/docs/modules/conversations",
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://docs.naturali.ai/docs/modules/conversations",
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://docs.naturali.ai/docs/modules/conversations",
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://docs.naturali.ai/docs/modules/conversations",
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://docs.naturali.ai/docs/modules/conversations",
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://docs.naturali.ai/docs/modules/deciders",
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://docs.naturali.ai/docs/modules/deciders",
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://docs.naturali.ai/docs/modules/deciders",
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://docs.naturali.ai/docs/modules/deciders",
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://docs.naturali.ai/docs/modules/deciders",
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://docs.naturali.ai/docs/modules/deciders",
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://docs.naturali.ai/docs/modules/deciders",
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://docs.naturali.ai/docs/modules/deciders",
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://docs.naturali.ai/docs/modules/deciders",
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://docs.naturali.ai/docs/modules/deciders",
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://docs.naturali.ai/docs/modules/deciders",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/documents",
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://docs.naturali.ai/docs/modules/embeddings",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/evaluations",
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://docs.naturali.ai/docs/modules/exceptions",
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://docs.naturali.ai/docs/modules/exceptions",
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://docs.naturali.ai/docs/modules/exceptions",
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://docs.naturali.ai/docs/modules/exceptions",
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://docs.naturali.ai/docs/modules/files",
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://docs.naturali.ai/docs/modules/files",
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://docs.naturali.ai/docs/modules/files",
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://docs.naturali.ai/docs/modules/files",
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://docs.naturali.ai/docs/modules/files",
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://docs.naturali.ai/docs/modules/files",
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://docs.naturali.ai/docs/modules/files",
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://docs.naturali.ai/docs/modules/files",
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://docs.naturali.ai/docs/modules/files",
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://docs.naturali.ai/docs/modules/files",
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://docs.naturali.ai/docs/modules/files",
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://docs.naturali.ai/docs/modules/files",
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://docs.naturali.ai/docs/modules/formations",
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://docs.naturali.ai/docs/modules/formations",
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://docs.naturali.ai/docs/modules/formations",
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://docs.naturali.ai/docs/modules/formations",
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://docs.naturali.ai/docs/modules/formations",
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://docs.naturali.ai/docs/modules/formations",
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://docs.naturali.ai/docs/modules/formations",
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://docs.naturali.ai/docs/modules/formations",
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://docs.naturali.ai/docs/modules/generations",
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://docs.naturali.ai/docs/modules/generations",
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://docs.naturali.ai/docs/modules/generations",
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://docs.naturali.ai/docs/modules/generations",
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://docs.naturali.ai/docs/modules/generations",
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://docs.naturali.ai/docs/modules/guardrails",
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://docs.naturali.ai/docs/modules/guardrails",
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://docs.naturali.ai/docs/modules/guardrails",
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://docs.naturali.ai/docs/modules/guardrails",
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://docs.naturali.ai/docs/modules/guardrails",
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://docs.naturali.ai/docs/modules/guardrails",
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://docs.naturali.ai/docs/modules/guardrails",
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://docs.naturali.ai/docs/modules/guardrails",
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://docs.naturali.ai/docs/modules/guardrails",
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://docs.naturali.ai/docs/modules/ingestion-rules",
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://docs.naturali.ai/docs/modules/ingestion-rules",
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://docs.naturali.ai/docs/modules/ingestion-rules",
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://docs.naturali.ai/docs/modules/ingestion-rules",
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://docs.naturali.ai/docs/modules/ingestion-rules",
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://docs.naturali.ai/docs/modules/installs",
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://docs.naturali.ai/docs/modules/installs",
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://docs.naturali.ai/docs/modules/installs",
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://docs.naturali.ai/docs/modules/installs",
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://docs.naturali.ai/docs/modules/knowledge",
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://docs.naturali.ai/docs/modules/listings",
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://docs.naturali.ai/docs/modules/listings",
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://docs.naturali.ai/docs/modules/listings",
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://docs.naturali.ai/docs/modules/listings",
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://docs.naturali.ai/docs/modules/listings",
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://docs.naturali.ai/docs/modules/listings",
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://docs.naturali.ai/docs/modules/listings",
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://docs.naturali.ai/docs/modules/listings",
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://docs.naturali.ai/docs/modules/listings",
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://docs.naturali.ai/docs/modules/memories",
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://docs.naturali.ai/docs/modules/memories",
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://docs.naturali.ai/docs/modules/memories",
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://docs.naturali.ai/docs/modules/memories",
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://docs.naturali.ai/docs/modules/memories",
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://docs.naturali.ai/docs/modules/memories",
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://docs.naturali.ai/docs/modules/memories",
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://docs.naturali.ai/docs/modules/memories",
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://docs.naturali.ai/docs/modules/memories",
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://docs.naturali.ai/docs/modules/memories",
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://docs.naturali.ai/docs/modules/memory-rules",
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://docs.naturali.ai/docs/modules/memory-rules",
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://docs.naturali.ai/docs/modules/memory-rules",
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://docs.naturali.ai/docs/modules/memory-rules",
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://docs.naturali.ai/docs/modules/memory-rules",
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://docs.naturali.ai/docs/modules/memory-stores",
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://docs.naturali.ai/docs/modules/memory-stores",
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://docs.naturali.ai/docs/modules/memory-stores",
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://docs.naturali.ai/docs/modules/memory-stores",
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://docs.naturali.ai/docs/modules/memory-stores",
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://docs.naturali.ai/docs/modules/memory-stores",
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://docs.naturali.ai/docs/modules/memory-stores",
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://docs.naturali.ai/docs/modules/memory-stores",
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://docs.naturali.ai/docs/modules/memory-stores",
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://docs.naturali.ai/docs/modules/memory-stores",
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://docs.naturali.ai/docs/modules/metadata-schemas",
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://docs.naturali.ai/docs/modules/metadata-schemas",
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://docs.naturali.ai/docs/modules/metadata-schemas",
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://docs.naturali.ai/docs/modules/metadata-schemas",
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://docs.naturali.ai/docs/modules/metadata-schemas",
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://docs.naturali.ai/docs/modules/metadata-schemas",
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://docs.naturali.ai/docs/modules/model-routes",
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://docs.naturali.ai/docs/modules/model-routes",
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://docs.naturali.ai/docs/modules/model-routes",
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://docs.naturali.ai/docs/modules/model-routes",
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://docs.naturali.ai/docs/modules/model-routes",
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://docs.naturali.ai/docs/modules/models",
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://docs.naturali.ai/docs/modules/models",
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://docs.naturali.ai/docs/modules/orchestrations",
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://docs.naturali.ai/docs/modules/orchestrations",
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://docs.naturali.ai/docs/modules/orchestrations",
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://docs.naturali.ai/docs/modules/orchestrations",
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://docs.naturali.ai/docs/modules/orchestrations",
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://docs.naturali.ai/docs/modules/orchestrations",
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://docs.naturali.ai/docs/modules/orchestrations",
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://docs.naturali.ai/docs/modules/orchestrations",
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://docs.naturali.ai/docs/modules/orchestrations",
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://docs.naturali.ai/docs/modules/orchestrations",
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://docs.naturali.ai/docs/modules/orchestrations",
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://docs.naturali.ai/docs/modules/orchestrations",
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://docs.naturali.ai/docs/modules/orchestrations",
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://docs.naturali.ai/docs/modules/orchestrations",
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://docs.naturali.ai/docs/modules/orchestrations",
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://docs.naturali.ai/docs/modules/orchestrations",
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://docs.naturali.ai/docs/modules/orchestrations",
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://docs.naturali.ai/docs/modules/projects",
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://docs.naturali.ai/docs/modules/projects",
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://docs.naturali.ai/docs/modules/projects",
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://docs.naturali.ai/docs/modules/projects",
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://docs.naturali.ai/docs/modules/projects",
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://docs.naturali.ai/docs/modules/projects",
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://docs.naturali.ai/docs/modules/projects",
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://docs.naturali.ai/docs/modules/projects",
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://docs.naturali.ai/docs/modules/projects",
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://docs.naturali.ai/docs/modules/projects",
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://docs.naturali.ai/docs/modules/projects",
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://docs.naturali.ai/docs/modules/projects",
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://docs.naturali.ai/docs/modules/projects",
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://docs.naturali.ai/docs/modules/projects",
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://docs.naturali.ai/docs/modules/projects",
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://docs.naturali.ai/docs/modules/projects",
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://docs.naturali.ai/docs/modules/projects",
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://docs.naturali.ai/docs/modules/quotas",
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://docs.naturali.ai/docs/modules/quotas",
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://docs.naturali.ai/docs/modules/quotas",
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://docs.naturali.ai/docs/modules/quotas",
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://docs.naturali.ai/docs/modules/quotas",
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://docs.naturali.ai/docs/modules/secrets",
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://docs.naturali.ai/docs/modules/secrets",
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://docs.naturali.ai/docs/modules/secrets",
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://docs.naturali.ai/docs/modules/secrets",
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://docs.naturali.ai/docs/modules/secrets",
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://docs.naturali.ai/docs/modules/sessions",
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://docs.naturali.ai/docs/modules/sessions",
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://docs.naturali.ai/docs/modules/sessions",
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://docs.naturali.ai/docs/modules/sessions",
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://docs.naturali.ai/docs/modules/sessions",
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://docs.naturali.ai/docs/modules/sessions",
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://docs.naturali.ai/docs/modules/sessions",
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://docs.naturali.ai/docs/modules/sessions",
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://docs.naturali.ai/docs/modules/sessions",
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://docs.naturali.ai/docs/modules/sessions",
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://docs.naturali.ai/docs/modules/sessions",
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://docs.naturali.ai/docs/modules/sessions",
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://docs.naturali.ai/docs/modules/sessions",
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://docs.naturali.ai/docs/modules/tasks",
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://docs.naturali.ai/docs/modules/tasks",
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://docs.naturali.ai/docs/modules/tasks",
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://docs.naturali.ai/docs/modules/tasks",
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://docs.naturali.ai/docs/modules/tasks",
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://docs.naturali.ai/docs/modules/tasks",
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://docs.naturali.ai/docs/modules/tasks",
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://docs.naturali.ai/docs/modules/tasks",
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://docs.naturali.ai/docs/modules/tasks",
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://docs.naturali.ai/docs/modules/tools",
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://docs.naturali.ai/docs/modules/tools",
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://docs.naturali.ai/docs/modules/tools",
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://docs.naturali.ai/docs/modules/tools",
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://docs.naturali.ai/docs/modules/tools",
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://docs.naturali.ai/docs/modules/tools",
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://docs.naturali.ai/docs/modules/traces",
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://docs.naturali.ai/docs/modules/traces",
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://docs.naturali.ai/docs/modules/traces",
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://docs.naturali.ai/docs/modules/traces",
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://docs.naturali.ai/docs/modules/triggers",
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://docs.naturali.ai/docs/modules/triggers",
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://docs.naturali.ai/docs/modules/triggers",
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://docs.naturali.ai/docs/modules/triggers",
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://docs.naturali.ai/docs/modules/triggers",
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://docs.naturali.ai/docs/modules/triggers",
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://docs.naturali.ai/docs/modules/triggers",
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://docs.naturali.ai/docs/modules/triggers",
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://docs.naturali.ai/docs/modules/triggers",
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://docs.naturali.ai/docs/modules/triggers",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/users",
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://docs.naturali.ai/docs/modules/webhooks",
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://docs.naturali.ai/docs/modules/webhooks",
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://docs.naturali.ai/docs/modules/webhooks",
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://docs.naturali.ai/docs/modules/webhooks",
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://docs.naturali.ai/docs/modules/webhooks",
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://docs.naturali.ai/docs/modules/webhooks",
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://docs.naturali.ai/docs/modules/webhooks",
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://docs.naturali.ai/docs/modules/webhooks",
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://docs.naturali.ai/docs/modules/webhooks",
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://docs.naturali.ai/docs/modules/workflows",
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://docs.naturali.ai/docs/modules/workflows",
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://docs.naturali.ai/docs/modules/workflows",
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://docs.naturali.ai/docs/modules/workflows",
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://docs.naturali.ai/docs/modules/workflows",
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://docs.naturali.ai/docs/modules/workflows",
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://docs.naturali.ai/docs/modules/workflows",
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://docs.naturali.ai/docs/modules/workflows",
21941
+ moduleDocsUrl: "https://naturali.ai/docs/modules/workflows",
21942
21942
  httpMethod: "post",
21943
21943
  pathParams: [
21944
21944
  "project_id",