@eddyskywalker/dsh-chatgpt-subscription 0.30.0 → 0.31.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 (55) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/lib/client.js +2905 -194
  3. package/lib/client.js.map +1 -1
  4. package/lib/index.js +3829 -553
  5. package/lib/types/client/index.d.ts.map +1 -1
  6. package/lib/types/client/minimax-code/MinimaxCodeSection.d.ts.map +1 -1
  7. package/lib/types/client/minimax-code/MinimaxVideoDocumentBody.d.ts +69 -0
  8. package/lib/types/client/minimax-code/MinimaxVideoDocumentBody.d.ts.map +1 -0
  9. package/lib/types/client/minimax-code/MinimaxVideoToolView.d.ts +83 -0
  10. package/lib/types/client/minimax-code/MinimaxVideoToolView.d.ts.map +1 -0
  11. package/lib/types/client/minimax-code/VideoFormDialog.d.ts +90 -0
  12. package/lib/types/client/minimax-code/VideoFormDialog.d.ts.map +1 -0
  13. package/lib/types/client/minimax-code/VideoSettingsSections.d.ts +73 -0
  14. package/lib/types/client/minimax-code/VideoSettingsSections.d.ts.map +1 -0
  15. package/lib/types/client/minimax-code/commands-contract.d.ts +35 -0
  16. package/lib/types/client/minimax-code/commands-contract.d.ts.map +1 -0
  17. package/lib/types/client/minimax-code/document-preview.d.ts +45 -0
  18. package/lib/types/client/minimax-code/document-preview.d.ts.map +1 -0
  19. package/lib/types/client/minimax-code/locales.d.ts +206 -2
  20. package/lib/types/client/minimax-code/locales.d.ts.map +1 -1
  21. package/lib/types/client/minimax-code/styles.d.ts.map +1 -1
  22. package/lib/types/client/minimax-code/video-command-host.d.ts +61 -0
  23. package/lib/types/client/minimax-code/video-command-host.d.ts.map +1 -0
  24. package/lib/types/client/minimax-code/video-command.d.ts +126 -0
  25. package/lib/types/client/minimax-code/video-command.d.ts.map +1 -0
  26. package/lib/types/client/minimax-code/video-contract.d.ts +172 -0
  27. package/lib/types/client/minimax-code/video-contract.d.ts.map +1 -0
  28. package/lib/types/client/minimax-code/video-defaults-store.d.ts +61 -0
  29. package/lib/types/client/minimax-code/video-defaults-store.d.ts.map +1 -0
  30. package/lib/types/client/minimax-code/video-form-rules.d.ts +288 -0
  31. package/lib/types/client/minimax-code/video-form-rules.d.ts.map +1 -0
  32. package/lib/types/client/minimax-code/video-media.d.ts +61 -0
  33. package/lib/types/client/minimax-code/video-media.d.ts.map +1 -0
  34. package/lib/types/client/minimax-code/video-slots.d.ts +87 -0
  35. package/lib/types/client/minimax-code/video-slots.d.ts.map +1 -0
  36. package/lib/types/host/minimax-code/client.d.ts.map +1 -1
  37. package/lib/types/host/minimax-code/iso-bmff-duration.d.ts +84 -0
  38. package/lib/types/host/minimax-code/iso-bmff-duration.d.ts.map +1 -0
  39. package/lib/types/host/minimax-code/matrix-client.d.ts +168 -0
  40. package/lib/types/host/minimax-code/matrix-client.d.ts.map +1 -0
  41. package/lib/types/host/minimax-code/media-store.d.ts +153 -0
  42. package/lib/types/host/minimax-code/media-store.d.ts.map +1 -0
  43. package/lib/types/host/minimax-code/routes.d.ts.map +1 -1
  44. package/lib/types/host/minimax-code/video-history.d.ts +240 -0
  45. package/lib/types/host/minimax-code/video-history.d.ts.map +1 -0
  46. package/lib/types/host/minimax-code/video-submit-rules.d.ts +40 -0
  47. package/lib/types/host/minimax-code/video-submit-rules.d.ts.map +1 -0
  48. package/lib/types/host/minimax-code/video-tool.d.ts +757 -0
  49. package/lib/types/host/minimax-code/video-tool.d.ts.map +1 -0
  50. package/lib/types/host/progress-updates/index.d.ts +6 -0
  51. package/lib/types/host/progress-updates/index.d.ts.map +1 -1
  52. package/lib/types/host/progress-updates/projection.d.ts +214 -0
  53. package/lib/types/host/progress-updates/projection.d.ts.map +1 -0
  54. package/lib/types/index.d.ts.map +1 -1
  55. package/package.json +13 -4
