@qwen-code/qwen-code 0.16.2 → 0.17.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 (73) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +5 -1
  2. package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
  3. package/bundled/qc-helper/docs/features/channels/feishu.md +170 -0
  4. package/chunks/{agent-RY5EB3XR.js → agent-KVXFGIOU.js} +17 -12
  5. package/chunks/{anthropicContentGenerator-LYI3OHBB.js → anthropicContentGenerator-L4HWAOIV.js} +5 -5
  6. package/chunks/{askUserQuestion-R3MKD2JT.js → askUserQuestion-DC6OWQIL.js} +5 -3
  7. package/chunks/chunk-24YKA2DA.js +233 -0
  8. package/chunks/{chunk-UFC57OYT.js → chunk-33RDTIU6.js} +5 -3
  9. package/chunks/{chunk-C6WMLUNB.js → chunk-3BJBCG2K.js} +1 -1
  10. package/chunks/chunk-3HX5LZ6R.js +1798 -0
  11. package/chunks/{chunk-GQXXO5HJ.js → chunk-4O2TWJK4.js} +25 -5
  12. package/chunks/{chunk-RDYWTWEM.js → chunk-5IFG2VC4.js} +299 -232
  13. package/chunks/chunk-6RQTH7UQ.js +115 -0
  14. package/chunks/{chunk-7HM6OB7M.js → chunk-7EHPK6TK.js} +1336 -5164
  15. package/chunks/{chunk-PJLEMR7N.js → chunk-7NNBQRV7.js} +6 -6
  16. package/chunks/{chunk-K5PGHDBN.js → chunk-AKBFRR6J.js} +112 -132
  17. package/chunks/{chunk-C27V5A2J.js → chunk-EMVEDSVZ.js} +1 -1
  18. package/chunks/{chunk-TXQI3VZ7.js → chunk-GJHMAWS7.js} +1 -1
  19. package/chunks/{chunk-K72FHBFO.js → chunk-HAQCNXSG.js} +1 -0
  20. package/chunks/{chunk-T4VD6OJ4.js → chunk-HCSJIOLR.js} +1 -1
  21. package/chunks/chunk-J37FGIOA.js +1623 -0
  22. package/chunks/chunk-J5VCSWPA.js +1467 -0
  23. package/chunks/{chunk-UE5LPQF7.js → chunk-JI7FDD65.js} +7 -7
  24. package/chunks/{chunk-4YNZFYJY.js → chunk-MEN6IEKX.js} +2533 -3943
  25. package/chunks/{chunk-USE2VQ5P.js → chunk-NP3ICQCN.js} +1 -1
  26. package/chunks/{chunk-66CJCYYZ.js → chunk-QEXSIXLX.js} +1 -1
  27. package/chunks/{chunk-YMDXEEOW.js → chunk-R2B65CAN.js} +1 -82
  28. package/chunks/chunk-SZOEIL6S.js +35 -0
  29. package/chunks/chunk-TI4GXJKO.js +4277 -0
  30. package/chunks/{chunk-E7E2MFYM.js → chunk-U2K6HDUJ.js} +434 -13
  31. package/chunks/{chunk-FO7BIVSR.js → chunk-UQRYJQBE.js} +5 -3
  32. package/chunks/{chunk-VMOWXTRC.js → chunk-V7LMZR76.js} +1 -1
  33. package/chunks/chunk-W57YDFU5.js +41 -0
  34. package/chunks/computer-use-2J5ZXEER.js +768 -0
  35. package/chunks/{contextCommand-DDGVLQSF.js → contextCommand-52NTEMCT.js} +19 -14
  36. package/chunks/{cron-create-BTEOGHPH.js → cron-create-FXRORK2U.js} +5 -3
  37. package/chunks/{cron-delete-56CEWELN.js → cron-delete-D24IN6CA.js} +5 -3
  38. package/chunks/{cron-list-SV6QRZW2.js → cron-list-SMOX26SL.js} +5 -3
  39. package/chunks/{devtools-WN62SQPV.js → devtools-IXE4UP72.js} +31 -3748
  40. package/chunks/{dist-MN2PDDPR.js → dist-6RUZ2JD6.js} +13 -1612
  41. package/chunks/{dist-R2SXPG74.js → dist-AHZNZWRI.js} +5 -4
  42. package/chunks/dist-GRQVFL3G.js +94147 -0
  43. package/chunks/{dist-BXDUQ2QY.js → dist-XTTPOFAH.js} +4 -3
  44. package/chunks/{edit-4LLGNYVZ.js → edit-RLFUTT5F.js} +20 -14
  45. package/chunks/{enter-worktree-E2R5XAFT.js → enter-worktree-CYRAPQKJ.js} +20 -14
  46. package/chunks/{exit-worktree-YVBYYYDD.js → exit-worktree-WQZM72QD.js} +20 -14
  47. package/chunks/{exitPlanMode-WD5IH7NS.js → exitPlanMode-STFEBQZE.js} +20 -14
  48. package/chunks/{geminiContentGenerator-LM65ADWM.js → geminiContentGenerator-DIV32SKO.js} +4 -3
  49. package/chunks/{glob-6X6OCEWE.js → glob-N3XO4RVI.js} +20 -14
  50. package/chunks/{grep-2UUPSSIQ.js → grep-AK5MP7P3.js} +20 -14
  51. package/chunks/{ls-MYXAM7LJ.js → ls-7FYQHPWF.js} +5 -3
  52. package/chunks/{lsp-PFGI35JL.js → lsp-DKG34USR.js} +5 -3
  53. package/chunks/{monitor-VUHPEGUW.js → monitor-IVBWJZEZ.js} +20 -14
  54. package/chunks/{notebook-edit-P4QVLW6I.js → notebook-edit-PM46AXFS.js} +21 -15
  55. package/chunks/{openaiContentGenerator-JH4YNZ3H.js → openaiContentGenerator-4QXCH7L2.js} +13 -10
  56. package/chunks/{qwenContentGenerator-5FE4UYUT.js → qwenContentGenerator-BLXQIIMX.js} +21 -16
  57. package/chunks/{read-file-J7DH4OKV.js → read-file-IEQAS3EZ.js} +10 -6
  58. package/chunks/{ripGrep-33DECY4F.js → ripGrep-HQO7IE4C.js} +17 -12
  59. package/chunks/{send-message-JUFP62VD.js → send-message-ZL7CDM7K.js} +5 -3
  60. package/chunks/{serve-7FX7MREA.js → serve-CYRAK4UM.js} +63 -1837
  61. package/chunks/{shell-ZNTQIRK6.js → shell-UZBGNO2Q.js} +17 -12
  62. package/chunks/{skill-CFCUIY23.js → skill-JVC34QYN.js} +24 -13
  63. package/chunks/{src-AHV2CWEQ.js → src-FOODLH7B.js} +49 -41
  64. package/chunks/{syntheticOutput-AKTXC6FR.js → syntheticOutput-U3YJ3GOO.js} +3 -2
  65. package/chunks/{task-stop-2NYFR2ES.js → task-stop-NPUI3YBA.js} +5 -3
  66. package/chunks/{todoWrite-WHZ2O2XP.js → todoWrite-Y6F7YEIM.js} +6 -4
  67. package/chunks/{tool-search-C2EMLFBJ.js → tool-search-P7PRPOW3.js} +13 -8
  68. package/chunks/{web-fetch-S6MZXPZ5.js → web-fetch-XWEK4TFX.js} +6 -4
  69. package/chunks/{write-file-EEPVRS4Q.js → write-file-SIIEUON5.js} +21 -15
  70. package/cli.js +412 -329
  71. package/package.json +2 -2
  72. package/chunks/chunk-JVD46YJV.js +0 -434
  73. package/chunks/undici-4ARNOH74.js +0 -8
