@qwen-code/qwen-code 0.18.1-nightly.20260616.a68b2e1e7 → 0.18.1-preview.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +2 -1
  2. package/bundled/qc-helper/docs/features/channels/feishu.md +16 -0
  3. package/bundled/qc-helper/docs/features/mcp.md +1 -1
  4. package/bundled/qc-helper/docs/features/sub-agents.md +3 -3
  5. package/bundled/qc-helper/docs/qwen-serve.md +18 -7
  6. package/bundled/review/SKILL.md +10 -4
  7. package/bundled/simplify/SKILL.md +1 -1
  8. package/chunks/{agent-PXMT2XR5.js → agent-ZLVQLNIP.js} +5 -5
  9. package/chunks/{agent-headless-SY7VJUHV.js → agent-headless-H4ZT46GX.js} +5 -5
  10. package/chunks/{anthropicContentGenerator-DCI26OQF.js → anthropicContentGenerator-KLBHYGH6.js} +1 -1
  11. package/chunks/{askUserQuestion-NDNFGC35.js → askUserQuestion-QPZXR3UO.js} +1 -1
  12. package/chunks/{chunk-ABRZC6FA.js → chunk-BRU4Z5BG.js} +10 -5
  13. package/chunks/{chunk-JZFEL3RB.js → chunk-C64WAJOC.js} +1 -1
  14. package/chunks/{chunk-TSBXGR73.js → chunk-HISY5FYZ.js} +4 -4
  15. package/chunks/{chunk-A3OEZT2F.js → chunk-L6F7VZPZ.js} +6 -6
  16. package/chunks/{chunk-3NRO6NHX.js → chunk-MN5RAXVB.js} +3 -3
  17. package/chunks/{chunk-M5PJ5QAF.js → chunk-Q6WOQSR4.js} +2 -2
  18. package/chunks/{chunk-UOB6KPGG.js → chunk-R53CLQY7.js} +1 -1
  19. package/chunks/{chunk-26QELEL2.js → chunk-RTTAC5VW.js} +1 -1
  20. package/chunks/{chunk-H4ZDM3N6.js → chunk-UKLVRIWE.js} +1332 -1027
  21. package/chunks/{chunk-VXHYMZXW.js → chunk-VIEIRAK3.js} +1 -1
  22. package/chunks/{chunk-OT6JA3KQ.js → chunk-YJDVHAGL.js} +1 -1
  23. package/chunks/{chunk-6WPY6ES3.js → chunk-ZNUMXPNK.js} +565 -48
  24. package/chunks/{computer-use-7SEQDSHB.js → computer-use-SWC45S44.js} +5 -5
  25. package/chunks/{contextCommand-KM5OWV65.js → contextCommand-O5DLQUIZ.js} +7 -7
  26. package/chunks/{cron-create-7CXEAJ2K.js → cron-create-DQKRQMCP.js} +1 -1
  27. package/chunks/{cron-delete-2FQYYNQ6.js → cron-delete-DOFPHFTI.js} +1 -1
  28. package/chunks/{cron-list-QCAJ73XE.js → cron-list-RCVOO3CB.js} +1 -1
  29. package/chunks/{dist-PF2IYSMD.js → dist-UH7CYT7F.js} +1 -1
  30. package/chunks/{edit-BMUKPLA7.js → edit-J7M33W4D.js} +6 -6
  31. package/chunks/{enter-worktree-LXJ5WJ5A.js → enter-worktree-RCCPIOG6.js} +5 -5
  32. package/chunks/{enterPlanMode-QWRZ54ZF.js → enterPlanMode-EC7HWVXV.js} +5 -5
  33. package/chunks/{exit-worktree-5HTQPNZO.js → exit-worktree-V3OVN22U.js} +5 -5
  34. package/chunks/{exitPlanMode-5WQAXNDA.js → exitPlanMode-P3F5VTWX.js} +7 -6
  35. package/chunks/{geminiContentGenerator-CAKHT5YE.js → geminiContentGenerator-E2LZQIFZ.js} +1 -1
  36. package/chunks/{glob-5DN6NSCD.js → glob-ENPPHN24.js} +5 -5
  37. package/chunks/{grep-BJILOLCD.js → grep-RXZMZKHV.js} +5 -5
  38. package/chunks/{ls-XVGXRYWD.js → ls-TRD77UTS.js} +1 -1
  39. package/chunks/{lsp-S6SHPULC.js → lsp-2VFWQPZS.js} +1 -1
  40. package/chunks/{monitor-SUEMSRN3.js → monitor-YYWM7RUX.js} +5 -5
  41. package/chunks/{notebook-edit-6F6Z5P6U.js → notebook-edit-L6OODJTK.js} +6 -6
  42. package/chunks/{openaiContentGenerator-DO27LL6O.js → openaiContentGenerator-BPRGR5FJ.js} +5 -5
  43. package/chunks/{qwenContentGenerator-DQLGLQSH.js → qwenContentGenerator-ENMXX47B.js} +7 -7
  44. package/chunks/{read-file-3TBLYTOQ.js → read-file-3VASWJKO.js} +3 -3
  45. package/chunks/{ripGrep-3INYT3QV.js → ripGrep-67IQWCR7.js} +5 -5
  46. package/chunks/{scheduler-23KQW6CX.js → scheduler-TAPJOQHX.js} +5 -5
  47. package/chunks/{send-message-SMNR5DBG.js → send-message-QZOC5GA2.js} +1 -1
  48. package/chunks/{serve-Y5E4LKUI.js → serve-CQF2R7SG.js} +709 -26
  49. package/chunks/{shell-4H6XQXVY.js → shell-ZLBFZ75G.js} +5 -5
  50. package/chunks/{skill-SE6FECZR.js → skill-BZ2NCCJN.js} +3 -3
  51. package/chunks/{src-76DUBH3A.js → src-ASRB3EO3.js} +11 -5
  52. package/chunks/{syntheticOutput-KMNF7YG6.js → syntheticOutput-WJSUK4SZ.js} +2 -2
  53. package/chunks/{task-create-LIJHK75G.js → task-create-GGSC27HO.js} +2 -2
  54. package/chunks/{task-list-S4GNSILM.js → task-list-EDHHHSK4.js} +1 -1
  55. package/chunks/{task-stop-3GBRYJHM.js → task-stop-WR5PDVZY.js} +1 -1
  56. package/chunks/{task-update-F3UTVJMS.js → task-update-UR7NUHBV.js} +2 -2
  57. package/chunks/{team-create-Q5DTDDH4.js → team-create-NXTYUYLE.js} +5 -5
  58. package/chunks/{team-delete-54434EB7.js → team-delete-FC33URJK.js} +1 -1
  59. package/chunks/{todoWrite-4ENGSBUX.js → todoWrite-GO2ME7ZV.js} +1 -1
  60. package/chunks/{tool-search-ABZMSDTU.js → tool-search-GYO3ZDMH.js} +3 -3
  61. package/chunks/{web-fetch-RHZMF3MP.js → web-fetch-NLLATYIL.js} +2 -2
  62. package/chunks/{workflow-NEMDQB75.js → workflow-KZLZUDHE.js} +249 -24
  63. package/chunks/{write-file-VAEHZPSL.js → write-file-AUXVL5D2.js} +6 -6
  64. package/cli.js +545 -184
  65. package/package.json +2 -2
