lua-cli 3.54.0 → 3.56.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.
@@ -2885,15 +2885,6 @@ export declare interface ChannelSendTarget {
2885
2885
  identity?: UserIdentityRef;
2886
2886
  }
2887
2887
 
2888
- /**
2889
- * Wire-format types for `GET /chat/history/:agentId` and the VM-sandbox
2890
- * `User.getChatHistory()` API. Both paths return the same shape.
2891
- *
2892
- * Shared between lua-core (HTTP controller + VM devtools) and lua-cli
2893
- * (HTTP client typing for `lua test`). Also shared with lua-api's
2894
- * `thread.service.ts` (admin org-thread listing) so the parser never
2895
- * diverges across services.
2896
- */
2897
2888
  /**
2898
2889
  * One content part of a chat-history message.
2899
2890
  *
@@ -2964,6 +2955,8 @@ export declare interface ChatHistoryMessage {
2964
2955
  servedModel?: string;
2965
2956
  /** True when the turn reached that model through the Auto selector. */
2966
2957
  autoModelRequested?: boolean;
2958
+ /** On an assistant message: the id the reply streamed under, which its usage and ledger rows carry. */
2959
+ turnId?: string;
2967
2960
  author?: {
2968
2961
  userId: string;
2969
2962
  };
@@ -2973,6 +2966,8 @@ export declare interface ChatHistoryMessage {
2973
2966
  };
2974
2967
  /** On a user message: the id the client gave the turn when it sent it, so it can tell which of its sends arrived. */
2975
2968
  clientTurnId?: string;
2969
+ /** Set on every message of a turn that has more than one version. */
2970
+ replyVersion?: ReplyVersionInfo;
2976
2971
  /**
2977
2972
  * Permanent recording for a voice-note turn (Lua Desktop). Populated by the
2978
2973
  * admin threads history endpoint from the row's `content.metadata.audio` — a
@@ -3119,6 +3114,23 @@ export declare interface ConnectionRequestStatus {
3119
3114
  */
3120
3115
  export declare type ContainerArm = StepRef | [LuaMapConfig, StepRef];
3121
3116
 
3117
+ /** Why a `Threads.resetContext()` call changed nothing. Never an error: a reset is advisory. */
3118
+ export declare type ContextResetSkipReason =
3119
+ /** The agent's `contextReset` feature is off, or the platform kill switch is on. */
3120
+ 'disabled'
3121
+ /** Not called from a tool or processor of a 1:1 chat turn (a job, webhook, trigger, room or workflow step). */
3122
+ | 'not_chat_turn'
3123
+ /** The turn's thread is not the calling user's own thread with this agent. */
3124
+ | 'not_own_thread'
3125
+ /** The agent is not on thread-scoped observational memory. */
3126
+ | 'memory_off'
3127
+ /** Nothing older than the current turn is left to drop (first turn, or already reset this turn). */
3128
+ | 'nothing_to_reset'
3129
+ /** The thread's memory was being updated and the reset could not take its lock in time; the next one will. */
3130
+ | 'busy'
3131
+ /** No platform runtime (`lua test`, `lua dev`, an unwired runtime). */
3132
+ | 'unavailable';
3133
+
3122
3134
  /** Teams: resource-specific permissions are granted per chat by whoever adds the app; file access is a tenant-wide grant. */
3123
3135
  declare interface ConversationAccess {
3124
3136
  /** False when only messages that mention the agent are delivered. */
@@ -3288,6 +3300,8 @@ declare interface CustomDataAPI {
3288
3300
  set?: Record<string, any>;
3289
3301
  unset?: string[];
3290
3302
  searchText?: string | null;
3303
+ /** Refreshes the index declarations (same semantics as create's option). */
3304
+ index?: Array<string | string[]>;
3291
3305
  }, options?: {
3292
3306
  ifVersion?: number;
3293
3307
  }): Promise<UpdateCustomDataResponse>;
