@swiss-ai-hub/web 0.319.0 → 0.321.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 (50) hide show
  1. package/{pages/auth/login.vue → components/Auth/LoginPanel.vue} +3 -33
  2. package/components/FormKit/AgentSelector.vue +20 -7
  3. package/components/FormKit/CronInput.vue +208 -0
  4. package/components/FormKit/Repeater.vue +1 -4
  5. package/components/FormKit/VectorStoreInput.vue +43 -6
  6. package/components/Knowledge/Database/CreateModal.vue +315 -0
  7. package/components/Knowledge/Database/EmptyCard.vue +34 -0
  8. package/components/Knowledge/DeleteConfirmModal.vue +87 -0
  9. package/components/Knowledge/Document/List.vue +20 -9
  10. package/components/Knowledge/Namespace/Card.vue +18 -0
  11. package/components/Knowledge/Namespace/CreateModal.vue +11 -3
  12. package/components/Role/AccessCapabilities.vue +4 -4
  13. package/components/Role/AccessCapabilityGroup.vue +22 -6
  14. package/components/Role/AccessRulesEditor.vue +15 -12
  15. package/composables/app/useAppVersion.ts +37 -20
  16. package/composables/auth/useAuth.ts +3 -11
  17. package/composables/document/useCreateDatabase.ts +21 -0
  18. package/composables/document/useDeleteDatabase.ts +29 -0
  19. package/composables/document/useDeleteDocument.ts +1 -1
  20. package/composables/document/useDeleteDocuments.ts +1 -1
  21. package/composables/document/useDeleteNamespace.ts +30 -0
  22. package/composables/document/useIngestors.ts +23 -0
  23. package/composables/document/useScheduledDeletions.ts +16 -8
  24. package/composables/form/useCreateInstanceForm.ts +2 -2
  25. package/composables/form/useFormKitTransform.ts +44 -15
  26. package/formkit.config.ts +57 -3
  27. package/i18n/locales/de.yaml +84 -5
  28. package/i18n/locales/en.yaml +80 -3
  29. package/i18n/locales/fr.yaml +82 -3
  30. package/i18n/locales/it.yaml +84 -3
  31. package/middleware/agent-admin.ts +31 -0
  32. package/middleware/auth.global.ts +34 -16
  33. package/package.json +1 -1
  34. package/pages/[tenant]/service/agents.vue +3 -0
  35. package/pages/[tenant]/service/knowledge/[db]/[namespace]/[document_id].vue +12 -5
  36. package/pages/[tenant]/service/knowledge.vue +138 -0
  37. package/pages/auth/login/[idp].vue +57 -0
  38. package/pages/auth/login/index.vue +46 -0
  39. package/plugins/0.runtime-config.client.ts +5 -0
  40. package/plugins/oidc-client.ts +1 -1
  41. package/sdk/client/client/client.gen.ts +1 -3
  42. package/sdk/client/client/types.gen.ts +7 -13
  43. package/sdk/client/client/utils.gen.ts +1 -2
  44. package/sdk/client/core/queryKeySerializer.gen.ts +1 -6
  45. package/sdk/client/core/types.gen.ts +5 -3
  46. package/sdk/client/index.ts +47 -4
  47. package/sdk/client/schemas.gen.ts +1787 -780
  48. package/sdk/client/sdk.gen.ts +231 -1
  49. package/sdk/client/types.gen.ts +1103 -226
  50. package/plugins/keycloak-client.ts +0 -41
