@jingyi0605/codingns4dsh 0.2.2-beta.2 → 0.2.2-beta.3

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 (76) hide show
  1. package/README.en.md +4 -4
  2. package/README.md +4 -4
  3. package/THIRD_PARTY_NOTICES +179 -0
  4. package/data/build/dist/client/bundle.js +14 -27
  5. package/data/build/dist/client/bundle.js.map +1 -1
  6. package/data/build/dist/client/features/magpie-management-page.d.ts.map +1 -1
  7. package/data/build/dist/client/features/magpie-management-page.js +6 -2
  8. package/data/build/dist/client/features/magpie-management-page.js.map +1 -1
  9. package/data/build/dist/client/subscription-slot.js +6 -6
  10. package/data/build/dist/client/subscription-slot.js.map +1 -1
  11. package/data/build/dist/dsh-capabilities/client/session-performance-adapter.d.ts.map +1 -1
  12. package/data/build/dist/dsh-capabilities/client/session-performance-adapter.js +4 -12
  13. package/data/build/dist/dsh-capabilities/client/session-performance-adapter.js.map +1 -1
  14. package/data/build/dist/host/cli-adapters/claude-driver.d.ts +5 -0
  15. package/data/build/dist/host/cli-adapters/claude-driver.d.ts.map +1 -1
  16. package/data/build/dist/host/cli-adapters/claude-driver.js +28 -1
  17. package/data/build/dist/host/cli-adapters/claude-driver.js.map +1 -1
  18. package/data/build/dist/host/cli-adapters/claude-performance-projection.d.ts +90 -0
  19. package/data/build/dist/host/cli-adapters/claude-performance-projection.d.ts.map +1 -0
  20. package/data/build/dist/host/cli-adapters/claude-performance-projection.js +7 -0
  21. package/data/build/dist/host/cli-adapters/claude-performance-projection.js.map +1 -0
  22. package/data/build/dist/host/cli-adapters/claude-performance.d.ts +11 -0
  23. package/data/build/dist/host/cli-adapters/claude-performance.d.ts.map +1 -0
  24. package/data/build/dist/host/cli-adapters/claude-performance.js +66 -0
  25. package/data/build/dist/host/cli-adapters/claude-performance.js.map +1 -0
  26. package/data/build/dist/host/cli-adapters/codebuddy-driver.d.ts +2 -2
  27. package/data/build/dist/host/cli-adapters/codebuddy-driver.d.ts.map +1 -1
  28. package/data/build/dist/host/cli-adapters/codebuddy-driver.js +53 -5
  29. package/data/build/dist/host/cli-adapters/codebuddy-driver.js.map +1 -1
  30. package/data/build/dist/host/cli-adapters/dsh-message-projector.d.ts.map +1 -1
  31. package/data/build/dist/host/cli-adapters/dsh-message-projector.js +11 -2
  32. package/data/build/dist/host/cli-adapters/dsh-message-projector.js.map +1 -1
  33. package/data/build/dist/host/cli-adapters/dsh-tool-history.d.ts +3 -2
  34. package/data/build/dist/host/cli-adapters/dsh-tool-history.d.ts.map +1 -1
  35. package/data/build/dist/host/cli-adapters/dsh-tool-history.js +5 -1
  36. package/data/build/dist/host/cli-adapters/dsh-tool-history.js.map +1 -1
  37. package/data/build/dist/host/cli-adapters/feature.d.ts.map +1 -1
  38. package/data/build/dist/host/cli-adapters/feature.js +5 -2
  39. package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
  40. package/data/build/dist/host/cli-adapters/grok-performance-projection.js +1 -1
  41. package/data/build/dist/host/cli-adapters/grok-performance-projection.js.map +1 -1
  42. package/data/build/dist/host/cli-adapters/json-rpc-process.d.ts +2 -0
  43. package/data/build/dist/host/cli-adapters/json-rpc-process.d.ts.map +1 -1
  44. package/data/build/dist/host/cli-adapters/json-rpc-process.js +1 -1
  45. package/data/build/dist/host/cli-adapters/json-rpc-process.js.map +1 -1
  46. package/data/build/dist/host/cli-adapters/magpie-usage.d.ts.map +1 -1
  47. package/data/build/dist/host/cli-adapters/magpie-usage.js +24 -2
  48. package/data/build/dist/host/cli-adapters/magpie-usage.js.map +1 -1
  49. package/data/build/dist/host/cli-adapters/registry.d.ts.map +1 -1
  50. package/data/build/dist/host/cli-adapters/registry.js +10 -0
  51. package/data/build/dist/host/cli-adapters/registry.js.map +1 -1
  52. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts +3 -0
  53. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts.map +1 -1
  54. package/data/build/dist/host/cli-adapters/standard-stream-driver.js +11 -1
  55. package/data/build/dist/host/cli-adapters/standard-stream-driver.js.map +1 -1
  56. package/data/build/dist/host/cli-adapters/workbuddy-credential-bootstrap.d.ts +2 -0
  57. package/data/build/dist/host/cli-adapters/workbuddy-credential-bootstrap.d.ts.map +1 -0
  58. package/data/build/dist/host/cli-adapters/workbuddy-credential-bootstrap.js +212 -0
  59. package/data/build/dist/host/cli-adapters/workbuddy-credential-bootstrap.js.map +1 -0
  60. package/data/build/dist/host/native-session-bridge.d.ts +1 -0
  61. package/data/build/dist/host/native-session-bridge.d.ts.map +1 -1
  62. package/data/build/dist/host/native-session-bridge.js +4 -1
  63. package/data/build/dist/host/native-session-bridge.js.map +1 -1
  64. package/data/build/dist/shared/contracts/cli-adapter.d.ts +2 -0
  65. package/data/build/dist/shared/contracts/cli-adapter.d.ts.map +1 -1
  66. package/data/build/dist/shared/contracts/version.d.ts +1 -1
  67. package/data/build/dist/shared/contracts/version.js +1 -1
  68. package/data/build/dist/shared/request-performance.d.ts +3 -0
  69. package/data/build/dist/shared/request-performance.d.ts.map +1 -1
  70. package/data/build/dist/shared/request-performance.js +1 -0
  71. package/data/build/dist/shared/request-performance.js.map +1 -1
  72. package/package.json +1 -1
  73. package/profile/README.md +2 -2
  74. package/profile/package.json +2 -2
  75. package/profile/version.json +1 -1
  76. package/version.json +1 -1
