@naturali/sdk 0.226.2 → 0.226.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -451,9 +451,21 @@ type TagBag = {
451
451
  [key: string]: string;
452
452
  };
453
453
  type Address = ChannelAction & {
454
+ /**
455
+ * Public address ID.
456
+ */
454
457
  id: string;
458
+ /**
459
+ * The owning project.
460
+ */
455
461
  project_id: string;
462
+ /**
463
+ * The prefixed, self-describing channel identifier.
464
+ */
456
465
  identifier: string;
466
+ /**
467
+ * A human-friendly name, as the channel reported it.
468
+ */
457
469
  display_name: string | null;
458
470
  /**
459
471
  * The actor this address speaks as: the one bound with `actor_id`, else one naturali creates when it first needs it (null until then).
@@ -563,8 +575,17 @@ type User = {
563
575
  * Public user ID (user_ prefix).
564
576
  */
565
577
  id: string;
578
+ /**
579
+ * The address sign-in codes are sent to. Read-only here.
580
+ */
566
581
  email: string;
582
+ /**
583
+ * Display name.
584
+ */
567
585
  name?: string | null;
586
+ /**
587
+ * Whether the address has completed a sign-in code exchange.
588
+ */
568
589
  email_verified: boolean;
569
590
  /**
570
591
  * Roles on naturali itself, not on a project. Empty for almost every account; `admin` marks a naturali operator. Changed only through `PUT /v1/admin/users/{user_id}/roles`, by a caller holding the role that grants each one.
@@ -932,6 +953,9 @@ type ListingPricingNext = {
932
953
  * A listing, as its publisher reads it.
933
954
  */
934
955
  type Listing = {
956
+ /**
957
+ * Public listing ID (lst_ prefix).
958
+ */
935
959
  id: string;
936
960
  /**
937
961
  * The publishing project.
@@ -942,7 +966,13 @@ type Listing = {
942
966
  * The published tool or agent.
943
967
  */
944
968
  resource_id: string;
969
+ /**
970
+ * Up to 120 characters.
971
+ */
945
972
  title: string;
973
+ /**
974
+ * Up to 2,000 characters.
975
+ */
946
976
  description: string | null;
947
977
  /**
948
978
  * What an installing project is charged per call. Empty is free.
@@ -2069,6 +2099,9 @@ type ApiKeyRecord = {
2069
2099
  * Public API key ID (key_ prefix).
2070
2100
  */
2071
2101
  id: string;
2102
+ /**
2103
+ * Human-readable label.
2104
+ */
2072
2105
  name: string;
2073
2106
  /**
2074
2107
  * Leading characters of the raw key, for identification.
@@ -2276,7 +2309,7 @@ type AssistantGrant = {
2276
2309
  */
2277
2310
  display_name: string | null;
2278
2311
  /**
2279
- * What the Assistant may do on the account. Deliberately coarse: the consent for a specific dangerous action is asked for when it happens, through the approval queue, rather than pre-granted here.
2312
+ * What the Assistant may do on the account. Deliberately coarse: the consent for a specific dangerous action is asked for when it happens, through the approval queue, rather than pre-granted here. A link grants `read`.
2280
2313
  *
2281
2314
  */
2282
2315
  scopes: Array<AssistantScope>;
@@ -2581,16 +2614,34 @@ type ChannelPredicate = {
2581
2614
  type: string;
2582
2615
  };
2583
2616
  type ChannelKind = {
2617
+ /**
2618
+ * The channel kind.
2619
+ */
2584
2620
  kind: 'whatsapp' | 'discord';
2621
+ /**
2622
+ * This kind's conversational shapes.
2623
+ */
2585
2624
  surfaces: Array<ChannelSurface>;
2625
+ /**
2626
+ * The `match` keys a route on this kind can use.
2627
+ */
2586
2628
  predicates: Array<ChannelPredicate>;
2587
2629
  };
2588
2630
  type ChannelKindList = {
2589
2631
  data: Array<ChannelKind>;
2590
2632
  };
2591
2633
  type ChannelRoute = ChannelAction & {
2634
+ /**
2635
+ * Public route ID.
2636
+ */
2592
2637
  id: string;
2638
+ /**
2639
+ * The owning project.
2640
+ */
2593
2641
  project_id: string;
2642
+ /**
2643
+ * The channel this route belongs to.
2644
+ */
2594
2645
  channel_id: string;
2595
2646
  /**
2596
2647
  * The surface this route matches, or null for "any" (`GET /v1/channel-kinds`).
@@ -2658,7 +2709,13 @@ type Channel = {
2658
2709
  * Public channel ID (chan_ prefix).
2659
2710
  */
2660
2711
  id: string;
2712
+ /**
2713
+ * The owning project.
2714
+ */
2661
2715
  project_id: string;
2716
+ /**
2717
+ * The channel kind.
2718
+ */
2662
2719
  channel: 'whatsapp' | 'discord';
2663
2720
  status: 'active' | 'disabled';
2664
2721
  /**
@@ -5193,7 +5250,7 @@ type FormationResource = {
5193
5250
  */
5194
5251
  resource_type?: string;
5195
5252
  /**
5196
- * Public ID of the physical the runtime resource
5253
+ * Public ID of the physical resource
5197
5254
  */
5198
5255
  physical_resource_id?: string | null;
5199
5256
  /**
@@ -5559,7 +5616,7 @@ type Generation = {
5559
5616
  */
5560
5617
  node_attempt?: number | null;
5561
5618
  /**
5562
- * Agent config version that served this generation, resolved by the served-version resolver (see [agent versions](/docs/modules/agents#versions-and-releases)).
5619
+ * Agent config version that served this generation, resolved by the served-version resolver (see [agent versions](/docs/modules/agents#versioning-and-staged-rollout)).
5563
5620
  *
5564
5621
  */
5565
5622
  agent_version?: number | null;
@@ -5569,7 +5626,7 @@ type Generation = {
5569
5626
  */
5570
5627
  source?: string | null;
5571
5628
  /**
5572
- * What each [memory rule](/docs/modules/memories#memory-rules) bound to `generations.completed` wrote for this turn, keyed by the rule's id — a store may have several rules, and one flat pair of counts could not say which produced them. Absent when no rule fired. Rules bound to `conversation_messages.generated` are recorded only as memory assertions. The rows behind every count are listed by `GET /v1/projects/{project_id}/generations/{generation_id}/memory-assertions`, so the summary and what it summarizes can be reconciled.
5629
+ * What each [memory rule](/docs/modules/memory-rules) bound to `generations.completed` wrote for this turn, keyed by the rule's id — a store may have several rules, and one flat pair of counts could not say which produced them. Absent when no rule fired. Rules bound to `conversation_messages.generated` are recorded only as memory assertions. The rows behind every count are listed by `GET /v1/projects/{project_id}/generations/{generation_id}/memory-assertions`, so the summary and what it summarizes can be reconciled.
5573
5630
  *
5574
5631
  */
5575
5632
  extraction?: {
@@ -6157,11 +6214,17 @@ type IngestionRule = {
6157
6214
  * A listing installed in a project.
6158
6215
  */
6159
6216
  type Install = {
6217
+ /**
6218
+ * Public install ID (ins_ prefix).
6219
+ */
6160
6220
  id: string;
6161
6221
  /**
6162
6222
  * The installing project.
6163
6223
  */
6164
6224
  project_id: string;
6225
+ /**
6226
+ * The installed listing.
6227
+ */
6165
6228
  listing_id: string;
6166
6229
  resource_type: 'tool' | 'agent';
6167
6230
  /**
@@ -6485,6 +6548,9 @@ type McpServerAuthWrite = {
6485
6548
  */
6486
6549
  header_name?: string;
6487
6550
  };
6551
+ /**
6552
+ * Who may connect. See [Auth](/docs/modules/mcp-servers#auth).
6553
+ */
6488
6554
  type McpServerAuth = {
6489
6555
  type: 'oauth' | 'header' | 'none';
6490
6556
  mode?: 'members' | 'allowlist';
@@ -6505,6 +6571,9 @@ type McpServer = {
6505
6571
  * Public MCP server ID (mcps_ prefix).
6506
6572
  */
6507
6573
  id: string;
6574
+ /**
6575
+ * The owning project.
6576
+ */
6508
6577
  project_id: string;
6509
6578
  /**
6510
6579
  * Where MCP clients connect (Streamable HTTP). An `oauth` server answers `401` without a token, naming its OAuth protected resource metadata (RFC 9728) at `/.well-known/oauth-protected-resource/servers/{id}` on the same host, which names the issuer to sign in at.
@@ -6530,6 +6599,9 @@ type McpServer = {
6530
6599
  * `serverInfo.websiteUrl`.
6531
6600
  */
6532
6601
  website_url: string | null;
6602
+ /**
6603
+ * `tool_id`, `action`, and the `name` and `description` clients see; at most 100.
6604
+ */
6533
6605
  tools: Array<McpServerToolEntry>;
6534
6606
  /**
6535
6607
  * `list` lists every tool; `compact` serves `search`, `describe` and `call` over them.
@@ -6537,13 +6609,16 @@ type McpServer = {
6537
6609
  tool_mode: 'list' | 'compact';
6538
6610
  context_keys: McpContextKeys;
6539
6611
  auth: McpServerAuth;
6612
+ /**
6613
+ * Calls per UTC day. Required when `auth` is `none`.
6614
+ */
6540
6615
  daily_call_limit: number | null;
6541
6616
  created_at: Date;
6542
6617
  updated_at: Date;
6543
6618
  };
6544
6619
  type McpServerDetail = McpServer & {
6545
6620
  /**
6546
- * Items the server does not serve now: the tool is gone, or the action is no longer one of its available actions. `tools/list` leaves them out and a call to one is a tool error.
6621
+ * Items the server does not serve now: the tool is gone, or the action is no longer one of its available actions. `tools/list` leaves them out and a call to one is a tool error. Returned by get, create and update, not by list.
6547
6622
  */
6548
6623
  unavailable_tools: Array<McpServerToolEntry>;
6549
6624
  };
@@ -6582,8 +6657,17 @@ type McpServerKey = {
6582
6657
  * Public key ID (mcpk_ prefix).
6583
6658
  */
6584
6659
  id: string;
6660
+ /**
6661
+ * The owning project.
6662
+ */
6585
6663
  project_id: string;
6664
+ /**
6665
+ * The server the key opens.
6666
+ */
6586
6667
  mcp_server_id: string;
6668
+ /**
6669
+ * Label.
6670
+ */
6587
6671
  name: string | null;
6588
6672
  /**
6589
6673
  * The start of the key, to tell keys apart.
@@ -6594,7 +6678,7 @@ type McpServerKey = {
6594
6678
  };
6595
6679
  type McpServerKeyWithSecret = McpServerKey & {
6596
6680
  /**
6597
- * The key, returned only here.
6681
+ * The key (nat_mcp_ prefix), returned only by the create response.
6598
6682
  */
6599
6683
  key: string;
6600
6684
  };
@@ -6783,7 +6867,13 @@ type Model = {
6783
6867
  * Accepted input modalities.
6784
6868
  */
6785
6869
  input_modalities: Array<string>;
6870
+ /**
6871
+ * Modalities the model can produce.
6872
+ */
6786
6873
  output_modalities: Array<string>;
6874
+ /**
6875
+ * Whether the model supports streaming responses.
6876
+ */
6787
6877
  streaming: boolean;
6788
6878
  /**
6789
6879
  * Lifecycle status, from the provider's own listing at the last sync. A model the provider stops listing — or reports as legacy or deprecated — flips to `deprecated` and stays in the catalog, so a project already generating on it can see what happened to it. A `deprecated` model cannot be chosen as the `default_model` of a new `provider: "naturali"` provider.
@@ -8009,7 +8099,13 @@ type Project = {
8009
8099
  * Public project ID (proj_ prefix).
8010
8100
  */
8011
8101
  id: string;
8102
+ /**
8103
+ * Human-readable label.
8104
+ */
8012
8105
  name: string;
8106
+ /**
8107
+ * Lifecycle status.
8108
+ */
8013
8109
  status: 'active' | 'archived';
8014
8110
  role: ProjectRole;
8015
8111
  /**
@@ -9633,9 +9729,21 @@ type TopUp = {
9633
9729
  expires_at: Date | null;
9634
9730
  };
9635
9731
  type PaymentMethod = {
9732
+ /**
9733
+ * Card brand, such as `visa`.
9734
+ */
9636
9735
  brand: string;
9736
+ /**
9737
+ * Last four digits.
9738
+ */
9637
9739
  last4: string;
9740
+ /**
9741
+ * Expiry month.
9742
+ */
9638
9743
  exp_month: number;
9744
+ /**
9745
+ * Expiry year.
9746
+ */
9639
9747
  exp_year: number;
9640
9748
  /**
9641
9749
  * What the card is charged in, from its issuing country.
@@ -9661,6 +9769,9 @@ type PaymentMethodSetup = {
9661
9769
  expires_at: Date;
9662
9770
  };
9663
9771
  type AutoRecharge = {
9772
+ /**
9773
+ * Whether the balance is topped up automatically.
9774
+ */
9664
9775
  enabled: boolean;
9665
9776
  /**
9666
9777
  * What each recharge buys. `null` while off.
@@ -9718,7 +9829,7 @@ type UserPlanChange = {
9718
9829
  expires_at: Date | null;
9719
9830
  };
9720
9831
  /**
9721
- * A naturali event type. The set below is what this API emits — deliberately only the events it can itself cause, so no declared name is one that never fires. It grows as modules land.
9832
+ * A naturali event type. Its values are what this API emits — deliberately only the events it can itself cause, so no declared name is one that never fires. It grows as modules land.
9722
9833
  *
9723
9834
  */
9724
9835
  type EventType = 'conversation.started' | 'message.received' | 'generation.completed' | 'generation.failed' | 'usage.threshold_crossed' | 'project.paused' | 'project.resumed' | 'decision.completed' | 'decision.failed' | 'task.created' | 'task.transitioned' | 'task.closed' | 'task.migrated' | 'task.stalled' | 'task.paused' | 'task.resumed' | 'task.approval_failed' | 'task.automation_retrying' | 'task.automation_rejected' | 'task.automation_unrouted' | 'approval.created' | 'approval.approved' | 'approval.rejected' | 'approval.expired';
@@ -9761,9 +9872,12 @@ type Webhook = {
9761
9872
  * Public webhook ID (whk_ prefix).
9762
9873
  */
9763
9874
  id: string;
9875
+ /**
9876
+ * The owning project.
9877
+ */
9764
9878
  project_id: string;
9765
9879
  /**
9766
- * Where deliveries are POSTed.
9880
+ * Where deliveries are POSTed: an `https://` URL on a public internet host. A host that is, or resolves to, a loopback, private or link-local address is refused, at save and at each delivery; redirects are not followed.
9767
9881
  */
9768
9882
  url: string;
9769
9883
  events: EventSubscription;
@@ -9820,7 +9934,13 @@ type WebhookDelivery = {
9820
9934
  *
9821
9935
  */
9822
9936
  id: string;
9937
+ /**
9938
+ * The owning project.
9939
+ */
9823
9940
  project_id: string;
9941
+ /**
9942
+ * The endpoint the delivery is addressed to.
9943
+ */
9824
9944
  webhook_id: string;
9825
9945
  /**
9826
9946
  * The event's id; shared by every delivery and redelivery of it.
package/dist/index.d.mts CHANGED
@@ -451,9 +451,21 @@ type TagBag = {
451
451
  [key: string]: string;
452
452
  };
453
453
  type Address = ChannelAction & {
454
+ /**
455
+ * Public address ID.
456
+ */
454
457
  id: string;
458
+ /**
459
+ * The owning project.
460
+ */
455
461
  project_id: string;
462
+ /**
463
+ * The prefixed, self-describing channel identifier.
464
+ */
456
465
  identifier: string;
466
+ /**
467
+ * A human-friendly name, as the channel reported it.
468
+ */
457
469
  display_name: string | null;
458
470
  /**
459
471
  * The actor this address speaks as: the one bound with `actor_id`, else one naturali creates when it first needs it (null until then).
@@ -563,8 +575,17 @@ type User = {
563
575
  * Public user ID (user_ prefix).
564
576
  */
565
577
  id: string;
578
+ /**
579
+ * The address sign-in codes are sent to. Read-only here.
580
+ */
566
581
  email: string;
582
+ /**
583
+ * Display name.
584
+ */
567
585
  name?: string | null;
586
+ /**
587
+ * Whether the address has completed a sign-in code exchange.
588
+ */
568
589
  email_verified: boolean;
569
590
  /**
570
591
  * Roles on naturali itself, not on a project. Empty for almost every account; `admin` marks a naturali operator. Changed only through `PUT /v1/admin/users/{user_id}/roles`, by a caller holding the role that grants each one.
@@ -932,6 +953,9 @@ type ListingPricingNext = {
932
953
  * A listing, as its publisher reads it.
933
954
  */
934
955
  type Listing = {
956
+ /**
957
+ * Public listing ID (lst_ prefix).
958
+ */
935
959
  id: string;
936
960
  /**
937
961
  * The publishing project.
@@ -942,7 +966,13 @@ type Listing = {
942
966
  * The published tool or agent.
943
967
  */
944
968
  resource_id: string;
969
+ /**
970
+ * Up to 120 characters.
971
+ */
945
972
  title: string;
973
+ /**
974
+ * Up to 2,000 characters.
975
+ */
946
976
  description: string | null;
947
977
  /**
948
978
  * What an installing project is charged per call. Empty is free.
@@ -2069,6 +2099,9 @@ type ApiKeyRecord = {
2069
2099
  * Public API key ID (key_ prefix).
2070
2100
  */
2071
2101
  id: string;
2102
+ /**
2103
+ * Human-readable label.
2104
+ */
2072
2105
  name: string;
2073
2106
  /**
2074
2107
  * Leading characters of the raw key, for identification.
@@ -2276,7 +2309,7 @@ type AssistantGrant = {
2276
2309
  */
2277
2310
  display_name: string | null;
2278
2311
  /**
2279
- * What the Assistant may do on the account. Deliberately coarse: the consent for a specific dangerous action is asked for when it happens, through the approval queue, rather than pre-granted here.
2312
+ * What the Assistant may do on the account. Deliberately coarse: the consent for a specific dangerous action is asked for when it happens, through the approval queue, rather than pre-granted here. A link grants `read`.
2280
2313
  *
2281
2314
  */
2282
2315
  scopes: Array<AssistantScope>;
@@ -2581,16 +2614,34 @@ type ChannelPredicate = {
2581
2614
  type: string;
2582
2615
  };
2583
2616
  type ChannelKind = {
2617
+ /**
2618
+ * The channel kind.
2619
+ */
2584
2620
  kind: 'whatsapp' | 'discord';
2621
+ /**
2622
+ * This kind's conversational shapes.
2623
+ */
2585
2624
  surfaces: Array<ChannelSurface>;
2625
+ /**
2626
+ * The `match` keys a route on this kind can use.
2627
+ */
2586
2628
  predicates: Array<ChannelPredicate>;
2587
2629
  };
2588
2630
  type ChannelKindList = {
2589
2631
  data: Array<ChannelKind>;
2590
2632
  };
2591
2633
  type ChannelRoute = ChannelAction & {
2634
+ /**
2635
+ * Public route ID.
2636
+ */
2592
2637
  id: string;
2638
+ /**
2639
+ * The owning project.
2640
+ */
2593
2641
  project_id: string;
2642
+ /**
2643
+ * The channel this route belongs to.
2644
+ */
2594
2645
  channel_id: string;
2595
2646
  /**
2596
2647
  * The surface this route matches, or null for "any" (`GET /v1/channel-kinds`).
@@ -2658,7 +2709,13 @@ type Channel = {
2658
2709
  * Public channel ID (chan_ prefix).
2659
2710
  */
2660
2711
  id: string;
2712
+ /**
2713
+ * The owning project.
2714
+ */
2661
2715
  project_id: string;
2716
+ /**
2717
+ * The channel kind.
2718
+ */
2662
2719
  channel: 'whatsapp' | 'discord';
2663
2720
  status: 'active' | 'disabled';
2664
2721
  /**
@@ -5193,7 +5250,7 @@ type FormationResource = {
5193
5250
  */
5194
5251
  resource_type?: string;
5195
5252
  /**
5196
- * Public ID of the physical the runtime resource
5253
+ * Public ID of the physical resource
5197
5254
  */
5198
5255
  physical_resource_id?: string | null;
5199
5256
  /**
@@ -5559,7 +5616,7 @@ type Generation = {
5559
5616
  */
5560
5617
  node_attempt?: number | null;
5561
5618
  /**
5562
- * Agent config version that served this generation, resolved by the served-version resolver (see [agent versions](/docs/modules/agents#versions-and-releases)).
5619
+ * Agent config version that served this generation, resolved by the served-version resolver (see [agent versions](/docs/modules/agents#versioning-and-staged-rollout)).
5563
5620
  *
5564
5621
  */
5565
5622
  agent_version?: number | null;
@@ -5569,7 +5626,7 @@ type Generation = {
5569
5626
  */
5570
5627
  source?: string | null;
5571
5628
  /**
5572
- * What each [memory rule](/docs/modules/memories#memory-rules) bound to `generations.completed` wrote for this turn, keyed by the rule's id — a store may have several rules, and one flat pair of counts could not say which produced them. Absent when no rule fired. Rules bound to `conversation_messages.generated` are recorded only as memory assertions. The rows behind every count are listed by `GET /v1/projects/{project_id}/generations/{generation_id}/memory-assertions`, so the summary and what it summarizes can be reconciled.
5629
+ * What each [memory rule](/docs/modules/memory-rules) bound to `generations.completed` wrote for this turn, keyed by the rule's id — a store may have several rules, and one flat pair of counts could not say which produced them. Absent when no rule fired. Rules bound to `conversation_messages.generated` are recorded only as memory assertions. The rows behind every count are listed by `GET /v1/projects/{project_id}/generations/{generation_id}/memory-assertions`, so the summary and what it summarizes can be reconciled.
5573
5630
  *
5574
5631
  */
5575
5632
  extraction?: {
@@ -6157,11 +6214,17 @@ type IngestionRule = {
6157
6214
  * A listing installed in a project.
6158
6215
  */
6159
6216
  type Install = {
6217
+ /**
6218
+ * Public install ID (ins_ prefix).
6219
+ */
6160
6220
  id: string;
6161
6221
  /**
6162
6222
  * The installing project.
6163
6223
  */
6164
6224
  project_id: string;
6225
+ /**
6226
+ * The installed listing.
6227
+ */
6165
6228
  listing_id: string;
6166
6229
  resource_type: 'tool' | 'agent';
6167
6230
  /**
@@ -6485,6 +6548,9 @@ type McpServerAuthWrite = {
6485
6548
  */
6486
6549
  header_name?: string;
6487
6550
  };
6551
+ /**
6552
+ * Who may connect. See [Auth](/docs/modules/mcp-servers#auth).
6553
+ */
6488
6554
  type McpServerAuth = {
6489
6555
  type: 'oauth' | 'header' | 'none';
6490
6556
  mode?: 'members' | 'allowlist';
@@ -6505,6 +6571,9 @@ type McpServer = {
6505
6571
  * Public MCP server ID (mcps_ prefix).
6506
6572
  */
6507
6573
  id: string;
6574
+ /**
6575
+ * The owning project.
6576
+ */
6508
6577
  project_id: string;
6509
6578
  /**
6510
6579
  * Where MCP clients connect (Streamable HTTP). An `oauth` server answers `401` without a token, naming its OAuth protected resource metadata (RFC 9728) at `/.well-known/oauth-protected-resource/servers/{id}` on the same host, which names the issuer to sign in at.
@@ -6530,6 +6599,9 @@ type McpServer = {
6530
6599
  * `serverInfo.websiteUrl`.
6531
6600
  */
6532
6601
  website_url: string | null;
6602
+ /**
6603
+ * `tool_id`, `action`, and the `name` and `description` clients see; at most 100.
6604
+ */
6533
6605
  tools: Array<McpServerToolEntry>;
6534
6606
  /**
6535
6607
  * `list` lists every tool; `compact` serves `search`, `describe` and `call` over them.
@@ -6537,13 +6609,16 @@ type McpServer = {
6537
6609
  tool_mode: 'list' | 'compact';
6538
6610
  context_keys: McpContextKeys;
6539
6611
  auth: McpServerAuth;
6612
+ /**
6613
+ * Calls per UTC day. Required when `auth` is `none`.
6614
+ */
6540
6615
  daily_call_limit: number | null;
6541
6616
  created_at: Date;
6542
6617
  updated_at: Date;
6543
6618
  };
6544
6619
  type McpServerDetail = McpServer & {
6545
6620
  /**
6546
- * Items the server does not serve now: the tool is gone, or the action is no longer one of its available actions. `tools/list` leaves them out and a call to one is a tool error.
6621
+ * Items the server does not serve now: the tool is gone, or the action is no longer one of its available actions. `tools/list` leaves them out and a call to one is a tool error. Returned by get, create and update, not by list.
6547
6622
  */
6548
6623
  unavailable_tools: Array<McpServerToolEntry>;
6549
6624
  };
@@ -6582,8 +6657,17 @@ type McpServerKey = {
6582
6657
  * Public key ID (mcpk_ prefix).
6583
6658
  */
6584
6659
  id: string;
6660
+ /**
6661
+ * The owning project.
6662
+ */
6585
6663
  project_id: string;
6664
+ /**
6665
+ * The server the key opens.
6666
+ */
6586
6667
  mcp_server_id: string;
6668
+ /**
6669
+ * Label.
6670
+ */
6587
6671
  name: string | null;
6588
6672
  /**
6589
6673
  * The start of the key, to tell keys apart.
@@ -6594,7 +6678,7 @@ type McpServerKey = {
6594
6678
  };
6595
6679
  type McpServerKeyWithSecret = McpServerKey & {
6596
6680
  /**
6597
- * The key, returned only here.
6681
+ * The key (nat_mcp_ prefix), returned only by the create response.
6598
6682
  */
6599
6683
  key: string;
6600
6684
  };
@@ -6783,7 +6867,13 @@ type Model = {
6783
6867
  * Accepted input modalities.
6784
6868
  */
6785
6869
  input_modalities: Array<string>;
6870
+ /**
6871
+ * Modalities the model can produce.
6872
+ */
6786
6873
  output_modalities: Array<string>;
6874
+ /**
6875
+ * Whether the model supports streaming responses.
6876
+ */
6787
6877
  streaming: boolean;
6788
6878
  /**
6789
6879
  * Lifecycle status, from the provider's own listing at the last sync. A model the provider stops listing — or reports as legacy or deprecated — flips to `deprecated` and stays in the catalog, so a project already generating on it can see what happened to it. A `deprecated` model cannot be chosen as the `default_model` of a new `provider: "naturali"` provider.
@@ -8009,7 +8099,13 @@ type Project = {
8009
8099
  * Public project ID (proj_ prefix).
8010
8100
  */
8011
8101
  id: string;
8102
+ /**
8103
+ * Human-readable label.
8104
+ */
8012
8105
  name: string;
8106
+ /**
8107
+ * Lifecycle status.
8108
+ */
8013
8109
  status: 'active' | 'archived';
8014
8110
  role: ProjectRole;
8015
8111
  /**
@@ -9633,9 +9729,21 @@ type TopUp = {
9633
9729
  expires_at: Date | null;
9634
9730
  };
9635
9731
  type PaymentMethod = {
9732
+ /**
9733
+ * Card brand, such as `visa`.
9734
+ */
9636
9735
  brand: string;
9736
+ /**
9737
+ * Last four digits.
9738
+ */
9637
9739
  last4: string;
9740
+ /**
9741
+ * Expiry month.
9742
+ */
9638
9743
  exp_month: number;
9744
+ /**
9745
+ * Expiry year.
9746
+ */
9639
9747
  exp_year: number;
9640
9748
  /**
9641
9749
  * What the card is charged in, from its issuing country.
@@ -9661,6 +9769,9 @@ type PaymentMethodSetup = {
9661
9769
  expires_at: Date;
9662
9770
  };
9663
9771
  type AutoRecharge = {
9772
+ /**
9773
+ * Whether the balance is topped up automatically.
9774
+ */
9664
9775
  enabled: boolean;
9665
9776
  /**
9666
9777
  * What each recharge buys. `null` while off.
@@ -9718,7 +9829,7 @@ type UserPlanChange = {
9718
9829
  expires_at: Date | null;
9719
9830
  };
9720
9831
  /**
9721
- * A naturali event type. The set below is what this API emits — deliberately only the events it can itself cause, so no declared name is one that never fires. It grows as modules land.
9832
+ * A naturali event type. Its values are what this API emits — deliberately only the events it can itself cause, so no declared name is one that never fires. It grows as modules land.
9722
9833
  *
9723
9834
  */
9724
9835
  type EventType = 'conversation.started' | 'message.received' | 'generation.completed' | 'generation.failed' | 'usage.threshold_crossed' | 'project.paused' | 'project.resumed' | 'decision.completed' | 'decision.failed' | 'task.created' | 'task.transitioned' | 'task.closed' | 'task.migrated' | 'task.stalled' | 'task.paused' | 'task.resumed' | 'task.approval_failed' | 'task.automation_retrying' | 'task.automation_rejected' | 'task.automation_unrouted' | 'approval.created' | 'approval.approved' | 'approval.rejected' | 'approval.expired';
@@ -9761,9 +9872,12 @@ type Webhook = {
9761
9872
  * Public webhook ID (whk_ prefix).
9762
9873
  */
9763
9874
  id: string;
9875
+ /**
9876
+ * The owning project.
9877
+ */
9764
9878
  project_id: string;
9765
9879
  /**
9766
- * Where deliveries are POSTed.
9880
+ * Where deliveries are POSTed: an `https://` URL on a public internet host. A host that is, or resolves to, a loopback, private or link-local address is refused, at save and at each delivery; redirects are not followed.
9767
9881
  */
9768
9882
  url: string;
9769
9883
  events: EventSubscription;
@@ -9820,7 +9934,13 @@ type WebhookDelivery = {
9820
9934
  *
9821
9935
  */
9822
9936
  id: string;
9937
+ /**
9938
+ * The owning project.
9939
+ */
9823
9940
  project_id: string;
9941
+ /**
9942
+ * The endpoint the delivery is addressed to.
9943
+ */
9824
9944
  webhook_id: string;
9825
9945
  /**
9826
9946
  * The event's id; shared by every delivery and redelivery of it.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naturali/sdk",
3
- "version": "0.226.2",
3
+ "version": "0.226.3",
4
4
  "description": "TypeScript SDK for the naturali.ai API, generated from its OpenAPI specs",
5
5
  "keywords": [
6
6
  "naturali",
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "devDependencies": {
40
40
  "@hey-api/openapi-ts": "^0.99.0",
41
- "@naturali/api": "0.226.2",
41
+ "@naturali/api": "0.226.3",
42
42
  "@ttoss/openapi-codegen": "^0.10.0",
43
43
  "@types/node": "^26.5.1",
44
44
  "tsdown": "^0.23.0",