package/README.md CHANGED
@@ -256,7 +256,7 @@ Use the `/model` command at any time to switch between all configured models.
256
256
  }
257
257
  ```
258
258
 
259
- > Subscribe to the Coding Plan and get your API key at [Alibaba Cloud ModelStudio(Beijing)](https://bailian.console.aliyun.com/cn-beijing?tab=coding-plan#/efm/coding-plan-index) or [Alibaba Cloud ModelStudio(intl)](https://modelstudio.console.alibabacloud.com/?tab=coding-plan#/efm/coding-plan-index).
259
+ > Subscribe to the Coding Plan and get your API key at [Alibaba Cloud ModelStudio (Beijing)](https://bailian.console.aliyun.com/cn-beijing?tab=coding-plan#/efm/coding-plan-index) or [Alibaba Cloud ModelStudio (intl)](https://modelstudio.console.alibabacloud.com/?tab=coding-plan#/efm/coding-plan-index).
260
260
 
261
261
  </details>
262
262
 
@@ -561,6 +561,7 @@ The most commonly used top-level fields in `settings.json`:
561
561
 
562
562
  Looking for a graphical interface?
563
563
 
564
+ - [**Qwen Code Desktop**](https://github.com/QwenLM/qwen-code/releases/tag/desktop-latest) Official desktop app for macOS, Windows, and Linux
564
565
  - [**AionUi**](https://github.com/iOfficeAI/AionUi) A modern GUI for command-line AI tools including Qwen Code
565
566
  - [**Gemini CLI Desktop**](https://github.com/Piebald-AI/gemini-cli-desktop) A cross-platform desktop/web/mobile UI for Qwen Code
566
567
 
@@ -11,11 +11,25 @@ This guide covers setting up a Qwen Code channel on Feishu (飞书) / Lark.
11
11
 
12
12
  1. Go to the [Feishu Open Platform](https://open.feishu.cn)
13
13
  2. Create a new application (or use an existing one)
14
+
15
+ ![](https://gw.alicdn.com/imgextra/i4/O1CN01ORb10i1JM0MQfhnsV_!!6000000001013-2-tps-2219-931.png)
16
+
14
17
  3. Under the application, enable the **Bot** capability (添加应用能力 → 机器人)
18
+
19
+ ![](https://gw.alicdn.com/imgextra/i4/O1CN01bClpxu1FZxyH4kNjJ_!!6000000000502-2-tps-2219-931.png)
20
+
15
21
  4. In **Event Subscriptions** (事件与回调), select **Long Connection** (使用长连接接收事件)
22
+
23
+ ![](https://gw.alicdn.com/imgextra/i1/O1CN01uIwzbl1ph8Kwq7hTI_!!6000000005391-2-tps-2219-1166.png)
24
+
16
25
  5. Add the event `im.message.receive_v1` (接收消息)
26
+
27
+ ![](https://gw.alicdn.com/imgextra/i2/O1CN01n7sZmV28s6WX0aDhw_!!6000000007987-2-tps-2219-1090.png)
28
+
17
29
  6. Note the **App ID** (Client ID) and **App Secret** (Client Secret) from the application credentials page
18
30
 
31
+ ![](https://gw.alicdn.com/imgextra/i2/O1CN01ag1yBh1DxfEUb4xmE_!!6000000000283-2-tps-2219-1166.png)
32
+
19
33
  ### Required Permissions
20
34
 
21
35
  Enable the following permissions under **Permissions & Scopes** (权限管理):
@@ -28,6 +42,8 @@ Enable the following permissions under **Permissions & Scopes** (权限管理):
28
42
 
29
43
  After configuring permissions and events, create a version and publish it. The bot won't work until the application is published and approved.
30
44
 
45
+ ![](https://gw.alicdn.com/imgextra/i1/O1CN01GbNRcj1lVuACnkV6M_!!6000000004825-2-tps-2219-1090.png)
46
+
31
47
  ## Configuration
32
48
 
33
49
  Add the channel to `~/.qwen/settings.json`:
@@ -281,7 +281,7 @@ OAuth configuration properties:
281
281
 
282
282
  OAuth tokens are automatically:
283
283
 
284
- - **Stored securely** in `~/.qwen/mcp-oauth-tokens.json`
284
+ - **Stored securely** in `~/.qwen/mcp-oauth-tokens-v2.json` (AES-256-GCM encrypted), with keychain storage preferred when available
285
285
  - **Refreshed** when expired (if refresh tokens are available)
286
286
  - **Validated** before each connection attempt
287
287
 
@@ -12,9 +12,9 @@ Subagents are independent AI assistants that:
12
12
  - **Work autonomously** - Once given a task, they work independently until completion or failure
13
13
  - **Provide detailed feedback** - You can see their progress, tool usage, and execution statistics in real-time
14
14
 
15
- ## Fork Subagent (Implicit Fork)
15
+ ## Fork Subagent
16
16
 
17
- In addition to named subagents, Qwen Code supports **implicit forking** — when the AI omits the `subagent_type` parameter, it triggers a fork that inherits the parent's full conversation context.
17
+ In addition to named subagents, Qwen Code supports **forking** — selected explicitly with `subagent_type: "fork"` (available in interactive sessions). A fork inherits the parent's full conversation context and runs detached in the background. Omitting `subagent_type` does **not** fork; it launches the general-purpose subagent, which runs to completion and returns its result inline.
18
18
 
19
19
  ### How Fork Differs from Named Subagents
20
20
 
@@ -59,7 +59,7 @@ Fork children cannot create further forks. This is enforced at runtime — if a
59
59
  ## How Subagents Work
60
60
 
61
61
  1. **Configuration**: You create Subagents configurations that define their behavior, tools, and system prompts
62
- 2. **Delegation**: The main AI can automatically delegate tasks to appropriate Subagents — or implicitly fork when no specific subagent type is needed
62
+ 2. **Delegation**: The main AI can automatically delegate tasks to appropriate Subagents — or fork itself (`subagent_type: "fork"`) when it wants to inherit the full conversation context and discard the intermediate output
63
63
  3. **Execution**: Subagents work independently, using their configured tools to complete tasks
64
64
  4. **Results**: They return results and execution summaries back to the main conversation
65
65
 
@@ -70,18 +70,29 @@ curl http://127.0.0.1:4170/health
70
70
  # → {"status":"ok"}
71
71
 
72
72
  curl http://127.0.0.1:4170/capabilities
73
- # → {"v":1,"mode":"http-bridge","features":["health","capabilities","session_create",...],"workspaceCwd":"/path/to/your-project"}
73
+ # → {"v":1,"mode":"http-bridge","features":["health","daemon_status","capabilities","session_create",...],"workspaceCwd":"/path/to/your-project"}
74
+
75
+ curl http://127.0.0.1:4170/daemon/status
76
+ # → {"v":1,"detail":"summary","status":"ok","runtime":{...}}
74
77
  ```