package/README.en.md CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
  [简体中文](README.md) · **English**
13
13
 
14
- **Current release `@jingyi0605/codingns4dsh@0.2.2-beta.2`** · DSH minimum **`0.2.1-alpha.2`** (tested with `0.2.2-rc.1`; newer versions warn but do not block installation or operation) · Node **`>= 24.9`** · macOS / Linux / Windows
14
+ **Current release `@jingyi0605/codingns4dsh@0.2.2-beta.3`** · DSH minimum **`0.2.1-alpha.2`** (tested with `0.2.2-rc.1`; newer versions warn but do not block installation or operation) · Node **`>= 24.9`** · macOS / Linux / Windows
15
15
 
16
16
  **[GitHub](https://github.com/jingyi0605/Codingns4DSH)** · **[npm](https://www.npmjs.com/package/@jingyi0605/codingns4dsh)** · **QQ group 1092985965** · **[WeChat / QQ QR codes](#community)**
17
17
 
@@ -83,7 +83,7 @@ The table highlights selected capabilities; availability depends on the Agent an
83
83
  | **MiniMax Code** | Approvals, questions, usage | Default integration supports interaction; explicit-effort execution does not return interactive responses.<br>Upstream contributor: [chenjunyi000](https://github.com/chenjunyi000)<br>PRs [#6](https://github.com/jingyi0605/Codingns4DSH/pull/6), [#7](https://github.com/jingyi0605/Codingns4DSH/pull/7) |
84
84
  | **ZCode** | Model selection, session resume, usage | Uses the CLI or the desktop app's bundled runtime.<br>Upstream contributor: [chenjunyi000](https://github.com/chenjunyi000)<br>PRs [#6](https://github.com/jingyi0605/Codingns4DSH/pull/6), [#7](https://github.com/jingyi0605/Codingns4DSH/pull/7) |
85
85
  | **CodeBuddy** | Approvals, questions, usage | Automatically detects CN/international editions.<br>CodexHost contributor: [mouzhi](https://github.com/mouzhi)<br>Initial integration: [f30b000](https://github.com/BytePioneer-AI/codex-host/commit/f30b000f88950c40844b071eec2f6f385c6bcb49) |
86
- | **WorkBuddy** | Approvals, questions, thinking controls | Uses the WorkBuddy desktop app's bundled runtime.<br>CodexHost contributor: [BytePioneer-AI (ChongWen)](https://github.com/BytePioneer-AI)<br>Initial integration: [6e9f365](https://github.com/BytePioneer-AI/codex-host/commit/6e9f365e2bf8ac61716f8250475530ae790f2d2f) |
86
+ | **WorkBuddy** | Approvals, questions, thinking controls | Starts the bundled CLI directly after WorkBuddy installation and login; no open desktop window or prior chat message is needed.<br>CodexHost contributor: [BytePioneer-AI (ChongWen)](https://github.com/BytePioneer-AI)<br>Initial integration: [6e9f365](https://github.com/BytePioneer-AI/codex-host/commit/6e9f365e2bf8ac61716f8250475530ae790f2d2f) |
87
87
  | **Cursor CLI** | Approvals, questions, thinking controls | CodexHost contributor: [mouzhi](https://github.com/mouzhi)<br>Initial integration: [ad6ba8e](https://github.com/BytePioneer-AI/codex-host/commit/ad6ba8e04d294c473d2dcad99880496ff39c1f7e) |
88
88
  | **Kiro CLI** | Approvals, questions, thinking controls | CodexHost contributor: [gy212](https://github.com/gy212)<br>Initial integration: [79675cd](https://github.com/BytePioneer-AI/codex-host/commit/79675cdbfdc042eb37a849c3eb1539e9efc40a0d) |
89
89
  | **Qoder** | Approvals, questions, thinking controls | CodexHost contributors: [gy212](https://github.com/gy212), [BytePioneer-AI (ChongWen)](https://github.com/BytePioneer-AI)<br>PR #289 merge: [8926130](https://github.com/BytePioneer-AI/codex-host/commit/8926130af1426a467747b66d8d2dbf68f7764a7b) |
@@ -225,7 +225,7 @@ The account menu shows login status, access method, connection latency and Host
225
225
  ### Use the Built-in Web Profile
226
226
 
227
227
  ```bash
228
- dsh plugin --profile web add @jingyi0605/codingns4dsh@0.2.2-beta.2
228
+ dsh plugin --profile web add @jingyi0605/codingns4dsh@0.2.2-beta.3
229
229
  dsh web
230
230
  ```
231
231
 
@@ -235,7 +235,7 @@ Create a separate environment from the built-in Web profile:
235
235
 
236
236
  ```bash
237
237
  dsh codingns --from-default-profile web --dump-config
238
- dsh plugin --profile codingns add @jingyi0605/codingns4dsh@0.2.2-beta.2
238
+ dsh plugin --profile codingns add @jingyi0605/codingns4dsh@0.2.2-beta.3
239
239
  dsh codingns
240
240
  ```
241
241
 
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
  **简体中文** · [English](README.en.md)
13
13
 
14
- **当前版本 `@jingyi0605/codingns4dsh@0.2.2-beta.2`** · DSH 最低版本 **`0.2.1-alpha.2`**(已验证 `0.2.2-rc.1`;更新版本仅告警,不阻止安装或运行)· Node **`>= 24.9`** · macOS / Linux / Windows
14
+ **当前版本 `@jingyi0605/codingns4dsh@0.2.2-beta.3`** · DSH 最低版本 **`0.2.1-alpha.2`**(已验证 `0.2.2-rc.1`;更新版本仅告警,不阻止安装或运行)· Node **`>= 24.9`** · macOS / Linux / Windows
15
15
 
16
16
  **[GitHub](https://github.com/jingyi0605/Codingns4DSH)** · **[npm](https://www.npmjs.com/package/@jingyi0605/codingns4dsh)** · **QQ 群 1092985965** · **[微信群 / QQ 群二维码](#交流群)**
17
17
 
@@ -85,7 +85,7 @@ Agent、终端和项目文件在运行 DSH 的电脑(Host)上处理;浏览
85
85
  | **MiniMax Code** | 权限确认、提问、用量 | 默认接入支持交互;显式思考档位的执行模式不支持交互回传。<br>上游贡献者:[chenjunyi000](https://github.com/chenjunyi000)<br>提交 PR [#6](https://github.com/jingyi0605/Codingns4DSH/pull/6)、[#7](https://github.com/jingyi0605/Codingns4DSH/pull/7) |
86
86
  | **ZCode** | 模型选择、会话续接、用量 | 支持 CLI 或桌面应用内置运行时。<br>上游贡献者:[chenjunyi000](https://github.com/chenjunyi000)<br>提交 PR [#6](https://github.com/jingyi0605/Codingns4DSH/pull/6)、[#7](https://github.com/jingyi0605/Codingns4DSH/pull/7) |
87
87
  | **CodeBuddy** | 权限确认、提问、用量 | 自动识别国内/国际版。<br>CodexHost 上游贡献者:[mouzhi](https://github.com/mouzhi)<br>首次适配 [f30b000](https://github.com/BytePioneer-AI/codex-host/commit/f30b000f88950c40844b071eec2f6f385c6bcb49) |
88
- | **WorkBuddy** | 权限确认、提问、思考强度 | 使用 WorkBuddy 桌面应用内置运行时。<br>CodexHost 上游贡献者:[BytePioneer-AI(ChongWen)](https://github.com/BytePioneer-AI)<br>首次适配 [6e9f365](https://github.com/BytePioneer-AI/codex-host/commit/6e9f365e2bf8ac61716f8250475530ae790f2d2f) |
88
+ | **WorkBuddy** | 权限确认、提问、思考强度 | 安装并登录 WorkBuddy 后,直接启动内置 CLI;无需打开桌面窗口或先发送消息。<br>CodexHost 上游贡献者:[BytePioneer-AI(ChongWen)](https://github.com/BytePioneer-AI)<br>首次适配 [6e9f365](https://github.com/BytePioneer-AI/codex-host/commit/6e9f365e2bf8ac61716f8250475530ae790f2d2f) |
89
89
  | **Cursor CLI** | 权限确认、提问、思考强度 | CodexHost 上游贡献者:[mouzhi](https://github.com/mouzhi)<br>首次适配 [ad6ba8e](https://github.com/BytePioneer-AI/codex-host/commit/ad6ba8e04d294c473d2dcad99880496ff39c1f7e) |
90
90
  | **Kiro CLI** | 权限确认、提问、思考强度 | CodexHost 上游贡献者:[gy212](https://github.com/gy212)<br>首次适配 [79675cd](https://github.com/BytePioneer-AI/codex-host/commit/79675cdbfdc042eb37a849c3eb1539e9efc40a0d) |
91
91
  | **Qoder** | 权限确认、提问、思考强度 | CodexHost 上游贡献者:[gy212](https://github.com/gy212)、[BytePioneer-AI(ChongWen)](https://github.com/BytePioneer-AI)<br>PR #289 合并 [8926130](https://github.com/BytePioneer-AI/codex-host/commit/8926130af1426a467747b66d8d2dbf68f7764a7b) |
@@ -244,7 +244,7 @@ DSH 原生会话的翻译默认关闭,可在会话模型选择菜单中开启
244
244
  ### 使用内置 Web 配置
245
245
 
246
246
  ```bash
247
- dsh plugin --profile web add @jingyi0605/codingns4dsh@0.2.2-beta.2
247
+ dsh plugin --profile web add @jingyi0605/codingns4dsh@0.2.2-beta.3
248
248
  dsh web
249
249
  ```
250
250
 
@@ -254,7 +254,7 @@ dsh web
254
254
 
255
255
  ```bash
256
256
  dsh codingns --from-default-profile web --dump-config
257
- dsh plugin --profile codingns add @jingyi0605/codingns4dsh@0.2.2-beta.2
257
+ dsh plugin --profile codingns add @jingyi0605/codingns4dsh@0.2.2-beta.3
258
258
  dsh codingns
259
259
  ```
260
260
 
@@ -144,3 +144,182 @@ R4 Coder 品牌图标(2026-10-09)
144
144
 
145
145
  assets/provider-icons/r4.svg 来源:https://r4.codes/favicon.svg
146
146
  用于标识用量所属服务,品牌与图标权利归 R4 Coder 所有。
147
+
148
+ WorkBuddy 原生 CLI 认证初始化与启动适配(2026-11-05)
149
+
150
+ 来源:https://github.com/BytePioneer-AI/codex-host
151
+ 版本:78106589d07d3ad7af1079e3252afa30c2062477
152
+ 上游文件:packages/adapters/workbuddy/src/credential-bootstrap.ts、command.ts
153
+ 上游许可:GNU Lesser General Public License, Version 3(LGPL-3.0)。
154
+
155
+ src/host/cli-adapters/workbuddy-credential-bootstrap.ts 与 codebuddy-driver.ts
156
+ 中的 WorkBuddy 直连启动逻辑参考并改造上述实现:改为 TypeScript 初始化函数,
157
+ 保留本项目的配置根,优先使用 WorkBuddy 专属 lite bundle,并补充连接、定时器、
158
+ 取消和退出清理。密钥仅在用户已安装的原生运行时内初始化,不随插件分发。
159
+ 本项目 GNU GPL v3 许可原文见 LICENSE;上游 LGPL v3 许可原文如下:
160
+
161
+ GNU LESSER GENERAL PUBLIC LICENSE
162
+ Version 3, 29 June 2007
163
+
164
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
165
+ Everyone is permitted to copy and distribute verbatim copies
166
+ of this license document, but changing it is not allowed.
167
+
168
+
169
+ This version of the GNU Lesser General Public License incorporates
170
+ the terms and conditions of version 3 of the GNU General Public
171
+ License, supplemented by the additional permissions listed below.
172
+
173
+ 0. Additional Definitions.
174
+
175
+ As used herein, "this License" refers to version 3 of the GNU Lesser
176
+ General Public License, and the "GNU GPL" refers to version 3 of the GNU
177
+ General Public License.
178
+
179
+ "The Library" refers to a covered work governed by this License,
180
+ other than an Application or a Combined Work as defined below.
181
+
182
+ An "Application" is any work that makes use of an interface provided
183
+ by the Library, but which is not otherwise based on the Library.
184
+ Defining a subclass of a class defined by the Library is deemed a mode
185
+ of using an interface provided by the Library.
186
+
187
+ A "Combined Work" is a work produced by combining or linking an
188
+ Application with the Library. The particular version of the Library
189
+ with which the Combined Work was made is also called the "Linked
190
+ Version".
191
+
192
+ The "Minimal Corresponding Source" for a Combined Work means the
193
+ Corresponding Source for the Combined Work, excluding any source code
194
+ for portions of the Combined Work that, considered in isolation, are
195
+ based on the Application, and not on the Linked Version.
196
+
197
+ The "Corresponding Application Code" for a Combined Work means the
198
+ object code and/or source code for the Application, including any data
199
+ and utility programs needed for reproducing the Combined Work from the
200
+ Application, but excluding the System Libraries of the Combined Work.
201
+
202
+ 1. Exception to Section 3 of the GNU GPL.
203
+
204
+ You may convey a covered work under sections 3 and 4 of this License
205
+ without being bound by section 3 of the GNU GPL.
206
+
207
+ 2. Conveying Modified Versions.
208
+
209
+ If you modify a copy of the Library, and, in your modifications, a
210
+ facility refers to a function or data to be supplied by an Application
211
+ that uses the facility (other than as an argument passed when the
212
+ facility is invoked), then you may convey a copy of the modified
213
+ version:
214
+
215
+ a) under this License, provided that you make a good faith effort to
216
+ ensure that, in the event an Application does not supply the
217
+ function or data, the facility still operates, and performs
218
+ whatever part of its purpose remains meaningful, or
219
+
220
+ b) under the GNU GPL, with none of the additional permissions of
221
+ this License applicable to that copy.
222
+
223
+ 3. Object Code Incorporating Material from Library Header Files.
224
+
225
+ The object code form of an Application may incorporate material from
226
+ a header file that is part of the Library. You may convey such object
227
+ code under terms of your choice, provided that, if the incorporated
228
+ material is not limited to numerical parameters, data structure
229
+ layouts and accessors, or small macros, inline functions and templates
230
+ (ten or fewer lines in length), you do both of the following:
231
+
232
+ a) Give prominent notice with each copy of the object code that the
233
+ Library is used in it and that the Library and its use are
234
+ covered by this License.
235
+
236
+ b) Accompany the object code with a copy of the GNU GPL and this license
237
+ document.
238
+
239
+ 4. Combined Works.
240
+
241
+ You may convey a Combined Work under terms of your choice that,
242
+ taken together, effectively do not restrict modification of the
243
+ portions of the Library contained in the Combined Work and reverse
244
+ engineering for debugging such modifications, if you also do each of
245
+ the following:
246
+
247
+ a) Give prominent notice with each copy of the Combined Work that
248
+ the Library is used in it and that the Library and its use are
249
+ covered by this License.
250
+
251
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
252
+ document.
253
+
254
+ c) For a Combined Work that displays copyright notices during
255
+ execution, include the copyright notice for the Library among
256
+ these notices, as well as a reference directing the user to the
257
+ copies of the GNU GPL and this license document.
258
+
259
+ d) Do one of the following:
260
+
261
+ 0) Convey the Minimal Corresponding Source under the terms of this
262
+ License, and the Corresponding Application Code in a form
263
+ suitable for, and under terms that permit, the user to
264
+ recombine or relink the Application with a modified version of
265
+ the Linked Version to produce a modified Combined Work, in the
266
+ manner specified by section 6 of the GNU GPL for conveying
267
+ Corresponding Source.
268
+
269
+ 1) Use a suitable shared library mechanism for linking with the
270
+ Library. A suitable mechanism is one that (a) uses at run time
271
+ a copy of the Library already present on the user's computer
272
+ system, and (b) will operate properly with a modified version
273
+ of the Library that is interface-compatible with the Linked
274
+ Version.
275
+
276
+ e) Provide Installation Information, but only if you would otherwise
277
+ be required to provide such information under section 6 of the
278
+ GNU GPL, and only to the extent that such information is
279
+ necessary to install and execute a modified version of the
280
+ Combined Work produced by recombining or relinking the
281
+ Application with a modified version of the Linked Version. (If
282
+ you use option 4d0, the Installation Information must accompany
283
+ the Minimal Corresponding Source and Corresponding Application
284
+ Code. If you use option 4d1, you must provide the Installation
285
+ Information in the manner specified by section 6 of the GNU GPL
286
+ for conveying Corresponding Source.)
287
+
288
+ 5. Combined Libraries.
289
+
290
+ You may place library facilities that are a work based on the
291
+ Library side by side in a single library together with other library
292
+ facilities that are not Applications and are not covered by this
293
+ License, and convey such a combined library under terms of your
294
+ choice, if you do both of the following:
295
+
296
+ a) Accompany the combined library with a copy of the same work based
297
+ on the Library, uncombined with any other library facilities,
298
+ conveyed under the terms of this License.
299
+
300
+ b) Give prominent notice with the combined library that part of it
301
+ is a work based on the Library, and explaining where to find the
302
+ accompanying uncombined form of the same work.
303
+
304
+ 6. Revised Versions of the GNU Lesser General Public License.
305
+
306
+ The Free Software Foundation may publish revised and/or new versions
307
+ of the GNU Lesser General Public License from time to time. Such new
308
+ versions will be similar in spirit to the present version, but may
309
+ differ in detail to address new problems or concerns.
310
+
311
+ Each version is given a distinguishing version number. If the
312
+ Library as you received it specifies that a certain numbered version
313
+ of the GNU Lesser General Public License "or any later version"
314
+ applies to it, you have the option of following the terms and
315
+ conditions either of that published version or of any later version
316
+ published by the Free Software Foundation. If the Library as you
317
+ received it does not specify a version number of the GNU Lesser
318
+ General Public License, you may choose any version of the GNU Lesser
319
+ General Public License ever published by the Free Software Foundation.
320
+
321
+ If the Library as you received it specifies that a proxy can decide
322
+ whether future versions of the GNU Lesser General Public License shall
323
+ apply, that proxy's public statement of acceptance of any version is
324
+ permanent authorization for you to choose that version for the
325
+ Library.
@@ -5704,7 +5704,7 @@ window.__ModuleLoader__.load({
5704
5704
  return /^0\.1\.5(?:-|$)/u.test(version);
5705
5705
  }
5706
5706
  /** Codingns4DSH 插件自身的 npm 版本。 */
5707
- const CODINGNS_VERSION = "0.2.2-beta.2";
5707
+ const CODINGNS_VERSION = "0.2.2-beta.3";
5708
5708
  /** Accept any valid host version at or above the supported minimum. */
5709
5709
  function isDshVersionCompatible(version) {
5710
5710
  return isDshVersionAtLeast(version, minimumSupportedDshVersion());
@@ -21856,6 +21856,7 @@ window.__ModuleLoader__.load({
21856
21856
  // src/shared/codex-performance.ts
21857
21857
  const CODEX_PERFORMANCE_PROJECTION = "codingnsCodexStats";
21858
21858
  // src/shared/request-performance.ts
21859
+ const CLAUDE_PERFORMANCE_PROJECTION = "codingnsClaudeStats";
21859
21860
  const GROK_PERFORMANCE_PROJECTION = "codingnsGrokStats";
21860
21861
  const GROK_CONTEXT_PROJECTION = "codingnsGrokContext";
21861
21862
  // src/dsh-capabilities/client/composer-slot-selectors.ts
@@ -21945,19 +21946,6 @@ window.__ModuleLoader__.load({
21945
21946
  "subscribe"
21946
21947
  ].every((key) => typeof slots[key] === "function");
21947
21948
  }
21948
- function hasProviderTiming(adapter) {
21949
- return adapter === "codex" || adapter === "grok";
21950
- }
21951
- /** Native DSH timing for translated Claude messages measures delivery, not model decoding. */
21952
- function withoutUnverifiedProviderTiming(stats) {
21953
- return {
21954
- ...stats,
21955
- ttftMs: 0,
21956
- ttftSteps: 0,
21957
- decodeTokens: 0,
21958
- decodeMs: 0
21959
- };
21960
- }
21961
21949
  /** Reuse the native activity pill, dialog, localization, settings, and session binding. */
21962
21950
  function createSessionPerformancePresentation(context) {
21963
21951
  const slots = context.slots;
@@ -21972,9 +21960,8 @@ window.__ModuleLoader__.load({
21972
21960
  useProjection: (key, ...args) => {
21973
21961
  const original = props.useProjection(key, ...args);
21974
21962
  if (key !== "sessionStats") return original;
21975
- const value = props.useProjection(adapter === "grok" ? GROK_PERFORMANCE_PROJECTION : CODEX_PERFORMANCE_PROJECTION, ...args);
21976
- if (adapter === "claude-code") return withoutUnverifiedProviderTiming(original);
21977
- if (!hasProviderTiming(adapter)) return original;
21963
+ const value = props.useProjection(adapter === "grok" ? GROK_PERFORMANCE_PROJECTION : adapter === "claude-code" ? CLAUDE_PERFORMANCE_PROJECTION : CODEX_PERFORMANCE_PROJECTION, ...args);
21964
+ if (adapter !== "codex" && adapter !== "grok" && adapter !== "claude-code") return original;
21978
21965
  return value ?? {
21979
21966
  turns: 0,
21980
21967
  steps: 0,
@@ -28734,7 +28721,7 @@ window.__ModuleLoader__.load({
28734
28721
  key: window.name,
28735
28722
  className: "codingns-magpie-quota-window"
28736
28723
  }, (0, react.createElement)("div", { className: "codingns-magpie-quota-window-head" }, (0, react.createElement)("strong", void 0, window.name), (0, react.createElement)("span", void 0, headline)), (0, react.createElement)("div", { className: "codingns-magpie-track quota-track" }, used === null || remaining === null ? null : (0, react.createElement)("span", { style: { width: `${Math.max(0, Math.min(100, barPercent ?? 0))}%` } })), (0, react.createElement)("div", { className: "codingns-magpie-quota-foot" }, (0, react.createElement)("span", void 0, window.amount !== null && window.limit !== null ? `${formatValue(window.amount)} / ${formatValue(window.limit)} ${window.unit ?? ""}` : window.display ?? ""), window.resetsAt !== null && (0, react.createElement)("span", void 0, t("magpie.resets", { time: formatTimestamp(window.resetsAt) }))));
28737
- }), balance !== null && percentWindows.length === 0 && quota.windows.some((window) => window.resetsAt !== null) && (0, react.createElement)("div", { className: "codingns-magpie-quota-foot" }, ...quota.windows.filter((window) => window.resetsAt !== null).map((window) => (0, react.createElement)("span", { key: window.name }, t("magpie.resets", { time: formatTimestamp(window.resetsAt) })))), quota.daily.days.length > 1 && (0, react.createElement)("div", { className: "codingns-magpie-daily-chart" }, (0, react.createElement)(Sparkline, { values: dailyValues }), (0, react.createElement)("small", void 0, t("magpie.dailyUsage"))));
28724
+ }), balance !== null && percentWindows.length === 0 && quota.windows.some((window) => window.display !== null || window.resetsAt !== null) && (0, react.createElement)("div", { className: "codingns-magpie-quota-foot" }, ...quota.windows.flatMap((window) => [window.display !== null && window.amount === null && window.limit === null && (0, react.createElement)("span", { key: `${window.name}:display` }, window.display), window.resetsAt !== null && (0, react.createElement)("span", { key: `${window.name}:resets` }, t("magpie.resets", { time: formatTimestamp(window.resetsAt) }))])), quota.daily.days.length > 1 && (0, react.createElement)("div", { className: "codingns-magpie-daily-chart" }, (0, react.createElement)(Sparkline, { values: dailyValues }), (0, react.createElement)("small", void 0, t("magpie.dailyUsage"))));
28738
28725
  }
28739
28726
  function MagpieQuotaControls({ quota, t, policyPending, policyFailed, onPolicyChange, onResetRequest }) {
28740
28727
  const user = quota.user;
@@ -32427,10 +32414,10 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
32427
32414
  [t("usage.magpieErrors"), formatMagpieNumber(usage.aggregate.errors)],
32428
32415
  [t("usage.magpieInputTokens"), formatMagpieTokenCount(usage.aggregate.inputTokens)],
32429
32416
  [t("usage.magpieOutputTokens"), formatMagpieTokenCount(usage.aggregate.outputTokens)],
32430
- [t("usage.magpieCacheReadTokens"), formatMagpieTokenCount(usage.aggregate.cacheReadTokens)],
32431
- [t("usage.magpieCacheWriteTokens"), formatMagpieTokenCount(usage.aggregate.cacheWriteTokens)],
32417
+ [t("usage.magpieCacheReadTokens"), formatMagpieTokenCount(usage.aggregate.cacheReadTokens) ?? t("usage.upstreamNotProvided")],
32418
+ [t("usage.magpieCacheWriteTokens"), formatMagpieTokenCount(usage.aggregate.cacheWriteTokens) ?? t("usage.upstreamNotProvided")],
32432
32419
  [t("usage.magpieTotalTokens"), formatMagpieTokenCount(sumKnownCounts(usage.aggregate.inputTokens, usage.aggregate.outputTokens))],
32433
- [t("usage.magpieCacheHitRate"), formatMagpieCacheHitRate(usage.aggregate.inputTokens, usage.aggregate.cacheReadTokens)],
32420
+ [t("usage.magpieCacheHitRate"), formatMagpieCacheHitRate(usage.aggregate.inputTokens, usage.aggregate.cacheReadTokens) ?? t("usage.upstreamNotProvided")],
32434
32421
  [t("usage.magpieCost"), formatMagpieCost(usage.aggregate.costUsd)]
32435
32422
  ];
32436
32423
  const sessionRows = usage.session === null ? [] : [
@@ -32438,10 +32425,10 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
32438
32425
  [t("usage.magpieErrors"), formatMagpieNumber(usage.session.errors)],
32439
32426
  [t("usage.magpieInputTokens"), formatMagpieTokenCount(usage.session.inputTokens)],
32440
32427
  [t("usage.magpieOutputTokens"), formatMagpieTokenCount(usage.session.outputTokens)],
32441
- [t("usage.magpieCacheReadTokens"), formatMagpieTokenCount(usage.session.cacheReadTokens)],
32442
- [t("usage.magpieCacheWriteTokens"), formatMagpieTokenCount(usage.session.cacheWriteTokens)],
32428
+ [t("usage.magpieCacheReadTokens"), formatMagpieTokenCount(usage.session.cacheReadTokens) ?? t("usage.upstreamNotProvided")],
32429
+ [t("usage.magpieCacheWriteTokens"), formatMagpieTokenCount(usage.session.cacheWriteTokens) ?? t("usage.upstreamNotProvided")],
32443
32430
  [t("usage.magpieTotalTokens"), formatMagpieTokenCount(sumKnownCounts(usage.session.inputTokens, usage.session.outputTokens))],
32444
- [t("usage.magpieCacheHitRate"), formatMagpieCacheHitRate(usage.session.inputTokens, usage.session.cacheReadTokens)],
32431
+ [t("usage.magpieCacheHitRate"), formatMagpieCacheHitRate(usage.session.inputTokens, usage.session.cacheReadTokens) ?? t("usage.upstreamNotProvided")],
32445
32432
  [t("usage.magpieCost"), formatMagpieCost(usage.session.costUsd)]
32446
32433
  ];
32447
32434
  const quotas = usage.quotas ?? [];
@@ -67411,7 +67398,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
67411
67398
  return (0, react.createElement)("aside", {
67412
67399
  className: settingsPromoClass.root,
67413
67400
  "aria-label": t("settings.promo.sectionLabel")
67414
- }, (0, react.createElement)("div", { className: settingsPromoClass.row }, (0, react.createElement)("div", { className: settingsPromoClass.brand }, (0, react.createElement)("div", { className: settingsPromoClass.headline }, (0, react.createElement)(StarBurstIcon, { className: settingsPromoClass.logo }), (0, react.createElement)("h3", { className: settingsPromoClass.title }, t("common.brand"))), versionControl ?? (0, react.createElement)("span", { className: settingsPromoClass.version }, t("settings.promo.version", { version: "0.2.2-beta.2" }))), (0, react.createElement)("p", { className: settingsPromoClass.text }, t("settings.promo.starHint"), (0, react.createElement)("span", {
67401
+ }, (0, react.createElement)("div", { className: settingsPromoClass.row }, (0, react.createElement)("div", { className: settingsPromoClass.brand }, (0, react.createElement)("div", { className: settingsPromoClass.headline }, (0, react.createElement)(StarBurstIcon, { className: settingsPromoClass.logo }), (0, react.createElement)("h3", { className: settingsPromoClass.title }, t("common.brand"))), versionControl ?? (0, react.createElement)("span", { className: settingsPromoClass.version }, t("settings.promo.version", { version: "0.2.2-beta.3" }))), (0, react.createElement)("p", { className: settingsPromoClass.text }, t("settings.promo.starHint"), (0, react.createElement)("span", {
67415
67402
  className: settingsPromoClass.hand,
67416
67403
  "aria-hidden": true
67417
67404
  }, "👉")), (0, react.createElement)("a", {
@@ -67468,7 +67455,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
67468
67455
  };
67469
67456
  }
67470
67457
  // src/client/update-store.ts
67471
- const DEFAULT_PLUGIN_UPDATE_CHANNEL = "0.2.2-beta.2".includes("-") ? "next" : "latest";
67458
+ const DEFAULT_PLUGIN_UPDATE_CHANNEL = "0.2.2-beta.3".includes("-") ? "next" : "latest";
67472
67459
  var PluginUpdateStore = class {
67473
67460
  rpc;
67474
67461
  snapshot = {
@@ -80589,5 +80576,5 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
80589
80576
  });
80590
80577
 
80591
80578
  })();
80592
- // codingns-client-revision: 85e045cd1f9012d2f7c4dae9f20df83cafd33ea31f582881dc2f33b067d4af23
80579
+ // codingns-client-revision: d7fd015acf2d836861bd6b30c51a1e95a0599cbafa97f7df0d821837435e8b72
80593
80580
  //# sourceMappingURL=bundle.js.map