@eddyskywalker/dsh-chatgpt-subscription 0.31.0 → 0.33.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.
- package/CHANGELOG.md +70 -0
- package/README.md +112 -1
- package/lib/client.js +34731 -3832
- package/lib/client.js.map +1 -1
- package/lib/index.js +12922 -2851
- package/lib/types/client/cline-pass/ClinePassComposerQuota.d.ts +20 -0
- package/lib/types/client/cline-pass/ClinePassComposerQuota.d.ts.map +1 -0
- package/lib/types/client/cline-pass/ClinePassSection.d.ts +17 -0
- package/lib/types/client/cline-pass/ClinePassSection.d.ts.map +1 -0
- package/lib/types/client/cline-pass/api.d.ts +84 -0
- package/lib/types/client/cline-pass/api.d.ts.map +1 -0
- package/lib/types/client/cline-pass/locales.d.ts +1025 -0
- package/lib/types/client/cline-pass/locales.d.ts.map +1 -0
- package/lib/types/client/cline-pass/styles.d.ts +7 -0
- package/lib/types/client/cline-pass/styles.d.ts.map +1 -0
- package/lib/types/client/hub/brand-icons.d.ts +18 -2
- package/lib/types/client/hub/brand-icons.d.ts.map +1 -1
- package/lib/types/client/hub/hub-styles.d.ts.map +1 -1
- package/lib/types/client/hub/providers.d.ts.map +1 -1
- package/lib/types/client/index.d.ts +4 -0
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/mermaid/renderer.d.ts +23 -0
- package/lib/types/client/mermaid/renderer.d.ts.map +1 -1
- package/lib/types/client/minimax-code/MinimaxVideoDocumentBody.d.ts +31 -14
- package/lib/types/client/minimax-code/MinimaxVideoDocumentBody.d.ts.map +1 -1
- package/lib/types/client/minimax-code/MinimaxVideoToolView.d.ts.map +1 -1
- package/lib/types/client/minimax-code/VideoFormDialog.d.ts +46 -50
- package/lib/types/client/minimax-code/VideoFormDialog.d.ts.map +1 -1
- package/lib/types/client/minimax-code/locales.d.ts +80 -20
- package/lib/types/client/minimax-code/locales.d.ts.map +1 -1
- package/lib/types/client/minimax-code/styles.d.ts.map +1 -1
- package/lib/types/client/minimax-code/video-command-host.d.ts +17 -11
- package/lib/types/client/minimax-code/video-command-host.d.ts.map +1 -1
- package/lib/types/client/minimax-code/video-command-icon.d.ts +38 -0
- package/lib/types/client/minimax-code/video-command-icon.d.ts.map +1 -0
- package/lib/types/client/minimax-code/video-command.d.ts +53 -59
- package/lib/types/client/minimax-code/video-command.d.ts.map +1 -1
- package/lib/types/client/minimax-code/video-contract.d.ts +36 -0
- package/lib/types/client/minimax-code/video-contract.d.ts.map +1 -1
- package/lib/types/client/minimax-code/video-media-dropzone.d.ts +57 -0
- package/lib/types/client/minimax-code/video-media-dropzone.d.ts.map +1 -0
- package/lib/types/client/minimax-code/video-media-input.d.ts +173 -0
- package/lib/types/client/minimax-code/video-media-input.d.ts.map +1 -0
- package/lib/types/client/minimax-code/video-presets.d.ts +67 -0
- package/lib/types/client/minimax-code/video-presets.d.ts.map +1 -0
- package/lib/types/client/minimax-code/video-slots.d.ts +58 -5
- package/lib/types/client/minimax-code/video-slots.d.ts.map +1 -1
- package/lib/types/client/minimax-code/video-workspace.d.ts +41 -0
- package/lib/types/client/minimax-code/video-workspace.d.ts.map +1 -0
- package/lib/types/client/progress-updates/markdown-lite.d.ts +19 -6
- package/lib/types/client/progress-updates/markdown-lite.d.ts.map +1 -1
- package/lib/types/client/qoder/QoderComposerQuota.d.ts +41 -0
- package/lib/types/client/qoder/QoderComposerQuota.d.ts.map +1 -0
- package/lib/types/client/qoder/QoderSection.d.ts +26 -0
- package/lib/types/client/qoder/QoderSection.d.ts.map +1 -0
- package/lib/types/client/qoder/api.d.ts +4 -0
- package/lib/types/client/qoder/api.d.ts.map +1 -0
- package/lib/types/client/qoder/locales.d.ts +310 -0
- package/lib/types/client/qoder/locales.d.ts.map +1 -0
- package/lib/types/client/qoder/styles.d.ts +16 -0
- package/lib/types/client/qoder/styles.d.ts.map +1 -0
- package/lib/types/client/qoder/useQoderSection.d.ts +97 -0
- package/lib/types/client/qoder/useQoderSection.d.ts.map +1 -0
- package/lib/types/host/antigravity/adapter.d.ts.map +1 -1
- package/lib/types/host/cline-pass/account-pool.d.ts +63 -0
- package/lib/types/host/cline-pass/account-pool.d.ts.map +1 -0
- package/lib/types/host/cline-pass/adapter.d.ts +49 -0
- package/lib/types/host/cline-pass/adapter.d.ts.map +1 -0
- package/lib/types/host/cline-pass/catalog.d.ts +49 -0
- package/lib/types/host/cline-pass/catalog.d.ts.map +1 -0
- package/lib/types/host/cline-pass/client.d.ts +118 -0
- package/lib/types/host/cline-pass/client.d.ts.map +1 -0
- package/lib/types/host/cline-pass/engine.d.ts +223 -0
- package/lib/types/host/cline-pass/engine.d.ts.map +1 -0
- package/lib/types/host/cline-pass/line.d.ts +55 -0
- package/lib/types/host/cline-pass/line.d.ts.map +1 -0
- package/lib/types/host/cline-pass/mapper.d.ts +112 -0
- package/lib/types/host/cline-pass/mapper.d.ts.map +1 -0
- package/lib/types/host/cline-pass/oauth.d.ts +134 -0
- package/lib/types/host/cline-pass/oauth.d.ts.map +1 -0
- package/lib/types/host/cline-pass/protocol.d.ts +186 -0
- package/lib/types/host/cline-pass/protocol.d.ts.map +1 -0
- package/lib/types/host/cline-pass/routes.d.ts +71 -0
- package/lib/types/host/cline-pass/routes.d.ts.map +1 -0
- package/lib/types/host/cline-pass/store.d.ts +97 -0
- package/lib/types/host/cline-pass/store.d.ts.map +1 -0
- package/lib/types/host/cline-pass/token-store.d.ts +168 -0
- package/lib/types/host/cline-pass/token-store.d.ts.map +1 -0
- package/lib/types/host/cline-pass/tools.d.ts +21 -0
- package/lib/types/host/cline-pass/tools.d.ts.map +1 -0
- package/lib/types/host/cline-pass/types.d.ts +168 -0
- package/lib/types/host/cline-pass/types.d.ts.map +1 -0
- package/lib/types/host/common/model-request-control.d.ts +1 -1
- package/lib/types/host/common/model-request-control.d.ts.map +1 -1
- package/lib/types/host/common/request-diagnostics.d.ts +1 -1
- package/lib/types/host/common/request-diagnostics.d.ts.map +1 -1
- package/lib/types/host/kimi-code/adapter.d.ts +3 -1
- package/lib/types/host/kimi-code/adapter.d.ts.map +1 -1
- package/lib/types/host/kimi-code/mapper.d.ts.map +1 -1
- package/lib/types/host/qoder/account-pool.d.ts +137 -0
- package/lib/types/host/qoder/account-pool.d.ts.map +1 -0
- package/lib/types/host/qoder/adapter.d.ts +134 -0
- package/lib/types/host/qoder/adapter.d.ts.map +1 -0
- package/lib/types/host/qoder/adopt.d.ts +146 -0
- package/lib/types/host/qoder/adopt.d.ts.map +1 -0
- package/lib/types/host/qoder/client.d.ts +189 -0
- package/lib/types/host/qoder/client.d.ts.map +1 -0
- package/lib/types/host/qoder/cosy.d.ts +173 -0
- package/lib/types/host/qoder/cosy.d.ts.map +1 -0
- package/lib/types/host/qoder/mapper.d.ts +235 -0
- package/lib/types/host/qoder/mapper.d.ts.map +1 -0
- package/lib/types/host/qoder/model-catalog.d.ts +185 -0
- package/lib/types/host/qoder/model-catalog.d.ts.map +1 -0
- package/lib/types/host/qoder/oauth.d.ts +134 -0
- package/lib/types/host/qoder/oauth.d.ts.map +1 -0
- package/lib/types/host/qoder/routes.d.ts +96 -0
- package/lib/types/host/qoder/routes.d.ts.map +1 -0
- package/lib/types/host/qoder/token-store.d.ts +231 -0
- package/lib/types/host/qoder/token-store.d.ts.map +1 -0
- package/lib/types/host/qoder/types.d.ts +257 -0
- package/lib/types/host/qoder/types.d.ts.map +1 -0
- package/lib/types/host/workbuddy/adapter.d.ts.map +1 -1
- package/lib/types/host/workbuddy/mapper.d.ts +1 -0
- package/lib/types/host/workbuddy/mapper.d.ts.map +1 -1
- package/lib/types/index.d.ts +17 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/shared/cline-pass-contracts.d.ts +267 -0
- package/lib/types/shared/cline-pass-contracts.d.ts.map +1 -0
- package/lib/types/shared/qoder-contracts.d.ts +293 -0
- package/lib/types/shared/qoder-contracts.d.ts.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 预设档:一张**实测合法**的「模型 × 比例 × 时长 × 分辨率」表。
|
|
3
|
+
*
|
|
4
|
+
* ## 为什么从 VideoFormDialog 里搬出来
|
|
5
|
+
*
|
|
6
|
+
* 这张表有两个消费者:`/video` 命令(决定默认档位)和参数面板(顶部那一排档位
|
|
7
|
+
* 胶囊)。它曾经和面板组件写在同一个文件里,于是命令层为了读一张常量表去 import
|
|
8
|
+
* 一个 `.tsx`——那条依赖除了把组件拖进命令模块的闭包,没有任何好处。搬成纯模块
|
|
9
|
+
* 之后,两边都只是读表。
|
|
10
|
+
*
|
|
11
|
+
* ## 每一档都必须是真能发出去的组合
|
|
12
|
+
*
|
|
13
|
+
* - H3:4-15 秒、768P/2K;H3-Max:5-15 秒、480P/768P;Hailuo:6 或 10 秒、768P/1080P;
|
|
14
|
+
* - 比例是纯文本分支,所以 `adaptive` 一律不出现(那是首帧/参考媒体的分支才会有的值)。
|
|
15
|
+
*
|
|
16
|
+
* 时长都取各模型的下界,理由与 `defaultDuration` 相同:第一档应当是最便宜的
|
|
17
|
+
* 一次生成。更细的组合在面板的「更多参数」里调。
|
|
18
|
+
*
|
|
19
|
+
* @module @eddyskywalker/dsh-chatgpt-subscription/client/minimax-code/video-presets
|
|
20
|
+
*/
|
|
21
|
+
import { type MinimaxVideoModel, type MinimaxVideoRatio, type MinimaxVideoResolution } from './video-form-rules.ts';
|
|
22
|
+
/** 预设档。 */
|
|
23
|
+
export interface VideoPreset {
|
|
24
|
+
readonly id: string;
|
|
25
|
+
readonly model: MinimaxVideoModel;
|
|
26
|
+
readonly ratio: MinimaxVideoRatio | undefined;
|
|
27
|
+
readonly durationSeconds: number;
|
|
28
|
+
readonly resolution: MinimaxVideoResolution;
|
|
29
|
+
}
|
|
30
|
+
/** 翻译函数的最小形状:档位标签要拼「秒」。 */
|
|
31
|
+
type Translate = (key: 'videoDurationUnit') => string;
|
|
32
|
+
/**
|
|
33
|
+
* 预设档表。
|
|
34
|
+
*
|
|
35
|
+
* ## 标签为什么分成两截
|
|
36
|
+
*
|
|
37
|
+
* `label` 是**胶囊上**那行字:只留区分三档所需的最少信息(模型 + 时长),因为
|
|
38
|
+
* 三个全名并排放在 600px 宽的面板里必然换行,换行后胶囊高低不齐,比省掉几个字
|
|
39
|
+
* 难看得多。`title` 是完整参数,挂在 `title` 与 `aria-label` 上——想确认分辨率
|
|
40
|
+
* 与比例的人仍然看得到。
|
|
41
|
+
*
|
|
42
|
+
* @param t - 翻译函数(只需要时长单位)。
|
|
43
|
+
* @returns 每一档、它的短标签与完整说明。
|
|
44
|
+
*/
|
|
45
|
+
export declare function videoPresets(t: Translate): readonly {
|
|
46
|
+
readonly preset: VideoPreset;
|
|
47
|
+
readonly label: string;
|
|
48
|
+
readonly title: string;
|
|
49
|
+
}[];
|
|
50
|
+
/** 默认的一档:H3 的合法下界,也就是 `DEFAULT_MINIMAX_VIDEO_MODEL` 自己的默认值。 */
|
|
51
|
+
export declare function defaultPreset(): VideoPreset | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* 当前这组参数落在哪一档上;没有一档完全吻合时返回 undefined。
|
|
54
|
+
*
|
|
55
|
+
* 面板据此高亮胶囊:用户改过时长之后,那一档就不再是「当前档」了——继续高亮会
|
|
56
|
+
* 让胶囊和它下面的选择器互相矛盾。
|
|
57
|
+
*
|
|
58
|
+
* @param values - 当前模型、时长、分辨率。
|
|
59
|
+
* @returns 命中的档位 id,或 undefined。
|
|
60
|
+
*/
|
|
61
|
+
export declare function presetIdOf(values: {
|
|
62
|
+
readonly model: MinimaxVideoModel;
|
|
63
|
+
readonly durationSeconds?: number | undefined;
|
|
64
|
+
readonly resolution?: MinimaxVideoResolution | undefined;
|
|
65
|
+
}): string | undefined;
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=video-presets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video-presets.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/video-presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAML,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC5B,MAAM,uBAAuB,CAAA;AAE9B,WAAW;AACX,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAA;CAC5C;AAED,2BAA2B;AAC3B,KAAK,SAAS,GAAG,CAAC,GAAG,EAAE,mBAAmB,KAAK,MAAM,CAAA;AAErD;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS;IACnD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,EAAE,CAkBF;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,IAAI,WAAW,GAAG,SAAS,CAYvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE;IACjC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAA;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAA;CACzD,GAAG,MAAM,GAAG,SAAS,CAOrB"}
|
|
@@ -44,22 +44,65 @@ export interface DocumentPreviewRegistryService {
|
|
|
44
44
|
*/
|
|
45
45
|
register(definition: DocumentPreviewRegistration): () => void;
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* 一次远端调用声明的失败。
|
|
49
|
+
*
|
|
50
|
+
* 形状与宿主的 `RemoteError` 一致:稳定的 `code`、一句 `message`,以及该码
|
|
51
|
+
* 专属的结构化 `details`。判定只看 `code`,不看 `message` 里的英文。
|
|
52
|
+
*/
|
|
53
|
+
export interface RemoteFailure {
|
|
54
|
+
/** 稳定的失败码,如 `workspace-file/too-large`。 */
|
|
55
|
+
readonly code: string;
|
|
56
|
+
/** 人读的诊断信息。 */
|
|
57
|
+
readonly message?: string;
|
|
58
|
+
/** 该码专属的结构化载荷(如 too-large 的 `limit`)。 */
|
|
59
|
+
readonly details?: unknown;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* 一次远端调用的结果:**成功给值,失败给原因**。
|
|
63
|
+
*
|
|
64
|
+
* 远端调用不抛异常——宿主把它声明的失败装进结果里(见
|
|
65
|
+
* `@deepseek-ai/dsh-typert-protocol` 的 `RemoteResult`)。所以读字节的人
|
|
66
|
+
* 必须先看 `ok`,再去 `value`;直接读 `(await call()).data` 拿到的是
|
|
67
|
+
* `undefined`,而界面会把「没拿到字节」显示成「一直在读」。
|
|
68
|
+
*/
|
|
69
|
+
export type RemoteResult<T> = {
|
|
70
|
+
readonly ok: true;
|
|
71
|
+
readonly value: T;
|
|
72
|
+
} | {
|
|
73
|
+
readonly ok: false;
|
|
74
|
+
readonly error: RemoteFailure;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* 宿主交回来的字节载荷。
|
|
78
|
+
*
|
|
79
|
+
* **两代形状**:≤0.1.6 的宿主把字节编成 base64 字符串(宿主
|
|
80
|
+
* `readAll`/`readBytes` 返回 `data: string`),≥0.1.7 的宿主直接给
|
|
81
|
+
* `Uint8Array`(`packages/api/workspace-files/src/types.ts` 的
|
|
82
|
+
* `WorkspaceFileBytes.data`)。本插件支持两代,所以两种都认。
|
|
83
|
+
*/
|
|
84
|
+
export type RemoteBytes = Uint8Array | string;
|
|
47
85
|
/**
|
|
48
86
|
* 本插件用到的 `remote.workspaceFiles` 面。
|
|
49
87
|
*
|
|
50
88
|
* 与宿主 `ui-sidebar-documentpreview/src/client/rpc.ts` 的
|
|
51
89
|
* `WorkspaceFilesReadRemote` 同形:不传 `range` 就是整文件读取(上限由宿主
|
|
52
90
|
* `maxFileBytes` 决定),`baseFile` 用于把相对路径解析到基准文件目录。
|
|
91
|
+
*
|
|
92
|
+
* `readAll` 是 **≤0.1.6 那一代**的整文件读取法(宿主在 0.1.7 把它并进了
|
|
93
|
+
* `readBytes` 的 `options` 形态)。留着它是为了旧世代仍能整文件取字节:
|
|
94
|
+
* 那一代的 `readBytes` 收的是**字节窗口**而不是 `options`,拿它读整文件
|
|
95
|
+
* 只会读到 `maxBytes` 那么多。
|
|
53
96
|
*/
|
|
54
97
|
export interface WorkspaceFilesRemote {
|
|
55
98
|
readonly workspaceFiles: {
|
|
56
99
|
/**
|
|
57
|
-
*
|
|
100
|
+
* 读整段文件字节(≥0.1.7 那一代的形态)。
|
|
58
101
|
* @param sessionId - 决定工作区根的会话 id。
|
|
59
102
|
* @param path - 绝对路径,或相对该会话工作区根的路径。
|
|
60
103
|
* @param options - 可选的字节窗口与基准文件;本实现不传。
|
|
61
104
|
* @param signal - 取消信号。
|
|
62
|
-
* @returns
|
|
105
|
+
* @returns 结果:成功时 `value.data` 是字节,失败时 `error` 带原因码。
|
|
63
106
|
*/
|
|
64
107
|
readBytes(sessionId: string, path: string, options: {
|
|
65
108
|
readonly baseFile?: string;
|
|
@@ -67,9 +110,19 @@ export interface WorkspaceFilesRemote {
|
|
|
67
110
|
readonly offset?: number;
|
|
68
111
|
readonly length?: number;
|
|
69
112
|
};
|
|
70
|
-
}, signal?: AbortSignal): Promise<{
|
|
71
|
-
readonly data:
|
|
72
|
-
}
|
|
113
|
+
}, signal?: AbortSignal): Promise<RemoteResult<{
|
|
114
|
+
readonly data: RemoteBytes;
|
|
115
|
+
}>>;
|
|
116
|
+
/**
|
|
117
|
+
* 读整段文件字节(≤0.1.6 那一代的形态;≥0.1.7 已无此方法)。
|
|
118
|
+
* @param sessionId - 决定工作区根的会话 id。
|
|
119
|
+
* @param path - 绝对路径,或相对该会话工作区根的路径。
|
|
120
|
+
* @param signal - 取消信号。
|
|
121
|
+
* @returns 结果:成功时 `value.data` 是 base64 字符串,失败时带原因码。
|
|
122
|
+
*/
|
|
123
|
+
readAll?(sessionId: string, path: string, signal?: AbortSignal): Promise<RemoteResult<{
|
|
124
|
+
readonly data: RemoteBytes;
|
|
125
|
+
}>>;
|
|
73
126
|
};
|
|
74
127
|
}
|
|
75
128
|
declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video-slots.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/video-slots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,4EAA4E;AAC5E,MAAM,WAAW,2BAA2B;IAC1C,sBAAsB;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,oBAAoB;IACpB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,0CAA0C;IAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7C,mBAAmB;IACnB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IAC3C,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAA;IAC5B,cAAc;IACd,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,gBAAgB,GAAG,UAAU,CAAA;IAC9D,mBAAmB;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,mCAAmC;AACnC,MAAM,WAAW,8BAA8B;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,2BAA2B,GAAG,MAAM,IAAI,CAAA;CAC9D;AAED
|
|
1
|
+
{"version":3,"file":"video-slots.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/video-slots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,4EAA4E;AAC5E,MAAM,WAAW,2BAA2B;IAC1C,sBAAsB;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,oBAAoB;IACpB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,0CAA0C;IAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7C,mBAAmB;IACnB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IAC3C,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAA;IAC5B,cAAc;IACd,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,gBAAgB,GAAG,UAAU,CAAA;IAC9D,mBAAmB;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,mCAAmC;AACnC,MAAM,WAAW,8BAA8B;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,2BAA2B,GAAG,MAAM,IAAI,CAAA;CAC9D;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,eAAe;IACf,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,yCAAyC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IACtB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACxC;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CAAA;AAEzD;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,MAAM,CAAA;AAE7C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,cAAc,EAAE;QACvB;;;;;;;WAOG;QACH,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;YAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,EAChH,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC;YAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;SAAE,CAAC,CAAC,CAAA;QACxD;;;;;;WAMG;QACH,OAAO,CAAC,CACN,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC;YAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;SAAE,CAAC,CAAC,CAAA;KACzD,CAAA;CACF;AAED,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAU,OAAO;QACf;;;WAGG;QACH,4BAA4B,EAAE;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,SAAS,CAAA;SAAE,CAAA;KAClE;CACF"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 工作区目录列表:给媒体块里的 `@` 补全用。
|
|
3
|
+
*
|
|
4
|
+
* ## 为什么这里能列目录
|
|
5
|
+
*
|
|
6
|
+
* 宿主的 `remote.workspaceFiles` 除了 `readBytes` 还有一个 `list(sessionId, path, signal)`
|
|
7
|
+
* (`api/workspace-files/src/index.ts:304`,生成的客户端声明在
|
|
8
|
+
* `lib/typert.remote-client.d.ts:15`),返回该目录的直接子项与**工作区相对路径**。
|
|
9
|
+
* 那正是对话框里 `@` 引用文件时用的那套坐标,所以拿去补全不用做任何换算。
|
|
10
|
+
*
|
|
11
|
+
* 与取字节一样,这个服务按需解析、**可选**:宿主没装、或 remote 尚未挂载时返回
|
|
12
|
+
* `undefined`,媒体块会退化成「只能手填路径」,而不是报错。
|
|
13
|
+
*
|
|
14
|
+
* @module @eddyskywalker/dsh-chatgpt-subscription/client/minimax-code/video-workspace
|
|
15
|
+
*/
|
|
16
|
+
import type { Context as ClientContext } from '@deepseek-ai/cordis';
|
|
17
|
+
/** 目录里的一项(`WorkspaceDirectoryEntry` 的窄化副本)。 */
|
|
18
|
+
export interface WorkspaceEntry {
|
|
19
|
+
/** 文件名或目录名。 */
|
|
20
|
+
readonly name: string;
|
|
21
|
+
/** 相对工作区根的路径;拼在已列出的目录后面。 */
|
|
22
|
+
readonly path: string;
|
|
23
|
+
/** 是否目录;目录在补全里带一个尾斜杠,便于继续下钻。 */
|
|
24
|
+
readonly directory: boolean;
|
|
25
|
+
}
|
|
26
|
+
/** 列一个目录的直接子项;路径相对工作区根,空串是工作区根。 */
|
|
27
|
+
export type WorkspaceLister = (path: string) => Promise<readonly WorkspaceEntry[]>;
|
|
28
|
+
/**
|
|
29
|
+
* 为一条会话准备目录列表器。
|
|
30
|
+
*
|
|
31
|
+
* 返回的列表器**不抛异常**:远端失败、服务缺席、目录不存在都收敛成空数组——补全
|
|
32
|
+
* 少几行是可接受的,让一次按键变成一条控制台异常不是。
|
|
33
|
+
*
|
|
34
|
+
* @param ctx - 浏览器根上下文。
|
|
35
|
+
* @param sessionId - 决定工作区根的会话 id。
|
|
36
|
+
* @returns 列表器;宿主没有这个能力时为 undefined。
|
|
37
|
+
*/
|
|
38
|
+
export declare function workspaceListerFor(ctx: ClientContext, sessionId: string): WorkspaceLister | undefined;
|
|
39
|
+
/** 在一条已命中的路径后面拼一个子项,处理根目录那一档。 */
|
|
40
|
+
export declare function joinWorkspacePath(base: string, name: string): string;
|
|
41
|
+
//# sourceMappingURL=video-workspace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video-workspace.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/video-workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGnE,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,eAAe;IACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,gCAAgC;IAChC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAED,mCAAmC;AACnC,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAAA;AAqClF;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAkBrG;AAED,iCAAiC;AACjC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpE"}
|
|
@@ -19,14 +19,20 @@
|
|
|
19
19
|
* - 行内 `code`
|
|
20
20
|
* - `**粗体**`
|
|
21
21
|
* - `###` 标题(最多三级)
|
|
22
|
+
* - 围栏代码块(三连及以上的反引号或波浪号:**不做语法高亮**,语言标签只当标题)
|
|
23
|
+
* - 数学公式:行内 `$…$` / `\(…\)`,块级 `$$…$$` / `\[…\]`,交给 KaTeX
|
|
22
24
|
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
25
|
+
* 表格与围栏代码块都是**后补**的:早先版本把它们当「超出契约」排除了,结果模型写出来的
|
|
26
|
+
* 管道符表格整块落进段落分支、原样上屏(用户直接看到一堆竖线),围栏代码块同样把三反
|
|
27
|
+
* 引号露在正文里。渲染它们的代价只是一次前瞻扫描,远小于它被读错造成的损失。
|
|
26
28
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* `dangerouslySetInnerHTML
|
|
29
|
+
* 数学走 KaTeX 而不是自己画:公式排版(分式、上下标、矩阵)不是几十行手写能覆盖的面。
|
|
30
|
+
* KaTeX 只输出 HTML 串(`.katex` 那棵 span/MathML 树),本文件把它经 `DOMParser` 转成
|
|
31
|
+
* React 元素,**不经过 `dangerouslySetInnerHTML`** —— 整份渲染结果因此仍然是「全是
|
|
32
|
+
* React 元素」,没有注入面。KaTeX 的 CSS 与字体由平台 `ui-primitives` 随页面引入
|
|
33
|
+
* (`katex.min.css`),本插件不打包样式,只负责出结构。
|
|
34
|
+
*
|
|
35
|
+
* 仍然刻意**不做**图片、链接、原始 HTML、脚注与语法高亮。
|
|
30
36
|
*
|
|
31
37
|
* @module @eddyskywalker/dsh-chatgpt-subscription/client/progress-updates/markdown-lite
|
|
32
38
|
*/
|
|
@@ -52,6 +58,13 @@ type Block = {
|
|
|
52
58
|
header: string[];
|
|
53
59
|
aligns: ColumnAlign[];
|
|
54
60
|
rows: string[][];
|
|
61
|
+
} | {
|
|
62
|
+
kind: 'code';
|
|
63
|
+
lang: string;
|
|
64
|
+
code: string;
|
|
65
|
+
} | {
|
|
66
|
+
kind: 'math';
|
|
67
|
+
tex: string;
|
|
55
68
|
};
|
|
56
69
|
/**
|
|
57
70
|
* 一行表格 → 单元格数组。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-lite.d.ts","sourceRoot":"","sources":["../../../../src/client/progress-updates/markdown-lite.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"markdown-lite.d.ts","sourceRoot":"","sources":["../../../../src/client/progress-updates/markdown-lite.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAA;AAgIrD,wDAAwD;AACxD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;AAErD,oBAAoB;AACpB,KAAK,KAAK,GACN;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,GAC5E;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAWjC;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAM/C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAQxD;AA4BD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CAkInD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAgHlE"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qoder(订阅)在输入框右侧的额度胶囊。
|
|
3
|
+
*
|
|
4
|
+
* 与兄弟线路的胶囊同款:胶囊是唯一一眼能看到数字的地方,所以点一下要走强制刷新;
|
|
5
|
+
* 而「显示哪一个数字」是每条线路唯一值得自己写的部分,因此单独导出一个纯函数
|
|
6
|
+
* selectBadgeFacts 供测试直接调用。
|
|
7
|
+
*
|
|
8
|
+
* 挑选口径:**只按有总额的桶选已用比例最高的那只**(个人 / 加购 / 组织包),
|
|
9
|
+
* 显示它的剩余百分比。桶是绝对量,而百分比需要 total 这个分母——没有 total 或
|
|
10
|
+
* total 为 0 的桶不参与选择(「上游没报」与「一点都不剩」必须长得不一样);
|
|
11
|
+
* 一只可计量的桶都没有时返回 null,即**不渲染胶囊**:装一个占位数字比不显示更像坏了。
|
|
12
|
+
*/
|
|
13
|
+
import type { ModelDirectoryState } from '@deepseek-ai/dsh-client-ui-model-selection/client';
|
|
14
|
+
import type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
15
|
+
import { type QoderStatusDto } from '../../shared/qoder-contracts.ts';
|
|
16
|
+
import { type ComposerQuotaFacts } from '../common/ComposerQuotaBadge.tsx';
|
|
17
|
+
import type { SnapshotStore } from '../store.ts';
|
|
18
|
+
import { NS_QODER, type QoderLocaleKey } from './locales.ts';
|
|
19
|
+
type Props = PropsRuntime<'conversation.input.right'> & PropsLocale<typeof NS_QODER> & {
|
|
20
|
+
directory: SnapshotStore<ModelDirectoryState>;
|
|
21
|
+
loadModelDirectory: () => void;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* 胶囊显示「最紧的那只桶」的剩余百分比。
|
|
25
|
+
*
|
|
26
|
+
* 多只桶互相独立地消耗,用户当下真正被卡住的是**已用比例最高**的那一只:
|
|
27
|
+
* 另外那只可能还剩一大半。所以这里不平均、不取最小剩余,而是取最大已用比例。
|
|
28
|
+
* 没有快照、没有桶、或全部桶都没有总额时返回 null(见文件头)。
|
|
29
|
+
*/
|
|
30
|
+
export declare function selectBadgeFacts(status: QoderStatusDto | null, lookup?: (key: QoderLocaleKey) => string): ComposerQuotaFacts | null;
|
|
31
|
+
/**
|
|
32
|
+
* 输入框右侧的额度胶囊本体。
|
|
33
|
+
*
|
|
34
|
+
* **槽位号由波次 4 注册,本文件不注册任何槽位**:conversation.input.right 现有
|
|
35
|
+
* 35–44(codex → … → step-code → cline-pass),本线路取下一个号 45,id 沿用命名习惯
|
|
36
|
+
* 'qoder-quota',locale 为 NS_QODER。顺延而不是插号:给新线路重排既有号会让
|
|
37
|
+
* 已上线线路的槽位位置无谓地变一次。
|
|
38
|
+
*/
|
|
39
|
+
export declare function QoderComposerQuota({ directory, loadModelDirectory, t }: Props): React.JSX.Element | null;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=QoderComposerQuota.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QoderComposerQuota.d.ts","sourceRoot":"","sources":["../../../../src/client/qoder/QoderComposerQuota.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAA;AAC5F,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAkC,KAAK,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,QAAQ,EAAuB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAEjF,KAAK,KAAK,GAAG,YAAY,CAAC,0BAA0B,CAAC,GAAG,WAAW,CAAC,OAAO,QAAQ,CAAC,GAAG;IACrF,SAAS,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAA;IAC7C,kBAAkB,EAAE,MAAM,IAAI,CAAA;CAC/B,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,MAAM,GAAE,CAAC,GAAG,EAAE,cAAc,KAAK,MAAyB,GACzD,kBAAkB,GAAG,IAAI,CAqB3B;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAYxG"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qoder(订阅)设置卡片。
|
|
3
|
+
*
|
|
4
|
+
* 纯渲染:状态、副作用与请求都在 'useQoderSection.ts',两者之间只通过一个具名结构
|
|
5
|
+
* 交接(GLM / WorkBuddy / Step Code 同款分工)。
|
|
6
|
+
*
|
|
7
|
+
* 本文件没有新建任何 UI 组件:进入入口(hub 卡片)在 hub/providers.tsx,账号池与它的
|
|
8
|
+
* 配额条在 AccountPoolSection,模型勾选在 ModelChecklist,上下文窗口在
|
|
9
|
+
* ContextWindowEditor,输入框胶囊在 QoderComposerQuota.tsx。
|
|
10
|
+
*
|
|
11
|
+
* 两条它自己负责的渲染规则:
|
|
12
|
+
*
|
|
13
|
+
* 1. **能力只画契约里的字段**:图片输入、思考档位、上下文窗口全部来自 host 生成的
|
|
14
|
+
* hint,客户端不按模型名推断任何一项;同一事实只呈现一次;
|
|
15
|
+
* 2. **额度画绝对量,缓存画 token 维度**:额度是三只桶的总量/已用/剩余(上游自述的
|
|
16
|
+
* 单位),缺桶不画;缓存只有读入/写入/样本,没数据就是占位符;单价未公开,
|
|
17
|
+
* 整页不出现任何金额。
|
|
18
|
+
*
|
|
19
|
+
* 版面纪律(全卡适用):**每个分组标题下最多留一行说明**,其余原句收进 .dshq-details
|
|
20
|
+
* 折叠区(moreNotes 辅助函数),阅读顺序因此固定为「标题 → 一句话 → 控件 → 折叠的补充
|
|
21
|
+
* 说明」。
|
|
22
|
+
*/
|
|
23
|
+
import React from 'react';
|
|
24
|
+
import { type QoderSectionProps } from './useQoderSection.ts';
|
|
25
|
+
export declare function QoderSection({ onModelChange }?: QoderSectionProps): React.JSX.Element;
|
|
26
|
+
//# sourceMappingURL=QoderSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QoderSection.d.ts","sourceRoot":"","sources":["../../../../src/client/qoder/QoderSection.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,MAAM,OAAO,CAAA;AAoBzB,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AA4D9E,wBAAgB,YAAY,CAAC,EAAE,aAAa,EAAE,GAAE,iBAAsB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAudzF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/client/qoder/api.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,GAAG,iCAAU,CAAA;AAC1B,eAAO,MAAM,IAAI,gDAAW,CAAA;AAE5B,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEhD"}
|