75
78
 
76
79
  The `workspaceCwd` field surfaces the bound workspace so clients can pre-flight check + omit `cwd` on `POST /session`.
77
80
  The `limits.maxPendingPromptsPerSession` field advertises the active per-session prompt admission cap; `null` means the cap is disabled.
78
81
 
79
- The daemon also exposes read-only runtime snapshots for client UIs:
80
- `GET /workspace/mcp`, `GET /workspace/skills`, `GET /workspace/providers`,
81
- `GET /workspace/env`, `GET /workspace/preflight`,
82
+ The daemon also exposes read-only runtime snapshots for client UIs and
83
+ operators: `GET /daemon/status`, `GET /workspace/mcp`,
84
+ `GET /workspace/skills`, `GET /workspace/providers`, `GET /workspace/env`,
85
+ `GET /workspace/preflight`,
82
86
  `GET /session/:id/context`, `GET /session/:id/supported-commands`, and
83
87
  `GET /session/:id/tasks`.
84
88
 
89
+ `GET /daemon/status` is the consolidated troubleshooting snapshot. The default
90
+ `detail=summary` reads only in-memory daemon state (sessions, permissions,
91
+ SSE/ACP transport counts, rate limit rejects, process memory, resolved limits)
92
+ and does not start the ACP child. Use `GET /daemon/status?detail=full` for
93
+ per-session diagnostics, ACP connection details, auth device-flow counts, and
94
+ workspace status sections when you are actively investigating a problem.
95
+
85
96
  `GET /workspace/mcp`, `GET /workspace/skills`, and `GET /workspace/providers`