@@ -3485,7 +3499,7 @@ export declare const Data: {
3485
3499
  *
3486
3500
  * @param collectionName - Name of the collection
3487
3501
  * @param entryId - ID of the entry
3488
- * @param mutation - `{ set?, unset?, searchText? }` (`searchText: null` clears it)
3502
+ * @param mutation - `{ set?, unset?, searchText?, index? }` (`searchText: null` clears it; `index` as create's option)
3489
3503
  * @param options - `{ ifVersion? }` for compare-and-swap
3490
3504
  * @returns Promise resolving to `{ status, message, version }` (`version` = the entry's new version)
3491
3505
  */
@@ -3493,6 +3507,8 @@ export declare const Data: {
3493
3507
  set?: Record<string, any>;
3494
3508
  unset?: string[];
3495
3509
  searchText?: string | null;
3510
+ /** Refreshes the index declarations (same semantics as create's `index` option). */
3511
+ index?: Array<string | string[]>;
3496
3512
  }, options?: PatchCustomDataOptions): Promise<UpdateCustomDataResponse>;
3497
3513
  /**
3498
3514
  * Atomically adds `by` (default 1; negative and fractional amounts allowed)
@@ -3557,7 +3573,9 @@ export declare const Data: {
3557
3573
  * - Readers may `collections`, `get`, `getEntry`, `search`; writers may also `create`, `update`, `patch`,
3558
3574
  * `increment`, `delete` (a writer can read). Anything else rejects with `code === 'shared_data_forbidden'`
3559
3575
  * (403) — also when the name does not exist or belongs to another org.
3560
- * - Same limits, filters, managed indexes, compare-and-swap and vector search as `Data`. Every write is audited
3576
+ * - Same limits, filters, managed indexes, compare-and-swap and vector search as `Data`. A writer declares indexes
3577
+ * (`{ index }` on create/update/patch); they belong to the shared collection (5 across its sub-collections) and
3578
+ * `collections()` reports their status to every reader. Every write is audited
3561
3579
  * (agent, collection, entry id; never the value).
3562
3580
  * - A test session may read but not write (`shared_data_test_session_write_refused`, 409).
3563
3581
  * - Deployed agents only: under `lua test` every call rejects with `code === 'shared_data_unavailable_offline'`.
@@ -3601,11 +3619,11 @@ export declare class DataEntryInstance {
3601
3619
  /**
3602
3620
  * Updates the custom data entry
3603
3621
  * @param data - The data fields to update (partial update supported)
3604
- * @param searchText - Optional new search text for semantic search indexing
3622
+ * @param optionsOrSearchText - `{ searchText?, index? }` (as `Data.update`), or a bare string (legacy `searchText`)
3605
3623
  * @returns Promise resolving to the updated data
3606
3624
  * @throws Error if the update fails
3607
3625
  */
3608
- update(data: Record<string, any>, searchText?: string): Promise<Record<string, any>>;
3626
+ update(data: Record<string, any>, optionsOrSearchText?: string | CreateCustomDataOptions): Promise<Record<string, any>>;
3609
3627
  /**
3610
3628
  * Atomically sets/unsets fields. `options.ifVersion` makes it a
3611
3629
  * compare-and-swap (pass `entry._version`); a stale version rejects with
@@ -3616,6 +3634,8 @@ export declare class DataEntryInstance {
3616
3634
  set?: Record<string, any>;
3617
3635
  unset?: string[];
3618
3636
  searchText?: string | null;
3637
+ /** Refreshes the index declarations (same semantics as create's option). */
3638
+ index?: Array<string | string[]>;
3619
3639
  }, options?: {
3620
3640
  ifVersion?: number;
3621
3641
  }): Promise<Record<string, any>>;
@@ -3628,11 +3648,11 @@ export declare class DataEntryInstance {
3628
3648
  delete(): Promise<boolean>;
3629
3649
  /**
3630
3650
  * Saves the data entry
3631
- * @param searchText - Optional search text for vector search indexing
3651
+ * @param optionsOrSearchText - `{ searchText?, index? }` (as `Data.update`), or a bare string (legacy `searchText`)
3632
3652
  * @returns Promise resolving to true if saving was successful
3633
3653
  * @throws Error if the save operation fails
3634
3654
  */
3635
- save(searchText?: string): Promise<boolean>;
3655
+ save(optionsOrSearchText?: string | CreateCustomDataOptions): Promise<boolean>;
3636
3656
  }
3637
3657
 
3638
3658
  export { DatasetRef }
@@ -4979,6 +4999,17 @@ export declare interface IntegrationPassthroughRequest {
4979
4999
  * server-side and cannot be overridden.
4980
5000
  */
4981
5001
  headers?: Record<string, string>;
5002
+ /**
5003
+ * BAC-2677 — ask for the provider body as bytes. With `'base64'`, a 2xx
5004
+ * response body is read as raw bytes and returned base64-encoded in `data`
5005
+ * (and `encoding: 'base64'` is set on the response), so binary files such as
5006
+ * a Drive PDF (`drive/v3/files/<id>?alt=media`) survive intact. Bodies over
5007
+ * {@link INTEGRATION_PASSTHROUGH_MAX_BASE64_RESPONSE_BYTES} are refused with
5008
+ * {@link INTEGRATION_PASSTHROUGH_RESPONSE_TOO_LARGE_CODE}, never truncated.
5009
+ * Provider error statuses keep the normal JSON/text body. Omit for the
5010
+ * default JSON/text handling.
5011
+ */
5012
+ responseType?: 'base64';
4982
5013
  }
4983
5014
 
4984
5015
  /**
@@ -4994,8 +5025,16 @@ export declare interface IntegrationPassthroughResponse {
4994
5025
  /**
4995
5026
  * Provider response body: parsed JSON when the response is JSON, the raw
4996
5027
  * string otherwise (e.g. a `text/plain` unified diff round-trips intact).
5028
+ * A base64 string when `encoding` is `'base64'`.
4997
5029
  */
