@swiss-ai-hub/web 0.317.1 → 0.319.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.
@@ -355,6 +355,7 @@ export type AgentClassDto = {
355
355
  | Checkbox
356
356
  | ChipsInput
357
357
  | ColorPicker
358
+ | CronInput
358
359
  | DatePicker
359
360
  | Group
360
361
  | IconSelector
@@ -419,6 +420,12 @@ export type AgentClassDto = {
419
420
  * Whether the agent class can participate in a chat-based conversation
420
421
  */
421
422
  is_conversational: boolean;
423
+ /**
424
+ * Is Schedulable
425
+ *
426
+ * Whether the agent class can be run automatically on a cron schedule
427
+ */
428
+ is_schedulable?: boolean;
422
429
  /**
423
430
  * Is Online
424
431
  *
@@ -482,6 +489,7 @@ export type AgentConfigDto = {
482
489
  | Checkbox
483
490
  | ChipsInput
484
491
  | ColorPicker
492
+ | CronInput
485
493
  | DatePicker
486
494
  | Group
487
495
  | IconSelector
@@ -3850,6 +3858,7 @@ export type ContextualizedAgentEvent = {
3850
3858
  | ToolEvent
3851
3859
  | UserMessageEvent
3852
3860
  | RagStartEvent
3861
+ | ScheduledStartEvent
3853
3862
  | ExceptionEvent
3854
3863
  | RagSuccessStopEvent
3855
3864
  | RagFailureStopEvent
@@ -4141,6 +4150,144 @@ export type CreateTokenResponse = {
4141
4150
  token: string;
4142
4151
  };
4143
4152
 
4153
+ /**
4154
+ * CronInput
4155
+ *
4156
+ * A FormKit element for editing the cron schedule of a schedulable agent profile.
4157
+ *
4158
+ * The element renders the five cron positions plus a timezone selector, and the submitted value
4159
+ * matches the fields of `AgentSchedule`:
4160
+ * {
4161
+ * "minute": str,
4162
+ * "hour": str,
4163
+ * "day_of_month": str,
4164
+ * "month": str,
4165
+ * "day_of_week": str,
4166
+ * "timezone": str,
4167
+ * }
4168
+ *
4169
+ * Presets and the plain-language summary of the current schedule are delivered by the Admin UI
4170
+ * (see the cron schedule configuration UI issue); this element only declares the contract.
4171
+ *
4172
+ * ### Form Duality
4173
+ * ```python
4174
+ * from swiss_ai_hub.core.form.elements.cron_input import CronInput
4175
+ * from swiss_ai_hub.core.scheduling.agent_schedule import AgentSchedule
4176
+ *
4177
+ * class MyAgentConfig(AgentConfig):
4178
+ * schedule: Annotated[
4179
+ * AgentSchedule | CronInput | None,
4180
+ * Field(description="When this profile runs automatically"),
4181
+ * ] = None
4182
+ *
4183
+ * # Form mode - for rendering:
4184
+ * config = MyAgentConfig(schedule=CronInput(label=LocaleString(en="Schedule")))
4185
+ *
4186
+ * # Data mode - from submission (Pydantic validates into AgentSchedule):
4187
+ * config = MyAgentConfig(schedule=AgentSchedule(hour="12", timezone="Europe/Zurich"))
4188
+ * ```
4189
+ */
4190
+ export type CronInput = {
4191
+ /**
4192
+ * Is Formkit Element
4193
+ *
4194
+ * Indicates that this element is a FormKit element
4195
+ */
4196
+ is_formkit_element?: true;
4197
+ /**
4198
+ * If
4199
+ *
4200
+ * Conditional expression to show this element
4201
+ */
4202
+ if?: string | null;
4203
+ /**
4204
+ * Id
4205
+ *
4206
+ * Unique identifier for this element
4207
+ */
4208
+ id?: string | null;
4209
+ /**
4210
+ * Nullable
4211
+ *
4212
+ * Render with a sibling toggle that sets this field to null when off
4213
+ */
4214
+ nullable?: boolean;
4215
+ /**
4216
+ * Defaultenabled
4217
+ *
4218
+ * For a nullable element, whether its toggle should start enabled on a fresh form (i.e. the field's data default is non-null). Ignored for non-nullable elements.
4219
+ */
4220
+ defaultEnabled?: boolean | null;
4221
+ /**
4222
+ * Formkit
4223
+ *
4224
+ * Cron schedule input element.
4225
+ */
4226
+ formkit?: "cronInput";
4227
+ /**
4228
+ * Name
4229
+ *
4230
+ * Name of this field
4231
+ */
4232
+ name?: string | null;
4233
+ /**
4234
+ * Label
4235
+ *
4236
+ * Label of this field
4237
+ */
4238
+ label: LocaleString | string;
4239
+ /**
4240
+ * Help
4241
+ *
4242
+ * Help text of this field
4243
+ */
4244
+ help?: LocaleString | string | null;
4245
+ /**
4246
+ * Value
4247
+ *
4248
+ * Default value for this field
4249
+ */
4250
+ value?:
4251
+ | string
4252
+ | number
4253
+ | number
4254
+ | boolean
4255
+ | Array<string>
4256
+ | {
4257
+ [key: string]: string;
4258
+ }
4259
+ | null;
4260
+ /**
4261
+ * Required
4262
+ *
4263
+ * Whether this field is required
4264
+ */
4265
+ required?: boolean;
4266
+ /**
4267
+ * Additional Validation Rules
4268
+ *
4269
+ * Validation expression
4270
+ */
4271
+ additional_validation_rules?: string | null;
4272
+ /**
4273
+ * Timezoneplaceholder
4274
+ *
4275
+ * Placeholder for the timezone select
4276
+ */
4277
+ timezonePlaceholder?: LocaleString | string | null;
4278
+ /**
4279
+ * Filter
4280
+ *
4281
+ * Whether to enable filtering/search on the timezone select
4282
+ */
4283
+ filter?: boolean;
4284
+ /**
4285
+ * Validation
4286
+ */
4287
+ readonly validation: string;
4288
+ [key: string]: unknown;
4289
+ };
4290
+
4144
4291
  /**
4145
4292
  * Custom
4146
4293
  *
@@ -5638,6 +5785,12 @@ export type FullAgentInstanceDto = {
5638
5785
  * Whether the agent can participate in a chat-based conversation
5639
5786
  */
5640
5787
  is_conversational: boolean;
5788
+ /**
5789
+ * Is Schedulable
5790
+ *
5791
+ * Whether the agent can be run automatically on a cron schedule
5792
+ */
5793
+ is_schedulable?: boolean;
5641
5794
  /**
5642
5795
  * Start Events
5643
5796
  *
@@ -5749,6 +5902,7 @@ export type FullProcessInstanceDto = {
5749
5902
  | Checkbox
5750
5903
  | ChipsInput
5751
5904
  | ColorPicker
5905
+ | CronInput
5752
5906
  | DatePicker
5753
5907
  | Group
5754
5908
  | IconSelector
@@ -5917,6 +6071,12 @@ export type Group = {
5917
6071
  * Optional label displayed above the group
5918
6072
  */
5919
6073
  label?: LocaleString | string | null;
6074
+ /**
6075
+ * Help
6076
+ *
6077
+ * Optional explanatory text rendered on the group's enable toggle
6078
+ */
6079
+ help?: LocaleString | string | null;
5920
6080
  /**
5921
6081
  * Children
5922
6082
  *
@@ -5929,6 +6089,7 @@ export type Group = {
5929
6089
  | Checkbox
5930
6090
  | ChipsInput
5931
6091
  | ColorPicker
6092
+ | CronInput
5932
6093
  | DatePicker
5933
6094
  | Group
5934
6095
  | IconSelector
@@ -6284,6 +6445,7 @@ export type HumanInDto = {
6284
6445
  | Checkbox
6285
6446
  | ChipsInput
6286
6447
  | ColorPicker
6448
+ | CronInput
6287
6449
  | DatePicker
6288
6450
  | Group
6289
6451
  | IconSelector
@@ -6364,6 +6526,7 @@ export type HumanInSpecs = {
6364
6526
  | Checkbox
6365
6527
  | ChipsInput
6366
6528
  | ColorPicker
6529
+ | CronInput
6367
6530
  | DatePicker
6368
6531
  | Group
6369
6532
  | IconSelector
@@ -9134,6 +9297,13 @@ export type LocaleInput = {
9134
9297
  placeholder?: LocaleString | string | null;
9135
9298
  /**
9136
9299
  * Validation
9300
+ *
9301
+ * Emits `localeRequired` where other elements emit FormKit's `required`.
9302
+ *
9303
+ * FormKit's `required` rule only asks whether a value is present, and this element's
9304
+ * value is always a `{de, en, fr, it}` object — non-empty, therefore passing, even when
9305
+ * every locale inside it is blank. `localeRequired` (registered in the frontend FormKit
9306
+ * config) looks at the locale values themselves.
9137
9307
  */
9138
9308
  readonly validation: string;
9139
9309
  [key: string]: unknown;
@@ -9420,6 +9590,10 @@ export type MailFetchedEvent = {
9420
9590
  * References to the message's attachments stored in S3.
9421
9591
  */
9422
9592
  attachments?: Array<MailAttachmentRef>;
9593
+ /**
9594
+ * Reference to the original RFC822 message stored in S3, or null when it was not stored.
9595
+ */
9596
+ original_message?: MailMessageRef | null;
9423
9597
  /**
9424
9598
  * Event Name
9425
9599
  *
@@ -9436,6 +9610,43 @@ export type MailFetchedEvent = {
9436
9610
  [key: string]: unknown;
9437
9611
  };
9438
9612
 
9613
+ /**
9614
+ * MailMessageRef
9615
+ *
9616
+ * Reference to a fetched message's original RFC822 bytes, stored in S3 rather than carried in the event.
9617
+ *
9618
+ * Mirrors ``MailAttachmentRef``: the message is referenced by ``file_id`` so the raw mail — which may be
9619
+ * orders of magnitude larger than the summary the event carries — never enters the audit trail or the
9620
+ * WebSocket stream. The stored object is the message **verbatim**, so it also preserves what the event
9621
+ * deliberately omits: the recipients and the untrusted HTML body.
9622
+ */
9623
+ export type MailMessageRef = {
9624
+ /**
9625
+ * Filename
9626
+ *
9627
+ * Filename the message is stored under, e.g. '1234.eml'. Must not contain path separators.
9628
+ */
9629
+ filename: string;
9630
+ /**
9631
+ * Content Type
9632
+ *
9633
+ * MIME type of the stored message.
9634
+ */
9635
+ content_type?: string;
9636
+ /**
9637
+ * File Id
9638
+ *
9639
+ * UUID4 file identifier; the S3 object key is derived from the agent identity at runtime.
9640
+ */
9641
+ file_id: string;
9642
+ /**
9643
+ * Size Bytes
9644
+ *
9645
+ * Size of the stored message in bytes.
9646
+ */
9647
+ size_bytes: number;
9648
+ };
9649
+
9439
9650
  /**
9440
9651
  * MailMovedEvent
9441
9652
  *
@@ -10000,6 +10211,12 @@ export type MinimalAgentInstanceDto = {
10000
10211
  * Whether the agent can participate in a chat-based conversation
10001
10212
  */
10002
10213
  is_conversational: boolean;
10214
+ /**
10215
+ * Is Schedulable
10216
+ *
10217
+ * Whether the agent can be run automatically on a cron schedule
10218
+ */
10219
+ is_schedulable?: boolean;
10003
10220
  };
10004
10221
 
10005
10222
  /**
@@ -11476,6 +11693,7 @@ export type ProcessClassDto = {
11476
11693
  | Checkbox
11477
11694
  | ChipsInput
11478
11695
  | ColorPicker
11696
+ | CronInput
11479
11697
  | DatePicker
11480
11698
  | Group
11481
11699
  | IconSelector
@@ -12510,6 +12728,7 @@ export type Repeater = {
12510
12728
  | Checkbox
12511
12729
  | ChipsInput
12512
12730
  | ColorPicker
12731
+ | CronInput
12513
12732
  | DatePicker
12514
12733
  | Group
12515
12734
  | IconSelector
@@ -13092,6 +13311,70 @@ export type RunStatistics = {
13092
13311
  agent: MinimalAgentInstanceDto;
13093
13312
  };
13094
13313
 
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
+
13095
13378
  /**
13096
13379
  * SearchContextCostPerQueryDTO
13097
13380
  *
@@ -14397,9 +14680,9 @@ export type TextToSpeechRequest = {
14397
14680
  /**
14398
14681
  * Model
14399
14682
  *
14400
- * The TTS model to use. Available options: 'tts-1' or 'tts-1-hd'.
14683
+ * The TTS model to use, e.g. 'speech/<model-name>'.
14401
14684
  */
14402
- model: "tts-1" | "tts-1-hd";
14685
+ model: string;
14403
14686
  /**
14404
14687
  * Input
14405
14688
  *
@@ -16605,6 +16888,7 @@ export type AgentClassDtoWritable = {
16605
16888
  | CheckboxWritable
16606
16889
  | ChipsInputWritable
16607
16890
  | ColorPickerWritable
16891
+ | CronInputWritable
16608
16892
  | DatePickerWritable
16609
16893
  | GroupWritable
16610
16894
  | IconSelectorWritable
@@ -16669,6 +16953,12 @@ export type AgentClassDtoWritable = {
16669
16953
  * Whether the agent class can participate in a chat-based conversation
16670
16954
  */
16671
16955
  is_conversational: boolean;
16956
+ /**
16957
+ * Is Schedulable
16958
+ *
16959
+ * Whether the agent class can be run automatically on a cron schedule
16960
+ */
16961
+ is_schedulable?: boolean;
16672
16962
  /**
16673
16963
  * Is Online
16674
16964
  *
@@ -16732,6 +17022,7 @@ export type AgentConfigDtoWritable = {
16732
17022
  | CheckboxWritable
16733
17023
  | ChipsInputWritable
16734
17024
  | ColorPickerWritable
17025
+ | CronInputWritable
16735
17026
  | DatePickerWritable
16736
17027
  | GroupWritable
16737
17028
  | IconSelectorWritable
@@ -18248,6 +18539,7 @@ export type ContextualizedAgentEventWritable = {
18248
18539
  | ToolEventWritable
18249
18540
  | UserMessageEventWritable
18250
18541
  | RagStartEventWritable
18542
+ | ScheduledStartEventWritable
18251
18543
  | ExceptionEventWritable
18252
18544
  | RagSuccessStopEventWritable
18253
18545
  | RagFailureStopEventWritable
@@ -18341,6 +18633,140 @@ export type ConversationTitleEventWritable = {
18341
18633
  [key: string]: unknown;
18342
18634
  };
18343
18635
 
18636
+ /**
18637
+ * CronInput
18638
+ *
18639
+ * A FormKit element for editing the cron schedule of a schedulable agent profile.
18640
+ *
18641
+ * The element renders the five cron positions plus a timezone selector, and the submitted value
18642
+ * matches the fields of `AgentSchedule`:
18643
+ * {
18644
+ * "minute": str,
18645
+ * "hour": str,
18646
+ * "day_of_month": str,
18647
+ * "month": str,
18648
+ * "day_of_week": str,
18649
+ * "timezone": str,
18650
+ * }
18651
+ *
18652
+ * Presets and the plain-language summary of the current schedule are delivered by the Admin UI
18653
+ * (see the cron schedule configuration UI issue); this element only declares the contract.
18654
+ *
18655
+ * ### Form Duality
18656
+ * ```python
18657
+ * from swiss_ai_hub.core.form.elements.cron_input import CronInput
18658
+ * from swiss_ai_hub.core.scheduling.agent_schedule import AgentSchedule
18659
+ *
18660
+ * class MyAgentConfig(AgentConfig):
18661
+ * schedule: Annotated[
18662
+ * AgentSchedule | CronInput | None,
18663
+ * Field(description="When this profile runs automatically"),
18664
+ * ] = None
18665
+ *
18666
+ * # Form mode - for rendering:
18667
+ * config = MyAgentConfig(schedule=CronInput(label=LocaleString(en="Schedule")))
18668
+ *
18669
+ * # Data mode - from submission (Pydantic validates into AgentSchedule):
18670
+ * config = MyAgentConfig(schedule=AgentSchedule(hour="12", timezone="Europe/Zurich"))
18671
+ * ```
18672
+ */
18673
+ export type CronInputWritable = {
18674
+ /**
18675
+ * Is Formkit Element
18676
+ *
18677
+ * Indicates that this element is a FormKit element
18678
+ */
18679
+ is_formkit_element?: true;
18680
+ /**
18681
+ * If
18682
+ *
18683
+ * Conditional expression to show this element
18684
+ */
18685
+ if?: string | null;
18686
+ /**
18687
+ * Id
18688
+ *
18689
+ * Unique identifier for this element
18690
+ */
18691
+ id?: string | null;
18692
+ /**
18693
+ * Nullable
18694
+ *
18695
+ * Render with a sibling toggle that sets this field to null when off
18696
+ */
18697
+ nullable?: boolean;
18698
+ /**
18699
+ * Defaultenabled
18700
+ *
18701
+ * For a nullable element, whether its toggle should start enabled on a fresh form (i.e. the field's data default is non-null). Ignored for non-nullable elements.
18702
+ */
18703
+ defaultEnabled?: boolean | null;
18704
+ /**
18705
+ * Formkit
18706
+ *
18707
+ * Cron schedule input element.
18708
+ */
18709
+ formkit?: "cronInput";
18710
+ /**
18711
+ * Name
18712
+ *
18713
+ * Name of this field
18714
+ */
18715
+ name?: string | null;
18716
+ /**
18717
+ * Label
18718
+ *
18719
+ * Label of this field
18720
+ */
18721
+ label: LocaleString | string;
18722
+ /**
18723
+ * Help
18724
+ *
18725
+ * Help text of this field
18726
+ */
18727
+ help?: LocaleString | string | null;
18728
+ /**
18729
+ * Value
18730
+ *
18731
+ * Default value for this field
18732
+ */
18733
+ value?:
18734
+ | string
18735
+ | number
18736
+ | number
18737
+ | boolean
18738
+ | Array<string>
18739
+ | {
18740
+ [key: string]: string;
18741
+ }
18742
+ | null;
18743
+ /**
18744
+ * Required
18745
+ *
18746
+ * Whether this field is required
18747
+ */
18748
+ required?: boolean;
18749
+ /**
18750
+ * Additional Validation Rules
18751
+ *
18752
+ * Validation expression
18753
+ */
18754
+ additional_validation_rules?: string | null;
18755
+ /**
18756
+ * Timezoneplaceholder
18757
+ *
18758
+ * Placeholder for the timezone select
18759
+ */
18760
+ timezonePlaceholder?: LocaleString | string | null;
18761
+ /**
18762
+ * Filter
18763
+ *
18764
+ * Whether to enable filtering/search on the timezone select
18765
+ */
18766
+ filter?: boolean;
18767
+ [key: string]: unknown;
18768
+ };
18769
+
18344
18770
  /**
18345
18771
  * DatePicker
18346
18772
  *
@@ -18851,6 +19277,12 @@ export type FullAgentInstanceDtoWritable = {
18851
19277
  * Whether the agent can participate in a chat-based conversation
18852
19278
  */
18853
19279
  is_conversational: boolean;
19280
+ /**
19281
+ * Is Schedulable
19282
+ *
19283
+ * Whether the agent can be run automatically on a cron schedule
19284
+ */
19285
+ is_schedulable?: boolean;
18854
19286
  /**
18855
19287
  * Start Events
18856
19288
  *
@@ -18962,6 +19394,7 @@ export type FullProcessInstanceDtoWritable = {
18962
19394
  | CheckboxWritable
18963
19395
  | ChipsInputWritable
18964
19396
  | ColorPickerWritable
19397
+ | CronInputWritable
18965
19398
  | DatePickerWritable
18966
19399
  | GroupWritable
18967
19400
  | IconSelectorWritable
@@ -19069,6 +19502,12 @@ export type GroupWritable = {
19069
19502
  * Optional label displayed above the group
19070
19503
  */
19071
19504
  label?: LocaleString | string | null;
19505
+ /**
19506
+ * Help
19507
+ *
19508
+ * Optional explanatory text rendered on the group's enable toggle
19509
+ */
19510
+ help?: LocaleString | string | null;
19072
19511
  /**
19073
19512
  * Children
19074
19513
  *
@@ -19081,6 +19520,7 @@ export type GroupWritable = {
19081
19520
  | CheckboxWritable
19082
19521
  | ChipsInputWritable
19083
19522
  | ColorPickerWritable
19523
+ | CronInputWritable
19084
19524
  | DatePickerWritable
19085
19525
  | GroupWritable
19086
19526
  | IconSelectorWritable
@@ -19284,6 +19724,7 @@ export type HumanInDtoWritable = {
19284
19724
  | CheckboxWritable
19285
19725
  | ChipsInputWritable
19286
19726
  | ColorPickerWritable
19727
+ | CronInputWritable
19287
19728
  | DatePickerWritable
19288
19729
  | GroupWritable
19289
19730
  | IconSelectorWritable
@@ -19364,6 +19805,7 @@ export type HumanInSpecsWritable = {
19364
19805
  | CheckboxWritable
19365
19806
  | ChipsInputWritable
19366
19807
  | ColorPickerWritable
19808
+ | CronInputWritable
19367
19809
  | DatePickerWritable
19368
19810
  | GroupWritable
19369
19811
  | IconSelectorWritable
@@ -21471,6 +21913,10 @@ export type MailFetchedEventWritable = {
21471
21913
  * References to the message's attachments stored in S3.
21472
21914
  */
21473
21915
  attachments?: Array<MailAttachmentRef>;
21916
+ /**
21917
+ * Reference to the original RFC822 message stored in S3, or null when it was not stored.
21918
+ */
21919
+ original_message?: MailMessageRef | null;
21474
21920
  [key: string]: unknown;
21475
21921
  };
21476
21922
 
@@ -21649,6 +22095,12 @@ export type MinimalAgentInstanceDtoWritable = {
21649
22095
  * Whether the agent can participate in a chat-based conversation
21650
22096
  */
21651
22097
  is_conversational: boolean;
22098
+ /**
22099
+ * Is Schedulable
22100
+ *
22101
+ * Whether the agent can be run automatically on a cron schedule
22102
+ */
22103
+ is_schedulable?: boolean;
21652
22104
  };
21653
22105
 
21654
22106
  /**
@@ -22262,6 +22714,7 @@ export type ProcessClassDtoWritable = {
22262
22714
  | CheckboxWritable
22263
22715
  | ChipsInputWritable
22264
22716
  | ColorPickerWritable
22717
+ | CronInputWritable
22265
22718
  | DatePickerWritable
22266
22719
  | GroupWritable
22267
22720
  | IconSelectorWritable
@@ -22933,6 +23386,7 @@ export type RepeaterWritable = {
22933
23386
  | CheckboxWritable
22934
23387
  | ChipsInputWritable
22935
23388
  | ColorPickerWritable
23389
+ | CronInputWritable
22936
23390
  | DatePickerWritable
22937
23391
  | GroupWritable
22938
23392
  | IconSelectorWritable
@@ -23318,6 +23772,57 @@ export type RunStatisticsWritable = {
23318
23772
  agent: MinimalAgentInstanceDtoWritable;
23319
23773
  };
23320
23774
 
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
+
23321
23826
  /**
23322
23827
  * Select
23323
23828
  *