@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.
Files changed (131) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/README.md +112 -1
  3. package/lib/client.js +34731 -3832
  4. package/lib/client.js.map +1 -1
  5. package/lib/index.js +12922 -2851
  6. package/lib/types/client/cline-pass/ClinePassComposerQuota.d.ts +20 -0
  7. package/lib/types/client/cline-pass/ClinePassComposerQuota.d.ts.map +1 -0
  8. package/lib/types/client/cline-pass/ClinePassSection.d.ts +17 -0
  9. package/lib/types/client/cline-pass/ClinePassSection.d.ts.map +1 -0
  10. package/lib/types/client/cline-pass/api.d.ts +84 -0
  11. package/lib/types/client/cline-pass/api.d.ts.map +1 -0
  12. package/lib/types/client/cline-pass/locales.d.ts +1025 -0
  13. package/lib/types/client/cline-pass/locales.d.ts.map +1 -0
  14. package/lib/types/client/cline-pass/styles.d.ts +7 -0
  15. package/lib/types/client/cline-pass/styles.d.ts.map +1 -0
  16. package/lib/types/client/hub/brand-icons.d.ts +18 -2
  17. package/lib/types/client/hub/brand-icons.d.ts.map +1 -1
  18. package/lib/types/client/hub/hub-styles.d.ts.map +1 -1
  19. package/lib/types/client/hub/providers.d.ts.map +1 -1
  20. package/lib/types/client/index.d.ts +4 -0
  21. package/lib/types/client/index.d.ts.map +1 -1
  22. package/lib/types/client/mermaid/renderer.d.ts +23 -0
  23. package/lib/types/client/mermaid/renderer.d.ts.map +1 -1
  24. package/lib/types/client/minimax-code/MinimaxVideoDocumentBody.d.ts +31 -14
  25. package/lib/types/client/minimax-code/MinimaxVideoDocumentBody.d.ts.map +1 -1
  26. package/lib/types/client/minimax-code/MinimaxVideoToolView.d.ts.map +1 -1
  27. package/lib/types/client/minimax-code/VideoFormDialog.d.ts +46 -50
  28. package/lib/types/client/minimax-code/VideoFormDialog.d.ts.map +1 -1
  29. package/lib/types/client/minimax-code/locales.d.ts +80 -20
  30. package/lib/types/client/minimax-code/locales.d.ts.map +1 -1
  31. package/lib/types/client/minimax-code/styles.d.ts.map +1 -1
  32. package/lib/types/client/minimax-code/video-command-host.d.ts +17 -11
  33. package/lib/types/client/minimax-code/video-command-host.d.ts.map +1 -1
  34. package/lib/types/client/minimax-code/video-command-icon.d.ts +38 -0
  35. package/lib/types/client/minimax-code/video-command-icon.d.ts.map +1 -0
  36. package/lib/types/client/minimax-code/video-command.d.ts +53 -59
  37. package/lib/types/client/minimax-code/video-command.d.ts.map +1 -1
  38. package/lib/types/client/minimax-code/video-contract.d.ts +36 -0
  39. package/lib/types/client/minimax-code/video-contract.d.ts.map +1 -1
  40. package/lib/types/client/minimax-code/video-media-dropzone.d.ts +57 -0
  41. package/lib/types/client/minimax-code/video-media-dropzone.d.ts.map +1 -0
  42. package/lib/types/client/minimax-code/video-media-input.d.ts +173 -0
  43. package/lib/types/client/minimax-code/video-media-input.d.ts.map +1 -0
  44. package/lib/types/client/minimax-code/video-presets.d.ts +67 -0
  45. package/lib/types/client/minimax-code/video-presets.d.ts.map +1 -0
  46. package/lib/types/client/minimax-code/video-slots.d.ts +58 -5
  47. package/lib/types/client/minimax-code/video-slots.d.ts.map +1 -1
  48. package/lib/types/client/minimax-code/video-workspace.d.ts +41 -0
  49. package/lib/types/client/minimax-code/video-workspace.d.ts.map +1 -0
  50. package/lib/types/client/progress-updates/markdown-lite.d.ts +19 -6
  51. package/lib/types/client/progress-updates/markdown-lite.d.ts.map +1 -1
  52. package/lib/types/client/qoder/QoderComposerQuota.d.ts +41 -0
  53. package/lib/types/client/qoder/QoderComposerQuota.d.ts.map +1 -0
  54. package/lib/types/client/qoder/QoderSection.d.ts +26 -0
  55. package/lib/types/client/qoder/QoderSection.d.ts.map +1 -0
  56. package/lib/types/client/qoder/api.d.ts +4 -0
  57. package/lib/types/client/qoder/api.d.ts.map +1 -0
  58. package/lib/types/client/qoder/locales.d.ts +310 -0
  59. package/lib/types/client/qoder/locales.d.ts.map +1 -0
  60. package/lib/types/client/qoder/styles.d.ts +16 -0
  61. package/lib/types/client/qoder/styles.d.ts.map +1 -0
  62. package/lib/types/client/qoder/useQoderSection.d.ts +97 -0
  63. package/lib/types/client/qoder/useQoderSection.d.ts.map +1 -0
  64. package/lib/types/host/antigravity/adapter.d.ts.map +1 -1
  65. package/lib/types/host/cline-pass/account-pool.d.ts +63 -0
  66. package/lib/types/host/cline-pass/account-pool.d.ts.map +1 -0
  67. package/lib/types/host/cline-pass/adapter.d.ts +49 -0
  68. package/lib/types/host/cline-pass/adapter.d.ts.map +1 -0
  69. package/lib/types/host/cline-pass/catalog.d.ts +49 -0
  70. package/lib/types/host/cline-pass/catalog.d.ts.map +1 -0
  71. package/lib/types/host/cline-pass/client.d.ts +118 -0
  72. package/lib/types/host/cline-pass/client.d.ts.map +1 -0
  73. package/lib/types/host/cline-pass/engine.d.ts +223 -0
  74. package/lib/types/host/cline-pass/engine.d.ts.map +1 -0
  75. package/lib/types/host/cline-pass/line.d.ts +55 -0
  76. package/lib/types/host/cline-pass/line.d.ts.map +1 -0
  77. package/lib/types/host/cline-pass/mapper.d.ts +112 -0
  78. package/lib/types/host/cline-pass/mapper.d.ts.map +1 -0
  79. package/lib/types/host/cline-pass/oauth.d.ts +134 -0
  80. package/lib/types/host/cline-pass/oauth.d.ts.map +1 -0
  81. package/lib/types/host/cline-pass/protocol.d.ts +186 -0
  82. package/lib/types/host/cline-pass/protocol.d.ts.map +1 -0
  83. package/lib/types/host/cline-pass/routes.d.ts +71 -0
  84. package/lib/types/host/cline-pass/routes.d.ts.map +1 -0
  85. package/lib/types/host/cline-pass/store.d.ts +97 -0
  86. package/lib/types/host/cline-pass/store.d.ts.map +1 -0
  87. package/lib/types/host/cline-pass/token-store.d.ts +168 -0
  88. package/lib/types/host/cline-pass/token-store.d.ts.map +1 -0
  89. package/lib/types/host/cline-pass/tools.d.ts +21 -0
  90. package/lib/types/host/cline-pass/tools.d.ts.map +1 -0
  91. package/lib/types/host/cline-pass/types.d.ts +168 -0
  92. package/lib/types/host/cline-pass/types.d.ts.map +1 -0
  93. package/lib/types/host/common/model-request-control.d.ts +1 -1
  94. package/lib/types/host/common/model-request-control.d.ts.map +1 -1
  95. package/lib/types/host/common/request-diagnostics.d.ts +1 -1
  96. package/lib/types/host/common/request-diagnostics.d.ts.map +1 -1
  97. package/lib/types/host/kimi-code/adapter.d.ts +3 -1
  98. package/lib/types/host/kimi-code/adapter.d.ts.map +1 -1
  99. package/lib/types/host/kimi-code/mapper.d.ts.map +1 -1
  100. package/lib/types/host/qoder/account-pool.d.ts +137 -0
  101. package/lib/types/host/qoder/account-pool.d.ts.map +1 -0
  102. package/lib/types/host/qoder/adapter.d.ts +134 -0
  103. package/lib/types/host/qoder/adapter.d.ts.map +1 -0
  104. package/lib/types/host/qoder/adopt.d.ts +146 -0
  105. package/lib/types/host/qoder/adopt.d.ts.map +1 -0
  106. package/lib/types/host/qoder/client.d.ts +189 -0
  107. package/lib/types/host/qoder/client.d.ts.map +1 -0
  108. package/lib/types/host/qoder/cosy.d.ts +173 -0
  109. package/lib/types/host/qoder/cosy.d.ts.map +1 -0
  110. package/lib/types/host/qoder/mapper.d.ts +235 -0
  111. package/lib/types/host/qoder/mapper.d.ts.map +1 -0
  112. package/lib/types/host/qoder/model-catalog.d.ts +185 -0
  113. package/lib/types/host/qoder/model-catalog.d.ts.map +1 -0
  114. package/lib/types/host/qoder/oauth.d.ts +134 -0
  115. package/lib/types/host/qoder/oauth.d.ts.map +1 -0
  116. package/lib/types/host/qoder/routes.d.ts +96 -0
  117. package/lib/types/host/qoder/routes.d.ts.map +1 -0
  118. package/lib/types/host/qoder/token-store.d.ts +231 -0
  119. package/lib/types/host/qoder/token-store.d.ts.map +1 -0
  120. package/lib/types/host/qoder/types.d.ts +257 -0
  121. package/lib/types/host/qoder/types.d.ts.map +1 -0
  122. package/lib/types/host/workbuddy/adapter.d.ts.map +1 -1
  123. package/lib/types/host/workbuddy/mapper.d.ts +1 -0
  124. package/lib/types/host/workbuddy/mapper.d.ts.map +1 -1
  125. package/lib/types/index.d.ts +17 -0
  126. package/lib/types/index.d.ts.map +1 -1
  127. package/lib/types/shared/cline-pass-contracts.d.ts +267 -0
  128. package/lib/types/shared/cline-pass-contracts.d.ts.map +1 -0
  129. package/lib/types/shared/qoder-contracts.d.ts +293 -0
  130. package/lib/types/shared/qoder-contracts.d.ts.map +1 -0
  131. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../src/client/cline-pass/locales.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,mBAAmB,CAAA;AAE7C,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwJL,CAAA;AAEV,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsJL,CAAA;AAIV,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKxB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,EAAE,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Cline Pass's own prefixed classes only: layout the shared `.dsha-*`