@@ -146,7 +146,11 @@ Settings are organized into categories. Most settings should be placed within th
146
146
  | `model.maxWallTimeSeconds` | number | Wall-clock budget for headless / unattended runs, in seconds. `-1` means unlimited. Overridable per-invocation via `--max-wall-time`, which requires a positive duration (`90`, `30s`, `5m`, `1h`, `1.5h`); the minimum is 1 second — sub-second values (`500ms`, `0.5`) are rejected as typos. Omit the flag to fall back to this setting. Aborts with exit code 55 when exceeded. | `-1` |
147
147
  | `model.maxToolCalls` | number | Cumulative tool-call budget for a run (counts every executed tool, success or failure; `structured_output` under `--json-schema` is exempt). `-1` means unlimited; `0` means "no tool calls allowed". Capped at 1,000,000 to catch typos. Overridable via `--max-tool-calls`. Aborts with exit code 55 when exceeded. | `-1` |
148
148
  | `model.generationConfig` | object | Advanced overrides passed to the underlying content generator. Supports request controls such as `timeout`, `maxRetries`, `enableCacheControl`, `splitToolMedia` (set `true` for strict OpenAI-compatible servers like LM Studio that reject non-text content on `role: "tool"` messages — splits media into a follow-up user message), `contextWindowSize` (override model's context window size), `modalities` (override auto-detected input modalities), `customHeaders` (custom HTTP headers for API requests), and `extra_body` (additional body parameters for OpenAI-compatible API requests only), along with fine-tuning knobs under `samplingParams` (for example `temperature`, `top_p`, `max_tokens`). Leave unset to rely on provider defaults. | `undefined` |
149
- | `model.chatCompression.contextPercentageThreshold` | number | **REMOVED.** Auto-compaction now uses a three-tier threshold ladder (warn / auto / hard) computed internally from the model's context window via the `computeThresholds()` function — no longer user-configurable. Setting this field in `settings.json` is silently ignored, and a one-line deprecation warning is emitted to stderr at startup. There is currently no replacement for "disable compression entirely" — reactive overflow recovery remains the safety net at the API layer if compression itself fails. (See PR #4345 / `docs/design/auto-compaction-threshold-redesign.md` for the redesign rationale.) | `N/A` |
149
+ | `model.chatCompression.contextPercentageThreshold` | number | **REMOVED.** Auto-compaction now uses a three-tier threshold ladder (warn / auto / hard) computed internally from the model's context window via the `computeThresholds()` function — no longer user-configurable. Setting this field in `settings.json` is silently ignored (no startup warning). There is currently no replacement for "disable compression entirely" — reactive overflow recovery remains the safety net at the API layer if compression itself fails. (See PR #4345 / `docs/design/auto-compaction-threshold-redesign.md` for the redesign rationale.) | `N/A` |
150
+ | `model.chatCompression.maxRecentFilesToRetain` | number | Number of most-recently-touched files whose current content is restored (embedded if small, otherwise referenced by path) into history after auto-compaction. `0` restores none. Env override: `QWEN_COMPACT_MAX_RECENT_FILES`. | `5` |
151
+ | `model.chatCompression.maxRecentImagesToRetain` | number | Number of most-recent images (tool screenshots / user pastes) restored into history after auto-compaction. `0` restores none. Env override: `QWEN_COMPACT_MAX_RECENT_IMAGES`. | `3` |
152
+ | `model.chatCompression.enableScreenshotTrigger` | boolean | When `true`, auto-compaction also fires once the number of tool-returned images accumulated in history reaches `screenshotTriggerThreshold`, independent of token usage — aimed at computer-use sessions where frequent screenshots dilute model attention. Counts only images returned inside tool results, not user-pasted images. Env override: `QWEN_COMPACT_SCREENSHOT_TRIGGER` (`1`/`true`/`0`/`false`). | `true` |
153
+ | `model.chatCompression.screenshotTriggerThreshold` | number | Tool-returned image count at or above which the screenshot trigger fires (only when `enableScreenshotTrigger`). Compaction resets the count — surviving images are re-embedded as top-level parts, which the trigger doesn't count — so it won't immediately re-fire. Env override: `QWEN_COMPACT_SCREENSHOT_THRESHOLD`. | `50` |
150
154
  | `model.skipNextSpeakerCheck` | boolean | Skip the next speaker check. | `false` |
151
155
  | `model.skipLoopDetection` | boolean | Disables streaming loop detection checks. Defaults to `true` (loop detection is skipped) to avoid false positives interrupting legitimate workflows. Set to `false` to re-enable streaming loop detection — useful as a guardrail in headless / non-interactive runs where stuck repetition can otherwise waste budget. | `true` |
152
156
  | `model.skipStartupContext` | boolean | Skips sending the startup workspace context (environment summary and acknowledgement) at the beginning of each session. Enable this if you prefer to provide context manually or want to save tokens on startup. | `false` |
@@ -3,5 +3,6 @@ export default {
3
3
  telegram: 'Telegram',
4
4
  weixin: 'WeChat',
5
5
  dingtalk: 'DingTalk',
6
+ feishu: 'Feishu',
6
7
  plugins: 'Plugins',
7
8
  };
@@ -0,0 +1,170 @@
1
+ # Feishu (Lark)
2
+
3
+ This guide covers setting up a Qwen Code channel on Feishu (飞书) / Lark.
4
+
5
+ ## Prerequisites
6
+
7
+ - A Feishu organization account
8
+ - A Feishu application with App ID and App Secret (see below)
9
+
10
+ ## Creating an Application
11
+
12
+ 1. Go to the [Feishu Open Platform](https://open.feishu.cn)
13
+ 2. Create a new application (or use an existing one)
14
+ 3. Under the application, enable the **Bot** capability (添加应用能力 → 机器人)
15
+ 4. In **Event Subscriptions** (事件与回调), select **Long Connection** (使用长连接接收事件)
16
+ 5. Add the event `im.message.receive_v1` (接收消息)
17
+ 6. Note the **App ID** (Client ID) and **App Secret** (Client Secret) from the application credentials page
18
+
19
+ ### Required Permissions
20
+
21
+ Enable the following permissions under **Permissions & Scopes** (权限管理):
22
+
23
+ - `im:message` — Read and send messages
24
+ - `im:message:send_as_bot` — Send messages as bot
25
+ - `im:resource` — Access message resources (images, files)
26
+
27
+ ### Publish the Application
28
+
29
+ After configuring permissions and events, create a version and publish it. The bot won't work until the application is published and approved.
30
+
31
+ ## Configuration
32
+
33
+ Add the channel to `~/.qwen/settings.json`:
34
+
35
+ ```json
36
+ {
37
+ "channels": {
38
+ "my-feishu": {
39
+ "type": "feishu",
40
+ "clientId": "<your-app-id>",
41
+ "clientSecret": "<your-app-secret>",
42
+ "senderPolicy": "open",
43
+ "sessionScope": "user",
44
+ "cwd": "/path/to/your/project",
45
+ "groupPolicy": "open",
46
+ "collapsible": true,
47
+ "groups": {
48
+ "*": { "requireMention": true }
49
+ }
50
+ }
51
+ }
52
+ }
53
+ ```
54
+
55
+ ### Configuration Options
56
+
57
+ | Option | Description |
58
+ | ---------------------- | ------------------------------------------------------------------- |
59
+ | `clientId` | Feishu App ID |
60
+ | `clientSecret` | Feishu App Secret |
61
+ | `collapsible` | Collapse long responses into expandable sections (default: `false`) |
62
+ | `collapsibleThreshold` | Character threshold for collapsing (default: `500`) |
63
+ | `webhookPort` | If set, use HTTP webhook mode instead of WebSocket |
64
+ | `verificationToken` | Verification token for webhook mode |
65
+ | `encryptKey` | Encrypt key for webhook mode |
66
+
67
+ ## Running
68
+
69
+ ```bash
70
+ # Start only the Feishu channel
71
+ qwen channel start my-feishu
72
+
73
+ # Or start all configured channels together
74
+ qwen channel start
75
+ ```
76
+
77
+ Open Feishu and send a message to the bot. You should see a streaming interactive card with the response.
78
+
79
+ ## Connection Modes
80
+
81
+ ### WebSocket (Default)
82
+
83
+ WebSocket mode uses an outbound long connection — no public URL or server is needed. This is the recommended mode for most deployments.
84
+
85
+ ### Webhook
86
+
87
+ If you need webhook mode (e.g., for shared applications), set `webhookPort` in your config:
88
+
89
+ ```json
90
+ {
91
+ "channels": {
92
+ "my-feishu": {
93
+ "type": "feishu",
94
+ "webhookPort": 9321,
95
+ "verificationToken": "<from-feishu-console>",
96
+ "encryptKey": "<from-feishu-console>"
97
+ }
98
+ }
99
+ }
100
+ ```
101
+
102
+ Then set the request URL in Feishu Open Platform to `http://<your-server>:9321`.
103
+
104
+ ## Group Chats
105
+
106
+ Feishu bots work in both DM and group conversations. To enable group support:
107
+
108
+ 1. Set `groupPolicy` to `"allowlist"` or `"open"` in your channel config
109
+ 2. Add the bot to a Feishu group
110
+ 3. @mention the bot in the group to trigger a response
111
+
112
+ By default, the bot requires an @mention in group chats (`requireMention: true`). Set `"requireMention": false` for a specific group to make it respond to all messages.
113
+
114
+ ## Features
115
+
116
+ ### Interactive Card Streaming
117
+
118
+ Responses are rendered as Feishu interactive cards with real-time streaming updates. The card shows a "generating" indicator while the response is being produced, and a **Stop** button to cancel generation.
119
+
120
+ ### Quote/Reply Context
121
+
122
+ When you reply to (quote) a message, the quoted content is automatically included as context for the agent. This works for:
123
+
124
+ - Text and rich-text messages
125
+ - Interactive cards (bot's previous responses)
126
+
127
+ ### Images and Files
128
+
129
+ You can send photos and documents to the bot:
130
+
131
+ - **Images:** Analyzed using multimodal vision capabilities
132
+ - **Files:** Downloaded and saved locally for the agent to read
133
+
134
+ ### Concurrent Messages
135
+
136
+ Multiple users can send messages simultaneously in the same group chat. Each message gets its own independent card and response — they don't interfere with each other.
137
+
138
+ ## Key Differences from DingTalk
139
+
140
+ - **Response format:** Uses Feishu interactive cards (v2 schema) with native markdown rendering, including tables
141
+ - **Streaming:** Card content is updated in-place with throttled PATCH requests (1.5s interval)
142
+ - **Connection:** WebSocket via `@larksuiteoapi/node-sdk` — same outbound-only model, no public URL needed
143
+ - **Working indicator:** An "OnIt" emoji reaction is added while processing
144
+ - **Quote context:** Supports quoting both text messages and interactive cards
145
+
146
+ ## Troubleshooting
147
+
148
+ ### Bot doesn't connect
149
+
150
+ - Verify your App ID and App Secret are correct
151
+ - Make sure **Long Connection** is selected in Event Subscriptions
152
+ - Check that the `im.message.receive_v1` event is subscribed
153
+ - Check the terminal output for connection errors
154
+
155
+ ### Bot doesn't respond in groups
156
+
157
+ - Check that `groupPolicy` is set to `"allowlist"` or `"open"` (default is `"disabled"`)
158
+ - Make sure you @mention the bot in the group message
159
+ - Verify the bot has been added to the group
160
+
161
+ ### Card stays in "generating" state
162
+
163
+ - This usually indicates the response completed but the final card update failed
164
+ - Check terminal logs for API errors (rate limiting, card size limits)
165
+ - Very long responses with many tables may hit Feishu's card element limits
166
+
167
+ ### Quote doesn't include card content
168
+
169
+ - The bot reads card content via the `card_msg_content_type=user_card_content` API parameter
170
+ - Ensure the bot has `im:message` permission to read messages
@@ -7,31 +7,36 @@ import {
7
7
  hasRebuiltToolRegistry,
8
8
  rebuildToolRegistryOnOverride,
9
9
  resolveSubagentApprovalMode
10
- } from "./chunk-7HM6OB7M.js";
11
- import "./chunk-K5PGHDBN.js";
10
+ } from "./chunk-7EHPK6TK.js";
11
+ import "./chunk-24YKA2DA.js";
12
12
  import "./chunk-O4PICXES.js";
13
13
  import "./chunk-TW522KN6.js";
14
+ import "./chunk-TI4GXJKO.js";
15
+ import "./chunk-AKBFRR6J.js";
14
16
  import "./chunk-MLZQVCF3.js";
15
- import "./chunk-C27V5A2J.js";
17
+ import "./chunk-EMVEDSVZ.js";
16
18
  import "./chunk-EY6BDW7Y.js";
17
- import "./chunk-K72FHBFO.js";
19
+ import "./chunk-HAQCNXSG.js";
18
20
  import "./chunk-77WXWU44.js";
19
21
  import "./chunk-GVWPJCXU.js";
20
- import "./chunk-JVD46YJV.js";
21
- import "./chunk-4YNZFYJY.js";
22
+ import "./chunk-MEN6IEKX.js";
23
+ import "./chunk-J5VCSWPA.js";
22
24
  import "./chunk-UWCTAVOD.js";
25
+ import "./chunk-W57YDFU5.js";
23
26
  import "./chunk-OFEVLU4C.js";
24
27
  import "./chunk-NQ3E7YLD.js";
25
- import "./chunk-6NUSWV4M.js";
26
28
  import "./chunk-ODPVJ6JJ.js";
27
- import "./chunk-T4VD6OJ4.js";
28
- import "./chunk-RDYWTWEM.js";
29
- import "./chunk-FO7BIVSR.js";
30
- import "./chunk-YMDXEEOW.js";
29
+ import "./chunk-UQRYJQBE.js";
30
+ import "./chunk-6RQTH7UQ.js";
31
+ import "./chunk-R2B65CAN.js";
31
32
  import "./chunk-7YJIR2FX.js";
32
33
  import "./chunk-OIL7KDWV.js";
34
+ import "./chunk-U2K6HDUJ.js";
35
+ import "./chunk-6NUSWV4M.js";
36
+ import "./chunk-HCSJIOLR.js";
37
+ import "./chunk-SZOEIL6S.js";
38
+ import "./chunk-5IFG2VC4.js";
33
39
  import "./chunk-ACBGEKB7.js";
34
- import "./chunk-E7E2MFYM.js";
35
40
  import "./chunk-ZERZSAZL.js";
36
41
  import "./chunk-QN5NZ3UQ.js";
37
42
  import "./chunk-BR4QREVK.js";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-KQIKOTQJ.js";
7
7
  import {
8
8
  RequestTokenizer
9
- } from "./chunk-VMOWXTRC.js";
9
+ } from "./chunk-V7LMZR76.js";
10
10
  import {
11
11
  Blob,
12
12
  File,
@@ -16,7 +16,7 @@ import {
16
16
  import {
17
17
  buildRuntimeFetchOptions,
18
18
  redactProxyError
19
- } from "./chunk-JVD46YJV.js";
19
+ } from "./chunk-U2K6HDUJ.js";
20
20
  import {
21
21
  CAPPED_DEFAULT_MAX_TOKENS,
22
22
  DEFAULT_TIMEOUT,
@@ -29,12 +29,12 @@ import {
29
29
  import {
30
30
  FinishReason,
31
31
  GenerateContentResponse
32
- } from "./chunk-T4VD6OJ4.js";
33
- import "./chunk-RDYWTWEM.js";
32
+ } from "./chunk-HCSJIOLR.js";
33
+ import "./chunk-SZOEIL6S.js";
34
+ import "./chunk-5IFG2VC4.js";
34
35
  import {
35
36
  createDebugLogger
36
37
  } from "./chunk-ACBGEKB7.js";
37
- import "./chunk-E7E2MFYM.js";
38
38
  import {
39
39
  require_ms
40
40
  } from "./chunk-BR4QREVK.js";
@@ -2,11 +2,13 @@
2
2
  "use strict";
3
3
  import "./chunk-MLZQVCF3.js";
4
4
  import {
5
- BaseDeclarativeTool,
6
- BaseToolInvocation,
7
5
  ToolDisplayNames,
8
6
  ToolNames
9
- } from "./chunk-YMDXEEOW.js";
7
+ } from "./chunk-6RQTH7UQ.js";
8
+ import {
9
+ BaseDeclarativeTool,
10
+ BaseToolInvocation
11
+ } from "./chunk-R2B65CAN.js";
10
12
  import {
11
13
  createDebugLogger
12
14
  } from "./chunk-ACBGEKB7.js";
@@ -0,0 +1,233 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ BRAND,
5
+ DIRTY,
6
+ EMPTY_PATH,
7
+ INVALID,
8
+ NEVER,
9
+ OK,
10
+ ParseStatus,
11
+ ZodAny,
12
+ ZodArray,
13
+ ZodBigInt,
14
+ ZodBoolean,
15
+ ZodBranded,
16
+ ZodCatch,
17
+ ZodDate,
18
+ ZodDefault,
19
+ ZodDiscriminatedUnion,
20
+ ZodEffects,
21
+ ZodEnum,
22
+ ZodError,
23
+ ZodFirstPartyTypeKind,
24
+ ZodFunction,
25
+ ZodIntersection,
26
+ ZodIssueCode,
27
+ ZodLazy,
28
+ ZodLiteral,
29
+ ZodMap,
30
+ ZodNaN,
31
+ ZodNativeEnum,
32
+ ZodNever,
33
+ ZodNull,
34
+ ZodNullable,
35
+ ZodNumber,
36
+ ZodObject,
37
+ ZodOptional,
38
+ ZodParsedType,
39
+ ZodPipeline,
40
+ ZodPromise,
41
+ ZodReadonly,
42
+ ZodRecord,
43
+ ZodSet,
44
+ ZodString,
45
+ ZodSymbol,
46
+ ZodTuple,
47
+ ZodType,
48
+ ZodUndefined,
49
+ ZodUnion,
50
+ ZodUnknown,
51
+ ZodVoid,
52
+ addIssueToContext,
53
+ anyType,
54
+ arrayType,
55
+ bigIntType,
56
+ booleanType,
57
+ coerce,
58
+ custom,
59
+ dateType,
60
+ datetimeRegex,
61
+ discriminatedUnionType,
62
+ effectsType,
63
+ en_default,
64
+ enumType,
65
+ functionType,
66
+ getErrorMap,
67
+ getParsedType,
68
+ instanceOfType,
69
+ intersectionType,
70
+ isAborted,
71
+ isAsync,
72
+ isDirty,
73
+ isValid,
74
+ late,
75
+ lazyType,
76
+ literalType,
77
+ makeIssue,
78
+ mapType,
79
+ nanType,
80
+ nativeEnumType,
81
+ neverType,
82
+ nullType,
83
+ nullableType,
84
+ numberType,
85
+ objectType,
86
+ objectUtil,
87
+ oboolean,
88
+ onumber,
89
+ optionalType,
90
+ ostring,
91
+ pipelineType,
92
+ preprocessType,
93
+ promiseType,
94
+ quotelessJson,
95
+ recordType,
96
+ setErrorMap,
97
+ setType,
98
+ strictObjectType,
99
+ stringType,
100
+ symbolType,
101
+ tupleType,
102
+ undefinedType,
103
+ unionType,
104
+ unknownType,
105
+ util,
106
+ voidType
107
+ } from "./chunk-AKBFRR6J.js";
108
+ import {
109
+ init_esbuild_shims
110
+ } from "./chunk-A4BMJM77.js";
111
+ import {
112
+ __export
113
+ } from "./chunk-J2S4EL5Y.js";
114
+
115
+ // node_modules/zod/v3/external.js
116
+ var external_exports = {};
117
+ __export(external_exports, {
118
+ BRAND: () => BRAND,
119
+ DIRTY: () => DIRTY,
120
+ EMPTY_PATH: () => EMPTY_PATH,
121
+ INVALID: () => INVALID,
122
+ NEVER: () => NEVER,
123
+ OK: () => OK,
124
+ ParseStatus: () => ParseStatus,
125
+ Schema: () => ZodType,
126
+ ZodAny: () => ZodAny,
127
+ ZodArray: () => ZodArray,
128
+ ZodBigInt: () => ZodBigInt,
129
+ ZodBoolean: () => ZodBoolean,
130
+ ZodBranded: () => ZodBranded,
131
+ ZodCatch: () => ZodCatch,
132
+ ZodDate: () => ZodDate,
133
+ ZodDefault: () => ZodDefault,
134
+ ZodDiscriminatedUnion: () => ZodDiscriminatedUnion,
135
+ ZodEffects: () => ZodEffects,
136
+ ZodEnum: () => ZodEnum,
137
+ ZodError: () => ZodError,
138
+ ZodFirstPartyTypeKind: () => ZodFirstPartyTypeKind,
139
+ ZodFunction: () => ZodFunction,
140
+ ZodIntersection: () => ZodIntersection,
141
+ ZodIssueCode: () => ZodIssueCode,
142
+ ZodLazy: () => ZodLazy,
143
+ ZodLiteral: () => ZodLiteral,
144
+ ZodMap: () => ZodMap,
145
+ ZodNaN: () => ZodNaN,
146
+ ZodNativeEnum: () => ZodNativeEnum,
147
+ ZodNever: () => ZodNever,
148
+ ZodNull: () => ZodNull,
149
+ ZodNullable: () => ZodNullable,
150
+ ZodNumber: () => ZodNumber,
151
+ ZodObject: () => ZodObject,
152
+ ZodOptional: () => ZodOptional,
153
+ ZodParsedType: () => ZodParsedType,
154
+ ZodPipeline: () => ZodPipeline,
155
+ ZodPromise: () => ZodPromise,
156
+ ZodReadonly: () => ZodReadonly,
157
+ ZodRecord: () => ZodRecord,
158
+ ZodSchema: () => ZodType,
159
+ ZodSet: () => ZodSet,
160
+ ZodString: () => ZodString,
161
+ ZodSymbol: () => ZodSymbol,
162
+ ZodTransformer: () => ZodEffects,
163
+ ZodTuple: () => ZodTuple,
164
+ ZodType: () => ZodType,
165
+ ZodUndefined: () => ZodUndefined,
166
+ ZodUnion: () => ZodUnion,
167
+ ZodUnknown: () => ZodUnknown,
168
+ ZodVoid: () => ZodVoid,
169
+ addIssueToContext: () => addIssueToContext,
170
+ any: () => anyType,
171
+ array: () => arrayType,
172
+ bigint: () => bigIntType,
173
+ boolean: () => booleanType,
174
+ coerce: () => coerce,
175
+ custom: () => custom,
176
+ date: () => dateType,
177
+ datetimeRegex: () => datetimeRegex,
178
+ defaultErrorMap: () => en_default,
179
+ discriminatedUnion: () => discriminatedUnionType,
180
+ effect: () => effectsType,
181
+ enum: () => enumType,
182
+ function: () => functionType,
183
+ getErrorMap: () => getErrorMap,
184
+ getParsedType: () => getParsedType,
185
+ instanceof: () => instanceOfType,
186
+ intersection: () => intersectionType,
187
+ isAborted: () => isAborted,
188
+ isAsync: () => isAsync,
189
+ isDirty: () => isDirty,
190
+ isValid: () => isValid,
191
+ late: () => late,
192
+ lazy: () => lazyType,
193
+ literal: () => literalType,
194
+ makeIssue: () => makeIssue,
195
+ map: () => mapType,
196
+ nan: () => nanType,
197
+ nativeEnum: () => nativeEnumType,
198
+ never: () => neverType,
199
+ null: () => nullType,
200
+ nullable: () => nullableType,
201
+ number: () => numberType,
202
+ object: () => objectType,
203
+ objectUtil: () => objectUtil,
204
+ oboolean: () => oboolean,
205
+ onumber: () => onumber,
206
+ optional: () => optionalType,
207
+ ostring: () => ostring,
208
+ pipeline: () => pipelineType,
209
+ preprocess: () => preprocessType,
210
+ promise: () => promiseType,
211
+ quotelessJson: () => quotelessJson,
212
+ record: () => recordType,
213
+ set: () => setType,
214
+ setErrorMap: () => setErrorMap,
215
+ strictObject: () => strictObjectType,
216
+ string: () => stringType,
217
+ symbol: () => symbolType,
218
+ transformer: () => effectsType,
219
+ tuple: () => tupleType,
220
+ undefined: () => undefinedType,
221
+ union: () => unionType,
222
+ unknown: () => unknownType,
223
+ util: () => util,
224
+ void: () => voidType
225
+ });
226
+ init_esbuild_shims();
227
+
228
+ // node_modules/zod/index.js
229
+ init_esbuild_shims();
230
+
231
+ export {
232
+ external_exports
233
+ };
@@ -1,9 +1,11 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
3
  import {
4
- external_exports,
5
- external_exports2
6
- } from "./chunk-K5PGHDBN.js";
4
+ external_exports
5
+ } from "./chunk-24YKA2DA.js";
6
+ import {
7
+ external_exports as external_exports2
8
+ } from "./chunk-AKBFRR6J.js";
7
9
  import {
8
10
  init_esbuild_shims
9
11
  } from "./chunk-A4BMJM77.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  getGlobalQwenDir
5
- } from "./chunk-USE2VQ5P.js";
5
+ } from "./chunk-NP3ICQCN.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";