dsh-codex-subscription 2.6.0 → 2.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +5 -5
- package/README.md +5 -5
- package/lib/client.js +67 -1
- package/lib/index.js +44 -5
- package/package.json +7 -1
package/README.en.md
CHANGED
|
@@ -106,7 +106,7 @@ This plugin supports the latest DeepSeek Harness release recorded in its package
|
|
|
106
106
|
2. Paste this package name, with its version, into the **Package name or address** field:
|
|
107
107
|
|
|
108
108
|
```text
|
|
109
|
-
dsh-codex-subscription@2.6.
|
|
109
|
+
dsh-codex-subscription@2.6.2
|
|
110
110
|
```
|
|
111
111
|
|
|
112
112
|
3. Click **Install** and wait for completion. Follow the page instructions; save your work before restarting if requested.
|
|
@@ -118,7 +118,7 @@ Why the version is included: DSH's plugin page only installs versions that are a
|
|
|
118
118
|
<summary>Terminal installation (with an existing dsh command)</summary>
|
|
119
119
|
|
|
120
120
|
```sh
|
|
121
|
-
dsh plugin --profile web add dsh-codex-subscription@2.6.
|
|
121
|
+
dsh plugin --profile web add dsh-codex-subscription@2.6.2
|
|
122
122
|
```
|
|
123
123
|
|
|
124
124
|
Follow the restart instructions, then sign in under **Settings → Codex**. Both the Plugins page and the terminal use DSH's installation management.
|
|
@@ -131,7 +131,7 @@ Follow the restart instructions, then sign in under **Settings → Codex**. Both
|
|
|
131
131
|
After signing in and selecting a Codex model in Web, install the same plugin in the Headless profile:
|
|
132
132
|
|
|
133
133
|
```sh
|
|
134
|
-
dsh plugin --profile headless add dsh-codex-subscription@2.6.
|
|
134
|
+
dsh plugin --profile headless add dsh-codex-subscription@2.6.2
|
|
135
135
|
dsh --profile headless "Reply with only the word: ok"
|
|
136
136
|
```
|
|
137
137
|
|
|
@@ -266,7 +266,7 @@ Find this plugin on the DSH **Plugins** page and use its update or uninstall act
|
|
|
266
266
|
<summary>Terminal commands</summary>
|
|
267
267
|
|
|
268
268
|
```sh
|
|
269
|
-
dsh plugin --profile web update dsh-codex-subscription@2.6.
|
|
269
|
+
dsh plugin --profile web update dsh-codex-subscription@2.6.2
|
|
270
270
|
```
|
|
271
271
|
|
|
272
272
|
Run only when you want to uninstall:
|
|
@@ -282,7 +282,7 @@ dsh plugin --profile web remove dsh-codex-subscription
|
|
|
282
282
|
<details>
|
|
283
283
|
<summary>DSH 0.2.0-rc.2 reports the plugin as incompatible?</summary>
|
|
284
284
|
|
|
285
|
-
DSH 0.2.0-rc.2 did not exist when any release before 2.2.10 was published, and a published package's compatibility declaration cannot be changed. Install 2.2.10 or later (a bare package name can resolve to an older release during the first 24 hours, so enter `dsh-codex-subscription@2.2.10`) from the **Plugins** page, or run `dsh plugin --profile web update dsh-codex-subscription@2.6.
|
|
285
|
+
DSH 0.2.0-rc.2 did not exist when any release before 2.2.10 was published, and a published package's compatibility declaration cannot be changed. Install 2.2.10 or later (a bare package name can resolve to an older release during the first 24 hours, so enter `dsh-codex-subscription@2.2.10`) from the **Plugins** page, or run `dsh plugin --profile web update dsh-codex-subscription@2.6.2`, then restart DSH.
|
|
286
286
|
|
|
287
287
|
</details>
|
|
288
288
|
|
package/README.md
CHANGED
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
2. 在 **包名或地址** 输入框中粘贴下面的包名(已带版本号):
|
|
107
107
|
|
|
108
108
|
```text
|
|
109
|
-
dsh-codex-subscription@2.6.
|
|
109
|
+
dsh-codex-subscription@2.6.2
|
|
110
110
|
```
|
|
111
111
|
|
|
112
112
|
3. 点击 **安装**,等待安装完成;按页面提示操作,需要重启时先保存工作。
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
<summary>终端安装(已能运行 dsh 命令)</summary>
|
|
119
119
|
|
|
120
120
|
```sh
|
|
121
|
-
dsh plugin --profile web add dsh-codex-subscription@2.6.
|
|
121
|
+
dsh plugin --profile web add dsh-codex-subscription@2.6.2
|
|
122
122
|
```
|
|
123
123
|
|
|
124
124
|
安装完成后按提示重启 DSH,再到 **设置 → Codex 订阅** 登录。插件页面和终端均由 DSH 管理安装。
|
|
@@ -131,7 +131,7 @@ dsh plugin --profile web add dsh-codex-subscription@2.6.0
|
|
|
131
131
|
先在 Web 中完成登录并选择一次 Codex 模型,再把同一个插件安装到 Headless profile:
|
|
132
132
|
|
|
133
133
|
```sh
|
|
134
|
-
dsh plugin --profile headless add dsh-codex-subscription@2.6.
|
|
134
|
+
dsh plugin --profile headless add dsh-codex-subscription@2.6.2
|
|
135
135
|
dsh --profile headless "只回复:ok"
|
|
136
136
|
```
|
|
137
137
|
|
|
@@ -295,7 +295,7 @@ DSH 实机设置截图。
|
|
|
295
295
|
<summary>终端方式</summary>
|
|
296
296
|
|
|
297
297
|
```sh
|
|
298
|
-
dsh plugin --profile web update dsh-codex-subscription@2.6.
|
|
298
|
+
dsh plugin --profile web update dsh-codex-subscription@2.6.2
|
|
299
299
|
```
|
|
300
300
|
|
|
301
301
|
仅在需要卸载时运行:
|
|
@@ -311,7 +311,7 @@ dsh plugin --profile web remove dsh-codex-subscription
|
|
|
311
311
|
<details>
|
|
312
312
|
<summary>DSH 0.2.0-rc.2 提示插件不兼容?</summary>
|
|
313
313
|
|
|
314
|
-
2.2.10 之前的所有版本发布时 DSH 0.2.0-rc.2 还不存在,其兼容声明无法事后修改。请安装 2.2.10 或更高版本(只填包名时,发布满 24 小时前可能装到旧版,请直接填 `dsh-codex-subscription@2.2.10`):在 **插件** 页面更新,或运行 `dsh plugin --profile web update dsh-codex-subscription@2.6.
|
|
314
|
+
2.2.10 之前的所有版本发布时 DSH 0.2.0-rc.2 还不存在,其兼容声明无法事后修改。请安装 2.2.10 或更高版本(只填包名时,发布满 24 小时前可能装到旧版,请直接填 `dsh-codex-subscription@2.2.10`):在 **插件** 页面更新,或运行 `dsh plugin --profile web update dsh-codex-subscription@2.6.2`,然后重启 DSH。
|
|
315
315
|
|
|
316
316
|
</details>
|
|
317
317
|
|
package/lib/client.js
CHANGED
|
@@ -5678,6 +5678,13 @@ window.__ModuleLoader__.load({
|
|
|
5678
5678
|
inputImageDetail_original: "原图",
|
|
5679
5679
|
reasoningSummary: "推理摘要",
|
|
5680
5680
|
reasoningSummaryHint: "让模型在会话的“思考”部分给出推理摘要。自动由模型决定;简洁更短;详细更完整;关闭则不要摘要。",
|
|
5681
|
+
retryPolicy: "请求重试",
|
|
5682
|
+
retryPolicyHint: "请求因网络或服务端错误失败时的自动重试次数。默认沿用 DSH 的标准重试;无限会一直重试直到成功或手动停止。",
|
|
5683
|
+
retryPolicy_default: "默认",
|
|
5684
|
+
retryPolicy_off: "不重试",
|
|
5685
|
+
retryPolicy_10: "10 次",
|
|
5686
|
+
retryPolicy_20: "20 次",
|
|
5687
|
+
retryPolicy_unlimited: "无限",
|
|
5681
5688
|
reasoningSummary_auto: "自动",
|
|
5682
5689
|
reasoningSummary_concise: "简洁",
|
|
5683
5690
|
reasoningSummary_detailed: "详细",
|
|
@@ -6271,6 +6278,13 @@ window.__ModuleLoader__.load({
|
|
|
6271
6278
|
inputImageDetail_original: "Original",
|
|
6272
6279
|
reasoningSummary: "Reasoning summary",
|
|
6273
6280
|
reasoningSummaryHint: "Shows a summary of the reasoning in the Thinking section of the conversation. Auto lets the model decide; concise is shorter; detailed is fuller; off asks for none.",
|
|
6281
|
+
retryPolicy: "Request retries",
|
|
6282
|
+
retryPolicyHint: "How many times a request is retried after a network or server error. Default keeps the standard DSH retries; Unlimited keeps retrying until it succeeds or you stop it.",
|
|
6283
|
+
retryPolicy_default: "Default",
|
|
6284
|
+
retryPolicy_off: "No retries",
|
|
6285
|
+
retryPolicy_10: "10",
|
|
6286
|
+
retryPolicy_20: "20",
|
|
6287
|
+
retryPolicy_unlimited: "Unlimited",
|
|
6274
6288
|
reasoningSummary_auto: "Auto",
|
|
6275
6289
|
reasoningSummary_concise: "Concise",
|
|
6276
6290
|
reasoningSummary_detailed: "Detailed",
|
|
@@ -8388,6 +8402,15 @@ window.__ModuleLoader__.load({
|
|
|
8388
8402
|
"none"
|
|
8389
8403
|
]);
|
|
8390
8404
|
const DEFAULT_REASONING_SUMMARY = "auto";
|
|
8405
|
+
const RETRY_POLICY_FIELD = "retryPolicy";
|
|
8406
|
+
const RETRY_POLICIES = Object.freeze([
|
|
8407
|
+
"default",
|
|
8408
|
+
"off",
|
|
8409
|
+
"10",
|
|
8410
|
+
"20",
|
|
8411
|
+
"unlimited"
|
|
8412
|
+
]);
|
|
8413
|
+
const DEFAULT_RETRY_POLICY = "default";
|
|
8391
8414
|
const INPUT_IMAGE_DETAIL_FIELD = "inputImageDetail";
|
|
8392
8415
|
const INPUT_IMAGE_DETAILS = Object.freeze([
|
|
8393
8416
|
"low",
|
|
@@ -8448,6 +8471,7 @@ window.__ModuleLoader__.load({
|
|
|
8448
8471
|
"high"
|
|
8449
8472
|
].includes(value) ? value : DEFAULT_OUTPUT_VERBOSITY;
|
|
8450
8473
|
const normalizeReasoningSummary = (value) => REASONING_SUMMARIES.includes(value) ? value : DEFAULT_REASONING_SUMMARY;
|
|
8474
|
+
const normalizeRetryPolicy = (value) => RETRY_POLICIES.includes(value) ? value : DEFAULT_RETRY_POLICY;
|
|
8451
8475
|
const normalizeInputImageDetail = (value) => INPUT_IMAGE_DETAILS.includes(value) ? value : DEFAULT_INPUT_IMAGE_DETAIL;
|
|
8452
8476
|
const normalizeStreamIdleTimeoutMinutes = (value) => STREAM_IDLE_TIMEOUT_MINUTES.includes(value) ? value : 10;
|
|
8453
8477
|
const normalizeSpeedMode = (value) => [
|
|
@@ -8529,6 +8553,7 @@ window.__ModuleLoader__.load({
|
|
|
8529
8553
|
outputVerbosity: normalizeOutputVerbosity(value?.[OUTPUT_VERBOSITY_FIELD]),
|
|
8530
8554
|
inputImageDetail: normalizeInputImageDetail(value?.[INPUT_IMAGE_DETAIL_FIELD]),
|
|
8531
8555
|
reasoningSummary: normalizeReasoningSummary(value?.[REASONING_SUMMARY_FIELD]),
|
|
8556
|
+
retryPolicy: normalizeRetryPolicy(value?.[RETRY_POLICY_FIELD]),
|
|
8532
8557
|
streamIdleTimeoutMinutes: normalizeStreamIdleTimeoutMinutes(value?.[STREAM_IDLE_TIMEOUT_MINUTES_FIELD]),
|
|
8533
8558
|
contextMode: normalizeContextMode(value?.[CONTEXT_MODE_FIELD]),
|
|
8534
8559
|
customContextWindow: normalizeCustomContextWindow(value?.[CUSTOM_CONTEXT_WINDOW_FIELD]),
|
|
@@ -8589,6 +8614,7 @@ window.__ModuleLoader__.load({
|
|
|
8589
8614
|
[OUTPUT_VERBOSITY_FIELD]: normalizeOutputVerbosity(value?.[OUTPUT_VERBOSITY_FIELD]),
|
|
8590
8615
|
[INPUT_IMAGE_DETAIL_FIELD]: normalizeInputImageDetail(value?.[INPUT_IMAGE_DETAIL_FIELD]),
|
|
8591
8616
|
[REASONING_SUMMARY_FIELD]: normalizeReasoningSummary(value?.[REASONING_SUMMARY_FIELD]),
|
|
8617
|
+
[RETRY_POLICY_FIELD]: normalizeRetryPolicy(value?.[RETRY_POLICY_FIELD]),
|
|
8592
8618
|
[STREAM_IDLE_TIMEOUT_MINUTES_FIELD]: normalizeStreamIdleTimeoutMinutes(value?.[STREAM_IDLE_TIMEOUT_MINUTES_FIELD]),
|
|
8593
8619
|
[CONTEXT_MODE_FIELD]: normalizeContextMode(value?.[CONTEXT_MODE_FIELD]),
|
|
8594
8620
|
[CUSTOM_CONTEXT_WINDOW_FIELD]: normalizeCustomContextWindow(value?.[CUSTOM_CONTEXT_WINDOW_FIELD]),
|
|
@@ -9113,7 +9139,7 @@ window.__ModuleLoader__.load({
|
|
|
9113
9139
|
}
|
|
9114
9140
|
//#endregion
|
|
9115
9141
|
//#region src/version.js
|
|
9116
|
-
const PACKAGE_VERSION = "2.6.
|
|
9142
|
+
const PACKAGE_VERSION = "2.6.2";
|
|
9117
9143
|
//#endregion
|
|
9118
9144
|
//#region src/client-recovery.js
|
|
9119
9145
|
async function recoveryCall(rpc, endpoint, payload = {}, timeoutMs = 1e4) {
|
|
@@ -10484,6 +10510,41 @@ window.__ModuleLoader__.load({
|
|
|
10484
10510
|
})]
|
|
10485
10511
|
});
|
|
10486
10512
|
}
|
|
10513
|
+
function RetryPolicyPreference({ preference, t }) {
|
|
10514
|
+
const snapshot = usePreferenceSnapshot(preference);
|
|
10515
|
+
const writable = snapshot.status === "ready" && snapshot.writable === true;
|
|
10516
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
10517
|
+
className: "codexSubscriptionPreference",
|
|
10518
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
10519
|
+
className: "codexSubscriptionPreferenceCopy",
|
|
10520
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
10521
|
+
className: "codexSubscriptionPreferenceLabel",
|
|
10522
|
+
children: t("retryPolicy")
|
|
10523
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
10524
|
+
className: "codexSubscriptionPreferenceHint",
|
|
10525
|
+
children: t("retryPolicyHint")
|
|
10526
|
+
})]
|
|
10527
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
10528
|
+
className: "codexSubscriptionQuotaModes",
|
|
10529
|
+
"data-saving": snapshot.saving || void 0,
|
|
10530
|
+
"aria-busy": snapshot.saving || void 0,
|
|
10531
|
+
role: "radiogroup",
|
|
10532
|
+
"aria-label": t("retryPolicy"),
|
|
10533
|
+
children: RETRY_POLICIES.map((value) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
10534
|
+
className: "codexSubscriptionQuotaMode",
|
|
10535
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
10536
|
+
type: "radio",
|
|
10537
|
+
name: "codex-retry-policy",
|
|
10538
|
+
checked: snapshot.retryPolicy === value,
|
|
10539
|
+
disabled: !writable,
|
|
10540
|
+
onChange: () => {
|
|
10541
|
+
preference.set({ [RETRY_POLICY_FIELD]: value });
|
|
10542
|
+
}
|
|
10543
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: t(`retryPolicy_${value}`) })]
|
|
10544
|
+
}, value))
|
|
10545
|
+
})]
|
|
10546
|
+
});
|
|
10547
|
+
}
|
|
10487
10548
|
function StreamIdleTimeoutPreference({ preference, t }) {
|
|
10488
10549
|
const snapshot = usePreferenceSnapshot(preference);
|
|
10489
10550
|
const writable = snapshot.status === "ready" && snapshot.writable === true;
|
|
@@ -10792,6 +10853,11 @@ window.__ModuleLoader__.load({
|
|
|
10792
10853
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ReasoningSummaryPreference, {
|
|
10793
10854
|
preference,
|
|
10794
10855
|
t
|
|
10856
|
+
}),
|
|
10857
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "codexSubscriptionDivider" }),
|
|
10858
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(RetryPolicyPreference, {
|
|
10859
|
+
preference,
|
|
10860
|
+
t
|
|
10795
10861
|
})
|
|
10796
10862
|
]
|
|
10797
10863
|
}),
|
package/lib/index.js
CHANGED
|
@@ -14,7 +14,8 @@ import { constants, readFileSync } from "node:fs";
|
|
|
14
14
|
import { dirname, join, resolve } from "node:path";
|
|
15
15
|
import { pathToFileURL } from "node:url";
|
|
16
16
|
import { defineTool } from "@deepseek-ai/dsh-tools";
|
|
17
|
-
import
|
|
17
|
+
import * as dshLlm from "@deepseek-ai/dsh-llm";
|
|
18
|
+
import { createUserMessage } from "@deepseek-ai/dsh-llm";
|
|
18
19
|
import * as dshCredentials from "@deepseek-ai/dsh-credentials";
|
|
19
20
|
import { dshHomePath, resolveDshHome } from "@deepseek-ai/dsh-home-paths";
|
|
20
21
|
import { PiAiAdapter } from "@deepseek-ai/dsh-llm-pi-ai";
|
|
@@ -304,6 +305,15 @@ const REASONING_SUMMARIES = Object.freeze([
|
|
|
304
305
|
"none"
|
|
305
306
|
]);
|
|
306
307
|
const DEFAULT_REASONING_SUMMARY = "auto";
|
|
308
|
+
const RETRY_POLICY_FIELD = "retryPolicy";
|
|
309
|
+
const RETRY_POLICIES = Object.freeze([
|
|
310
|
+
"default",
|
|
311
|
+
"off",
|
|
312
|
+
"10",
|
|
313
|
+
"20",
|
|
314
|
+
"unlimited"
|
|
315
|
+
]);
|
|
316
|
+
const DEFAULT_RETRY_POLICY = "default";
|
|
307
317
|
const INPUT_IMAGE_DETAIL_FIELD = "inputImageDetail";
|
|
308
318
|
const INPUT_IMAGE_DETAILS = Object.freeze([
|
|
309
319
|
"low",
|
|
@@ -359,6 +369,7 @@ const normalizeOutputVerbosity = (value) => [
|
|
|
359
369
|
"high"
|
|
360
370
|
].includes(value) ? value : DEFAULT_OUTPUT_VERBOSITY;
|
|
361
371
|
const normalizeReasoningSummary = (value) => REASONING_SUMMARIES.includes(value) ? value : DEFAULT_REASONING_SUMMARY;
|
|
372
|
+
const normalizeRetryPolicy = (value) => RETRY_POLICIES.includes(value) ? value : DEFAULT_RETRY_POLICY;
|
|
362
373
|
const normalizeInputImageDetail = (value) => INPUT_IMAGE_DETAILS.includes(value) ? value : DEFAULT_INPUT_IMAGE_DETAIL;
|
|
363
374
|
const normalizeStreamIdleTimeoutMinutes = (value) => STREAM_IDLE_TIMEOUT_MINUTES.includes(value) ? value : 10;
|
|
364
375
|
const normalizeContextMode = (value) => [
|
|
@@ -485,6 +496,11 @@ const PREFERENCE_FIELDS = Object.freeze({
|
|
|
485
496
|
default: DEFAULT_REASONING_SUMMARY,
|
|
486
497
|
error: "Invalid reasoning summary preference"
|
|
487
498
|
},
|
|
499
|
+
[RETRY_POLICY_FIELD]: {
|
|
500
|
+
choices: RETRY_POLICIES,
|
|
501
|
+
default: DEFAULT_RETRY_POLICY,
|
|
502
|
+
error: "Invalid retry policy preference"
|
|
503
|
+
},
|
|
488
504
|
[INPUT_IMAGE_DETAIL_FIELD]: {
|
|
489
505
|
choices: INPUT_IMAGE_DETAILS,
|
|
490
506
|
default: DEFAULT_INPUT_IMAGE_DETAIL,
|
|
@@ -2064,7 +2080,7 @@ function inheritedOriginalImageRef(session, assetId) {
|
|
|
2064
2080
|
}
|
|
2065
2081
|
//#endregion
|
|
2066
2082
|
//#region src/version.js
|
|
2067
|
-
const PACKAGE_VERSION = "2.6.
|
|
2083
|
+
const PACKAGE_VERSION = "2.6.2";
|
|
2068
2084
|
const USER_AGENT = `dsh-codex-subscription/${PACKAGE_VERSION}`;
|
|
2069
2085
|
//#endregion
|
|
2070
2086
|
//#region src/codex-images.js
|
|
@@ -2732,6 +2748,21 @@ function createSketchAgentTool(bridge, attachments, getSessionMessages = () => [
|
|
|
2732
2748
|
});
|
|
2733
2749
|
}
|
|
2734
2750
|
//#endregion
|
|
2751
|
+
//#region src/retry-policy.js
|
|
2752
|
+
/** @param {string} choice a RETRY_POLICIES value @param {Function | undefined} resolve DSH's resolveRetryPolicy */
|
|
2753
|
+
function retryPolicyFor(choice, resolve) {
|
|
2754
|
+
if (choice === "default" || typeof resolve !== "function") return void 0;
|
|
2755
|
+
try {
|
|
2756
|
+
if (choice === "unlimited") return resolve({ mode: "always" }, "codex-subscription retryPolicy");
|
|
2757
|
+
return resolve({
|
|
2758
|
+
mode: "normal",
|
|
2759
|
+
maxRetries: choice === "off" ? 0 : Number(choice)
|
|
2760
|
+
}, "codex-subscription retryPolicy");
|
|
2761
|
+
} catch {
|
|
2762
|
+
return;
|
|
2763
|
+
}
|
|
2764
|
+
}
|
|
2765
|
+
//#endregion
|
|
2735
2766
|
//#region src/account-vault.js
|
|
2736
2767
|
const VERSION = 1;
|
|
2737
2768
|
const DEFAULT_LABEL = "Account 1";
|
|
@@ -6508,6 +6539,7 @@ function apply(ctx, config = {}) {
|
|
|
6508
6539
|
[OUTPUT_VERBOSITY_FIELD]: normalizeOutputVerbosity(settings.get()[OUTPUT_VERBOSITY_FIELD]),
|
|
6509
6540
|
[INPUT_IMAGE_DETAIL_FIELD]: normalizeInputImageDetail(settings.get()[INPUT_IMAGE_DETAIL_FIELD]),
|
|
6510
6541
|
[REASONING_SUMMARY_FIELD]: normalizeReasoningSummary(settings.get()[REASONING_SUMMARY_FIELD]),
|
|
6542
|
+
[RETRY_POLICY_FIELD]: normalizeRetryPolicy(settings.get()[RETRY_POLICY_FIELD]),
|
|
6511
6543
|
[STREAM_IDLE_TIMEOUT_MINUTES_FIELD]: normalizeStreamIdleTimeoutMinutes(settings.get()[STREAM_IDLE_TIMEOUT_MINUTES_FIELD]),
|
|
6512
6544
|
[CONTEXT_MODE_FIELD]: normalizeContextMode(settings.get()[CONTEXT_MODE_FIELD]),
|
|
6513
6545
|
[CUSTOM_CONTEXT_WINDOW_FIELD]: normalizeCustomContextWindow(settings.get()[CUSTOM_CONTEXT_WINDOW_FIELD]),
|
|
@@ -6548,14 +6580,20 @@ function apply(ctx, config = {}) {
|
|
|
6548
6580
|
cacheRetention: "short",
|
|
6549
6581
|
transport: "sse"
|
|
6550
6582
|
});
|
|
6583
|
+
const retryProfile = (choice) => {
|
|
6584
|
+
const retryPolicy = retryPolicyFor(choice, dshLlm.resolveRetryPolicy);
|
|
6585
|
+
return retryPolicy === void 0 ? {} : { retryPolicy };
|
|
6586
|
+
};
|
|
6551
6587
|
let profileKey;
|
|
6552
6588
|
let profileSnapshot;
|
|
6553
6589
|
const profiles = () => {
|
|
6554
6590
|
const preferences = settings.get();
|
|
6555
6591
|
const streamIdleTimeoutMinutes = normalizeStreamIdleTimeoutMinutes(preferences[STREAM_IDLE_TIMEOUT_MINUTES_FIELD]);
|
|
6592
|
+
const retryChoice = normalizeRetryPolicy(preferences[RETRY_POLICY_FIELD]);
|
|
6556
6593
|
const key = JSON.stringify([
|
|
6557
6594
|
modelCatalog.revision(),
|
|
6558
6595
|
streamIdleTimeoutMinutes,
|
|
6596
|
+
retryChoice,
|
|
6559
6597
|
normalizeContextMode(preferences[CONTEXT_MODE_FIELD]),
|
|
6560
6598
|
preferences[CUSTOM_CONTEXT_OVERRIDES_FIELD],
|
|
6561
6599
|
...Object.values(CUSTOM_CONTEXT_MODEL_FIELDS).map((field) => preferences[field])
|
|
@@ -6564,7 +6602,8 @@ function apply(ctx, config = {}) {
|
|
|
6564
6602
|
profileKey = key;
|
|
6565
6603
|
profileSnapshot = /* @__PURE__ */ new Map([[PROVIDER, Object.freeze({
|
|
6566
6604
|
...profile,
|
|
6567
|
-
streamIdleTimeoutMs: streamIdleTimeoutMinutes * 60 * 1e3
|
|
6605
|
+
streamIdleTimeoutMs: streamIdleTimeoutMinutes * 60 * 1e3,
|
|
6606
|
+
...retryProfile(retryChoice)
|
|
6568
6607
|
})]]);
|
|
6569
6608
|
}
|
|
6570
6609
|
return profileSnapshot;
|
|
@@ -6644,9 +6683,9 @@ function apply(ctx, config = {}) {
|
|
|
6644
6683
|
try {
|
|
6645
6684
|
resolved = await resolveAuth();
|
|
6646
6685
|
} catch {
|
|
6647
|
-
throw new LlmError("ChatGPT subscription authorization failed", "AUTH_FAILED");
|
|
6686
|
+
throw new dshLlm.LlmError("ChatGPT subscription authorization failed", "AUTH_FAILED");
|
|
6648
6687
|
}
|
|
6649
|
-
if (typeof resolved?.auth.apiKey !== "string" || resolved.auth.apiKey.length === 0) throw new LlmError("ChatGPT subscription is not signed in", "MISSING_CREDENTIAL");
|
|
6688
|
+
if (typeof resolved?.auth.apiKey !== "string" || resolved.auth.apiKey.length === 0) throw new dshLlm.LlmError("ChatGPT subscription is not signed in", "MISSING_CREDENTIAL");
|
|
6650
6689
|
return resolved.auth.apiKey;
|
|
6651
6690
|
},
|
|
6652
6691
|
auth: adapterAuth,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-codex-subscription",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.2",
|
|
4
4
|
"description": "Use ChatGPT and Codex subscriptions in DeepSeek Harness with OAuth, quota, safe resets, web search, images, and Fast mode",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -133,6 +133,12 @@
|
|
|
133
133
|
"ws": "8.21.3"
|
|
134
134
|
},
|
|
135
135
|
"peerDependenciesMeta": {
|
|
136
|
+
"react": {
|
|
137
|
+
"optional": true
|
|
138
|
+
},
|
|
139
|
+
"react-dom": {
|
|
140
|
+
"optional": true
|
|
141
|
+
},
|
|
136
142
|
"@deepseek-ai/dsh-subagent-codex": {
|
|
137
143
|
"optional": true
|
|
138
144
|
}
|