86
97
  report the live ACP runtime and do not start the ACP child when idle; an
87
98
  idle daemon returns `initialized: false` with an empty snapshot. Once a
@@ -320,9 +331,9 @@ To handle multiple **users** (each with their own quota, audit log, sandbox) or
320
331
 
321
332
  The daemon exposes ACP's `session/load` and resume flow over HTTP via two routes:
322
333
 
323
- | Route | Use when |
324
- | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
325
- | `POST /session/:id/load` | The client has **no** history rendered (cold reconnect, picker-then-open). The daemon replays every persisted turn through SSE so subscribers see the full transcript. Capability tag: `session_load`. |
334
+ | Route | Use when |
335
+ | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
336
+ | `POST /session/:id/load` | The client has **no** history rendered (cold reconnect, picker-then-open). The daemon replays every persisted turn through SSE so subscribers see the full transcript. Capability tag: `session_load`. |
326
337
  | `POST /session/:id/resume` | The client already has the turns on screen and only needs the daemon-side handle back. Model context is restored on the agent side without UI replay — the SSE stream stays clean. Capability tag: `session_resume` (`unstable_session_resume` remains a deprecated alias for older clients). |
327
338
 
328
339
  The TypeScript SDK exposes both as static factories on `DaemonSessionClient`:
@@ -159,7 +159,9 @@ Assign severity based on the tool's own categorization:
159
159
 
160
160
  ## Step 4: Parallel multi-dimensional review
161
161
 
