@herdctl/core 5.8.3 → 5.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/config/__tests__/merge.test.js +20 -0
  2. package/dist/config/__tests__/merge.test.js.map +1 -1
  3. package/dist/config/__tests__/schema.test.js +48 -0
  4. package/dist/config/__tests__/schema.test.js.map +1 -1
  5. package/dist/config/index.d.ts +1 -1
  6. package/dist/config/index.d.ts.map +1 -1
  7. package/dist/config/index.js +2 -2
  8. package/dist/config/index.js.map +1 -1
  9. package/dist/config/merge.d.ts +5 -1
  10. package/dist/config/merge.d.ts.map +1 -1
  11. package/dist/config/merge.js +9 -0
  12. package/dist/config/merge.js.map +1 -1
  13. package/dist/config/schema.d.ts +869 -13
  14. package/dist/config/schema.d.ts.map +1 -1
  15. package/dist/config/schema.js +118 -1
  16. package/dist/config/schema.js.map +1 -1
  17. package/dist/fleet-manager/job-control.d.ts.map +1 -1
  18. package/dist/fleet-manager/job-control.js +2 -0
  19. package/dist/fleet-manager/job-control.js.map +1 -1
  20. package/dist/fleet-manager/types.d.ts +14 -0
  21. package/dist/fleet-manager/types.d.ts.map +1 -1
  22. package/dist/runner/__tests__/sdk-adapter.test.js +41 -0
  23. package/dist/runner/__tests__/sdk-adapter.test.js.map +1 -1
  24. package/dist/runner/job-executor.d.ts.map +1 -1
  25. package/dist/runner/job-executor.js +1 -0
  26. package/dist/runner/job-executor.js.map +1 -1
  27. package/dist/runner/runtime/__tests__/cli-runtime.test.d.ts +2 -0
  28. package/dist/runner/runtime/__tests__/cli-runtime.test.d.ts.map +1 -0
  29. package/dist/runner/runtime/__tests__/cli-runtime.test.js +82 -0
  30. package/dist/runner/runtime/__tests__/cli-runtime.test.js.map +1 -0
  31. package/dist/runner/runtime/__tests__/cli-session-path.test.js +88 -1
  32. package/dist/runner/runtime/__tests__/cli-session-path.test.js.map +1 -1
  33. package/dist/runner/runtime/cli-runtime.d.ts.map +1 -1
  34. package/dist/runner/runtime/cli-runtime.js +175 -4
  35. package/dist/runner/runtime/cli-runtime.js.map +1 -1
  36. package/dist/runner/runtime/cli-session-path.d.ts +24 -0
  37. package/dist/runner/runtime/cli-session-path.d.ts.map +1 -1
  38. package/dist/runner/runtime/cli-session-path.js +36 -0
  39. package/dist/runner/runtime/cli-session-path.js.map +1 -1
  40. package/dist/runner/runtime/interface.d.ts +3 -1
  41. package/dist/runner/runtime/interface.d.ts.map +1 -1
  42. package/dist/runner/runtime/sdk-runtime.d.ts.map +1 -1
  43. package/dist/runner/runtime/sdk-runtime.js +20 -0
  44. package/dist/runner/runtime/sdk-runtime.js.map +1 -1
  45. package/dist/runner/sdk-adapter.d.ts.map +1 -1
  46. package/dist/runner/sdk-adapter.js +4 -0
  47. package/dist/runner/sdk-adapter.js.map +1 -1
  48. package/dist/runner/types.d.ts +4 -1
  49. package/dist/runner/types.d.ts.map +1 -1
  50. package/dist/state/__tests__/session-discovery.test.js +241 -8
  51. package/dist/state/__tests__/session-discovery.test.js.map +1 -1
  52. package/dist/state/session-discovery.d.ts +27 -5
  53. package/dist/state/session-discovery.d.ts.map +1 -1
  54. package/dist/state/session-discovery.js +114 -31
  55. package/dist/state/session-discovery.js.map +1 -1
  56. package/package.json +1 -1
@@ -1377,8 +1377,25 @@ export declare const DefaultsSchema: z.ZodObject<{
1377
1377
  model: z.ZodOptional<z.ZodString>;
1378
1378
  max_turns: z.ZodOptional<z.ZodNumber>;
1379
1379
  permission_mode: z.ZodOptional<z.ZodEnum<["default", "acceptEdits", "bypassPermissions", "plan", "delegate", "dontAsk"]>>;
1380
+ tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1380
1381
  allowed_tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1381
1382
  denied_tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1383
+ mcp_servers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodLazy<z.ZodObject<{
1384
+ command: z.ZodOptional<z.ZodString>;
1385
+ args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1386
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1387
+ url: z.ZodOptional<z.ZodString>;
1388
+ }, "strip", z.ZodTypeAny, {
1389
+ url?: string | undefined;
1390
+ env?: Record<string, string> | undefined;
1391
+ command?: string | undefined;
1392
+ args?: string[] | undefined;
1393
+ }, {
1394
+ url?: string | undefined;
1395
+ env?: Record<string, string> | undefined;
1396
+ command?: string | undefined;
1397
+ args?: string[] | undefined;
1398
+ }>>>>;
1382
1399
  }, "strip", z.ZodTypeAny, {
1383
1400
  max_turns?: number | undefined;
1384
1401
  model?: string | undefined;
@@ -1439,8 +1456,15 @@ export declare const DefaultsSchema: z.ZodObject<{
1439
1456
  model?: string | undefined;
1440
1457
  } | undefined;
1441
1458
  permission_mode?: "default" | "acceptEdits" | "bypassPermissions" | "plan" | "delegate" | "dontAsk" | undefined;
1459
+ tools?: string[] | undefined;
1442
1460
  allowed_tools?: string[] | undefined;
1443
1461
  denied_tools?: string[] | undefined;
1462
+ mcp_servers?: Record<string, {
1463
+ url?: string | undefined;
1464
+ env?: Record<string, string> | undefined;
1465
+ command?: string | undefined;
1466
+ args?: string[] | undefined;
1467
+ }> | undefined;
1444
1468
  }, {
1445
1469
  max_turns?: number | undefined;
1446
1470
  model?: string | undefined;
@@ -1501,8 +1525,15 @@ export declare const DefaultsSchema: z.ZodObject<{
1501
1525
  model?: string | undefined;
1502
1526
  } | undefined;
1503
1527
  permission_mode?: "default" | "acceptEdits" | "bypassPermissions" | "plan" | "delegate" | "dontAsk" | undefined;
1528
+ tools?: string[] | undefined;
1504
1529
  allowed_tools?: string[] | undefined;
1505
1530
  denied_tools?: string[] | undefined;
1531
+ mcp_servers?: Record<string, {
1532
+ url?: string | undefined;
1533
+ env?: Record<string, string> | undefined;
1534
+ command?: string | undefined;
1535
+ args?: string[] | undefined;
1536
+ }> | undefined;
1506
1537
  }>;
