@herdctl/core 5.9.0 → 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 (37) hide show
  1. package/dist/config/__tests__/schema.test.js +48 -0
  2. package/dist/config/__tests__/schema.test.js.map +1 -1
  3. package/dist/config/index.d.ts +1 -1
  4. package/dist/config/index.d.ts.map +1 -1
  5. package/dist/config/index.js +2 -2
  6. package/dist/config/index.js.map +1 -1
  7. package/dist/config/merge.d.ts +2 -1
  8. package/dist/config/merge.d.ts.map +1 -1
  9. package/dist/config/merge.js +5 -0
  10. package/dist/config/merge.js.map +1 -1
  11. package/dist/config/schema.d.ts +858 -13
  12. package/dist/config/schema.d.ts.map +1 -1
  13. package/dist/config/schema.js +116 -1
  14. package/dist/config/schema.js.map +1 -1
  15. package/dist/fleet-manager/job-control.d.ts.map +1 -1
  16. package/dist/fleet-manager/job-control.js +2 -0
  17. package/dist/fleet-manager/job-control.js.map +1 -1
  18. package/dist/fleet-manager/types.d.ts +14 -0
  19. package/dist/fleet-manager/types.d.ts.map +1 -1
  20. package/dist/runner/job-executor.d.ts.map +1 -1
  21. package/dist/runner/job-executor.js +1 -0
  22. package/dist/runner/job-executor.js.map +1 -1
  23. package/dist/runner/runtime/__tests__/cli-runtime.test.d.ts +2 -0
  24. package/dist/runner/runtime/__tests__/cli-runtime.test.d.ts.map +1 -0
  25. package/dist/runner/runtime/__tests__/cli-runtime.test.js +82 -0
  26. package/dist/runner/runtime/__tests__/cli-runtime.test.js.map +1 -0
  27. package/dist/runner/runtime/cli-runtime.d.ts.map +1 -1
  28. package/dist/runner/runtime/cli-runtime.js +171 -4
  29. package/dist/runner/runtime/cli-runtime.js.map +1 -1
  30. package/dist/runner/runtime/interface.d.ts +3 -1
  31. package/dist/runner/runtime/interface.d.ts.map +1 -1
  32. package/dist/runner/runtime/sdk-runtime.d.ts.map +1 -1
  33. package/dist/runner/runtime/sdk-runtime.js +20 -0
  34. package/dist/runner/runtime/sdk-runtime.js.map +1 -1
  35. package/dist/runner/types.d.ts +3 -1
  36. package/dist/runner/types.d.ts.map +1 -1
  37. package/package.json +1 -1