4998
5030
  data: unknown;
5031
+ /**
5032
+ * BAC-2677 — `'base64'` when `data` is the provider body base64-encoded
5033
+ * (the request asked for `responseType: 'base64'` and the provider answered
5034
+ * 2xx). Absent means `data` took the normal JSON/text path, so a caller that
5035
+ * asked for bytes can tell when it did not get them.
5036
+ */
5037
+ encoding?: 'base64';
4999
5038
  }
5000
5039
 
5001
5040
  export declare const Integrations: IntegrationsApi;
@@ -6649,10 +6688,7 @@ export declare interface LuaTool<TInput extends ZodType = ZodType> {
6649
6688
  * while the tool runs. Each text is a string literal (or a const holding one)
6650
6689
  * of at most 80 characters; `lua compile` ignores a computed label.
6651
6690
  */
6652
- label?: string | {
6653
- running: string;
6654
- done: string;
6655
- };
6691
+ label?: ToolLabel;
6656
6692
  /** Zod schema for input validation */
6657
6693
  inputSchema: TInput;
6658
6694
  /**
@@ -6918,15 +6954,15 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
6918
6954
  */
6919
6955
  options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
6920
6956
  }, "strip", z.ZodTypeAny, {
6921
- model: string;
6922
6957
  kind: "inference";
6923
- voice?: string | undefined;
6958
+ model: string;
6924
6959
  options?: Record<string, unknown> | undefined;
6960
+ voice?: string | undefined;
6925
6961
  }, {
6926
- model: string;
6927
6962
  kind: "inference";
6928
- voice?: string | undefined;
6963
+ model: string;
6929
6964
  options?: Record<string, unknown> | undefined;
6965
+ voice?: string | undefined;
6930
6966
  }>, z.ZodObject<{
6931
6967
  kind: z.ZodLiteral<"plugin">;
6932
6968
  provider: z.ZodEnum<["deepgram", "elevenlabs"]>;
@@ -6939,15 +6975,15 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
6939
6975
  */
6940
6976
  options: z.ZodRecord<z.ZodString, z.ZodUnknown>;
6941
6977
  }, "strip", z.ZodTypeAny, {
6942
- class: "LLM" | "STT" | "STTv2" | "TTS";
6943
6978
  options: Record<string, unknown>;
6944
- provider: "deepgram" | "elevenlabs";
6945
6979
  kind: "plugin";
6946
- }, {
6980
+ provider: "deepgram" | "elevenlabs";
6947
6981
  class: "LLM" | "STT" | "STTv2" | "TTS";
6982
+ }, {
6948
6983
  options: Record<string, unknown>;
6949
- provider: "deepgram" | "elevenlabs";
6950
6984
  kind: "plugin";
6985
+ provider: "deepgram" | "elevenlabs";
6986
+ class: "LLM" | "STT" | "STTv2" | "TTS";
6951
6987
  }>, z.ZodObject<{
6952
6988
  kind: z.ZodLiteral<"realtime">;
6953
6989
  provider: z.ZodEnum<["openai", "google", "xai"]>;
@@ -6960,12 +6996,12 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
6960
6996
  options: z.ZodRecord<z.ZodString, z.ZodUnknown>;
6961
6997
  }, "strip", z.ZodTypeAny, {
6962
6998
  options: Record<string, unknown>;
6963
- provider: "openai" | "google" | "xai";
6964
6999
  kind: "realtime";
7000
+ provider: "openai" | "google" | "xai";
6965
7001
  }, {
6966
7002
  options: Record<string, unknown>;
6967
- provider: "openai" | "google" | "xai";
6968
7003
  kind: "realtime";
7004
+ provider: "openai" | "google" | "xai";
6969
7005
  }>]>;
6970
7006
  stt: z.ZodOptional<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
6971
7007
  kind: z.ZodLiteral<"inference">;
@@ -6984,15 +7020,15 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
6984
7020
  */
6985
7021
  options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
