@naturali/cli 0.180.0 → 0.182.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 +571 -180
  2. package/package.json +2 -2
package/dist/index.mjs CHANGED
@@ -17,7 +17,7 @@ var __exportAll = (all, no_symbols) => {
17
17
  };
18
18
  //#endregion
19
19
  //#region package.json
20
- var version = "0.180.0";
20
+ var version = "0.182.0";
21
21
  //#endregion
22
22
  //#region ../sdk/src/generated/core/bodySerializer.gen.ts
23
23
  const serializeFormDataPair = (data, key, value) => {
@@ -1162,6 +1162,18 @@ var Admin = class {
1162
1162
  });
1163
1163
  }
1164
1164
  /**
1165
+ * Read a user's usage this billing cycle
1166
+ *
1167
+ * The same answer `GET /v1/users/me/usage` gives the account itself: runs, indexed storage and the plan-capped counts, per project and against the rung. Needs the `admin` role.
1168
+ *
1169
+ */
1170
+ static getUserUsage(options) {
1171
+ return (options.client ?? client).get({
1172
+ url: "/v1/admin/users/{user_id}/usage",
1173
+ ...options
1174
+ });
1175
+ }
1176
+ /**
1165
1177
  * Read the global price book
1166
1178
  *
1167
1179
  * 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.
@@ -1505,6 +1517,7 @@ var AiProviders = class {
1505
1517
  * 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.
1506
1518
  * 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`.
1507
1519
  * 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.
1520
+ * The provider answers its whole catalogue in one call; `q`, `limit` and `offset` narrow and page what it returned. A request without `limit` gets the first 50 models.
1508
1521
  *
1509
1522
  */
1510
1523
  static listAiProviderModels(options) {
@@ -1779,6 +1792,34 @@ var Assistant = class {
1779
1792
  });
1780
1793
  }
1781
1794
  /**
1795
+ * Delete a conversation
1796
+ *
1797
+ * Deletes one of your conversations and its messages. What its turns cost stays on your usage.
1798
+ *
1799
+ */
1800
+ static deleteAssistantSession(options) {
1801
+ return (options.client ?? client).delete({
1802
+ url: "/v1/assistant/sessions/{session_id}",
1803
+ ...options
1804
+ });
1805
+ }
1806
+ /**
1807
+ * Rename a conversation
1808
+ *
1809
+ * Sets the name the conversation is listed by. A name given before the first message is kept.
1810
+ *
1811
+ */
1812
+ static renameAssistantSession(options) {
1813
+ return (options.client ?? client).patch({
1814
+ url: "/v1/assistant/sessions/{session_id}",
1815
+ ...options,
1816
+ headers: {
1817
+ "Content-Type": "application/json",
1818
+ ...options.headers
1819
+ }
1820
+ });
1821
+ }
1822
+ /**
1782
1823
  * Read a conversation
1783
1824
  *
1784
1825
  * The newest 100 messages of one conversation, oldest first.
@@ -3255,6 +3296,18 @@ var Generations = class {
3255
3296
  });
3256
3297
  }
3257
3298
  /**
3299
+ * List the memory writes a generation made
3300
+ *
3301
+ * Every memory write this turn made, oldest first: each memory rule's firings and the agent's own `write_memory` calls alike. The rows behind the generation's per-rule `extraction` counts. Reading them is reading the generation (`generations:GetGeneration`).
3302
+ *
3303
+ */
3304
+ static listGenerationMemoryAssertions(options) {
3305
+ return (options.client ?? client).get({
3306
+ url: "/v1/projects/{project_id}/generations/{generation_id}/memory-assertions",
3307
+ ...options
3308
+ });
3309
+ }
3310
+ /**
3258
3311
  * Get a generation's transcript
3259
3312
  *
3260
3313
  * 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.
@@ -4203,8 +4256,8 @@ var Orchestrations = class {
4203
4256
  /**
4204
4257
  * Get orchestration queue stats
4205
4258
  *
4206
- * 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`.
4207
- * 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.
4259
+ * 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. The per-project breakdown is listed by `GET /v1/projects/{project_id}/orchestrations/queue/stats/projects`. Intended for admin/operator policies; guarded by `orchestrations:GetQueueStats`.
4260
+ * Every figure is scoped to what the caller may see. A project-scoped caller gets `queue_depth` and `claimed_tasks` summed over their own 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.
4208
4261
  *
4209
4262
  */
4210
4263
  static getQueueStats(options) {
@@ -4223,6 +4276,27 @@ var Orchestrations = class {
4223
4276
  });
4224
4277
  }
4225
4278
  /**
4279
+ * List the projects with queued orchestration work
4280
+ *
4281
+ * One row per project with any queued or claimed task, ordered by project ID: the per-project breakdown of `GET /v1/projects/{project_id}/orchestrations/queue/stats`. A project-scoped caller sees its own projects only. Guarded by `orchestrations:GetQueueStats`.
4282
+ *
4283
+ */
4284
+ static listQueueStatsProjects(options) {
4285
+ return (options.client ?? client).get({
4286
+ security: [{
4287
+ key: "bearerAuth",
4288
+ scheme: "bearer",
4289
+ type: "http"
4290
+ }, {
4291
+ key: "oauth2",
4292
+ scheme: "bearer",
4293
+ type: "http"
4294
+ }],
4295
+ url: "/v1/projects/{project_id}/orchestrations/queue/stats/projects",
4296
+ ...options
4297
+ });
4298
+ }
4299
+ /**
4226
4300
  * Delete an orchestration
4227
4301
  *
4228
4302
  * Deletes an orchestration definition and all its runs.
@@ -4396,6 +4470,17 @@ var Orchestrations = class {
4396
4470
  ...options
4397
4471
  });
4398
4472
  }
4473
+ /**
4474
+ * List a run's node executions
4475
+ *
4476
+ * The run's per-node execution records, oldest first: one per node attempt, retries and skipped nodes included. Each captures the resolved input, output, status and error of that attempt — the orchestration analogue of an LLM trace. Reading them is reading the run (`orchestrations:GetRun`).
4477
+ */
4478
+ static listOrchestrationRunNodeExecutions(options) {
4479
+ return (options.client ?? client).get({
4480
+ url: "/v1/projects/{project_id}/orchestration-runs/{orchestration_run_id}/node-executions",
4481
+ ...options
4482
+ });
4483
+ }
4399
4484
  };
4400
4485
  var Projects = class {
4401
4486
  /**
@@ -5217,7 +5302,7 @@ var Traces = class {
5217
5302
  /**
5218
5303
  * Get trace tree
5219
5304
  *
5220
- * 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.
5305
+ * 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. A node's generations are listed by `GET /v1/projects/{project_id}/generations?trace_id=`, and a node's direct children page by `GET /v1/projects/{project_id}/traces?parent_trace_id=`.
5221
5306
  *
5222
5307
  */
5223
5308
  static getTraceTree(options) {
@@ -5417,7 +5502,9 @@ var Users = class {
5417
5502
  });
5418
5503
  }
5419
5504
  /**
5420
- * Get the current account's runs this billing cycle
5505
+ * Get the current account's usage this billing cycle
5506
+ *
5507
+ * What the account uses this billing cycle, per project and against its plan: runs, indexed storage, and the counts the plan caps — projects, active channels and triggers.
5421
5508
  *
5422
5509
  * 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.
5423
5510
  *
@@ -5429,7 +5516,7 @@ var Users = class {
5429
5516
  *
5430
5517
  * **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.
5431
5518
  *
5432
- * 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.
5519
+ * It is also more expensive than the balance read: it reads the runtime several times per project. Poll it on the order of minutes, not seconds. A figure that could not be read is `null` rather than failing the request.
5433
5520
  *
5434
5521
  */
