@eddyskywalker/dsh-chatgpt-subscription 0.32.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 +36 -0
- package/README.md +49 -1
- package/lib/client.js +3535 -1191
- package/lib/client.js.map +1 -1
- package/lib/index.js +7225 -2833
- package/lib/types/client/hub/brand-icons.d.ts +17 -1
- 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 +2 -0
- package/lib/types/client/index.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-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-workspace.d.ts +41 -0
- package/lib/types/client/minimax-code/video-workspace.d.ts.map +1 -0
- 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/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 +5 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/shared/qoder-contracts.d.ts +293 -0
- package/lib/types/shared/qoder-contracts.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -10,12 +10,28 @@
|
|
|
10
10
|
* (the same principle claude-style's brand.js documents).
|
|
11
11
|
*/
|
|
12
12
|
import { type BrandMarkKey } from './brand-svg.ts';
|
|
13
|
-
export type HubProviderId = 'chatgpt' | 'antigravity' | 'command-code' | 'kimi-code' | 'workbuddy' | 'minimax-code' | 'glm-coding-plan' | 'claude' | 'ollama' | 'step-code' | 'cline-pass';
|
|
13
|
+
export type HubProviderId = 'chatgpt' | 'antigravity' | 'command-code' | 'kimi-code' | 'workbuddy' | 'minimax-code' | 'glm-coding-plan' | 'claude' | 'ollama' | 'step-code' | 'cline-pass' | 'qoder';
|
|
14
14
|
/** 一张标记的键:BRAND_MARKS 的全部键,加上本文件自带的键。 */
|
|
15
15
|
export type ProviderMarkKey = BrandMarkKey | 'glm' | 'step-code' | 'cline-pass';
|
|
16
|
+
/**
|
|
17
|
+
* A brand image carried as a data URI rather than as inline SVG geometry.
|
|
18
|
+
*
|
|
19
|
+
* Used where the official artwork is a raster asset whose vector form is a
|
|
20
|
+
* 36 KB path — inlining the geometry would cost five times the pixels and buy
|
|
21
|
+
* nothing at a 23 px box. The bytes are the vendor's own file, so the mark is
|
|
22
|
+
* still the official one rather than a redraw of it.
|
|
23
|
+
*/
|
|
24
|
+
interface BrandImage {
|
|
25
|
+
/** Data URI of the official asset. */
|
|
26
|
+
src: string;
|
|
27
|
+
/** How the image fills the tile; 'cover' hides the artwork's own rounded base. */
|
|
28
|
+
fit: 'cover' | 'contain';
|
|
29
|
+
}
|
|
16
30
|
interface ProviderBrand {
|
|
17
31
|
/** Key into BRAND_MARKS (or LOCAL_MARKS); absent for monogram-only providers. */
|
|
18
32
|
mark?: ProviderMarkKey;
|
|
33
|
+
/** Official raster artwork; takes precedence over `mark` when both are set. */
|
|
34
|
+
image?: BrandImage;
|
|
19
35
|
/**
|
|
20
36
|
* Text color for artwork that draws in currentColor (OpenAI's knot, Kimi's
|
|
21
37
|
* K, Claude's mark). Self-colored artwork (gradients, multi-fill marks)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand-icons.d.ts","sourceRoot":"","sources":["../../../../src/client/hub/brand-icons.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAe,KAAK,YAAY,EAAqB,MAAM,gBAAgB,CAAA;AAElF,MAAM,MAAM,aAAa,GACrB,SAAS,GAAG,aAAa,GAAG,cAAc,GAAG,WAAW,GACxD,WAAW,GAAG,cAAc,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,GACtE,WAAW,GAAG,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"brand-icons.d.ts","sourceRoot":"","sources":["../../../../src/client/hub/brand-icons.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAe,KAAK,YAAY,EAAqB,MAAM,gBAAgB,CAAA;AAElF,MAAM,MAAM,aAAa,GACrB,SAAS,GAAG,aAAa,GAAG,cAAc,GAAG,WAAW,GACxD,WAAW,GAAG,cAAc,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,GACtE,WAAW,GAAG,YAAY,GAAG,OAAO,CAAA;AA6ExC,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,KAAK,GAAG,WAAW,GAAG,YAAY,CAAA;AAS/E;;;;;;;GAOG;AACH,UAAU,UAAU;IAClB,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,kFAAkF;IAClF,GAAG,EAAE,OAAO,GAAG,SAAS,CAAA;CACzB;AAED,UAAU,aAAa;IACrB,iFAAiF;IACjF,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAA;IACZ,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAgChE,CAAA;AAED,qEAAqE;AACrE,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAUjI;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE,IAAS,EAAE,EAAE;IAAE,EAAE,EAAE,aAAa,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAuBpG;AAoBD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAMtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hub-styles.d.ts","sourceRoot":"","sources":["../../../../src/client/hub/hub-styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hub-styles.d.ts","sourceRoot":"","sources":["../../../../src/client/hub/hub-styles.ts"],"names":[],"mappings":"AAoDA,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../../src/client/hub/providers.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../../src/client/hub/providers.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAyBpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,uDAAuD;AACvD,MAAM,WAAW,oBAAoB;IACnC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,gFAAgF;IAChF,OAAO,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,aAAa,CAAA;IACjB,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;;;OAOG;IACH,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;IACxD,YAAY,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CAAA;CACxD;AA4BD,6DAA6D;AAC7D,eAAO,MAAM,aAAa,EAAE,SAAS,qBAAqB,EA+EzD,CAAA;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAEnF"}
|
|
@@ -10,6 +10,7 @@ import { type GlmCodingPlanLocaleKey } from './glm-coding-plan/locales.ts';
|
|
|
10
10
|
import { type OllamaLocaleKey } from './ollama/locales.ts';
|
|
11
11
|
import { type StepCodeLocaleKey } from './step-code/locales.ts';
|
|
12
12
|
import { type ClinePassLocaleKey } from './cline-pass/locales.ts';
|
|
13
|
+
import { type QoderLocaleKey } from './qoder/locales.ts';
|
|
13
14
|
import { type ProgressUpdatesLocaleKey } from './progress-updates/locales.ts';
|
|
14
15
|
declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
15
16
|
/**
|
|
@@ -32,6 +33,7 @@ declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
|
32
33
|
'dsh-ollama': OllamaLocaleKey;
|
|
33
34
|
'dsh-step-code': StepCodeLocaleKey;
|
|
34
35
|
'dsh-cline-pass': ClinePassLocaleKey;
|
|
36
|
+
'dsh-qoder': QoderLocaleKey;
|
|
35
37
|
'dsh-progress-updates': ProgressUpdatesLocaleKey;
|
|
36
38
|
}
|
|
37
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAenE,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAM/D,OAAO,EAAoD,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAGtH,OAAO,EAA0C,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAGlG,OAAO,EAAqD,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAExH,OAAO,EAA+C,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAM5G,OAAO,EAAqD,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAKxH,OAAO,EAAgD,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAG9G,OAAO,EAA0D,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AAElI,OAAO,EAA0C,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAElG,OAAO,EAA+C,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG5G,OAAO,EAAiD,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAenE,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAM/D,OAAO,EAAoD,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAGtH,OAAO,EAA0C,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAGlG,OAAO,EAAqD,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAExH,OAAO,EAA+C,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAM5G,OAAO,EAAqD,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAKxH,OAAO,EAAgD,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAG9G,OAAO,EAA0D,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AAElI,OAAO,EAA0C,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAElG,OAAO,EAA+C,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG5G,OAAO,EAAiD,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAGhH,OAAO,EAAwC,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAM9F,OAAO,EAA6D,KAAK,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAExI,OAAO,QAAQ,kCAAkC,CAAC;IAChD;;;;;;;OAOG;IACH,UAAU,kBAAkB;QAC1B,0BAA0B,EAAE,SAAS,CAAA;QACrC,iBAAiB,EAAE,oBAAoB,CAAA;QACvC,YAAY,EAAE,eAAe,CAAA;QAC7B,kBAAkB,EAAE,oBAAoB,CAAA;QACxC,eAAe,EAAE,iBAAiB,CAAA;QAClC,kBAAkB,EAAE,oBAAoB,CAAA;QACxC,eAAe,EAAE,kBAAkB,CAAA;QACnC,qBAAqB,EAAE,sBAAsB,CAAA;QAC7C,YAAY,EAAE,eAAe,CAAA;QAC7B,eAAe,EAAE,iBAAiB,CAAA;QAClC,gBAAgB,EAAE,kBAAkB,CAAA;QACpC,WAAW,EAAE,cAAc,CAAA;QAC3B,sBAAsB,EAAE,wBAAwB,CAAA;KACjD;CACF;AAED,eAAO,MAAM,MAAM,UAQlB,CAAA;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAoN9C"}
|
|
@@ -1,90 +1,86 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `/video`
|
|
2
|
+
* `/video` 的参数面板:写一句描述,选好参数,再把它填进输入框。
|
|
3
3
|
*
|
|
4
|
-
* ##
|
|
4
|
+
* ## 形态:没有遮罩的浮层,而不是遮住整页的对话框
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* 这里曾经盖一层半透明遮罩,整页随之变灰——用户看着像被弹窗劫持了。视频生成
|
|
7
|
+
* 只是「给下一条消息配参数」,它不该把整个对话压暗。所以现在只有一块带阴影的
|
|
8
|
+
* 浮层:点面板外仍然关闭(有边界检查),Escape 仍然关闭,但没有遮罩、没有
|
|
9
|
+
* 背景变灰,对话内容照常可读。
|
|
10
|
+
*
|
|
11
|
+
* ## 布局:从「一排排表单」改成「先说画面,再说参数」
|
|
12
|
+
*
|
|
13
|
+
* 原先是 9 个同权重的字段竖着排下来,用户第一眼看到的是「模型 / 时长 / 分辨率」
|
|
14
|
+
* 这些次要决定。现在分成三段,按用户真正的思考顺序:
|
|
15
|
+
*
|
|
16
|
+
* 1. **描述**——面板里最大的一块,也是唯一必填的东西;
|
|
17
|
+
* 2. **档位胶囊 + 一行参数**——常见组合一键就能定,细调折叠在「更多参数」里;
|
|
18
|
+
* 3. **参考媒体**——四类媒体块,支持浏览、拖拽、粘贴。
|
|
11
19
|
*
|
|
12
20
|
* ## 关键行为:它**不发送**,只把参数写进输入框
|
|
13
21
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* {@link buildVideoDraftText} 拼出来的那段话放进输入框,剩下的交给用户。
|
|
22
|
+
* 视频参数有联动规则(给了首帧→比例被强制改成 `adaptive`;纯文本→`adaptive`
|
|
23
|
+
* 不可选),如果直接发起生成,用户永远看不到自己填的东西被改成了什么。所以这里
|
|
24
|
+
* 只调用 `onSubmit`,把 {@link buildVideoDraftText} 拼出来的那段话放进输入框。
|
|
18
25
|
*
|
|
19
26
|
* ## 弹窗怎么落地
|
|
20
27
|
*
|
|
21
|
-
* 宿主有 `@deepseek-ai/dsh-client-ui-primitives` 的 `Modal
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* portal 到 body 是必须的——输入框所在的那片容器有 `overflow`,就地渲染会被裁掉。
|
|
28
|
+
* 宿主有 `@deepseek-ai/dsh-client-ui-primitives` 的 `Modal`,但**本插件不依赖那个
|
|
29
|
+
* 包的运行时**(`progress-updates/markdown-lite.tsx:6` 记录了这个决定),所以这里
|
|
30
|
+
* 自己 portal 到 `document.body`:无遮罩浮层 + `role="dialog"` + Escape 关闭 +
|
|
31
|
+
* 点浮层外关闭。portal 到 body 是必须的——输入框所在的那片容器有 `overflow`,
|
|
32
|
+
* 就地渲染会被裁掉。
|
|
27
33
|
*
|
|
28
34
|
* ## 键盘可达性
|
|
29
35
|
*
|
|
30
|
-
*
|
|
31
|
-
* 每个字段;Escape
|
|
32
|
-
*
|
|
36
|
+
* 浮层带 `tabIndex={-1}` 并在打开时聚焦,Tab 因此从面板内部开始按 DOM 顺序走遍
|
|
37
|
+
* 每个字段;Escape 关闭(`keydown` 捕获阶段处理,输入框里的 Escape 也生效);
|
|
38
|
+
* 关闭后焦点还给打开它的元素。
|
|
33
39
|
*
|
|
34
40
|
* @module @eddyskywalker/dsh-chatgpt-subscription/client/minimax-code/video-form-dialog
|
|
35
41
|
*/
|
|
36
|
-
import { type
|
|
42
|
+
import { type VideoDefaults } from './video-form-rules.ts';
|
|
43
|
+
import type { WorkspaceLister } from './video-workspace.ts';
|
|
37
44
|
import type { MinimaxCodeLocaleKey } from './locales.ts';
|
|
45
|
+
export { defaultPreset, videoPresets, type VideoPreset } from './video-presets.ts';
|
|
38
46
|
/** 翻译函数的座位:参数化的键允许带模板参数。 */
|
|
39
47
|
export type Translate = (key: MinimaxCodeLocaleKey, params?: Record<string, string | number>) => string;
|
|
40
48
|
/** 弹窗的全部入参。 */
|
|
41
49
|
export interface VideoFormDialogProps {
|
|
42
50
|
/** 是否显示。 */
|
|
43
51
|
readonly open: boolean;
|
|
44
|
-
/** 关闭(Escape
|
|
52
|
+
/** 关闭(Escape、点浮层外、取消按钮都走这里)。 */
|
|
45
53
|
readonly onClose: () => void;
|
|
46
54
|
/**
|
|
47
55
|
* 提交:把拼好的那段话交给调用方。
|
|
48
56
|
*
|
|
49
57
|
* **返回 false 表示没有填进去**(这个会话没有输入框),弹窗据此显示一句错误而
|
|
50
|
-
*
|
|
58
|
+
* 不是假装成功。
|
|
51
59
|
*/
|
|
52
60
|
readonly onSubmit: (text: string) => boolean;
|
|
53
61
|
/** 初始值:设置页里的默认参数。 */
|
|
54
62
|
readonly defaults?: VideoDefaults;
|
|
63
|
+
/**
|
|
64
|
+
* 打开时输入框里已有的文字。
|
|
65
|
+
*
|
|
66
|
+
* 有的话直接当成画面描述带进来——用户常常先写了一句话才想起要用面板,把那段
|
|
67
|
+
* 话再抄一遍是最没必要的一次劳动。
|
|
68
|
+
*/
|
|
69
|
+
readonly seedPrompt?: string;
|
|
70
|
+
/**
|
|
71
|
+
* 列出工作区目录,供媒体块的 `@` 补全。
|
|
72
|
+
*
|
|
73
|
+
* 缺席时媒体块退化为「拖拽 / 粘贴 / 手填路径」,不报错。
|
|
74
|
+
*/
|
|
75
|
+
readonly listWorkspace?: WorkspaceLister | undefined;
|
|
55
76
|
/** 翻译函数。 */
|
|
56
77
|
readonly t: Translate;
|
|
57
78
|
}
|
|
58
79
|
/**
|
|
59
|
-
*
|
|
80
|
+
* 参数面板。
|
|
60
81
|
*
|
|
61
82
|
* 受控到组件内部:`/video` 只负责开与关,表单状态活在这里,关闭即丢弃——一次
|
|
62
83
|
* 生成填一次参数,没有「上次填到一半」的语义要维护。
|
|
63
84
|
*/
|
|
64
|
-
export declare function VideoFormDialog({ open, onClose, onSubmit, defaults, t }: VideoFormDialogProps): React.JSX.Element | null;
|
|
65
|
-
/** 预设档:popupSelect 的每一行,都是**实测合法**的组合。 */
|
|
66
|
-
export interface VideoPreset {
|
|
67
|
-
readonly id: string;
|
|
68
|
-
readonly model: MinimaxVideoModel;
|
|
69
|
-
readonly ratio: MinimaxVideoRatio | undefined;
|
|
70
|
-
readonly durationSeconds: number;
|
|
71
|
-
readonly resolution: MinimaxVideoResolution;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* 预设档表。
|
|
75
|
-
*
|
|
76
|
-
* 每一行都是「模型 × 比例 × 时长 × 分辨率」的一个**实测合法**组合:
|
|
77
|
-
*
|
|
78
|
-
* - H3:4-15 秒、768P/2K;H3-Max:5-15 秒、480P/768P;Hailuo:6 或 10 秒、768P/1080P;
|
|
79
|
-
* - 比例是纯文本分支,所以 `adaptive` 一律不出现(那是首帧/参考媒体的分支才会有的值)。
|
|
80
|
-
*
|
|
81
|
-
* 时长都取各模型的下界,理由与 {@link defaultDuration} 相同:第一档应当是最便宜的
|
|
82
|
-
* 一次生成。用户要别的组合,走「自定义…」。
|
|
83
|
-
*/
|
|
84
|
-
export declare function videoPresets(t: Translate): readonly {
|
|
85
|
-
readonly preset: VideoPreset;
|
|
86
|
-
readonly label: string;
|
|
87
|
-
}[];
|
|
88
|
-
/** 默认的一档:H3 的合法下界,也就是 {@link DEFAULT_MINIMAX_VIDEO_MODEL} 自己的默认值。 */
|
|
89
|
-
export declare function defaultPreset(): VideoPreset | undefined;
|
|
85
|
+
export declare function VideoFormDialog({ open, onClose, onSubmit, defaults, seedPrompt, listWorkspace, t, }: VideoFormDialogProps): React.JSX.Element | null;
|
|
90
86
|
//# sourceMappingURL=VideoFormDialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoFormDialog.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/VideoFormDialog.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"VideoFormDialog.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/VideoFormDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAIH,OAAO,EAeL,KAAK,aAAa,EAGnB,MAAM,uBAAuB,CAAA;AAI9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGxD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAElF,4BAA4B;AAC5B,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,oBAAoB,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAA;AAEvG,eAAe;AACf,MAAM,WAAW,oBAAoB;IACnC,YAAY;IACZ,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,gCAAgC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;IAC5C,qBAAqB;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,eAAe,GAAG,SAAS,CAAA;IACpD,YAAY;IACZ,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAA;CACtB;AAkBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,GAChE,EAAE,oBAAoB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA0ejD"}
|
|
@@ -122,14 +122,14 @@ export declare const zh: {
|
|
|
122
122
|
readonly videoSize: "{size}";
|
|
123
123
|
readonly videoTitle: "视频";
|
|
124
124
|
readonly videoCommandLabel: "生成视频";
|
|
125
|
-
readonly videoCommandDesc: "
|
|
125
|
+
readonly videoCommandDesc: "写一句描述,选好参数再填入输入框";
|
|
126
126
|
readonly videoPresetGroup: "常用档位";
|
|
127
127
|
readonly videoPresetCustom: "自定义…";
|
|
128
128
|
readonly videoPresetCustomDesc: "打开完整参数表单";
|
|
129
|
-
readonly videoDialogTitle: "
|
|
130
|
-
readonly videoDialogDesc: "
|
|
131
|
-
readonly videoPromptLabel: "
|
|
132
|
-
readonly videoPromptPlaceholder: "
|
|
129
|
+
readonly videoDialogTitle: "生成视频";
|
|
130
|
+
readonly videoDialogDesc: "填好后写入输入框,确认无误再发送";
|
|
131
|
+
readonly videoPromptLabel: "画面描述";
|
|
132
|
+
readonly videoPromptPlaceholder: "描述你想要的画面,比如「黄昏的海岸线,浪打在礁石上,镜头缓慢横移」";
|
|
133
133
|
readonly videoPromptRequired: "请先填提示词";
|
|
134
134
|
readonly videoModelLabel: "模型";
|
|
135
135
|
readonly videoRatioLabel: "比例";
|
|
@@ -140,7 +140,7 @@ export declare const zh: {
|
|
|
140
140
|
readonly videoResolutionLabel: "分辨率";
|
|
141
141
|
readonly videoWatermarkLabel: "AIGC 水印";
|
|
142
142
|
readonly videoMediaSection: "参考媒体";
|
|
143
|
-
readonly videoMediaHint: "
|
|
143
|
+
readonly videoMediaHint: "拖入文件、粘贴路径或链接,也可以浏览选择";
|
|
144
144
|
readonly videoInputImageLabel: "首帧图";
|
|
145
145
|
readonly videoLastFrameLabel: "末帧图";
|
|
146
146
|
readonly videoReferenceImagesLabel: "参考图";
|
|
@@ -154,6 +154,26 @@ export declare const zh: {
|
|
|
154
154
|
readonly videoTooManyAudios: "参考音频有 {count} 个,最多 {limit} 个";
|
|
155
155
|
readonly videoTooManyTotal: "参考媒体共 {count} 个,最多 {limit} 个";
|
|
156
156
|
readonly videoDurationInvalid: "{model} 不支持 {duration} 秒";
|
|
157
|
+
readonly videoMediaBrowse: "浏览…";
|
|
158
|
+
readonly videoMediaAdd: "添加";
|
|
159
|
+
readonly videoMediaAddMore: "再添一条";
|
|
160
|
+
readonly videoMediaManualPlaceholder: "拖入文件,或填路径 / @工作区文件";
|
|
161
|
+
readonly videoMediaSuggestLabel: "工作区文件";
|
|
162
|
+
readonly videoMediaSuggestFolder: "目录";
|
|
163
|
+
readonly videoMediaPaste: "粘贴";
|
|
164
|
+
readonly videoMediaDragHint: "拖到这里";
|
|
165
|
+
readonly videoMediaDragActive: "松手加入";
|
|
166
|
+
readonly videoMediaRemove: "移除 {name}";
|
|
167
|
+
readonly videoMediaEmpty: "还没有文件";
|
|
168
|
+
readonly videoMediaUrlRejected: "这个链接服务端不会读取,只接受本机路径或 MiniMax 自己的 CDN 地址";
|
|
169
|
+
readonly videoReferenceVideoDurationOne: "{name} 的时长";
|
|
170
|
+
readonly videoReferenceVideoDurationPlaceholder: "秒数";
|
|
171
|
+
readonly videoReferenceVideoDurationWhy: "链接上的视频读不到时长,不填会在提交时被拒";
|
|
172
|
+
readonly videoUrlNeedsDuration: "参考视频里有 CDN 链接,请在下方补上它的秒数";
|
|
173
|
+
readonly videoMediaNoPath: "这个文件拿不到本机路径,请改用「浏览」或直接粘贴路径";
|
|
174
|
+
readonly videoTierLabel: "档位";
|
|
175
|
+
readonly videoAdvanced: "更多参数";
|
|
176
|
+
readonly videoPromptFromComposer: "已带入输入框里的文字";
|
|
157
177
|
readonly videoSubmit: "填入输入框";
|
|
158
178
|
readonly videoCancel: "取消";
|
|
159
179
|
readonly videoClose: "关闭";
|
|
@@ -331,14 +351,14 @@ export declare const dictionaries: {
|
|
|
331
351
|
readonly videoSize: "{size}";
|
|
332
352
|
readonly videoTitle: "视频";
|
|
333
353
|
readonly videoCommandLabel: "生成视频";
|
|
334
|
-
readonly videoCommandDesc: "
|
|
354
|
+
readonly videoCommandDesc: "写一句描述,选好参数再填入输入框";
|
|
335
355
|
readonly videoPresetGroup: "常用档位";
|
|
336
356
|
readonly videoPresetCustom: "自定义…";
|
|
337
357
|
readonly videoPresetCustomDesc: "打开完整参数表单";
|
|
338
|
-
readonly videoDialogTitle: "
|
|
339
|
-
readonly videoDialogDesc: "
|
|
340
|
-
readonly videoPromptLabel: "
|
|
341
|
-
readonly videoPromptPlaceholder: "
|
|
358
|
+
readonly videoDialogTitle: "生成视频";
|
|
359
|
+
readonly videoDialogDesc: "填好后写入输入框,确认无误再发送";
|
|
360
|
+
readonly videoPromptLabel: "画面描述";
|
|
361
|
+
readonly videoPromptPlaceholder: "描述你想要的画面,比如「黄昏的海岸线,浪打在礁石上,镜头缓慢横移」";
|
|
342
362
|
readonly videoPromptRequired: "请先填提示词";
|
|
343
363
|
readonly videoModelLabel: "模型";
|
|
344
364
|
readonly videoRatioLabel: "比例";
|
|
@@ -349,7 +369,7 @@ export declare const dictionaries: {
|
|
|
349
369
|
readonly videoResolutionLabel: "分辨率";
|
|
350
370
|
readonly videoWatermarkLabel: "AIGC 水印";
|
|
351
371
|
readonly videoMediaSection: "参考媒体";
|
|
352
|
-
readonly videoMediaHint: "
|
|
372
|
+
readonly videoMediaHint: "拖入文件、粘贴路径或链接,也可以浏览选择";
|
|
353
373
|
readonly videoInputImageLabel: "首帧图";
|
|
354
374
|
readonly videoLastFrameLabel: "末帧图";
|
|
355
375
|
readonly videoReferenceImagesLabel: "参考图";
|
|
@@ -363,6 +383,26 @@ export declare const dictionaries: {
|
|
|
363
383
|
readonly videoTooManyAudios: "参考音频有 {count} 个,最多 {limit} 个";
|
|
364
384
|
readonly videoTooManyTotal: "参考媒体共 {count} 个,最多 {limit} 个";
|
|
365
385
|
readonly videoDurationInvalid: "{model} 不支持 {duration} 秒";
|
|
386
|
+
readonly videoMediaBrowse: "浏览…";
|
|
387
|
+
readonly videoMediaAdd: "添加";
|
|
388
|
+
readonly videoMediaAddMore: "再添一条";
|
|
389
|
+
readonly videoMediaManualPlaceholder: "拖入文件,或填路径 / @工作区文件";
|
|
390
|
+
readonly videoMediaSuggestLabel: "工作区文件";
|
|
391
|
+
readonly videoMediaSuggestFolder: "目录";
|
|
392
|
+
readonly videoMediaPaste: "粘贴";
|
|
393
|
+
readonly videoMediaDragHint: "拖到这里";
|
|
394
|
+
readonly videoMediaDragActive: "松手加入";
|
|
395
|
+
readonly videoMediaRemove: "移除 {name}";
|
|
396
|
+
readonly videoMediaEmpty: "还没有文件";
|
|
397
|
+
readonly videoMediaUrlRejected: "这个链接服务端不会读取,只接受本机路径或 MiniMax 自己的 CDN 地址";
|
|
398
|
+
readonly videoReferenceVideoDurationOne: "{name} 的时长";
|
|
399
|
+
readonly videoReferenceVideoDurationPlaceholder: "秒数";
|
|
400
|
+
readonly videoReferenceVideoDurationWhy: "链接上的视频读不到时长,不填会在提交时被拒";
|
|
401
|
+
readonly videoUrlNeedsDuration: "参考视频里有 CDN 链接,请在下方补上它的秒数";
|
|
402
|
+
readonly videoMediaNoPath: "这个文件拿不到本机路径,请改用「浏览」或直接粘贴路径";
|
|
403
|
+
readonly videoTierLabel: "档位";
|
|
404
|
+
readonly videoAdvanced: "更多参数";
|
|
405
|
+
readonly videoPromptFromComposer: "已带入输入框里的文字";
|
|
366
406
|
readonly videoSubmit: "填入输入框";
|
|
367
407
|
readonly videoCancel: "取消";
|
|
368
408
|
readonly videoClose: "关闭";
|
|
@@ -538,14 +578,14 @@ export declare const dictionaries: {
|
|
|
538
578
|
readonly videoSize: "{size}";
|
|
539
579
|
readonly videoTitle: "视频";
|
|
540
580
|
readonly videoCommandLabel: "生成视频";
|
|
541
|
-
readonly videoCommandDesc: "
|
|
581
|
+
readonly videoCommandDesc: "写一句描述,选好参数再填入输入框";
|
|
542
582
|
readonly videoPresetGroup: "常用档位";
|
|
543
583
|
readonly videoPresetCustom: "自定义…";
|
|
544
584
|
readonly videoPresetCustomDesc: "打开完整参数表单";
|
|
545
|
-
readonly videoDialogTitle: "
|
|
546
|
-
readonly videoDialogDesc: "
|
|
547
|
-
readonly videoPromptLabel: "
|
|
548
|
-
readonly videoPromptPlaceholder: "
|
|
585
|
+
readonly videoDialogTitle: "生成视频";
|
|
586
|
+
readonly videoDialogDesc: "填好后写入输入框,确认无误再发送";
|
|
587
|
+
readonly videoPromptLabel: "画面描述";
|
|
588
|
+
readonly videoPromptPlaceholder: "描述你想要的画面,比如「黄昏的海岸线,浪打在礁石上,镜头缓慢横移」";
|
|
549
589
|
readonly videoPromptRequired: "请先填提示词";
|
|
550
590
|
readonly videoModelLabel: "模型";
|
|
551
591
|
readonly videoRatioLabel: "比例";
|
|
@@ -556,7 +596,7 @@ export declare const dictionaries: {
|
|
|
556
596
|
readonly videoResolutionLabel: "分辨率";
|
|
557
597
|
readonly videoWatermarkLabel: "AIGC 水印";
|
|
558
598
|
readonly videoMediaSection: "参考媒体";
|
|
559
|
-
readonly videoMediaHint: "
|
|
599
|
+
readonly videoMediaHint: "拖入文件、粘贴路径或链接,也可以浏览选择";
|
|
560
600
|
readonly videoInputImageLabel: "首帧图";
|
|
561
601
|
readonly videoLastFrameLabel: "末帧图";
|
|
562
602
|
readonly videoReferenceImagesLabel: "参考图";
|
|
@@ -570,6 +610,26 @@ export declare const dictionaries: {
|
|
|
570
610
|
readonly videoTooManyAudios: "参考音频有 {count} 个,最多 {limit} 个";
|
|
571
611
|
readonly videoTooManyTotal: "参考媒体共 {count} 个,最多 {limit} 个";
|
|
572
612
|
readonly videoDurationInvalid: "{model} 不支持 {duration} 秒";
|
|
613
|
+
readonly videoMediaBrowse: "浏览…";
|
|
614
|
+
readonly videoMediaAdd: "添加";
|
|
615
|
+
readonly videoMediaAddMore: "再添一条";
|
|
616
|
+
readonly videoMediaManualPlaceholder: "拖入文件,或填路径 / @工作区文件";
|
|
617
|
+
readonly videoMediaSuggestLabel: "工作区文件";
|
|
618
|
+
readonly videoMediaSuggestFolder: "目录";
|
|
619
|
+
readonly videoMediaPaste: "粘贴";
|
|
620
|
+
readonly videoMediaDragHint: "拖到这里";
|
|
621
|
+
readonly videoMediaDragActive: "松手加入";
|
|
622
|
+
readonly videoMediaRemove: "移除 {name}";
|
|
623
|
+
readonly videoMediaEmpty: "还没有文件";
|
|
624
|
+
readonly videoMediaUrlRejected: "这个链接服务端不会读取,只接受本机路径或 MiniMax 自己的 CDN 地址";
|
|
625
|
+
readonly videoReferenceVideoDurationOne: "{name} 的时长";
|
|
626
|
+
readonly videoReferenceVideoDurationPlaceholder: "秒数";
|
|
627
|
+
readonly videoReferenceVideoDurationWhy: "链接上的视频读不到时长,不填会在提交时被拒";
|
|
628
|
+
readonly videoUrlNeedsDuration: "参考视频里有 CDN 链接,请在下方补上它的秒数";
|
|
629
|
+
readonly videoMediaNoPath: "这个文件拿不到本机路径,请改用「浏览」或直接粘贴路径";
|
|
630
|
+
readonly videoTierLabel: "档位";
|
|
631
|
+
readonly videoAdvanced: "更多参数";
|
|
632
|
+
readonly videoPromptFromComposer: "已带入输入框里的文字";
|
|
573
633
|
readonly videoSubmit: "填入输入框";
|
|
574
634
|
readonly videoCancel: "取消";
|
|
575
635
|
readonly videoClose: "关闭";
|
|
@@ -622,8 +682,8 @@ export declare const dictionaries: {
|
|
|
622
682
|
readonly quotaUsed: string;
|
|
623
683
|
readonly quotaFactsScope: string;
|
|
624
684
|
};
|
|
625
|
-
en: Record<"account" | "quotaRefreshing" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "expires" | "signIn" | "signOut" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "save" | "unknown" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "cooldownRemaining" | "cooldownRemainingSeconds" | "modelCooldown" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saving" | "quotaSection" | "resetUnavailable" | "loginFailed" | "cancelSignIn" | "testingConnection" | "testSuccess" | "testFailed" | "routeOwned" | "routeConflict" | "capImage" | "copied" | "openSignInPage" | "region" | "regionCn" | "testSuccessModel" | "modelsUnavailable" | "invalidCapacity" | "quotaRefresh" | "expiresAt" | "regionGlobal" | "deviceCodeSection" | "deviceCodeHint" | "copyCode" | "userCode" | "codeExpires" | "waitingAuthorization" | "accountLabel" | "expiresRemaining" | "expiresExpired" | "expiresHint" | "codeMinutes" | "loginExpired" | "loginDenied" | "logoutOwnedByApp" | "dailyCheckin" | "checkinHint" | "checkinAuto" | "checkinToday" | "checkinSkipped" | "checkinFailed" | "checkinStreak" | "checkinClaimed" | "checkinLastRun" | "checkinNever" | "checkinNow" | "checkinRunning" | "quotaUnavailable" | "quotaNeedsApiKey" | "quotaUnreachable" | "quotaTokenExpired" | "quotaStale" | "quotaUsedShare" | "resetSection" | "resetHint" | "resetConfirm" | "resetAvailable" | "resetNone" | "resetExpires" | "resetUse" | "resetUsing" | "resetRefresh" | "resetRefreshing" | "resetFlowTitle" | "resetFlowEmpty" | "resetFlowGrant" | "resetFlowUse" | "resetOutcomeSuccess" | "resetOutcomeReplayed" | "resetOutcomeUncertain" | "resetOutcomeExpired" | "resetOutcomeNotFound" | "thinkingAlwaysOn" | "thinkingToggle" | "thinkingForced" | "capText" | "videoToolTitle" | "videoToolRunning" | "videoToolDone" | "videoToolFailed" | "videoGenerating" | "videoReading" | "videoTooLarge" | "videoUnreadable" | "videoUnplayable" | "videoNoMeta" | "videoChannelOff" | "videoFailed" | "videoSize" | "videoTitle" | "videoCommandLabel" | "videoCommandDesc" | "videoPresetGroup" | "videoPresetCustom" | "videoPresetCustomDesc" | "videoDialogTitle" | "videoDialogDesc" | "videoPromptLabel" | "videoPromptPlaceholder" | "videoPromptRequired" | "videoModelLabel" | "videoRatioLabel" | "videoRatioLockedKeyframes" | "videoRatioLockedTextOnly" | "videoDurationLabel" | "videoDurationUnit" | "videoResolutionLabel" | "videoWatermarkLabel" | "videoMediaSection" | "videoMediaHint" | "videoInputImageLabel" | "videoLastFrameLabel" | "videoReferenceImagesLabel" | "videoReferenceVideosLabel" | "videoReferenceVideoDurationsLabel" | "videoReferenceAudiosLabel" | "videoMediaUnsupported" | "videoLastFrameUnsupported" | "videoTooManyImages" | "videoTooManyVideos" | "videoTooManyAudios" | "videoTooManyTotal" | "videoDurationInvalid" | "videoSubmit" | "videoCancel" | "videoClose" | "videoDraftFilled" | "videoDraftFailed" | "videoNotMinimax" | "videoDefaultsSection" | "videoDefaultsHint" | "videoDefaultsSaved" | "videoHistorySection" | "videoHistoryHint" | "videoHistoryEmpty" | "videoHistoryUnavailable" | "videoHistoryRefresh" | "videoHistoryRefreshing" | "videoHistoryAt" | "videoHistoryMeta" | "videoHistoryNoRatio" | "videoHistoryStorage" | "videoHistoryEncrypted" | "videoHistoryPlain", string>;
|
|
626
|
-
'en-US': Record<"account" | "quotaRefreshing" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "expires" | "signIn" | "signOut" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "save" | "unknown" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "cooldownRemaining" | "cooldownRemainingSeconds" | "modelCooldown" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saving" | "quotaSection" | "resetUnavailable" | "loginFailed" | "cancelSignIn" | "testingConnection" | "testSuccess" | "testFailed" | "routeOwned" | "routeConflict" | "capImage" | "copied" | "openSignInPage" | "region" | "regionCn" | "testSuccessModel" | "modelsUnavailable" | "invalidCapacity" | "quotaRefresh" | "expiresAt" | "regionGlobal" | "deviceCodeSection" | "deviceCodeHint" | "copyCode" | "userCode" | "codeExpires" | "waitingAuthorization" | "accountLabel" | "expiresRemaining" | "expiresExpired" | "expiresHint" | "codeMinutes" | "loginExpired" | "loginDenied" | "logoutOwnedByApp" | "dailyCheckin" | "checkinHint" | "checkinAuto" | "checkinToday" | "checkinSkipped" | "checkinFailed" | "checkinStreak" | "checkinClaimed" | "checkinLastRun" | "checkinNever" | "checkinNow" | "checkinRunning" | "quotaUnavailable" | "quotaNeedsApiKey" | "quotaUnreachable" | "quotaTokenExpired" | "quotaStale" | "quotaUsedShare" | "resetSection" | "resetHint" | "resetConfirm" | "resetAvailable" | "resetNone" | "resetExpires" | "resetUse" | "resetUsing" | "resetRefresh" | "resetRefreshing" | "resetFlowTitle" | "resetFlowEmpty" | "resetFlowGrant" | "resetFlowUse" | "resetOutcomeSuccess" | "resetOutcomeReplayed" | "resetOutcomeUncertain" | "resetOutcomeExpired" | "resetOutcomeNotFound" | "thinkingAlwaysOn" | "thinkingToggle" | "thinkingForced" | "capText" | "videoToolTitle" | "videoToolRunning" | "videoToolDone" | "videoToolFailed" | "videoGenerating" | "videoReading" | "videoTooLarge" | "videoUnreadable" | "videoUnplayable" | "videoNoMeta" | "videoChannelOff" | "videoFailed" | "videoSize" | "videoTitle" | "videoCommandLabel" | "videoCommandDesc" | "videoPresetGroup" | "videoPresetCustom" | "videoPresetCustomDesc" | "videoDialogTitle" | "videoDialogDesc" | "videoPromptLabel" | "videoPromptPlaceholder" | "videoPromptRequired" | "videoModelLabel" | "videoRatioLabel" | "videoRatioLockedKeyframes" | "videoRatioLockedTextOnly" | "videoDurationLabel" | "videoDurationUnit" | "videoResolutionLabel" | "videoWatermarkLabel" | "videoMediaSection" | "videoMediaHint" | "videoInputImageLabel" | "videoLastFrameLabel" | "videoReferenceImagesLabel" | "videoReferenceVideosLabel" | "videoReferenceVideoDurationsLabel" | "videoReferenceAudiosLabel" | "videoMediaUnsupported" | "videoLastFrameUnsupported" | "videoTooManyImages" | "videoTooManyVideos" | "videoTooManyAudios" | "videoTooManyTotal" | "videoDurationInvalid" | "videoSubmit" | "videoCancel" | "videoClose" | "videoDraftFilled" | "videoDraftFailed" | "videoNotMinimax" | "videoDefaultsSection" | "videoDefaultsHint" | "videoDefaultsSaved" | "videoHistorySection" | "videoHistoryHint" | "videoHistoryEmpty" | "videoHistoryUnavailable" | "videoHistoryRefresh" | "videoHistoryRefreshing" | "videoHistoryAt" | "videoHistoryMeta" | "videoHistoryNoRatio" | "videoHistoryStorage" | "videoHistoryEncrypted" | "videoHistoryPlain", string>;
|
|
685
|
+
en: Record<"account" | "quotaRefreshing" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "expires" | "signIn" | "signOut" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "save" | "unknown" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "cooldownRemaining" | "cooldownRemainingSeconds" | "modelCooldown" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saving" | "quotaSection" | "resetUnavailable" | "loginFailed" | "cancelSignIn" | "testingConnection" | "testSuccess" | "testFailed" | "routeOwned" | "routeConflict" | "capImage" | "copied" | "openSignInPage" | "region" | "regionCn" | "testSuccessModel" | "modelsUnavailable" | "invalidCapacity" | "quotaRefresh" | "expiresAt" | "regionGlobal" | "deviceCodeSection" | "deviceCodeHint" | "copyCode" | "userCode" | "codeExpires" | "waitingAuthorization" | "accountLabel" | "expiresRemaining" | "expiresExpired" | "expiresHint" | "codeMinutes" | "loginExpired" | "loginDenied" | "logoutOwnedByApp" | "dailyCheckin" | "checkinHint" | "checkinAuto" | "checkinToday" | "checkinSkipped" | "checkinFailed" | "checkinStreak" | "checkinClaimed" | "checkinLastRun" | "checkinNever" | "checkinNow" | "checkinRunning" | "quotaUnavailable" | "quotaNeedsApiKey" | "quotaUnreachable" | "quotaTokenExpired" | "quotaStale" | "quotaUsedShare" | "resetSection" | "resetHint" | "resetConfirm" | "resetAvailable" | "resetNone" | "resetExpires" | "resetUse" | "resetUsing" | "resetRefresh" | "resetRefreshing" | "resetFlowTitle" | "resetFlowEmpty" | "resetFlowGrant" | "resetFlowUse" | "resetOutcomeSuccess" | "resetOutcomeReplayed" | "resetOutcomeUncertain" | "resetOutcomeExpired" | "resetOutcomeNotFound" | "thinkingAlwaysOn" | "thinkingToggle" | "thinkingForced" | "capText" | "videoToolTitle" | "videoToolRunning" | "videoToolDone" | "videoToolFailed" | "videoGenerating" | "videoReading" | "videoTooLarge" | "videoUnreadable" | "videoUnplayable" | "videoNoMeta" | "videoChannelOff" | "videoFailed" | "videoSize" | "videoTitle" | "videoCommandLabel" | "videoCommandDesc" | "videoPresetGroup" | "videoPresetCustom" | "videoPresetCustomDesc" | "videoDialogTitle" | "videoDialogDesc" | "videoPromptLabel" | "videoPromptPlaceholder" | "videoPromptRequired" | "videoModelLabel" | "videoRatioLabel" | "videoRatioLockedKeyframes" | "videoRatioLockedTextOnly" | "videoDurationLabel" | "videoDurationUnit" | "videoResolutionLabel" | "videoWatermarkLabel" | "videoMediaSection" | "videoMediaHint" | "videoInputImageLabel" | "videoLastFrameLabel" | "videoReferenceImagesLabel" | "videoReferenceVideosLabel" | "videoReferenceVideoDurationsLabel" | "videoReferenceAudiosLabel" | "videoMediaUnsupported" | "videoLastFrameUnsupported" | "videoTooManyImages" | "videoTooManyVideos" | "videoTooManyAudios" | "videoTooManyTotal" | "videoDurationInvalid" | "videoMediaBrowse" | "videoMediaAdd" | "videoMediaAddMore" | "videoMediaManualPlaceholder" | "videoMediaSuggestLabel" | "videoMediaSuggestFolder" | "videoMediaPaste" | "videoMediaDragHint" | "videoMediaDragActive" | "videoMediaRemove" | "videoMediaEmpty" | "videoMediaUrlRejected" | "videoReferenceVideoDurationOne" | "videoReferenceVideoDurationPlaceholder" | "videoReferenceVideoDurationWhy" | "videoUrlNeedsDuration" | "videoMediaNoPath" | "videoTierLabel" | "videoAdvanced" | "videoPromptFromComposer" | "videoSubmit" | "videoCancel" | "videoClose" | "videoDraftFilled" | "videoDraftFailed" | "videoNotMinimax" | "videoDefaultsSection" | "videoDefaultsHint" | "videoDefaultsSaved" | "videoHistorySection" | "videoHistoryHint" | "videoHistoryEmpty" | "videoHistoryUnavailable" | "videoHistoryRefresh" | "videoHistoryRefreshing" | "videoHistoryAt" | "videoHistoryMeta" | "videoHistoryNoRatio" | "videoHistoryStorage" | "videoHistoryEncrypted" | "videoHistoryPlain", string>;
|
|
686
|
+
'en-US': Record<"account" | "quotaRefreshing" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "expires" | "signIn" | "signOut" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "save" | "unknown" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "cooldownRemaining" | "cooldownRemainingSeconds" | "modelCooldown" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saving" | "quotaSection" | "resetUnavailable" | "loginFailed" | "cancelSignIn" | "testingConnection" | "testSuccess" | "testFailed" | "routeOwned" | "routeConflict" | "capImage" | "copied" | "openSignInPage" | "region" | "regionCn" | "testSuccessModel" | "modelsUnavailable" | "invalidCapacity" | "quotaRefresh" | "expiresAt" | "regionGlobal" | "deviceCodeSection" | "deviceCodeHint" | "copyCode" | "userCode" | "codeExpires" | "waitingAuthorization" | "accountLabel" | "expiresRemaining" | "expiresExpired" | "expiresHint" | "codeMinutes" | "loginExpired" | "loginDenied" | "logoutOwnedByApp" | "dailyCheckin" | "checkinHint" | "checkinAuto" | "checkinToday" | "checkinSkipped" | "checkinFailed" | "checkinStreak" | "checkinClaimed" | "checkinLastRun" | "checkinNever" | "checkinNow" | "checkinRunning" | "quotaUnavailable" | "quotaNeedsApiKey" | "quotaUnreachable" | "quotaTokenExpired" | "quotaStale" | "quotaUsedShare" | "resetSection" | "resetHint" | "resetConfirm" | "resetAvailable" | "resetNone" | "resetExpires" | "resetUse" | "resetUsing" | "resetRefresh" | "resetRefreshing" | "resetFlowTitle" | "resetFlowEmpty" | "resetFlowGrant" | "resetFlowUse" | "resetOutcomeSuccess" | "resetOutcomeReplayed" | "resetOutcomeUncertain" | "resetOutcomeExpired" | "resetOutcomeNotFound" | "thinkingAlwaysOn" | "thinkingToggle" | "thinkingForced" | "capText" | "videoToolTitle" | "videoToolRunning" | "videoToolDone" | "videoToolFailed" | "videoGenerating" | "videoReading" | "videoTooLarge" | "videoUnreadable" | "videoUnplayable" | "videoNoMeta" | "videoChannelOff" | "videoFailed" | "videoSize" | "videoTitle" | "videoCommandLabel" | "videoCommandDesc" | "videoPresetGroup" | "videoPresetCustom" | "videoPresetCustomDesc" | "videoDialogTitle" | "videoDialogDesc" | "videoPromptLabel" | "videoPromptPlaceholder" | "videoPromptRequired" | "videoModelLabel" | "videoRatioLabel" | "videoRatioLockedKeyframes" | "videoRatioLockedTextOnly" | "videoDurationLabel" | "videoDurationUnit" | "videoResolutionLabel" | "videoWatermarkLabel" | "videoMediaSection" | "videoMediaHint" | "videoInputImageLabel" | "videoLastFrameLabel" | "videoReferenceImagesLabel" | "videoReferenceVideosLabel" | "videoReferenceVideoDurationsLabel" | "videoReferenceAudiosLabel" | "videoMediaUnsupported" | "videoLastFrameUnsupported" | "videoTooManyImages" | "videoTooManyVideos" | "videoTooManyAudios" | "videoTooManyTotal" | "videoDurationInvalid" | "videoMediaBrowse" | "videoMediaAdd" | "videoMediaAddMore" | "videoMediaManualPlaceholder" | "videoMediaSuggestLabel" | "videoMediaSuggestFolder" | "videoMediaPaste" | "videoMediaDragHint" | "videoMediaDragActive" | "videoMediaRemove" | "videoMediaEmpty" | "videoMediaUrlRejected" | "videoReferenceVideoDurationOne" | "videoReferenceVideoDurationPlaceholder" | "videoReferenceVideoDurationWhy" | "videoUrlNeedsDuration" | "videoMediaNoPath" | "videoTierLabel" | "videoAdvanced" | "videoPromptFromComposer" | "videoSubmit" | "videoCancel" | "videoClose" | "videoDraftFilled" | "videoDraftFailed" | "videoNotMinimax" | "videoDefaultsSection" | "videoDefaultsHint" | "videoDefaultsSaved" | "videoHistorySection" | "videoHistoryHint" | "videoHistoryEmpty" | "videoHistoryUnavailable" | "videoHistoryRefresh" | "videoHistoryRefreshing" | "videoHistoryAt" | "videoHistoryMeta" | "videoHistoryNoRatio" | "videoHistoryStorage" | "videoHistoryEncrypted" | "videoHistoryPlain", string>;
|
|
627
687
|
};
|
|
628
688
|
export type MinimaxCodeLocaleKey = keyof typeof zh;
|
|
629
689
|
//# sourceMappingURL=locales.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/locales.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,qBAAqB,CAAA;AAEjD,eAAO,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/locales.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,qBAAqB,CAAA;AAEjD,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8ML,CAAA;AAEV,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,OAAO,EAAE,EAAE,MAAM,CAqM9C,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKxB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,oCAAoC,CAAA;AAEzD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,oCAAoC,CAAA;AAEzD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAgK/C"}
|
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* 「/video 命令 +
|
|
2
|
+
* 「/video 命令 + 参数面板」的挂载点,由 `src/client/index.tsx` 调用。
|
|
3
3
|
*
|
|
4
4
|
* 挂两样东西:
|
|
5
5
|
*
|
|
6
|
-
* 1.
|
|
7
|
-
*
|
|
6
|
+
* 1. **面板的渲染座位**:一个客户端容器,portal 到 `document.body`。它不挂在任何
|
|
7
|
+
* 会话槽位上——面板是**全局**的,而 `/video` 命令的回调在一段没有 React 树的
|
|
8
8
|
* 代码里;把两者连起来的是这个容器持有的 `open` 状态加一个模块级句柄。
|
|
9
|
-
* 2. **命令本体**:`createVideoCommand` 产出的
|
|
9
|
+
* 2. **命令本体**:`createVideoCommand` 产出的 action 贡献,注册到
|
|
10
10
|
* `ctx.commandUi`,与宿主 `ui-message-feedback` 的 `/feedback` 装饰同一形状。
|
|
11
11
|
*
|
|
12
12
|
* ## 为什么命令回调要经过一个句柄
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* 命令的回调是普通函数,不是 React 组件,拿不到 setState。所以容器把自己的
|
|
15
|
+
* `openForm` 登记到一个模块级的可变引用上,命令回调通过它打开面板。容器卸载时
|
|
16
|
+
* 把这个引用清掉(只清自己那一个),回调因此永远调不到一个已卸载的组件。
|
|
17
|
+
*
|
|
18
|
+
* ## 打开面板时顺手读一次输入框
|
|
19
|
+
*
|
|
20
|
+
* 用户常常先写了一句话才想起要用面板。命令回调在这里取一次
|
|
21
|
+
* {@link composerDraftOf},交给面板当初始的「画面描述」——省掉一次抄写。读不到
|
|
22
|
+
* 就是空串,面板照常以空白打开。
|
|
17
23
|
*
|
|
18
24
|
* ## 注册失败了怎么办
|
|
19
25
|
*
|
|
@@ -25,7 +31,7 @@
|
|
|
25
31
|
import type { Context as ClientContext } from '@deepseek-ai/cordis';
|
|
26
32
|
import { type VideoDefaults } from './video-form-rules.ts';
|
|
27
33
|
/**
|
|
28
|
-
*
|
|
34
|
+
* 打开参数面板。
|
|
29
35
|
*
|
|
30
36
|
* 没有容器挂着时什么也不做——插件被禁用、或页面还没挂载时调到这里,静默即可;
|
|
31
37
|
* 抛错只会让一次斜杠菜单点击变成控制台里的一条异常。
|
|
@@ -35,10 +41,10 @@ import { type VideoDefaults } from './video-form-rules.ts';
|
|
|
35
41
|
*/
|
|
36
42
|
export declare function openVideoForm(sessionId: string, defaults: VideoDefaults): void;
|
|
37
43
|
/**
|
|
38
|
-
*
|
|
44
|
+
* 构造面板容器。
|
|
39
45
|
*
|
|
40
|
-
* 常驻挂载、`open` 为 false 时渲染出 null
|
|
41
|
-
*
|
|
46
|
+
* 常驻挂载、`open` 为 false 时渲染出 null,而不是按需创建:请求来自命令回调,
|
|
47
|
+
* 那时组件树已经渲染完了,没有第二次渲染去创建它。
|
|
42
48
|
*
|
|
43
49
|
* @param ctx - 浏览器根上下文;提交时用它把文本写进对应会话的输入框。
|
|
44
50
|
* @returns 一个不需要 props 的组件。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video-command-host.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/video-command-host.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"video-command-host.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/video-command-host.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAKnE,OAAO,EAA0B,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAmBlF;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAE9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAoDzF;AA8BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,IAAI,CA6BlE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `/video` 在斜杠菜单里的字形。
|
|
3
|
+
*
|
|
4
|
+
* ## 为什么是自己画一个,而不是从宿主图标集里取
|
|
5
|
+
*
|
|
6
|
+
* 宿主的 `CommandContribution.icon` 收的是 `ComponentType<IconProps>`
|
|
7
|
+
* (`ui-commands/src/client/contract.ts:109`),而 `IconProps` 只活在
|
|
8
|
+
* `@deepseek-ai/dsh-client-ui-primitives` 里——那个包的 `lib` 是宿主装配产物,
|
|
9
|
+
* 本插件装不到(同 `progress-updates/markdown-lite.tsx:6` 记下的理由,也是
|
|
10
|
+
* `VideoFormDialog` 自己 portal 而不是用宿主 `Modal` 的同一个原因)。
|
|
11
|
+
*
|
|
12
|
+
* 宿主渲染时只传 `{ size, className }` 两个 prop(`MenuView.tsx:179-184`),所以
|
|
13
|
+
* 一个**结构上同形**的组件就够了:同样的 props、`currentColor` 描边、同样的
|
|
14
|
+
* 16 格视框与 1px 线宽——放在宿主那排图标里看不出是外来的。
|
|
15
|
+
*
|
|
16
|
+
* ## 为什么是「播放三角 + 画框」
|
|
17
|
+
*
|
|
18
|
+
* 菜单里已经有「压缩 / 权限 / 模型 / 导出」,字形都是线稿。播放三角说明这是
|
|
19
|
+
* 「产出画面」的入口,外框让它和纯播放按钮区分开:这是**生成**视频。
|
|
20
|
+
*
|
|
21
|
+
* @module @eddyskywalker/dsh-chatgpt-subscription/client/minimax-code/video-command-icon
|
|
22
|
+
*/
|
|
23
|
+
import type { ComponentType } from 'react';
|
|
24
|
+
/** 宿主图标的 props 形状(`@deepseek-ai/dsh-client-ui-primitives` 的 `IconProps`)。 */
|
|
25
|
+
export interface CommandIconProps {
|
|
26
|
+
/** 边长像素;缺省用字形自己的绘制尺寸。 */
|
|
27
|
+
readonly size?: number | undefined;
|
|
28
|
+
/** 布局用的额外 class;颜色一律走 `currentColor`。 */
|
|
29
|
+
readonly className?: string | undefined;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* `/video` 的菜单字形:画框里一枚播放三角。
|
|
33
|
+
*
|
|
34
|
+
* @param props - 尺寸与额外 class。
|
|
35
|
+
* @returns 一个 16 格视框的线稿图标。
|
|
36
|
+
*/
|
|
37
|
+
export declare const VideoCommandIcon: ComponentType<CommandIconProps>;
|
|
38
|
+
//# sourceMappingURL=video-command-icon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video-command-icon.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/video-command-icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C,6EAA6E;AAC7E,MAAM,WAAW,gBAAgB;IAC/B,yBAAyB;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,yCAAyC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACxC;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,CAc5D,CAAA"}
|