lua-cli 3.41.0 → 3.42.0-beta.1

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.
@@ -1188,7 +1188,7 @@ export declare type Channel = 'web' | 'whatsapp' | 'facebook' | 'instagram' | 's
1188
1188
 
1189
1189
  /** Channels accepted by the v1 unified send. Warm-only channels (teams,
1190
1190
  * instagram, messenger) require a prior inbound conversation. */
1191
- export declare const CHANNEL_SEND_CHANNELS: readonly ["whatsapp", "sms", "email", "webchat", "teams", "instagram", "messenger"];
1191
+ export declare const CHANNEL_SEND_CHANNELS: readonly ["whatsapp", "sms", "email", "webchat", "teams", "instagram", "messenger", "slack"];
1192
1192
 
1193
1193
  export declare const Channels: ChannelsApi;
1194
1194
 
@@ -1238,6 +1238,16 @@ export declare const Channels: ChannelsApi;
1238
1238
  * to: { conversationId: '19:9495c339...@thread.v2' },
1239
1239
  * text: 'Sample LOT-4471 is missing origin and cupping score.',
1240
1240
  * });
1241
+ *
1242
+ * // Reply in a Slack thread through the agent's own bot (the bot must be in the channel)
1243
+ * await Channels.send({
1244
+ * channel: 'slack',
1245
+ * to: { conversationId: 'C0123ABCDEF:1712345678.000100' },
1246
+ * text: 'The overnight load finished with 3 warnings.',
1247
+ * });
1248
+ *
1249
+ * // DM a person on Slack, found by their email in the bot's workspace
1250
+ * await Channels.send({ channel: 'slack', to: { email: 'pat@acme.co' }, text: 'Your report is ready.' });
1241
1251
  * ```
1242
1252
  */
1243
1253
  export declare interface ChannelsApi {
@@ -1246,9 +1256,15 @@ export declare interface ChannelsApi {
1246
1256
  * Returns `ChannelSendOutput` — check `persisted` if memory durability matters.
1247
1257
  *
1248
1258
  * Address a person with `userId` (any channel), `phoneNumber` (whatsapp/sms)
1249
- * or `email`. Address a shared conversation with `conversationId` (teams
1250
- * only) — everyone in it receives the message, and because there is no single
1251
- * recipient the send returns `persisted: false`.
1259
+ * or `email` (email, slack). Address a conversation with `conversationId`
1260
+ * (teams, slack) — everyone in it receives the message. It is recorded in the
1261
+ * room that mirrors the conversation when the agent has one; otherwise the send
1262
+ * returns `persisted: false`.
1263
+ *
1264
+ * Slack `conversationId` forms: `Lua.request.conversation.externalId`, a channel
1265
+ * id (`C…`, top level), `C…:threadTs` (a reply in that thread), a member id
1266
+ * (`U…`, their DM with the bot) or 2–8 member ids (`U…,U…`, a group DM). With
1267
+ * more than one Slack connection, pass `options.channelIdentifier` (`T…-A…`).
1252
1268
  *
1253
1269
  * @example
1254
1270
  * ```typescript
