@eddyskywalker/dsh-chatgpt-subscription 0.29.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 (73) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +11 -2
  3. package/lib/client.js +2923 -210
  4. package/lib/client.js.map +1 -1
  5. package/lib/index.js +4270 -561
  6. package/lib/types/client/index.d.ts.map +1 -1
  7. package/lib/types/client/minimax-code/MinimaxCodeSection.d.ts +8 -5
  8. package/lib/types/client/minimax-code/MinimaxCodeSection.d.ts.map +1 -1
  9. package/lib/types/client/minimax-code/MinimaxVideoDocumentBody.d.ts +69 -0
  10. package/lib/types/client/minimax-code/MinimaxVideoDocumentBody.d.ts.map +1 -0
  11. package/lib/types/client/minimax-code/MinimaxVideoToolView.d.ts +83 -0
  12. package/lib/types/client/minimax-code/MinimaxVideoToolView.d.ts.map +1 -0
  13. package/lib/types/client/minimax-code/VideoFormDialog.d.ts +90 -0
  14. package/lib/types/client/minimax-code/VideoFormDialog.d.ts.map +1 -0
  15. package/lib/types/client/minimax-code/VideoSettingsSections.d.ts +73 -0
  16. package/lib/types/client/minimax-code/VideoSettingsSections.d.ts.map +1 -0
  17. package/lib/types/client/minimax-code/commands-contract.d.ts +35 -0
  18. package/lib/types/client/minimax-code/commands-contract.d.ts.map +1 -0
  19. package/lib/types/client/minimax-code/document-preview.d.ts +45 -0
  20. package/lib/types/client/minimax-code/document-preview.d.ts.map +1 -0
  21. package/lib/types/client/minimax-code/locales.d.ts +212 -8
  22. package/lib/types/client/minimax-code/locales.d.ts.map +1 -1
  23. package/lib/types/client/minimax-code/styles.d.ts.map +1 -1
  24. package/lib/types/client/minimax-code/video-command-host.d.ts +61 -0
  25. package/lib/types/client/minimax-code/video-command-host.d.ts.map +1 -0
  26. package/lib/types/client/minimax-code/video-command.d.ts +126 -0
  27. package/lib/types/client/minimax-code/video-command.d.ts.map +1 -0
  28. package/lib/types/client/minimax-code/video-contract.d.ts +172 -0
  29. package/lib/types/client/minimax-code/video-contract.d.ts.map +1 -0
  30. package/lib/types/client/minimax-code/video-defaults-store.d.ts +61 -0
  31. package/lib/types/client/minimax-code/video-defaults-store.d.ts.map +1 -0
  32. package/lib/types/client/minimax-code/video-form-rules.d.ts +288 -0
  33. package/lib/types/client/minimax-code/video-form-rules.d.ts.map +1 -0
  34. package/lib/types/client/minimax-code/video-media.d.ts +61 -0
  35. package/lib/types/client/minimax-code/video-media.d.ts.map +1 -0
  36. package/lib/types/client/minimax-code/video-slots.d.ts +87 -0
  37. package/lib/types/client/minimax-code/video-slots.d.ts.map +1 -0
  38. package/lib/types/host/common/context-overflow.d.ts.map +1 -1
  39. package/lib/types/host/minimax-code/adapter.d.ts +14 -0
  40. package/lib/types/host/minimax-code/adapter.d.ts.map +1 -1
  41. package/lib/types/host/minimax-code/checkin-gateway.d.ts +36 -0
  42. package/lib/types/host/minimax-code/checkin-gateway.d.ts.map +1 -1
  43. package/lib/types/host/minimax-code/checkin.d.ts +60 -2
  44. package/lib/types/host/minimax-code/checkin.d.ts.map +1 -1
  45. package/lib/types/host/minimax-code/client.d.ts.map +1 -1
  46. package/lib/types/host/minimax-code/iso-bmff-duration.d.ts +84 -0
  47. package/lib/types/host/minimax-code/iso-bmff-duration.d.ts.map +1 -0
  48. package/lib/types/host/minimax-code/mapper.d.ts +51 -19
  49. package/lib/types/host/minimax-code/mapper.d.ts.map +1 -1
  50. package/lib/types/host/minimax-code/matrix-client.d.ts +168 -0
  51. package/lib/types/host/minimax-code/matrix-client.d.ts.map +1 -0
  52. package/lib/types/host/minimax-code/media-store.d.ts +153 -0
  53. package/lib/types/host/minimax-code/media-store.d.ts.map +1 -0
  54. package/lib/types/host/minimax-code/model-catalog.d.ts +40 -15
  55. package/lib/types/host/minimax-code/model-catalog.d.ts.map +1 -1
  56. package/lib/types/host/minimax-code/routes.d.ts.map +1 -1
  57. package/lib/types/host/minimax-code/token-store.d.ts.map +1 -1
  58. package/lib/types/host/minimax-code/types.d.ts.map +1 -1
  59. package/lib/types/host/minimax-code/video-history.d.ts +240 -0
  60. package/lib/types/host/minimax-code/video-history.d.ts.map +1 -0
  61. package/lib/types/host/minimax-code/video-submit-rules.d.ts +40 -0
  62. package/lib/types/host/minimax-code/video-submit-rules.d.ts.map +1 -0
  63. package/lib/types/host/minimax-code/video-tool.d.ts +757 -0
  64. package/lib/types/host/minimax-code/video-tool.d.ts.map +1 -0
  65. package/lib/types/host/progress-updates/index.d.ts +6 -0
  66. package/lib/types/host/progress-updates/index.d.ts.map +1 -1
  67. package/lib/types/host/progress-updates/projection.d.ts +214 -0
  68. package/lib/types/host/progress-updates/projection.d.ts.map +1 -0
  69. package/lib/types/host/proxy-manager.d.ts.map +1 -1
  70. package/lib/types/index.d.ts.map +1 -1
  71. package/lib/types/shared/minimax-code-contracts.d.ts +17 -3
  72. package/lib/types/shared/minimax-code-contracts.d.ts.map +1 -1
  73. package/package.json +13 -4