@@ -385,7 +385,7 @@ export type AgentClassDto = {
385
385
  /**
386
386
  * Validation specification including the JSON schema for form submissions. Used by ModelCreationService to create Pydantic models for validation.
387
387
  */
388
- agent_config_specs: AgentConfigSpecs;
388
+ agent_config_specs: ConfigSpecs;
389
389
  /**
390
390
  * Start Events
391
391
  *
@@ -518,35 +518,6 @@ export type AgentConfigDto = {
518
518
  > | null;
519
519
  };
520
520
 
521
- /**
522
- * AgentConfigSpecs
523
- *
524
- * Validation specification for agent configuration form submissions.
525
- *
526
- * Contains ONLY the agent class identifier and JSON schema for validation.
527
- * Instance-level fields (name, description, icon, agent_id) are stored
528
- * separately in AgentConfigEntityDocument and provided by the Agent class.
529
- *
530
- * The JSON schema is generated from the agent's configurable fields via
531
- * to_configurable_submission_model() and is used to validate form submissions.
532
- */
533
- export type AgentConfigSpecs = {
534
- /**
535
- * Agent Class
536
- *
537
- * The class name of the agent.
538
- */
539
- agent_class: string;
540
- /**
541
- * Agent Config Schema
542
- *
543
- * JSON schema for validating form submissions. Generated from the agent's configurable fields via to_configurable_submission_model().
544
- */
545
- agent_config_schema?: {
546
- [key: string]: unknown;
547
- };
548
- };
549
-
550
521
  /**
551
522
  * AgentEvent
552
523
  */
@@ -770,6 +741,12 @@ export type AgentInTheLoopExceptionEvent = {
770
741
  * The exception event from the delegated agent containing error details and failure context.
771
742
  */
772
743
  exception_event: ExceptionEvent;
744
+ /**
745
+ * Request Event Id
746
+ *
747
+ * `event_id` of the `AgentInTheLoopRequestEvent` that failed. Carried here for the same reason the response carries it — a fan-out caller that cannot attribute a failure cannot complete its batch.
748
+ */
749
+ request_event_id: string;
773
750
  /**
774
751
  * Event Name
775
752
  *
@@ -844,9 +821,15 @@ export type AgentInTheLoopRequestEvent = {
844
821
  /**
845
822
  * Share Run Id
846
823
  *
847
- * Whether to share the run context with the other agent. Warning: In almost all cases, you will not want to share the run!
824
+ * Whether to share the run context with the other agent. Warning: In almost all cases, you will not want to share the run! The response subscription is scoped to the delegated run id, so sharing it makes every subscriber of a fan-out fire on every delegate.
848
825
  */
849
826
  share_run_id?: boolean;
827
+ /**
828
+ * Timeout Seconds
829
+ *
830
+ * How long to wait for the delegated agent before synthesizing a failure. `None` (the default) waits forever, which is what a delegate that never starts — an offline agent, a mistyped agent_id — costs the caller: no stop event is ever published, so the caller's run never resumes. Set it when the caller cannot tolerate that, and note it only covers a delegate that does not answer: the timer lives in the caller's dispatcher process, so it dies with the response subscription it guards.
831
+ */
832
+ timeout_seconds?: number | null;
850
833
  /**
851
834
  * Event Name
852
835
  *
@@ -896,6 +879,12 @@ export type AgentInTheLoopResponseEvent = {
896
879
  * The stop event from the delegated agent containing the task results and marks the completion.
897
880
  */
898
881
  stop_event: StopEvent;
882
+ /**
883
+ * Request Event Id
884
+ *
885
+ * `event_id` of the `AgentInTheLoopRequestEvent` this answer belongs to. The only thing that tells a caller which delegated answer is which: a run that delegates once can infer it, but a fan-out receives N of these on one topic and nothing else on the payload distinguishes them.
886
+ */
887
+ request_event_id: string;
899
888
  /**
900
889
  * Event Name
901
890
  *
@@ -1041,6 +1030,11 @@ export type AgentProcessStepDto = {
1041
1030
  *
1042
1031
  * This is similar to ModelSelect's `mode` parameter for filtering by model type.
1043
1032
  *
1033
+ * ### Pinning to One Agent Class
1034
+ *
1035
+ * When `agent_class` is specified, the class dropdown is not rendered at all and the profile dropdown lists only
1036
+ * that class's profiles. `start_event` is redundant then — the class is already decided — so set one or the other.
1037
+ *
1044
1038
  * ### Form Duality
1045
1039
  *
1046
1040
  * When used with AgentRef, the form submission is validated directly into AgentRef:
@@ -1161,6 +1155,12 @@ export type AgentSelector = {
1161
1155
  * Optional filter: only show agent classes that accept this start event type. Matches against event_name or event_parents in the agent's start_events.
1162
1156
  */
1163
1157
  startEvent?: string | null;
1158
+ /**
1159
+ * Agentclass
1160
+ *
1161
+ * Pin the selection to one agent class. The class dropdown is not rendered and the profile dropdown lists only that class's profiles. Use it when the config already knows which blueprint answers — a dropdown offering one choice asks the admin to make a decision that was never theirs.
1162
+ */
1163
+ agentClass?: string | null;
1164
1164
  /**
1165
1165
  * Classplaceholder
1166
1166
  *
@@ -1181,6 +1181,13 @@ export type AgentSelector = {
1181
1181
  filter?: boolean;
1182
1182
  /**
1183
1183
  * Validation
1184
+ *
1185
+ * Emits `agentRefRequired` where other elements emit FormKit's `required`.
1186
+ *
1187
+ * FormKit's `required` rule only asks whether a value is present, and this element's value is
1188
+ * always an `{agent_class, agent_id}` object. Picking a class alone emits a non-empty object with
1189
+ * a blank `agent_id`, which passes `required` and then delegates to a NATS wildcard at runtime.
1190
+ * `agentRefRequired` (registered in the frontend FormKit config) looks at both halves.
1184
1191
  */
1185
1192
  readonly validation: string;
1186
1193
  [key: string]: unknown;
@@ -1752,6 +1759,12 @@ export type BaseStoreMemoryEvent = {
1752
1759
  * Deleted relations
1753
1760
  */
1754
1761
  deleted_relations: Array<MemoryRelation>;
1762
+ /**
1763
+ * Llm Model Name
1764
+ *
1765
+ * Model that extracted these memories (issue #1590), or None when the write stored verbatim text. Carried on this event only, for observability — it is not stored in mem0's metadata, so it cannot be recovered from the memory record itself once this event is gone.
1766
+ */
1767
+ llm_model_name?: string | null;
1755
1768
  /**
1756
1769
  * Event Name
1757
1770
  *
@@ -1960,10 +1973,22 @@ export type Capability = {
1960
1973
  * Exact access rule that grants this capability, or null for read-only capabilities.
1961
1974
  */
1962
1975
  rule: string | null;
1976
+ /**
1977
+ * Companion Rules
1978
+ *
1979
+ * Rules written *and* removed together with `rule`. A knowledge database's row carries `<rule>.>` here: its namespaces belong to it, and a `.>` rule never matches its own root, so the row needs both forms to mean 'this whole database'.
1980
+ */
1981
+ companion_rules?: Array<string>;
1982
+ /**
1983
+ * Revoked Rules
1984
+ *
1985
+ * Rules removed with `rule`, never written with it. An agent class's row carries `<rule>.>` here: granting it would hand over every profile of the class in the deployment, other tenants' included, but a ceiling written before that was understood still holds it.
1986
+ */
1987
+ revoked_rules?: Array<string>;
1963
1988
  /**
1964
1989
  * Granted
1965
1990
  *
1966
- * Whether the draft rules grant this capability.
1991
+ * Whether the draft rules grant `rule` and every `companion_rules` entry.
1967
1992
  */
1968
1993
  granted: boolean;
1969
1994
  /**
@@ -2792,10 +2817,7 @@ export type ChatCompletionRequest = {
2792
2817
  * Function Call
2793
2818
  */
2794
2819
  function_call?:
2795
- | "none"
2796
- | "auto"
2797
- | ChatCompletionFunctionCallOptionParam
2798
- | null;
2820
+ "none" | "auto" | ChatCompletionFunctionCallOptionParam | null;
2799
2821
  /**
2800
2822
  * Functions
2801
2823
  */
@@ -2840,13 +2862,7 @@ export type ChatCompletionRequest = {
2840
2862
  * Reasoning Effort
2841
2863
  */
2842
2864
  reasoning_effort?:
2843
- | "none"
2844
- | "minimal"
2845
- | "low"
2846
- | "medium"
2847
- | "high"
2848
- | "xhigh"
2849
- | null;
2865
+ "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | null;
2850
2866
  /**
2851
2867
  * Response Format
2852
2868
  */
@@ -3311,11 +3327,7 @@ export type Choice = {
3311
3327
  * Finish Reason
3312
3328
  */
3313
3329
  finish_reason:
3314
- | "stop"
3315
- | "length"
3316
- | "tool_calls"
3317
- | "content_filter"
3318
- | "function_call";
3330
+ "stop" | "length" | "tool_calls" | "content_filter" | "function_call";
3319
3331
  /**
3320
3332
  * Index
3321
3333
  */
@@ -3638,6 +3650,31 @@ export type CompletionUsage = {
3638
3650
  [key: string]: unknown;
3639
3651
  };
3640
3652
 
3653
+ /**
3654
+ * ConfigSpecs
3655
+ *
3656
+ * Validation specification for a form-duality configuration, as announced by the service that owns it.
3657
+ *
3658
+ * Carries only the JSON schema the API validates submissions against, so a configuration class defined in
3659
+ * an agent, process or pipeline container can be enforced by the API without that class being installed there.
3660
+ */
3661
+ export type ConfigSpecs = {
3662
+ /**
3663
+ * Config Class
3664
+ *
3665
+ * The class name of the configuration this schema describes.
3666
+ */
3667
+ config_class?: string;
3668
+ /**
3669
+ * Config Schema
3670
+ *
3671
+ * JSON schema for validating form submissions. Generated from the configuration's configurable fields via to_configurable_submission_model().
3672
+ */
3673
+ config_schema?: {
3674
+ [key: string]: unknown;
3675
+ };
3676
+ };
3677
+
3641
3678
  /**
3642
3679
  * ContextInsufficientRejectEvent
3643
3680
  *
@@ -3858,7 +3895,7 @@ export type ContextualizedAgentEvent = {
3858
3895
  | ToolEvent
3859
3896
  | UserMessageEvent
3860
3897
  | RagStartEvent
3861
- | ScheduledStartEvent
3898
+ | CronStartEvent
3862
3899
  | ExceptionEvent
3863
3900
  | RagSuccessStopEvent
3864
3901
  | RagFailureStopEvent
@@ -3882,7 +3919,8 @@ export type ContextualizedAgentEvent = {
3882
3919
  | UnreadMailListedEvent
3883
3920
  | MailFetchedEvent
3884
3921
  | MailMovedEvent
3885
- | MailBatchDraftedEvent;
3922
+ | MailBatchDraftedEvent
3923
+ | MailBatchClassifiedEvent;
3886
3924
  };
3887
3925
 
3888
3926
  /**
@@ -4001,6 +4039,26 @@ export type CreateAgentInstanceRequest = {
4001
4039
  };
4002
4040
  };
4003
4041
 
4042
+ /**
4043
+ * CreateDatabaseRequest
4044
+ */
4045
+ export type CreateDatabaseRequest = {
4046
+ /**
4047
+ * Ingestor
4048
+ *
4049
+ * The deployed ingestion pipeline that processes this database's documents. Valid values are served by GET /knowledge/ingestors.
4050
+ */
4051
+ ingestor?: string;
4052
+ /**
4053
+ * Configuration
4054
+ *
4055
+ * The database's configuration as submitted through the ingestor's announced form: its multilingual name and description plus every knob the pipeline declares. Validated against the ingestor's schema.
4056
+ */
4057
+ configuration?: {
4058
+ [key: string]: unknown;
4059
+ };
4060
+ };
4061
+
4004
4062
  /**
4005
4063
  * CreateNamespaceRequest
4006
4064
  */
@@ -4156,7 +4214,7 @@ export type CreateTokenResponse = {
4156
4214
  * A FormKit element for editing the cron schedule of a schedulable agent profile.
4157
4215
  *
4158
4216
  * The element renders the five cron positions plus a timezone selector, and the submitted value
4159
- * matches the fields of `AgentSchedule`:
4217
+ * matches the fields of `CronSchedule`:
4160
4218
  * {
4161
4219
  * "minute": str,
4162
4220
  * "hour": str,
@@ -4172,19 +4230,19 @@ export type CreateTokenResponse = {
4172
4230
  * ### Form Duality
4173
4231
  * ```python
4174
4232
  * from swiss_ai_hub.core.form.elements.cron_input import CronInput
4175
- * from swiss_ai_hub.core.scheduling.agent_schedule import AgentSchedule
4233
+ * from swiss_ai_hub.core.scheduling.cron_schedule import CronSchedule
4176
4234
  *
4177
4235
  * class MyAgentConfig(AgentConfig):
4178
4236
  * schedule: Annotated[
4179
- * AgentSchedule | CronInput | None,
4237
+ * CronSchedule | CronInput | None,
4180
4238
  * Field(description="When this profile runs automatically"),
4181
4239
  * ] = None
4182
4240
  *
4183
4241
  * # Form mode - for rendering:
4184
4242
  * config = MyAgentConfig(schedule=CronInput(label=LocaleString(en="Schedule")))
4185
4243
  *
4186
- * # Data mode - from submission (Pydantic validates into AgentSchedule):
4187
- * config = MyAgentConfig(schedule=AgentSchedule(hour="12", timezone="Europe/Zurich"))
4244
+ * # Data mode - from submission (Pydantic validates into CronSchedule):
4245
+ * config = MyAgentConfig(schedule=CronSchedule(hour="12", timezone="Europe/Zurich"))
4188
4246
  * ```
4189
4247
  */
4190
4248
  export type CronInput = {
@@ -4288,6 +4346,70 @@ export type CronInput = {
4288
4346
  [key: string]: unknown;
4289
4347
  };
4290
4348
 
4349
+ /**
4350
+ * CronStartEvent
4351
+ *
4352
+ * Start event fired by the cron scheduler — handling it is what makes an agent schedulable.
4353
+ *
4354
+ * Mirrors how accepting a `UserMessageEvent` makes an agent conversational: `AgentRunner` derives
4355
+ * `is_schedulable` from the start events an agent declares, so a blueprint opts in by adding a step
4356
+ * that consumes this event, with no separate registration.
4357
+ *
4358
+ * Scheduled runs are system runs, so `user` is always None and the agent must not depend on an
4359
+ * initiating identity. Whatever tenant context the agent needs comes from its own profile
4360
+ * configuration (as `OrgMemoryWriteConfig.tenant_id` already does), never from the run.
4361
+ */
4362
+ export type CronStartEvent = {
4363
+ /**
4364
+ * Event Id
4365
+ */
4366
+ event_id?: string;
4367
+ /**
4368
+ * Created At
4369
+ *
4370
+ * The time (in ns since epoch) the event was stored in the event store
4371
+ */
4372
+ created_at?: number;
4373
+ /**
4374
+ * Display name for the event
4375
+ */
4376
+ display_name?: LocaleString | null;
4377
+ /**
4378
+ * Display description for the event
4379
+ */
4380
+ display_description?: LocaleString | null;
4381
+ /**
4382
+ * Locale
4383
+ *
4384
+ * The locale the scheduled run reports its display output in.
4385
+ */
4386
+ locale?: string;
4387
+ /**
4388
+ * Always None — scheduled runs are system-initiated and carry no execution identity.
4389
+ */
4390
+ user?: UserIdentity | null;
4391
+ /**
4392
+ * Scheduled For
4393
+ *
4394
+ * The cron occurrence this run fires for, in UTC. Distinct from `created_at`, which records when the scheduler published the event — the two differ by the scheduler's tick latency.
4395
+ */
4396
+ scheduled_for: Date;
4397
+ /**
4398
+ * Event Name
4399
+ *
4400
+ * The event type name, usually the class name. If unknown, uses _unknown_event_name.
4401
+ * Used during deserialization to decide which subclass to instantiate.
4402
+ */
4403
+ readonly _event_name: string;
4404
+ /**
4405
+ * Parent Event Names
4406
+ *
4407
+ * Contains the names of all parent classes up until BaseEvent, ordered from deepest to least deep inheritance.
4408
+ */
4409
+ readonly _parent_event_names: Array<string>;
4410
+ [key: string]: unknown;
4411
+ };
4412
+
4291
4413
  /**
4292
4414
  * Custom
4293
4415
  *
@@ -4417,6 +4539,18 @@ export type DatabaseDto = {
4417
4539
  * Whether this database auto-syncs namespaces
4418
4540
  */
4419
4541
  auto_sync: boolean;
4542
+ /**
4543
+ * Deletable
4544
+ *
4545
+ * Whether the database itself may be deleted; false for auto-synced databases, whose content is owned by a source, and for the legacy default_rag/shared_rag databases, which are re-provisioned from deployment configuration. Namespaces and individual documents are governed separately and stay deletable.
4546
+ */
4547
+ deletable: boolean;
4548
+ /**
4549
+ * Ingestor
4550
+ *
4551
+ * Identifier of the ingestion pipeline that processes this database, as served by GET /knowledge/ingestors. Visible to anyone who can see the database, so a database-level rule holder learns how it is configured without seeing its namespaces.
4552
+ */
4553
+ ingestor: string;
4420
4554
  /**
4421
4555
  * Namespaces
4422
4556
  *
@@ -4425,6 +4559,50 @@ export type DatabaseDto = {
4425
4559
  namespaces: Array<NamespaceDto>;
4426
4560
  };
4427
4561
 
4562
+ /**
4563
+ * DatabaseResponse
4564
+ */
4565
+ export type DatabaseResponse = {
4566
+ /**
4567
+ * Name
4568
+ *
4569
+ * The database name (also the Milvus collection and Mongo store name).
4570
+ */
4571
+ name: string;
4572
+ /**
4573
+ * Bucket Name
4574
+ *
4575
+ * The S3 bucket / data lake container name.
4576
+ */
4577
+ bucket_name: string;
4578
+ /**
4579
+ * Ingestor
4580
+ *
4581
+ * The deployed ingestion pipeline that owns this database.
4582
+ */
4583
+ ingestor: string;
4584
+ /**
4585
+ * Configuration
4586
+ *
4587
+ * The ingestor's settings for this database, as validated against its announced schema.
4588
+ */
4589
+ configuration?: {
4590
+ [key: string]: unknown;
4591
+ };
4592
+ /**
4593
+ * Display Name
4594
+ *
4595
+ * A user-friendly display name for the database.
4596
+ */
4597
+ display_name?: string | null;
4598
+ /**
4599
+ * Description
4600
+ *
4601
+ * A brief description of the database's contents.
4602
+ */
4603
+ description?: string | null;
4604
+ };
4605
+
4428
4606
  /**
4429
4607
  * Dataset
4430
4608
  */
@@ -5169,9 +5347,15 @@ export type DraftedReplyRef = {
5169
5347
  /**
5170
5348
  * Source Uid
5171
5349
  *
5172
- * IMAP UID of the source message within the source folder.
5350
+ * IMAP UID the source message had in the folder it was read from. A blueprint that files the message before drafting (EmailClassificationAgent) reports the pre-move UID, which no longer resolves on the server — it identifies the message within the run, not for a later fetch.
5173
5351
  */
5174
5352
  source_uid: string;
5353
+ /**
5354
+ * Category
5355
+ *
5356
+ * Category the source message was classified under, when drafting followed a classification run. Null when the drafting blueprint does not classify.
5357
+ */
5358
+ category?: string | null;
5175
5359
  /**
5176
5360
  * Drafts Folder
5177
5361
  *
@@ -5889,7 +6073,7 @@ export type FullProcessInstanceDto = {
5889
6073
  /**
5890
6074
  * Configuration specifications of the process class, including schema and parameters.
5891
6075
  */
5892
- process_config_specs: ProcessConfigSpecs;
6076
+ process_config_specs: ConfigSpecs;
5893
6077
  /**
5894
6078
  * Form
5895
6079
  *
@@ -7691,6 +7875,69 @@ export type IngestedNode = {
7691
7875
  score?: number | null;
7692
7876
  };
7693
7877
 
7878
+ /**
7879
+ * IngestorDTO
7880
+ */
7881
+ export type IngestorDto = {
7882
+ /**
7883
+ * Name
7884
+ *
7885
+ * Ingestor identifier, as served by GET /knowledge/ingestors.
7886
+ */
7887
+ name: string;
7888
+ /**
7889
+ * Display Name
7890
+ *
7891
+ * Localized name of the ingestion pipeline.
7892
+ */
7893
+ display_name: string | null;
7894
+ /**
7895
+ * Description
7896
+ *
7897
+ * Localized description of what the pipeline does.
7898
+ */
7899
+ description: string | null;
7900
+ /**
7901
+ * Form
7902
+ *
7903
+ * FormKit elements a database of this ingestor is configured through, localized.
7904
+ */
7905
+ form?: Array<
7906
+ | HtmlElement
7907
+ | AgentSelector
7908
+ | CascadeSelect
7909
+ | Checkbox
7910
+ | ChipsInput
7911
+ | ColorPicker
7912
+ | CronInput
7913
+ | DatePicker
7914
+ | Group
7915
+ | IconSelector
7916
+ | InputMask
7917
+ | InputNumber
7918
+ | InputOtp
7919
+ | InputText
7920
+ | KnowledgeDatabaseSelector
7921
+ | Knob
7922
+ | Listbox
7923
+ | LocaleInput
7924
+ | ModelSelect
7925
+ | MultiSelect
7926
+ | Password
7927
+ | RadioButton
7928
+ | Rating
7929
+ | Repeater
7930
+ | Select
7931
+ | SelectButton
7932
+ | Slider
7933
+ | TenantSelect
7934
+ | Textarea
7935
+ | ToggleButton
7936
+ | ToggleSwitch
7937
+ | VectorStoreInput
7938
+ >;
7939
+ };
7940
+
7694
7941
  /**
7695
7942
  * InputAudio
7696
7943
  */
@@ -8708,6 +8955,18 @@ export type LlmCostEvent = {
8708
8955
  * The name of the LLM service (e.g., 'openai/gpt-4') this event pertains to.
8709
8956
  */
8710
8957
  llm_name: string;
8958
+ /**
8959
+ * User Id
8960
+ *
8961
+ * Invoking user, so spend is queryable per user. None for runs with no user context.
8962
+ */
8963
+ user_id?: string | null;
8964
+ /**
8965
+ * Tenant Id
8966
+ *
8967
+ * Acting tenant, so spend is queryable per tenant. None for sysadmins and system runs.
8968
+ */
8969
+ tenant_id?: string | null;
8711
8970
  /**
8712
8971
  * Event Name
8713
8972
  *
@@ -8847,13 +9106,66 @@ export type LlmEvent = {
8847
9106
  };
8848
9107
 
8849
9108
  /**
8850
- * LLMStopEvent
9109
+ * LLMSpend
9110
+ *
9111
+ * LLM spend aggregated over one attribution key (a user or a tenant).
9112
+ *
9113
+ * Costs come from the platform's own `LLMCostEvent` records rather than from LiteLLM's spend log:
9114
+ * the gateway can only attribute the user, so the tenant dimension exists here alone (see #1451).
8851
9115
  */
8852
- export type LlmStopEvent = {
9116
+ export type LlmSpend = {
8853
9117
  /**
8854
- * Event Id
9118
+ * User Id
9119
+ *
9120
+ * Invoking user, None when grouping by tenant.
8855
9121
  */
8856
- event_id?: string;
9122
+ user_id?: string | null;
9123
+ /**
9124
+ * Tenant Id
9125
+ *
9126
+ * Acting tenant, None for runs outside a tenant.
9127
+ */
9128
+ tenant_id?: string | null;
9129
+ /**
9130
+ * Calls
9131
+ *
9132
+ * Number of LLM calls attributed to this key.
9133
+ */
9134
+ calls?: number;
9135
+ /**
9136
+ * Prompt Tokens Costs
9137
+ *
9138
+ * Cost of prompt tokens.
9139
+ */
9140
+ prompt_tokens_costs?: number;
9141
+ /**
9142
+ * Completion Tokens Costs
9143
+ *
9144
+ * Cost of completion tokens.
9145
+ */
9146
+ completion_tokens_costs?: number;
9147
+ /**
9148
+ * Embedding Tokens Costs
9149
+ *
9150
+ * Cost of embedding tokens.
9151
+ */
9152
+ embedding_tokens_costs?: number;
9153
+ /**
9154
+ * Total Costs
9155
+ *
9156
+ * Sum of prompt, completion and embedding costs.
9157
+ */
9158
+ total_costs?: number;
9159
+ };
9160
+
9161
+ /**
9162
+ * LLMStopEvent
9163
+ */
9164
+ export type LlmStopEvent = {
9165
+ /**
9166
+ * Event Id
9167
+ */
9168
+ event_id?: string;
8857
9169
  /**
8858
9170
  * Created At
8859
9171
  *
@@ -9451,6 +9763,88 @@ export type MailAttachmentRef = {
9451
9763
  size_bytes: number;
9452
9764
  };
9453
9765
 
9766
+ /**
9767
+ * MailBatchClassifiedEvent
9768
+ *
9769
+ * Summarises one classification run: how many messages were classified and where each was filed.
9770
+ *
9771
+ * One event per run rather than one per message, matching `MailBatchDraftedEvent` — the per-message detail rides in
9772
+ * `classified`. Filing is what prevents reprocessing: every message leaves the source folder, so the next unread
9773
+ * listing cannot see it again.
9774
+ */
9775
+ export type MailBatchClassifiedEvent = {
9776
+ /**
9777
+ * Event Id
9778
+ */
9779
+ event_id?: string;
9780
+ /**
9781
+ * Created At
9782
+ *
9783
+ * The time (in ns since epoch) the event was stored in the event store
9784
+ */
9785
+ created_at?: number;
9786
+ /**
9787
+ * Display name for the event
9788
+ */
9789
+ display_name?: LocaleString | null;
9790
+ /**
9791
+ * Display description for the event
9792
+ */
9793
+ display_description?: LocaleString | null;
9794
+ /**
9795
+ * Source Folder
9796
+ *
9797
+ * Folder the classified messages were read from.
9798
+ */
9799
+ source_folder: string;
9800
+ /**
9801
+ * Count
9802
+ *
9803
+ * Number of messages classified and filed in this run.
9804
+ */
9805
+ count: number;
9806
+ /**
9807
+ * Per Category
9808
+ *
9809
+ * How many messages were filed under each configured category.
9810
+ */
9811
+ per_category?: {
9812
+ [key: string]: number;
9813
+ };
9814
+ /**
9815
+ * Fallback Count
9816
+ *
9817
+ * How many messages went to the fallback folder instead of a category.
9818
+ */
9819
+ fallback_count?: number;
9820
+ /**
9821
+ * Failed Count
9822
+ *
9823
+ * How many messages the classifier could not reach a verdict on at all. They are filed into the failure folder rather than left in the inbox, where they would be re-selected on every run forever.
9824
+ */
9825
+ failed_count?: number;
9826
+ /**
9827
+ * Classified
9828
+ *
9829
+ * Per-message classification verdicts and filing destinations.
9830
+ */
9831
+ classified?: Array<MailClassificationRef>;
9832
+ /**
9833
+ * Event Name
9834
+ *
9835
+ * The event type name, usually the class name. If unknown, uses _unknown_event_name.
9836
+ * Used during deserialization to decide which subclass to instantiate.
9837
+ */
9838
+ readonly _event_name: string;
9839
+ /**
9840
+ * Parent Event Names
9841
+ *
9842
+ * Contains the names of all parent classes up until BaseEvent, ordered from deepest to least deep inheritance.
9843
+ */
9844
+ readonly _parent_event_names: Array<string>;
9845
+ [key: string]: unknown;
9846
+ };
9847
+
9454
9848
  /**
9455
9849
  * MailBatchDraftedEvent
9456
9850
  *
@@ -9490,6 +9884,20 @@ export type MailBatchDraftedEvent = {
9490
9884
  * Number of reply drafts created in this run.
9491
9885
  */
9492
9886
  count: number;
9887
+ /**
9888
+ * Per Category
9889
+ *
9890
+ * How many drafts were created for each category, when drafting followed a classification run. Empty when the drafting blueprint does not classify.
9891
+ */
9892
+ per_category?: {
9893
+ [key: string]: number;
9894
+ };
9895
+ /**
9896
+ * Skipped Count
9897
+ *
9898
+ * Messages in the batch that got no draft: usually because their category was not opted in, or no category fitted them at all.
9899
+ */
9900
+ skipped_count?: number;
9493
9901
  /**
9494
9902
  * Drafted
9495
9903
  *
@@ -9512,6 +9920,66 @@ export type MailBatchDraftedEvent = {
9512
9920
  [key: string]: unknown;
9513
9921
  };
9514
9922
 
9923
+ /**
9924
+ * MailClassificationRef
9925
+ *
9926
+ * One classified message and where it was filed — the per-message detail behind a run summary.
9927
+ */
9928
+ export type MailClassificationRef = {
9929
+ /**
9930
+ * Message Id
9931
+ *
9932
+ * IMAP UID of the message within the source folder.
9933
+ */
9934
+ message_id: string;
9935
+ /**
9936
+ * Sender
9937
+ *
9938
+ * Raw From header of the message.
9939
+ */
9940
+ sender: string;
9941
+ /**
9942
+ * Subject
9943
+ *
9944
+ * Subject header of the message.
9945
+ */
9946
+ subject: string;
9947
+ /**
9948
+ * Category
9949
+ *
9950
+ * Configured category the message was filed under, or null when it went to the fallback folder because no category clearly fitted.
9951
+ */
9952
+ category?: string | null;
9953
+ /**
9954
+ * Target Folder
9955
+ *
9956
+ * Folder the message was filed into.
9957
+ */
9958
+ target_folder: string;
9959
+ /**
9960
+ * Reason
9961
+ *
9962
+ * Model's stated reason for the choice — the audit trail for a misfile.
9963
+ */
9964
+ reason: string;
9965
+ /**
9966
+ * Folder Created
9967
+ *
9968
+ * Whether this message's target folder was created during the run. Folders are created once up front for the whole batch, so every message routed to a newly created folder carries this, not only the first one.
9969
+ */
9970
+ folder_created?: boolean;
9971
+ /**
9972
+ * Attachments
9973
+ *
9974
+ * References to the message's attachments stored in S3.
9975
+ */
9976
+ attachments?: Array<MailAttachmentRef>;
9977
+ /**
9978
+ * Reference to the original RFC822 message stored in S3.
9979
+ */
9980
+ original_message?: MailMessageRef | null;
9981
+ };
9982
+
9515
9983
  /**
9516
9984
  * MailFetchedEvent
9517
9985
  *
@@ -9689,6 +10157,12 @@ export type MailMovedEvent = {
9689
10157
  * Folder the message was moved into.
9690
10158
  */
9691
10159
  target_folder: string;
10160
+ /**
10161
+ * Folder Created
10162
+ *
10163
+ * Whether the target folder did not exist and was created by this move — an agent adding a folder to someone's mailbox is a visible side effect and belongs in the audit trail.
10164
+ */
10165
+ folder_created?: boolean;
9692
10166
  /**
9693
10167
  * Event Name
9694
10168
  *
@@ -11723,7 +12197,7 @@ export type ProcessClassDto = {
11723
12197
  /**
11724
12198
  * Configuration specifications of the process class, including schema and parameters.
11725
12199
  */
11726
- process_config_specs: ProcessConfigSpecs;
12200
+ process_config_specs: ConfigSpecs;
11727
12201
  /**
11728
12202
  * Human Inputs
11729
12203
  *
@@ -11786,35 +12260,6 @@ export type ProcessConfigDto = {
11786
12260
  icon?: string;
11787
12261
  };
11788
12262
 
11789
- /**
11790
- * ProcessConfigSpecs
11791
- *
11792
- * Validation specification for process configuration form submissions.
11793
- *
11794
- * Contains the process class identifier and JSON schema for validation.
11795
- * Instance-level fields (name, description, icon, process_id) are stored
11796
- * separately in ProcessConfigEntityDocument and provided by the Process class.
11797
- *
11798
- * The JSON schema is generated from the process's configurable fields via
11799
- * to_configurable_submission_model() and is used to validate form submissions.
11800
- */
11801
- export type ProcessConfigSpecs = {
11802
- /**
11803
- * Process Class
11804
- *
11805
- * The class name of the process.
11806
- */
11807
- process_class?: string;
11808
- /**
11809
- * Process Config Schema
11810
- *
11811
- * JSON schema for validating form submissions. Generated from the process's configurable fields via to_configurable_submission_model().
11812
- */
11813
- process_config_schema?: {
11814
- [key: string]: unknown;
11815
- };
11816
- };
11817
-
11818
12263
  /**
11819
12264
  * ProcessHealthChecks
11820
12265
  *
@@ -12134,10 +12579,12 @@ export type PromptTokensDetails = {
12134
12579
  * Why a RAG run failed to produce a useful answer.
12135
12580
  */
12136
12581
  export const RagFailureReason = {
12582
+ CONDENSATION_EMPTY: "condensation_empty",
12137
12583
  CONTEXT_INSUFFICIENT: "context_insufficient",
12138
12584
  EXPERT_DECLINED: "expert_declined",
12139
12585
  EXPERT_ERRORED: "expert_errored",
12140
12586
  FEW_SHOT_REJECTED: "few_shot_rejected",
12587
+ INPUT_TOO_LARGE: "input_too_large",
12141
12588
  } as const;
12142
12589
 
12143
12590
  /**
@@ -12235,9 +12682,9 @@ export type RagStartEvent = {
12235
12682
  */
12236
12683
  locale?: string;
12237
12684
  /**
12238
- * User on whose behalf the RAG run is executed.
12685
+ * User on whose behalf the RAG run is executed, when there is one. Optional because a delegating agent forwards whatever identity its own start event carries, and a scheduled run carries none — there is no service account to substitute. The RAG agent's user-memory steps are what read it, and they are skipped without it rather than attributing one caller's memories to a shared identity.
12239
12686
  */
12240
- user: UserIdentity;
12687
+ user?: UserIdentity | null;
12241
12688
  /**
12242
12689
  * Messages
12243
12690
  *
@@ -13311,70 +13758,6 @@ export type RunStatistics = {
13311
13758
  agent: MinimalAgentInstanceDto;
13312
13759
  };
13313
13760
 
13314
- /**
13315
- * ScheduledStartEvent
13316
- *
13317
- * Start event fired by the cron scheduler — handling it is what makes an agent schedulable.
13318
- *
13319
- * Mirrors how accepting a `UserMessageEvent` makes an agent conversational: `AgentRunner` derives
13320
- * `is_schedulable` from the start events an agent declares, so a blueprint opts in by adding a step
13321
- * that consumes this event, with no separate registration.
13322
- *
13323
- * Scheduled runs are system runs, so `user` is always None and the agent must not depend on an
13324
- * initiating identity. Whatever tenant context the agent needs comes from its own profile
13325
- * configuration (as `OrgMemoryWriteConfig.tenant_id` already does), never from the run.
13326
- */
13327
- export type ScheduledStartEvent = {
13328
- /**
13329
- * Event Id
13330
- */
13331
- event_id?: string;
13332
- /**
13333
- * Created At
13334
- *
13335
- * The time (in ns since epoch) the event was stored in the event store
13336
- */
13337
- created_at?: number;
13338
- /**
13339
- * Display name for the event
13340
- */
13341
- display_name?: LocaleString | null;
13342
- /**
13343
- * Display description for the event
13344
- */
13345
- display_description?: LocaleString | null;
13346
- /**
13347
- * Locale
13348
- *
13349
- * The locale the scheduled run reports its display output in.
13350
- */
13351
- locale?: string;
13352
- /**
13353
- * Always None — scheduled runs are system-initiated and carry no execution identity.
13354
- */
13355
- user?: UserIdentity | null;
13356
- /**
13357
- * Scheduled For
13358
- *
13359
- * The cron occurrence this run fires for, in UTC. Distinct from `created_at`, which records when the scheduler published the event — the two differ by the scheduler's tick latency.
13360
- */
13361
- scheduled_for: Date;
13362
- /**
13363
- * Event Name
13364
- *
13365
- * The event type name, usually the class name. If unknown, uses _unknown_event_name.
13366
- * Used during deserialization to decide which subclass to instantiate.
13367
- */
13368
- readonly _event_name: string;
13369
- /**
13370
- * Parent Event Names
13371
- *
13372
- * Contains the names of all parent classes up until BaseEvent, ordered from deepest to least deep inheritance.
13373
- */
13374
- readonly _parent_event_names: Array<string>;
13375
- [key: string]: unknown;
13376
- };
13377
-
13378
13761
  /**
13379
13762
  * SearchContextCostPerQueryDTO
13380
13763
  *
@@ -14096,6 +14479,14 @@ export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder];
14096
14479
  * StandaloneQuestionCondenserEvent
14097
14480
  *
14098
14481
  * Event to condense chat messages into a single standalone question as a chat message.
14482
+ *
14483
+ * A blank condensation is refused by `condense_standalone_question`, before an event of this type can be
14484
+ * built. The invariant is deliberately *not* also a `field_validator` here: a validator on an event is not
14485
+ * only a publish-time contract, it runs on every `model_validate`, which is how the immutable log is read
14486
+ * back — JetStream replays the whole stream on each agent start, and the API rebuilds a thread's timeline
14487
+ * from the persisted display copy. Blank condensations did occur before the producer-side raise existed, so
14488
+ * validating on read makes that history undeserializable: replay drops the event and
14489
+ * `EventService.get_events_in_thread` fails the whole thread.
14099
14490
  */
14100
14491
  export type StandaloneQuestionCondenserEvent = {
14101
14492
  /**
@@ -14304,6 +14695,12 @@ export type StoreOrganizationMemoryEvent = {
14304
14695
  * Deleted relations
14305
14696
  */
14306
14697
  deleted_relations: Array<MemoryRelation>;
14698
+ /**
14699
+ * Llm Model Name
14700
+ *
14701
+ * Model that extracted these memories (issue #1590), or None when the write stored verbatim text. Carried on this event only, for observability — it is not stored in mem0's metadata, so it cannot be recovered from the memory record itself once this event is gone.
14702
+ */
14703
+ llm_model_name?: string | null;
14307
14704
  /**
14308
14705
  * Event Name
14309
14706
  *
@@ -14378,6 +14775,12 @@ export type StoreUserMemoryEvent = {
14378
14775
  * Deleted relations
14379
14776
  */
14380
14777
  deleted_relations: Array<MemoryRelation>;
14778
+ /**
14779
+ * Llm Model Name
14780
+ *
14781
+ * Model that extracted these memories (issue #1590), or None when the write stored verbatim text. Carried on this event only, for observability — it is not stored in mem0's metadata, so it cannot be recovered from the memory record itself once this event is gone.
14782
+ */
14783
+ llm_model_name?: string | null;
14381
14784
  /**
14382
14785
  * Event Name
14383
14786
  *
@@ -16373,13 +16776,14 @@ export type ValidationError = {
16373
16776
  *
16374
16777
  * This element renders as three controls:
16375
16778
  * 1. Database dropdown (loads from /api/v1/knowledge/databases)
16376
- * 2. Namespace multi-select (populated based on selected database)
16779
+ * 2. "All namespaces" switch, or a namespace multi-select populated from the selected database
16377
16780
  * 3. Free-form chips input for `allowed_metadata_filter_fields`
16378
16781
  *
16379
- * The output matches the three configurable fields of `MilvusVectorStoreConfig`:
16782
+ * The output matches the configurable fields of `MilvusVectorStoreConfig`:
16380
16783
  * {
16381
16784
  * "collection_name": str,
16382
16785
  * "index_namespaces": list[str],
16786
+ * "all_namespaces": bool,
16383
16787
  * "allowed_metadata_filter_fields": list[str],
16384
16788
  * }
16385
16789
  *
@@ -16918,7 +17322,7 @@ export type AgentClassDtoWritable = {
16918
17322
  /**
16919
17323
  * Validation specification including the JSON schema for form submissions. Used by ModelCreationService to create Pydantic models for validation.
16920
17324
  */
16921
- agent_config_specs: AgentConfigSpecs;
17325
+ agent_config_specs: ConfigSpecs;
16922
17326
  /**
16923
17327
  * Start Events
16924
17328
  *
@@ -17110,6 +17514,12 @@ export type AgentInTheLoopExceptionEventWritable = {
17110
17514
  * The exception event from the delegated agent containing error details and failure context.
17111
17515
  */
17112
17516
  exception_event: ExceptionEventWritable;
17517
+ /**
17518
+ * Request Event Id
17519
+ *
17520
+ * `event_id` of the `AgentInTheLoopRequestEvent` that failed. Carried here for the same reason the response carries it — a fan-out caller that cannot attribute a failure cannot complete its batch.
17521
+ */
17522
+ request_event_id: string;
17113
17523
  [key: string]: unknown;
17114
17524
  };
17115
17525
 
@@ -17171,9 +17581,15 @@ export type AgentInTheLoopRequestEventWritable = {
17171
17581
  /**
17172
17582
  * Share Run Id
17173
17583
  *
17174
- * Whether to share the run context with the other agent. Warning: In almost all cases, you will not want to share the run!
17584
+ * Whether to share the run context with the other agent. Warning: In almost all cases, you will not want to share the run! The response subscription is scoped to the delegated run id, so sharing it makes every subscriber of a fan-out fire on every delegate.
17175
17585
  */
17176
17586
  share_run_id?: boolean;
17587
+ /**
17588
+ * Timeout Seconds
17589
+ *
17590
+ * How long to wait for the delegated agent before synthesizing a failure. `None` (the default) waits forever, which is what a delegate that never starts — an offline agent, a mistyped agent_id — costs the caller: no stop event is ever published, so the caller's run never resumes. Set it when the caller cannot tolerate that, and note it only covers a delegate that does not answer: the timer lives in the caller's dispatcher process, so it dies with the response subscription it guards.
17591
+ */
17592
+ timeout_seconds?: number | null;
17177
17593
  [key: string]: unknown;
17178
17594
  };
17179
17595
 
@@ -17210,6 +17626,12 @@ export type AgentInTheLoopResponseEventWritable = {
17210
17626
  * The stop event from the delegated agent containing the task results and marks the completion.
17211
17627
  */
17212
17628
  stop_event: StopEventWritable;
17629
+ /**
17630
+ * Request Event Id
17631
+ *
17632
+ * `event_id` of the `AgentInTheLoopRequestEvent` this answer belongs to. The only thing that tells a caller which delegated answer is which: a run that delegates once can infer it, but a fan-out receives N of these on one topic and nothing else on the payload distinguishes them.
17633
+ */
17634
+ request_event_id: string;
17213
17635
  [key: string]: unknown;
17214
17636
  };
17215
17637
 
@@ -17273,6 +17695,11 @@ export type AgentProcessStepDtoWritable = {
17273
17695
  *
17274
17696
  * This is similar to ModelSelect's `mode` parameter for filtering by model type.
17275
17697
  *
17698
+ * ### Pinning to One Agent Class
17699
+ *
17700
+ * When `agent_class` is specified, the class dropdown is not rendered at all and the profile dropdown lists only
17701
+ * that class's profiles. `start_event` is redundant then — the class is already decided — so set one or the other.
17702
+ *
17276
17703
  * ### Form Duality
17277
17704
  *
17278
17705
  * When used with AgentRef, the form submission is validated directly into AgentRef:
@@ -17393,6 +17820,12 @@ export type AgentSelectorWritable = {
17393
17820
  * Optional filter: only show agent classes that accept this start event type. Matches against event_name or event_parents in the agent's start_events.
17394
17821
  */
17395
17822
  startEvent?: string | null;
17823
+ /**
17824
+ * Agentclass
17825
+ *
17826
+ * Pin the selection to one agent class. The class dropdown is not rendered and the profile dropdown lists only that class's profiles. Use it when the config already knows which blueprint answers — a dropdown offering one choice asks the admin to make a decision that was never theirs.
17827
+ */
17828
+ agentClass?: string | null;
17396
17829
  /**
17397
17830
  * Classplaceholder
17398
17831
  *
@@ -17762,7 +18195,13 @@ export type BaseStoreMemoryEventWritable = {
17762
18195
  * Deleted relations
17763
18196
  */
17764
18197
  deleted_relations: Array<MemoryRelation>;
17765
- [key: string]: unknown;
18198
+ /**
18199
+ * Llm Model Name
18200
+ *
18201
+ * Model that extracted these memories (issue #1590), or None when the write stored verbatim text. Carried on this event only, for observability — it is not stored in mem0's metadata, so it cannot be recovered from the memory record itself once this event is gone.
18202
+ */
18203
+ llm_model_name?: string | null;
18204
+ [key: string]: unknown;
17766
18205
  };
17767
18206
 
17768
18207
  /**
@@ -18539,7 +18978,7 @@ export type ContextualizedAgentEventWritable = {
18539
18978
  | ToolEventWritable
18540
18979
  | UserMessageEventWritable
18541
18980
  | RagStartEventWritable
18542
- | ScheduledStartEventWritable
18981
+ | CronStartEventWritable
18543
18982
  | ExceptionEventWritable
18544
18983
  | RagSuccessStopEventWritable
18545
18984
  | RagFailureStopEventWritable
@@ -18563,7 +19002,8 @@ export type ContextualizedAgentEventWritable = {
18563
19002
  | UnreadMailListedEventWritable
18564
19003
  | MailFetchedEventWritable
18565
19004
  | MailMovedEventWritable
18566
- | MailBatchDraftedEventWritable;
19005
+ | MailBatchDraftedEventWritable
19006
+ | MailBatchClassifiedEventWritable;
18567
19007
  };
18568
19008
 
18569
19009
  /**
@@ -18639,7 +19079,7 @@ export type ConversationTitleEventWritable = {
18639
19079
  * A FormKit element for editing the cron schedule of a schedulable agent profile.
18640
19080
  *
18641
19081
  * The element renders the five cron positions plus a timezone selector, and the submitted value
18642
- * matches the fields of `AgentSchedule`:
19082
+ * matches the fields of `CronSchedule`:
18643
19083
  * {
18644
19084
  * "minute": str,
18645
19085
  * "hour": str,
@@ -18655,19 +19095,19 @@ export type ConversationTitleEventWritable = {
18655
19095
  * ### Form Duality
18656
19096
  * ```python
18657
19097
  * from swiss_ai_hub.core.form.elements.cron_input import CronInput
18658
- * from swiss_ai_hub.core.scheduling.agent_schedule import AgentSchedule
19098
+ * from swiss_ai_hub.core.scheduling.cron_schedule import CronSchedule
18659
19099
  *
18660
19100
  * class MyAgentConfig(AgentConfig):
18661
19101
  * schedule: Annotated[
18662
- * AgentSchedule | CronInput | None,
19102
+ * CronSchedule | CronInput | None,
18663
19103
  * Field(description="When this profile runs automatically"),
18664
19104
  * ] = None
18665
19105
  *
18666
19106
  * # Form mode - for rendering:
18667
19107
  * config = MyAgentConfig(schedule=CronInput(label=LocaleString(en="Schedule")))
18668
19108
  *
18669
- * # Data mode - from submission (Pydantic validates into AgentSchedule):
18670
- * config = MyAgentConfig(schedule=AgentSchedule(hour="12", timezone="Europe/Zurich"))
19109
+ * # Data mode - from submission (Pydantic validates into CronSchedule):
19110
+ * config = MyAgentConfig(schedule=CronSchedule(hour="12", timezone="Europe/Zurich"))
18671
19111
  * ```
18672
19112
  */
18673
19113
  export type CronInputWritable = {
@@ -18767,6 +19207,57 @@ export type CronInputWritable = {
18767
19207
  [key: string]: unknown;
18768
19208
  };
18769
19209
 
19210
+ /**
19211
+ * CronStartEvent
19212
+ *
19213
+ * Start event fired by the cron scheduler — handling it is what makes an agent schedulable.
19214
+ *
19215
+ * Mirrors how accepting a `UserMessageEvent` makes an agent conversational: `AgentRunner` derives
19216
+ * `is_schedulable` from the start events an agent declares, so a blueprint opts in by adding a step
19217
+ * that consumes this event, with no separate registration.
19218
+ *
19219
+ * Scheduled runs are system runs, so `user` is always None and the agent must not depend on an
19220
+ * initiating identity. Whatever tenant context the agent needs comes from its own profile
19221
+ * configuration (as `OrgMemoryWriteConfig.tenant_id` already does), never from the run.
19222
+ */
19223
+ export type CronStartEventWritable = {
19224
+ /**
19225
+ * Event Id
19226
+ */
19227
+ event_id?: string;
19228
+ /**
19229
+ * Created At
19230
+ *
19231
+ * The time (in ns since epoch) the event was stored in the event store
19232
+ */
19233
+ created_at?: number;
19234
+ /**
19235
+ * Display name for the event
19236
+ */
19237
+ display_name?: LocaleString | null;
19238
+ /**
19239
+ * Display description for the event
19240
+ */
19241
+ display_description?: LocaleString | null;
19242
+ /**
19243
+ * Locale
19244
+ *
19245
+ * The locale the scheduled run reports its display output in.
19246
+ */
19247
+ locale?: string;
19248
+ /**
19249
+ * Always None — scheduled runs are system-initiated and carry no execution identity.
19250
+ */
19251
+ user?: UserIdentity | null;
19252
+ /**
19253
+ * Scheduled For
19254
+ *
19255
+ * The cron occurrence this run fires for, in UTC. Distinct from `created_at`, which records when the scheduler published the event — the two differ by the scheduler's tick latency.
19256
+ */
19257
+ scheduled_for: Date;
19258
+ [key: string]: unknown;
19259
+ };
19260
+
18770
19261
  /**
18771
19262
  * DatePicker
18772
19263
  *
@@ -19381,7 +19872,7 @@ export type FullProcessInstanceDtoWritable = {
19381
19872
  /**
19382
19873
  * Configuration specifications of the process class, including schema and parameters.
19383
19874
  */
19384
- process_config_specs: ProcessConfigSpecs;
19875
+ process_config_specs: ConfigSpecs;
19385
19876
  /**
19386
19877
  * Form
19387
19878
  *
@@ -20302,6 +20793,69 @@ export type IconSelectorWritable = {
20302
20793
  [key: string]: unknown;
20303
20794
  };
20304
20795
 
20796
+ /**
20797
+ * IngestorDTO
20798
+ */
20799
+ export type IngestorDtoWritable = {
20800
+ /**
20801
+ * Name
20802
+ *
20803
+ * Ingestor identifier, as served by GET /knowledge/ingestors.
20804
+ */
20805
+ name: string;
20806
+ /**
20807
+ * Display Name
20808
+ *
20809
+ * Localized name of the ingestion pipeline.
20810
+ */
20811
+ display_name: string | null;
20812
+ /**
20813
+ * Description
20814
+ *
20815
+ * Localized description of what the pipeline does.
20816
+ */
20817
+ description: string | null;
20818
+ /**
20819
+ * Form
20820
+ *
20821
+ * FormKit elements a database of this ingestor is configured through, localized.
20822
+ */
20823
+ form?: Array<
20824
+ | HtmlElement
20825
+ | AgentSelectorWritable
20826
+ | CascadeSelectWritable
20827
+ | CheckboxWritable
20828
+ | ChipsInputWritable
20829
+ | ColorPickerWritable
20830
+ | CronInputWritable
20831
+ | DatePickerWritable
20832
+ | GroupWritable
20833
+ | IconSelectorWritable
20834
+ | InputMaskWritable
20835
+ | InputNumberWritable
20836
+ | InputOtpWritable
20837
+ | InputTextWritable
20838
+ | KnowledgeDatabaseSelectorWritable
20839
+ | KnobWritable
20840
+ | ListboxWritable
20841
+ | LocaleInputWritable
20842
+ | ModelSelectWritable
20843
+ | MultiSelectWritable
20844
+ | PasswordWritable
20845
+ | RadioButtonWritable
20846
+ | RatingWritable
20847
+ | RepeaterWritable
20848
+ | SelectWritable
20849
+ | SelectButtonWritable
20850
+ | SliderWritable
20851
+ | TenantSelectWritable
20852
+ | TextareaWritable
20853
+ | ToggleButtonWritable
20854
+ | ToggleSwitchWritable
20855
+ | VectorStoreInputWritable
20856
+ >;
20857
+ };
20858
+
20305
20859
  /**
20306
20860
  * InputMask
20307
20861
  *
@@ -21253,6 +21807,18 @@ export type LlmCostEventWritable = {
21253
21807
  * The name of the LLM service (e.g., 'openai/gpt-4') this event pertains to.
21254
21808
  */
21255
21809
  llm_name: string;
21810
+ /**
21811
+ * User Id
21812
+ *
21813
+ * Invoking user, so spend is queryable per user. None for runs with no user context.
21814
+ */
21815
+ user_id?: string | null;
21816
+ /**
21817
+ * Tenant Id
21818
+ *
21819
+ * Acting tenant, so spend is queryable per tenant. None for sysadmins and system runs.
21820
+ */
21821
+ tenant_id?: string | null;
21256
21822
  [key: string]: unknown;
21257
21823
  };
21258
21824
 
@@ -21787,6 +22353,75 @@ export type LocaleInputWritable = {
21787
22353
  [key: string]: unknown;
21788
22354
  };
21789
22355
 
22356
+ /**
22357
+ * MailBatchClassifiedEvent
22358
+ *
22359
+ * Summarises one classification run: how many messages were classified and where each was filed.
22360
+ *
22361
+ * One event per run rather than one per message, matching `MailBatchDraftedEvent` — the per-message detail rides in
22362
+ * `classified`. Filing is what prevents reprocessing: every message leaves the source folder, so the next unread
22363
+ * listing cannot see it again.
22364
+ */
22365
+ export type MailBatchClassifiedEventWritable = {
22366
+ /**
22367
+ * Event Id
22368
+ */
22369
+ event_id?: string;
22370
+ /**
22371
+ * Created At
22372
+ *
22373
+ * The time (in ns since epoch) the event was stored in the event store
22374
+ */
22375
+ created_at?: number;
22376
+ /**
22377
+ * Display name for the event
22378
+ */
22379
+ display_name?: LocaleString | null;
22380
+ /**
22381
+ * Display description for the event
22382
+ */
22383
+ display_description?: LocaleString | null;
22384
+ /**
22385
+ * Source Folder
22386
+ *
22387
+ * Folder the classified messages were read from.
22388
+ */
22389
+ source_folder: string;
22390
+ /**
22391
+ * Count
22392
+ *
22393
+ * Number of messages classified and filed in this run.
22394
+ */
22395
+ count: number;
22396
+ /**
22397
+ * Per Category
22398
+ *
22399
+ * How many messages were filed under each configured category.
22400
+ */
22401
+ per_category?: {
22402
+ [key: string]: number;
22403
+ };
22404
+ /**
22405
+ * Fallback Count
22406
+ *
22407
+ * How many messages went to the fallback folder instead of a category.
22408
+ */
22409
+ fallback_count?: number;
22410
+ /**
22411
+ * Failed Count
22412
+ *
22413
+ * How many messages the classifier could not reach a verdict on at all. They are filed into the failure folder rather than left in the inbox, where they would be re-selected on every run forever.
22414
+ */
22415
+ failed_count?: number;
22416
+ /**
22417
+ * Classified
22418
+ *
22419
+ * Per-message classification verdicts and filing destinations.
22420
+ */
22421
+ classified?: Array<MailClassificationRef>;
22422
+ [key: string]: unknown;
22423
+ };
22424
+
21790
22425
  /**
21791
22426
  * MailBatchDraftedEvent
21792
22427
  *
@@ -21826,6 +22461,20 @@ export type MailBatchDraftedEventWritable = {
21826
22461
  * Number of reply drafts created in this run.
21827
22462
  */
21828
22463
  count: number;
22464
+ /**
22465
+ * Per Category
22466
+ *
22467
+ * How many drafts were created for each category, when drafting followed a classification run. Empty when the drafting blueprint does not classify.
22468
+ */
22469
+ per_category?: {
22470
+ [key: string]: number;
22471
+ };
22472
+ /**
22473
+ * Skipped Count
22474
+ *
22475
+ * Messages in the batch that got no draft: usually because their category was not opted in, or no category fitted them at all.
22476
+ */
22477
+ skipped_count?: number;
21829
22478
  /**
21830
22479
  * Drafted
21831
22480
  *
@@ -21962,6 +22611,12 @@ export type MailMovedEventWritable = {
21962
22611
  * Folder the message was moved into.
21963
22612
  */
21964
22613
  target_folder: string;
22614
+ /**
22615
+ * Folder Created
22616
+ *
22617
+ * Whether the target folder did not exist and was created by this move — an agent adding a folder to someone's mailbox is a visible side effect and belongs in the audit trail.
22618
+ */
22619
+ folder_created?: boolean;
21965
22620
  [key: string]: unknown;
21966
22621
  };
21967
22622
 
@@ -22744,7 +23399,7 @@ export type ProcessClassDtoWritable = {
22744
23399
  /**
22745
23400
  * Configuration specifications of the process class, including schema and parameters.
22746
23401
  */
22747
- process_config_specs: ProcessConfigSpecs;
23402
+ process_config_specs: ConfigSpecs;
22748
23403
  /**
22749
23404
  * Human Inputs
22750
23405
  *
@@ -22927,9 +23582,9 @@ export type RagStartEventWritable = {
22927
23582
  */
22928
23583
  locale?: string;
22929
23584
  /**
22930
- * User on whose behalf the RAG run is executed.
23585
+ * User on whose behalf the RAG run is executed, when there is one. Optional because a delegating agent forwards whatever identity its own start event carries, and a scheduled run carries none — there is no service account to substitute. The RAG agent's user-memory steps are what read it, and they are skipped without it rather than attributing one caller's memories to a shared identity.
22931
23586
  */
22932
- user: UserIdentity;
23587
+ user?: UserIdentity | null;
22933
23588
  /**
22934
23589
  * Messages
22935
23590
  *
@@ -23772,57 +24427,6 @@ export type RunStatisticsWritable = {
23772
24427
  agent: MinimalAgentInstanceDtoWritable;
23773
24428
  };
23774
24429
 
23775
- /**
23776
- * ScheduledStartEvent
23777
- *
23778
- * Start event fired by the cron scheduler — handling it is what makes an agent schedulable.
23779
- *
23780
- * Mirrors how accepting a `UserMessageEvent` makes an agent conversational: `AgentRunner` derives
23781
- * `is_schedulable` from the start events an agent declares, so a blueprint opts in by adding a step
23782
- * that consumes this event, with no separate registration.
23783
- *
23784
- * Scheduled runs are system runs, so `user` is always None and the agent must not depend on an
23785
- * initiating identity. Whatever tenant context the agent needs comes from its own profile
23786
- * configuration (as `OrgMemoryWriteConfig.tenant_id` already does), never from the run.
23787
- */
23788
- export type ScheduledStartEventWritable = {
23789
- /**
23790
- * Event Id
23791
- */
23792
- event_id?: string;
23793
- /**
23794
- * Created At
23795
- *
23796
- * The time (in ns since epoch) the event was stored in the event store
23797
- */
23798
- created_at?: number;
23799
- /**
23800
- * Display name for the event
23801
- */
23802
- display_name?: LocaleString | null;
23803
- /**
23804
- * Display description for the event
23805
- */
23806
- display_description?: LocaleString | null;
23807
- /**
23808
- * Locale
23809
- *
23810
- * The locale the scheduled run reports its display output in.
23811
- */
23812
- locale?: string;
23813
- /**
23814
- * Always None — scheduled runs are system-initiated and carry no execution identity.
23815
- */
23816
- user?: UserIdentity | null;
23817
- /**
23818
- * Scheduled For
23819
- *
23820
- * The cron occurrence this run fires for, in UTC. Distinct from `created_at`, which records when the scheduler published the event — the two differ by the scheduler's tick latency.
23821
- */
23822
- scheduled_for: Date;
23823
- [key: string]: unknown;
23824
- };
23825
-
23826
24430
  /**
23827
24431
  * Select
23828
24432
  *
@@ -24395,6 +24999,14 @@ export type SliderWritable = {
24395
24999
  * StandaloneQuestionCondenserEvent
24396
25000
  *
24397
25001
  * Event to condense chat messages into a single standalone question as a chat message.
25002
+ *
25003
+ * A blank condensation is refused by `condense_standalone_question`, before an event of this type can be
25004
+ * built. The invariant is deliberately *not* also a `field_validator` here: a validator on an event is not
25005
+ * only a publish-time contract, it runs on every `model_validate`, which is how the immutable log is read
25006
+ * back — JetStream replays the whole stream on each agent start, and the API rebuilds a thread's timeline
25007
+ * from the persisted display copy. Blank condensations did occur before the producer-side raise existed, so
25008
+ * validating on read makes that history undeserializable: replay drops the event and
25009
+ * `EventService.get_events_in_thread` fails the whole thread.
24398
25010
  */
24399
25011
  export type StandaloneQuestionCondenserEventWritable = {
24400
25012
  /**
@@ -24564,6 +25176,12 @@ export type StoreOrganizationMemoryEventWritable = {
24564
25176
  * Deleted relations
24565
25177
  */
24566
25178
  deleted_relations: Array<MemoryRelation>;
25179
+ /**
25180
+ * Llm Model Name
25181
+ *
25182
+ * Model that extracted these memories (issue #1590), or None when the write stored verbatim text. Carried on this event only, for observability — it is not stored in mem0's metadata, so it cannot be recovered from the memory record itself once this event is gone.
25183
+ */
25184
+ llm_model_name?: string | null;
24567
25185
  [key: string]: unknown;
24568
25186
  };
24569
25187
 
@@ -24625,6 +25243,12 @@ export type StoreUserMemoryEventWritable = {
24625
25243
  * Deleted relations
24626
25244
  */
24627
25245
  deleted_relations: Array<MemoryRelation>;
25246
+ /**
25247
+ * Llm Model Name
25248
+ *
25249
+ * Model that extracted these memories (issue #1590), or None when the write stored verbatim text. Carried on this event only, for observability — it is not stored in mem0's metadata, so it cannot be recovered from the memory record itself once this event is gone.
25250
+ */
25251
+ llm_model_name?: string | null;
24628
25252
  [key: string]: unknown;
24629
25253
  };
24630
25254
 
@@ -25495,13 +26119,14 @@ export type UserMessageEventWritable = {
25495
26119
  *
25496
26120
  * This element renders as three controls:
25497
26121
  * 1. Database dropdown (loads from /api/v1/knowledge/databases)
25498
- * 2. Namespace multi-select (populated based on selected database)
26122
+ * 2. "All namespaces" switch, or a namespace multi-select populated from the selected database
25499
26123
  * 3. Free-form chips input for `allowed_metadata_filter_fields`
25500
26124
  *
25501
- * The output matches the three configurable fields of `MilvusVectorStoreConfig`:
26125
+ * The output matches the configurable fields of `MilvusVectorStoreConfig`:
25502
26126
  * {
25503
26127
  * "collection_name": str,
25504
26128
  * "index_namespaces": list[str],
26129
+ * "all_namespaces": bool,
25505
26130
  * "allowed_metadata_filter_fields": list[str],
25506
26131
  * }
25507
26132
  *
@@ -26222,6 +26847,92 @@ export type GetAgentEventTimeseriesResponses = {
26222
26847
  export type GetAgentEventTimeseriesResponse =
26223
26848
  GetAgentEventTimeseriesResponses[keyof GetAgentEventTimeseriesResponses];
26224
26849
 
26850
+ export type GetLlmSpendByUserData = {
26851
+ body?: never;
26852
+ path: {
26853
+ /**
26854
+ * Tenant Id
26855
+ *
26856
+ * Tenant identifier: a name, ObjectId, or 'active'
26857
+ */
26858
+ tenant_id: string;
26859
+ };
26860
+ query?: {
26861
+ /**
26862
+ * Since
26863
+ *
26864
+ * Only count calls at or after this time. Defaults to the last 30 days.
26865
+ */
26866
+ since?: Date | null;
26867
+ };
26868
+ url: "/{tenant_id}/events/spend/users";
26869
+ };
26870
+
26871
+ export type GetLlmSpendByUserErrors = {
26872
+ /**
26873
+ * Validation Error
26874
+ */
26875
+ 422: HttpValidationError;
26876
+ };
26877
+
26878
+ export type GetLlmSpendByUserError =
26879
+ GetLlmSpendByUserErrors[keyof GetLlmSpendByUserErrors];
26880
+
26881
+ export type GetLlmSpendByUserResponses = {
26882
+ /**
26883
+ * Response Get Llm Spend By User Tenant Id Events Spend Users Get
26884
+ *
26885
+ * Successful Response
26886
+ */
26887
+ 200: Array<LlmSpend>;
26888
+ };
26889
+
26890
+ export type GetLlmSpendByUserResponse =
26891
+ GetLlmSpendByUserResponses[keyof GetLlmSpendByUserResponses];
26892
+
26893
+ export type GetLlmSpendByTenantData = {
26894
+ body?: never;
26895
+ path: {
26896
+ /**
26897
+ * Tenant Id
26898
+ *
26899
+ * Tenant identifier: a name, ObjectId, or 'active'
26900
+ */
26901
+ tenant_id: string;
26902
+ };
26903
+ query?: {
26904
+ /**
26905
+ * Since
26906
+ *
26907
+ * Only count calls at or after this time. Defaults to the last 30 days.
26908
+ */
26909
+ since?: Date | null;
26910
+ };
26911
+ url: "/{tenant_id}/events/spend/tenants";
26912
+ };
26913
+
26914
+ export type GetLlmSpendByTenantErrors = {
26915
+ /**
26916
+ * Validation Error
26917
+ */
26918
+ 422: HttpValidationError;
26919
+ };
26920
+
26921
+ export type GetLlmSpendByTenantError =
26922
+ GetLlmSpendByTenantErrors[keyof GetLlmSpendByTenantErrors];
26923
+
26924
+ export type GetLlmSpendByTenantResponses = {
26925
+ /**
26926
+ * Response Get Llm Spend By Tenant Tenant Id Events Spend Tenants Get
26927
+ *
26928
+ * Successful Response
26929
+ */
26930
+ 200: Array<LlmSpend>;
26931
+ };
26932
+
26933
+ export type GetLlmSpendByTenantResponse =
26934
+ GetLlmSpendByTenantResponses[keyof GetLlmSpendByTenantResponses];
26935
+
26225
26936
  export type GetLitellmModelsData = {
26226
26937
  body?: never;
26227
26938
  path: {
@@ -28083,6 +28794,32 @@ export type GetAccessPresetsResponses = {
28083
28794
  export type GetAccessPresetsResponse =
28084
28795
  GetAccessPresetsResponses[keyof GetAccessPresetsResponses];
28085
28796
 
28797
+ export type GetDefaultTenantRulesData = {
28798
+ body?: never;
28799
+ path: {
28800
+ /**
28801
+ * Tenant Id
28802
+ *
28803
+ * Tenant identifier: a name, ObjectId, or 'active'
28804
+ */
28805
+ tenant_id: string;
28806
+ };
28807
+ query?: never;
28808
+ url: "/{tenant_id}/access/default-tenant-rules";
28809
+ };
28810
+
28811
+ export type GetDefaultTenantRulesResponses = {
28812
+ /**
28813
+ * Response Get Default Tenant Rules Tenant Id Access Default Tenant Rules Get
28814
+ *
28815
+ * Successful Response
28816
+ */
28817
+ 200: Array<string>;
28818
+ };
28819
+
28820
+ export type GetDefaultTenantRulesResponse =
28821
+ GetDefaultTenantRulesResponses[keyof GetDefaultTenantRulesResponses];
28822
+
28086
28823
  export type GetModelsData = {
28087
28824
  body?: never;
28088
28825
  path: {
@@ -28446,6 +29183,146 @@ export type UpdateDatasetResponses = {
28446
29183
  export type UpdateDatasetResponse =
28447
29184
  UpdateDatasetResponses[keyof UpdateDatasetResponses];
28448
29185
 
29186
+ export type GetIngestorsData = {
29187
+ body?: never;
29188
+ path: {
29189
+ /**
29190
+ * Tenant Id
29191
+ *
29192
+ * Tenant identifier: a name, ObjectId, or 'active'
29193
+ */
29194
+ tenant_id: string;
29195
+ };
29196
+ query?: never;
29197
+ url: "/{tenant_id}/knowledge/ingestors";
29198
+ };
29199
+
29200
+ export type GetIngestorsResponses = {
29201
+ /**
29202
+ * Response Get Ingestors Tenant Id Knowledge Ingestors Get
29203
+ *
29204
+ * Successful Response
29205
+ */
29206
+ 200: Array<IngestorDto>;
29207
+ };
29208
+
29209
+ export type GetIngestorsResponse =
29210
+ GetIngestorsResponses[keyof GetIngestorsResponses];
29211
+
29212
+ export type DeleteDatabaseData = {
29213
+ body?: never;
29214
+ path: {
29215
+ /**
29216
+ * Tenant Id
29217
+ *
29218
+ * Tenant identifier: a name, ObjectId, or 'active'
29219
+ */
29220
+ tenant_id: string;
29221
+ /**
29222
+ * Database name
29223
+ */
29224
+ database: string;
29225
+ };
29226
+ query?: never;
29227
+ url: "/{tenant_id}/knowledge/databases/{database}";
29228
+ };
29229
+
29230
+ export type DeleteDatabaseErrors = {
29231
+ /**
29232
+ * Validation Error
29233
+ */
29234
+ 422: HttpValidationError;
29235
+ };
29236
+
29237
+ export type DeleteDatabaseError =
29238
+ DeleteDatabaseErrors[keyof DeleteDatabaseErrors];
29239
+
29240
+ export type DeleteDatabaseResponses = {
29241
+ /**
29242
+ * Successful Response
29243
+ */
29244
+ 202: unknown;
29245
+ };
29246
+
29247
+ export type CreateDatabaseData = {
29248
+ body: CreateDatabaseRequest;
29249
+ path: {
29250
+ /**
29251
+ * Tenant Id
29252
+ *
29253
+ * Tenant identifier: a name, ObjectId, or 'active'
29254
+ */
29255
+ tenant_id: string;
29256
+ /**
29257
+ * Database name
29258
+ *
29259
+ * Lowercase letters and digits, starting with a letter, 3 to 63 characters
29260
+ */
29261
+ database: string;
29262
+ };
29263
+ query?: never;
29264
+ url: "/{tenant_id}/knowledge/databases/{database}";
29265
+ };
29266
+
29267
+ export type CreateDatabaseErrors = {
29268
+ /**
29269
+ * Validation Error
29270
+ */
29271
+ 422: HttpValidationError;
29272
+ };
29273
+
29274
+ export type CreateDatabaseError =
29275
+ CreateDatabaseErrors[keyof CreateDatabaseErrors];
29276
+
29277
+ export type CreateDatabaseResponses = {
29278
+ /**
29279
+ * Successful Response
29280
+ */
29281
+ 200: DatabaseResponse;
29282
+ };
29283
+
29284
+ export type CreateDatabaseResponse =
29285
+ CreateDatabaseResponses[keyof CreateDatabaseResponses];
29286
+
29287
+ export type DeleteNamespaceData = {
29288
+ body?: never;
29289
+ path: {
29290
+ /**
29291
+ * Tenant Id
29292
+ *
29293
+ * Tenant identifier: a name, ObjectId, or 'active'
29294
+ */
29295
+ tenant_id: string;
29296
+ /**
29297
+ * Database name
29298
+ */
29299
+ database: string;
29300
+ /**
29301
+ * Namespace
29302
+ */
29303
+ namespace: string;
29304
+ };
29305
+ query?: never;
29306
+ url: "/{tenant_id}/knowledge/databases/{database}/namespaces/{namespace}";
29307
+ };
29308
+
29309
+ export type DeleteNamespaceErrors = {
29310
+ /**
29311
+ * Validation Error
29312
+ */
29313
+ 422: HttpValidationError;
29314
+ };
29315
+
29316
+ export type DeleteNamespaceError =
29317
+ DeleteNamespaceErrors[keyof DeleteNamespaceErrors];
29318
+
29319
+ export type DeleteNamespaceResponses = {
29320
+ /**
29321
+ * Successful Response
29322
+ */
29323
+ 202: unknown;
29324
+ };
29325
+
28449
29326
  export type CreateNamespaceData = {
28450
29327
  body: CreateNamespaceRequest;
28451
29328
  path: {