@@ -1386,8 +1402,10 @@ export declare interface ChannelSendOutput {
1386
1402
  */
1387
1403
  status: DeliveryStatus;
1388
1404
  delivered: boolean;
1389
- /** False for conversation-scoped sends: a shared conversation has no single
1390
- * user to attribute the message to, so nothing is written to agent memory. */
1405
+ /** Whether agent memory recorded the message. A conversation-scoped send is
1406
+ * recorded in the room that mirrors the conversation when the agent has one
1407
+ * (and a Slack DM in the conversation of the post's own thread); otherwise it
1408
+ * is delivered but not recorded (`persisted: false` with a `warning`). */
1391
1409
  persisted: boolean;
1392
1410
  /**
1393
1411
  * True when the send was deferred to the WhatsApp message-request queue
@@ -1405,11 +1423,16 @@ export declare interface ChannelSendOutput {
1405
1423
  }
1406
1424
 
1407
1425
  /** Recipient — exactly one of the fields must be set. userId works on every
1408
- * channel (resolved via the user's channel history); raw identifiers only on
1409
- * cold-start-capable channels (whatsapp/sms → phoneNumber, email → email).
1410
- * `conversationId` addresses a shared conversation rather than a person —
1411
- * everyone in it receives the message. Teams only, and warm-only: the agent
1412
- * must already be part of that conversation. */
1426
+ * channel (resolved via the user's channel history; on Slack, via the user's
1427
+ * email to the workspace member); raw identifiers only on cold-start-capable
1428
+ * channels (whatsapp/sms → phoneNumber, email and slack → email).
1429
+ * `conversationId` addresses a conversation rather than a person — everyone in
1430
+ * it receives the message:
1431
+ * - teams: a group chat or channel the agent is already part of;
1432
+ * - slack: `Lua.request.conversation.externalId` (`T…:A…:C…[:threadTs]`), a
1433
+ * channel id (`C…`, top level), `C…:threadTs` (a reply in that thread), a
1434
+ * member id (`U…`, their DM with the bot) or 2–8 member ids (`U…,U…`, a group
1435
+ * DM). The bot must be in the channel. */
1413
1436
  export declare interface ChannelSendTarget {
1414
1437
  userId?: string;
1415
1438
  phoneNumber?: string;
@@ -1565,16 +1588,16 @@ export declare interface ConversationParticipant {
1565
1588
  }
1566
1589
 
1567
1590
  /**
1568
- * The conversation a turn runs in. Present on group turns (a desktop room or a
1569
- * Teams group chat); undefined on 1:1 chats, jobs, webhooks, triggers and
1570
- * workflow steps.
1591
+ * The conversation a turn runs in. Present on group turns (a desktop room, a
1592
+ * Teams group chat, a Slack channel thread or group DM); undefined on 1:1 chats,
1593
+ * jobs, webhooks, triggers and workflow steps.
1571
1594
  */
1572
1595
  export declare interface ConversationRef {
1573
1596
  /** The room conversation id (`room:<id>`). */
1574
1597
  id: string;
1575
1598
  kind: ConversationKind;
1576
1599
  channel: Channel;
1577
- /** The provider's conversation id; pass it to `Channels.send({ to: { conversationId } })` to reply proactively. */
1600
+ /** The provider's conversation id (Teams chat id, Slack `T…:A…:C…:threadTs`); pass it to `Channels.send({ to: { conversationId } })` to reply proactively. */
1578
1601
  externalId?: string;
1579
1602
  currentSpeakerId?: string;
1580
1603
  /** Capped at 50 entries, current speaker first; see `participantCount` and `truncated`. */
@@ -4407,14 +4430,14 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
4407
4430
  */
4408
4431
  options: z.ZodRecord<z.ZodString, z.ZodUnknown>;
4409
4432
  }, "strip", z.ZodTypeAny, {
4433
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
4410
4434
  provider?: "deepgram" | "elevenlabs";
4411
4435
  kind?: "plugin";
4412
- class?: "LLM" | "STT" | "STTv2" | "TTS";
4413
4436
  options?: Record<string, unknown>;
4414
4437
  }, {
4438
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
4415
4439
  provider?: "deepgram" | "elevenlabs";
4416
4440
  kind?: "plugin";
4417
- class?: "LLM" | "STT" | "STTv2" | "TTS";
4418
4441
  options?: Record<string, unknown>;
4419
4442
  }>, z.ZodObject<{
4420
4443
  kind: z.ZodLiteral<"realtime">;
@@ -4473,14 +4496,14 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
4473
4496
  */
4474
4497
  options: z.ZodRecord<z.ZodString, z.ZodUnknown>;
4475
4498
  }, "strip", z.ZodTypeAny, {
4499
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
4476
4500
  provider?: "deepgram" | "elevenlabs";
4477
4501
  kind?: "plugin";
4478
- class?: "LLM" | "STT" | "STTv2" | "TTS";
4479
4502
  options?: Record<string, unknown>;
4480
4503
  }, {
4504
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
4481
4505
  provider?: "deepgram" | "elevenlabs";
4482
4506
  kind?: "plugin";
4483
- class?: "LLM" | "STT" | "STTv2" | "TTS";
4484
4507
  options?: Record<string, unknown>;
4485
4508
  }>, z.ZodObject<{
4486
4509
  kind: z.ZodLiteral<"realtime">;
@@ -4539,14 +4562,14 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
4539
4562
  */
4540
4563
  options: z.ZodRecord<z.ZodString, z.ZodUnknown>;
4541
4564
  }, "strip", z.ZodTypeAny, {
4565
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
4542
4566
  provider?: "deepgram" | "elevenlabs";
4543
4567
  kind?: "plugin";
4544
- class?: "LLM" | "STT" | "STTv2" | "TTS";
4545
4568
  options?: Record<string, unknown>;
4546
4569
  }, {
4570
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
4547
4571
  provider?: "deepgram" | "elevenlabs";
4548
4572
  kind?: "plugin";
4549
- class?: "LLM" | "STT" | "STTv2" | "TTS";
4550
4573
  options?: Record<string, unknown>;
4551
4574
  }>, z.ZodObject<{
4552
4575
  kind: z.ZodLiteral<"realtime">;
@@ -4731,9 +4754,9 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
4731
4754
  options?: Record<string, unknown>;
4732
4755
  model?: string;
4733
4756
  } | {
4757
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
4734
4758
  provider?: "deepgram" | "elevenlabs";
4735
4759
  kind?: "plugin";
4736
- class?: "LLM" | "STT" | "STTv2" | "TTS";
4737
4760
  options?: Record<string, unknown>;
4738
4761
  } | {
4739
4762
  provider?: "google" | "xai" | "openai";
@@ -4747,9 +4770,9 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
4747
4770
  options?: Record<string, unknown>;
4748
4771
  model?: string;
4749
4772
  } | {
4773
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
4750
4774
  provider?: "deepgram" | "elevenlabs";
4751
4775
  kind?: "plugin";
4752
- class?: "LLM" | "STT" | "STTv2" | "TTS";
4753
4776
  options?: Record<string, unknown>;
4754
4777
  } | {
4755
4778
  provider?: "google" | "xai" | "openai";
@@ -4762,9 +4785,9 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
4762
4785
  options?: Record<string, unknown>;
4763
4786
  model?: string;
4764
4787
  } | {
4788
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
4765
4789
  provider?: "deepgram" | "elevenlabs";
4766
4790
  kind?: "plugin";
4767
- class?: "LLM" | "STT" | "STTv2" | "TTS";
4768
4791
  options?: Record<string, unknown>;
4769
4792
  } | {
4770
4793
  provider?: "google" | "xai" | "openai";
@@ -4825,9 +4848,9 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
4825
4848
  options?: Record<string, unknown>;
4826
4849
  model?: string;
4827
4850
  } | {
4851
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
4828
4852
  provider?: "deepgram" | "elevenlabs";
4829
4853
  kind?: "plugin";
4830
- class?: "LLM" | "STT" | "STTv2" | "TTS";
4831
4854
  options?: Record<string, unknown>;
4832
4855
  } | {
4833
4856
  provider?: "google" | "xai" | "openai";
@@ -4841,9 +4864,9 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
4841
4864
  options?: Record<string, unknown>;
4842
4865
  model?: string;
4843
4866
  } | {
4867
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
4844
4868
  provider?: "deepgram" | "elevenlabs";
4845
4869
  kind?: "plugin";
4846
- class?: "LLM" | "STT" | "STTv2" | "TTS";
4847
4870
  options?: Record<string, unknown>;
4848
4871
  } | {
4849
4872
  provider?: "google" | "xai" | "openai";
@@ -4856,9 +4879,9 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
4856
4879
  options?: Record<string, unknown>;
4857
4880
  model?: string;
4858
4881
  } | {
4882
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
4859
4883
  provider?: "deepgram" | "elevenlabs";
4860
4884
  kind?: "plugin";
4861
- class?: "LLM" | "STT" | "STTv2" | "TTS";
4862
4885
  options?: Record<string, unknown>;
4863
4886
  } | {
4864
4887
  provider?: "google" | "xai" | "openai";
@@ -4919,9 +4942,9 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
4919
4942
  options?: Record<string, unknown>;
4920
4943
  model?: string;
4921
4944
  } | {
4945
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
4922
4946
  provider?: "deepgram" | "elevenlabs";
4923
4947
  kind?: "plugin";
4924
- class?: "LLM" | "STT" | "STTv2" | "TTS";
4925
4948
  options?: Record<string, unknown>;
4926
4949
  } | {
4927
4950
  provider?: "google" | "xai" | "openai";
@@ -4935,9 +4958,9 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
4935
4958
  options?: Record<string, unknown>;
4936
4959
  model?: string;
4937
4960
  } | {
4961
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
4938
4962
  provider?: "deepgram" | "elevenlabs";
4939
4963
  kind?: "plugin";
4940
- class?: "LLM" | "STT" | "STTv2" | "TTS";
4941
4964
  options?: Record<string, unknown>;
4942
4965
  } | {
4943
4966
  provider?: "google" | "xai" | "openai";
@@ -4950,9 +4973,9 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
4950
4973
  options?: Record<string, unknown>;
4951
4974
  model?: string;
4952
4975
  } | {
4976
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
4953
4977
  provider?: "deepgram" | "elevenlabs";
4954
4978
  kind?: "plugin";
4955
- class?: "LLM" | "STT" | "STTv2" | "TTS";
4956
4979
  options?: Record<string, unknown>;
4957
4980
  } | {
4958
4981
  provider?: "google" | "xai" | "openai";
@@ -5013,9 +5036,9 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
5013
5036
  options?: Record<string, unknown>;
5014
5037
  model?: string;
5015
5038
  } | {
5039
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
5016
5040
  provider?: "deepgram" | "elevenlabs";
5017
5041
  kind?: "plugin";
5018
- class?: "LLM" | "STT" | "STTv2" | "TTS";
5019
5042
  options?: Record<string, unknown>;
5020
5043
  } | {
5021
5044
  provider?: "google" | "xai" | "openai";
@@ -5029,9 +5052,9 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
5029
5052
  options?: Record<string, unknown>;
5030
5053
  model?: string;
5031
5054
  } | {
5055
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
5032
5056
  provider?: "deepgram" | "elevenlabs";
5033
5057
  kind?: "plugin";
5034
- class?: "LLM" | "STT" | "STTv2" | "TTS";
5035
5058
  options?: Record<string, unknown>;
5036
5059
  } | {
5037
5060
  provider?: "google" | "xai" | "openai";
@@ -5044,9 +5067,9 @@ declare const LuaVoiceConfigSchema: z.ZodEffects<z.ZodObject<{
5044
5067
  options?: Record<string, unknown>;
5045
5068
  model?: string;
5046
5069
  } | {
5070
+ class?: "LLM" | "STT" | "STTv2" | "TTS";
5047
5071
  provider?: "deepgram" | "elevenlabs";
5048
5072
  kind?: "plugin";
5049
- class?: "LLM" | "STT" | "STTv2" | "TTS";
5050
5073
  options?: Record<string, unknown>;
5051
5074
  } | {
5052
5075
  provider?: "google" | "xai" | "openai";
@@ -7669,6 +7692,7 @@ export declare interface WaitForSignalOptions {
7669
7692
  */
7670
7693
  declare const WEB_APP_CSP_KEYS: readonly ["scriptSrc", "styleSrc", "imgSrc", "connectSrc", "fontSrc", "frameSrc", "workerSrc"];
7671
7694
 
7695
+ /** `defineWebApp({ name })`: the name leads the app's host label, so a DNS-safe subset. */
7672
7696
  export declare const WEB_APP_NAME_PATTERN: RegExp;
7673
7697
 
7674
7698
  declare const WEB_ROUTE_METHODS: readonly ["GET", "POST", "PUT", "PATCH", "DELETE"];
@@ -2521,7 +2521,7 @@ function envTemplatePlaceholder(key) {
2521
2521
  __envRef: key
2522
2522
  };
2523
2523
  }
2524
- var __defProp3, __name3, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, PLATFORM_INVOCATION_CALLERS, SUPERVISION_OPS, CHANNEL_SEND_CHANNELS, REVIEWABLE_ACTION_EXECUTE_TOOL_ALLOWLIST, REVIEWABLE_STANDING_START_TOOLS, REVIEWABLE_MCP_SEND_TOOL_SUFFIX, MCP_TOOL_READ_VERB_RE, MCP_DRAFT_CREATE_VERBS, NON_INTERACTIVE_CHANNELS, RICH_PARTS_MESSAGE_ID_PREFIX, SCREENSHOT_MESSAGE_ID_PREFIX, BROWSER_COMMANDS, BROWSER_COMMAND_NAMES, LOG_FIELDS_MAX_KEYS, LOG_FIELD_MAX_VALUE_BYTES, LOG_FIELDS_MAX_BYTES, LOG_FIELD_KEY_PATTERN, LOG_FIELD_SECRET_SHAPED_KEY_PATTERNS, LOG_FIELDS_CLAMPED_KEY, LOG_FIELD_ARRAY_COUNT_SUFFIX, LuaLogFieldsError, DESKTOP_FILE_COMMANDS, DESKTOP_FILE_COMMAND_SET, WORKFLOW_RETRY_BACKOFFS, WORKFLOW_RETRY_MIN_ATTEMPTS, WORKFLOW_RETRY_POLICY_KEYS, WORKFLOW_RETRY_MAX_ATTEMPTS, WORKFLOW_RETRY_ENGINE_KEYS, WORKFLOW_JOB_RESOURCES, WORKFLOW_SIDE_EFFECTS, WORKFLOW_MODEL_CLASSES, WORKFLOW_DEFAULT_TASK_CLASS_MAP, WORKFLOW_MODELS_MAX_CLASS_DEFAULT, WORKFLOW_AUTONOMY_NUMERIC_KEYS, WORKFLOW_AUTONOMY_ENVELOPE_KEYS, WORKFLOW_AUTONOMY_DEFAULTS, WORKFLOW_AUTONOMY_CEILINGS, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_ENV, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_CEILING, WORKFLOW_AUTONOMY_FORMS_DEFAULT, WORKFLOW_AUTONOMY_MIN_VALUE, WORKFLOW_JOB_RANGES, WORKFLOW_JOB_RANGE_MEMBERS, WORKFLOW_SINGLE_STEP_TYPES, WORKFLOW_HITL_ENTRY_TYPES, WORKFLOW_ARM_ENTRY_TYPES, WORKFLOW_HITL_ARM_CONTAINERS, WORKFLOW_GRAPH_ENTRY_STEP_KINDS, WORKFLOW_ARM_ENTRY_STEP_KINDS, WORKFLOW_BUDGET_MAX_DURATION_SECONDS, MODEL_ID_BYOK_PROVIDERS, MODEL_CLASS_REF_PREFIX, MODEL_SNAPSHOT_SUFFIX, REASONING_EFFORT_VALUES, IMPLICIT_MODEL_SELECTION_SOURCES, PLATFORM_FALLBACK_MODEL_SOURCE, AGENT_NAME_TOKEN, DEFAULT_PERSONA_GUIDE, PERSONAL_SPACE_STARTING_PERSONA, AGENT_LOG_SOURCES, AGENT_LOG_FIELDS_MAX_WIRE_KEYS, LOG_DRAIN_TYPES_PHASE1, LOG_DRAIN_TYPES_PHASE2, LOG_DRAIN_TYPES_IMPLEMENTED, LOG_DRAIN_SOURCES, LOG_DRAIN_MAX_PER_ORG, LOG_DRAIN_MAX_PER_ORG_ENTERPRISE, LOG_DRAIN_DATADOG_SITES, LOG_DRAIN_NEWRELIC_SITES, LOG_DRAIN_ENDPOINT_TEMPLATES, LOG_DRAIN_PRESET_SITES, LOG_DRAIN_BUCKET_NAME_PATTERN, LOG_DRAIN_BUCKET_HOST_PATTERNS, LOG_DRAIN_PRESET_HOST_SUFFIXES, DRAIN_CONTENT_ACK_ERROR_CODE, DRAIN_CONTENT_ACK_FIELD, DrainContentAckRequiredError, LOG_DRAIN_PRESET_PATHS, PRESET_SEGMENT_RE, LOG_DRAIN_QUOTAS, LOG_DRAIN_QUOTA_WARN_RATIO, LOG_DRAIN_QUOTA_DROP_DEBUG_RATIO, LOG_DRAIN_QUOTA_DROP_INFO_RATIO, LOG_DRAIN_QUOTA_PAUSE_RATIO, LOG_EXPORT_SOURCES, LOG_EXPORT_MAX_WINDOW_DAYS, LOG_EXPORT_MAX_WINDOW_MS, LOG_EXPORT_URL_TTL_SECONDS, LOG_EXPORT_FILE_RETENTION_DAYS, LOG_EXPORT_FILE_RETENTION_MS, LOG_EXPORT_PART_MAX_BYTES, LOG_DRAIN_NOTICE_RATE_LIMIT_MS, LOG_DRAIN_VERIFICATION_STALE_MS, LOG_DRAIN_DIGEST_INTERVAL_MS, LOG_DRAIN_DIGEST_MAX_ENTRIES, LOG_DRAIN_NOTICE_ERROR_MAX_CHARS, LOG_DRAIN_USAGE_LINE_ITEM, LOG_DRAIN_BYTES_PER_GIB, DEFAULT_LOG_DRAIN_PLAN_CONFIG, TIERS, LOG_CURSOR_MAX_LENGTH, LOG_CURSOR_MAX_ID_LENGTH, LOG_RELATIVE_TIME_PATTERN, LOG_ISO_TIME_PATTERN, RELATIVE_UNIT_MS, CORE_DRAINING_CODE, CORE_DRAINING_DEFAULT_RETRY_MS, CORE_DRAINING_MAX_RETRY_MS, VoiceNameSchema, PluginProviderSchema, RealtimeProviderSchema, PluginClassSchema, ModelDescriptorSchema, InferenceModelSchema, PluginModelSchema, RealtimeModelSchema, LuaVoiceModelSchema, TurnDetectionSchema, InterruptionSchema, BuiltinAudioClipSchema, AudioConfigSchema, BackgroundAudioEntrySchema, BackgroundAudioSchema, LuaVoiceConfigInnerSchema, LuaVoiceConfigSchema, LuaVoiceRefSchema, LUA_JOB_DEFAULT_TIMEOUT_SECONDS, LUA_JOB_MIN_TIMEOUT_SECONDS, LUA_JOB_MAX_TIMEOUT_SECONDS, KEYS, MAX_BODY_BYTES, MAX_ID_LENGTH, UTC_ISO, TEMPLATE_TRIGGER_URL_ENV_PREFIX, TEMPLATE_INSTALL_POLICY_PER_WORKSPACE_VALUES, SUBJECT_TYPES, SubjectTypeSchema, CREDENTIAL_TYPES, CredentialTypeSchema, DEVICE_OPERATIONS, DeviceOperationSchema, DEVICE_SCOPE_BY_OPERATION, DeviceBindingSchema, IdSchema, SESSION_AUTH_TIME_MAX_S, PrincipalDescriptorSchema, ActorDescriptorSchema, PrincipalOwnerSchema, CredentialLifecycleSchema, GeneralCredentialDescriptorSchema, DeviceCredentialDescriptorSchema, GeneralPrincipalContextSchema, DeviceCredentialPrincipalContextSchema, RawPrincipalContextSchema, PrincipalContextSchema, DeviceCredentialClaimSchema, LUA_CLIENT_HEADER, LUA_CLIENT_APPS, SEMVER_PATTERN, WEB_RELEASE_PATTERN, CLIENT_HEADER_PATTERN, LUA_SESSION_ID_CLAIM, SESSION_REVOKED_CODE, AUTHZ_PROJECTION_VERSION, ProjectedScopeSchema, DisplayRoleSchema, AuthorizationPrincipalSchema, CredentialContextSchema, ProjectionAnomalySchema, ProjectedOrgSchema, ProjectedResourceSchema, CapabilityProfilesSchema, RoleCatalogSchema, EffectiveAuthorizationSchema, ResourcePageSchema, SYSTEM_USER_PREFIX, WORKFLOW_RUN_IN_FLIGHT, WORKFLOW_RUN_IDLE, WORKFLOW_RUN_TERMINAL, WORKFLOW_RUN_STATUSES, WORKFLOW_RUN_GATE_KINDS, WORKFLOW_STEP_STATUSES, WORKFLOW_STEP_IN_FLIGHT, WORKFLOW_SIGNAL_EVENT_SITES, ARCHIVE_WINDOW_MARGIN_DAYS, WORKFLOW_ORG_PURGING_TTL_S, WORKFLOW_ORG_PURGE_FORCE_AFTER_MS, IDEMPOTENCY_HOLDING_STATUSES, WORKFLOW_SCHEDULED_RUN_ID_PREFIX, CLOUD_TASK_RUN_ID_PREFIX, WORKFLOW_SCHEDULE_KEY_MAX, WORKFLOW_SCHEDULE_IDEMPOTENCY_KEY_PREFIX, WORKFLOW_OPERATION_ID_PREFIX, WORKFLOW_CONNECTION_KEY_RE, WORKFLOW_JOB_MODEL_SOURCE_LABELS, WORKFLOW_SUSPEND_KINDS, WORKFLOW_RUN_NOTIFICATION_SUSPENDED_KINDS, WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES, WORKFLOW_RESOLVE_OUTPUT_MAX_BYTES, SCHEDULE_HEALTH_NOTIFY_CHANNELS, SCHEDULE_HEALTH_DEFAULT_NOTIFY, SCHEDULE_HEALTH_LIMITS, KNOWN_KEYS, WORKFLOW_GOAL_JUDGE_SELF, REDACTED_PLACEHOLDER, PROVIDER_MESSAGE_MAX_CHARS, ERROR_MESSAGE_MAX_CHARS, SECRET_LITERAL_PATTERNS, SECRET_NAME, SECRET_PAIR_PATTERNS, GROUP_COUNT, WORKFLOW_SECRET_KEY_RE, WORKFLOW_RESERVED_SECRET_KEYS, SCRUB_INPUT_MAX_CHARS, SCRUB_CUT_BACKOFF_CHARS, WORKFLOW_AUDIT_EVENTS, WORKFLOW_AUDIT_METADATA_MAX_BYTES, INDENT, WRAP_WIDTH, NOUNS, GET_TOOL_NAMES, PREAMBLE, WORKFLOW_APPROVAL_OUTPUT_DECISIONS, WORKFLOW_APPROVAL_OUTPUT_SCHEMA, JSON_FENCE_RE, DEFAULT_ON_AGENT_FEATURES, SUBAGENT_PER_KEY_FLAG_ENV, PER_KEY_FLAG_VALUES, ONBOARDING_FLOW_KEY, ONBOARDING_SCHEMA_VERSION, id, copy, onboardingHeadingSchema, onboardingRichTextInlineSchema, onboardingRichTextSchema, onboardingDestinationSchema, onboardingArtworkSchema, onboardingAnswerSchema, onboardingQuestionSchema, onboardingTemplateSectionSchema, onboardingTemplateContentSchema, onboardingUnavailableOutcomeSchema, onboardingFlowSchema, onboardingActorSchema, onboardingEditorSchema, onboardingPublicationSummarySchema, onboardingValidationIssueSchema, onboardingValidationResponseSchema, onboardingAssetSchema, onboardingPublicAssetSchema, getOnboardingConfigResponseSchema, saveOnboardingDraftRequestSchema, validateOnboardingRequestSchema, publishOnboardingRequestSchema, rollbackOnboardingRequestSchema, onboardingTemplateCatalogItemSchema, getPublishedOnboardingResponseSchema, WEB_ROUTE_PROTOCOL_VERSION, WEB_ROUTE_METHODS, WEB_ROUTE_REQUEST_HEADER_ALLOWLIST, WEB_ROUTE_RESPONSE_HEADER_ALLOWLIST, WEB_ROUTE_MAX_REQUEST_BODY_BYTES, WEB_ROUTE_MAX_RESPONSE_BYTES, EVIDENCE_SESSION_IDLE_MS, EVIDENCE_MIN_CONVERSATIONS, EVIDENCE_LOW_CONFIDENCE_N, EVIDENCE_SNIPPET_MAX_CHARS, EVIDENCE_EXAMPLES_PER_ITEM, EVIDENCE_SHOWN_ITEMS, EVIDENCE_LATENCY_BOUNDS_MS, EVIDENCE_WORD_BOUNDS, BAD_CONVERSATION_REASONS, ATTACHMENT_LINES, REVIEW_VERDICT_REASON_ORDER, ENV_TEMPLATE_SECRET_KEY_RE;
2524
+ var __defProp3, __name3, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, PLATFORM_INVOCATION_CALLERS, SUPERVISION_OPS, CHANNEL_SEND_CHANNELS, REVIEWABLE_ACTION_EXECUTE_TOOL_ALLOWLIST, REVIEWABLE_STANDING_START_TOOLS, REVIEWABLE_MCP_SEND_TOOL_SUFFIX, MCP_TOOL_READ_VERB_RE, MCP_DRAFT_CREATE_VERBS, NON_INTERACTIVE_CHANNELS, RICH_PARTS_MESSAGE_ID_PREFIX, SCREENSHOT_MESSAGE_ID_PREFIX, BROWSER_COMMANDS, BROWSER_COMMAND_NAMES, LOG_FIELDS_MAX_KEYS, LOG_FIELD_MAX_VALUE_BYTES, LOG_FIELDS_MAX_BYTES, LOG_FIELD_KEY_PATTERN, LOG_FIELD_SECRET_SHAPED_KEY_PATTERNS, LOG_FIELDS_CLAMPED_KEY, LOG_FIELD_ARRAY_COUNT_SUFFIX, LuaLogFieldsError, DESKTOP_FILE_COMMANDS, DESKTOP_FILE_COMMAND_SET, WORKFLOW_RETRY_BACKOFFS, WORKFLOW_RETRY_MIN_ATTEMPTS, WORKFLOW_RETRY_POLICY_KEYS, WORKFLOW_RETRY_MAX_ATTEMPTS, WORKFLOW_RETRY_ENGINE_KEYS, WORKFLOW_JOB_RESOURCES, WORKFLOW_SIDE_EFFECTS, WORKFLOW_MODEL_CLASSES, WORKFLOW_DEFAULT_TASK_CLASS_MAP, WORKFLOW_MODELS_MAX_CLASS_DEFAULT, WORKFLOW_AUTONOMY_NUMERIC_KEYS, WORKFLOW_AUTONOMY_ENVELOPE_KEYS, WORKFLOW_AUTONOMY_DEFAULTS, WORKFLOW_AUTONOMY_CEILINGS, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_ENV, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_CEILING, WORKFLOW_AUTONOMY_FORMS_DEFAULT, WORKFLOW_AUTONOMY_MIN_VALUE, WORKFLOW_JOB_RANGES, WORKFLOW_JOB_RANGE_MEMBERS, WORKFLOW_SINGLE_STEP_TYPES, WORKFLOW_HITL_ENTRY_TYPES, WORKFLOW_ARM_ENTRY_TYPES, WORKFLOW_HITL_ARM_CONTAINERS, WORKFLOW_GRAPH_ENTRY_STEP_KINDS, WORKFLOW_ARM_ENTRY_STEP_KINDS, WORKFLOW_BUDGET_MAX_DURATION_SECONDS, MODEL_ID_BYOK_PROVIDERS, MODEL_CLASS_REF_PREFIX, MODEL_SNAPSHOT_SUFFIX, REASONING_EFFORT_VALUES, IMPLICIT_MODEL_SELECTION_SOURCES, PLATFORM_FALLBACK_MODEL_SOURCE, AGENT_NAME_TOKEN, DEFAULT_PERSONA_GUIDE, PERSONAL_SPACE_STARTING_PERSONA, AGENT_LOG_SOURCES, AGENT_LOG_FIELDS_MAX_WIRE_KEYS, LOG_DRAIN_TYPES_PHASE1, LOG_DRAIN_TYPES_PHASE2, LOG_DRAIN_TYPES_IMPLEMENTED, LOG_DRAIN_SOURCES, LOG_DRAIN_MAX_PER_ORG, LOG_DRAIN_MAX_PER_ORG_ENTERPRISE, LOG_DRAIN_DATADOG_SITES, LOG_DRAIN_NEWRELIC_SITES, LOG_DRAIN_ENDPOINT_TEMPLATES, LOG_DRAIN_PRESET_SITES, LOG_DRAIN_BUCKET_NAME_PATTERN, LOG_DRAIN_BUCKET_HOST_PATTERNS, LOG_DRAIN_PRESET_HOST_SUFFIXES, DRAIN_CONTENT_ACK_ERROR_CODE, DRAIN_CONTENT_ACK_FIELD, DrainContentAckRequiredError, LOG_DRAIN_PRESET_PATHS, PRESET_SEGMENT_RE, LOG_DRAIN_QUOTAS, LOG_DRAIN_QUOTA_WARN_RATIO, LOG_DRAIN_QUOTA_DROP_DEBUG_RATIO, LOG_DRAIN_QUOTA_DROP_INFO_RATIO, LOG_DRAIN_QUOTA_PAUSE_RATIO, LOG_EXPORT_SOURCES, LOG_EXPORT_MAX_WINDOW_DAYS, LOG_EXPORT_MAX_WINDOW_MS, LOG_EXPORT_URL_TTL_SECONDS, LOG_EXPORT_FILE_RETENTION_DAYS, LOG_EXPORT_FILE_RETENTION_MS, LOG_EXPORT_PART_MAX_BYTES, LOG_DRAIN_NOTICE_RATE_LIMIT_MS, LOG_DRAIN_VERIFICATION_STALE_MS, LOG_DRAIN_DIGEST_INTERVAL_MS, LOG_DRAIN_DIGEST_MAX_ENTRIES, LOG_DRAIN_NOTICE_ERROR_MAX_CHARS, LOG_DRAIN_USAGE_LINE_ITEM, LOG_DRAIN_BYTES_PER_GIB, DEFAULT_LOG_DRAIN_PLAN_CONFIG, TIERS, LOG_CURSOR_MAX_LENGTH, LOG_CURSOR_MAX_ID_LENGTH, LOG_RELATIVE_TIME_PATTERN, LOG_ISO_TIME_PATTERN, RELATIVE_UNIT_MS, CORE_DRAINING_CODE, CORE_DRAINING_DEFAULT_RETRY_MS, CORE_DRAINING_MAX_RETRY_MS, VoiceNameSchema, PluginProviderSchema, RealtimeProviderSchema, PluginClassSchema, ModelDescriptorSchema, InferenceModelSchema, PluginModelSchema, RealtimeModelSchema, LuaVoiceModelSchema, TurnDetectionSchema, InterruptionSchema, BuiltinAudioClipSchema, AudioConfigSchema, BackgroundAudioEntrySchema, BackgroundAudioSchema, LuaVoiceConfigInnerSchema, LuaVoiceConfigSchema, LuaVoiceRefSchema, LUA_JOB_DEFAULT_TIMEOUT_SECONDS, LUA_JOB_MIN_TIMEOUT_SECONDS, LUA_JOB_MAX_TIMEOUT_SECONDS, KEYS, MAX_BODY_BYTES, MAX_ID_LENGTH, UTC_ISO, TEMPLATE_TRIGGER_URL_ENV_PREFIX, TEMPLATE_INSTALL_POLICY_PER_WORKSPACE_VALUES, SUBJECT_TYPES, SubjectTypeSchema, CREDENTIAL_TYPES, CredentialTypeSchema, DEVICE_OPERATIONS, DeviceOperationSchema, DEVICE_SCOPE_BY_OPERATION, DeviceBindingSchema, IdSchema, SESSION_AUTH_TIME_MAX_S, PrincipalDescriptorSchema, ActorDescriptorSchema, PrincipalOwnerSchema, CredentialLifecycleSchema, GeneralCredentialDescriptorSchema, DeviceCredentialDescriptorSchema, GeneralPrincipalContextSchema, DeviceCredentialPrincipalContextSchema, RawPrincipalContextSchema, PrincipalContextSchema, DeviceCredentialClaimSchema, LUA_CLIENT_HEADER, LUA_CLIENT_APPS, SEMVER_PATTERN, WEB_RELEASE_PATTERN, CLIENT_HEADER_PATTERN, LUA_SESSION_ID_CLAIM, SESSION_REVOKED_CODE, AUTHZ_PROJECTION_VERSION, ProjectedScopeSchema, DisplayRoleSchema, AuthorizationPrincipalSchema, CredentialContextSchema, ProjectionAnomalySchema, ProjectedOrgSchema, ProjectedResourceSchema, CapabilityProfilesSchema, RoleCatalogSchema, EffectiveAuthorizationSchema, ResourcePageSchema, SYSTEM_USER_PREFIX, WORKFLOW_RUN_IN_FLIGHT, WORKFLOW_RUN_IDLE, WORKFLOW_RUN_TERMINAL, WORKFLOW_RUN_STATUSES, WORKFLOW_RUN_GATE_KINDS, WORKFLOW_STEP_STATUSES, WORKFLOW_STEP_IN_FLIGHT, WORKFLOW_SIGNAL_EVENT_SITES, ARCHIVE_WINDOW_MARGIN_DAYS, WORKFLOW_ORG_PURGING_TTL_S, WORKFLOW_ORG_PURGE_FORCE_AFTER_MS, IDEMPOTENCY_HOLDING_STATUSES, WORKFLOW_SCHEDULED_RUN_ID_PREFIX, CLOUD_TASK_RUN_ID_PREFIX, WORKFLOW_SCHEDULE_KEY_MAX, WORKFLOW_SCHEDULE_IDEMPOTENCY_KEY_PREFIX, WORKFLOW_OPERATION_ID_PREFIX, WORKFLOW_CONNECTION_KEY_RE, WORKFLOW_JOB_MODEL_SOURCE_LABELS, WORKFLOW_SUSPEND_KINDS, WORKFLOW_RUN_NOTIFICATION_SUSPENDED_KINDS, WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES, WORKFLOW_RESOLVE_OUTPUT_MAX_BYTES, SCHEDULE_HEALTH_NOTIFY_CHANNELS, SCHEDULE_HEALTH_DEFAULT_NOTIFY, SCHEDULE_HEALTH_LIMITS, KNOWN_KEYS, WORKFLOW_GOAL_JUDGE_SELF, REDACTED_PLACEHOLDER, PROVIDER_MESSAGE_MAX_CHARS, ERROR_MESSAGE_MAX_CHARS, SECRET_LITERAL_PATTERNS, SECRET_NAME, SECRET_PAIR_PATTERNS, GROUP_COUNT, WORKFLOW_SECRET_KEY_RE, WORKFLOW_RESERVED_SECRET_KEYS, SCRUB_INPUT_MAX_CHARS, SCRUB_CUT_BACKOFF_CHARS, WORKFLOW_AUDIT_EVENTS, WORKFLOW_AUDIT_METADATA_MAX_BYTES, INDENT, WRAP_WIDTH, NOUNS, GET_TOOL_NAMES, PREAMBLE, WORKFLOW_APPROVAL_OUTPUT_DECISIONS, WORKFLOW_APPROVAL_OUTPUT_SCHEMA, JSON_FENCE_RE, DEFAULT_ON_AGENT_FEATURES, SUBAGENT_PER_KEY_FLAG_ENV, PER_KEY_FLAG_VALUES, ONBOARDING_FLOW_KEY, ONBOARDING_SCHEMA_VERSION, id, copy, onboardingHeadingSchema, onboardingRichTextInlineSchema, onboardingRichTextSchema, onboardingDestinationSchema, onboardingArtworkSchema, onboardingAnswerSchema, onboardingQuestionSchema, onboardingTemplateSectionSchema, onboardingInstallScreenSchema, onboardingResultScreenSchema, onboardingConnectScreenSchema, onboardingTemplateContentSchema, onboardingUnavailableOutcomeSchema, onboardingFlowSchema, onboardingActorSchema, onboardingEditorSchema, onboardingPublicationSummarySchema, onboardingValidationIssueSchema, onboardingValidationResponseSchema, onboardingAssetSchema, onboardingPublicAssetSchema, getOnboardingConfigResponseSchema, saveOnboardingDraftRequestSchema, validateOnboardingRequestSchema, publishOnboardingRequestSchema, rollbackOnboardingRequestSchema, onboardingTemplateCatalogItemSchema, getPublishedOnboardingResponseSchema, WEB_ROUTE_PROTOCOL_VERSION, WEB_ROUTE_METHODS, WEB_ROUTE_REQUEST_HEADER_ALLOWLIST, WEB_ROUTE_RESPONSE_HEADER_ALLOWLIST, WEB_ROUTE_MAX_REQUEST_BODY_BYTES, WEB_ROUTE_MAX_RESPONSE_BYTES, WEB_APP_NAME_PATTERN, WEB_APP_ENTRY_HTML_MAX_CHARS, WEB_APP_MAX_ASSET_BYTES, EVIDENCE_SESSION_IDLE_MS, EVIDENCE_MIN_CONVERSATIONS, EVIDENCE_LOW_CONFIDENCE_N, EVIDENCE_SNIPPET_MAX_CHARS, EVIDENCE_EXAMPLES_PER_ITEM, EVIDENCE_SHOWN_ITEMS, EVIDENCE_LATENCY_BOUNDS_MS, EVIDENCE_WORD_BOUNDS, BAD_CONVERSATION_REASONS, ATTACHMENT_LINES, REVIEW_VERDICT_REASON_ORDER, ENV_TEMPLATE_SECRET_KEY_RE;
2525
2525
  var init_dist = __esm({
2526
2526
  "../shared-types/dist/index.mjs"() {
2527
2527
  "use strict";
@@ -2602,7 +2602,8 @@ var init_dist = __esm({
2602
2602
  "webchat",
2603
2603
  "teams",
2604
2604
  "instagram",
2605
- "messenger"
2605
+ "messenger",
2606
+ "slack"
2606
2607
  ];
2607
2608
  REVIEWABLE_ACTION_EXECUTE_TOOL_ALLOWLIST = [
2608
2609
  "sendChannelMessage",
@@ -2613,7 +2614,8 @@ var init_dist = __esm({
2613
2614
  "sendWebchatMessage",
2614
2615
  "sendTeamsMessage",
2615
2616
  "sendInstagramMessage",
2616
- "sendMessengerMessage"
2617
+ "sendMessengerMessage",
2618
+ "sendSlackMessage"
2617
2619
  ];
2618
2620
  __name(isAllowedReviewableExecuteTool, "isAllowedReviewableExecuteTool");
2619
2621
  __name3(isAllowedReviewableExecuteTool, "isAllowedReviewableExecuteTool");
@@ -4835,6 +4837,24 @@ listed here; never invent a target.`;
4835
4837
  label: copy(100),
4836
4838
  body: onboardingRichTextSchema
4837
4839
  }).strict();
4840
+ onboardingInstallScreenSchema = z4.object({
4841
+ title: onboardingHeadingSchema,
4842
+ subtitle: copy(240),
4843
+ ctaLabel: copy(80),
4844
+ ctaHelperText: onboardingRichTextSchema
4845
+ }).strict();
4846
+ onboardingResultScreenSchema = z4.object({
4847
+ title: onboardingHeadingSchema,
4848
+ subheader: copy(240),
4849
+ inputPlaceholder: copy(120)
4850
+ }).strict();
4851
+ onboardingConnectScreenSchema = z4.object({
4852
+ title: onboardingHeadingSchema,
4853
+ description: onboardingRichTextSchema,
4854
+ ctaLabel: copy(80),
4855
+ neverLine: copy(120),
4856
+ footnote: copy(240)
4857
+ }).strict();
4838
4858
  onboardingTemplateContentSchema = z4.object({
4839
4859
  id,
4840
4860
  templateId: copy(160),
@@ -4847,7 +4867,10 @@ listed here; never invent a target.`;
4847
4867
  artwork: onboardingArtworkSchema,
4848
4868
  hireButtonLabel: copy(80),
4849
4869
  changeRoleButtonLabel: copy(80),
4850
- nextStepText: onboardingRichTextSchema
4870
+ nextStepText: onboardingRichTextSchema,
4871
+ install: onboardingInstallScreenSchema.optional(),
4872
+ result: onboardingResultScreenSchema.optional(),
4873
+ connect: onboardingConnectScreenSchema.optional()
4851
4874
  }).strict();
4852
4875
  onboardingUnavailableOutcomeSchema = z4.object({
4853
4876
  id,
@@ -5017,6 +5040,9 @@ listed here; never invent a target.`;
5017
5040
  __name3(isQueryRecord, "isQueryRecord");
5018
5041
  __name(isWebRouteInput, "isWebRouteInput");
5019
5042
  __name3(isWebRouteInput, "isWebRouteInput");
5043
+ WEB_APP_NAME_PATTERN = /^[a-z][a-z0-9-]*$/;
5044
+ WEB_APP_ENTRY_HTML_MAX_CHARS = 256 * 1024;
5045
+ WEB_APP_MAX_ASSET_BYTES = 8 * 1024 * 1024;
5020
5046
  EVIDENCE_SESSION_IDLE_MS = 30 * 6e4;
5021
5047
  EVIDENCE_MIN_CONVERSATIONS = 20;
5022
5048
  EVIDENCE_LOW_CONFIDENCE_N = 5;
@@ -13636,7 +13662,8 @@ var init_skill_handler = __esm({
13636
13662
  }
13637
13663
  return {
13638
13664
  name: skill.name,
13639
- description: skill.description,
13665
+ // Same fallback as createOnServer — the server's version row requires a description.
13666
+ description: skill.description || `A Lua skill for ${skill.name}`,
13640
13667
  // Same gate as createOnServer — server validator rejects empty content.
13641
13668
  ...hasPersonaTextContent(skill.context) ? {
13642
13669
  context: skill.context
@@ -18978,7 +19005,6 @@ __name(defineVoice, "defineVoice");
18978
19005
 
18979
19006
  // src/types/web-app.ts
18980
19007
  init_dist();
18981
- var WEB_APP_NAME_PATTERN = /^[a-z][a-z0-9-]*$/;
18982
19008
  var ROUTE_KEY_PATTERN = new RegExp(`^(${WEB_ROUTE_METHODS.join("|")}) /\\S*$`);
18983
19009
  function route(def) {
18984
19010
  if (typeof def.handler !== "function") {