5435
5522
  static getCurrentUserUsage(options) {
@@ -5439,6 +5526,22 @@ var Users = class {
5439
5526
  });
5440
5527
  }
5441
5528
  /**
5529
+ * List the current account's credit ledger
5530
+ *
5531
+ * A cursor page of the account's model-credit ledger, newest first, with the balance the whole ledger sums to. The ledger is append-only: a correction is a new line, never an edit.
5532
+ *
5533
+ * A `usage` line is managed model spend, written as the meter is reconciled every 15 minutes per project, so the ledger grows by a line per project per window that spent anything. Filter with `kind`.
5534
+ *
5535
+ * The other side of a marketplace line is another account's project, so a `fee` or `earned` line names the cycle it settles, not that project.
5536
+ *
5537
+ */
5538
+ static listCurrentUserCredits(options) {
5539
+ return (options?.client ?? client).get({
5540
+ url: "/v1/users/me/credits",
5541
+ ...options
5542
+ });
5543
+ }
5544
+ /**
5442
5545
  * List what a billing ceiling stopped
5443
5546
  *
5444
5547
  * 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.
@@ -6751,7 +6854,7 @@ const routes = {
6751
6854
  },
6752
6855
  {
6753
6856
  "name": "limit",
6754
- "description": "Maximum number of results to return",
6857
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
6755
6858
  "required": false,
6756
6859
  "type": "integer",
6757
6860
  "in": "query"
@@ -6890,14 +6993,14 @@ const routes = {
6890
6993
  },
6891
6994
  {
6892
6995
  "name": "limit",
6893
- "description": "Maximum number of results to return",
6996
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
6894
6997
  "required": false,
6895
6998
  "type": "integer",
6896
6999
  "in": "query"
6897
7000
  },
6898
7001
  {
6899
7002
  "name": "offset",
6900
- "description": "Number of results to skip",
7003
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
6901
7004
  "required": false,
6902
7005
  "type": "integer",
6903
7006
  "in": "query"
@@ -7511,7 +7614,11 @@ const routes = {
7511
7614
  moduleDocsUrl: "https://naturali.ai/docs/modules/admin",
7512
7615
  httpMethod: "get",
7513
7616
  pathParams: ["user_id"],
7514
- queryParams: ["limit", "cursor"],
7617
+ queryParams: [
7618
+ "kind",
7619
+ "limit",
7620
+ "cursor"
7621
+ ],
7515
7622
  headerParams: [],
7516
7623
  cookieParams: [],
7517
7624
  flags: [
@@ -7522,6 +7629,13 @@ const routes = {
7522
7629
  "type": "string",
7523
7630
  "in": "path"
7524
7631
  },
7632
+ {
7633
+ "name": "kind",
7634
+ "description": "Only lines of this kind.",
7635
+ "required": false,
7636
+ "type": "string",
7637
+ "in": "query"
7638
+ },
7525
7639
  {
7526
7640
  "name": "limit",
7527
7641
  "description": "Maximum items per page — an integer from 1 to 100 (default 20).",
@@ -7579,6 +7693,24 @@ const routes = {
7579
7693
  }
7580
7694
  ]
7581
7695
  },
7696
+ "get-user-usage": {
7697
+ serviceClass: "Admin",
7698
+ operationId: "getUserUsage",
7699
+ description: "The same answer `GET /v1/users/me/usage` gives the account itself: runs, indexed storage and the plan-capped counts, per project and against the rung. Needs the `admin` role.",
7700
+ moduleDocsUrl: "https://naturali.ai/docs/modules/admin",
7701
+ httpMethod: "get",
7702
+ pathParams: ["user_id"],
7703
+ queryParams: [],
7704
+ headerParams: [],
7705
+ cookieParams: [],
7706
+ flags: [{
7707
+ "name": "user_id",
7708
+ "description": "",
7709
+ "required": true,
7710
+ "type": "string",
7711
+ "in": "path"
7712
+ }]
7713
+ },
7582
7714
  "get-admin-price-book": {
7583
7715
  serviceClass: "Admin",
7584
7716
  operationId: "getAdminPriceBook",
@@ -7707,14 +7839,14 @@ const routes = {
7707
7839
  },
7708
7840
  {
7709
7841
  "name": "limit",
7710
- "description": "Maximum number of results to return",
7842
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
7711
7843
  "required": false,
7712
7844
  "type": "integer",
7713
7845
  "in": "query"
7714
7846
  },
7715
7847
  {
7716
7848
  "name": "offset",
7717
- "description": "Number of results to skip",
7849
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
7718
7850
  "required": false,
7719
7851
  "type": "integer",
7720
7852
  "in": "query"
@@ -7853,7 +7985,7 @@ const routes = {
7853
7985
  },
7854
7986
  {
7855
7987
  "name": "prompt_caching",
7856
- "description": "Prompt caching for this agent's turns. `{\"enabled\": true}` marks a cache breakpoint at the end of the turn's static prefix — the tool definitions and the instructions together — so a provider that caches by explicit breakpoint reads that prefix back on every later step of the turn and every later turn of the session instead of being charged for it again. Null or omitted is off: a cache write costs more than an uncached token, so an agent whose prefix is never re-read would pay for the privilege. An agent with no `instructions` has no block to mark and caches nothing. Cache reads are reported as `cached_tokens` and cache writes as `cache_write_tokens` on usage.",
7988
+ "description": "Prompt caching for this agent's turns. `{\"enabled\": true}` marks two cache breakpoints: the end of the system block, which covers the tool definitions and the instructions, and the last message of each step, which covers the conversation so far. A provider that caches by explicit breakpoint then reads, on every later step and every later turn of the session, the whole prefix the previous one sent, and writes only what was appended. Null or omitted is off: a cache write costs more than an uncached token, so an agent whose prefix is never re-read would pay for the privilege. A prefix below the model's minimum cacheable length is not cached. Cache reads are reported as `cached_tokens` and cache writes as `cache_write_tokens` on usage; a write with no `cache_write_tokens` price bills at the input rate.",
7857
7989
  "required": false,
7858
7990
  "type": "object",
7859
7991
  "in": "body"
@@ -8065,7 +8197,7 @@ const routes = {
8065
8197
  },
8066
8198
  {
8067
8199
  "name": "prompt_caching",
8068
- "description": "Prompt caching for this agent's turns. `{\"enabled\": true}` marks a cache breakpoint at the end of the turn's static prefix — the tool definitions and the instructions together — so a provider that caches by explicit breakpoint reads that prefix back on every later step of the turn and every later turn of the session instead of being charged for it again. Null or omitted is off: a cache write costs more than an uncached token, so an agent whose prefix is never re-read would pay for the privilege. An agent with no `instructions` has no block to mark and caches nothing. Cache reads are reported as `cached_tokens` and cache writes as `cache_write_tokens` on usage.",
8200
+ "description": "Prompt caching for this agent's turns. `{\"enabled\": true}` marks two cache breakpoints: the end of the system block, which covers the tool definitions and the instructions, and the last message of each step, which covers the conversation so far. A provider that caches by explicit breakpoint then reads, on every later step and every later turn of the session, the whole prefix the previous one sent, and writes only what was appended. Null or omitted is off: a cache write costs more than an uncached token, so an agent whose prefix is never re-read would pay for the privilege. A prefix below the model's minimum cacheable length is not cached. Cache reads are reported as `cached_tokens` and cache writes as `cache_write_tokens` on usage; a write with no `cache_write_tokens` price bills at the input rate.",
8069
8201
  "required": false,
8070
8202
  "type": "object",
8071
8203
  "in": "body"
@@ -8260,7 +8392,7 @@ const routes = {
8260
8392
  },
8261
8393
  {
8262
8394
  "name": "prompt_caching",
8263
- "description": "Prompt caching for this agent's turns. `{\"enabled\": true}` marks a cache breakpoint at the end of the turn's static prefix — the tool definitions and the instructions together — so a provider that caches by explicit breakpoint reads that prefix back on every later step of the turn and every later turn of the session instead of being charged for it again. Null or omitted is off: a cache write costs more than an uncached token, so an agent whose prefix is never re-read would pay for the privilege. An agent with no `instructions` has no block to mark and caches nothing. Cache reads are reported as `cached_tokens` and cache writes as `cache_write_tokens` on usage.",
8395
+ "description": "Prompt caching for this agent's turns. `{\"enabled\": true}` marks two cache breakpoints: the end of the system block, which covers the tool definitions and the instructions, and the last message of each step, which covers the conversation so far. A provider that caches by explicit breakpoint then reads, on every later step and every later turn of the session, the whole prefix the previous one sent, and writes only what was appended. Null or omitted is off: a cache write costs more than an uncached token, so an agent whose prefix is never re-read would pay for the privilege. A prefix below the model's minimum cacheable length is not cached. Cache reads are reported as `cached_tokens` and cache writes as `cache_write_tokens` on usage; a write with no `cache_write_tokens` price bills at the input rate.",
8264
8396
  "required": false,
8265
8397
  "type": "object",
8266
8398
  "in": "body"
@@ -8533,14 +8665,14 @@ const routes = {
8533
8665
  },
8534
8666
  {
8535
8667
  "name": "limit",
8536
- "description": "Maximum number of results to return",
8668
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
8537
8669
  "required": false,
8538
8670
  "type": "integer",
8539
8671
  "in": "query"
8540
8672
  },
8541
8673
  {
8542
8674
  "name": "offset",
8543
- "description": "Number of results to skip",
8675
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
8544
8676
  "required": false,
8545
8677
  "type": "integer",
8546
8678
  "in": "query"
@@ -8753,14 +8885,14 @@ const routes = {
8753
8885
  },
8754
8886
  {
8755
8887
  "name": "limit",
8756
- "description": "Number of results per page",
8888
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
8757
8889
  "required": false,
8758
8890
  "type": "integer",
8759
8891
  "in": "query"
8760
8892
  },
8761
8893
  {
8762
8894
  "name": "offset",
8763
- "description": "Number of results to skip",
8895
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
8764
8896
  "required": false,
8765
8897
  "type": "integer",
8766
8898
  "in": "query"
@@ -8959,26 +9091,54 @@ const routes = {
8959
9091
  "list-ai-provider-models": {
8960
9092
  serviceClass: "AIProviders",
8961
9093
  operationId: "listAiProviderModels",
8962
- 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.",
9094
+ 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. The provider answers its whole catalogue in one call; `q`, `limit` and `offset` narrow and page what it returned. A request without `limit` gets the first 50 models.",
8963
9095
  moduleDocsUrl: "https://naturali.ai/docs/modules/ai-providers",
8964
9096
  httpMethod: "get",
8965
9097
  pathParams: ["project_id", "ai_provider_id"],
8966
- queryParams: [],
9098
+ queryParams: [
9099
+ "q",
9100
+ "limit",
9101
+ "offset"
9102
+ ],
8967
9103
  headerParams: [],
8968
9104
  cookieParams: [],
8969
- flags: [{
8970
- "name": "project_id",
8971
- "description": "Project public ID (proj_ prefix).",
8972
- "required": true,
8973
- "type": "string",
8974
- "in": "path"
8975
- }, {
8976
- "name": "ai_provider_id",
8977
- "description": "AI Provider ID",
8978
- "required": true,
8979
- "type": "string",
8980
- "in": "path"
8981
- }]
9105
+ flags: [
9106
+ {
9107
+ "name": "project_id",
9108
+ "description": "Project public ID (proj_ prefix).",
9109
+ "required": true,
9110
+ "type": "string",
9111
+ "in": "path"
9112
+ },
9113
+ {
9114
+ "name": "ai_provider_id",
9115
+ "description": "AI Provider ID",
9116
+ "required": true,
9117
+ "type": "string",
9118
+ "in": "path"
9119
+ },
9120
+ {
9121
+ "name": "q",
9122
+ "description": "Keeps the models whose `id` or `display_name` contains this text, ignoring case. Applied before paging, so `total` counts the matches.\n",
9123
+ "required": false,
9124
+ "type": "string",
9125
+ "in": "query"
9126
+ },
9127
+ {
9128
+ "name": "limit",
9129
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
9130
+ "required": false,
9131
+ "type": "integer",
9132
+ "in": "query"
9133
+ },
9134
+ {
9135
+ "name": "offset",
9136
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
9137
+ "required": false,
9138
+ "type": "integer",
9139
+ "in": "query"
9140
+ }
9141
+ ]
8982
9142
  },
8983
9143
  "get-ai-provider-prices": {
8984
9144
  serviceClass: "AIProviders",
@@ -9231,14 +9391,14 @@ const routes = {
9231
9391
  },
9232
9392
  {
9233
9393
  "name": "limit",
9234
- "description": "Maximum number of results to return",
9394
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
9235
9395
  "required": false,
9236
9396
  "type": "integer",
9237
9397
  "in": "query"
9238
9398
  },
9239
9399
  {
9240
9400
  "name": "offset",
9241
- "description": "Number of results to skip",
9401
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
9242
9402
  "required": false,
9243
9403
  "type": "integer",
9244
9404
  "in": "query"
@@ -9284,14 +9444,14 @@ const routes = {
9284
9444
  },
9285
9445
  {
9286
9446
  "name": "limit",
9287
- "description": "Maximum number of groups to return",
9447
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
9288
9448
  "required": false,
9289
9449
  "type": "integer",
9290
9450
  "in": "query"
9291
9451
  },
9292
9452
  {
9293
9453
  "name": "offset",
9294
- "description": "Number of groups to skip",
9454
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
9295
9455
  "required": false,
9296
9456
  "type": "integer",
9297
9457
  "in": "query"
@@ -9511,6 +9671,48 @@ const routes = {
9511
9671
  cookieParams: [],
9512
9672
  flags: []
9513
9673
  },
9674
+ "rename-assistant-session": {
9675
+ serviceClass: "Assistant",
9676
+ operationId: "renameAssistantSession",
9677
+ description: "Sets the name the conversation is listed by. A name given before the first message is kept.",
9678
+ moduleDocsUrl: "https://naturali.ai/docs/modules/assistant",
9679
+ httpMethod: "patch",
9680
+ pathParams: ["session_id"],
9681
+ queryParams: [],
9682
+ headerParams: [],
9683
+ cookieParams: [],
9684
+ flags: [{
9685
+ "name": "session_id",
9686
+ "description": "Assistant session ID, as listed.",
9687
+ "required": true,
9688
+ "type": "string",
9689
+ "in": "path"
9690
+ }, {
9691
+ "name": "name",
9692
+ "description": "Trimmed before it is stored.",
9693
+ "required": true,
9694
+ "type": "string",
9695
+ "in": "body"
9696
+ }]
9697
+ },
9698
+ "delete-assistant-session": {
9699
+ serviceClass: "Assistant",
9700
+ operationId: "deleteAssistantSession",
9701
+ description: "Deletes one of your conversations and its messages. What its turns cost stays on your usage.",
9702
+ moduleDocsUrl: "https://naturali.ai/docs/modules/assistant",
9703
+ httpMethod: "delete",
9704
+ pathParams: ["session_id"],
9705
+ queryParams: [],
9706
+ headerParams: [],
9707
+ cookieParams: [],
9708
+ flags: [{
9709
+ "name": "session_id",
9710
+ "description": "Assistant session ID, as listed.",
9711
+ "required": true,
9712
+ "type": "string",
9713
+ "in": "path"
9714
+ }]
9715
+ },
9514
9716
  "list-assistant-session-messages": {
9515
9717
  serviceClass: "Assistant",
9516
9718
  operationId: "listAssistantSessionMessages",
@@ -9624,14 +9826,14 @@ const routes = {
9624
9826
  },
9625
9827
  {
9626
9828
  "name": "limit",
9627
- "description": "Number of results per page (1–200, default 25)",
9829
+ "description": "Results per page. Above 200 it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
9628
9830
  "required": false,
9629
9831
  "type": "integer",
9630
9832
  "in": "query"
9631
9833
  },
9632
9834
  {
9633
9835
  "name": "offset",
9634
- "description": "Number of results to skip",
9836
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
9635
9837
  "required": false,
9636
9838
  "type": "integer",
9637
9839
  "in": "query"
@@ -9872,14 +10074,14 @@ const routes = {
9872
10074
  },
9873
10075
  {
9874
10076
  "name": "limit",
9875
- "description": "Maximum number of results to return",
10077
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
9876
10078
  "required": false,
9877
10079
  "type": "integer",
9878
10080
  "in": "query"
9879
10081
  },
9880
10082
  {
9881
10083
  "name": "offset",
9882
- "description": "Number of results to skip",
10084
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
9883
10085
  "required": false,
9884
10086
  "type": "integer",
9885
10087
  "in": "query"
@@ -10777,14 +10979,14 @@ const routes = {
10777
10979
  },
10778
10980
  {
10779
10981
  "name": "limit",
10780
- "description": "Maximum number of results to return",
10982
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
10781
10983
  "required": false,
10782
10984
  "type": "integer",
10783
10985
  "in": "query"
10784
10986
  },
10785
10987
  {
10786
10988
  "name": "offset",
10787
- "description": "Number of results to skip",
10989
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
10788
10990
  "required": false,
10789
10991
  "type": "integer",
10790
10992
  "in": "query"
@@ -10962,14 +11164,14 @@ const routes = {
10962
11164
  },
10963
11165
  {
10964
11166
  "name": "limit",
10965
- "description": "Maximum number of results to return",
11167
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
10966
11168
  "required": false,
10967
11169
  "type": "integer",
10968
11170
  "in": "query"
10969
11171
  },
10970
11172
  {
10971
11173
  "name": "offset",
10972
- "description": "Number of results to skip",
11174
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
10973
11175
  "required": false,
10974
11176
  "type": "integer",
10975
11177
  "in": "query"
@@ -11250,14 +11452,14 @@ const routes = {
11250
11452
  },
11251
11453
  {
11252
11454
  "name": "limit",
11253
- "description": "Maximum number of results to return",
11455
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
11254
11456
  "required": false,
11255
11457
  "type": "integer",
11256
11458
  "in": "query"
11257
11459
  },
11258
11460
  {
11259
11461
  "name": "offset",
11260
- "description": "Number of results to skip",
11462
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
11261
11463
  "required": false,
11262
11464
  "type": "integer",
11263
11465
  "in": "query"
@@ -11484,14 +11686,14 @@ const routes = {
11484
11686
  },
11485
11687
  {
11486
11688
  "name": "limit",
11487
- "description": "Maximum number of results to return",
11689
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
11488
11690
  "required": false,
11489
11691
  "type": "integer",
11490
11692
  "in": "query"
11491
11693
  },
11492
11694
  {
11493
11695
  "name": "offset",
11494
- "description": "Number of results to skip",
11696
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
11495
11697
  "required": false,
11496
11698
  "type": "integer",
11497
11699
  "in": "query"
@@ -11668,14 +11870,14 @@ const routes = {
11668
11870
  },
11669
11871
  {
11670
11872
  "name": "limit",
11671
- "description": "Maximum number of results to return",
11873
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
11672
11874
  "required": false,
11673
11875
  "type": "integer",
11674
11876
  "in": "query"
11675
11877
  },
11676
11878
  {
11677
11879
  "name": "offset",
11678
- "description": "Number of results to skip",
11880
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
11679
11881
  "required": false,
11680
11882
  "type": "integer",
11681
11883
  "in": "query"
@@ -11831,14 +12033,14 @@ const routes = {
11831
12033
  },
11832
12034
  {
11833
12035
  "name": "limit",
11834
- "description": "Maximum number of results to return",
12036
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
11835
12037
  "required": false,
11836
12038
  "type": "integer",
11837
12039
  "in": "query"
11838
12040
  },
11839
12041
  {
11840
12042
  "name": "offset",
11841
- "description": "Number of results to skip",
12043
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
11842
12044
  "required": false,
11843
12045
  "type": "integer",
11844
12046
  "in": "query"
@@ -12152,22 +12354,39 @@ const routes = {
12152
12354
  moduleDocsUrl: "https://naturali.ai/docs/modules/documents",
12153
12355
  httpMethod: "get",
12154
12356
  pathParams: ["project_id", "document_id"],
12155
- queryParams: [],
12357
+ queryParams: ["limit", "offset"],
12156
12358
  headerParams: [],
12157
12359
  cookieParams: [],
12158
- flags: [{
12159
- "name": "project_id",
12160
- "description": "Project public ID (proj_ prefix).",
12161
- "required": true,
12162
- "type": "string",
12163
- "in": "path"
12164
- }, {
12165
- "name": "document_id",
12166
- "description": "",
12167
- "required": true,
12168
- "type": "string",
12169
- "in": "path"
12170
- }]
12360
+ flags: [
12361
+ {
12362
+ "name": "project_id",
12363
+ "description": "Project public ID (proj_ prefix).",
12364
+ "required": true,
12365
+ "type": "string",
12366
+ "in": "path"
12367
+ },
12368
+ {
12369
+ "name": "document_id",
12370
+ "description": "",
12371
+ "required": true,
12372
+ "type": "string",
12373
+ "in": "path"
12374
+ },
12375
+ {
12376
+ "name": "limit",
12377
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
12378
+ "required": false,
12379
+ "type": "integer",
12380
+ "in": "query"
12381
+ },
12382
+ {
12383
+ "name": "offset",
12384
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
12385
+ "required": false,
12386
+ "type": "integer",
12387
+ "in": "query"
12388
+ }
12389
+ ]
12171
12390
  },
12172
12391
  "create-document-relation": {
12173
12392
  serviceClass: "Documents",
@@ -12347,14 +12566,14 @@ const routes = {
12347
12566
  },
12348
12567
  {
12349
12568
  "name": "limit",
12350
- "description": "Maximum number of results to return",
12569
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
12351
12570
  "required": false,
12352
12571
  "type": "integer",
12353
12572
  "in": "query"
12354
12573
  },
12355
12574
  {
12356
12575
  "name": "offset",
12357
- "description": "Number of results to skip",
12576
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
12358
12577
  "required": false,
12359
12578
  "type": "integer",
12360
12579
  "in": "query"
@@ -12645,14 +12864,14 @@ const routes = {
12645
12864
  },
12646
12865
  {
12647
12866
  "name": "limit",
12648
- "description": "Maximum number of results to return",
12867
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
12649
12868
  "required": false,
12650
12869
  "type": "integer",
12651
12870
  "in": "query"
12652
12871
  },
12653
12872
  {
12654
12873
  "name": "offset",
12655
- "description": "Number of results to skip",
12874
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
12656
12875
  "required": false,
12657
12876
  "type": "integer",
12658
12877
  "in": "query"
@@ -12809,14 +13028,14 @@ const routes = {
12809
13028
  },
12810
13029
  {
12811
13030
  "name": "limit",
12812
- "description": "Maximum number of results to return",
13031
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
12813
13032
  "required": false,
12814
13033
  "type": "integer",
12815
13034
  "in": "query"
12816
13035
  },
12817
13036
  {
12818
13037
  "name": "offset",
12819
- "description": "Number of results to skip",
13038
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
12820
13039
  "required": false,
12821
13040
  "type": "integer",
12822
13041
  "in": "query"
@@ -13036,14 +13255,14 @@ const routes = {
13036
13255
  },
13037
13256
  {
13038
13257
  "name": "limit",
13039
- "description": "Maximum number of results to return",
13258
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
13040
13259
  "required": false,
13041
13260
  "type": "integer",
13042
13261
  "in": "query"
13043
13262
  },
13044
13263
  {
13045
13264
  "name": "offset",
13046
- "description": "Number of results to skip",
13265
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
13047
13266
  "required": false,
13048
13267
  "type": "integer",
13049
13268
  "in": "query"
@@ -13256,14 +13475,14 @@ const routes = {
13256
13475
  },
13257
13476
  {
13258
13477
  "name": "limit",
13259
- "description": "Maximum number of results to return",
13478
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
13260
13479
  "required": false,
13261
13480
  "type": "integer",
13262
13481
  "in": "query"
13263
13482
  },
13264
13483
  {
13265
13484
  "name": "offset",
13266
- "description": "Number of results to skip",
13485
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
13267
13486
  "required": false,
13268
13487
  "type": "integer",
13269
13488
  "in": "query"
@@ -13408,14 +13627,14 @@ const routes = {
13408
13627
  },
13409
13628
  {
13410
13629
  "name": "limit",
13411
- "description": "Maximum number of results to return",
13630
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
13412
13631
  "required": false,
13413
13632
  "type": "integer",
13414
13633
  "in": "query"
13415
13634
  },
13416
13635
  {
13417
13636
  "name": "offset",
13418
- "description": "Number of results to skip",
13637
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
13419
13638
  "required": false,
13420
13639
  "type": "integer",
13421
13640
  "in": "query"
@@ -13507,14 +13726,14 @@ const routes = {
13507
13726
  },
13508
13727
  {
13509
13728
  "name": "limit",
13510
- "description": "Maximum number of results to return",
13729
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
13511
13730
  "required": false,
13512
13731
  "type": "integer",
13513
13732
  "in": "query"
13514
13733
  },
13515
13734
  {
13516
13735
  "name": "offset",
13517
- "description": "Number of results to skip",
13736
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
13518
13737
  "required": false,
13519
13738
  "type": "integer",
13520
13739
  "in": "query"
@@ -13642,14 +13861,14 @@ const routes = {
13642
13861
  },
13643
13862
  {
13644
13863
  "name": "limit",
13645
- "description": "Maximum number of results to return",
13864
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
13646
13865
  "required": false,
13647
13866
  "type": "integer",
13648
13867
  "in": "query"
13649
13868
  },
13650
13869
  {
13651
13870
  "name": "offset",
13652
- "description": "Number of results to skip",
13871
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
13653
13872
  "required": false,
13654
13873
  "type": "integer",
13655
13874
  "in": "query"
@@ -14135,14 +14354,14 @@ const routes = {
14135
14354
  },
14136
14355
  {
14137
14356
  "name": "limit",
14138
- "description": "Maximum number of results to return",
14357
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
14139
14358
  "required": false,
14140
14359
  "type": "integer",
14141
14360
  "in": "query"
14142
14361
  },
14143
14362
  {
14144
14363
  "name": "offset",
14145
- "description": "Number of results to skip",
14364
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
14146
14365
  "required": false,
14147
14366
  "type": "integer",
14148
14367
  "in": "query"
@@ -14320,14 +14539,14 @@ const routes = {
14320
14539
  },
14321
14540
  {
14322
14541
  "name": "limit",
14323
- "description": "Maximum number of results to return",
14542
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
14324
14543
  "required": false,
14325
14544
  "type": "integer",
14326
14545
  "in": "query"
14327
14546
  },
14328
14547
  {
14329
14548
  "name": "offset",
14330
- "description": "Number of results to skip",
14549
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
14331
14550
  "required": false,
14332
14551
  "type": "integer",
14333
14552
  "in": "query"
@@ -14429,14 +14648,14 @@ const routes = {
14429
14648
  },
14430
14649
  {
14431
14650
  "name": "limit",
14432
- "description": "",
14651
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
14433
14652
  "required": false,
14434
14653
  "type": "integer",
14435
14654
  "in": "query"
14436
14655
  },
14437
14656
  {
14438
14657
  "name": "offset",
14439
- "description": "",
14658
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
14440
14659
  "required": false,
14441
14660
  "type": "integer",
14442
14661
  "in": "query"
@@ -14525,6 +14744,47 @@ const routes = {
14525
14744
  "in": "path"
14526
14745
  }]
14527
14746
  },
14747
+ "list-generation-memory-assertions": {
14748
+ serviceClass: "Generations",
14749
+ operationId: "listGenerationMemoryAssertions",
14750
+ description: "Every memory write this turn made, oldest first: each memory rule's firings and the agent's own `write_memory` calls alike. The rows behind the generation's per-rule `extraction` counts. Reading them is reading the generation (`generations:GetGeneration`).",
14751
+ moduleDocsUrl: "https://naturali.ai/docs/modules/generations",
14752
+ httpMethod: "get",
14753
+ pathParams: ["project_id", "generation_id"],
14754
+ queryParams: ["limit", "offset"],
14755
+ headerParams: [],
14756
+ cookieParams: [],
14757
+ flags: [
14758
+ {
14759
+ "name": "project_id",
14760
+ "description": "Project public ID (proj_ prefix).",
14761
+ "required": true,
14762
+ "type": "string",
14763
+ "in": "path"
14764
+ },
14765
+ {
14766
+ "name": "generation_id",
14767
+ "description": "Public ID of the generation",
14768
+ "required": true,
14769
+ "type": "string",
14770
+ "in": "path"
14771
+ },
14772
+ {
14773
+ "name": "limit",
14774
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
14775
+ "required": false,
14776
+ "type": "integer",
14777
+ "in": "query"
14778
+ },
14779
+ {
14780
+ "name": "offset",
14781
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
14782
+ "required": false,
14783
+ "type": "integer",
14784
+ "in": "query"
14785
+ }
14786
+ ]
14787
+ },
14528
14788
  "get-generation-transcript": {
14529
14789
  serviceClass: "Generations",
14530
14790
  operationId: "getGenerationTranscript",
@@ -14569,14 +14829,14 @@ const routes = {
14569
14829
  },
14570
14830
  {
14571
14831
  "name": "limit",
14572
- "description": "Maximum number of results to return",
14832
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
14573
14833
  "required": false,
14574
14834
  "type": "integer",
14575
14835
  "in": "query"
14576
14836
  },
14577
14837
  {
14578
14838
  "name": "offset",
14579
- "description": "Number of results to skip",
14839
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
14580
14840
  "required": false,
14581
14841
  "type": "integer",
14582
14842
  "in": "query"
@@ -14803,14 +15063,14 @@ const routes = {
14803
15063
  },
14804
15064
  {
14805
15065
  "name": "limit",
14806
- "description": "Maximum number of results to return",
15066
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
14807
15067
  "required": false,
14808
15068
  "type": "integer",
14809
15069
  "in": "query"
14810
15070
  },
14811
15071
  {
14812
15072
  "name": "offset",
14813
- "description": "Number of results to skip",
15073
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
14814
15074
  "required": false,
14815
15075
  "type": "integer",
14816
15076
  "in": "query"
@@ -14968,14 +15228,14 @@ const routes = {
14968
15228
  },
14969
15229
  {
14970
15230
  "name": "limit",
14971
- "description": "Number of results per page",
15231
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
14972
15232
  "required": false,
14973
15233
  "type": "integer",
14974
15234
  "in": "query"
14975
15235
  },
14976
15236
  {
14977
15237
  "name": "offset",
14978
- "description": "Number of results to skip",
15238
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
14979
15239
  "required": false,
14980
15240
  "type": "integer",
14981
15241
  "in": "query"
@@ -15804,14 +16064,14 @@ const routes = {
15804
16064
  },
15805
16065
  {
15806
16066
  "name": "limit",
15807
- "description": "Maximum number of results to return",
16067
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
15808
16068
  "required": false,
15809
16069
  "type": "integer",
15810
16070
  "in": "query"
15811
16071
  },
15812
16072
  {
15813
16073
  "name": "offset",
15814
- "description": "Number of results to skip",
16074
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
15815
16075
  "required": false,
15816
16076
  "type": "integer",
15817
16077
  "in": "query"
@@ -16086,14 +16346,14 @@ const routes = {
16086
16346
  },
16087
16347
  {
16088
16348
  "name": "limit",
16089
- "description": "Maximum number of results to return",
16349
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
16090
16350
  "required": false,
16091
16351
  "type": "integer",
16092
16352
  "in": "query"
16093
16353
  },
16094
16354
  {
16095
16355
  "name": "offset",
16096
- "description": "Number of results to skip",
16356
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
16097
16357
  "required": false,
16098
16358
  "type": "integer",
16099
16359
  "in": "query"
@@ -16223,14 +16483,14 @@ const routes = {
16223
16483
  },
16224
16484
  {
16225
16485
  "name": "limit",
16226
- "description": "Number of results per page",
16486
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
16227
16487
  "required": false,
16228
16488
  "type": "integer",
16229
16489
  "in": "query"
16230
16490
  },
16231
16491
  {
16232
16492
  "name": "offset",
16233
- "description": "Number of results to skip",
16493
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
16234
16494
  "required": false,
16235
16495
  "type": "integer",
16236
16496
  "in": "query"
@@ -16510,14 +16770,14 @@ const routes = {
16510
16770
  },
16511
16771
  {
16512
16772
  "name": "limit",
16513
- "description": "Maximum number of results to return",
16773
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
16514
16774
  "required": false,
16515
16775
  "type": "integer",
16516
16776
  "in": "query"
16517
16777
  },
16518
16778
  {
16519
16779
  "name": "offset",
16520
- "description": "Number of results to skip",
16780
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
16521
16781
  "required": false,
16522
16782
  "type": "integer",
16523
16783
  "in": "query"
@@ -16751,14 +17011,14 @@ const routes = {
16751
17011
  },
16752
17012
  {
16753
17013
  "name": "limit",
16754
- "description": "Maximum number of results to return",
17014
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
16755
17015
  "required": false,
16756
17016
  "type": "integer",
16757
17017
  "in": "query"
16758
17018
  },
16759
17019
  {
16760
17020
  "name": "offset",
16761
- "description": "Number of results to skip",
17021
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
16762
17022
  "required": false,
16763
17023
  "type": "integer",
16764
17024
  "in": "query"
@@ -16929,14 +17189,14 @@ const routes = {
16929
17189
  },
16930
17190
  {
16931
17191
  "name": "limit",
16932
- "description": "Maximum number of results to return",
17192
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
16933
17193
  "required": false,
16934
17194
  "type": "integer",
16935
17195
  "in": "query"
16936
17196
  },
16937
17197
  {
16938
17198
  "name": "offset",
16939
- "description": "Number of results to skip",
17199
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
16940
17200
  "required": false,
16941
17201
  "type": "integer",
16942
17202
  "in": "query"
@@ -17127,14 +17387,14 @@ const routes = {
17127
17387
  },
17128
17388
  {
17129
17389
  "name": "limit",
17130
- "description": "Maximum number of results to return",
17390
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
17131
17391
  "required": false,
17132
17392
  "type": "integer",
17133
17393
  "in": "query"
17134
17394
  },
17135
17395
  {
17136
17396
  "name": "offset",
17137
- "description": "Number of results to skip",
17397
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
17138
17398
  "required": false,
17139
17399
  "type": "integer",
17140
17400
  "in": "query"
@@ -17398,14 +17658,14 @@ const routes = {
17398
17658
  },
17399
17659
  {
17400
17660
  "name": "limit",
17401
- "description": "Maximum number of results to return",
17661
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
17402
17662
  "required": false,
17403
17663
  "type": "integer",
17404
17664
  "in": "query"
17405
17665
  },
17406
17666
  {
17407
17667
  "name": "offset",
17408
- "description": "Number of results to skip",
17668
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
17409
17669
  "required": false,
17410
17670
  "type": "integer",
17411
17671
  "in": "query"
@@ -17532,7 +17792,7 @@ const routes = {
17532
17792
  "get-queue-stats": {
17533
17793
  serviceClass: "Orchestrations",
17534
17794
  operationId: "getQueueStats",
17535
- 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.",
17795
+ 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. The per-project breakdown is listed by `GET /v1/projects/{project_id}/orchestrations/queue/stats/projects`. Intended for admin/operator policies; guarded by `orchestrations:GetQueueStats`. Every figure is scoped to what the caller may see. A project-scoped caller gets `queue_depth` and `claimed_tasks` summed over their own 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.",
17536
17796
  moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
17537
17797
  httpMethod: "get",
17538
17798
  pathParams: ["project_id"],
@@ -17547,6 +17807,40 @@ const routes = {
17547
17807
  "in": "path"
17548
17808
  }]
17549
17809
  },
17810
+ "list-queue-stats-projects": {
17811
+ serviceClass: "Orchestrations",
17812
+ operationId: "listQueueStatsProjects",
17813
+ description: "One row per project with any queued or claimed task, ordered by project ID: the per-project breakdown of `GET /v1/projects/{project_id}/orchestrations/queue/stats`. A project-scoped caller sees its own projects only. Guarded by `orchestrations:GetQueueStats`.",
17814
+ moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
17815
+ httpMethod: "get",
17816
+ pathParams: ["project_id"],
17817
+ queryParams: ["limit", "offset"],
17818
+ headerParams: [],
17819
+ cookieParams: [],
17820
+ flags: [
17821
+ {
17822
+ "name": "project_id",
17823
+ "description": "Project public ID (proj_ prefix).",
17824
+ "required": true,
17825
+ "type": "string",
17826
+ "in": "path"
17827
+ },
17828
+ {
17829
+ "name": "limit",
17830
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
17831
+ "required": false,
17832
+ "type": "integer",
17833
+ "in": "query"
17834
+ },
17835
+ {
17836
+ "name": "offset",
17837
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
17838
+ "required": false,
17839
+ "type": "integer",
17840
+ "in": "query"
17841
+ }
17842
+ ]
17843
+ },
17550
17844
  "get-orchestration": {
17551
17845
  serviceClass: "Orchestrations",
17552
17846
  operationId: "getOrchestration",
@@ -17719,14 +18013,14 @@ const routes = {
17719
18013
  },
17720
18014
  {
17721
18015
  "name": "limit",
17722
- "description": "Maximum number of results to return",
18016
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
17723
18017
  "required": false,
17724
18018
  "type": "integer",
17725
18019
  "in": "query"
17726
18020
  },
17727
18021
  {
17728
18022
  "name": "offset",
17729
- "description": "Number of results to skip",
18023
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
17730
18024
  "required": false,
17731
18025
  "type": "integer",
17732
18026
  "in": "query"
@@ -17871,14 +18165,14 @@ const routes = {
17871
18165
  },
17872
18166
  {
17873
18167
  "name": "limit",
17874
- "description": "Maximum number of results to return",
18168
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
17875
18169
  "required": false,
17876
18170
  "type": "integer",
17877
18171
  "in": "query"
17878
18172
  },
17879
18173
  {
17880
18174
  "name": "offset",
17881
- "description": "Number of results to skip",
18175
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
17882
18176
  "required": false,
17883
18177
  "type": "integer",
17884
18178
  "in": "query"
@@ -18094,6 +18388,47 @@ const routes = {
18094
18388
  "in": "path"
18095
18389
  }]
18096
18390
  },
18391
+ "list-orchestration-run-node-executions": {
18392
+ serviceClass: "Orchestrations",
18393
+ operationId: "listOrchestrationRunNodeExecutions",
18394
+ description: "The run's per-node execution records, oldest first: one per node attempt, retries and skipped nodes included. Each captures the resolved input, output, status and error of that attempt — the orchestration analogue of an LLM trace. Reading them is reading the run (`orchestrations:GetRun`).",
18395
+ moduleDocsUrl: "https://naturali.ai/docs/modules/orchestrations",
18396
+ httpMethod: "get",
18397
+ pathParams: ["project_id", "orchestration_run_id"],
18398
+ queryParams: ["limit", "offset"],
18399
+ headerParams: [],
18400
+ cookieParams: [],
18401
+ flags: [
18402
+ {
18403
+ "name": "project_id",
18404
+ "description": "Project public ID (proj_ prefix).",
18405
+ "required": true,
18406
+ "type": "string",
18407
+ "in": "path"
18408
+ },
18409
+ {
18410
+ "name": "orchestration_run_id",
18411
+ "description": "Public ID of the run (run_...)",
18412
+ "required": true,
18413
+ "type": "string",
18414
+ "in": "path"
18415
+ },
18416
+ {
18417
+ "name": "limit",
18418
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
18419
+ "required": false,
18420
+ "type": "integer",
18421
+ "in": "query"
18422
+ },
18423
+ {
18424
+ "name": "offset",
18425
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
18426
+ "required": false,
18427
+ "type": "integer",
18428
+ "in": "query"
18429
+ }
18430
+ ]
18431
+ },
18097
18432
  "list-projects": {
18098
18433
  serviceClass: "Projects",
18099
18434
  operationId: "listProjects",
@@ -18877,14 +19212,14 @@ const routes = {
18877
19212
  },
18878
19213
  {
18879
19214
  "name": "limit",
18880
- "description": "Maximum number of results to return",
19215
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
18881
19216
  "required": false,
18882
19217
  "type": "integer",
18883
19218
  "in": "query"
18884
19219
  },
18885
19220
  {
18886
19221
  "name": "offset",
18887
- "description": "Number of results to skip",
19222
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
18888
19223
  "required": false,
18889
19224
  "type": "integer",
18890
19225
  "in": "query"
@@ -19083,14 +19418,14 @@ const routes = {
19083
19418
  },
19084
19419
  {
19085
19420
  "name": "limit",
19086
- "description": "Number of results per page",
19421
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
19087
19422
  "required": false,
19088
19423
  "type": "integer",
19089
19424
  "in": "query"
19090
19425
  },
19091
19426
  {
19092
19427
  "name": "offset",
19093
- "description": "Number of results to skip",
19428
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
19094
19429
  "required": false,
19095
19430
  "type": "integer",
19096
19431
  "in": "query"
@@ -19285,14 +19620,14 @@ const routes = {
19285
19620
  },
19286
19621
  {
19287
19622
  "name": "limit",
19288
- "description": "",
19623
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
19289
19624
  "required": false,
19290
19625
  "type": "integer",
19291
19626
  "in": "query"
19292
19627
  },
19293
19628
  {
19294
19629
  "name": "offset",
19295
- "description": "",
19630
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
19296
19631
  "required": false,
19297
19632
  "type": "integer",
19298
19633
  "in": "query"
@@ -19725,14 +20060,14 @@ const routes = {
19725
20060
  },
19726
20061
  {
19727
20062
  "name": "limit",
19728
- "description": "",
20063
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
19729
20064
  "required": false,
19730
20065
  "type": "integer",
19731
20066
  "in": "query"
19732
20067
  },
19733
20068
  {
19734
20069
  "name": "offset",
19735
- "description": "",
20070
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
19736
20071
  "required": false,
19737
20072
  "type": "integer",
19738
20073
  "in": "query"
@@ -19894,14 +20229,14 @@ const routes = {
19894
20229
  },
19895
20230
  {
19896
20231
  "name": "limit",
19897
- "description": "Maximum number of results to return",
20232
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
19898
20233
  "required": false,
19899
20234
  "type": "integer",
19900
20235
  "in": "query"
19901
20236
  },
19902
20237
  {
19903
20238
  "name": "offset",
19904
- "description": "Number of results to skip",
20239
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
19905
20240
  "required": false,
19906
20241
  "type": "integer",
19907
20242
  "in": "query"
@@ -20186,22 +20521,39 @@ const routes = {
20186
20521
  moduleDocsUrl: "https://naturali.ai/docs/modules/tasks",
20187
20522
  httpMethod: "get",
20188
20523
  pathParams: ["project_id", "task_id"],
20189
- queryParams: [],
20524
+ queryParams: ["limit", "offset"],
20190
20525
  headerParams: [],
20191
20526
  cookieParams: [],
20192
- flags: [{
20193
- "name": "project_id",
20194
- "description": "Project public ID (proj_ prefix).",
20195
- "required": true,
20196
- "type": "string",
20197
- "in": "path"
20198
- }, {
20199
- "name": "task_id",
20200
- "description": "",
20201
- "required": true,
20202
- "type": "string",
20203
- "in": "path"
20204
- }]
20527
+ flags: [
20528
+ {
20529
+ "name": "project_id",
20530
+ "description": "Project public ID (proj_ prefix).",
20531
+ "required": true,
20532
+ "type": "string",
20533
+ "in": "path"
20534
+ },
20535
+ {
20536
+ "name": "task_id",
20537
+ "description": "",
20538
+ "required": true,
20539
+ "type": "string",
20540
+ "in": "path"
20541
+ },
20542
+ {
20543
+ "name": "limit",
20544
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
20545
+ "required": false,
20546
+ "type": "integer",
20547
+ "in": "query"
20548
+ },
20549
+ {
20550
+ "name": "offset",
20551
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
20552
+ "required": false,
20553
+ "type": "integer",
20554
+ "in": "query"
20555
+ }
20556
+ ]
20205
20557
  },
20206
20558
  "list-tools": {
20207
20559
  serviceClass: "Tools",
@@ -20223,14 +20575,14 @@ const routes = {
20223
20575
  },
20224
20576
  {
20225
20577
  "name": "limit",
20226
- "description": "Maximum number of results to return",
20578
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
20227
20579
  "required": false,
20228
20580
  "type": "integer",
20229
20581
  "in": "query"
20230
20582
  },
20231
20583
  {
20232
20584
  "name": "offset",
20233
- "description": "Number of results to skip",
20585
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
20234
20586
  "required": false,
20235
20587
  "type": "integer",
20236
20588
  "in": "query"
@@ -20579,7 +20931,11 @@ const routes = {
20579
20931
  moduleDocsUrl: "https://naturali.ai/docs/modules/traces",
20580
20932
  httpMethod: "get",
20581
20933
  pathParams: ["project_id"],
20582
- queryParams: ["limit", "offset"],
20934
+ queryParams: [
20935
+ "parent_trace_id",
20936
+ "limit",
20937
+ "offset"
20938
+ ],
20583
20939
  headerParams: [],
20584
20940
  cookieParams: [],
20585
20941
  flags: [
@@ -20590,16 +20946,23 @@ const routes = {
20590
20946
  "type": "string",
20591
20947
  "in": "path"
20592
20948
  },
20949
+ {
20950
+ "name": "parent_trace_id",
20951
+ "description": "Only the direct children of this trace. A trace naming nothing the caller can read matches nothing rather than widening the listing.",
20952
+ "required": false,
20953
+ "type": "string",
20954
+ "in": "query"
20955
+ },
20593
20956
  {
20594
20957
  "name": "limit",
20595
- "description": "Maximum number of results to return",
20958
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
20596
20959
  "required": false,
20597
20960
  "type": "integer",
20598
20961
  "in": "query"
20599
20962
  },
20600
20963
  {
20601
20964
  "name": "offset",
20602
- "description": "Number of results to skip",
20965
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
20603
20966
  "required": false,
20604
20967
  "type": "integer",
20605
20968
  "in": "query"
@@ -20633,36 +20996,26 @@ const routes = {
20633
20996
  "get-trace-tree": {
20634
20997
  serviceClass: "Traces",
20635
20998
  operationId: "getTraceTree",
20636
- 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.",
20999
+ 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. A node's generations are listed by `GET /v1/projects/{project_id}/generations?trace_id=`, and a node's direct children page by `GET /v1/projects/{project_id}/traces?parent_trace_id=`.",
20637
21000
  moduleDocsUrl: "https://naturali.ai/docs/modules/traces",
20638
21001
  httpMethod: "get",
20639
21002
  pathParams: ["project_id", "trace_id"],
20640
- queryParams: ["include"],
21003
+ queryParams: [],
20641
21004
  headerParams: [],
20642
21005
  cookieParams: [],
20643
- flags: [
20644
- {
20645
- "name": "project_id",
20646
- "description": "Project public ID (proj_ prefix).",
20647
- "required": true,
20648
- "type": "string",
20649
- "in": "path"
20650
- },
20651
- {
20652
- "name": "trace_id",
20653
- "description": "Public ID of any trace in the tree (root or child)",
20654
- "required": true,
20655
- "type": "string",
20656
- "in": "path"
20657
- },
20658
- {
20659
- "name": "include",
20660
- "description": "Comma-separated list of related resources to embed on each node. Supported value: `generations` — attaches all generations that belong to each trace node (including sub-agent generations linked via `initiator_generation_id`).\n",
20661
- "required": false,
20662
- "type": "string",
20663
- "in": "query"
20664
- }
20665
- ]
21006
+ flags: [{
21007
+ "name": "project_id",
21008
+ "description": "Project public ID (proj_ prefix).",
21009
+ "required": true,
21010
+ "type": "string",
21011
+ "in": "path"
21012
+ }, {
21013
+ "name": "trace_id",
21014
+ "description": "Public ID of any trace in the tree (root or child)",
21015
+ "required": true,
21016
+ "type": "string",
21017
+ "in": "path"
21018
+ }]
20666
21019
  },
20667
21020
  "purge-trace-content": {
20668
21021
  serviceClass: "Traces",
@@ -20727,14 +21080,14 @@ const routes = {
20727
21080
  },
20728
21081
  {
20729
21082
  "name": "limit",
20730
- "description": "Maximum number of results to return",
21083
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
20731
21084
  "required": false,
20732
21085
  "type": "integer",
20733
21086
  "in": "query"
20734
21087
  },
20735
21088
  {
20736
21089
  "name": "offset",
20737
- "description": "Number of results to skip",
21090
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
20738
21091
  "required": false,
20739
21092
  "type": "integer",
20740
21093
  "in": "query"
@@ -21117,14 +21470,14 @@ const routes = {
21117
21470
  },
21118
21471
  {
21119
21472
  "name": "limit",
21120
- "description": "",
21473
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
21121
21474
  "required": false,
21122
21475
  "type": "integer",
21123
21476
  "in": "query"
21124
21477
  },
21125
21478
  {
21126
21479
  "name": "offset",
21127
- "description": "",
21480
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
21128
21481
  "required": false,
21129
21482
  "type": "integer",
21130
21483
  "in": "query"
@@ -21206,7 +21559,7 @@ const routes = {
21206
21559
  "get-current-user-usage": {
21207
21560
  serviceClass: "Users",
21208
21561
  operationId: "getCurrentUserUsage",
21209
- 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.",
21562
+ description: "What the account uses this billing cycle, per project and against its plan: runs, indexed storage, and the counts the plan caps — projects, active channels and triggers. 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 reads the runtime several times per project. Poll it on the order of minutes, not seconds. A figure that could not be read is `null` rather than failing the request.",
21210
21563
  moduleDocsUrl: "https://naturali.ai/docs/modules/users",
21211
21564
  httpMethod: "get",
21212
21565
  pathParams: [],
@@ -21215,6 +21568,44 @@ const routes = {
21215
21568
  cookieParams: [],
21216
21569
  flags: []
21217
21570
  },
21571
+ "list-current-user-credits": {
21572
+ serviceClass: "Users",
21573
+ operationId: "listCurrentUserCredits",
21574
+ description: "A cursor page of the account's model-credit ledger, newest first, with the balance the whole ledger sums to. The ledger is append-only: a correction is a new line, never an edit. A `usage` line is managed model spend, written as the meter is reconciled every 15 minutes per project, so the ledger grows by a line per project per window that spent anything. Filter with `kind`. The other side of a marketplace line is another account's project, so a `fee` or `earned` line names the cycle it settles, not that project.",
21575
+ moduleDocsUrl: "https://naturali.ai/docs/modules/users",
21576
+ httpMethod: "get",
21577
+ pathParams: [],
21578
+ queryParams: [
21579
+ "kind",
21580
+ "limit",
21581
+ "cursor"
21582
+ ],
21583
+ headerParams: [],
21584
+ cookieParams: [],
21585
+ flags: [
21586
+ {
21587
+ "name": "kind",
21588
+ "description": "Only lines of this kind.",
21589
+ "required": false,
21590
+ "type": "string",
21591
+ "in": "query"
21592
+ },
21593
+ {
21594
+ "name": "limit",
21595
+ "description": "Maximum items per page — an integer from 1 to 100 (default 20).",
21596
+ "required": false,
21597
+ "type": "integer",
21598
+ "in": "query"
21599
+ },
21600
+ {
21601
+ "name": "cursor",
21602
+ "description": "The `next_cursor` of the previous page.",
21603
+ "required": false,
21604
+ "type": "string",
21605
+ "in": "query"
21606
+ }
21607
+ ]
21608
+ },
21218
21609
  "list-current-user-stops": {
21219
21610
  serviceClass: "Users",
21220
21611
  operationId: "listCurrentUserStops",
@@ -21799,14 +22190,14 @@ const routes = {
21799
22190
  },
21800
22191
  {
21801
22192
  "name": "limit",
21802
- "description": "Maximum number of results to return",
22193
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
21803
22194
  "required": false,
21804
22195
  "type": "integer",
21805
22196
  "in": "query"
21806
22197
  },
21807
22198
  {
21808
22199
  "name": "offset",
21809
- "description": "Number of results to skip",
22200
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
21810
22201
  "required": false,
21811
22202
  "type": "integer",
21812
22203
  "in": "query"
@@ -22033,14 +22424,14 @@ const routes = {
22033
22424
  },
22034
22425
  {
22035
22426
  "name": "limit",
22036
- "description": "Maximum number of results to return",
22427
+ "description": "Results per page. Above the maximum it is clamped, and `limit` in the response reports the page served; below 1 or not an integer it is `400 VALIDATION_FAILED`.",
22037
22428
  "required": false,
22038
22429
  "type": "integer",
22039
22430
  "in": "query"
22040
22431
  },
22041
22432
  {
22042
22433
  "name": "offset",
22043
- "description": "Number of results to skip",
22434
+ "description": "Results to skip. Negative or not an integer it is `400 VALIDATION_FAILED`.",
22044
22435
  "required": false,
22045
22436
  "type": "integer",
22046
22437
  "in": "query"