162
- Launch review agents by invoking all `task` tools in a **single response**. The runtime executes agent tools concurrently — they will run in parallel. You MUST include all tool calls in one response; do NOT send them one at a time. Launch **9 agents** for same-repo reviews (Agent 6 has three persona variants 6a/6b/6c that each count as a separate parallel agent), or **8 agents** (skip Agent 7: Build & Test) for cross-repo lightweight mode since there is no local codebase to build/test. Each agent should focus exclusively on its dimension.
162
+ Launch review agents by invoking all `agent` tools in a **single response**. The runtime executes agent tools concurrently — they will run in parallel. You MUST include all tool calls in one response; do NOT send them one at a time. Launch **9 agents** for same-repo reviews (Agent 6 has three persona variants 6a/6b/6c that each count as a separate parallel agent), or **8 agents** (skip Agent 7: Build & Test) for cross-repo lightweight mode since there is no local codebase to build/test. Each agent should focus exclusively on its dimension.
163
+
164
+ **Every agent MUST be an awaitable subagent: set `subagent_type: "general-purpose"` on every `agent` call.** Do NOT fork them — do not omit `subagent_type`, and never set `subagent_type: "fork"`. A fork runs fire-and-forget and its findings never come back to you, so the review would stall in Step 5 with nothing to aggregate. You need every agent's findings returned to you inline.
163
165
 
164
166
  **IMPORTANT**: Keep each agent's prompt **short** (under 200 words) to fit all tool calls in one response. Do NOT paste the full diff — give each agent:
165
167
 
@@ -571,20 +573,24 @@ gh api repos/{owner}/{repo}/pulls/{pr_number}/reviews \
571
573
  --input .qwen/tmp/qwen-review-{target}-review.json
572
574
  ```
573
575
 
574
- If there are **no confirmed findings**, submit a single-line review. Use `event=APPROVE` by default; if the presubmit JSON has `downgradeApprove=true`, use `event=COMMENT` and prepend the downgrade reasons to the body:
576
+ If there are **no confirmed findings**, submit a short summary review. Use `event=APPROVE` by default; if the presubmit JSON has `downgradeApprove=true`, use `event=COMMENT` and prepend the downgrade reasons to the body. Separate the footer from the body with a blank line so it renders on its own line — `-f body` does not interpret `\n`, so use a real line break inside the quotes:
575
577
 
576
578
  ```bash
577
579
  # downgradeApprove=false (non-self PR, green CI):
578
580
  gh api repos/{owner}/{repo}/pulls/{pr_number}/reviews \
579
581
  -f commit_id="{commit_sha}" \
580
582
  -f event="APPROVE" \
581
- -f body="No issues found. LGTM! ✅ _— YOUR_MODEL_ID via Qwen Code /review_"
583
+ -f body="No issues found. LGTM! ✅
584
+
585
+ _— YOUR_MODEL_ID via Qwen Code /review_"
582
586
 
583
587
  # downgradeApprove=true (self-PR, CI failing, or CI still running):
584
588
  gh api repos/{owner}/{repo}/pulls/{pr_number}/reviews \
585
589
  -f commit_id="{commit_sha}" \
586
590
  -f event="COMMENT" \