@@ -0,0 +1,87 @@
1
+ /**
2
+ * 本线路用到的槽位声明与浏览器侧服务面。
3
+ *
4
+ * `tool.call.toolview` 不在这里重复声明:它由本插件已安装的 ui-tool 合并进
5
+ * `SlotMap`,同一格写两次形状不同就是编译错误。
6
+ *
7
+ * `sidebar.right.tab.document` 由 `@deepseek-ai/dsh-client-ui-sidebar-documentpreview`
8
+ * 提供,而那个包**不是本插件的依赖**(`package.json` 的 `dsh.client.inject` 只声明
9
+ * 运行期顺序,不是编译期依赖)。为了两行注册去依赖整个文档预览包,等于把一个可选
10
+ * 能力变成硬依赖,所以这里按平台同形把它**声明**出来——运行语义完全由平台的槽位
11
+ * 注册表决定,这里只是让 `register` / `inject` 的实参过类型检查。
12
+ * 这与 `../progress-updates/contracts.ts` 对 `sidebar.right.pane.tab` 的处理一致。
13
+ *
14
+ * 刻意**不**合并 cordis 的 `Context`:只要 `src/client/**` 里出现一条那样的
15
+ * augmentation,cordis 自己的 `interface Context extends Pick<Fiber, 'effect'>`
16
+ * 就会整片失效(`../progress-updates/contracts.ts` 末尾记了这个坑)。
17
+ * 所以 `documentPreviews` / `remote` 一律经 `ctx.get(name)` 取回再窄化。
18
+ *
19
+ * @module @eddyskywalker/dsh-chatgpt-subscription/client/minimax-code/video-slots
20
+ */
21
+ /** 一份 `DocumentPreviewDefinition` 在运行期的形状(宿主 `document/registry.ts` 同形)。 */
22
+ export interface DocumentPreviewRegistration {
23
+ /** 唯一实现名,同时是文档槽的键。 */
24
+ readonly id: string;
25
+ /** 认领的文件后缀(不带点)。 */
26
+ readonly extensions: readonly string[];
27
+ /** 其中字节不可当文本读的后缀,必须是 `extensions` 的子集。 */
28
+ readonly binaryExtensions?: readonly string[];
29
+ /** 外部实现优先于内置实现。 */
30
+ readonly priority?: 'builtin' | 'extension';
31
+ /** 页签上的实现名,渲染时求值。 @returns 可见名称。 */
32
+ readonly title: () => string;
33
+ /** 内容下发方式。 */
34
+ readonly loading: 'text-pages' | 'bytes-complete' | 'renderer';
35
+ /** 是否消费文档的换行偏好。 */
36
+ readonly wrap?: boolean;
37
+ }
38
+ /** `ctx.documentPreviews` 的注册面。 */
39
+ export interface DocumentPreviewRegistryService {
40
+ /**
41
+ * 注册一个实现。
42
+ * @param definition - 静态声明;`binaryExtensions` 越界或 id 重复都会抛。
43
+ * @returns 幂等卸载函数。
44
+ */
45
+ register(definition: DocumentPreviewRegistration): () => void;
46
+ }
47
+ /**
48
+ * 本插件用到的 `remote.workspaceFiles` 面。
49
+ *
50
+ * 与宿主 `ui-sidebar-documentpreview/src/client/rpc.ts` 的
51
+ * `WorkspaceFilesReadRemote` 同形:不传 `range` 就是整文件读取(上限由宿主
52
+ * `maxFileBytes` 决定),`baseFile` 用于把相对路径解析到基准文件目录。
53
+ */
54
+ export interface WorkspaceFilesRemote {
55
+ readonly workspaceFiles: {
56
+ /**
57
+ * 读整段文件字节。
58
+ * @param sessionId - 决定工作区根的会话 id。
59
+ * @param path - 绝对路径,或相对该会话工作区根的路径。
60
+ * @param options - 可选的字节窗口与基准文件;本实现不传。
61
+ * @param signal - 取消信号。
62
+ * @returns 裸字节结果(`data` 是 `Uint8Array`)。
63
+ */
64
+ readBytes(sessionId: string, path: string, options: {
65
+ readonly baseFile?: string;
66
+ readonly range?: {
67
+ readonly offset?: number;
68
+ readonly length?: number;
69
+ };
70
+ }, signal?: AbortSignal): Promise<{
71
+ readonly data: Uint8Array;
72
+ }>;
73
+ };
74
+ }
75
+ declare module '@deepseek-ai/dsh-client-ui-slots' {
76
+ interface SlotMap {
77
+ /**
78
+ * 文档正文,按注册的实现 id 分发。本渲染器只消费地址与注入的取字节通道,
79
+ * 所以只声明驱动 `register` / `inject` 过类型检查的这两轴。
80
+ */
81
+ 'sidebar.right.tab.document': {
82
+ kind: 'keyed';
83
+ scope: 'session';
84
+ };
85
+ }
86
+ }
87
+ //# sourceMappingURL=video-slots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-slots.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/video-slots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,4EAA4E;AAC5E,MAAM,WAAW,2BAA2B;IAC1C,sBAAsB;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,oBAAoB;IACpB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,0CAA0C;IAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7C,mBAAmB;IACnB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IAC3C,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAA;IAC5B,cAAc;IACd,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,gBAAgB,GAAG,UAAU,CAAA;IAC9D,mBAAmB;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,mCAAmC;AACnC,MAAM,WAAW,8BAA8B;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,2BAA2B,GAAG,MAAM,IAAI,CAAA;CAC9D;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,cAAc,EAAE;QACvB;;;;;;;WAOG;QACH,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;YAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,EAChH,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;YAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;SAAE,CAAC,CAAA;KAC1C,CAAA;CACF;AAED,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAU,OAAO;QACf;;;WAGG;QACH,4BAA4B,EAAE;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,SAAS,CAAA;SAAE,CAAA;KAClE;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"context-overflow.d.ts","sourceRoot":"","sources":["../../../../src/host/common/context-overflow.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,eAAO,MAAM,qBAAqB,4BAA4B,CAAA;AAE9D,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAmBzD;AAED,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAE7E"}
1
+ {"version":3,"file":"context-overflow.d.ts","sourceRoot":"","sources":["../../../../src/host/common/context-overflow.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,eAAO,MAAM,qBAAqB,4BAA4B,CAAA;AAE9D,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA6CzD;AAED,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAE7E"}
@@ -94,6 +94,20 @@ export interface MinimaxCodeAdapterOptions {
94
94
  */
95
95
  accountPool?: MinimaxCodeAccountPool;
96
96
  }
97
+ /**
98
+ * The error code for "the model this request named is not the model that answered".
99
+ *
100
+ * Deliberately NOT in `MINIMAX_CODE_RETRY_POLICY_CONFIG.retryableCodes` (which is
101
+ * RATE_LIMIT / SERVER / TIMEOUT / TRANSPORT), so the harness never retries it:
102
+ * re-issuing the SAME body against the SAME substitution answers the SAME wrong
103
+ * model, and each attempt is billed at the substituted model's price. The failure
104
+ * is terminal until a human changes the model, which is exactly what the retry
105
+ * policy is keyed on.
106
+ *
107
+ * Exported so a test (and any later caller) can name it instead of copying the
108
+ * literal, the same way NO_ANSWER_PHRASE is.
109
+ */
110
+ export declare const MODEL_SUBSTITUTED_CODE = "MODEL_SUBSTITUTED";
97
111
  export declare class MinimaxCodeAdapter extends LlmAdapter {
98
112
  private readonly store;
99
113
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/adapter.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,42 @@ export interface MinimaxCodeAccountIdentity {
65
65
  subUserName?: string;
66
66
  userEmail?: string;
67
67
  }
68
+ /**
69
+ * Non-secret identity of the SIGN-IN a check-in credential came from.
70
+ *
71
+ * Spelled the way `minimaxCodePoolIdentity` (account-pool.ts) and
72
+ * `rotationKey` (token-store.ts) spell it — a native record slot, or the
73
+ * sign-in that produced a plugin-owned credential — because it names the same
74
+ * thing those do: one session, stable across every token rotation. It is
75
+ * repeated here rather than imported so this wire half stays free of the pool's
76
+ * imports.
77
+ *
78
+ * **Read this before trusting it as an account id.** It is a rotation key — a
79
+ * guard rail that tells "the same session, rotated" from "a different session" —
80
+ * and NOT the authoritative identity of the person behind it:
81
+ *
82
+ * - `native:<region>:<recordKey>` names a RECORD SLOT in the desktop app's
83
+ * `auth.json`, not a user. `recordKey` is a digest of the app's auth-home
84
+ * path, and the app keeps one record per slot, so signing a DIFFERENT account
85
+ * in on the desktop replaces that slot's session while the key stays the same.
86
+ * - `signin:<region>:<loginEpoch>` has the same shape of gap: it names the
87
+ * sign-in event, not the account it produced.
88
+ *
89
+ * The authoritative account fact on this line is therefore the `realUserID`
90
+ * resolved from the identity surface, and that is what the check-in state pins
91
+ * and what an attempt is compared against. This key is supporting evidence: it
92
+ * distinguishes a rotation from a swap, which `realUserID` cannot do without
93
+ * a request.
94
+ *
95
+ * Both fields are deliberately non-secret: a record slot name and a sign-in
96
+ * epoch, never a token and never a digest of one. That is what makes this the
97
+ * only account identity allowed to appear in a check-in error message.
98
+ */
99
+ export declare function checkinAccountIdentity(credentials: {
100
+ region?: string | undefined;
101
+ recordKey?: string | null | undefined;
102
+ loginEpoch?: string | undefined;
103
+ }): string | undefined;
68
104
  /**
69
105
  * Validate one panel response. Ported from the official
70
106
  * `validateSigninPanel`: exactly seven days, day numbers 1..7 without
@@ -1 +1 @@
1
- {"version":3,"file":"checkin-gateway.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/checkin-gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAG/E,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,wCAAwC,CAAA;AACvE,wEAAwE;AACxE,eAAO,MAAM,iBAAiB,uCAAuC,CAAA;AACrE,gFAAgF;AAChF,eAAO,MAAM,cAAc,sBAAsB,CAAA;AAEjD,iFAAiF;AACjF,eAAO,MAAM,mBAAmB,IAAI,CAAA;AACpC,eAAO,MAAM,oBAAoB,IAAI,CAAA;AACrC,eAAO,MAAM,kBAAkB,IAAI,CAAA;AACnC,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,IAAI,CAAA;AACnC,eAAO,MAAM,oBAAoB,IAAI,CAAA;AAErC,eAAO,MAAM,kBAAkB,QAAS,CAAA;AAexC,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAEtE;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,aAAa,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,WAAW,CAAA;CACnB;AAED,2DAA2D;AAC3D,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAyB/D;AAED,uFAAuF;AACvF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAUvE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,CAa1E;AAuHD,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAA;IACpB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IAGlD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;gBAD9B,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM,GAAG,IAAI;CAKjC;AAMD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,0BAA0B,CAAC,CAuCrC;AA0DD,8EAA8E;AAC9E,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,WAAW,CAAC,CAEtB;AAED,kEAAkE;AAClE,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,eAAe,CAAC,CAE1B"}
1
+ {"version":3,"file":"checkin-gateway.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/checkin-gateway.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,28 @@ export declare const CHECKIN_INACTIVE_RECHECK_MS: number;
45
45
  export declare function checkinStatePath(): string;
46
46
  /** Local calendar day an instant belongs to; state entries are keyed by it. */
47
47
  export declare function localDateString(nowMs: number): string;
48
+ /**
49
+ * The check-in refused to act because the account changed **halfway through one
50
+ * attempt**.
51
+ *
52
+ * This is deliberately NOT the "the pool row was re-pointed at another account"
53
+ * case: that one is a legitimate state change and the entry re-synchronises to
54
+ * it (see {@link MinimaxCodeCheckinService['identityFor']}). What this class
55
+ * reports is the one case that must never self-heal — a forced 401 renewal that
56
+ * answers with a different account — because the panel was already read for one
57
+ * account and the claim would post as another.
58
+ *
59
+ * Its own class so the caller can tell it apart from a transport failure: it is
60
+ * never retried, and never recorded as "nothing to do today". The message
61
+ * carries only non-secret facts — the account keys each side resolved to — and
62
+ * never a token.
63
+ */
64
+ export declare class MinimaxCodeCheckinAccountMismatchError extends Error {
65
+ readonly accountId: string;
66
+ readonly expectedIdentity: string | undefined;
67
+ readonly actualIdentity: string | undefined;
68
+ constructor(accountId: string, expectedIdentity: string | undefined, actualIdentity: string | undefined);
69
+ }
48
70
  /** The slice of the account pool the scheduler uses. */
49
71
  export type MinimaxCodeCheckinPool = Pick<MinimaxCodeAccountPool, 'listAccounts' | 'getFreshCredential' | 'renewCredential'>;
50
72
  export interface MinimaxCodeCheckinServiceOptions {
@@ -115,6 +137,30 @@ export declare class MinimaxCodeCheckinService {
115
137
  * it, so it is fetched from the identity surface once and kept in the state
116
138
  * document. The region is cached alongside because the identity call's
117
139
  * origin depends on it.
140
+ *
141
+ * The account identity of the resolving credential is pinned to the entry as
142
+ * well: the pin records which sign-in this realUserID was learned FOR, and it
143
+ * outlives the token that resolved it.
144
+ *
145
+ * **A re-pointed row is a state change, not a fault.** When the pin no longer
146
+ * matches the credential in hand, the pool row now holds a different account
147
+ * (the user signed a second account into the desktop app's sheet, or adopted
148
+ * another session into this row). Following it is the correct outcome: a pool
149
+ * row IS one account this plugin manages, and the check-in exists to sign in
150
+ * whatever account that row now holds. Holding the stale pin instead would
151
+ * mean asking the panel with A's realUserID while presenting B's token —
152
+ * precisely "B's credential used to check in A" — and would have no exit,
153
+ * because nothing clears a state document the card cannot reach.
154
+ *
155
+ * So a diverging pin re-resolves the identity WITH the credential in hand and
156
+ * re-pins the entry to it. An entry written before the pin existed carries
157
+ * `undefined` and re-resolves once too, which is how an old state document
158
+ * heals itself into a pinned one.
159
+ *
160
+ * The one thing that must still never happen — an account changing halfway
161
+ * through a single attempt — is caught elsewhere, because it cannot be caught
162
+ * here: {@link attemptOnce}'s panel/claim pair and the forced-renewal guard in
163
+ * {@link checkinOne}.
118
164
  */
119
165
  private identityFor;
120
166
  /** Check one account in, recording the outcome in its today's entry. */
@@ -125,9 +171,21 @@ export declare class MinimaxCodeCheckinService {
125
171
  * caller's renew-and-retry or attempt bookkeeping.
126
172
  */
127
173
  private attemptOnce;
128
- /** The status call, against the current credential. */
174
+ /**
175
+ * The status call, against the current credential.
176
+ *
177
+ * The guard runs BEFORE the panel is read: the credential making this request
178
+ * must still be the one the identity was resolved with a moment ago.
179
+ */
129
180
  private panel;
130
- /** The claim call, against the current credential. */
181
+ /**
182
+ * The claim call, against the current credential.
183
+ *
184
+ * The guard runs again here — the pair the official client protects
185
+ * (`getSigninPanel` then `claimSignin`) — so a panel read for one account can
186
+ * never be followed by a claim posted as another, and both calls carry the
187
+ * same identity value by construction.
188
+ */
131
189
  private claim;
132
190
  /**
133
191
  * Fold one panel into the day's entry.
@@ -1 +1 @@
1
- {"version":3,"file":"checkin.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/checkin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAMH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAA;AACvF,OAAO,KAAK,EAAE,sBAAsB,EAAgC,MAAM,mBAAmB,CAAA;AAY7F;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAAiB,CAAA;AAC7C,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,IAAI,CAAA;AACpC;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,QAAiB,CAAA;AAEzD,yEAAyE;AACzE,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrD;AAwDD,wDAAwD;AACxD,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,sBAAsB,EACtB,cAAc,GAAG,oBAAoB,GAAG,iBAAiB,CAC1D,CAAA;AAED,MAAM,WAAW,gCAAgC;IAC/C,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAA;IACpC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAC5B,CAAA;CACF;AAED;;;GAGG;AACH,qBAAa,yBAAyB;IAmBlC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAnB1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IACnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,MAAM,CAAQ;IACtB,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAA6B;IAE7C,OAAO,CAAC,SAAS,CAAsB;IACvC,iFAAiF;IACjF,OAAO,CAAC,SAAS,CAA6B;gBAG3B,IAAI,EAAE,sBAAsB,EAC5B,OAAO,EAAE,gCAAgC;IAS5D;;;;;;;;OAQG;IACG,IAAI,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzC,OAAO,CAAC,KAAK;YAQC,QAAQ;YAoBR,GAAG;IAmCjB,yDAAyD;YAC3C,KAAK;IAOnB;;;;;;;OAOG;YACW,WAAW;IAgBzB,wEAAwE;YAC1D,UAAU;IAmCxB;;;;OAIG;YACW,WAAW;IAgBzB,uDAAuD;YACzC,KAAK;IAWnB,sDAAsD;YACxC,KAAK;IAWnB;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAsB1B,8EAA8E;IAC9E,OAAO,CAAC,YAAY;IAQpB;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,yBAAyB,CAAC;YAwCrC,IAAI;YA+BJ,IAAI;CAYnB"}
1
+ {"version":3,"file":"checkin.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/checkin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAMH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAA;AACvF,OAAO,KAAK,EAAE,sBAAsB,EAAgC,MAAM,mBAAmB,CAAA;AAc7F;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAAiB,CAAA;AAC7C,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,IAAI,CAAA;AACpC;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,QAAiB,CAAA;AAEzD,yEAAyE;AACzE,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrD;AAiCD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,sCAAuC,SAAQ,KAAK;IAE7D,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS;IAC7C,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS;gBAFlC,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,cAAc,EAAE,MAAM,GAAG,SAAS;CAQ9C;AAgCD,wDAAwD;AACxD,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,sBAAsB,EACtB,cAAc,GAAG,oBAAoB,GAAG,iBAAiB,CAC1D,CAAA;AAED,MAAM,WAAW,gCAAgC;IAC/C,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAA;IACpC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAC5B,CAAA;CACF;AAkCD;;;GAGG;AACH,qBAAa,yBAAyB;IAmBlC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAnB1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IACnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,MAAM,CAAQ;IACtB,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAA6B;IAE7C,OAAO,CAAC,SAAS,CAAsB;IACvC,iFAAiF;IACjF,OAAO,CAAC,SAAS,CAA6B;gBAG3B,IAAI,EAAE,sBAAsB,EAC5B,OAAO,EAAE,gCAAgC;IAS5D;;;;;;;;OAQG;IACG,IAAI,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzC,OAAO,CAAC,KAAK;YAQC,QAAQ;YAoBR,GAAG;IAmCjB,yDAAyD;YAC3C,KAAK;IAOnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;YACW,WAAW;IAgCzB,wEAAwE;YAC1D,UAAU;IAiDxB;;;;OAIG;YACW,WAAW;IA2BzB;;;;;OAKG;YACW,KAAK;IAcnB;;;;;;;OAOG;YACW,KAAK;IAcnB;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAsB1B,8EAA8E;IAC9E,OAAO,CAAC,YAAY;IAQpB;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,yBAAyB,CAAC;YAwCrC,IAAI;YAoCJ,IAAI;CAYnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * The smallest ISO BMFF duration reader this route needs, with no decoder.
3
+ *
4
+ * WHY IT EXISTS. A reference video must be sent to the generation service with
5
+ * its length in seconds beside it (docs/minimax-video-extended-spec.md section
6
+ * 4), and upstream reads that number out of the container itself rather than
7
+ * asking the caller for it - `readIsoBmffDurationSeconds` is the name of the
8
+ * upstream file too. A LOCAL reference video therefore owes the caller no
9
+ * `referenceVideoDurationSeconds` argument: this module supplies it.
10
+ *
11
+ * WHY IT IS NOT AFFMPEG. The number lives in exactly one box, `moov/mvhd`, at a
12
+ * fixed byte offset inside it. Reaching it is an eight-byte header walk, not a
13
+ * demux; pulling in a media toolchain (or a native binding) to read two integers
14
+ * would dwarf the rest of this plugin.
15
+ *
16
+ * THE TWO LAYOUTS, which is the whole reason the walk is written the way it is:
17
+ *
18
+ * | layout | box order | what a whole-file read would cost |
19
+ * | ------------- | -------------------- | --------------------------------- |
20
+ * | faststart | `ftyp moov mdat` | the moov is near the front |
21
+ * | ordinary mp4 | `ftyp mdat moov` | the moov is AFTER tens of megabytes |
22
+ *
23
+ * So the reader NEVER loads the file. It opens a handle, `stat`s the size, and
24
+ * seeks: it reads the eight-byte header of each TOP-LEVEL box only, jumps over a
25
+ * `mdat` by its declared size, and - once it lands on `moov` - reads that box's
26
+ * own child headers the same way until it finds `mvhd`, of which it keeps the
27
+ * last 32 bytes. A 500 MB clip costs a few dozen bytes of I/O.
28
+ *
29
+ * WHAT IT REFUSES, deliberately, instead of guessing:
30
+ * - a file that is not ISO BMFF at all (a WebM's EBML magic is not a box
31
+ * header) -> `MINIMAX_VIDEO_NOT_ISO_BMFF`;
32
+ * - a box header that runs past the end of its container, or a box smaller
33
+ * than its own header -> `MINIMAX_VIDEO_NOT_ISO_BMFF`;
34
+ * - an ISO BMFF file with no `moov`, no `mvhd`, or a `mvhd` too short to hold
35
+ * its own fields -> `MINIMAX_VIDEO_DURATION_UNREADABLE`;
36
+ * - a `timescale` of zero (the division has no answer) -> the same code;
37
+ * - `mvhd`'s documented "unknown duration" sentinels (all bits set) -> the
38
+ * same code, because reporting a made-up length is worse than refusing.
39
+ *
40
+ * Every refusal is an ERROR, never `undefined`: a caller that silently got no
41
+ * duration would send a reference video with no length, or `null`, and neither
42
+ * is a thing the service asked for.
43
+ *
44
+ * @module dsh-chatgpt-subscription/minimax-code/iso-bmff-duration
45
+ */
46
+ import { HarnessError } from '@deepseek-ai/dsh-llm';
47
+ /**
48
+ * Raised when a file's length cannot be read out of its ISO BMFF container.
49
+ *
50
+ * A `HarnessError` subclass rather than a bare `Error`, so the tool layer can
51
+ * hand its `code` straight to the caller without re-wrapping the message.
52
+ */
53
+ export declare class IsoBmffDurationError extends HarnessError {
54
+ constructor(message: string, code: string);
55
+ }
56
+ /**
57
+ * Read one mp4/mov file's length in seconds, without decoding a frame.
58
+ *
59
+ * The walk, in full:
60
+ *
61
+ * 1. `stat` the file - the size is the only bound needed, and nothing is read
62
+ * before it is known.
63
+ * 2. From offset 0, read each TOP-LEVEL box header and jump to the next one, so
64
+ * an `mdat` is skipped by arithmetic rather than by reading it. The first box
65
+ * must be one of {@link ISO_BMFF_LEADING_BOX_TYPES}, which is where a
66
+ * non-mp4 file is caught.
67
+ * 3. On `moov`, walk ITS direct children the same way until `mvhd` appears. A
68
+ * `trak` is skipped by size, exactly like `mdat`.
69
+ * 4. Read the first {@link MVHD_MAX_READ_BYTES} bytes of `mvhd` and divide
70
+ * `duration` by `timescale`.
71
+ *
72
+ * Both measured layouts work for the same reason: the walk is driven by the
73
+ * sizes the boxes declare, so it does not care whether `moov` came before or
74
+ * after the media data. Faststart files find it on the first or second hop; a
75
+ * camera/encoder file finds it after one seek over the entire `mdat`.
76
+ *
77
+ * @param filePath - absolute path to the file to read.
78
+ * @returns the clip length in seconds, as an exact ratio.
79
+ * @throws IsoBmffDurationError (a `HarnessError`) whenever the length cannot be
80
+ * established - a missing file, a non-ISO-BMFF file, a truncated box, a
81
+ * missing `moov`/`mvhd`, an unreadable `mvhd`, or a zero timescale.
82
+ */
83
+ export declare function readIsoBmffDurationSeconds(filePath: string): Promise<number>;
84
+ //# sourceMappingURL=iso-bmff-duration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iso-bmff-duration.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/iso-bmff-duration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;gBACxC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAI1C;AAyOD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkFlF"}
@@ -84,31 +84,51 @@ export interface MinimaxReplayScope {
84
84
  provider?: string;
85
85
  }
86
86
  /**
87
- * The thinking control for one request, as documented by MiniMax.
87
+ * The `thinking` object one request carries, and the only thing that decides
88
+ * WHICH CHANNEL the reasoning comes back in.
88
89
  *
89
- * The official "Model Invocation" page settles the shape, and it is NOT a
90
- * `thinking` object:
90
+ * The official "Model Invocation" page says thinking is on by default and needs
91
+ * no configuration, and that the depth field is a top-level
92
+ * `output_config.effort`. Both are true - and they were read as "the request
93
+ * never carries a `thinking` key". Measured on this subscription endpoint on
94
+ * 2026-10-20 (`scripts/probe-minimax-thinking-channels.probe.ts`):
91
95
  *
92
- * > Thinking is **on by default and needs no configuration**.
96
+ * | request | response block | where the reasoning lands |
97
+ * | --- | --- | --- |
98
+ * | no `thinking` field | `content_block.type = "text"` | **in the answer text** |
99
+ * | `thinking: { type: 'adaptive' }` | `content_block.type = "thinking"` | **in a thinking block** |
93
100
  *
94
- * > Protocol | Thinking depth field | Where thinking content is returned
95
- * > Anthropic-compatible | `output_config.effort` | `thinking` content block
96
- * > OpenAI-compatible | `reasoning_effort` | `reasoning_content` field
101
+ * The same model, the same prompt, the same reasoning - but without the object
102
+ * the service streams it as ordinary assistant text, so the model visibly
103
+ * thinks out loud inside the answer. That also means the harness never sees a
104
+ * reasoning block, and the interleaved-thinking replay has nothing to replay.
97
105
  *
98
- * Three consequences, each replacing something this function used to do:
106
+ * M3.1 needs no object: measured, a forced-on model answers in the thinking
107
+ * channel either way, which is why the upstream managed path deletes the
108
+ * `thinking` key for forced-on models and keeps it for switchable ones.
99
109
  *
100
- * 1. No `thinking` key is ever sent. The field was inferred, never documented,
101
- * and a request that thinks is exactly a request that says nothing - which is
102
- * why the field could sit here for months with nothing contradicting it.
103
- * 2. The depth level belongs at the TOP level, in `output_config.effort`, not
104
- * inside a thinking object. Anywhere else is a field the service does not read.
105
- * 3. `effort` accepts low, medium, high, xhigh and max. There is no `default`
106
- * member: the page says omitting the field means max, so `default` must not
107
- * reach the wire, and neither must an explicit `max` for the same reason.
110
+ * The off state is the same object with `disabled`, which is what the upstream
111
+ * managed path sends and what this endpoint measured as thinking off (10 output
112
+ * tokens, no thinking block).
108
113
  *
109
- * The off switch is a separate question the docs only answer for M3.1, where turning
110
- * thinking off returns a 400. `toggle` models keep theirs because the
111
- * subscription's own model table still names a none-thinking state for them.
114
+ * @returns the value for `thinking`, or undefined when the request should
115
+ * carry no thinking object at all.
116
+ */
117
+ export declare function thinkingFieldFor(modelId: string, requestedEffort: string | undefined | null): {
118
+ type: 'adaptive' | 'disabled';
119
+ } | undefined;
120
+ /**
121
+ * The depth level one request carries, as `output_config`.
122
+ *
123
+ * The level belongs at the TOP level - `output_config.effort` - and accepts
124
+ * low, medium, high, xhigh and max. There is no `default` member: the page
125
+ * says omitting the field means max, so the old local `default` spelling never
126
+ * reached the wire. This line no longer leans on that: every model that has
127
+ * levels states its default out loud, and a request that asks for nothing
128
+ * resolves to that default instead of to an omission.
129
+ *
130
+ * The level is the DEPTH, not the channel: measured, low and max differ by
131
+ * about 3x thinking and 4x latency, and it composes with the `thinking` object.
112
132
  *
113
133
  * @returns the value for `output_config`, or undefined when the request should
114
134
  * carry no thinking control at all.
@@ -254,6 +274,18 @@ export interface MinimaxStreamState {
254
274
  * while nothing has.
255
275
  */
256
276
  streamError?: Record<string, unknown>;
277
+ /**
278
+ * The model id the service says it ANSWERED with, from
279
+ * `message_start.message.model`.
280
+ *
281
+ * Optional and one-way: a stream whose header omits the field simply leaves it
282
+ * undefined, and nothing here decides anything from it — the adapter compares it
283
+ * with the id the request carried. It is recorded rather than judged because the
284
+ * mapper cannot know what was asked for; see the adapter's check for why the
285
+ * comparison is the whole point of this route (this endpoint does not refuse an
286
+ * id it cannot route, it substitutes one).
287
+ */
288
+ answeredModel?: string;
257
289
  done: boolean;
258
290
  finished: boolean;
259
291
  inputTokens: number;
@@ -1 +1 @@
1
- {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/mapper.ts"],"names":[],"mappings":"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"}