3
+ * vocabulary has no expression for (channel chips, the pin row, the usage
4
+ * grid, the history table). Everything else on the tab reuses the shared card.
5
+ */
6
+ export declare function installClinePassStyles(): void;
7
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/client/cline-pass/styles.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAyD7C"}
@@ -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';
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
- export type ProviderMarkKey = BrandMarkKey | 'glm' | 'step-code';
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,CAAA;AAyDf,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,KAAK,GAAG,WAAW,CAAA;AAShE,UAAU,aAAa;IACrB,iFAAiF;IACjF,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB;;;;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,CAgBhE,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,CAWpG;AAoBD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAMtE"}
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":"AAmDA,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
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;AAqBpE,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,EAgEzD,CAAA;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAEnF"}
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"}
@@ -9,6 +9,8 @@ import { type WorkBuddyLocaleKey } from './workbuddy/locales.ts';
9
9
  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
+ import { type ClinePassLocaleKey } from './cline-pass/locales.ts';
13
+ import { type QoderLocaleKey } from './qoder/locales.ts';
12
14
  import { type ProgressUpdatesLocaleKey } from './progress-updates/locales.ts';
13
15
  declare module '@deepseek-ai/dsh-client-ui-slots' {
14
16
  /**
@@ -30,6 +32,8 @@ declare module '@deepseek-ai/dsh-client-ui-slots' {
30
32
  'dsh-glm-coding-plan': GlmCodingPlanLocaleKey;
31
33
  'dsh-ollama': OllamaLocaleKey;
32
34
  'dsh-step-code': StepCodeLocaleKey;
35
+ 'dsh-cline-pass': ClinePassLocaleKey;
36
+ 'dsh-qoder': QoderLocaleKey;
33
37
  'dsh-progress-updates': ProgressUpdatesLocaleKey;
34
38
  }
35
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;AAM5G,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,sBAAsB,EAAE,wBAAwB,CAAA;KACjD;CACF;AAED,eAAO,MAAM,MAAM,UAQlB,CAAA;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAgM9C"}
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,3 +1,26 @@
1
+ /**
2
+ * 判断一个 `<code>` 是不是要渲染的 mermaid 代码块。
3
+ *
4
+ * 判据按优先级排列,命中即返回:
5
+ * 1. `<code>` 自身或祖先带 mermaid 类;
6
+ * 2. 平台代码块 banner 上的语言标签等于 mermaid(一票通过);
7
+ * 3. banner 上是别的具体语言(ts、json …)时直接否掉,绝不看正文(一票否决);
8
+ * 4. 语言标签读不到、或只是平台占位文案(「代码块」/「Code block」)时,退回正文判断:
9
+ * 剥掉 %%{init}%% / %% 注释 / frontmatter 这类前置噪音后,以 mermaid 图型关键字开头即命中。
10
+ *
11
+ * 第 4 条只在「拿不到具体语言」时启用:一个标了 ts、正文里出现 graph 字样的块不该被当成
12
+ * mermaid —— 它在第 3 条就被否掉了。占位符之所以等同于「没标签」,是因为 mermaid 不在
13
+ * highlighter 的语言表里,主聊天区显示的就是占位文案,而不是 "mermaid"。
14
+ * 不用 mermaid.detectType 做判据 —— 实测它在未加载的图型上会抛 UnknownDiagramError,连
15
+ * flowchart 都抛,靠不住。
16
+ *
17
+ * @param codeEl - 待判定的 `<code>` 元素。
18
+ * @returns 需要渲染时的宿主容器与源码;不是 mermaid 代码块时返回 null。
19
+ */
20
+ export declare function findMermaidCandidate(codeEl: HTMLElement): {
21
+ host: HTMLElement;
22
+ code: string;
23
+ } | null;
1
24
  export declare function scanAndRenderMermaid(): void;
2
25
  export declare function setupMermaidObserver(): () => void;
3
26
  //# sourceMappingURL=renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../../src/client/mermaid/renderer.ts"],"names":[],"mappings":"AA0PA,wBAAgB,oBAAoB,IAAI,IAAI,CAY3C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,IAAI,CA+DjD"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../../src/client/mermaid/renderer.ts"],"names":[],"mappings":"AA6PA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA0BpG;AAqGD,wBAAgB,oBAAoB,IAAI,IAAI,CAY3C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,IAAI,CA+DjD"}
@@ -15,14 +15,22 @@
15
15
  * `binaryExtensions` 必须与 `extensions` 是同一组后缀:`register` 会拒绝
16
16
  * `binaryExtensions` 里出现在 `extensions` 之外的项。
17
17
  *
18
- * ## 字节从哪来
18
+ * ## 字节从哪来:宿主读好的那一段
19
19
  *
20
- * 宿主的内置图像渲染器不自己取字节——文档预览插件读好了通过 `content` 发下来。
21
- * 我们的定义是**后注册的外部实现**,拿不到那条 `bytes-complete` 通路,
22
- * 所以按任务要求自己取:`ctx.remote.workspaceFiles.readBytes`,与宿主
23
- * `ReadDocumentBytes` 调的是同一个远端。会话 id 取自页签的
24
- * `resourceAddress`(`dsh-resource://file/session/<id>/<path>`),路径就是地址里
25
- * 那一段——它已经按该会话的工作区根解析过。
20
+ * 定义声明的是 `loading: 'bytes-complete'`,所以**宿主替这个实现把整段文件读
21
+ * 出来**,再通过 keyed 槽的 `content` 交下来——与内置的图像渲染器同一条路
22
+ * (宿主 `ui-sidebar-documentpreview/src/client/TextPreview.tsx`:
23
+ * `content = { kind: 'bytes', data }`)。
24
+ *
25
+ * 这里**不再自己读一遍**,理由有三:
26
+ *
27
+ * - 自己读要把同一段字节在 RPC 上再传一次,视频动辄几十 MB;
28
+ * - 宿主读的那一份带着它自己的整文件上限与失败文案,读一次就够;
29
+ * - 两个快照可能不是同一个文件版本,屏幕上会是一段旧片子。
30
+ *
31
+ * 之前这里自己读远端(`ctx.remote.workspaceFiles.readBytes`),而那条远端
32
+ * **不抛异常**:它把结果装成 `{ ok, value }` / `{ ok, error }`。于是字节永远
33
+ * 是 `undefined`,视频台就一直停在「正在读取视频」,右侧栏也放不出画面。
26
34
  *
27
35
  * ## 为什么和对话流卡片长得一样
28
36
  *
@@ -34,15 +42,24 @@
34
42
  */
35
43
  import { type ReactNode } from 'react';
36
44
  import { type MinimaxCodeLocaleKey } from './locales.ts';
37
- import { type ReadVideoBytes } from './video-contract.ts';
45
+ /**
46
+ * 宿主下发的那份内容,这里只认 `bytes` 一支。
47
+ *
48
+ * 宿主的内容是一个三分支的并集(文本 / 字节 / 渲染器自管),但视频只可能落在
49
+ * `bytes` 一支上;其余分支对这个渲染器没有意义,所以这里只声明用到的那一支。
50
+ */
51
+ export interface DocumentContentLike {
52
+ /** 内容形态;视频只认 `bytes`。 */
53
+ readonly kind?: string;
54
+ /** `bytes` 一支的整段字节。 */
55
+ readonly data?: Uint8Array;
56
+ }
38
57
  /** 本渲染器真正读到的 props(只声明用到的字段,理由同对话流卡片)。 */
39
58
  export interface MinimaxVideoDocumentBodyProps {
40
59
  /** 页签的内容地址:`dsh-resource://file/session/<sessionId>/<path>`。 */
41
60
  readonly resourceAddress?: string | undefined;
42
- /** 会话 id;缺省时从 `resourceAddress` 里解析。 */
43
- readonly sessionId?: string | undefined;
44
- /** 取字节的通道;缺席时视频台退回占位块。 */
45
- readonly readVideo?: ReadVideoBytes | undefined;
61
+ /** 宿主读好的内容;`bytes` 一支带整段字节。 */
62
+ readonly content?: DocumentContentLike | undefined;
46
63
  /** 命名空间化的翻译;缺席时用本文件的中文字典兜底。 */
47
64
  readonly t?: ((key: MinimaxCodeLocaleKey) => string) | undefined;
48
65
  /** 兼容槽位交来的其余座位,本视图不读。 */
@@ -51,7 +68,7 @@ export interface MinimaxVideoDocumentBodyProps {
51
68
  /**
52
69
  * 一个文件地址里的会话与路径。
53
70
  *
54
- * 只认 `session` 作用域:`absolute` 地址没有会话,取字节通道需要会话身份,
71
+ * 只认 `session` 作用域:`absolute` 地址没有会话,宿主读那一段时需要会话身份,
55
72
  * 所以那种地址这里当作「没有可读的文件」,由视频台画占位块。
56
73
  * @param address - `dsh-resource://file/…` 地址。
57
74
  * @returns 会话 id 与路径;不是会话地址时 undefined。
@@ -62,7 +79,7 @@ export declare function sessionFileOf(address: string | undefined): {
62
79
  } | undefined;
63
80
  /**
64
81
  * 侧边栏视频正文。
65
- * @param props - 地址、会话、取字节通道与文案。
82
+ * @param props - 地址、宿主下发的内容与文案。
66
83
  * @returns 16:9 视频台与下方一行元数据。
67
84
  */
68
85
  export declare function MinimaxVideoDocumentBody(props: MinimaxVideoDocumentBodyProps): ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"MinimaxVideoDocumentBody.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/MinimaxVideoDocumentBody.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC3D,OAAO,EAAM,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAG5B,0CAA0C;AAC1C,MAAM,WAAW,6BAA6B;IAC5C,gEAAgE;IAChE,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7C,wCAAwC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,0BAA0B;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;IAC/C,+BAA+B;IAC/B,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,oBAAoB,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IAChE,yBAAyB;IACzB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAChC;AAOD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAU5H;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,GAAG,SAAS,CAwBxF"}
1
+ {"version":3,"file":"MinimaxVideoDocumentBody.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/MinimaxVideoDocumentBody.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAM,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAI5D;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,yBAAyB;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,uBAAuB;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAC3B;AAED,0CAA0C;AAC1C,MAAM,WAAW,6BAA6B;IAC5C,gEAAgE;IAChE,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7C,+BAA+B;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAA;IAClD,+BAA+B;IAC/B,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,oBAAoB,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IAChE,yBAAyB;IACzB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAChC;AAOD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAU5H;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,GAAG,SAAS,CAwBxF"}
@@ -1 +1 @@
1
- {"version":3,"file":"MinimaxVideoToolView.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/MinimaxVideoToolView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAA;AAC7E,OAAO,EAAM,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAEc,KAAK,cAAc,EACvC,MAAM,qBAAqB,CAAA;AAG5B;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,gBAAgB;IAChB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAA;IACjC,2BAA2B;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,uBAAuB;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IACrF,4BAA4B;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;IAC/C,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,oDAAoD;IACpD,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,oBAAoB,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IAChE,wDAAwD;IACxD,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAChC;AAED,mBAAmB;AACnB,MAAM,WAAW,iBAAiB;IAChC,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,qBAAqB;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;IAC1C,uBAAuB;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,iDAAiD;QACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;KACzC,CAAA;IACD,kBAAkB;IAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAOD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA2CxF;AA2ID,uBAAuB;AACvB,MAAM,MAAM,6BAA6B,GAAG,CAAC,KAAK,EAAE,yBAAyB,KAAK,SAAS,CAAA"}
1
+ {"version":3,"file":"MinimaxVideoToolView.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/MinimaxVideoToolView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAA;AAC7E,OAAO,EAAM,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAEc,KAAK,cAAc,EACvC,MAAM,qBAAqB,CAAA;AAG5B;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,gBAAgB;IAChB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAA;IACjC,2BAA2B;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,uBAAuB;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IACrF,4BAA4B;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;IAC/C,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,oDAAoD;IACpD,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,oBAAoB,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IAChE,wDAAwD;IACxD,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAChC;AAED,mBAAmB;AACnB,MAAM,WAAW,iBAAiB;IAChC,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,qBAAqB;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;IAC1C,uBAAuB;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,iDAAiD;QACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;KACzC,CAAA;IACD,kBAAkB;IAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAOD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA2CxF;AAiJD,uBAAuB;AACvB,MAAM,MAAM,6BAA6B,GAAG,CAAC,KAAK,EAAE,yBAAyB,KAAK,SAAS,CAAA"}
@@ -1,90 +1,86 @@
1
1
  /**
2
- * `/video` 的参数弹窗:把「有哪些参数」和「哪些组合合法」一次讲清楚。
2
+ * `/video` 的参数面板:写一句描述,选好参数,再把它填进输入框。
3
3
  *
4
- * ## 为什么是一个自建弹窗,而不是宿主的 popupSelect
4
+ * ## 形态:没有遮罩的浮层,而不是遮住整页的对话框
5
5
  *
6
- * 宿主的 popupSelect 只有 `options()` 与 `onSelect()`(`ui-commands/src/client/
7
- * contract.ts:64-75`),**单选**,装不下「提示词 + 模型 + 比例 + 时长 + 分辨率 +
8
- * 四类参考文件 + 水印」。而 `ActionSpec.run(session)` 的契约明写它「不提交任何
9
- * 东西」,所以命令自己也发不出去。`/video` 因此是两级:popupSelect 给预设档
10
- * (见 `video-command.ts`),「自定义…」这一档打开本组件。
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
- * `adaptive`;纯文本→`adaptive` 不可选),如果直接发起生成,用户永远看不到
16
- * 自己填的东西被改成了什么。所以这里只调用 `setDraft`,把
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`(`Modal.tsx:48`,
22
- * 内部 `createPortal(..., document.body)` 在 `:57-90`)。**本插件不依赖那个包的
23
- * 运行时**(`progress-updates/markdown-lite.tsx:6` 记录了这个决定:它的 `lib`
24
- * 是宿主装配产物,插件装不到),所以这里按同一形状自己 portal 到 `document.body`:
25
- * 遮罩 + 居中卡片 + `role="dialog"` + `aria-modal` + Escape 关闭 + 点遮罩关闭。
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
- * 卡片带 `tabIndex={-1}` 并在打开时聚焦,Tab 因此从卡片内部开始按 DOM 顺序走遍
31
- * 每个字段;Escape 关闭(在 `keydown` 捕获阶段处理,输入框里的 Escape 也生效);
32
- * 关闭后焦点还给打开它的元素,见 {@link VideoFormDialog} 里的 `restoreFocus`。
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 MinimaxVideoModel, type MinimaxVideoRatio, type MinimaxVideoResolution, type VideoDefaults } from './video-form-rules.ts';
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
- * 不是假装成功。弹窗自己不碰 session —— 它不知道 `setDraft` 怎么调。
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAIH,OAAO,EAeL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAGnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAExD,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,+BAA+B;IAC/B,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,YAAY;IACZ,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAA;CACtB;AA4BD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,oBAAoB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA6WxH;AAED,0CAA0C;AAC1C,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;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAgB9G;AAED,qEAAqE;AACrE,wBAAgB,aAAa,IAAI,WAAW,GAAG,SAAS,CAYvD"}
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