@@ -107,6 +107,74 @@ export declare const zh: {
107
107
  readonly capImage: "图片";
108
108
  readonly loading: "加载中...";
109
109
  readonly unknown: "—";
110
+ readonly videoToolTitle: "视频";
111
+ readonly videoToolRunning: "正在生成视频";
112
+ readonly videoToolDone: "视频已生成";
113
+ readonly videoToolFailed: "视频生成失败";
114
+ readonly videoGenerating: "上游还在生成,完成后会自动出现";
115
+ readonly videoReading: "正在读取视频";
116
+ readonly videoTooLarge: "这个视频超出了 {limit} 的整文件读取上限,用系统播放器打开仍然可以看";
117
+ readonly videoUnreadable: "读不到这个视频的字节,文件可能已经被移动或删除";
118
+ readonly videoUnplayable: "这个视频的字节解不开,无法播放";
119
+ readonly videoNoMeta: "这次调用没有留下视频信息,无法定位文件";
120
+ readonly videoChannelOff: "当前环境没有打开文件读取通道,暂时无法播放";
121
+ readonly videoFailed: "这次生成没有成功,没有可播放的文件";
122
+ readonly videoSize: "{size}";
123
+ readonly videoTitle: "视频";
124
+ readonly videoCommandLabel: "生成视频";
125
+ readonly videoCommandDesc: "挑选参数,填成一句话再发送";
126
+ readonly videoPresetGroup: "常用档位";
127
+ readonly videoPresetCustom: "自定义…";
128
+ readonly videoPresetCustomDesc: "打开完整参数表单";
129
+ readonly videoDialogTitle: "生成视频参数";
130
+ readonly videoDialogDesc: "填好后会写入输入框,确认无误再发送";
131
+ readonly videoPromptLabel: "提示词";
132
+ readonly videoPromptPlaceholder: "描述你想要的画面";
133
+ readonly videoPromptRequired: "请先填提示词";
134
+ readonly videoModelLabel: "模型";
135
+ readonly videoRatioLabel: "比例";
136
+ readonly videoRatioLockedKeyframes: "给了首帧或末帧,比例固定为自适应";
137
+ readonly videoRatioLockedTextOnly: "纯文本不能选自适应,服务端没有可自适应的对象";
138
+ readonly videoDurationLabel: "时长";
139
+ readonly videoDurationUnit: "秒";
140
+ readonly videoResolutionLabel: "分辨率";
141
+ readonly videoWatermarkLabel: "AIGC 水印";
142
+ readonly videoMediaSection: "参考媒体";
143
+ readonly videoMediaHint: "填绝对路径或工作区相对路径,一行一个";
144
+ readonly videoInputImageLabel: "首帧图";
145
+ readonly videoLastFrameLabel: "末帧图";
146
+ readonly videoReferenceImagesLabel: "参考图";
147
+ readonly videoReferenceVideosLabel: "参考视频";
148
+ readonly videoReferenceVideoDurationsLabel: "参考视频时长";
149
+ readonly videoReferenceAudiosLabel: "参考音频";
150
+ readonly videoMediaUnsupported: "{model} 不接受参考图、参考视频或参考音频";
151
+ readonly videoLastFrameUnsupported: "{model} 不接受末帧图";
152
+ readonly videoTooManyImages: "参考图有 {count} 张,最多 {limit} 张";
153
+ readonly videoTooManyVideos: "参考视频有 {count} 个,最多 {limit} 个";
154
+ readonly videoTooManyAudios: "参考音频有 {count} 个,最多 {limit} 个";
155
+ readonly videoTooManyTotal: "参考媒体共 {count} 个,最多 {limit} 个";
156
+ readonly videoDurationInvalid: "{model} 不支持 {duration} 秒";
157
+ readonly videoSubmit: "填入输入框";
158
+ readonly videoCancel: "取消";
159
+ readonly videoClose: "关闭";
160
+ readonly videoDraftFilled: "参数已填入输入框,确认后发送";
161
+ readonly videoDraftFailed: "没有找到这个会话的输入框,参数未填入";
162
+ readonly videoNotMinimax: "这个命令只在 MiniMax Code 会话里可用";
163
+ readonly videoDefaultsSection: "视频默认参数";
164
+ readonly videoDefaultsHint: "打开 /video 时表单的初始值,只影响表单,不会自动生成";
165
+ readonly videoDefaultsSaved: "已保存";
166
+ readonly videoHistorySection: "视频生成历史";
167
+ readonly videoHistoryHint: "最近生成的视频,只记录路径不保存视频内容";
168
+ readonly videoHistoryEmpty: "还没有生成记录";
169
+ readonly videoHistoryUnavailable: "暂时读不到生成历史";
170
+ readonly videoHistoryRefresh: "刷新";
171
+ readonly videoHistoryRefreshing: "读取中…";
172
+ readonly videoHistoryAt: "{time}";
173
+ readonly videoHistoryMeta: "{model} · {ratio} · {duration} 秒 · {size}";
174
+ readonly videoHistoryNoRatio: "未指定比例";
175
+ readonly videoHistoryStorage: "记录位置:{path}";
176
+ readonly videoHistoryEncrypted: "已由系统凭据后端加密";
177
+ readonly videoHistoryPlain: "本机没有可用的凭据后端,记录为明文";
110
178
  readonly accountPool: string;
111
179
  readonly addAccount: string;
112
180
  readonly accountCount: string;
@@ -248,6 +316,74 @@ export declare const dictionaries: {
248
316
  readonly capImage: "图片";
249
317
  readonly loading: "加载中...";
250
318
  readonly unknown: "—";
319
+ readonly videoToolTitle: "视频";
320
+ readonly videoToolRunning: "正在生成视频";
321
+ readonly videoToolDone: "视频已生成";
322
+ readonly videoToolFailed: "视频生成失败";
323
+ readonly videoGenerating: "上游还在生成,完成后会自动出现";
324
+ readonly videoReading: "正在读取视频";
325
+ readonly videoTooLarge: "这个视频超出了 {limit} 的整文件读取上限,用系统播放器打开仍然可以看";
326
+ readonly videoUnreadable: "读不到这个视频的字节,文件可能已经被移动或删除";
327
+ readonly videoUnplayable: "这个视频的字节解不开,无法播放";
328
+ readonly videoNoMeta: "这次调用没有留下视频信息,无法定位文件";
329
+ readonly videoChannelOff: "当前环境没有打开文件读取通道,暂时无法播放";
330
+ readonly videoFailed: "这次生成没有成功,没有可播放的文件";
331
+ readonly videoSize: "{size}";
332
+ readonly videoTitle: "视频";
333
+ readonly videoCommandLabel: "生成视频";
334
+ readonly videoCommandDesc: "挑选参数,填成一句话再发送";
335
+ readonly videoPresetGroup: "常用档位";
336
+ readonly videoPresetCustom: "自定义…";
337
+ readonly videoPresetCustomDesc: "打开完整参数表单";
338
+ readonly videoDialogTitle: "生成视频参数";
339
+ readonly videoDialogDesc: "填好后会写入输入框,确认无误再发送";
340
+ readonly videoPromptLabel: "提示词";
341
+ readonly videoPromptPlaceholder: "描述你想要的画面";
342
+ readonly videoPromptRequired: "请先填提示词";
343
+ readonly videoModelLabel: "模型";
344
+ readonly videoRatioLabel: "比例";
345
+ readonly videoRatioLockedKeyframes: "给了首帧或末帧,比例固定为自适应";
346
+ readonly videoRatioLockedTextOnly: "纯文本不能选自适应,服务端没有可自适应的对象";
347
+ readonly videoDurationLabel: "时长";
348
+ readonly videoDurationUnit: "秒";
349
+ readonly videoResolutionLabel: "分辨率";
350
+ readonly videoWatermarkLabel: "AIGC 水印";
351
+ readonly videoMediaSection: "参考媒体";
352
+ readonly videoMediaHint: "填绝对路径或工作区相对路径,一行一个";
353
+ readonly videoInputImageLabel: "首帧图";
354
+ readonly videoLastFrameLabel: "末帧图";
355
+ readonly videoReferenceImagesLabel: "参考图";
356
+ readonly videoReferenceVideosLabel: "参考视频";
357
+ readonly videoReferenceVideoDurationsLabel: "参考视频时长";
358
+ readonly videoReferenceAudiosLabel: "参考音频";
359
+ readonly videoMediaUnsupported: "{model} 不接受参考图、参考视频或参考音频";
360
+ readonly videoLastFrameUnsupported: "{model} 不接受末帧图";
361
+ readonly videoTooManyImages: "参考图有 {count} 张,最多 {limit} 张";
362
+ readonly videoTooManyVideos: "参考视频有 {count} 个,最多 {limit} 个";
363
+ readonly videoTooManyAudios: "参考音频有 {count} 个,最多 {limit} 个";
364
+ readonly videoTooManyTotal: "参考媒体共 {count} 个,最多 {limit} 个";
365
+ readonly videoDurationInvalid: "{model} 不支持 {duration} 秒";
366
+ readonly videoSubmit: "填入输入框";
367
+ readonly videoCancel: "取消";
368
+ readonly videoClose: "关闭";
369
+ readonly videoDraftFilled: "参数已填入输入框,确认后发送";
370
+ readonly videoDraftFailed: "没有找到这个会话的输入框,参数未填入";
371
+ readonly videoNotMinimax: "这个命令只在 MiniMax Code 会话里可用";
372
+ readonly videoDefaultsSection: "视频默认参数";
373
+ readonly videoDefaultsHint: "打开 /video 时表单的初始值,只影响表单,不会自动生成";
374
+ readonly videoDefaultsSaved: "已保存";
375
+ readonly videoHistorySection: "视频生成历史";
376
+ readonly videoHistoryHint: "最近生成的视频,只记录路径不保存视频内容";
377
+ readonly videoHistoryEmpty: "还没有生成记录";
378
+ readonly videoHistoryUnavailable: "暂时读不到生成历史";
379
+ readonly videoHistoryRefresh: "刷新";
380
+ readonly videoHistoryRefreshing: "读取中…";
381
+ readonly videoHistoryAt: "{time}";
382
+ readonly videoHistoryMeta: "{model} · {ratio} · {duration} 秒 · {size}";
383
+ readonly videoHistoryNoRatio: "未指定比例";
384
+ readonly videoHistoryStorage: "记录位置:{path}";
385
+ readonly videoHistoryEncrypted: "已由系统凭据后端加密";
386
+ readonly videoHistoryPlain: "本机没有可用的凭据后端,记录为明文";
251
387
  readonly accountPool: string;
252
388
  readonly addAccount: string;
253
389
  readonly accountCount: string;
@@ -387,6 +523,74 @@ export declare const dictionaries: {
387
523
  readonly capImage: "图片";
388
524
  readonly loading: "加载中...";
389
525
  readonly unknown: "—";
526
+ readonly videoToolTitle: "视频";
527
+ readonly videoToolRunning: "正在生成视频";
528
+ readonly videoToolDone: "视频已生成";
529
+ readonly videoToolFailed: "视频生成失败";
530
+ readonly videoGenerating: "上游还在生成,完成后会自动出现";
531
+ readonly videoReading: "正在读取视频";
532
+ readonly videoTooLarge: "这个视频超出了 {limit} 的整文件读取上限,用系统播放器打开仍然可以看";
533
+ readonly videoUnreadable: "读不到这个视频的字节,文件可能已经被移动或删除";
534
+ readonly videoUnplayable: "这个视频的字节解不开,无法播放";
535
+ readonly videoNoMeta: "这次调用没有留下视频信息,无法定位文件";
536
+ readonly videoChannelOff: "当前环境没有打开文件读取通道,暂时无法播放";
537
+ readonly videoFailed: "这次生成没有成功,没有可播放的文件";
538
+ readonly videoSize: "{size}";
539
+ readonly videoTitle: "视频";
540
+ readonly videoCommandLabel: "生成视频";
541
+ readonly videoCommandDesc: "挑选参数,填成一句话再发送";
542
+ readonly videoPresetGroup: "常用档位";
543
+ readonly videoPresetCustom: "自定义…";
544
+ readonly videoPresetCustomDesc: "打开完整参数表单";
545
+ readonly videoDialogTitle: "生成视频参数";
546
+ readonly videoDialogDesc: "填好后会写入输入框,确认无误再发送";
547
+ readonly videoPromptLabel: "提示词";
548
+ readonly videoPromptPlaceholder: "描述你想要的画面";
549
+ readonly videoPromptRequired: "请先填提示词";
550
+ readonly videoModelLabel: "模型";
551
+ readonly videoRatioLabel: "比例";
552
+ readonly videoRatioLockedKeyframes: "给了首帧或末帧,比例固定为自适应";
553
+ readonly videoRatioLockedTextOnly: "纯文本不能选自适应,服务端没有可自适应的对象";
554
+ readonly videoDurationLabel: "时长";
555
+ readonly videoDurationUnit: "秒";
556
+ readonly videoResolutionLabel: "分辨率";
557
+ readonly videoWatermarkLabel: "AIGC 水印";
558
+ readonly videoMediaSection: "参考媒体";
559
+ readonly videoMediaHint: "填绝对路径或工作区相对路径,一行一个";
560
+ readonly videoInputImageLabel: "首帧图";
561
+ readonly videoLastFrameLabel: "末帧图";
562
+ readonly videoReferenceImagesLabel: "参考图";
563
+ readonly videoReferenceVideosLabel: "参考视频";
564
+ readonly videoReferenceVideoDurationsLabel: "参考视频时长";
565
+ readonly videoReferenceAudiosLabel: "参考音频";
566
+ readonly videoMediaUnsupported: "{model} 不接受参考图、参考视频或参考音频";
567
+ readonly videoLastFrameUnsupported: "{model} 不接受末帧图";
568
+ readonly videoTooManyImages: "参考图有 {count} 张,最多 {limit} 张";
569
+ readonly videoTooManyVideos: "参考视频有 {count} 个,最多 {limit} 个";
570
+ readonly videoTooManyAudios: "参考音频有 {count} 个,最多 {limit} 个";
571
+ readonly videoTooManyTotal: "参考媒体共 {count} 个,最多 {limit} 个";
572
+ readonly videoDurationInvalid: "{model} 不支持 {duration} 秒";
573
+ readonly videoSubmit: "填入输入框";
574
+ readonly videoCancel: "取消";
575
+ readonly videoClose: "关闭";
576
+ readonly videoDraftFilled: "参数已填入输入框,确认后发送";
577
+ readonly videoDraftFailed: "没有找到这个会话的输入框,参数未填入";
578
+ readonly videoNotMinimax: "这个命令只在 MiniMax Code 会话里可用";
579
+ readonly videoDefaultsSection: "视频默认参数";
580
+ readonly videoDefaultsHint: "打开 /video 时表单的初始值,只影响表单,不会自动生成";
581
+ readonly videoDefaultsSaved: "已保存";
582
+ readonly videoHistorySection: "视频生成历史";
583
+ readonly videoHistoryHint: "最近生成的视频,只记录路径不保存视频内容";
584
+ readonly videoHistoryEmpty: "还没有生成记录";
585
+ readonly videoHistoryUnavailable: "暂时读不到生成历史";
586
+ readonly videoHistoryRefresh: "刷新";
587
+ readonly videoHistoryRefreshing: "读取中…";
588
+ readonly videoHistoryAt: "{time}";
589
+ readonly videoHistoryMeta: "{model} · {ratio} · {duration} 秒 · {size}";
590
+ readonly videoHistoryNoRatio: "未指定比例";
591
+ readonly videoHistoryStorage: "记录位置:{path}";
592
+ readonly videoHistoryEncrypted: "已由系统凭据后端加密";
593
+ readonly videoHistoryPlain: "本机没有可用的凭据后端,记录为明文";
390
594
  readonly accountPool: string;
391
595
  readonly addAccount: string;
392
596
  readonly accountCount: string;
@@ -418,8 +622,8 @@ export declare const dictionaries: {
418
622
  readonly quotaUsed: string;
419
623
  readonly quotaFactsScope: string;
420
624
  };
421
- 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", string>;
422
- '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", string>;
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>;
423
627
  };
424
628
  export type MinimaxCodeLocaleKey = keyof typeof zh;
425
629
  //# 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiHL,CAAA;AAEV,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,OAAO,EAAE,EAAE,MAAM,CA6G9C,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKxB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,EAAE,CAAA"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0LL,CAAA;AAEV,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,OAAO,EAAE,EAAE,MAAM,CAiL9C,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,CAW/C"}
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,CAoF/C"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * 「/video 命令 + 参数弹窗」的挂载点,由 `src/client/index.tsx` 调用。
3
+ *
4
+ * 挂两样东西:
5
+ *
6
+ * 1. **弹窗的渲染座位**:一个客户端容器,portal 到 `document.body`。它不挂在任何
7
+ * 会话槽位上——弹窗是**全局**的,而 `/video` 命令的回调在一段没有 React 树的
8
+ * 代码里;把两者连起来的是这个容器持有的 `open` 状态加一个模块级句柄。
9
+ * 2. **命令本体**:`createVideoCommand` 产出的 popupSelect 贡献,注册到
10
+ * `ctx.commandUi`,与宿主 `ui-message-feedback` 的 `/feedback` 装饰同一形状。
11
+ *
12
+ * ## 为什么命令回调要经过一个句柄
13
+ *
14
+ * `CommandUiSpec` 的回调是普通函数,不是 React 组件,拿不到 setState。所以容器把
15
+ * 自己的 `openForm` 登记到一个模块级的可变引用上,命令回调通过它打开弹窗。容器
16
+ * 卸载时把这个引用清掉(只清自己那一个),回调因此永远调不到一个已卸载的组件。
17
+ *
18
+ * ## 注册失败了怎么办
19
+ *
20
+ * 与家族其它模块一致:吞掉、不抛。web shell 在插件 apply 抛错时整页启动失败,
21
+ * 一个外部插件不能因为「宿主这一版没有 commandUi」就把 GUI 带下水。
22
+ *
23
+ * @module @eddyskywalker/dsh-chatgpt-subscription/client/minimax-code/video-command-host
24
+ */
25
+ import type { Context as ClientContext } from '@deepseek-ai/cordis';
26
+ import { type VideoDefaults } from './video-form-rules.ts';
27
+ /**
28
+ * 打开参数弹窗。
29
+ *
30
+ * 没有容器挂着时什么也不做——插件被禁用、或页面还没挂载时调到这里,静默即可;
31
+ * 抛错只会让一次斜杠菜单点击变成控制台里的一条异常。
32
+ *
33
+ * @param sessionId - 会话 id。
34
+ * @param defaults - 表单起手值。
35
+ */
36
+ export declare function openVideoForm(sessionId: string, defaults: VideoDefaults): void;
37
+ /**
38
+ * 构造弹窗容器。
39
+ *
40
+ * 常驻挂载、`open` 为 false 时渲染出 null,而不是按需创建:请求来自命令回调,那时
41
+ * 组件树已经渲染完了,没有第二次渲染去创建它。
42
+ *
43
+ * @param ctx - 浏览器根上下文;提交时用它把文本写进对应会话的输入框。
44
+ * @returns 一个不需要 props 的组件。
45
+ */
46
+ export declare function createVideoCommandHost(ctx: ClientContext): () => React.JSX.Element | null;
47
+ /**
48
+ * 把 `/video` 命令挂到宿主的命令服务上。
49
+ *
50
+ * 与宿主 `ui-message-feedback` 的 `/feedback` 装饰同一种接线方式:若 `commandUi`
51
+ * 已经在位(或当前是无 `inject` 能力的测试替身),就地注册;若 `commandUi` 晚于
52
+ * 本插件激活,则经 `ctx.inject(['commandUi'], scope => …)` 在它上线时补注册。
53
+ *
54
+ * 注册失败只吞掉:宿主这一版可能没有 `commandUi`(它由 `ui-commands` 提供),一个
55
+ * 可选依赖缺席不该让整个插件 apply 失败。
56
+ *
57
+ * @param ctx - 浏览器根上下文。
58
+ * @returns 卸载函数;服务缺席时是一个空操作。
59
+ */
60
+ export declare function installVideoCommand(ctx: ClientContext): () => void;
61
+ //# sourceMappingURL=video-command-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-command-host.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/video-command-host.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAInE,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,CAqCzF;AA8BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,IAAI,CA6BlE"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * `/video` 命令:让用户**看见**视频工具有哪些参数,再把选好的参数填进输入框。
3
+ *
4
+ * ## 形态:popupSelect 作为入口,自建弹窗作为表单
5
+ *
6
+ * 视频工具(`minimax_generate_video` / `minimax_understand_video`)是**模型自主
7
+ * 调用**的,用户唯一的入口是自然语言。这带来两个问题:用户不知道有哪些参数,
8
+ * 而且这些参数有联动规则(首帧→比例被强制成 `adaptive`、纯文本→`adaptive` 不
9
+ * 可用)。
10
+ *
11
+ * 宿主给了两种命令 UI(`packages/client/ui-commands/src/client/contract.ts`):
12
+ *
13
+ * - `PopupSelectSpec`(`:64-75`):只有 `options()` + `onSelect()`,**单选**;
14
+ * - `ActionSpec`(`:82-89`):`run(session)`,契约明写它「不提交任何东西」。
15
+ *
16
+ * 单选的 popupSelect 装不下「提示词 + 模型 + 比例 + 时长 + 分辨率 + 四类参考
17
+ * 文件 + 水印」,所以这里是**两级**:popupSelect 列出几条预设档,「自定义…」那
18
+ * 一行打开 `VideoFormDialog`。预设档没有覆盖的定制组合因此仍然可达,而最常见
19
+ * 的几种是一键的。
20
+ *
21
+ * ## 填进输入框,而不是直接发送
22
+ *
23
+ * `ActionSpec` 不能提交,这是宿主的限制;但即使能提交,**直接发起一次计费生成
24
+ * 也仍然是错的**:用户看不到自己填的参数被联动规则改写成了什么。所以走
25
+ * `SessionInput.setDraft`,把参数拼成一句话放进输入框,用户看一眼再发送。
26
+ *
27
+ * ## `available` 怎么判「这条会话在 minimax-code 上」
28
+ *
29
+ * `ClientSessionContext` 只有 `sessionId`(`ui-input-trigger/src/types.ts:29`),
30
+ * 没有 provider。路由要从 `ctx.sessions` 上按 id 取:
31
+ *
32
+ * ```ts
33
+ * ctx.sessions.binding(id)?.session.projections.faceOf('modelSelection').getSnapshot()
34
+ * ```
35
+ *
36
+ * 这是宿主自己读当前模型的方式(`ui-conversation/src/client/input/hub.ts:104-113`
37
+ * 的 `submissionState`),投影值形如 `{ next?, lastUsed? }`,每项带
38
+ * `{ provider, model, reasoningEffort? }`。
39
+ *
40
+ * **任何一步拿不到就返回 false,绝不抛错**:`available` 在每次打开斜杠菜单时都
41
+ * 会被调用,它抛一次就会让整个菜单塌掉;而一个刚建好的会话、或宿主还没回落
42
+ * 投影时,这些读取本来就会是空的。
43
+ *
44
+ * @module @eddyskywalker/dsh-chatgpt-subscription/client/minimax-code/video-command
45
+ */
46
+ import type { Context as ClientContext } from '@deepseek-ai/cordis';
47
+ import type { CommandContribution } from './commands-contract.ts';
48
+ import { type VideoDefaults } from './video-form-rules.ts';
49
+ import { type VideoPreset } from './VideoFormDialog.tsx';
50
+ import { type MinimaxCodeLocaleKey } from './locales.ts';
51
+ /** 本线路的 provider id(宿主 `PROVIDER_ID` 的同值副本)。 */
52
+ export declare const MINIMAX_CODE_PROVIDER = "minimax-code";
53
+ /** `/video` 里「自定义…」那一行的 id。 */
54
+ export declare const CUSTOM_OPTION_ID = "custom";
55
+ /** 本模块登记的命令名。 */
56
+ export declare const VIDEO_COMMAND_NAME = "video";
57
+ /** 翻译函数座位。 */
58
+ export type VideoCommandTranslate = (key: MinimaxCodeLocaleKey, params?: Record<string, string | number>) => string;
59
+ /** 一条会话路由。 */
60
+ export interface SessionRoute {
61
+ readonly provider: string;
62
+ readonly model: string;
63
+ }
64
+ /**
65
+ * 这条会话的模型路由,读不到就是 undefined。
66
+ *
67
+ * 路径与宿主 `submissionState` 一致:投影 → `next` 优先、`lastUsed` 兜底 →
68
+ * provider。**全程可选链**:投影没注册、快照是 undefined、字段缺失,都在这里
69
+ * 变成 undefined,而不是一次异常。
70
+ *
71
+ * @param ctx - 浏览器根上下文(或注入了 `sessions` 的 scope)。
72
+ * @param sessionId - 会话 id。
73
+ * @returns 形如 `{ provider, model }` 的路由,或 undefined。
74
+ */
75
+ export declare function sessionRouteOf(ctx: ClientContext, sessionId: string): SessionRoute | undefined;
76
+ /**
77
+ * 把一段文本写进该会话的输入框。
78
+ *
79
+ * 走宿主的 `SessionInput.setDraft`(`ui-conversation/src/client/contract/input.ts:186`),
80
+ * 不是 `prompt`:后者会绕过输入框直接把一条用户消息发出去,用户就看不见自己填了
81
+ * 什么。`for(actx)` 要求一个**会话作用域的 Context**,正是
82
+ * `ctx.sessions.binding(id).ctx`(见 `session-controller/src/client/sessions/service.ts:101-108`)。
83
+ *
84
+ * @param ctx - 浏览器根上下文。
85
+ * @param sessionId - 目标会话。
86
+ * @param text - 要填入的文本。
87
+ * @returns 是否真的填进去了。
88
+ */
89
+ export declare function fillComposer(ctx: ClientContext, sessionId: string, text: string): boolean;
90
+ /** `/video` 命令需要外部给的两件事。 */
91
+ export interface VideoCommandOptions {
92
+ /** 打开参数弹窗。「自定义…」这一行调它。 */
93
+ readonly openForm: (sessionId: string, defaults: VideoDefaults) => void;
94
+ /**
95
+ * 预设档直接填输入框时用的通道。
96
+ *
97
+ * 缺省是 `fillComposer`,测试注入一个假的来断言「填进去的那段话是什么」。
98
+ */
99
+ readonly fill?: (sessionId: string, text: string) => boolean;
100
+ /** 设置页里的默认参数。每次打开菜单时现取。 */
101
+ readonly defaults?: () => VideoDefaults;
102
+ /** 翻译;缺省走本线路的中文兜底。 */
103
+ readonly translate?: VideoCommandTranslate;
104
+ }
105
+ /**
106
+ * 把一条预设档拼成填进输入框的那段话。
107
+ *
108
+ * 提示词留一条**待填的占位**,而不是随便编一句:用户选了「H3 · 4秒 · 768P」之后,
109
+ * 真正缺的只有画面描述,那一条应当由他来写。
110
+ *
111
+ * @param preset - 选中的预设档。
112
+ * @returns 填进输入框的文本。
113
+ */
114
+ export declare function presetDraftText(preset: VideoPreset): string;
115
+ /**
116
+ * 构造 `/video` 的 `CommandContribution`。
117
+ *
118
+ * 注册在插件的 `ctx.inject(['commandUi'], scope => …)` 里,与宿主
119
+ * `ui-message-feedback` 的 `/feedback` 装饰同一种接线方式。
120
+ *
121
+ * @param ctx - 浏览器根上下文。
122
+ * @param options - 打开弹窗与填输入框的通道。
123
+ * @returns 一份可直接交给 `commandUi.register` 的贡献。
124
+ */
125
+ export declare function createVideoCommand(ctx: ClientContext, options: VideoCommandOptions): CommandContribution;
126
+ //# sourceMappingURL=video-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-command.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/video-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAInE,OAAO,KAAK,EAAE,mBAAmB,EAAgB,MAAM,wBAAwB,CAAA;AAE/E,OAAO,EAGL,KAAK,aAAa,EAEnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAM,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAE5D,gDAAgD;AAChD,eAAO,MAAM,qBAAqB,iBAAiB,CAAA;AAEnD,+BAA+B;AAC/B,eAAO,MAAM,gBAAgB,WAAW,CAAA;AAExC,iBAAiB;AACjB,eAAO,MAAM,kBAAkB,UAAU,CAAA;AAEzC,cAAc;AACd,MAAM,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,oBAAoB,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAA;AAEnH,cAAc;AACd,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAuB9F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAkBzF;AAED,4BAA4B;AAC5B,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAA;IACvE;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;IAC5D,2BAA2B;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,aAAa,CAAA;IACvC,sBAAsB;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAA;CAC3C;AASD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAU3D;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,GAAG,mBAAmB,CAwCxG"}