6986
7022
  }, "strip", z.ZodTypeAny, {
6987
- model: string;
6988
7023
  kind: "inference";
6989
- voice?: string | undefined;
7024
+ model: string;
6990
7025
  options?: Record<string, unknown> | undefined;
7026
+ voice?: string | undefined;
6991
7027
  }, {
6992
- model: string;
6993
7028
  kind: "inference";
6994
- voice?: string | undefined;
7029
+ model: string;
6995
7030
  options?: Record<string, unknown> | undefined;
7031
+ voice?: string | undefined;
6996
7032
  }>, z.ZodObject<{
6997
7033
  kind: z.ZodLiteral<"plugin">;
6998
7034
  provider: z.ZodEnum<["deepgram", "elevenlabs"]>;
@@ -7005,15 +7041,15 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
7005
7041
  */
7006
7042
  options: z.ZodRecord<z.ZodString, z.ZodUnknown>;
7007
7043
  }, "strip", z.ZodTypeAny, {
7008
- class: "LLM" | "STT" | "STTv2" | "TTS";
7009
7044
  options: Record<string, unknown>;
7010
- provider: "deepgram" | "elevenlabs";
7011
7045
  kind: "plugin";
7012
- }, {
7046
+ provider: "deepgram" | "elevenlabs";
7013
7047
  class: "LLM" | "STT" | "STTv2" | "TTS";
7048
+ }, {
7014
7049
  options: Record<string, unknown>;
7015
- provider: "deepgram" | "elevenlabs";
7016
7050
  kind: "plugin";
7051
+ provider: "deepgram" | "elevenlabs";
7052
+ class: "LLM" | "STT" | "STTv2" | "TTS";
7017
7053
  }>, z.ZodObject<{
7018
7054
  kind: z.ZodLiteral<"realtime">;
7019
7055
  provider: z.ZodEnum<["openai", "google", "xai"]>;
@@ -7026,12 +7062,12 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
7026
7062
  options: z.ZodRecord<z.ZodString, z.ZodUnknown>;
7027
7063
  }, "strip", z.ZodTypeAny, {
7028
7064
  options: Record<string, unknown>;
7029
- provider: "openai" | "google" | "xai";
7030
7065
  kind: "realtime";
7066
+ provider: "openai" | "google" | "xai";
7031
7067
  }, {
7032
7068
  options: Record<string, unknown>;
7033
- provider: "openai" | "google" | "xai";
7034
7069
  kind: "realtime";
7070
+ provider: "openai" | "google" | "xai";
7035
7071
  }>]>>;
7036
7072
  tts: z.ZodOptional<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
7037
7073
  kind: z.ZodLiteral<"inference">;
@@ -7050,15 +7086,15 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
7050
7086
  */
7051
7087
  options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
7052
7088
  }, "strip", z.ZodTypeAny, {
7053
- model: string;
7054
7089
  kind: "inference";
7055
- voice?: string | undefined;
7090
+ model: string;
7056
7091
  options?: Record<string, unknown> | undefined;
7092
+ voice?: string | undefined;
7057
7093
  }, {
7058
- model: string;
7059
7094
  kind: "inference";
7060
- voice?: string | undefined;
7095
+ model: string;
7061
7096
  options?: Record<string, unknown> | undefined;
7097
+ voice?: string | undefined;
7062
7098
  }>, z.ZodObject<{
7063
7099
  kind: z.ZodLiteral<"plugin">;
7064
7100
  provider: z.ZodEnum<["deepgram", "elevenlabs"]>;
@@ -7071,15 +7107,15 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
7071
7107
  */
7072
7108
  options: z.ZodRecord<z.ZodString, z.ZodUnknown>;
7073
7109
  }, "strip", z.ZodTypeAny, {
7074
- class: "LLM" | "STT" | "STTv2" | "TTS";
7075
7110
  options: Record<string, unknown>;
7076
- provider: "deepgram" | "elevenlabs";
7077
7111
  kind: "plugin";
7078
- }, {
7112
+ provider: "deepgram" | "elevenlabs";
7079
7113
  class: "LLM" | "STT" | "STTv2" | "TTS";
7114
+ }, {
7080
7115
  options: Record<string, unknown>;
7081
- provider: "deepgram" | "elevenlabs";
7082
7116
  kind: "plugin";
7117
+ provider: "deepgram" | "elevenlabs";
7118
+ class: "LLM" | "STT" | "STTv2" | "TTS";
7083
7119
  }>, z.ZodObject<{
7084
7120
  kind: z.ZodLiteral<"realtime">;
7085
7121
  provider: z.ZodEnum<["openai", "google", "xai"]>;
@@ -7092,12 +7128,12 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
7092
7128
  options: z.ZodRecord<z.ZodString, z.ZodUnknown>;
7093
7129
  }, "strip", z.ZodTypeAny, {
7094
7130
  options: Record<string, unknown>;
7095
- provider: "openai" | "google" | "xai";
7096
7131
  kind: "realtime";
7132
+ provider: "openai" | "google" | "xai";
7097
7133
  }, {
7098
7134
  options: Record<string, unknown>;
7099
- provider: "openai" | "google" | "xai";
7100
7135
  kind: "realtime";
7136
+ provider: "openai" | "google" | "xai";
7101
7137
  }>]>>;
7102
7138
  vad: z.ZodOptional<z.ZodString>;
