dsh-router-core 0.4.2 → 0.4.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.
- package/README.md +9 -10
- package/cordis.patch.yml +10 -0
- package/docs/ext.md +64 -2
- package/lib/client-registry.js +633 -50
- package/lib/client.js +633 -50
- package/lib/contract-D4BWZ7Xe.js +13 -0
- package/lib/ext-prompt/index.js +527 -0
- package/lib/ext-prompt/locale/en.json +6 -0
- package/lib/ext-prompt/locale/zh.json +6 -0
- package/lib/ext-prompt/package.json +5 -0
- package/lib/ext-test/index.js +1 -12
- package/lib/index.js +249 -117
- package/lib/types/ext/contract.d.ts +113 -0
- package/lib/types/ext-prompt/content.d.ts +57 -0
- package/lib/types/ext-prompt/index.d.ts +53 -0
- package/lib/types/ext-prompt/logo.d.ts +17 -0
- package/lib/types/ext-prompt/mount.d.ts +51 -0
- package/lib/types/ext-prompt/plugin.d.ts +32 -0
- package/lib/types/ext-prompt/render.d.ts +105 -0
- package/lib/types/host-version.d.ts +7 -8
- package/lib/types/index.d.ts +1 -1
- package/lib/types/shared.d.ts +33 -0
- package/package.json +17 -7
- package/src/client/EndpointTab.tsx +15 -18
- package/src/client/ExtDetail.tsx +552 -9
- package/src/client/index.tsx +7 -28
- package/src/client/router.css +132 -62
- package/src/ext/contract.ts +111 -0
- package/src/ext-prompt/assembly.test.ts +79 -0
- package/src/ext-prompt/content.ts +174 -0
- package/src/ext-prompt/ext-prompt.test.ts +432 -0
- package/src/ext-prompt/index.ts +104 -0
- package/src/ext-prompt/locale/en.json +6 -0
- package/src/ext-prompt/locale/zh.json +6 -0
- package/src/ext-prompt/logo.svg +14 -0
- package/src/ext-prompt/logo.ts +18 -0
- package/src/ext-prompt/mount.test.ts +95 -0
- package/src/ext-prompt/mount.ts +79 -0
- package/src/ext-prompt/plugin.ts +223 -0
- package/src/ext-prompt/render.test.ts +256 -0
- package/src/ext-prompt/render.ts +216 -0
- package/src/ext-prompt/row.json +5 -0
- package/src/ext-route.test.ts +78 -0
- package/src/host-version.test.ts +21 -28
- package/src/host-version.ts +39 -39
- package/src/index.ts +216 -94
- package/src/llm/adapter.test.ts +19 -42
- package/src/llm/adapter.ts +20 -47
- package/src/shared.ts +34 -0
package/src/shared.ts
CHANGED
|
@@ -164,6 +164,40 @@ export interface RouterExtItem {
|
|
|
164
164
|
* 「包含的组件」里占一行了,两处都列就是同一个东西显示两遍(与内置供应商同理)。
|
|
165
165
|
*/
|
|
166
166
|
source?: 'builtin'
|
|
167
|
+
/**
|
|
168
|
+
* 扩展自带的子开关(如准则的每一条)。**由扩展自报**,核心只搬运。
|
|
169
|
+
*
|
|
170
|
+
* ⚠️ 与 `enabled`(总开关)不同:子开关**不改变扩展是否被加载**,只改它
|
|
171
|
+
* 自己的行为。总开关关时这些子开关一并失效(面板上禁用,不隐藏)。
|
|
172
|
+
*/
|
|
173
|
+
controls?: ExtControlItem[]
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/** `/router/api/ext` 里的一条子开关(与 `router.ext` 契约的 `ExtControl` 对应)。 */
|
|
177
|
+
export interface ExtControlItem {
|
|
178
|
+
/** 稳定 id(持久化键;改名会丢用户已保存的选择)。 */
|
|
179
|
+
id: string
|
|
180
|
+
title: string
|
|
181
|
+
/** 当前是否开启(扩展自算:默认值 + 用户已存选择)。 */
|
|
182
|
+
on: boolean
|
|
183
|
+
/** 一句话说明(面板副行,可选)。 */
|
|
184
|
+
detail?: string
|
|
185
|
+
/** 原文(面板点开即可读到;不给出就是在盲切,见 `ExtControl.body`)。 */
|
|
186
|
+
body?: string
|
|
187
|
+
/** 文本可编辑(缺省 = 只读;见 `ExtControl.editable`)。 */
|
|
188
|
+
editable?: boolean
|
|
189
|
+
/**
|
|
190
|
+
* 自建条目(可删)还是内置(不可删、只有开关与还原)。
|
|
191
|
+
*
|
|
192
|
+
* ⚠️ **必填,不给可选**(2026-09-30 实测踩过):曾声明成 `custom?: boolean`,
|
|
193
|
+
* 而服务端只在 `custom === true` 时才带这个字段 ⇒ 内置条目拿到的是
|
|
194
|
+
* `undefined`,面板判 `c.custom === true` 为假,**恰好是对的** ——
|
|
195
|
+
* 但那条正确性建立在"缺省恰好等于 false"上,改任何一边的默认值都会翻转。
|
|
196
|
+
* ⇒ 让服务端**总是**给显式布尔,两边不必猜。
|
|
197
|
+
*/
|
|
198
|
+
custom: boolean
|
|
199
|
+
/** 文本被改过(决定「还原」是否可点)。必填,理由同 `custom`。 */
|
|
200
|
+
overridden: boolean
|
|
167
201
|
}
|
|
168
202
|
|
|
169
203
|
/** `/router/api/ext` response(扩展插件列表 + 开关)。 */
|