587
- -f body="No review findings. Downgraded from Approve to Comment: <downgradeReasons joined with '; '>. _— YOUR_MODEL_ID via Qwen Code /review_"
591
+ -f body="No review findings. Downgraded from Approve to Comment: <downgradeReasons joined with '; '>.
592
+
593
+ _— YOUR_MODEL_ID via Qwen Code /review_"
588
594
  ```
589
595
 
590
596
  Clean up the JSON file in Step 11.
@@ -39,7 +39,7 @@ Use `git diff HEAD` whenever staged changes exist. Otherwise use `git diff`.
39
39
 
40
40
  ## Step 2: Launch three review passes in parallel
41
41
 
42
- Use the `agent` tool and launch all review passes in a single response so they run concurrently. Each pass must receive the same review scope and diff command. These passes are read-only: each one inspects and reports findings only and must not modify files — all edits happen later in Step 4.
42
+ Use the `agent` tool and launch all review passes in a single response so they run concurrently. **Set `subagent_type: "general-purpose"` on every call — each pass must be an awaitable subagent whose findings return to you inline. Do NOT fork them: do not omit `subagent_type`, and never set `subagent_type: "fork"`. A fork runs fire-and-forget and never returns its findings, so there would be nothing to aggregate in Step 3.** Each pass must receive the same review scope and diff command. These passes are read-only: each one inspects and reports findings only and must not modify files — all edits happen later in Step 4.
43
43
 
44
44
  Keep each review prompt short and focused. Do not paste the full diff into the prompt. Tell each pass to read the diff itself and inspect only files relevant to its findings.
45
45
 
@@ -7,9 +7,9 @@ import {
7
7
  hasRebuiltToolRegistry,
8
8
  rebuildToolRegistryOnOverride,
9
9
  resolveSubagentApprovalMode
10
- } from "./chunk-H4ZDM3N6.js";
10
+ } from "./chunk-UKLVRIWE.js";
11
11
  import "./chunk-K5PGHDBN.js";
12
- import "./chunk-VXHYMZXW.js";
12
+ import "./chunk-VIEIRAK3.js";
13
13
  import "./chunk-O4PICXES.js";
14
14
  import "./chunk-TW522KN6.js";
15
15
  import "./chunk-BJ5HQ23U.js";
@@ -23,14 +23,14 @@ import "./chunk-CPVI5J2L.js";
23
23
  import "./chunk-ZMIBJS45.js";
24
24
  import "./chunk-77WXWU44.js";
25
25
  import "./chunk-B4ZF2KSI.js";
26
- import "./chunk-A3OEZT2F.js";
26
+ import "./chunk-L6F7VZPZ.js";
27
27
  import "./chunk-3PJXIDKI.js";
28
28
  import "./chunk-UWCTAVOD.js";
29
29
  import "./chunk-OFEVLU4C.js";
30
30
  import "./chunk-IQHSD7K5.js";
31
31
  import "./chunk-LYRSMKLS.js";
32
- import "./chunk-26QELEL2.js";
33
- import "./chunk-6WPY6ES3.js";
32
+ import "./chunk-RTTAC5VW.js";
33
+ import "./chunk-ZNUMXPNK.js";
34
34
  import "./chunk-IDYDPBBN.js";
35
35
  import "./chunk-FIQECJTQ.js";
36
36
  import "./chunk-64WXLC72.js";
@@ -4,9 +4,9 @@ import {
4
4
  AgentHeadless,
5
5
  ContextState,
6
6
  templateString
7
- } from "./chunk-H4ZDM3N6.js";
7
+ } from "./chunk-UKLVRIWE.js";
8
8
  import "./chunk-K5PGHDBN.js";
9
- import "./chunk-VXHYMZXW.js";
9
+ import "./chunk-VIEIRAK3.js";
10
10
  import "./chunk-O4PICXES.js";
11
11
  import "./chunk-TW522KN6.js";
12
12
  import "./chunk-BJ5HQ23U.js";
@@ -20,14 +20,14 @@ import "./chunk-CPVI5J2L.js";
20
20
  import "./chunk-ZMIBJS45.js";
21
21
  import "./chunk-77WXWU44.js";
22
22
  import "./chunk-B4ZF2KSI.js";
23
- import "./chunk-A3OEZT2F.js";
23
+ import "./chunk-L6F7VZPZ.js";
24
24
  import "./chunk-3PJXIDKI.js";
25
25
  import "./chunk-UWCTAVOD.js";
26
26
  import "./chunk-OFEVLU4C.js";
27
27
  import "./chunk-IQHSD7K5.js";
28
28
  import "./chunk-LYRSMKLS.js";
29
- import "./chunk-26QELEL2.js";
30
- import "./chunk-6WPY6ES3.js";
29
+ import "./chunk-RTTAC5VW.js";
30
+ import "./chunk-ZNUMXPNK.js";
31
31
  import "./chunk-IDYDPBBN.js";
32
32
  import "./chunk-FIQECJTQ.js";
33
33
  import "./chunk-64WXLC72.js";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-KQIKOTQJ.js";
7
7
  import {
8
8
  RequestTokenizer
9
- } from "./chunk-3NRO6NHX.js";
9
+ } from "./chunk-MN5RAXVB.js";
10
10
  import {
11
11
  Blob,
12
12
  File,
@@ -9,7 +9,7 @@ import {
9
9
  BaseToolInvocation,
10
10
  ToolDisplayNames,
11
11
  ToolNames
12
- } from "./chunk-6WPY6ES3.js";
12
+ } from "./chunk-ZNUMXPNK.js";
13
13
  import {
14
14
  createDebugLogger
15
15
  } from "./chunk-HA2UEYZP.js";
@@ -6,7 +6,7 @@ import {
6
6
  getLanguageSettingsOptions,
7
7
  t,
8
8
  writeStderrLine
9
- } from "./chunk-UOB6KPGG.js";
9
+ } from "./chunk-R53CLQY7.js";
10
10
  import {
11
11
  DEFAULT_STOP_HOOK_BLOCK_CAP,
12
12
  DEFAULT_TOOL_OUTPUT_BATCH_BUDGET,
@@ -17,11 +17,11 @@ import {
17
17
  SkillError,
18
18
  ideContextStore,
19
19
  require_main
20
- } from "./chunk-H4ZDM3N6.js";
20
+ } from "./chunk-UKLVRIWE.js";
21
21
  import {
22
22
  isWithinRoot,
23
23
  stripRuntimeSnapshotPrefix
24
- } from "./chunk-A3OEZT2F.js";
24
+ } from "./chunk-L6F7VZPZ.js";
25
25
  import {
26
26
  atomicWriteFileSync
27
27
  } from "./chunk-LXYWINWF.js";
@@ -19966,7 +19966,7 @@ __name(getPackageJson, "getPackageJson");
19966
19966
  // packages/cli/src/utils/version.ts
19967
19967
  async function getCliVersion() {
19968
19968
  const pkgJson = await getPackageJson();
19969
- return "0.18.1-nightly.20260616.a68b2e1e7";
19969
+ return "0.18.1-preview.1";
19970
19970
  }
19971
19971
  __name(getCliVersion, "getCliVersion");
19972
19972
 
@@ -20108,6 +20108,10 @@ function createLoadedSettingsAdapter(settings, scope) {
20108
20108
  }
20109
20109
  __name(createLoadedSettingsAdapter, "createLoadedSettingsAdapter");
20110
20110
 
20111
+ // packages/acp-bridge/src/bridgeTypes.ts
20112
+ init_esbuild_shims();
20113
+ var MID_TURN_QUEUE_DRAIN_METHOD = "craft/drainMidTurnQueue";
20114
+
20111
20115
  // packages/cli/src/utils/systemInfo.ts
20112
20116
  init_esbuild_shims();
20113
20117
  import process4 from "node:process";
@@ -20116,7 +20120,7 @@ import { execFile } from "node:child_process";
20116
20120
 
20117
20121
  // packages/cli/src/generated/git-commit.ts
20118
20122
  init_esbuild_shims();
20119
- var GIT_COMMIT_INFO = "d1b122e3a";
20123
+ var GIT_COMMIT_INFO = "4d9e554b7";
20120
20124
 
20121
20125
  // packages/cli/src/utils/systemInfo.ts
20122
20126
  var debugLogger4 = createDebugLogger("STATUS");
@@ -20379,6 +20383,7 @@ export {
20379
20383
  ACP_PREFLIGHT_KINDS,
20380
20384
  createIdleAcpPreflightCells,
20381
20385
  mapDomainErrorToErrorKind,
20386
+ MID_TURN_QUEUE_DRAIN_METHOD,
20382
20387
  formatMemoryUsage,
20383
20388
  formatRelativeTime,
20384
20389
  formatTokenCount,
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  ToolNames
5
- } from "./chunk-6WPY6ES3.js";
5
+ } from "./chunk-ZNUMXPNK.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";
@@ -2,21 +2,21 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-UOB6KPGG.js";
5
+ } from "./chunk-R53CLQY7.js";
6
6
  import {
7
7
  computeThresholds,
8
8
  getCoreSystemPrompt
9
- } from "./chunk-H4ZDM3N6.js";
9
+ } from "./chunk-UKLVRIWE.js";
10
10
  import {
11
11
  buildSkillLlmContent
12
12
  } from "./chunk-CPVI5J2L.js";
13
13
  import {
14
14
  DiscoveredMCPTool,
15
15
  uiTelemetryService
16
- } from "./chunk-A3OEZT2F.js";
16
+ } from "./chunk-L6F7VZPZ.js";
17
17
  import {
18
18
  ToolNames
19
- } from "./chunk-6WPY6ES3.js";
19
+ } from "./chunk-ZNUMXPNK.js";
20
20
  import {
21
21
  DEFAULT_TOKEN_LIMIT
22
22
  } from "./chunk-LYSND7KR.js";
@@ -26,13 +26,13 @@ import {
26
26
  } from "./chunk-LYRSMKLS.js";
27
27
  import {
28
28
  STRUCTURED_OUTPUT_REDACTED_ARGS
29
- } from "./chunk-26QELEL2.js";
29
+ } from "./chunk-RTTAC5VW.js";
30
30
  import {
31
31
  BaseDeclarativeTool,
32
32
  BaseToolInvocation,
33
33
  ToolDisplayNames,
34
34
  ToolNames
35
- } from "./chunk-6WPY6ES3.js";
35
+ } from "./chunk-ZNUMXPNK.js";
36
36
  import {
37
37
  atomicWriteFile
38
38
  } from "./chunk-LXYWINWF.js";
@@ -72004,11 +72004,11 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
72004
72004
  let baseGenerator;
72005
72005
  try {
72006
72006
  if (authType === "openai" /* USE_OPENAI */) {
72007
- const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-DO27LL6O.js");
72007
+ const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-BPRGR5FJ.js");
72008
72008
  baseGenerator = createOpenAIContentGenerator(generatorConfig, config);
72009
72009
  } else if (authType === "qwen-oauth" /* QWEN_OAUTH */) {
72010
72010
  const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-KK433U33.js");
72011
- const { QwenContentGenerator } = await import("./qwenContentGenerator-DQLGLQSH.js");
72011
+ const { QwenContentGenerator } = await import("./qwenContentGenerator-ENMXX47B.js");
72012
72012
  try {
72013
72013
  const qwenClient = await getQwenOauthClient(
72014
72014
  config,
@@ -72026,10 +72026,10 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
72026
72026
  throw new Error(error instanceof Error ? error.message : String(error));
72027
72027
  }
72028
72028
  } else if (authType === "anthropic" /* USE_ANTHROPIC */) {
72029
- const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-DCI26OQF.js");
72029
+ const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-KLBHYGH6.js");
72030
72030
  baseGenerator = createAnthropicContentGenerator(generatorConfig, config);
72031
72031
  } else if (authType === "gemini" /* USE_GEMINI */ || authType === "vertex-ai" /* USE_VERTEX_AI */) {
72032
- const { createGeminiContentGenerator } = await import("./geminiContentGenerator-CAKHT5YE.js");
72032
+ const { createGeminiContentGenerator } = await import("./geminiContentGenerator-E2LZQIFZ.js");
72033
72033
  baseGenerator = createGeminiContentGenerator(generatorConfig, config);
72034
72034
  } else {
72035
72035
  throw new Error(
@@ -307,11 +307,11 @@ var ImageTokenizer = class _ImageTokenizer {
307
307
  if (entryOffset + 12 > buffer.length) break;
308
308
  const tag = isLittleEndian ? buffer.readUInt16LE(entryOffset) : buffer.readUInt16BE(entryOffset);
309
309
  const type = isLittleEndian ? buffer.readUInt16LE(entryOffset + 2) : buffer.readUInt16BE(entryOffset + 2);
310
- const value = isLittleEndian ? buffer.readUInt32LE(entryOffset + 8) : buffer.readUInt32BE(entryOffset + 8);
310
+ const value = type === 3 ? isLittleEndian ? buffer.readUInt16LE(entryOffset + 8) : buffer.readUInt16BE(entryOffset + 8) : isLittleEndian ? buffer.readUInt32LE(entryOffset + 8) : buffer.readUInt32BE(entryOffset + 8);
311
311
  if (tag === 256) {
312
- width = type === 3 ? value : value;
312
+ width = value;
313
313
  } else if (tag === 257) {
314
- height = type === 3 ? value : value;
314
+ height = value;
315
315
  }
316
316
  if (width > 0 && height > 0) break;
317
317
  }
@@ -2,12 +2,12 @@
2
2
  "use strict";
3
3
  import {
4
4
  RequestTokenizer
5
- } from "./chunk-3NRO6NHX.js";
5
+ } from "./chunk-MN5RAXVB.js";
6
6
  import {
7
7
  OpenAIContentConverter,
8
8
  TaggedThinkingParser,
9
9
  openaiRequestCaptureContext
10
- } from "./chunk-A3OEZT2F.js";
10
+ } from "./chunk-L6F7VZPZ.js";
11
11
  import {
12
12
  createChildAbortController
13
13
  } from "./chunk-64WXLC72.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  resolveBundleDir
5
- } from "./chunk-H4ZDM3N6.js";
5
+ } from "./chunk-UKLVRIWE.js";
6
6
  import {
7
7
  Storage
8
8
  } from "./chunk-HA2UEYZP.js";
@@ -5,7 +5,7 @@ import {
5
5
  BaseToolInvocation,
6
6
  ToolDisplayNames,
7
7
  ToolNames
8
- } from "./chunk-6WPY6ES3.js";
8
+ } from "./chunk-ZNUMXPNK.js";
9
9
  import {
10
10
  init_esbuild_shims
11
11
  } from "./chunk-A4BMJM77.js";