7103
7139
  vadOptions: z.ZodOptional<z.ZodObject<{
@@ -7256,52 +7292,52 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
7256
7292
  excludeTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
7257
7293
  }, "strip", z.ZodTypeAny, {
7258
7294
  llm: {
7259
- model: string;
7260
7295
  kind: "inference";
7261
- voice?: string | undefined;
7296
+ model: string;
7262
7297
  options?: Record<string, unknown> | undefined;
7298
+ voice?: string | undefined;
7263
7299
  } | {
7264
- class: "LLM" | "STT" | "STTv2" | "TTS";
7265
7300
  options: Record<string, unknown>;
7266
- provider: "deepgram" | "elevenlabs";
7267
7301
  kind: "plugin";
7302
+ provider: "deepgram" | "elevenlabs";
7303
+ class: "LLM" | "STT" | "STTv2" | "TTS";
7268
7304
  } | {
7269
7305
  options: Record<string, unknown>;
7270
- provider: "openai" | "google" | "xai";
7271
7306
  kind: "realtime";
7307
+ provider: "openai" | "google" | "xai";
7272
7308
  };
7273
7309
  name?: string | undefined;
7274
7310
  vad?: string | undefined;
7275
7311
  stt?: {
7276
- model: string;
7277
7312
  kind: "inference";
7278
- voice?: string | undefined;
7313
+ model: string;
7279
7314
  options?: Record<string, unknown> | undefined;
7315
+ voice?: string | undefined;
7280
7316
  } | {
7281
- class: "LLM" | "STT" | "STTv2" | "TTS";
7282
7317
  options: Record<string, unknown>;
7283
- provider: "deepgram" | "elevenlabs";
7284
7318
  kind: "plugin";
7319
+ provider: "deepgram" | "elevenlabs";
7320
+ class: "LLM" | "STT" | "STTv2" | "TTS";
7285
7321
  } | {
7286
7322
  options: Record<string, unknown>;
7287
- provider: "openai" | "google" | "xai";
7288
7323
  kind: "realtime";
7324
+ provider: "openai" | "google" | "xai";
7289
7325
  } | undefined;
7290
7326
  volume?: number | undefined;
7291
7327
  tts?: {
7292
- model: string;
7293
7328
  kind: "inference";
7294
- voice?: string | undefined;
7329
+ model: string;
7295
7330
  options?: Record<string, unknown> | undefined;
7331
+ voice?: string | undefined;
7296
7332
  } | {
7297
- class: "LLM" | "STT" | "STTv2" | "TTS";
7298
7333
  options: Record<string, unknown>;
7299
- provider: "deepgram" | "elevenlabs";
7300
7334
  kind: "plugin";
7335
+ provider: "deepgram" | "elevenlabs";
7336
+ class: "LLM" | "STT" | "STTv2" | "TTS";
7301
7337
  } | {
7302
7338
  options: Record<string, unknown>;
7303
- provider: "openai" | "google" | "xai";
7304
7339
  kind: "realtime";
7340
+ provider: "openai" | "google" | "xai";
7305
7341
  } | undefined;
7306
7342
  vadOptions?: {
7307
7343
  minSpeechDuration?: number | undefined;
@@ -7350,52 +7386,52 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
7350
7386
  excludeTools?: string[] | undefined;
7351
7387
  }, {
7352
7388
  llm: {
7353
- model: string;
7354
7389
  kind: "inference";
7355
- voice?: string | undefined;
7390
+ model: string;
7356
7391
  options?: Record<string, unknown> | undefined;
7392
+ voice?: string | undefined;
7357
7393
  } | {
7358
- class: "LLM" | "STT" | "STTv2" | "TTS";
7359
7394
  options: Record<string, unknown>;
7360
- provider: "deepgram" | "elevenlabs";
7361
7395
  kind: "plugin";
7396
+ provider: "deepgram" | "elevenlabs";
7397
+ class: "LLM" | "STT" | "STTv2" | "TTS";
7362
7398
  } | {
7363
7399
  options: Record<string, unknown>;
7364
- provider: "openai" | "google" | "xai";
7365
7400
  kind: "realtime";
7401
+ provider: "openai" | "google" | "xai";
7366
7402
  };
7367
7403
  name?: string | undefined;
7368
7404
  vad?: string | undefined;
7369
7405
  stt?: {
7370
- model: string;
7371
7406
  kind: "inference";
7372
- voice?: string | undefined;
7407
+ model: string;
7373
7408
  options?: Record<string, unknown> | undefined;
7409
+ voice?: string | undefined;
7374
7410
  } | {
7375
- class: "LLM" | "STT" | "STTv2" | "TTS";
7376
7411
  options: Record<string, unknown>;
7377
- provider: "deepgram" | "elevenlabs";
7378
7412
  kind: "plugin";
7413
+ provider: "deepgram" | "elevenlabs";
7414
+ class: "LLM" | "STT" | "STTv2" | "TTS";
7379
7415
  } | {
7380
7416
  options: Record<string, unknown>;
7381
- provider: "openai" | "google" | "xai";
7382
7417
  kind: "realtime";
7418
+ provider: "openai" | "google" | "xai";
7383
7419
  } | undefined;
7384
7420
  volume?: number | undefined;
7385
7421
  tts?: {
7386
- model: string;
7387
7422
  kind: "inference";
7388
- voice?: string | undefined;
7423
+ model: string;
7389
7424
  options?: Record<string, unknown> | undefined;
7425
+ voice?: string | undefined;
7390
7426
  } | {
7391
- class: "LLM" | "STT" | "STTv2" | "TTS";
7392
7427
  options: Record<string, unknown>;
7393
- provider: "deepgram" | "elevenlabs";
7394
7428
  kind: "plugin";
7429
+ provider: "deepgram" | "elevenlabs";
7430
+ class: "LLM" | "STT" | "STTv2" | "TTS";
7395
7431
  } | {
7396
7432
  options: Record<string, unknown>;
7397
- provider: "openai" | "google" | "xai";
7398
7433
  kind: "realtime";
7434
+ provider: "openai" | "google" | "xai";
7399
7435
  } | undefined;
7400
7436
  vadOptions?: {
7401
7437
  minSpeechDuration?: number | undefined;
@@ -7444,52 +7480,52 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
7444
7480
  excludeTools?: string[] | undefined;
7445
7481
  }>, {
7446
7482
  llm: {
7447
- model: string;
7448
7483
  kind: "inference";
7449
- voice?: string | undefined;
7484
+ model: string;
7450
7485
  options?: Record<string, unknown> | undefined;
7486
+ voice?: string | undefined;
7451
7487
  } | {
7452
- class: "LLM" | "STT" | "STTv2" | "TTS";
7453
7488
  options: Record<string, unknown>;
7454
- provider: "deepgram" | "elevenlabs";
7455
7489
  kind: "plugin";
7490
+ provider: "deepgram" | "elevenlabs";
7491
+ class: "LLM" | "STT" | "STTv2" | "TTS";
7456
7492
  } | {
7457
7493
  options: Record<string, unknown>;
7458
- provider: "openai" | "google" | "xai";
7459
7494
  kind: "realtime";
7495
+ provider: "openai" | "google" | "xai";
7460
7496
  };
7461
7497
  name?: string | undefined;
7462
7498
  vad?: string | undefined;
7463
7499
  stt?: {
7464
- model: string;
7465
7500
  kind: "inference";
7466
- voice?: string | undefined;
7501
+ model: string;
7467
7502
  options?: Record<string, unknown> | undefined;
7503
+ voice?: string | undefined;
7468
7504
  } | {
7469
- class: "LLM" | "STT" | "STTv2" | "TTS";
7470
7505
  options: Record<string, unknown>;
7471
- provider: "deepgram" | "elevenlabs";
7472
7506
  kind: "plugin";
7507
+ provider: "deepgram" | "elevenlabs";
7508
+ class: "LLM" | "STT" | "STTv2" | "TTS";
7473
7509
  } | {
7474
7510
  options: Record<string, unknown>;
7475
- provider: "openai" | "google" | "xai";
7476
7511
  kind: "realtime";
7512
+ provider: "openai" | "google" | "xai";
7477
7513
  } | undefined;
7478
7514
  volume?: number | undefined;
7479
7515
  tts?: {
7480
- model: string;
7481
7516
  kind: "inference";
7482
- voice?: string | undefined;
7517
+ model: string;
7483
7518
  options?: Record<string, unknown> | undefined;
7519
+ voice?: string | undefined;
7484
7520
  } | {
7485
- class: "LLM" | "STT" | "STTv2" | "TTS";
7486
7521
  options: Record<string, unknown>;
7487
- provider: "deepgram" | "elevenlabs";
7488
7522
  kind: "plugin";
7523
+ provider: "deepgram" | "elevenlabs";
7524
+ class: "LLM" | "STT" | "STTv2" | "TTS";
7489
7525
  } | {
7490
7526
  options: Record<string, unknown>;
7491
- provider: "openai" | "google" | "xai";
7492
7527
  kind: "realtime";
7528
+ provider: "openai" | "google" | "xai";
7493
7529
  } | undefined;
7494
7530
  vadOptions?: {
7495
7531
  minSpeechDuration?: number | undefined;
@@ -7538,52 +7574,52 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
7538
7574
  excludeTools?: string[] | undefined;
7539
7575
  }, {
7540
7576
  llm: {
7541
- model: string;
7542
7577
  kind: "inference";
7543
- voice?: string | undefined;
7578
+ model: string;
7544
7579
  options?: Record<string, unknown> | undefined;
7580
+ voice?: string | undefined;
7545
7581
  } | {
7546
- class: "LLM" | "STT" | "STTv2" | "TTS";
7547
7582
  options: Record<string, unknown>;
7548
- provider: "deepgram" | "elevenlabs";
7549
7583
  kind: "plugin";
7584
+ provider: "deepgram" | "elevenlabs";
7585
+ class: "LLM" | "STT" | "STTv2" | "TTS";
7550
7586
  } | {
7551
7587
  options: Record<string, unknown>;
7552
- provider: "openai" | "google" | "xai";
7553
7588
  kind: "realtime";
7589
+ provider: "openai" | "google" | "xai";
7554
7590
  };
7555
7591
  name?: string | undefined;
7556
7592
  vad?: string | undefined;
7557
7593
  stt?: {
7558
- model: string;
7559
7594
  kind: "inference";
7560
- voice?: string | undefined;
7595
+ model: string;
7561
7596
  options?: Record<string, unknown> | undefined;
7597
+ voice?: string | undefined;
7562
7598
  } | {
7563
- class: "LLM" | "STT" | "STTv2" | "TTS";
7564
7599
  options: Record<string, unknown>;
7565
- provider: "deepgram" | "elevenlabs";
7566
7600
  kind: "plugin";
7601
+ provider: "deepgram" | "elevenlabs";
7602
+ class: "LLM" | "STT" | "STTv2" | "TTS";
7567
7603
  } | {
7568
7604
  options: Record<string, unknown>;
7569
- provider: "openai" | "google" | "xai";
7570
7605
  kind: "realtime";
7606
+ provider: "openai" | "google" | "xai";
7571
7607
  } | undefined;
7572
7608
  volume?: number | undefined;
7573
7609
  tts?: {
7574
- model: string;
7575
7610
  kind: "inference";
7576
- voice?: string | undefined;
7611
+ model: string;
7577
7612
  options?: Record<string, unknown> | undefined;
7613
+ voice?: string | undefined;
7578
7614
  } | {
7579
- class: "LLM" | "STT" | "STTv2" | "TTS";
7580
7615
  options: Record<string, unknown>;
7581
- provider: "deepgram" | "elevenlabs";
7582
7616
  kind: "plugin";
7617
+ provider: "deepgram" | "elevenlabs";
7618
+ class: "LLM" | "STT" | "STTv2" | "TTS";
7583
7619
  } | {
7584
7620
  options: Record<string, unknown>;
7585
- provider: "openai" | "google" | "xai";
7586
7621
  kind: "realtime";
7622
+ provider: "openai" | "google" | "xai";
7587
7623
  } | undefined;
7588
7624
  vadOptions?: {
7589
7625
  minSpeechDuration?: number | undefined;
@@ -7677,6 +7713,7 @@ export declare class LuaVoiceTool<TInput extends ZodType = ZodType> implements L
7677
7713
  readonly inputSchema: TInput;
7678
7714
  readonly execute: (input: any, ctx?: LuaVoiceToolCtx) => Promise<any>;
7679
7715
  readonly condition?: () => Promise<boolean>;
7716
+ readonly label?: ToolLabel;
7680
7717
  readonly voice?: {
7681
7718
  flags?: ToolFlag[];
7682
7719
  };
@@ -7695,6 +7732,8 @@ export declare interface LuaVoiceToolConfig<TInput extends ZodType = ZodType> {
7695
7732
  execute: (input: any, ctx?: LuaVoiceToolCtx) => Promise<any>;
7696
7733
  condition?: () => Promise<boolean>;
7697
7734
  flags?: ToolFlag[];
7735
+ /** What a step shows while the tool runs and when it is done, as on `LuaTool`. */
7736
+ label?: ToolLabel;
7698
7737
  }
7699
7738
 
7700
7739
  /**
@@ -8904,13 +8943,28 @@ export declare interface PreProcessorOverride {
8904
8943
  sandboxId: string;
8905
8944
  }
8906
8945
 
8946
+ /** Metadata a proceeding preprocessor may return. */
8947
+ export declare type PreProcessorProceedMetadata = Record<string, any> & {
8948
+ /**
8949
+ * A short note for the model on THIS turn only, e.g. state read from your own data. It is
8950
+ * added after the conversation as context labelled system-provided (the user did not write
8951
+ * it), and is never stored, never in chat history and never shown to the user. Notes from
8952
+ * several preprocessors are joined in run order and capped at 2,000 characters in total
8953
+ * (longer text is truncated). Strings only; anything else is ignored.
8954
+ *
8955
+ * The model is told the note is data, not instructions: it may quote text users wrote, so do
8956
+ * not rely on it to steer the agent's behaviour. Put rules in the persona or a skill instead.
8957
+ */
8958
+ turnContext?: string;
8959
+ };
8960
+
8907
8961
  export declare type PreProcessorProceedResponse = {
8908
8962
  /** Proceed to next preprocessor or agent */
8909
8963
  action: 'proceed';
8910
8964
  /** Optional modified message (if not provided, uses original/current message) */
8911
8965
  modifiedMessage?: ChatMessage[];
8912
8966
  /** Optional metadata to pass along */
8913
- metadata?: Record<string, any>;
8967
+ metadata?: PreProcessorProceedMetadata;
8914
8968
  };
8915
8969
 
8916
8970
  /**
@@ -9438,6 +9492,22 @@ export declare interface RefusedAnswer {
9438
9492
 
9439
9493
  export declare type ReplyChannel = 'whatsapp' | 'sms' | 'email' | 'webchat' | 'slack';
9440
9494
 
9495
+ /**
9496
+ * Reply versions on a stored conversation. A version is a block: one user row and the
9497
+ * rows after it up to the next user row. A re-run of the latest turn hides the current
9498
+ * block (`metadata.inactiveVersion`) and stamps `metadata.replyVersion` on the user row
9499
+ * of every block of the turn. Readers fold rich parts first, then call
9500
+ * `applyReplyVersions`, so a hidden reply's citations leave with it.
9501
+ */
9502
+ declare interface ReplyVersionInfo {
9503
+ group: string;
9504
+ /** 1-based. */
9505
+ index: number;
9506
+ total: number;
9507
+ /** The version the agent reads; the others are hidden from it. */
9508
+ active: boolean;
9509
+ }
9510
+
9441
9511
  declare interface RequestCredential {
9442
9512
  readonly descriptor: RequestCredentialDescriptor;
9443
9513
  bearer(): Promise<string>;
@@ -10471,7 +10541,7 @@ export declare const Templates: {
10471
10541
  };
10472
10542
 
10473
10543
  /** Recorded effect kinds (DOC2 §7 seam table; `fetch` is sandbox egress record mode, §9.1). */
10474
- declare const TEST_EFFECT_KINDS: readonly ["channel.send", "whatsapp.template", "whatsapp.reaction", "whatsapp.phone_request", "email.send", "inbox.push", "voice.call", "passthrough", "mcp.tool", "supervision.write", "user.update_name", "browser.action", "jobs.create", "fetch", "refused", "metrics.record", "threads.open", "threads.follow_up", "secrets.request", "connection_request.create", "connection_request.reconnect", "connection_request.cancel", "ai.generate", "decisions.ask"];
10544
+ declare const TEST_EFFECT_KINDS: readonly ["channel.send", "whatsapp.template", "whatsapp.reaction", "whatsapp.phone_request", "email.send", "inbox.push", "voice.call", "passthrough", "mcp.tool", "supervision.write", "user.update_name", "browser.action", "jobs.create", "fetch", "refused", "metrics.record", "threads.open", "threads.follow_up", "threads.reset_context", "secrets.request", "connection_request.create", "connection_request.reconnect", "connection_request.cancel", "ai.generate", "decisions.ask"];
10475
10545
 
10476
10546
  declare type TestEffectKind = (typeof TEST_EFFECT_KINDS)[number];
10477
10547
 
@@ -10564,6 +10634,13 @@ declare type TextMessage_2 = {
10564
10634
  text: string;
10565
10635
  };
10566
10636
 
10637
+ export declare type ThreadContextResetReceipt = {
10638
+ status: 'reset';
10639
+ } | {
10640
+ status: 'skipped';
10641
+ reason: ContextResetSkipReason;
10642
+ };
10643
+
10567
10644
  /**
10568
10645
  * `Threads.followUp(threadId, input)`: exactly one of `prompt` (a BACKGROUND agent turn on the thread,
10569
10646
  * like the workflow callback loopback) or `message` (post the text as the agent, no model turn).
@@ -10644,6 +10721,17 @@ export declare interface ThreadsApi {
10644
10721
  * fails mid-delivery. Without a key every call delivers.
10645
10722
  */
10646
10723
  followUp(threadId: string, input: ThreadFollowUpInput): Promise<ThreadFollowUpReceipt>;
10724
+ /**
10725
+ * Start the agent's context afresh from the current turn (LUA-1538). Call it from a tool at a natural break — a
10726
+ * checklist section recorded, a task started. From the NEXT turn on, the agent reads this turn and what follows,
10727
+ * not the earlier messages or the observation log built from them. The person still sees the whole conversation;
10728
+ * nothing is deleted. Give the agent what it still needs (where the person is in a task) from your own data, for
10729
+ * example in a preprocessor.
10730
+ *
10731
+ * Never throws. Answers `{ status: 'reset' }`, or `{ status: 'skipped', reason }` when the agent's `contextReset`
10732
+ * feature is off, outside a 1:1 chat turn, with observational memory off, when nothing older is left, or offline.
10733
+ */
10734
+ resetContext(): Promise<ThreadContextResetReceipt>;
10647
10735
  }
10648
10736
 
10649
10737
  /**
@@ -10713,6 +10801,12 @@ export declare enum ToolFlag {
10713
10801
  DISALLOW_INTERRUPTION = "disallow_interruption"
10714
10802
  }
10715
10803
 
10804
+ /** A tool's `label`: one text for both moments, or one while it runs and one when it is done. `{arg}` fills from the call. */
10805
+ declare type ToolLabel = string | {
10806
+ running: string;
10807
+ done: string;
10808
+ };
10809
+
10716
10810
  export declare interface ToolStepOptions {
10717
10811
  input?: LuaMapConfig;
10718
10812
  timeoutSeconds?: number;