windmill-client 1.812.0 → 1.814.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.
@@ -639,10 +639,16 @@ export type ProviderConfig = {
639
639
  reasoning_effort?: string;
640
640
  };
641
641
  /**
642
- * Conversation memory configuration
642
+ * Managed memory, stored by Windmill and replayed with each request. The memory is named by a memory id, see `memory_id`. While it is off, a step can supply its history in `previous_messages`.
643
643
  */
644
644
  export type MemoryConfig = {
645
645
  kind: 'off';
646
+ } | {
647
+ kind: 'window';
648
+ /**
649
+ * Number of most recent messages to load and store. 0 turns memory off.
650
+ */
651
+ context_length: number;
646
652
  } | {
647
653
  kind: 'auto';
648
654
  /**
@@ -903,9 +909,12 @@ export type AiAgent = {
903
909
  */
904
910
  output_type?: InputTransform;
905
911
  /**
906
- * The user's prompt/message to the AI agent. Supports variable interpolation with flow.input syntax.
912
+ * The user's prompt/message to the AI agent. Supports variable interpolation with
913
+ * flow.input syntax. Required unless memory is off and `previous_messages` supplies
914
+ * the prompt; image output always needs it.
915
+ *
907
916
  */
908
- user_message: InputTransform;
917
+ user_message?: InputTransform;
909
918
  /**
910
919
  * System instructions that guide the AI's behavior, persona, and response style. Optional.
911
920
  */
@@ -923,6 +932,24 @@ export type AiAgent = {
923
932
  value: MemoryConfig;
924
933
  type: 'static';
925
934
  } | JavascriptTransform | AiTransform;
935
+ /**
936
+ * String. Names the memory this step reads and writes, overriding the memory id the run
937
+ * was started with (the chat conversation, an app chat session or the `memory_id` run
938
+ * parameter). Leave unset to use the run's memory id. A fixed value shares one memory
939
+ * across every run; an expression such as `flow_input.customer_id` keeps one memory per
940
+ * key. When it evaluates to an empty value the agent runs without memory. Read only
941
+ * while `memory` is `window`: it is ignored when memory is off, and an older `auto` or
942
+ * `manual` memory reads neither history input.
943
+ *
944
+ */
945
+ memory_id?: InputTransform;
946
+ /**
947
+ * Array of MemoryMessage. History supplied by the flow, sent between the system prompt
948
+ * and the user message. Read only while `memory` is off or absent: managed memory
949
+ * ignores it, and an older `auto` or `manual` memory reads neither history input.
950
+ *
951
+ */
952
+ previous_messages?: InputTransform;
926
953
  /**
927
954
  * JSON Schema object defining structured output format. Used when you need the AI to return data in a specific shape.
928
955
  * Supports standard JSON Schema properties: type, properties, required, items, enum, pattern, minLength, maxLength, minimum, maximum, etc.
@@ -1023,7 +1050,7 @@ export type AiAgent = {
1023
1050
  * Path of a reusable `ai_agent` resource (hybrid linking). When set, the agent brain
1024
1051
  * config (provider/model/system prompt/etc.) and tool set are resolved at runtime from
1025
1052
  * that resource; the module's input_transforms then only carry the flow-local inputs
1026
- * (user_message/user_attachments/enabled_tools).
1053
+ * (user_message, user_attachments, enabled_tools and the history inputs memory_id and previous_messages).
1027
1054
  *
1028
1055
  */
1029
1056
  agent?: string;
@@ -1796,6 +1823,10 @@ export type FlowConversation = {
1796
1823
  * Username who created the conversation
1797
1824
  */
1798
1825
  created_by: string;
1826
+ /**
1827
+ * Started from the flow editor's test panel rather than a deployed run
1828
+ */
1829
+ is_test: boolean;
1799
1830
  };
1800
1831
  export type FlowConversationMessage = {
1801
1832
  /**
@@ -1834,6 +1865,36 @@ export type FlowConversationMessage = {
1834
1865
  * Whether the message is a success
1835
1866
  */
1836
1867
  success?: boolean;
1868
+ /**
1869
+ * On a tool row, the arguments the model wrote for the call. For a script, flow or AI agent tool these exclude the inputs its step wires in, which only the tool's job holds. Null for a provider-native web search, whose query the provider does not return.
1870
+ */
1871
+ tool_arguments?: string | null;
1872
+ /**
1873
+ * On a tool row, the text the model got back from the call, or what the call failed with — the row's own text names the tool rather than the reason. For a provider-native web search, its citations.
1874
+ */
1875
+ tool_result?: string | null;
1876
+ /**
1877
+ * On an answer, the thinking that produced it; on a tool row, the thinking that led to the call. Each round's thinking is on one row. The agent job's result keeps the turn's thinking as a single string.
1878
+ */
1879
+ reasoning?: string | null;
1880
+ /**
1881
+ * The files a user message carried, as object-storage references: every flow input other than user_message that held one or a list of them, at most 20. Never file bytes or a presigned URL.
1882
+ */
1883
+ attachments?: Array<{
1884
+ /**
1885
+ * The flow input that held the file
1886
+ */
1887
+ input: string;
1888
+ /**
1889
+ * The file's key in object storage
1890
+ */
1891
+ s3: string;
1892
+ /**
1893
+ * The secondary storage holding the file, absent for the primary one
1894
+ */
1895
+ storage?: string;
1896
+ filename?: string;
1897
+ }> | null;
1837
1898
  };
1838
1899
  export type EndpointTool = {
1839
1900
  /**
@@ -1907,6 +1968,97 @@ export type AIConfig = {
1907
1968
  * Hides the Windmill AI assistant (chat, sessions, code generation, completion, fixes) from the workspace UI. Read from the workspace's own settings even when the providers served fall back to the instance config. AI agent steps and the AI sandbox in flows are unaffected.
1908
1969
  */
1909
1970
  copilot_disabled?: boolean;
1971
+ /**
1972
+ * Stops browsers from backing their AI sessions up to the workspace's object storage. Read from the workspace's own settings like `copilot_disabled`.
1973
+ */
1974
+ sessions_storage_disabled?: boolean;
1975
+ /**
1976
+ * The server deletes the backup of a session no push has reached for this many days. Unset keeps backups until the user deletes the session. Read from the workspace's own settings like `copilot_disabled`.
1977
+ */
1978
+ sessions_retention_days?: number;
1979
+ };
1980
+ export type AISessionBackupListing = {
1981
+ id: string;
1982
+ updated_at: string;
1983
+ /**
1984
+ * the session's move count when this copy was pushed; of a session two workspaces list, the copy with the higher one is the later
1985
+ */
1986
+ epoch: number;
1987
+ };
1988
+ export type AISessionBackupImage = {
1989
+ chat_id: string;
1990
+ id: string;
1991
+ data_url: string;
1992
+ };
1993
+ export type AISessionBackupChat = {
1994
+ id: string;
1995
+ record: {
1996
+ [key: string]: unknown;
1997
+ };
1998
+ };
1999
+ export type AISessionBackup = {
2000
+ id: string;
2001
+ head: {
2002
+ [key: string]: unknown;
2003
+ };
2004
+ chats: Array<AISessionBackupChat>;
2005
+ images: Array<AISessionBackupImage>;
2006
+ artifacts?: {
2007
+ [key: string]: unknown;
2008
+ };
2009
+ next?: AISessionBackupCursor;
2010
+ /**
2011
+ * a fingerprint of the session's listing; pages of one session whose fingerprints differ do not belong together
2012
+ */
2013
+ listing: string;
2014
+ /**
2015
+ * the backup kept changing while this page was read, so it may mix two versions; the browser starts the session over
2016
+ */
2017
+ moved?: boolean;
2018
+ };
2019
+ /**
2020
+ * where a pull of a session that did not fit one answer whole picks up; the rest of the session follows a pull naming that session alone with this as `resume`
2021
+ */
2022
+ export type AISessionBackupCursor = {
2023
+ id: string;
2024
+ images: boolean;
2025
+ after: string;
2026
+ };
2027
+ export type AISessionBackupPush = {
2028
+ id: string;
2029
+ head?: {
2030
+ [key: string]: unknown;
2031
+ };
2032
+ chats?: Array<AISessionBackupChat>;
2033
+ images?: Array<AISessionBackupImage>;
2034
+ artifacts?: {
2035
+ [key: string]: unknown;
2036
+ };
2037
+ delete_chats?: Array<(string)>;
2038
+ delete_images?: Array<{
2039
+ chat_id: string;
2040
+ id: string;
2041
+ }>;
2042
+ /**
2043
+ * more parts of this session follow, in this push or a later one; the session is not listed on this one. Such a part names its push (`push`), or it is refused
2044
+ */
2045
+ partial?: boolean;
2046
+ /**
2047
+ * a part of a push of the session whole; the head is on the part that opens it, which replaces whatever the storage holds of the session, and every piece the browser has is on one of them. An incremental part instead rides on a session the storage lists and is refused with needs_whole when it lists none
2048
+ */
2049
+ whole?: boolean;
2050
+ /**
2051
+ * a push split over several parts names itself on each with a token the browser draws; the part that opens it unlists the session and the last part lists it again, and a later part is written only while that token is the one there (refused with needs_whole otherwise)
2052
+ */
2053
+ push?: string;
2054
+ /**
2055
+ * this part opens the push named by `push`
2056
+ */
2057
+ opens?: boolean;
2058
+ /**
2059
+ * the session's move count (its record's `moves`), kept with the marker that lists the session; an incremental part rides on the marker of the same count
2060
+ */
2061
+ epoch?: number;
1910
2062
  };
1911
2063
  /**
1912
2064
  * Read-only. Present when the workspace has no AI provider of its own and is running on Windmill's free tier. Ignored on write.
@@ -2041,6 +2193,10 @@ export type RunnableItem = {
2041
2193
  auto_kind?: string;
2042
2194
  use_codebase?: boolean;
2043
2195
  has_deploy_errors?: boolean;
2196
+ /**
2197
+ * flow-only. `chat_input_enabled` of the flow's value, projected so the list can mark flows that open as a chat. Omitted when the value has no such field.
2198
+ */
2199
+ chat_input_enabled?: boolean;
2044
2200
  raw_app?: boolean;
2045
2201
  execution_mode?: string;
2046
2202
  id?: number;
@@ -8111,6 +8267,14 @@ export type GetSessionWorkspaceStatusData = {
8111
8267
  export type GetSessionWorkspaceStatusResponse = {
8112
8268
  [key: string]: ('active' | 'archived' | 'deleted');
8113
8269
  };
8270
+ export type GetSessionWorkspaceRetentionData = {
8271
+ requestBody: {
8272
+ workspace_ids: Array<(string)>;
8273
+ };
8274
+ };
8275
+ export type GetSessionWorkspaceRetentionResponse = {
8276
+ [key: string]: (number);
8277
+ };
8114
8278
  export type GetWorkspaceAsSuperAdminData = {
8115
8279
  workspace: string;
8116
8280
  };
@@ -10659,6 +10823,14 @@ export type ListFlowsData = {
10659
10823
  };
10660
10824
  export type ListFlowsResponse = Array<(Flow & {
10661
10825
  draft_only?: boolean;
10826
+ /**
10827
+ * `chat_input_enabled` of the flow's value,
10828
+ * projected so the list can mark flows that open
10829
+ * as a chat. Omitted when the value has no such
10830
+ * field.
10831
+ *
10832
+ */
10833
+ chat_input_enabled?: boolean;
10662
10834
  /**
10663
10835
  * True when the authed user has a draft for this
10664
10836
  * flow — either no deployed row exists at this
@@ -10708,6 +10880,11 @@ export type ListFlowPathsFromWorkspaceRunnableData = {
10708
10880
  workspace: string;
10709
10881
  };
10710
10882
  export type ListFlowPathsFromWorkspaceRunnableResponse = Array<(string)>;
10883
+ export type ListFlowPathsLinkingAgentData = {
10884
+ path: string;
10885
+ workspace: string;
10886
+ };
10887
+ export type ListFlowPathsLinkingAgentResponse = Array<(string)>;
10711
10888
  export type GetFlowVersionData = {
10712
10889
  version: number;
10713
10890
  workspace: string;
@@ -12376,7 +12553,7 @@ export type RunWaitResultFlowByPathData = {
12376
12553
  */
12377
12554
  jobId?: string;
12378
12555
  /**
12379
- * memory ID for chat-enabled flows
12556
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
12380
12557
  */
12381
12558
  memoryId?: string;
12382
12559
  path: string;
@@ -12408,7 +12585,7 @@ export type RunWaitResultFlowByVersionData = {
12408
12585
  */
12409
12586
  jobId?: string;
12410
12587
  /**
12411
- * memory ID for chat-enabled flows
12588
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
12412
12589
  */
12413
12590
  memoryId?: string;
12414
12591
  /**
@@ -12443,7 +12620,7 @@ export type RunWaitResultFlowByVersionGetData = {
12443
12620
  */
12444
12621
  jobId?: string;
12445
12622
  /**
12446
- * memory ID for chat-enabled flows
12623
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
12447
12624
  */
12448
12625
  memoryId?: string;
12449
12626
  /**
@@ -12480,7 +12657,7 @@ export type RunAndStreamFlowByPathData = {
12480
12657
  */
12481
12658
  jobId?: string;
12482
12659
  /**
12483
- * memory ID for chat-enabled flows
12660
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
12484
12661
  */
12485
12662
  memoryId?: string;
12486
12663
  path: string;
@@ -12516,7 +12693,7 @@ export type RunAndStreamFlowByPathGetData = {
12516
12693
  */
12517
12694
  jobId?: string;
12518
12695
  /**
12519
- * memory ID for chat-enabled flows
12696
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
12520
12697
  */
12521
12698
  memoryId?: string;
12522
12699
  path: string;
@@ -12554,7 +12731,7 @@ export type RunAndStreamFlowByVersionData = {
12554
12731
  */
12555
12732
  jobId?: string;
12556
12733
  /**
12557
- * memory ID for chat-enabled flows
12734
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
12558
12735
  */
12559
12736
  memoryId?: string;
12560
12737
  /**
@@ -12593,7 +12770,7 @@ export type RunAndStreamFlowByVersionGetData = {
12593
12770
  */
12594
12771
  jobId?: string;
12595
12772
  /**
12596
- * memory ID for chat-enabled flows
12773
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
12597
12774
  */
12598
12775
  memoryId?: string;
12599
12776
  /**
@@ -12834,7 +13011,7 @@ export type RunFlowByPathData = {
12834
13011
  */
12835
13012
  jobId?: string;
12836
13013
  /**
12837
- * memory ID for chat-enabled flows
13014
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
12838
13015
  */
12839
13016
  memoryId?: string;
12840
13017
  /**
@@ -12881,7 +13058,7 @@ export type RunFlowByVersionData = {
12881
13058
  */
12882
13059
  jobId?: string;
12883
13060
  /**
12884
- * memory ID for chat-enabled flows
13061
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
12885
13062
  */
12886
13063
  memoryId?: string;
12887
13064
  /**
@@ -13176,7 +13353,7 @@ export type RunFlowPreviewData = {
13176
13353
  */
13177
13354
  jobId?: string;
13178
13355
  /**
13179
- * memory ID for chat-enabled flows
13356
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
13180
13357
  */
13181
13358
  memoryId?: string;
13182
13359
  /**
@@ -13188,7 +13365,7 @@ export type RunFlowPreviewData = {
13188
13365
  export type RunFlowPreviewResponse = string;
13189
13366
  export type RunFlowPreviewAndWaitResultData = {
13190
13367
  /**
13191
- * memory ID for chat-enabled flows
13368
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
13192
13369
  */
13193
13370
  memoryId?: string;
13194
13371
  /**
@@ -14668,6 +14845,10 @@ export type ListFlowConversationsData = {
14668
14845
  * filter conversations by flow path
14669
14846
  */
14670
14847
  flowPath?: string;
14848
+ /**
14849
+ * which conversations to list - the flow editor's test chats, the deployed flow's own (the default), or both
14850
+ */
14851
+ kind?: 'test' | 'deployed' | 'all';
14671
14852
  /**
14672
14853
  * which page to return (start at 1, default 1)
14673
14854
  */
@@ -14679,6 +14860,20 @@ export type ListFlowConversationsData = {
14679
14860
  workspace: string;
14680
14861
  };
14681
14862
  export type ListFlowConversationsResponse = Array<FlowConversation>;
14863
+ export type UpdateFlowConversationData = {
14864
+ /**
14865
+ * conversation id
14866
+ */
14867
+ conversationId: string;
14868
+ requestBody: {
14869
+ /**
14870
+ * the chat's name
14871
+ */
14872
+ title: string;
14873
+ };
14874
+ workspace: string;
14875
+ };
14876
+ export type UpdateFlowConversationResponse = string;
14682
14877
  export type DeleteFlowConversationData = {
14683
14878
  /**
14684
14879
  * conversation id
@@ -14974,6 +15169,72 @@ export type ListAiUsageResponse = {
14974
15169
  */
14975
15170
  truncated: boolean;
14976
15171
  };
15172
+ export type ListAiSessionBackupsData = {
15173
+ workspace: string;
15174
+ };
15175
+ export type ListAiSessionBackupsResponse = {
15176
+ enabled: boolean;
15177
+ /**
15178
+ * names the storage answered from; sync state recorded against another one is void
15179
+ */
15180
+ storage_id?: string;
15181
+ /**
15182
+ * bumped by every workspace key rotation; sync state recorded under another one is void
15183
+ */
15184
+ backup_generation?: number;
15185
+ /**
15186
+ * the storage answered from is the instance object store, standing in for a workspace without storage of its own; a removal owed to it is retired by any answer from the workspace's own storage
15187
+ */
15188
+ fallback?: boolean;
15189
+ /**
15190
+ * the newest 500 at most
15191
+ */
15192
+ sessions: Array<AISessionBackupListing>;
15193
+ /**
15194
+ * the user has more sessions than the answer names
15195
+ */
15196
+ truncated?: boolean;
15197
+ };
15198
+ export type PullAiSessionBackupsData = {
15199
+ requestBody: {
15200
+ ids: Array<(string)>;
15201
+ resume?: AISessionBackupCursor;
15202
+ };
15203
+ workspace: string;
15204
+ };
15205
+ export type PullAiSessionBackupsResponse = {
15206
+ enabled: boolean;
15207
+ storage_id?: string;
15208
+ backup_generation?: number;
15209
+ fallback?: boolean;
15210
+ sessions: Array<AISessionBackup>;
15211
+ deferred: Array<(string)>;
15212
+ };
15213
+ export type PushAiSessionBackupsData = {
15214
+ requestBody: {
15215
+ /**
15216
+ * the email the push was prepared for; refused with a 409 when it is not the caller's
15217
+ */
15218
+ owner: string;
15219
+ sessions?: Array<AISessionBackupPush>;
15220
+ removed?: Array<(string)>;
15221
+ };
15222
+ workspace: string;
15223
+ };
15224
+ export type PushAiSessionBackupsResponse = {
15225
+ enabled: boolean;
15226
+ storage_id?: string;
15227
+ backup_generation?: number;
15228
+ fallback?: boolean;
15229
+ results: Array<{
15230
+ id: string;
15231
+ error?: string;
15232
+ /**
15233
+ * nothing was written and the session must be pushed whole again; an incremental part found no listed session to ride on (the backup was removed, or a push split over parts is in progress or was abandoned), or a later part of a push split over parts found another push had superseded it
15234
+ */
15235
+ needs_whole?: boolean;
15236
+ }>;
15237
+ };
14977
15238
  export type ShareAiArtifactData = {
14978
15239
  requestBody: {
14979
15240
  /**
@@ -19923,6 +20184,23 @@ export type $OpenApiTs = {
19923
20184
  };
19924
20185
  };
19925
20186
  };
20187
+ '/workspaces/session_workspace_retention': {
20188
+ post: {
20189
+ req: {
20190
+ requestBody: {
20191
+ workspace_ids: Array<(string)>;
20192
+ };
20193
+ };
20194
+ res: {
20195
+ /**
20196
+ * map of workspace id to its `ai_config.sessions_retention_days`; a workspace without a retention, or one the caller cannot be authenticated into, is absent
20197
+ */
20198
+ 200: {
20199
+ [key: string]: (number);
20200
+ };
20201
+ };
20202
+ };
20203
+ };
19926
20204
  '/w/{workspace}/workspaces/get_as_superadmin': {
19927
20205
  get: {
19928
20206
  req: {
@@ -24722,6 +25000,14 @@ export type $OpenApiTs = {
24722
25000
  */
24723
25001
  200: Array<(Flow & {
24724
25002
  draft_only?: boolean;
25003
+ /**
25004
+ * `chat_input_enabled` of the flow's value,
25005
+ * projected so the list can mark flows that open
25006
+ * as a chat. Omitted when the value has no such
25007
+ * field.
25008
+ *
25009
+ */
25010
+ chat_input_enabled?: boolean;
24725
25011
  /**
24726
25012
  * True when the authed user has a draft for this
24727
25013
  * flow — either no deployed row exists at this
@@ -24801,6 +25087,20 @@ export type $OpenApiTs = {
24801
25087
  };
24802
25088
  };
24803
25089
  };
25090
+ '/w/{workspace}/flows/list_paths_linking_agent/{path}': {
25091
+ get: {
25092
+ req: {
25093
+ path: string;
25094
+ workspace: string;
25095
+ };
25096
+ res: {
25097
+ /**
25098
+ * paths of the flows linking the `ai_agent` resource, as of their last deploy
25099
+ */
25100
+ 200: Array<(string)>;
25101
+ };
25102
+ };
25103
+ };
24804
25104
  '/w/{workspace}/flows/get/v/{version}': {
24805
25105
  get: {
24806
25106
  req: {
@@ -27535,7 +27835,7 @@ export type $OpenApiTs = {
27535
27835
  */
27536
27836
  jobId?: string;
27537
27837
  /**
27538
- * memory ID for chat-enabled flows
27838
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
27539
27839
  */
27540
27840
  memoryId?: string;
27541
27841
  path: string;
@@ -27576,7 +27876,7 @@ export type $OpenApiTs = {
27576
27876
  */
27577
27877
  jobId?: string;
27578
27878
  /**
27579
- * memory ID for chat-enabled flows
27879
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
27580
27880
  */
27581
27881
  memoryId?: string;
27582
27882
  /**
@@ -27618,7 +27918,7 @@ export type $OpenApiTs = {
27618
27918
  */
27619
27919
  jobId?: string;
27620
27920
  /**
27621
- * memory ID for chat-enabled flows
27921
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
27622
27922
  */
27623
27923
  memoryId?: string;
27624
27924
  /**
@@ -27664,7 +27964,7 @@ export type $OpenApiTs = {
27664
27964
  */
27665
27965
  jobId?: string;
27666
27966
  /**
27667
- * memory ID for chat-enabled flows
27967
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
27668
27968
  */
27669
27969
  memoryId?: string;
27670
27970
  path: string;
@@ -27707,7 +28007,7 @@ export type $OpenApiTs = {
27707
28007
  */
27708
28008
  jobId?: string;
27709
28009
  /**
27710
- * memory ID for chat-enabled flows
28010
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
27711
28011
  */
27712
28012
  memoryId?: string;
27713
28013
  path: string;
@@ -27754,7 +28054,7 @@ export type $OpenApiTs = {
27754
28054
  */
27755
28055
  jobId?: string;
27756
28056
  /**
27757
- * memory ID for chat-enabled flows
28057
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
27758
28058
  */
27759
28059
  memoryId?: string;
27760
28060
  /**
@@ -27800,7 +28100,7 @@ export type $OpenApiTs = {
27800
28100
  */
27801
28101
  jobId?: string;
27802
28102
  /**
27803
- * memory ID for chat-enabled flows
28103
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
27804
28104
  */
27805
28105
  memoryId?: string;
27806
28106
  /**
@@ -28109,7 +28409,7 @@ export type $OpenApiTs = {
28109
28409
  */
28110
28410
  jobId?: string;
28111
28411
  /**
28112
- * memory ID for chat-enabled flows
28412
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
28113
28413
  */
28114
28414
  memoryId?: string;
28115
28415
  /**
@@ -28165,7 +28465,7 @@ export type $OpenApiTs = {
28165
28465
  */
28166
28466
  jobId?: string;
28167
28467
  /**
28168
- * memory ID for chat-enabled flows
28468
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
28169
28469
  */
28170
28470
  memoryId?: string;
28171
28471
  /**
@@ -28577,7 +28877,7 @@ export type $OpenApiTs = {
28577
28877
  */
28578
28878
  jobId?: string;
28579
28879
  /**
28580
- * memory ID for chat-enabled flows
28880
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
28581
28881
  */
28582
28882
  memoryId?: string;
28583
28883
  /**
@@ -28598,7 +28898,7 @@ export type $OpenApiTs = {
28598
28898
  post: {
28599
28899
  req: {
28600
28900
  /**
28601
- * memory ID for chat-enabled flows
28901
+ * Memory id for the flow's AI agent steps. A uuid is used as is; any other string is hashed within the workspace and flow, so the same string always names the same memory of that flow.
28602
28902
  */
28603
28903
  memoryId?: string;
28604
28904
  /**
@@ -30684,6 +30984,10 @@ export type $OpenApiTs = {
30684
30984
  * filter conversations by flow path
30685
30985
  */
30686
30986
  flowPath?: string;
30987
+ /**
30988
+ * which conversations to list - the flow editor's test chats, the deployed flow's own (the default), or both
30989
+ */
30990
+ kind?: 'test' | 'deployed' | 'all';
30687
30991
  /**
30688
30992
  * which page to return (start at 1, default 1)
30689
30993
  */
@@ -30702,6 +31006,29 @@ export type $OpenApiTs = {
30702
31006
  };
30703
31007
  };
30704
31008
  };
31009
+ '/w/{workspace}/flow_conversations/update/{conversation_id}': {
31010
+ post: {
31011
+ req: {
31012
+ /**
31013
+ * conversation id
31014
+ */
31015
+ conversationId: string;
31016
+ requestBody: {
31017
+ /**
31018
+ * the chat's name
31019
+ */
31020
+ title: string;
31021
+ };
31022
+ workspace: string;
31023
+ };
31024
+ res: {
31025
+ /**
31026
+ * flow conversation updated
31027
+ */
31028
+ 200: string;
31029
+ };
31030
+ };
31031
+ };
30705
31032
  '/w/{workspace}/flow_conversations/delete/{conversation_id}': {
30706
31033
  delete: {
30707
31034
  req: {
@@ -31176,6 +31503,99 @@ export type $OpenApiTs = {
31176
31503
  };
31177
31504
  };
31178
31505
  };
31506
+ '/w/{workspace}/ai/sessions/list': {
31507
+ get: {
31508
+ req: {
31509
+ workspace: string;
31510
+ };
31511
+ res: {
31512
+ /**
31513
+ * backups, newest first; `enabled` is false when the workspace has no storage for them
31514
+ */
31515
+ 200: {
31516
+ enabled: boolean;
31517
+ /**
31518
+ * names the storage answered from; sync state recorded against another one is void
31519
+ */
31520
+ storage_id?: string;
31521
+ /**
31522
+ * bumped by every workspace key rotation; sync state recorded under another one is void
31523
+ */
31524
+ backup_generation?: number;
31525
+ /**
31526
+ * the storage answered from is the instance object store, standing in for a workspace without storage of its own; a removal owed to it is retired by any answer from the workspace's own storage
31527
+ */
31528
+ fallback?: boolean;
31529
+ /**
31530
+ * the newest 500 at most
31531
+ */
31532
+ sessions: Array<AISessionBackupListing>;
31533
+ /**
31534
+ * the user has more sessions than the answer names
31535
+ */
31536
+ truncated?: boolean;
31537
+ };
31538
+ };
31539
+ };
31540
+ };
31541
+ '/w/{workspace}/ai/sessions/pull': {
31542
+ post: {
31543
+ req: {
31544
+ requestBody: {
31545
+ ids: Array<(string)>;
31546
+ resume?: AISessionBackupCursor;
31547
+ };
31548
+ workspace: string;
31549
+ };
31550
+ res: {
31551
+ /**
31552
+ * the backups found; `deferred` lists ids that did not fit the response budget
31553
+ */
31554
+ 200: {
31555
+ enabled: boolean;
31556
+ storage_id?: string;
31557
+ backup_generation?: number;
31558
+ fallback?: boolean;
31559
+ sessions: Array<AISessionBackup>;
31560
+ deferred: Array<(string)>;
31561
+ };
31562
+ };
31563
+ };
31564
+ };
31565
+ '/w/{workspace}/ai/sessions/push': {
31566
+ post: {
31567
+ req: {
31568
+ requestBody: {
31569
+ /**
31570
+ * the email the push was prepared for; refused with a 409 when it is not the caller's
31571
+ */
31572
+ owner: string;
31573
+ sessions?: Array<AISessionBackupPush>;
31574
+ removed?: Array<(string)>;
31575
+ };
31576
+ workspace: string;
31577
+ };
31578
+ res: {
31579
+ /**
31580
+ * one result per session written or removed, in request order
31581
+ */
31582
+ 200: {
31583
+ enabled: boolean;
31584
+ storage_id?: string;
31585
+ backup_generation?: number;
31586
+ fallback?: boolean;
31587
+ results: Array<{
31588
+ id: string;
31589
+ error?: string;
31590
+ /**
31591
+ * nothing was written and the session must be pushed whole again; an incremental part found no listed session to ride on (the backup was removed, or a push split over parts is in progress or was abandoned), or a later part of a push split over parts found another push had superseded it
31592
+ */
31593
+ needs_whole?: boolean;
31594
+ }>;
31595
+ };
31596
+ };
31597
+ };
31598
+ };
31179
31599
  '/w/{workspace}/ai/shared_artifacts/share': {
31180
31600
  post: {
31181
31601
  req: {