@@ -1380,6 +1380,22 @@ export declare const DefaultsSchema: z.ZodObject<{
1380
1380
  tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1381
1381
  allowed_tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1382
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
+ }>>>>;
1383
1399
  }, "strip", z.ZodTypeAny, {
1384
1400
  max_turns?: number | undefined;
1385
1401
  model?: string | undefined;
@@ -1443,6 +1459,12 @@ export declare const DefaultsSchema: z.ZodObject<{
1443
1459
  tools?: string[] | undefined;
1444
1460
  allowed_tools?: string[] | undefined;
1445
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;
1446
1468
  }, {
1447
1469
  max_turns?: number | undefined;
1448
1470
  model?: string | undefined;
@@ -1506,6 +1528,12 @@ export declare const DefaultsSchema: z.ZodObject<{
1506
1528
  tools?: string[] | undefined;
1507
1529
  allowed_tools?: string[] | undefined;
1508
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;
1509
1537
  }>;
1510
1538
  export declare const WorkingDirectorySchema: z.ZodObject<{
1511
1539
  root: z.ZodString;
@@ -1902,6 +1930,8 @@ export declare const DiscordGuildSchema: z.ZodObject<{
1902
1930
  mode?: "mention" | "auto" | undefined;
1903
1931
  context_messages?: number | undefined;
1904
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"]>>;
1905
1935
  dm: z.ZodOptional<z.ZodObject<{
1906
1936
  enabled: z.ZodDefault<z.ZodBoolean>;
1907
1937
  mode: z.ZodDefault<z.ZodEnum<["mention", "auto"]>>;
@@ -1926,6 +1956,7 @@ export declare const DiscordGuildSchema: z.ZodObject<{
1926
1956
  context_messages: number;
1927
1957
  name?: string | undefined;
1928
1958
  }[] | undefined;
1959
+ default_channel_mode?: "mention" | "auto" | undefined;
1929
1960
  dm?: {
1930
1961
  enabled: boolean;
1931
1962
  mode: "mention" | "auto";
@@ -1940,6 +1971,7 @@ export declare const DiscordGuildSchema: z.ZodObject<{
1940
1971
  mode?: "mention" | "auto" | undefined;
1941
1972
  context_messages?: number | undefined;
1942
1973
  }[] | undefined;
1974
+ default_channel_mode?: "mention" | "auto" | undefined;
1943
1975
  dm?: {
1944
1976
  enabled?: boolean | undefined;
1945
1977
  mode?: "mention" | "auto" | undefined;
@@ -1992,9 +2024,10 @@ export declare const ChatOutputSchema: z.ZodObject<{
1992
2024
  * tool_results: true
1993
2025
  * tool_result_max_length: 900
1994
2026
  * system_status: true
1995
- * result_summary: false
2027
+ * result_summary: true
1996
2028
  * errors: true
1997
2029
  * typing_indicator: true
2030
+ * assistant_messages: answers
1998
2031
  * ```
1999
2032
  */
2000
2033
  export declare const DiscordOutputSchema: z.ZodObject<{
@@ -2011,6 +2044,12 @@ export declare const DiscordOutputSchema: z.ZodObject<{
2011
2044
  result_summary: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2012
2045
  /** Show typing indicator while the agent is processing (default: true) */
2013
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>>;
2014
2053
  }, "strip", z.ZodTypeAny, {
2015
2054
  tool_results: boolean;
2016
2055
  tool_result_max_length: number;
@@ -2018,6 +2057,9 @@ export declare const DiscordOutputSchema: z.ZodObject<{
2018
2057
  errors: boolean;
2019
2058
  result_summary: boolean;
2020
2059
  typing_indicator: boolean;
2060
+ acknowledge_emoji: string;
2061
+ assistant_messages: "answers" | "all";
2062
+ progress_indicator: boolean;
2021
2063
  }, {
2022
2064
  tool_results?: boolean | undefined;
2023
2065
  tool_result_max_length?: number | undefined;
@@ -2025,6 +2067,137 @@ export declare const DiscordOutputSchema: z.ZodObject<{
2025
2067
  errors?: boolean | undefined;
2026
2068
  result_summary?: boolean | undefined;
2027
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;
2028
2201
  }>;
2029
2202
  /**
2030
2203
  * Per-agent Discord bot configuration schema
@@ -2078,6 +2251,12 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2078
2251
  result_summary: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2079
2252
  /** Show typing indicator while the agent is processing (default: true) */
2080
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>>;
2081
2260
  }, "strip", z.ZodTypeAny, {
2082
2261
  tool_results: boolean;
2083
2262
  tool_result_max_length: number;
@@ -2085,6 +2264,9 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2085
2264
  errors: boolean;
2086
2265
  result_summary: boolean;
2087
2266
  typing_indicator: boolean;
2267
+ acknowledge_emoji: string;
2268
+ assistant_messages: "answers" | "all";
2269
+ progress_indicator: boolean;
2088
2270
  }, {
2089
2271
  tool_results?: boolean | undefined;
2090
2272
  tool_result_max_length?: number | undefined;
@@ -2092,6 +2274,9 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2092
2274
  errors?: boolean | undefined;
2093
2275
  result_summary?: boolean | undefined;
2094
2276
  typing_indicator?: boolean | undefined;
2277
+ acknowledge_emoji?: string | undefined;
2278
+ assistant_messages?: "answers" | "all" | undefined;
2279
+ progress_indicator?: boolean | undefined;
2095
2280
  }>>>;
2096
2281
  /** Bot presence/activity configuration */
2097
2282
  presence: z.ZodOptional<z.ZodObject<{
@@ -2123,6 +2308,8 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2123
2308
  mode?: "mention" | "auto" | undefined;
2124
2309
  context_messages?: number | undefined;
2125
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"]>>;
2126
2313
  dm: z.ZodOptional<z.ZodObject<{
2127
2314
  enabled: z.ZodDefault<z.ZodBoolean>;
2128
2315
  mode: z.ZodDefault<z.ZodEnum<["mention", "auto"]>>;
@@ -2147,6 +2334,7 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2147
2334
  context_messages: number;
2148
2335
  name?: string | undefined;
2149
2336
  }[] | undefined;
2337
+ default_channel_mode?: "mention" | "auto" | undefined;
2150
2338
  dm?: {
2151
2339
  enabled: boolean;
2152
2340
  mode: "mention" | "auto";
@@ -2161,6 +2349,7 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2161
2349
  mode?: "mention" | "auto" | undefined;
2162
2350
  context_messages?: number | undefined;
2163
2351
  }[] | undefined;
2352
+ default_channel_mode?: "mention" | "auto" | undefined;
2164
2353
  dm?: {
2165
2354
  enabled?: boolean | undefined;
2166
2355
  mode?: "mention" | "auto" | undefined;
@@ -2185,6 +2374,92 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2185
2374
  allowlist?: string[] | undefined;
2186
2375
  blocklist?: string[] | undefined;
2187
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">>;
2188
2463
  }, "strip", z.ZodTypeAny, {
2189
2464
  bot_token_env: string;
2190
2465
  session_expiry_hours: number;
@@ -2196,6 +2471,9 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2196
2471
  errors: boolean;
2197
2472
  result_summary: boolean;
2198
2473
  typing_indicator: boolean;
2474
+ acknowledge_emoji: string;
2475
+ assistant_messages: "answers" | "all";
2476
+ progress_indicator: boolean;
2199
2477
  };
2200
2478
  guilds: {
2201
2479
  id: string;
@@ -2205,6 +2483,7 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2205
2483
  context_messages: number;
2206
2484
  name?: string | undefined;
2207
2485
  }[] | undefined;
2486
+ default_channel_mode?: "mention" | "auto" | undefined;
2208
2487
  dm?: {
2209
2488
  enabled: boolean;
2210
2489
  mode: "mention" | "auto";
@@ -2222,6 +2501,29 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2222
2501
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
2223
2502
  activity_message?: string | undefined;
2224
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;
2225
2527
  }, {
2226
2528
  bot_token_env: string;
2227
2529
  guilds: {
@@ -2232,6 +2534,7 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2232
2534
  mode?: "mention" | "auto" | undefined;
2233
2535
  context_messages?: number | undefined;
2234
2536
  }[] | undefined;
2537
+ default_channel_mode?: "mention" | "auto" | undefined;
2235
2538
  dm?: {
2236
2539
  enabled?: boolean | undefined;
2237
2540
  mode?: "mention" | "auto" | undefined;
@@ -2254,11 +2557,37 @@ export declare const AgentChatDiscordSchema: z.ZodObject<{
2254
2557
  errors?: boolean | undefined;
2255
2558
  result_summary?: boolean | undefined;
2256
2559
  typing_indicator?: boolean | undefined;
2560
+ acknowledge_emoji?: string | undefined;
2561
+ assistant_messages?: "answers" | "all" | undefined;
2562
+ progress_indicator?: boolean | undefined;
2257
2563
  } | undefined;
2258
2564
  presence?: {
2259
2565
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
2260
2566
  activity_message?: string | undefined;
2261
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;
2262
2591
  }>;
2263
2592
  /**
2264
2593
  * Slack channel configuration for an agent's bot
@@ -2448,6 +2777,12 @@ export declare const AgentChatSchema: z.ZodObject<{
2448
2777
  result_summary: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2449
2778
  /** Show typing indicator while the agent is processing (default: true) */
2450
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>>;
2451
2786
  }, "strip", z.ZodTypeAny, {
2452
2787
  tool_results: boolean;
2453
2788
  tool_result_max_length: number;
@@ -2455,6 +2790,9 @@ export declare const AgentChatSchema: z.ZodObject<{
2455
2790
  errors: boolean;
2456
2791
  result_summary: boolean;
2457
2792
  typing_indicator: boolean;
2793
+ acknowledge_emoji: string;
2794
+ assistant_messages: "answers" | "all";
2795
+ progress_indicator: boolean;
2458
2796
  }, {
2459
2797
  tool_results?: boolean | undefined;
2460
2798
  tool_result_max_length?: number | undefined;
@@ -2462,6 +2800,9 @@ export declare const AgentChatSchema: z.ZodObject<{
2462
2800
  errors?: boolean | undefined;
2463
2801
  result_summary?: boolean | undefined;
2464
2802
  typing_indicator?: boolean | undefined;
2803
+ acknowledge_emoji?: string | undefined;
2804
+ assistant_messages?: "answers" | "all" | undefined;
2805
+ progress_indicator?: boolean | undefined;
2465
2806
  }>>>;
2466
2807
  /** Bot presence/activity configuration */
2467
2808
  presence: z.ZodOptional<z.ZodObject<{
@@ -2493,6 +2834,8 @@ export declare const AgentChatSchema: z.ZodObject<{
2493
2834
  mode?: "mention" | "auto" | undefined;
2494
2835
  context_messages?: number | undefined;
2495
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"]>>;
2496
2839
  dm: z.ZodOptional<z.ZodObject<{
2497
2840
  enabled: z.ZodDefault<z.ZodBoolean>;
2498
2841
  mode: z.ZodDefault<z.ZodEnum<["mention", "auto"]>>;
@@ -2517,6 +2860,7 @@ export declare const AgentChatSchema: z.ZodObject<{
2517
2860
  context_messages: number;
2518
2861
  name?: string | undefined;
2519
2862
  }[] | undefined;
2863
+ default_channel_mode?: "mention" | "auto" | undefined;
2520
2864
  dm?: {
2521
2865
  enabled: boolean;
2522
2866
  mode: "mention" | "auto";
@@ -2531,6 +2875,7 @@ export declare const AgentChatSchema: z.ZodObject<{
2531
2875
  mode?: "mention" | "auto" | undefined;
2532
2876
  context_messages?: number | undefined;
2533
2877
  }[] | undefined;
2878
+ default_channel_mode?: "mention" | "auto" | undefined;
2534
2879
  dm?: {
2535
2880
  enabled?: boolean | undefined;
2536
2881
  mode?: "mention" | "auto" | undefined;
@@ -2555,6 +2900,92 @@ export declare const AgentChatSchema: z.ZodObject<{
2555
2900
  allowlist?: string[] | undefined;
2556
2901
  blocklist?: string[] | undefined;
2557
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">>;
2558
2989
  }, "strip", z.ZodTypeAny, {
2559
2990
  bot_token_env: string;
2560
2991
  session_expiry_hours: number;
@@ -2566,6 +2997,9 @@ export declare const AgentChatSchema: z.ZodObject<{
2566
2997
  errors: boolean;
2567
2998
  result_summary: boolean;
2568
2999
  typing_indicator: boolean;
3000
+ acknowledge_emoji: string;
3001
+ assistant_messages: "answers" | "all";
3002
+ progress_indicator: boolean;
2569
3003
  };
2570
3004
  guilds: {
2571
3005
  id: string;
@@ -2575,6 +3009,7 @@ export declare const AgentChatSchema: z.ZodObject<{
2575
3009
  context_messages: number;
2576
3010
  name?: string | undefined;
2577
3011
  }[] | undefined;
3012
+ default_channel_mode?: "mention" | "auto" | undefined;
2578
3013
  dm?: {
2579
3014
  enabled: boolean;
2580
3015
  mode: "mention" | "auto";
@@ -2592,6 +3027,29 @@ export declare const AgentChatSchema: z.ZodObject<{
2592
3027
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
2593
3028
  activity_message?: string | undefined;
2594
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;
2595
3053
  }, {
2596
3054
  bot_token_env: string;
2597
3055
  guilds: {
@@ -2602,6 +3060,7 @@ export declare const AgentChatSchema: z.ZodObject<{
2602
3060
  mode?: "mention" | "auto" | undefined;
2603
3061
  context_messages?: number | undefined;
2604
3062
  }[] | undefined;
3063
+ default_channel_mode?: "mention" | "auto" | undefined;
2605
3064
  dm?: {
2606
3065
  enabled?: boolean | undefined;
2607
3066
  mode?: "mention" | "auto" | undefined;
@@ -2624,11 +3083,37 @@ export declare const AgentChatSchema: z.ZodObject<{
2624
3083
  errors?: boolean | undefined;
2625
3084
  result_summary?: boolean | undefined;
2626
3085
  typing_indicator?: boolean | undefined;
3086
+ acknowledge_emoji?: string | undefined;
3087
+ assistant_messages?: "answers" | "all" | undefined;
3088
+ progress_indicator?: boolean | undefined;
2627
3089
  } | undefined;
2628
3090
  presence?: {
2629
3091
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
2630
3092
  activity_message?: string | undefined;
2631
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;
2632
3117
  }>>;
2633
3118
  slack: z.ZodOptional<z.ZodObject<{
2634
3119
  /** Environment variable name containing the bot token (xoxb-...) */
@@ -2757,6 +3242,9 @@ export declare const AgentChatSchema: z.ZodObject<{
2757
3242
  errors: boolean;
2758
3243
  result_summary: boolean;
2759
3244
  typing_indicator: boolean;
3245
+ acknowledge_emoji: string;
3246
+ assistant_messages: "answers" | "all";
3247
+ progress_indicator: boolean;
2760
3248
  };
2761
3249
  guilds: {
2762
3250
  id: string;
@@ -2766,6 +3254,7 @@ export declare const AgentChatSchema: z.ZodObject<{
2766
3254
  context_messages: number;
2767
3255
  name?: string | undefined;
2768
3256
  }[] | undefined;
3257
+ default_channel_mode?: "mention" | "auto" | undefined;
2769
3258
  dm?: {
2770
3259
  enabled: boolean;
2771
3260
  mode: "mention" | "auto";
@@ -2783,6 +3272,29 @@ export declare const AgentChatSchema: z.ZodObject<{
2783
3272
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
2784
3273
  activity_message?: string | undefined;
2785
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;
2786
3298
  } | undefined;
2787
3299
  slack?: {
2788
3300
  channels: {
@@ -2819,6 +3331,7 @@ export declare const AgentChatSchema: z.ZodObject<{
2819
3331
  mode?: "mention" | "auto" | undefined;
2820
3332
  context_messages?: number | undefined;
2821
3333
  }[] | undefined;
3334
+ default_channel_mode?: "mention" | "auto" | undefined;
2822
3335
  dm?: {
2823
3336
  enabled?: boolean | undefined;
2824
3337
  mode?: "mention" | "auto" | undefined;
@@ -2841,11 +3354,37 @@ export declare const AgentChatSchema: z.ZodObject<{
2841
3354
  errors?: boolean | undefined;
2842
3355
  result_summary?: boolean | undefined;
2843
3356
  typing_indicator?: boolean | undefined;
3357
+ acknowledge_emoji?: string | undefined;
3358
+ assistant_messages?: "answers" | "all" | undefined;
3359
+ progress_indicator?: boolean | undefined;
2844
3360
  } | undefined;
2845
3361
  presence?: {
2846
3362
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
2847
3363
  activity_message?: string | undefined;
2848
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;
2849
3388
  } | undefined;
2850
3389
  slack?: {
2851
3390
  channels: {
@@ -3993,6 +4532,12 @@ export declare const AgentConfigSchema: z.ZodObject<{
3993
4532
  result_summary: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3994
4533
  /** Show typing indicator while the agent is processing (default: true) */
3995
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>>;
3996
4541
  }, "strip", z.ZodTypeAny, {
3997
4542
  tool_results: boolean;
3998
4543
  tool_result_max_length: number;
@@ -4000,6 +4545,9 @@ export declare const AgentConfigSchema: z.ZodObject<{
4000
4545
  errors: boolean;
4001
4546
  result_summary: boolean;
4002
4547
  typing_indicator: boolean;
4548
+ acknowledge_emoji: string;
4549
+ assistant_messages: "answers" | "all";
4550
+ progress_indicator: boolean;
4003
4551
  }, {
4004
4552
  tool_results?: boolean | undefined;
4005
4553
  tool_result_max_length?: number | undefined;
@@ -4007,6 +4555,9 @@ export declare const AgentConfigSchema: z.ZodObject<{
4007
4555
  errors?: boolean | undefined;
4008
4556
  result_summary?: boolean | undefined;
4009
4557
  typing_indicator?: boolean | undefined;
4558
+ acknowledge_emoji?: string | undefined;
4559
+ assistant_messages?: "answers" | "all" | undefined;
4560
+ progress_indicator?: boolean | undefined;
4010
4561
  }>>>;
4011
4562
  /** Bot presence/activity configuration */
4012
4563
  presence: z.ZodOptional<z.ZodObject<{
@@ -4038,6 +4589,8 @@ export declare const AgentConfigSchema: z.ZodObject<{
4038
4589
  mode?: "mention" | "auto" | undefined;
4039
4590
  context_messages?: number | undefined;
4040
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"]>>;
4041
4594
  dm: z.ZodOptional<z.ZodObject<{
4042
4595
  enabled: z.ZodDefault<z.ZodBoolean>;
4043
4596
  mode: z.ZodDefault<z.ZodEnum<["mention", "auto"]>>;
@@ -4062,6 +4615,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
4062
4615
  context_messages: number;
4063
4616
  name?: string | undefined;
4064
4617
  }[] | undefined;
4618
+ default_channel_mode?: "mention" | "auto" | undefined;
4065
4619
  dm?: {
4066
4620
  enabled: boolean;
4067
4621
  mode: "mention" | "auto";
@@ -4076,6 +4630,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
4076
4630
  mode?: "mention" | "auto" | undefined;
4077
4631
  context_messages?: number | undefined;
4078
4632
  }[] | undefined;
4633
+ default_channel_mode?: "mention" | "auto" | undefined;
4079
4634
  dm?: {
4080
4635
  enabled?: boolean | undefined;
4081
4636
  mode?: "mention" | "auto" | undefined;
@@ -4100,6 +4655,92 @@ export declare const AgentConfigSchema: z.ZodObject<{
4100
4655
  allowlist?: string[] | undefined;
4101
4656
  blocklist?: string[] | undefined;
4102
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">>;
4103
4744
  }, "strip", z.ZodTypeAny, {
4104
4745
  bot_token_env: string;
4105
4746
  session_expiry_hours: number;
@@ -4111,6 +4752,9 @@ export declare const AgentConfigSchema: z.ZodObject<{
4111
4752
  errors: boolean;
4112
4753
  result_summary: boolean;
4113
4754
  typing_indicator: boolean;
4755
+ acknowledge_emoji: string;
4756
+ assistant_messages: "answers" | "all";
4757
+ progress_indicator: boolean;
4114
4758
  };
4115
4759
  guilds: {
4116
4760
  id: string;
@@ -4120,6 +4764,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
4120
4764
  context_messages: number;
4121
4765
  name?: string | undefined;
4122
4766
  }[] | undefined;
4767
+ default_channel_mode?: "mention" | "auto" | undefined;
4123
4768
  dm?: {
4124
4769
  enabled: boolean;
4125
4770
  mode: "mention" | "auto";
@@ -4137,6 +4782,29 @@ export declare const AgentConfigSchema: z.ZodObject<{
4137
4782
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
4138
4783
  activity_message?: string | undefined;
4139
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;
4140
4808
  }, {
4141
4809
  bot_token_env: string;
4142
4810
  guilds: {
@@ -4147,6 +4815,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
4147
4815
  mode?: "mention" | "auto" | undefined;
4148
4816
  context_messages?: number | undefined;
4149
4817
  }[] | undefined;
4818
+ default_channel_mode?: "mention" | "auto" | undefined;
4150
4819
  dm?: {
4151
4820
  enabled?: boolean | undefined;
4152
4821
  mode?: "mention" | "auto" | undefined;
@@ -4169,11 +4838,37 @@ export declare const AgentConfigSchema: z.ZodObject<{
4169
4838
  errors?: boolean | undefined;
4170
4839
  result_summary?: boolean | undefined;
4171
4840
  typing_indicator?: boolean | undefined;
4841
+ acknowledge_emoji?: string | undefined;
4842
+ assistant_messages?: "answers" | "all" | undefined;
4843
+ progress_indicator?: boolean | undefined;
4172
4844
  } | undefined;
4173
4845
  presence?: {
4174
4846
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
4175
4847
  activity_message?: string | undefined;
4176
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;
4177
4872
  }>>;
4178
4873
  slack: z.ZodOptional<z.ZodObject<{
4179
4874
  /** Environment variable name containing the bot token (xoxb-...) */
@@ -4302,6 +4997,9 @@ export declare const AgentConfigSchema: z.ZodObject<{
4302
4997
  errors: boolean;
4303
4998
  result_summary: boolean;
4304
4999
  typing_indicator: boolean;
5000
+ acknowledge_emoji: string;
5001
+ assistant_messages: "answers" | "all";
5002
+ progress_indicator: boolean;
4305
5003
  };
4306
5004
  guilds: {
4307
5005
  id: string;
@@ -4311,6 +5009,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
4311
5009
  context_messages: number;
4312
5010
  name?: string | undefined;
4313
5011
  }[] | undefined;
5012
+ default_channel_mode?: "mention" | "auto" | undefined;
4314
5013
  dm?: {
4315
5014
  enabled: boolean;
4316
5015
  mode: "mention" | "auto";
@@ -4328,6 +5027,29 @@ export declare const AgentConfigSchema: z.ZodObject<{
4328
5027
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
4329
5028
  activity_message?: string | undefined;
4330
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;
4331
5053
  } | undefined;
4332
5054
  slack?: {
4333
5055
  channels: {
@@ -4364,6 +5086,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
4364
5086
  mode?: "mention" | "auto" | undefined;
4365
5087
  context_messages?: number | undefined;
4366
5088
  }[] | undefined;
5089
+ default_channel_mode?: "mention" | "auto" | undefined;
4367
5090
  dm?: {
4368
5091
  enabled?: boolean | undefined;
4369
5092
  mode?: "mention" | "auto" | undefined;
@@ -4386,11 +5109,37 @@ export declare const AgentConfigSchema: z.ZodObject<{
4386
5109
  errors?: boolean | undefined;
4387
5110
  result_summary?: boolean | undefined;
4388
5111
  typing_indicator?: boolean | undefined;
5112
+ acknowledge_emoji?: string | undefined;
5113
+ assistant_messages?: "answers" | "all" | undefined;
5114
+ progress_indicator?: boolean | undefined;
4389
5115
  } | undefined;
4390
5116
  presence?: {
4391
5117
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
4392
5118
  activity_message?: string | undefined;
4393
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;
4394
5143
  } | undefined;
4395
5144
  slack?: {
4396
5145
  channels: {
@@ -5015,6 +5764,12 @@ export declare const AgentConfigSchema: z.ZodObject<{
5015
5764
  tools?: string[] | undefined;
5016
5765
  allowed_tools?: string[] | undefined;
5017
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;
5018
5773
  chat?: {
5019
5774
  discord?: {
5020
5775
  bot_token_env: string;
@@ -5027,6 +5782,9 @@ export declare const AgentConfigSchema: z.ZodObject<{
5027
5782
  errors: boolean;
5028
5783
  result_summary: boolean;
5029
5784
  typing_indicator: boolean;
5785
+ acknowledge_emoji: string;
5786
+ assistant_messages: "answers" | "all";
5787
+ progress_indicator: boolean;
5030
5788
  };
5031
5789
  guilds: {
5032
5790
  id: string;
@@ -5036,6 +5794,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
5036
5794
  context_messages: number;
5037
5795
  name?: string | undefined;
5038
5796
  }[] | undefined;
5797
+ default_channel_mode?: "mention" | "auto" | undefined;
5039
5798
  dm?: {
5040
5799
  enabled: boolean;
5041
5800
  mode: "mention" | "auto";
@@ -5053,6 +5812,29 @@ export declare const AgentConfigSchema: z.ZodObject<{
5053
5812
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
5054
5813
  activity_message?: string | undefined;
5055
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;
5056
5838
  } | undefined;
5057
5839
  slack?: {
5058
5840
  channels: {
@@ -5117,12 +5899,6 @@ export declare const AgentConfigSchema: z.ZodObject<{
5117
5899
  prompt?: string | undefined;
5118
5900
  outputToFile?: boolean | undefined;
5119
5901
  }> | undefined;
5120
- mcp_servers?: Record<string, {
5121
- url?: string | undefined;
5122
- env?: Record<string, string> | undefined;
5123
- command?: string | undefined;
5124
- args?: string[] | undefined;
5125
- }> | undefined;
5126
5902
  hooks?: {
5127
5903
  after_run?: ({
5128
5904
  type: "shell";
@@ -5255,6 +6031,12 @@ export declare const AgentConfigSchema: z.ZodObject<{
5255
6031
  tools?: string[] | undefined;
5256
6032
  allowed_tools?: string[] | undefined;
5257
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;
5258
6040
  chat?: {
5259
6041
  discord?: {
5260
6042
  bot_token_env: string;
@@ -5266,6 +6048,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
5266
6048
  mode?: "mention" | "auto" | undefined;
5267
6049
  context_messages?: number | undefined;
5268
6050
  }[] | undefined;
6051
+ default_channel_mode?: "mention" | "auto" | undefined;
5269
6052
  dm?: {
5270
6053
  enabled?: boolean | undefined;
5271
6054
  mode?: "mention" | "auto" | undefined;
@@ -5288,11 +6071,37 @@ export declare const AgentConfigSchema: z.ZodObject<{
5288
6071
  errors?: boolean | undefined;
5289
6072
  result_summary?: boolean | undefined;
5290
6073
  typing_indicator?: boolean | undefined;
6074
+ acknowledge_emoji?: string | undefined;
6075
+ assistant_messages?: "answers" | "all" | undefined;
6076
+ progress_indicator?: boolean | undefined;
5291
6077
  } | undefined;
5292
6078
  presence?: {
5293
6079
  activity_type?: "playing" | "watching" | "listening" | "competing" | undefined;
5294
6080
  activity_message?: string | undefined;
5295
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;
5296
6105
  } | undefined;
5297
6106
  slack?: {
5298
6107
  channels: {
@@ -5358,12 +6167,6 @@ export declare const AgentConfigSchema: z.ZodObject<{
5358
6167
  outputToFile?: boolean | undefined;
5359
6168
  resume_session?: boolean | undefined;
5360
6169
  }> | undefined;
5361
- mcp_servers?: Record<string, {
5362
- url?: string | undefined;
5363
- env?: Record<string, string> | undefined;
5364
- command?: string | undefined;
5365
- args?: string[] | undefined;
5366
- }> | undefined;
5367
6170
  hooks?: {
5368
6171
  after_run?: ({
5369
6172
  type: "shell";
@@ -5989,6 +6792,22 @@ export declare const FleetConfigSchema: z.ZodObject<{
5989
6792
  tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
5990
6793
  allowed_tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
5991
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
+ }>>>>;
5992
6811
  }, "strip", z.ZodTypeAny, {
5993
6812
  max_turns?: number | undefined;
5994
6813
  model?: string | undefined;
@@ -6052,6 +6871,12 @@ export declare const FleetConfigSchema: z.ZodObject<{
6052
6871
  tools?: string[] | undefined;
6053
6872
  allowed_tools?: string[] | undefined;
6054
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;
6055
6880
  }, {
6056
6881
  max_turns?: number | undefined;
6057
6882
  model?: string | undefined;
@@ -6115,6 +6940,12 @@ export declare const FleetConfigSchema: z.ZodObject<{
6115
6940
  tools?: string[] | undefined;
6116
6941
  allowed_tools?: string[] | undefined;
6117
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;
6118
6949
  }>>;
6119
6950
  working_directory: z.ZodOptional<z.ZodObject<{
6120
6951
  root: z.ZodString;
@@ -6625,6 +7456,12 @@ export declare const FleetConfigSchema: z.ZodObject<{
6625
7456
  tools?: string[] | undefined;
6626
7457
  allowed_tools?: string[] | undefined;
6627
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;
6628
7465
  } | undefined;
6629
7466
  webhooks?: {
6630
7467
  enabled: boolean;
@@ -6742,6 +7579,12 @@ export declare const FleetConfigSchema: z.ZodObject<{
6742
7579
  tools?: string[] | undefined;
6743
7580
  allowed_tools?: string[] | undefined;
6744
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;
6745
7588
  } | undefined;
6746
7589
  fleets?: {
6747
7590
  path: string;
@@ -6802,6 +7645,8 @@ export type DiscordPresence = z.infer<typeof DiscordPresenceSchema>;
6802
7645
  export type DiscordChannel = z.infer<typeof DiscordChannelSchema>;
6803
7646
  export type DiscordGuild = z.infer<typeof DiscordGuildSchema>;
6804
7647
  export type DiscordOutput = z.infer<typeof DiscordOutputSchema>;
7648
+ export type DiscordVoice = z.infer<typeof DiscordVoiceSchema>;
7649
+ export type DiscordAttachments = z.infer<typeof DiscordAttachmentsSchema>;
6805
7650
  export type AgentChatDiscord = z.infer<typeof AgentChatDiscordSchema>;
6806
7651
  export type AgentChat = z.infer<typeof AgentChatSchema>;
6807
7652
  export type SlackChannel = z.infer<typeof SlackChannelSchema>;