1507
1538
  export declare const WorkingDirectorySchema: z.ZodObject<{
1508
1539
  root: z.ZodString;
@@ -1899,6 +1930,8 @@ export declare const DiscordGuildSchema: z.ZodObject<{
1899
1930
  mode?: "mention" | "auto" | undefined;
1900
1931
  context_messages?: number | undefined;
1901
1932
  }>, "many">>;
1933
+ /** Default mode for channels not explicitly listed. When set, the bot responds in any channel. */
1934
+ default_channel_mode: z.ZodOptional<z.ZodEnum<["mention", "auto"]>>;
1902
1935
  dm: z.ZodOptional<z.ZodObject<{
1903
1936
  enabled: z.ZodDefault<z.ZodBoolean>;
1904
1937
  mode: z.ZodDefault<z.ZodEnum<["mention", "auto"]>>;
@@ -1923,6 +1956,7 @@ export declare const DiscordGuildSchema: z.ZodObject<{
1923
1956
  context_messages: number;
1924
1957
  name?: string | undefined;
1925
1958
  }[] | undefined;
1959
+ default_channel_mode?: "mention" | "auto" | undefined;
1926
1960
  dm?: {
1927
1961
  enabled: boolean;
1928
1962
  mode: "mention" | "auto";
@@ -1937,6 +1971,7 @@ export declare const DiscordGuildSchema: z.ZodObject<{
1937
1971
  mode?: "mention" | "auto" | undefined;
1938
1972
  context_messages?: number | undefined;
1939
1973
  }[] | undefined;
1974
+ default_channel_mode?: "mention" | "auto" | undefined;
1940
1975
  dm?: {
1941
1976
  enabled?: boolean | undefined;
1942
1977
  mode?: "mention" | "auto" | undefined;
@@ -1989,9 +2024,10 @@ export declare const ChatOutputSchema: z.ZodObject<{
1989
2024
  * tool_results: true
1990
2025
  * tool_result_max_length: 900
1991
2026
  * system_status: true
1992
- * result_summary: false
2027
+ * result_summary: true
1993
2028
  * errors: true
1994
2029
  * typing_indicator: true
2030
+ * assistant_messages: answers
1995
2031
  * ```
1996
2032
  */
1997
2033
  export declare const DiscordOutputSchema: z.ZodObject<{
@@ -2008,6 +2044,12 @@ export declare const DiscordOutputSchema: z.ZodObject<{
2008
2044
  result_summary: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2009
2045
  /** Show typing indicator while the agent is processing (default: true) */
2010
2046
  typing_indicator: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2047
+ /** Emoji to react with when a message is received (empty string to disable, default: "👀") */
2048
+ acknowledge_emoji: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2049
+ /** Which assistant turns to send: "answers" (no tool_use blocks) or "all" (default: "answers") */
2050
+ assistant_messages: z.ZodDefault<z.ZodOptional<z.ZodEnum<["answers", "all"]>>>;
2051
+ /** Show a progress indicator embed with tool names while working (default: true) */
2052
+ progress_indicator: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2011
2053
  }, "strip", z.ZodTypeAny, {
2012
2054
  tool_results: boolean;
2013
2055
  tool_result_max_length: number;
@@ -2015,6 +2057,9 @@ export declare const DiscordOutputSchema: z.ZodObject<{
2015
2057
  errors: boolean;
2016
2058
  result_summary: boolean;
2017
2059
  typing_indicator: boolean;
2060
+ acknowledge_emoji: string;
2061
+ assistant_messages: "answers" | "all";
2062
+ progress_indicator: boolean;
2018
2063
  }, {
2019
2064
  tool_results?: boolean | undefined;
2020
2065
  tool_result_max_length?: number | undefined;
@@ -2022,6 +2067,137 @@ export declare const DiscordOutputSchema: z.ZodObject<{
2022
2067
  errors?: boolean | undefined;
2023
2068
  result_summary?: boolean | undefined;
2024
2069
  typing_indicator?: boolean | undefined;
2070
+ acknowledge_emoji?: string | undefined;
2071
+ assistant_messages?: "answers" | "all" | undefined;
2072
+ progress_indicator?: boolean | undefined;
2073
+ }>;
2074
+ /**
2075
+ * Discord slash command registration settings
2076
+ *
2077
+ * Controls whether commands are registered globally (default) or per-guild.
2078
+ * Guild registration propagates faster and is useful for local development.
2079
+ */
2080
+ export declare const DiscordCommandRegistrationSchema: z.ZodEffects<z.ZodObject<{
2081
+ /** Command registration scope (default: global) */
2082
+ scope: z.ZodDefault<z.ZodOptional<z.ZodEnum<["global", "guild"]>>>;
2083
+ /** Target guild ID when using scope: guild */
2084
+ guild_id: z.ZodOptional<z.ZodString>;
2085
+ }, "strip", z.ZodTypeAny, {
2086
+ scope: "global" | "guild";
2087
+ guild_id?: string | undefined;
2088
+ }, {
2089
+ scope?: "global" | "guild" | undefined;
2090
+ guild_id?: string | undefined;
2091
+ }>, {
2092
+ scope: "global" | "guild";
2093
+ guild_id?: string | undefined;
2094
+ }, {
2095
+ scope?: "global" | "guild" | undefined;
2096
+ guild_id?: string | undefined;
2097
+ }>;
2098
+ /**
2099
+ * Explicit Discord skill entry used by /skills and /skill command UX.
2100
+ */
2101
+ export declare const DiscordSkillSchema: z.ZodObject<{
2102
+ /** Skill name as shown in autocomplete and passed to /skill */
2103
+ name: z.ZodString;
2104
+ /** Optional user-facing description */
2105
+ description: z.ZodOptional<z.ZodString>;
2106
+ }, "strip", z.ZodTypeAny, {
2107
+ name: string;
2108
+ description?: string | undefined;
2109
+ }, {
2110
+ name: string;
2111
+ description?: string | undefined;
2112
+ }>;
2113
+ /**
2114
+ * Discord voice message transcription configuration
2115
+ *
2116
+ * When enabled, voice messages sent in Discord text channels are
2117
+ * downloaded and transcribed via a speech-to-text provider (currently OpenAI Whisper).
2118
+ * The transcription is then used as the agent prompt.
2119
+ *
2120
+ * @example
2121
+ * ```yaml
2122
+ * voice:
2123
+ * enabled: true
2124
+ * provider: openai
2125
+ * api_key_env: OPENAI_API_KEY
2126
+ * model: whisper-1
2127
+ * language: en
2128
+ * ```
2129
+ */
2130
+ export declare const DiscordVoiceSchema: z.ZodObject<{
2131
+ /** Enable voice message transcription (default: false) */
2132
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2133
+ /** Transcription provider (default: "openai") */
2134
+ provider: z.ZodDefault<z.ZodOptional<z.ZodEnum<["openai"]>>>;
2135
+ /** Environment variable name containing the API key (default: "OPENAI_API_KEY") */
2136
+ api_key_env: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2137
+ /** Model to use for transcription (default: "whisper-1") */
2138
+ model: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2139
+ /** Language hint for better transcription accuracy (ISO 639-1, e.g., "en") */
2140
+ language: z.ZodOptional<z.ZodString>;
2141
+ }, "strip", z.ZodTypeAny, {
2142
+ enabled: boolean;
2143
+ model: string;
2144
+ provider: "openai";
2145
+ api_key_env: string;
2146
+ language?: string | undefined;
2147
+ }, {
2148
+ enabled?: boolean | undefined;
2149
+ model?: string | undefined;
2150
+ provider?: "openai" | undefined;
2151
+ api_key_env?: string | undefined;
2152
+ language?: string | undefined;
2153
+ }>;
2154
+ /**
2155
+ * Discord file attachment handling configuration schema
2156
+ *
2157
+ * Controls how non-voice file attachments (images, PDFs, code files) are
2158
+ * processed when users upload them alongside messages.
2159
+ *
2160
+ * @example
2161
+ * ```yaml
2162
+ * attachments:
2163
+ * enabled: true
2164
+ * max_file_size_mb: 10
2165
+ * max_files_per_message: 5
2166
+ * allowed_types:
2167
+ * - "image/*"
2168
+ * - "application/pdf"
2169
+ * - "text/*"
2170
+ * download_dir: ".discord-attachments"
2171
+ * cleanup_after_processing: true
2172
+ * ```
2173
+ */
2174
+ export declare const DiscordAttachmentsSchema: z.ZodObject<{
2175
+ /** Enable file attachment processing (default: false) */
2176
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2177
+ /** Maximum file size in MB (default: 10) */
2178
+ max_file_size_mb: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2179
+ /** Maximum files per message (default: 5) */
2180
+ max_files_per_message: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2181
+ /** Allowed MIME type patterns — supports wildcards like "image/*" (default: ["image/*", "application/pdf", "text/*"]) */
2182
+ allowed_types: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
2183
+ /** Directory name for downloaded binary attachments, relative to agent working_directory (default: ".discord-attachments") */
2184
+ download_dir: z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodString>>, string, string | undefined>;
2185
+ /** Delete downloaded files after the agent finishes processing (default: true) */
2186
+ cleanup_after_processing: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2187
+ }, "strip", z.ZodTypeAny, {
2188
+ enabled: boolean;
2189
+ max_file_size_mb: number;
2190
+ max_files_per_message: number;
2191
+ allowed_types: string[];
2192
+ download_dir: string;
2193
+ cleanup_after_processing: boolean;
2194
+ }, {
2195
+ enabled?: boolean | undefined;
2196
+ max_file_size_mb?: number | undefined;
2197
+ max_files_per_message?: number | undefined;
2198
+ allowed_types?: string[] | undefined;
2199
+ download_dir?: string | undefined;
2200
+ cleanup_after_processing?: boolean | undefined;
2025
2201
  }>;
2026
2202
  /**
2027
2203
  * Per-agent Discord bot configuration schema
@@ -2075,6 +2251,12 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2075
2251
  result_summary: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2076
2252
  /** Show typing indicator while the agent is processing (default: true) */
2077
2253
  typing_indicator: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2254
+ /** Emoji to react with when a message is received (empty string to disable, default: "👀") */
2255
+ acknowledge_emoji: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2256
+ /** Which assistant turns to send: "answers" (no tool_use blocks) or "all" (default: "answers") */
2257
+ assistant_messages: z.ZodDefault<z.ZodOptional<z.ZodEnum<["answers", "all"]>>>;
2258
+ /** Show a progress indicator embed with tool names while working (default: true) */
2259
+ progress_indicator: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2078
2260
  }, "strip", z.ZodTypeAny, {
2079
2261
  tool_results: boolean;
2080
2262
  tool_result_max_length: number;
@@ -2082,6 +2264,9 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2082
2264
  errors: boolean;
2083
2265
  result_summary: boolean;
2084
2266
  typing_indicator: boolean;
2267
+ acknowledge_emoji: string;
2268
+ assistant_messages: "answers" | "all";
2269
+ progress_indicator: boolean;
2085
2270
  }, {
2086
2271
  tool_results?: boolean | undefined;
2087
2272
  tool_result_max_length?: number | undefined;
@@ -2089,6 +2274,9 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2089
2274
  errors?: boolean | undefined;
2090
2275
  result_summary?: boolean | undefined;
2091
2276
  typing_indicator?: boolean | undefined;
2277
+ acknowledge_emoji?: string | undefined;
2278
+ assistant_messages?: "answers" | "all" | undefined;
2279
+ progress_indicator?: boolean | undefined;
2092
2280
  }>>>;
2093
2281
  /** Bot presence/activity configuration */
2094
2282
  presence: z.ZodOptional<z.ZodObject<{
@@ -2120,6 +2308,8 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2120
2308
  mode?: "mention" | "auto" | undefined;
2121
2309
  context_messages?: number | undefined;
2122
2310
  }>, "many">>;
2311
+ /** Default mode for channels not explicitly listed. When set, the bot responds in any channel. */
2312
+ default_channel_mode: z.ZodOptional<z.ZodEnum<["mention", "auto"]>>;
2123
2313
  dm: z.ZodOptional<z.ZodObject<{
2124
2314
  enabled: z.ZodDefault<z.ZodBoolean>;
2125
2315
  mode: z.ZodDefault<z.ZodEnum<["mention", "auto"]>>;
@@ -2144,6 +2334,7 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2144
2334
  context_messages: number;
2145
2335
  name?: string | undefined;
2146
2336
  }[] | undefined;
2337
+ default_channel_mode?: "mention" | "auto" | undefined;
2147
2338
  dm?: {
2148
2339
  enabled: boolean;
2149
2340
  mode: "mention" | "auto";
@@ -2158,6 +2349,7 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2158
2349
  mode?: "mention" | "auto" | undefined;
2159
2350
  context_messages?: number | undefined;
2160
2351
  }[] | undefined;
2352
+ default_channel_mode?: "mention" | "auto" | undefined;
2161
2353
  dm?: {
2162
2354
  enabled?: boolean | undefined;
2163
2355
  mode?: "mention" | "auto" | undefined;
@@ -2182,6 +2374,92 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2182
2374
  allowlist?: string[] | undefined;
2183
2375
  blocklist?: string[] | undefined;
2184
2376
  }>>;
2377
+ /** Voice message transcription configuration */
2378
+ voice: z.ZodOptional<z.ZodObject<{
2379
+ /** Enable voice message transcription (default: false) */
2380
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2381
+ /** Transcription provider (default: "openai") */
2382
+ provider: z.ZodDefault<z.ZodOptional<z.ZodEnum<["openai"]>>>;
2383
+ /** Environment variable name containing the API key (default: "OPENAI_API_KEY") */
2384
+ api_key_env: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2385
+ /** Model to use for transcription (default: "whisper-1") */
2386
+ model: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2387
+ /** Language hint for better transcription accuracy (ISO 639-1, e.g., "en") */
2388
+ language: z.ZodOptional<z.ZodString>;
2389
+ }, "strip", z.ZodTypeAny, {
2390
+ enabled: boolean;
2391
+ model: string;
2392
+ provider: "openai";
2393
+ api_key_env: string;
2394
+ language?: string | undefined;
2395
+ }, {
2396
+ enabled?: boolean | undefined;
2397
+ model?: string | undefined;
2398
+ provider?: "openai" | undefined;
2399
+ api_key_env?: string | undefined;
2400
+ language?: string | undefined;
2401
+ }>>;
2402
+ /** File attachment handling configuration */
2403
+ attachments: z.ZodOptional<z.ZodObject<{
2404
+ /** Enable file attachment processing (default: false) */
2405
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2406
+ /** Maximum file size in MB (default: 10) */
2407
+ max_file_size_mb: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2408
+ /** Maximum files per message (default: 5) */
2409
+ max_files_per_message: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2410
+ /** Allowed MIME type patterns — supports wildcards like "image/*" (default: ["image/*", "application/pdf", "text/*"]) */
2411
+ allowed_types: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
2412
+ /** Directory name for downloaded binary attachments, relative to agent working_directory (default: ".discord-attachments") */
2413
+ download_dir: z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodString>>, string, string | undefined>;
2414
+ /** Delete downloaded files after the agent finishes processing (default: true) */
2415
+ cleanup_after_processing: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2416
+ }, "strip", z.ZodTypeAny, {
2417
+ enabled: boolean;
2418
+ max_file_size_mb: number;
2419
+ max_files_per_message: number;
2420
+ allowed_types: string[];
2421
+ download_dir: string;
2422
+ cleanup_after_processing: boolean;
2423
+ }, {
2424
+ enabled?: boolean | undefined;
2425
+ max_file_size_mb?: number | undefined;
2426
+ max_files_per_message?: number | undefined;
2427
+ allowed_types?: string[] | undefined;
2428
+ download_dir?: string | undefined;
2429
+ cleanup_after_processing?: boolean | undefined;
2430
+ }>>;
2431
+ /** Slash command registration mode */
2432
+ command_registration: z.ZodOptional<z.ZodEffects<z.ZodObject<{
2433
+ /** Command registration scope (default: global) */
2434
+ scope: z.ZodDefault<z.ZodOptional<z.ZodEnum<["global", "guild"]>>>;
2435
+ /** Target guild ID when using scope: guild */
2436
+ guild_id: z.ZodOptional<z.ZodString>;
2437
+ }, "strip", z.ZodTypeAny, {
2438
+ scope: "global" | "guild";
2439
+ guild_id?: string | undefined;
2440
+ }, {
2441
+ scope?: "global" | "guild" | undefined;
2442
+ guild_id?: string | undefined;
2443
+ }>, {
2444
+ scope: "global" | "guild";
2445
+ guild_id?: string | undefined;
2446
+ }, {
2447
+ scope?: "global" | "guild" | undefined;
2448
+ guild_id?: string | undefined;
2449
+ }>>;
2450
+ /** Explicit skill list for slash command discovery (recommended in containerized deployments) */
2451
+ skills: z.ZodOptional<z.ZodArray<z.ZodObject<{
2452
+ /** Skill name as shown in autocomplete and passed to /skill */
2453
+ name: z.ZodString;
2454
+ /** Optional user-facing description */
2455
+ description: z.ZodOptional<z.ZodString>;
2456
+ }, "strip", z.ZodTypeAny, {
2457
+ name: string;
2458
+ description?: string | undefined;
2459
+ }, {
2460
+ name: string;
2461
+ description?: string | undefined;
2462
+ }>, "many">>;
2185
2463
  }, "strip", z.ZodTypeAny, {
2186
2464
  bot_token_env: string;
2187
2465
  session_expiry_hours: number;
@@ -2193,6 +2471,9 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2193
2471
  errors: boolean;
2194
2472
  result_summary: boolean;
2195
2473
  typing_indicator: boolean;
2474
+ acknowledge_emoji: string;
2475
+ assistant_messages: "answers" | "all";
2476
+ progress_indicator: boolean;
2196
2477
  };
2197
2478
  guilds: {
2198
2479
  id: string;
@@ -2202,6 +2483,7 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2202
2483
  context_messages: number;
2203
2484
  name?: string | undefined;
2204
2485
  }[] | undefined;
2486
+ default_channel_mode?: "mention" | "auto" | undefined;
2205
2487
  dm?: {
2206
2488
  enabled: boolean;
2207
2489
  mode: "mention" | "auto";
@@ -2219,6 +2501,29 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2219
2501
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
2220
2502
  activity_message?: string | undefined;
2221
2503
  } | undefined;
2504
+ voice?: {
2505
+ enabled: boolean;
2506
+ model: string;
2507
+ provider: "openai";
2508
+ api_key_env: string;
2509
+ language?: string | undefined;
2510
+ } | undefined;
2511
+ attachments?: {
2512
+ enabled: boolean;
2513
+ max_file_size_mb: number;
2514
+ max_files_per_message: number;
2515
+ allowed_types: string[];
2516
+ download_dir: string;
2517
+ cleanup_after_processing: boolean;
2518
+ } | undefined;
2519
+ command_registration?: {
2520
+ scope: "global" | "guild";
2521
+ guild_id?: string | undefined;
2522
+ } | undefined;
2523
+ skills?: {
2524
+ name: string;
2525
+ description?: string | undefined;
2526
+ }[] | undefined;
2222
2527
  }, {
2223
2528
  bot_token_env: string;
2224
2529
  guilds: {
@@ -2229,6 +2534,7 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2229
2534
  mode?: "mention" | "auto" | undefined;
2230
2535
  context_messages?: number | undefined;
2231
2536
  }[] | undefined;
2537
+ default_channel_mode?: "mention" | "auto" | undefined;
2232
2538
  dm?: {
2233
2539
  enabled?: boolean | undefined;
2234
2540
  mode?: "mention" | "auto" | undefined;
@@ -2251,11 +2557,37 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2251
2557
  errors?: boolean | undefined;
2252
2558
  result_summary?: boolean | undefined;
2253
2559
  typing_indicator?: boolean | undefined;
2560
+ acknowledge_emoji?: string | undefined;
2561
+ assistant_messages?: "answers" | "all" | undefined;
2562
+ progress_indicator?: boolean | undefined;
2254
2563
  } | undefined;
2255
2564
  presence?: {
2256
2565
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
2257
2566
  activity_message?: string | undefined;
2258
2567
  } | undefined;
2568
+ voice?: {
2569
+ enabled?: boolean | undefined;
2570
+ model?: string | undefined;
2571
+ provider?: "openai" | undefined;
2572
+ api_key_env?: string | undefined;
2573
+ language?: string | undefined;
2574
+ } | undefined;
2575
+ attachments?: {
2576
+ enabled?: boolean | undefined;
2577
+ max_file_size_mb?: number | undefined;
2578
+ max_files_per_message?: number | undefined;
2579
+ allowed_types?: string[] | undefined;
2580
+ download_dir?: string | undefined;
2581
+ cleanup_after_processing?: boolean | undefined;
2582
+ } | undefined;
2583
+ command_registration?: {
2584
+ scope?: "global" | "guild" | undefined;
2585
+ guild_id?: string | undefined;
2586
+ } | undefined;
2587
+ skills?: {
2588
+ name: string;
2589
+ description?: string | undefined;
2590
+ }[] | undefined;
2259
2591
  }>;
2260
2592
  /**
2261
2593
  * Slack channel configuration for an agent's bot
@@ -2445,6 +2777,12 @@ export declare const AgentChatSchema: z.ZodObject<{
2445
2777
  result_summary: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2446
2778
  /** Show typing indicator while the agent is processing (default: true) */
2447
2779
  typing_indicator: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2780
+ /** Emoji to react with when a message is received (empty string to disable, default: "👀") */
2781
+ acknowledge_emoji: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2782
+ /** Which assistant turns to send: "answers" (no tool_use blocks) or "all" (default: "answers") */
2783
+ assistant_messages: z.ZodDefault<z.ZodOptional<z.ZodEnum<["answers", "all"]>>>;
2784
+ /** Show a progress indicator embed with tool names while working (default: true) */
2785
+ progress_indicator: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2448
2786
  }, "strip", z.ZodTypeAny, {
2449
2787
  tool_results: boolean;
2450
2788
  tool_result_max_length: number;
@@ -2452,6 +2790,9 @@ export declare const AgentChatSchema: z.ZodObject<{
2452
2790
  errors: boolean;
2453
2791
  result_summary: boolean;
2454
2792
  typing_indicator: boolean;
2793
+ acknowledge_emoji: string;
2794
+ assistant_messages: "answers" | "all";
2795
+ progress_indicator: boolean;
2455
2796
  }, {
2456
2797
  tool_results?: boolean | undefined;
2457
2798
  tool_result_max_length?: number | undefined;
@@ -2459,6 +2800,9 @@ export declare const AgentChatSchema: z.ZodObject<{
2459
2800
  errors?: boolean | undefined;
2460
2801
  result_summary?: boolean | undefined;
2461
2802
  typing_indicator?: boolean | undefined;
2803
+ acknowledge_emoji?: string | undefined;
2804
+ assistant_messages?: "answers" | "all" | undefined;
2805
+ progress_indicator?: boolean | undefined;
2462
2806
  }>>>;
2463
2807
  /** Bot presence/activity configuration */
2464
2808
  presence: z.ZodOptional<z.ZodObject<{
@@ -2490,6 +2834,8 @@ export declare const AgentChatSchema: z.ZodObject<{
2490
2834
  mode?: "mention" | "auto" | undefined;
2491
2835
  context_messages?: number | undefined;
2492
2836
  }>, "many">>;
2837
+ /** Default mode for channels not explicitly listed. When set, the bot responds in any channel. */
2838
+ default_channel_mode: z.ZodOptional<z.ZodEnum<["mention", "auto"]>>;
2493
2839
  dm: z.ZodOptional<z.ZodObject<{
2494
2840
  enabled: z.ZodDefault<z.ZodBoolean>;
2495
2841
  mode: z.ZodDefault<z.ZodEnum<["mention", "auto"]>>;
@@ -2514,6 +2860,7 @@ export declare const AgentChatSchema: z.ZodObject<{
2514
2860
  context_messages: number;
2515
2861
  name?: string | undefined;
2516
2862
  }[] | undefined;
2863
+ default_channel_mode?: "mention" | "auto" | undefined;
2517
2864
  dm?: {
2518
2865
  enabled: boolean;
2519
2866
  mode: "mention" | "auto";
@@ -2528,6 +2875,7 @@ export declare const AgentChatSchema: z.ZodObject<{
2528
2875
  mode?: "mention" | "auto" | undefined;
2529
2876
  context_messages?: number | undefined;
2530
2877
  }[] | undefined;
2878
+ default_channel_mode?: "mention" | "auto" | undefined;
2531
2879
  dm?: {
2532
2880
  enabled?: boolean | undefined;
2533
2881
  mode?: "mention" | "auto" | undefined;
@@ -2552,6 +2900,92 @@ export declare const AgentChatSchema: z.ZodObject<{
2552
2900
  allowlist?: string[] | undefined;
2553
2901
  blocklist?: string[] | undefined;
2554
2902
  }>>;
2903
+ /** Voice message transcription configuration */
2904
+ voice: z.ZodOptional<z.ZodObject<{
2905
+ /** Enable voice message transcription (default: false) */
2906
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2907
+ /** Transcription provider (default: "openai") */
2908
+ provider: z.ZodDefault<z.ZodOptional<z.ZodEnum<["openai"]>>>;
2909
+ /** Environment variable name containing the API key (default: "OPENAI_API_KEY") */
2910
+ api_key_env: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2911
+ /** Model to use for transcription (default: "whisper-1") */
2912
+ model: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2913
+ /** Language hint for better transcription accuracy (ISO 639-1, e.g., "en") */
2914
+ language: z.ZodOptional<z.ZodString>;
2915
+ }, "strip", z.ZodTypeAny, {
2916
+ enabled: boolean;
2917
+ model: string;
2918
+ provider: "openai";
2919
+ api_key_env: string;
2920
+ language?: string | undefined;
2921
+ }, {
2922
+ enabled?: boolean | undefined;
2923
+ model?: string | undefined;
2924
+ provider?: "openai" | undefined;
2925
+ api_key_env?: string | undefined;
2926
+ language?: string | undefined;
2927
+ }>>;
2928
+ /** File attachment handling configuration */
2929
+ attachments: z.ZodOptional<z.ZodObject<{
2930
+ /** Enable file attachment processing (default: false) */
2931
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2932
+ /** Maximum file size in MB (default: 10) */
2933
+ max_file_size_mb: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2934
+ /** Maximum files per message (default: 5) */
2935
+ max_files_per_message: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2936
+ /** Allowed MIME type patterns — supports wildcards like "image/*" (default: ["image/*", "application/pdf", "text/*"]) */
2937
+ allowed_types: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
2938
+ /** Directory name for downloaded binary attachments, relative to agent working_directory (default: ".discord-attachments") */
2939
+ download_dir: z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodString>>, string, string | undefined>;
2940
+ /** Delete downloaded files after the agent finishes processing (default: true) */
2941
+ cleanup_after_processing: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2942
+ }, "strip", z.ZodTypeAny, {
2943
+ enabled: boolean;
2944
+ max_file_size_mb: number;
2945
+ max_files_per_message: number;
2946
+ allowed_types: string[];
2947
+ download_dir: string;
2948
+ cleanup_after_processing: boolean;
2949
+ }, {
2950
+ enabled?: boolean | undefined;
2951
+ max_file_size_mb?: number | undefined;
2952
+ max_files_per_message?: number | undefined;
2953
+ allowed_types?: string[] | undefined;
2954
+ download_dir?: string | undefined;
2955
+ cleanup_after_processing?: boolean | undefined;
2956
+ }>>;
2957
+ /** Slash command registration mode */
2958
+ command_registration: z.ZodOptional<z.ZodEffects<z.ZodObject<{
2959
+ /** Command registration scope (default: global) */
2960
+ scope: z.ZodDefault<z.ZodOptional<z.ZodEnum<["global", "guild"]>>>;
2961
+ /** Target guild ID when using scope: guild */
2962
+ guild_id: z.ZodOptional<z.ZodString>;
2963
+ }, "strip", z.ZodTypeAny, {
2964
+ scope: "global" | "guild";
2965
+ guild_id?: string | undefined;
2966
+ }, {
2967
+ scope?: "global" | "guild" | undefined;
2968
+ guild_id?: string | undefined;
2969
+ }>, {
2970
+ scope: "global" | "guild";
2971
+ guild_id?: string | undefined;
2972
+ }, {
2973
+ scope?: "global" | "guild" | undefined;
2974
+ guild_id?: string | undefined;
2975
+ }>>;
2976
+ /** Explicit skill list for slash command discovery (recommended in containerized deployments) */
2977
+ skills: z.ZodOptional<z.ZodArray<z.ZodObject<{
2978
+ /** Skill name as shown in autocomplete and passed to /skill */
2979
+ name: z.ZodString;
2980
+ /** Optional user-facing description */
2981
+ description: z.ZodOptional<z.ZodString>;
2982
+ }, "strip", z.ZodTypeAny, {
2983
+ name: string;
2984
+ description?: string | undefined;
2985
+ }, {
2986
+ name: string;
2987
+ description?: string | undefined;
2988
+ }>, "many">>;
2555
2989
  }, "strip", z.ZodTypeAny, {
2556
2990
  bot_token_env: string;
2557
2991
  session_expiry_hours: number;
@@ -2563,6 +2997,9 @@ export declare const AgentChatSchema: z.ZodObject<{
2563
2997
  errors: boolean;
2564
2998
  result_summary: boolean;
2565
2999
  typing_indicator: boolean;
3000
+ acknowledge_emoji: string;
3001
+ assistant_messages: "answers" | "all";
3002
+ progress_indicator: boolean;
2566
3003
  };
2567
3004
  guilds: {
2568
3005
  id: string;
@@ -2572,6 +3009,7 @@ export declare const AgentChatSchema: z.ZodObject<{
2572
3009
  context_messages: number;
2573
3010
  name?: string | undefined;
2574
3011
  }[] | undefined;
3012
+ default_channel_mode?: "mention" | "auto" | undefined;
2575
3013
  dm?: {
2576
3014
  enabled: boolean;
2577
3015
  mode: "mention" | "auto";
@@ -2589,6 +3027,29 @@ export declare const AgentChatSchema: z.ZodObject<{
2589
3027
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
2590
3028
  activity_message?: string | undefined;
2591
3029
  } | undefined;
3030
+ voice?: {
3031
+ enabled: boolean;
3032
+ model: string;
3033
+ provider: "openai";
3034
+ api_key_env: string;
3035
+ language?: string | undefined;
3036
+ } | undefined;
3037
+ attachments?: {
3038
+ enabled: boolean;
3039
+ max_file_size_mb: number;
3040
+ max_files_per_message: number;
3041
+ allowed_types: string[];
3042
+ download_dir: string;
3043
+ cleanup_after_processing: boolean;
3044
+ } | undefined;
3045
+ command_registration?: {
3046
+ scope: "global" | "guild";
3047
+ guild_id?: string | undefined;
3048
+ } | undefined;
3049
+ skills?: {
3050
+ name: string;
3051
+ description?: string | undefined;
3052
+ }[] | undefined;
2592
3053
  }, {
2593
3054
  bot_token_env: string;
2594
3055
  guilds: {
@@ -2599,6 +3060,7 @@ export declare const AgentChatSchema: z.ZodObject<{
2599
3060
  mode?: "mention" | "auto" | undefined;
2600
3061
  context_messages?: number | undefined;
2601
3062
  }[] | undefined;
3063
+ default_channel_mode?: "mention" | "auto" | undefined;
2602
3064
  dm?: {
2603
3065
  enabled?: boolean | undefined;
2604
3066
  mode?: "mention" | "auto" | undefined;
@@ -2621,11 +3083,37 @@ export declare const AgentChatSchema: z.ZodObject<{
2621
3083
  errors?: boolean | undefined;
2622
3084
  result_summary?: boolean | undefined;
2623
3085
  typing_indicator?: boolean | undefined;
3086
+ acknowledge_emoji?: string | undefined;
3087
+ assistant_messages?: "answers" | "all" | undefined;
3088
+ progress_indicator?: boolean | undefined;
2624
3089
  } | undefined;
2625
3090
  presence?: {
2626
3091
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
2627
3092
  activity_message?: string | undefined;
2628
3093
  } | undefined;
3094
+ voice?: {
3095
+ enabled?: boolean | undefined;
3096
+ model?: string | undefined;
3097
+ provider?: "openai" | undefined;
3098
+ api_key_env?: string | undefined;
3099
+ language?: string | undefined;
3100
+ } | undefined;
3101
+ attachments?: {
3102
+ enabled?: boolean | undefined;
3103
+ max_file_size_mb?: number | undefined;
3104
+ max_files_per_message?: number | undefined;
3105
+ allowed_types?: string[] | undefined;
3106
+ download_dir?: string | undefined;
3107
+ cleanup_after_processing?: boolean | undefined;
3108
+ } | undefined;
3109
+ command_registration?: {
3110
+ scope?: "global" | "guild" | undefined;
3111
+ guild_id?: string | undefined;
3112
+ } | undefined;
3113
+ skills?: {
3114
+ name: string;
3115
+ description?: string | undefined;
3116
+ }[] | undefined;
2629
3117
  }>>;
2630
3118
  slack: z.ZodOptional<z.ZodObject<{
2631
3119
  /** Environment variable name containing the bot token (xoxb-...) */
@@ -2754,6 +3242,9 @@ export declare const AgentChatSchema: z.ZodObject<{
2754
3242
  errors: boolean;
2755
3243
  result_summary: boolean;
2756
3244
  typing_indicator: boolean;
3245
+ acknowledge_emoji: string;
3246
+ assistant_messages: "answers" | "all";
3247
+ progress_indicator: boolean;
2757
3248
  };
2758
3249
  guilds: {
2759
3250
  id: string;
@@ -2763,6 +3254,7 @@ export declare const AgentChatSchema: z.ZodObject<{
2763
3254
  context_messages: number;
2764
3255
  name?: string | undefined;
2765
3256
  }[] | undefined;
3257
+ default_channel_mode?: "mention" | "auto" | undefined;
2766
3258
  dm?: {
2767
3259
  enabled: boolean;
2768
3260
  mode: "mention" | "auto";
@@ -2780,6 +3272,29 @@ export declare const AgentChatSchema: z.ZodObject<{
2780
3272
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
2781
3273
  activity_message?: string | undefined;
2782
3274
  } | undefined;
3275
+ voice?: {
3276
+ enabled: boolean;
3277
+ model: string;
3278
+ provider: "openai";
3279
+ api_key_env: string;
3280
+ language?: string | undefined;
3281
+ } | undefined;
3282
+ attachments?: {
3283
+ enabled: boolean;
3284
+ max_file_size_mb: number;
3285
+ max_files_per_message: number;
3286
+ allowed_types: string[];
3287
+ download_dir: string;
3288
+ cleanup_after_processing: boolean;
3289
+ } | undefined;
3290
+ command_registration?: {
3291
+ scope: "global" | "guild";
3292
+ guild_id?: string | undefined;
3293
+ } | undefined;
3294
+ skills?: {
3295
+ name: string;
3296
+ description?: string | undefined;
3297
+ }[] | undefined;
2783
3298
  } | undefined;
2784
3299
  slack?: {
2785
3300
  channels: {
@@ -2816,6 +3331,7 @@ export declare const AgentChatSchema: z.ZodObject<{
2816
3331
  mode?: "mention" | "auto" | undefined;
2817
3332
  context_messages?: number | undefined;
2818
3333
  }[] | undefined;
3334
+ default_channel_mode?: "mention" | "auto" | undefined;
2819
3335
  dm?: {
2820
3336
  enabled?: boolean | undefined;
2821
3337
  mode?: "mention" | "auto" | undefined;
@@ -2838,11 +3354,37 @@ export declare const AgentChatSchema: z.ZodObject<{
2838
3354
  errors?: boolean | undefined;
2839
3355
  result_summary?: boolean | undefined;
2840
3356
  typing_indicator?: boolean | undefined;
3357
+ acknowledge_emoji?: string | undefined;
3358
+ assistant_messages?: "answers" | "all" | undefined;
3359
+ progress_indicator?: boolean | undefined;
2841
3360
  } | undefined;
2842
3361
  presence?: {
2843
3362
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
2844
3363
  activity_message?: string | undefined;
2845
3364
  } | undefined;
3365
+ voice?: {
3366
+ enabled?: boolean | undefined;
3367
+ model?: string | undefined;
3368
+ provider?: "openai" | undefined;
3369
+ api_key_env?: string | undefined;
3370
+ language?: string | undefined;
3371
+ } | undefined;
3372
+ attachments?: {
3373
+ enabled?: boolean | undefined;
3374
+ max_file_size_mb?: number | undefined;
3375
+ max_files_per_message?: number | undefined;
3376
+ allowed_types?: string[] | undefined;
3377
+ download_dir?: string | undefined;
3378
+ cleanup_after_processing?: boolean | undefined;
3379
+ } | undefined;
3380
+ command_registration?: {
3381
+ scope?: "global" | "guild" | undefined;
3382
+ guild_id?: string | undefined;
3383
+ } | undefined;
3384
+ skills?: {
3385
+ name: string;
3386
+ description?: string | undefined;
3387
+ }[] | undefined;
2846
3388
  } | undefined;
2847
3389
  slack?: {
2848
3390
  channels: {
@@ -3990,6 +4532,12 @@ export declare const AgentConfigSchema: z.ZodObject<{
3990
4532
  result_summary: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3991
4533
  /** Show typing indicator while the agent is processing (default: true) */
3992
4534
  typing_indicator: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
4535
+ /** Emoji to react with when a message is received (empty string to disable, default: "👀") */
4536
+ acknowledge_emoji: z.ZodDefault<z.ZodOptional<z.ZodString>>;
4537
+ /** Which assistant turns to send: "answers" (no tool_use blocks) or "all" (default: "answers") */
4538
+ assistant_messages: z.ZodDefault<z.ZodOptional<z.ZodEnum<["answers", "all"]>>>;
4539
+ /** Show a progress indicator embed with tool names while working (default: true) */
4540
+ progress_indicator: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3993
4541
  }, "strip", z.ZodTypeAny, {
3994
4542
  tool_results: boolean;
3995
4543
  tool_result_max_length: number;
@@ -3997,6 +4545,9 @@ export declare const AgentConfigSchema: z.ZodObject<{
3997
4545
  errors: boolean;
3998
4546
  result_summary: boolean;
3999
4547
  typing_indicator: boolean;
4548
+ acknowledge_emoji: string;
4549
+ assistant_messages: "answers" | "all";
4550
+ progress_indicator: boolean;
4000
4551
  }, {
4001
4552
  tool_results?: boolean | undefined;
4002
4553
  tool_result_max_length?: number | undefined;
@@ -4004,6 +4555,9 @@ export declare const AgentConfigSchema: z.ZodObject<{
4004
4555
  errors?: boolean | undefined;
4005
4556
  result_summary?: boolean | undefined;
4006
4557
  typing_indicator?: boolean | undefined;
4558
+ acknowledge_emoji?: string | undefined;
4559
+ assistant_messages?: "answers" | "all" | undefined;
4560
+ progress_indicator?: boolean | undefined;
4007
4561
  }>>>;
4008
4562
  /** Bot presence/activity configuration */
4009
4563
  presence: z.ZodOptional<z.ZodObject<{
@@ -4035,6 +4589,8 @@ export declare const AgentConfigSchema: z.ZodObject<{
4035
4589
  mode?: "mention" | "auto" | undefined;
4036
4590
  context_messages?: number | undefined;
4037
4591
  }>, "many">>;
4592
+ /** Default mode for channels not explicitly listed. When set, the bot responds in any channel. */
4593
+ default_channel_mode: z.ZodOptional<z.ZodEnum<["mention", "auto"]>>;
4038
4594
  dm: z.ZodOptional<z.ZodObject<{
4039
4595
  enabled: z.ZodDefault<z.ZodBoolean>;
4040
4596
  mode: z.ZodDefault<z.ZodEnum<["mention", "auto"]>>;
@@ -4059,6 +4615,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
4059
4615
  context_messages: number;
4060
4616
  name?: string | undefined;
4061
4617
  }[] | undefined;
4618
+ default_channel_mode?: "mention" | "auto" | undefined;
4062
4619
  dm?: {
4063
4620
  enabled: boolean;
4064
4621
  mode: "mention" | "auto";
@@ -4073,6 +4630,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
4073
4630
  mode?: "mention" | "auto" | undefined;
4074
4631
  context_messages?: number | undefined;
4075
4632
  }[] | undefined;
4633
+ default_channel_mode?: "mention" | "auto" | undefined;
4076
4634
  dm?: {
4077
4635
  enabled?: boolean | undefined;
4078
4636
  mode?: "mention" | "auto" | undefined;
@@ -4097,6 +4655,92 @@ export declare const AgentConfigSchema: z.ZodObject<{
4097
4655
  allowlist?: string[] | undefined;
4098
4656
  blocklist?: string[] | undefined;
4099
4657
  }>>;
4658
+ /** Voice message transcription configuration */
4659
+ voice: z.ZodOptional<z.ZodObject<{
4660
+ /** Enable voice message transcription (default: false) */
4661
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
4662
+ /** Transcription provider (default: "openai") */
4663
+ provider: z.ZodDefault<z.ZodOptional<z.ZodEnum<["openai"]>>>;
4664
+ /** Environment variable name containing the API key (default: "OPENAI_API_KEY") */
4665
+ api_key_env: z.ZodDefault<z.ZodOptional<z.ZodString>>;
4666
+ /** Model to use for transcription (default: "whisper-1") */
4667
+ model: z.ZodDefault<z.ZodOptional<z.ZodString>>;
4668
+ /** Language hint for better transcription accuracy (ISO 639-1, e.g., "en") */
4669
+ language: z.ZodOptional<z.ZodString>;
4670
+ }, "strip", z.ZodTypeAny, {
4671
+ enabled: boolean;
4672
+ model: string;
4673
+ provider: "openai";
4674
+ api_key_env: string;
4675
+ language?: string | undefined;
4676
+ }, {
4677
+ enabled?: boolean | undefined;
4678
+ model?: string | undefined;
4679
+ provider?: "openai" | undefined;
4680
+ api_key_env?: string | undefined;
4681
+ language?: string | undefined;
4682
+ }>>;
4683
+ /** File attachment handling configuration */
4684
+ attachments: z.ZodOptional<z.ZodObject<{
4685
+ /** Enable file attachment processing (default: false) */
4686
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
4687
+ /** Maximum file size in MB (default: 10) */
4688
+ max_file_size_mb: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4689
+ /** Maximum files per message (default: 5) */
4690
+ max_files_per_message: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4691
+ /** Allowed MIME type patterns — supports wildcards like "image/*" (default: ["image/*", "application/pdf", "text/*"]) */
4692
+ allowed_types: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
4693
+ /** Directory name for downloaded binary attachments, relative to agent working_directory (default: ".discord-attachments") */
4694
+ download_dir: z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodString>>, string, string | undefined>;
4695
+ /** Delete downloaded files after the agent finishes processing (default: true) */
4696
+ cleanup_after_processing: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
4697
+ }, "strip", z.ZodTypeAny, {
4698
+ enabled: boolean;
4699
+ max_file_size_mb: number;
4700
+ max_files_per_message: number;
4701
+ allowed_types: string[];
4702
+ download_dir: string;
4703
+ cleanup_after_processing: boolean;
4704
+ }, {
4705
+ enabled?: boolean | undefined;
4706
+ max_file_size_mb?: number | undefined;
4707
+ max_files_per_message?: number | undefined;
4708
+ allowed_types?: string[] | undefined;
4709
+ download_dir?: string | undefined;
4710
+ cleanup_after_processing?: boolean | undefined;
4711
+ }>>;
4712
+ /** Slash command registration mode */
4713
+ command_registration: z.ZodOptional<z.ZodEffects<z.ZodObject<{
4714
+ /** Command registration scope (default: global) */
4715
+ scope: z.ZodDefault<z.ZodOptional<z.ZodEnum<["global", "guild"]>>>;
4716
+ /** Target guild ID when using scope: guild */
4717
+ guild_id: z.ZodOptional<z.ZodString>;
4718
+ }, "strip", z.ZodTypeAny, {
4719
+ scope: "global" | "guild";
4720
+ guild_id?: string | undefined;
4721
+ }, {
4722
+ scope?: "global" | "guild" | undefined;
4723
+ guild_id?: string | undefined;
4724
+ }>, {
4725
+ scope: "global" | "guild";
4726
+ guild_id?: string | undefined;
4727
+ }, {
4728
+ scope?: "global" | "guild" | undefined;
4729
+ guild_id?: string | undefined;
4730
+ }>>;
4731
+ /** Explicit skill list for slash command discovery (recommended in containerized deployments) */
4732
+ skills: z.ZodOptional<z.ZodArray<z.ZodObject<{
4733
+ /** Skill name as shown in autocomplete and passed to /skill */
4734
+ name: z.ZodString;
4735
+ /** Optional user-facing description */
4736
+ description: z.ZodOptional<z.ZodString>;
4737
+ }, "strip", z.ZodTypeAny, {
4738
+ name: string;
4739
+ description?: string | undefined;
4740
+ }, {
4741
+ name: string;
4742
+ description?: string | undefined;
4743
+ }>, "many">>;
4100
4744
  }, "strip", z.ZodTypeAny, {
4101
4745
  bot_token_env: string;
4102
4746
  session_expiry_hours: number;
@@ -4108,6 +4752,9 @@ export declare const AgentConfigSchema: z.ZodObject<{
4108
4752
  errors: boolean;
4109
4753
  result_summary: boolean;
4110
4754
  typing_indicator: boolean;
4755
+ acknowledge_emoji: string;
4756
+ assistant_messages: "answers" | "all";
4757
+ progress_indicator: boolean;
4111
4758
  };
4112
4759
  guilds: {
4113
4760
  id: string;
@@ -4117,6 +4764,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
4117
4764
  context_messages: number;
4118
4765
  name?: string | undefined;
4119
4766
  }[] | undefined;
4767
+ default_channel_mode?: "mention" | "auto" | undefined;
4120
4768
  dm?: {
4121
4769
  enabled: boolean;
4122
4770
  mode: "mention" | "auto";
@@ -4134,6 +4782,29 @@ export declare const AgentConfigSchema: z.ZodObject<{
4134
4782
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
4135
4783
  activity_message?: string | undefined;
4136
4784
  } | undefined;
4785
+ voice?: {
4786
+ enabled: boolean;
4787
+ model: string;
4788
+ provider: "openai";
4789
+ api_key_env: string;
4790
+ language?: string | undefined;
4791
+ } | undefined;
4792
+ attachments?: {
4793
+ enabled: boolean;
4794
+ max_file_size_mb: number;
4795
+ max_files_per_message: number;
4796
+ allowed_types: string[];
4797
+ download_dir: string;
4798
+ cleanup_after_processing: boolean;
4799
+ } | undefined;
4800
+ command_registration?: {
4801
+ scope: "global" | "guild";
4802
+ guild_id?: string | undefined;
4803
+ } | undefined;
4804
+ skills?: {
4805
+ name: string;
4806
+ description?: string | undefined;
4807
+ }[] | undefined;
4137
4808
  }, {
4138
4809
  bot_token_env: string;
4139
4810
  guilds: {
@@ -4144,6 +4815,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
4144
4815
  mode?: "mention" | "auto" | undefined;
4145
4816
  context_messages?: number | undefined;
4146
4817
  }[] | undefined;
4818
+ default_channel_mode?: "mention" | "auto" | undefined;
4147
4819
  dm?: {
4148
4820
  enabled?: boolean | undefined;
4149
4821
  mode?: "mention" | "auto" | undefined;
@@ -4166,11 +4838,37 @@ export declare const AgentConfigSchema: z.ZodObject<{
4166
4838
  errors?: boolean | undefined;
4167
4839
  result_summary?: boolean | undefined;
4168
4840
  typing_indicator?: boolean | undefined;
4841
+ acknowledge_emoji?: string | undefined;
4842
+ assistant_messages?: "answers" | "all" | undefined;
4843
+ progress_indicator?: boolean | undefined;
4169
4844
  } | undefined;
4170
4845
  presence?: {
4171
4846
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
4172
4847
  activity_message?: string | undefined;
4173
4848
  } | undefined;
4849
+ voice?: {
4850
+ enabled?: boolean | undefined;
4851
+ model?: string | undefined;
4852
+ provider?: "openai" | undefined;
4853
+ api_key_env?: string | undefined;
4854
+ language?: string | undefined;
4855
+ } | undefined;
4856
+ attachments?: {
4857
+ enabled?: boolean | undefined;
4858
+ max_file_size_mb?: number | undefined;
4859
+ max_files_per_message?: number | undefined;
4860
+ allowed_types?: string[] | undefined;
4861
+ download_dir?: string | undefined;
4862
+ cleanup_after_processing?: boolean | undefined;
4863
+ } | undefined;
4864
+ command_registration?: {
4865
+ scope?: "global" | "guild" | undefined;
4866
+ guild_id?: string | undefined;
4867
+ } | undefined;
4868
+ skills?: {
4869
+ name: string;
4870
+ description?: string | undefined;
4871
+ }[] | undefined;
4174
4872
  }>>;
4175
4873
  slack: z.ZodOptional<z.ZodObject<{
4176
4874
  /** Environment variable name containing the bot token (xoxb-...) */
@@ -4299,6 +4997,9 @@ export declare const AgentConfigSchema: z.ZodObject<{
4299
4997
  errors: boolean;
4300
4998
  result_summary: boolean;
4301
4999
  typing_indicator: boolean;
5000
+ acknowledge_emoji: string;
5001
+ assistant_messages: "answers" | "all";
5002
+ progress_indicator: boolean;
4302
5003
  };
4303
5004
  guilds: {
4304
5005
  id: string;
@@ -4308,6 +5009,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
4308
5009
  context_messages: number;
4309
5010
  name?: string | undefined;
4310
5011
  }[] | undefined;
5012
+ default_channel_mode?: "mention" | "auto" | undefined;
4311
5013
  dm?: {
4312
5014
  enabled: boolean;
4313
5015
  mode: "mention" | "auto";
@@ -4325,6 +5027,29 @@ export declare const AgentConfigSchema: z.ZodObject<{
4325
5027
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
4326
5028
  activity_message?: string | undefined;
4327
5029
  } | undefined;
5030
+ voice?: {
5031
+ enabled: boolean;
5032
+ model: string;
5033
+ provider: "openai";
5034
+ api_key_env: string;
5035
+ language?: string | undefined;
5036
+ } | undefined;
5037
+ attachments?: {
5038
+ enabled: boolean;
5039
+ max_file_size_mb: number;
5040
+ max_files_per_message: number;
5041
+ allowed_types: string[];
5042
+ download_dir: string;
5043
+ cleanup_after_processing: boolean;
5044
+ } | undefined;
5045
+ command_registration?: {
5046
+ scope: "global" | "guild";
5047
+ guild_id?: string | undefined;
5048
+ } | undefined;
5049
+ skills?: {
5050
+ name: string;
5051
+ description?: string | undefined;
5052
+ }[] | undefined;
4328
5053
  } | undefined;
4329
5054
  slack?: {
4330
5055
  channels: {
@@ -4361,6 +5086,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
4361
5086
  mode?: "mention" | "auto" | undefined;
4362
5087
  context_messages?: number | undefined;
4363
5088
  }[] | undefined;
5089
+ default_channel_mode?: "mention" | "auto" | undefined;
4364
5090
  dm?: {
4365
5091
  enabled?: boolean | undefined;
4366
5092
  mode?: "mention" | "auto" | undefined;
@@ -4383,11 +5109,37 @@ export declare const AgentConfigSchema: z.ZodObject<{
4383
5109
  errors?: boolean | undefined;
4384
5110
  result_summary?: boolean | undefined;
4385
5111
  typing_indicator?: boolean | undefined;
5112
+ acknowledge_emoji?: string | undefined;
5113
+ assistant_messages?: "answers" | "all" | undefined;
5114
+ progress_indicator?: boolean | undefined;
4386
5115
  } | undefined;
4387
5116
  presence?: {
4388
5117
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
4389
5118
  activity_message?: string | undefined;
4390
5119
  } | undefined;
5120
+ voice?: {
5121
+ enabled?: boolean | undefined;
5122
+ model?: string | undefined;
5123
+ provider?: "openai" | undefined;
5124
+ api_key_env?: string | undefined;
5125
+ language?: string | undefined;
5126
+ } | undefined;
5127
+ attachments?: {
5128
+ enabled?: boolean | undefined;
5129
+ max_file_size_mb?: number | undefined;
5130
+ max_files_per_message?: number | undefined;
5131
+ allowed_types?: string[] | undefined;
5132
+ download_dir?: string | undefined;
5133
+ cleanup_after_processing?: boolean | undefined;
5134
+ } | undefined;
5135
+ command_registration?: {
5136
+ scope?: "global" | "guild" | undefined;
5137
+ guild_id?: string | undefined;
5138
+ } | undefined;
5139
+ skills?: {
5140
+ name: string;
5141
+ description?: string | undefined;
5142
+ }[] | undefined;
4391
5143
  } | undefined;
4392
5144
  slack?: {
4393
5145
  channels: {
@@ -4932,6 +5684,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
4932
5684
  model: z.ZodOptional<z.ZodString>;
4933
5685
  max_turns: z.ZodOptional<z.ZodNumber>;
4934
5686
  permission_mode: z.ZodOptional<z.ZodEnum<["default", "acceptEdits", "bypassPermissions", "plan", "delegate", "dontAsk"]>>;
5687
+ tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4935
5688
  allowed_tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4936
5689
  denied_tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4937
5690
  /** Path to metadata JSON file written by agent (default: metadata.json in workspace) */
@@ -5008,8 +5761,15 @@ export declare const AgentConfigSchema: z.ZodObject<{
5008
5761
  model?: string | undefined;
5009
5762
  } | undefined;
5010
5763
  permission_mode?: "default" | "acceptEdits" | "bypassPermissions" | "plan" | "delegate" | "dontAsk" | undefined;
5764
+ tools?: string[] | undefined;
5011
5765
  allowed_tools?: string[] | undefined;
5012
5766
  denied_tools?: string[] | undefined;
5767
+ mcp_servers?: Record<string, {
5768
+ url?: string | undefined;
5769
+ env?: Record<string, string> | undefined;
5770
+ command?: string | undefined;
5771
+ args?: string[] | undefined;
5772
+ }> | undefined;
5013
5773
  chat?: {
5014
5774
  discord?: {
5015
5775
  bot_token_env: string;
@@ -5022,6 +5782,9 @@ export declare const AgentConfigSchema: z.ZodObject<{
5022
5782
  errors: boolean;
5023
5783
  result_summary: boolean;
5024
5784
  typing_indicator: boolean;
5785
+ acknowledge_emoji: string;
5786
+ assistant_messages: "answers" | "all";
5787
+ progress_indicator: boolean;
5025
5788
  };
5026
5789
  guilds: {
5027
5790
  id: string;
@@ -5031,6 +5794,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
5031
5794
  context_messages: number;
5032
5795
  name?: string | undefined;
5033
5796
  }[] | undefined;
5797
+ default_channel_mode?: "mention" | "auto" | undefined;
5034
5798
  dm?: {
5035
5799
  enabled: boolean;
5036
5800
  mode: "mention" | "auto";
@@ -5048,6 +5812,29 @@ export declare const AgentConfigSchema: z.ZodObject<{
5048
5812
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
5049
5813
  activity_message?: string | undefined;
5050
5814
  } | undefined;
5815
+ voice?: {
5816
+ enabled: boolean;
5817
+ model: string;
5818
+ provider: "openai";
5819
+ api_key_env: string;
5820
+ language?: string | undefined;
5821
+ } | undefined;
5822
+ attachments?: {
5823
+ enabled: boolean;
5824
+ max_file_size_mb: number;
5825
+ max_files_per_message: number;
5826
+ allowed_types: string[];
5827
+ download_dir: string;
5828
+ cleanup_after_processing: boolean;
5829
+ } | undefined;
5830
+ command_registration?: {
5831
+ scope: "global" | "guild";
5832
+ guild_id?: string | undefined;
5833
+ } | undefined;
5834
+ skills?: {
5835
+ name: string;
5836
+ description?: string | undefined;
5837
+ }[] | undefined;
5051
5838
  } | undefined;
5052
5839
  slack?: {
5053
5840
  channels: {
@@ -5112,12 +5899,6 @@ export declare const AgentConfigSchema: z.ZodObject<{
5112
5899
  prompt?: string | undefined;
5113
5900
  outputToFile?: boolean | undefined;
5114
5901
  }> | undefined;
5115
- mcp_servers?: Record<string, {
5116
- url?: string | undefined;
5117
- env?: Record<string, string> | undefined;
5118
- command?: string | undefined;
5119
- args?: string[] | undefined;
5120
- }> | undefined;
5121
5902
  hooks?: {
5122
5903
  after_run?: ({
5123
5904
  type: "shell";
@@ -5247,8 +6028,15 @@ export declare const AgentConfigSchema: z.ZodObject<{
5247
6028
  model?: string | undefined;
5248
6029
  } | undefined;
5249
6030
  permission_mode?: "default" | "acceptEdits" | "bypassPermissions" | "plan" | "delegate" | "dontAsk" | undefined;
6031
+ tools?: string[] | undefined;
5250
6032
  allowed_tools?: string[] | undefined;
5251
6033
  denied_tools?: string[] | undefined;
6034
+ mcp_servers?: Record<string, {
6035
+ url?: string | undefined;
6036
+ env?: Record<string, string> | undefined;
6037
+ command?: string | undefined;
6038
+ args?: string[] | undefined;
6039
+ }> | undefined;
5252
6040
  chat?: {
5253
6041
  discord?: {
5254
6042
  bot_token_env: string;
@@ -5260,6 +6048,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
5260
6048
  mode?: "mention" | "auto" | undefined;
5261
6049
  context_messages?: number | undefined;
5262
6050
  }[] | undefined;
6051
+ default_channel_mode?: "mention" | "auto" | undefined;
5263
6052
  dm?: {
5264
6053
  enabled?: boolean | undefined;
5265
6054
  mode?: "mention" | "auto" | undefined;
@@ -5282,11 +6071,37 @@ export declare const AgentConfigSchema: z.ZodObject<{
5282
6071
  errors?: boolean | undefined;
5283
6072
  result_summary?: boolean | undefined;
5284
6073
  typing_indicator?: boolean | undefined;
6074
+ acknowledge_emoji?: string | undefined;
6075
+ assistant_messages?: "answers" | "all" | undefined;
6076
+ progress_indicator?: boolean | undefined;
5285
6077
  } | undefined;
5286
6078
  presence?: {
5287
6079
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
5288
6080
  activity_message?: string | undefined;
5289
6081
  } | undefined;
6082
+ voice?: {
6083
+ enabled?: boolean | undefined;
6084
+ model?: string | undefined;
6085
+ provider?: "openai" | undefined;
6086
+ api_key_env?: string | undefined;
6087
+ language?: string | undefined;
6088
+ } | undefined;
6089
+ attachments?: {
6090
+ enabled?: boolean | undefined;
6091
+ max_file_size_mb?: number | undefined;
6092
+ max_files_per_message?: number | undefined;
6093
+ allowed_types?: string[] | undefined;
6094
+ download_dir?: string | undefined;
6095
+ cleanup_after_processing?: boolean | undefined;
6096
+ } | undefined;
6097
+ command_registration?: {
6098
+ scope?: "global" | "guild" | undefined;
6099
+ guild_id?: string | undefined;
6100
+ } | undefined;
6101
+ skills?: {
6102
+ name: string;
6103
+ description?: string | undefined;
6104
+ }[] | undefined;
5290
6105
  } | undefined;
5291
6106
  slack?: {
5292
6107
  channels: {
@@ -5352,12 +6167,6 @@ export declare const AgentConfigSchema: z.ZodObject<{
5352
6167
  outputToFile?: boolean | undefined;
5353
6168
  resume_session?: boolean | undefined;
5354
6169
  }> | undefined;
5355
- mcp_servers?: Record<string, {
5356
- url?: string | undefined;
5357
- env?: Record<string, string> | undefined;
5358
- command?: string | undefined;
5359
- args?: string[] | undefined;
5360
- }> | undefined;
5361
6170
  hooks?: {
5362
6171
  after_run?: ({
5363
6172
  type: "shell";
@@ -5980,8 +6789,25 @@ export declare const FleetConfigSchema: z.ZodObject<{
5980
6789
  model: z.ZodOptional<z.ZodString>;
5981
6790
  max_turns: z.ZodOptional<z.ZodNumber>;
5982
6791
  permission_mode: z.ZodOptional<z.ZodEnum<["default", "acceptEdits", "bypassPermissions", "plan", "delegate", "dontAsk"]>>;
6792
+ tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
5983
6793
  allowed_tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
5984
6794
  denied_tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6795
+ mcp_servers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodLazy<z.ZodObject<{
6796
+ command: z.ZodOptional<z.ZodString>;
6797
+ args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6798
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
6799
+ url: z.ZodOptional<z.ZodString>;
6800
+ }, "strip", z.ZodTypeAny, {
6801
+ url?: string | undefined;
6802
+ env?: Record<string, string> | undefined;
6803
+ command?: string | undefined;
6804
+ args?: string[] | undefined;
6805
+ }, {
6806
+ url?: string | undefined;
6807
+ env?: Record<string, string> | undefined;
6808
+ command?: string | undefined;
6809
+ args?: string[] | undefined;
6810
+ }>>>>;
5985
6811
  }, "strip", z.ZodTypeAny, {
5986
6812
  max_turns?: number | undefined;
5987
6813
  model?: string | undefined;
@@ -6042,8 +6868,15 @@ export declare const FleetConfigSchema: z.ZodObject<{
6042
6868
  model?: string | undefined;
6043
6869
  } | undefined;
6044
6870
  permission_mode?: "default" | "acceptEdits" | "bypassPermissions" | "plan" | "delegate" | "dontAsk" | undefined;
6871
+ tools?: string[] | undefined;
6045
6872
  allowed_tools?: string[] | undefined;
6046
6873
  denied_tools?: string[] | undefined;
6874
+ mcp_servers?: Record<string, {
6875
+ url?: string | undefined;
6876
+ env?: Record<string, string> | undefined;
6877
+ command?: string | undefined;
6878
+ args?: string[] | undefined;
6879
+ }> | undefined;
6047
6880
  }, {
6048
6881
  max_turns?: number | undefined;
6049
6882
  model?: string | undefined;
@@ -6104,8 +6937,15 @@ export declare const FleetConfigSchema: z.ZodObject<{
6104
6937
  model?: string | undefined;
6105
6938
  } | undefined;
6106
6939
  permission_mode?: "default" | "acceptEdits" | "bypassPermissions" | "plan" | "delegate" | "dontAsk" | undefined;
6940
+ tools?: string[] | undefined;
6107
6941
  allowed_tools?: string[] | undefined;
6108
6942
  denied_tools?: string[] | undefined;
6943
+ mcp_servers?: Record<string, {
6944
+ url?: string | undefined;
6945
+ env?: Record<string, string> | undefined;
6946
+ command?: string | undefined;
6947
+ args?: string[] | undefined;
6948
+ }> | undefined;
6109
6949
  }>>;
6110
6950
  working_directory: z.ZodOptional<z.ZodObject<{
6111
6951
  root: z.ZodString;
@@ -6613,8 +7453,15 @@ export declare const FleetConfigSchema: z.ZodObject<{
6613
7453
  model?: string | undefined;
6614
7454
  } | undefined;
6615
7455
  permission_mode?: "default" | "acceptEdits" | "bypassPermissions" | "plan" | "delegate" | "dontAsk" | undefined;
7456
+ tools?: string[] | undefined;
6616
7457
  allowed_tools?: string[] | undefined;
6617
7458
  denied_tools?: string[] | undefined;
7459
+ mcp_servers?: Record<string, {
7460
+ url?: string | undefined;
7461
+ env?: Record<string, string> | undefined;
7462
+ command?: string | undefined;
7463
+ args?: string[] | undefined;
7464
+ }> | undefined;
6618
7465
  } | undefined;
6619
7466
  webhooks?: {
6620
7467
  enabled: boolean;
@@ -6729,8 +7576,15 @@ export declare const FleetConfigSchema: z.ZodObject<{
6729
7576
  model?: string | undefined;
6730
7577
  } | undefined;
6731
7578
  permission_mode?: "default" | "acceptEdits" | "bypassPermissions" | "plan" | "delegate" | "dontAsk" | undefined;
7579
+ tools?: string[] | undefined;
6732
7580
  allowed_tools?: string[] | undefined;
6733
7581
  denied_tools?: string[] | undefined;
7582
+ mcp_servers?: Record<string, {
7583
+ url?: string | undefined;
7584
+ env?: Record<string, string> | undefined;
7585
+ command?: string | undefined;
7586
+ args?: string[] | undefined;
7587
+ }> | undefined;
6734
7588
  } | undefined;
6735
7589
  fleets?: {
6736
7590
  path: string;
@@ -6791,6 +7645,8 @@ export type DiscordPresence = z.infer<typeof DiscordPresenceSchema>;
6791
7645
  export type DiscordChannel = z.infer<typeof DiscordChannelSchema>;
6792
7646
  export type DiscordGuild = z.infer<typeof DiscordGuildSchema>;
6793
7647
  export type DiscordOutput = z.infer<typeof DiscordOutputSchema>;
7648
+ export type DiscordVoice = z.infer<typeof DiscordVoiceSchema>;
7649
+ export type DiscordAttachments = z.infer<typeof DiscordAttachmentsSchema>;
6794
7650
  export type AgentChatDiscord = z.infer<typeof AgentChatDiscordSchema>;
6795
7651
  export type AgentChat = z.infer<typeof AgentChatSchema>;
6796
7652
  export type SlackChannel = z.infer<typeof SlackChannelSchema>;