dsh-claude-subscription 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -6,7 +6,7 @@ Use this guide when a user asks an Agent to install, update, verify, or remove
6
6
  ## Safety
7
7
 
8
8
  - Confirm the target DSH profile; use `web` only when it is the user's target.
9
- - Use the pinned `v0.3.0` release assets for a first install, never a moving branch.
9
+ - Use the pinned `v0.4.0` release assets for a first install, never a moving branch.
10
10
  - Never print OAuth credentials, account IDs, authorization callbacks, or the
11
11
  credential store.
12
12
  - Do not start, stop, or restart DSH without explicit permission.
@@ -16,7 +16,7 @@ Use this guide when a user asks an Agent to install, update, verify, or remove
16
16
 
17
17
  ## Detect the installation
18
18
 
19
- This plugin release supports only DeepSeek Harness `0.1.2-alpha.5`. Run
19
+ This plugin release supports only DeepSeek Harness `0.1.6-alpha.2`. Run
20
20
  `dsh --version` first and stop on any other version; do not upgrade DSH or
21
21
  ignore peer dependency warnings without explicit permission.
22
22
 
@@ -29,7 +29,7 @@ When `dsh`, Node.js, and pnpm are already available, install the pinned npm
29
29
  package directly:
30
30
 
31
31
  ```sh
32
- dsh plugin --profile web add dsh-claude-subscription@0.3.0
32
+ dsh plugin --profile web add dsh-claude-subscription@0.4.0
33
33
  ```
34
34
 
35
35
  Update with `dsh plugin --profile web update dsh-claude-subscription`.
@@ -46,7 +46,7 @@ profile (`desktop`, `web`):
46
46
 
47
47
  1. `pnpm pack` the plugin into a tarball (or download the pinned release tarball).
48
48
  2. Copy the tarball into the profile directory.
49
- 3. Add `"dsh-claude-subscription": "file:./dsh-claude-subscription-0.3.0.tgz"` to
49
+ 3. Add `"dsh-claude-subscription": "file:./dsh-claude-subscription-0.4.0.tgz"` to
50
50
  the profile's `package.json` `dependencies` and add `dsh-claude-subscription`
51
51
  to its `dsh.profile.bundles` array.
52
52
  4. Run `pnpm install` in the profile directory.
@@ -87,4 +87,18 @@ Claude model and confirm the reply.
87
87
  On any failure, report the sanitized command error, DSH version, selected
88
88
  profile, requested release, installation mode, what changed, cleanup status,
89
89
  and what remains unverified. Do not patch DSH, switch to another paid route,
90
- wipe credentials, delete a profile, or claim success from a partial check.
90
+ wipe credentials, delete a profile, or claim success from a partial check.
91
+
92
+ ## Agent skills
93
+
94
+ ### Issue tracker
95
+
96
+ Issues live in GitHub Issues. See `docs/agents/issue-tracker.md`.
97
+
98
+ ### Triage labels
99
+
100
+ Default five-role vocabulary. See `docs/agents/triage-labels.md`.
101
+
102
+ ### Domain docs
103
+
104
+ Single-context layout. See `docs/agents/domain.md`.
package/README.en.md CHANGED
@@ -1,101 +1,118 @@
1
- # DSH Claude Subscription
2
-
3
- [![npm version](https://img.shields.io/npm/v/dsh-claude-subscription?logo=npm&label=npm)](https://www.npmjs.com/package/dsh-claude-subscription)
4
- [![License: MIT](https://img.shields.io/badge/license-MIT-111111.svg)](LICENSE)
5
-
6
- [繁體中文](README.md)
7
-
8
- Sign in to a Claude Pro / Max subscription directly in DeepSeek Harness, with
9
- no Anthropic API key required. Sign-in and token refresh use the official
10
- Anthropic OAuth flow (the same one Claude Code uses). Credentials stay in
11
- DSH's host credential service: no token extraction, no resale, no extra billing.
12
-
13
- [Agent install](#let-an-agent-install-it-recommended) · [Manual install](#manual-install) · [Update and uninstall](#update-and-uninstall)
14
-
15
- ## What it does
16
-
17
- - Uses your Claude Pro / Max subscription directly inside DSH, with no Anthropic API key required;
18
- - Signs in to claude.ai from the Anthropic card under **Settings -> Models** or from **Settings -> Claude subscription**, using the official OAuth flow and keeping credentials on the host;
19
- - Refreshes the access token automatically with the refresh token;
20
- - Shows sign-in status and token expiry;
21
- - Shows the **subscription quota**: remaining percentage and reset time for the 5-hour, 7-day, Opus, and Sonnet windows;
22
- - Adds a **composer quota** toggle (off by default) that shows the current model's remaining quota next to the message input;
23
- - Fails visibly when subscription routing is unavailable instead of silently using another paid route.
24
-
25
- ## Prepare DSH
26
-
27
- This plugin currently supports only DeepSeek Harness `0.1.2-alpha.5` and
28
- requires a Claude Pro, Max, Team, or Enterprise subscription. DSH remains a
29
- developer preview; an npm `latest` or `next` release other than
30
- `0.1.2-alpha.5` is outside this plugin version's supported range.
31
-
32
- Run `dsh --version` before installation. Do not merely ignore peer dependency
33
- warnings.
34
-
35
- ## Install
36
-
37
- ### Let an Agent install it (recommended)
38
-
39
- Send the following URL directly to your Agent. The guide contains install,
40
- update, uninstall, and verification steps. It preserves the DSH profile and
41
- sign-in and never restarts DSH without permission:
42
-
43
- [Open the Agent installation guide](https://raw.githubusercontent.com/x5427876/dsh-claude-subscription/main/AGENTS.md)
44
-
45
- ```text
46
- https://raw.githubusercontent.com/x5427876/dsh-claude-subscription/main/AGENTS.md
47
- ```
48
-
49
- ### Manual install
50
-
51
- When the `dsh` command is available:
52
-
53
- ```sh
54
- dsh plugin --profile web add dsh-claude-subscription
55
- dsh plugin --profile web list dsh-claude-subscription --depth 0
56
- dsh --profile web --dump-config
57
- ```
58
-
59
- For DSH Desktop, put the `pnpm pack` tarball into
60
- `~/.dsh/profiles/<profile>/`, add the `file:` dependency and the
61
- `dsh.profile.bundles` entry in that profile's `package.json`, run
62
- `pnpm install` there, then restart DSH. After install:
63
-
64
- 1. Open **Settings -> Models** and find Anthropic. Full quota details remain
65
- under **Settings -> Claude subscription**.
66
- 2. If not signed in, click **Browser sign-in** and authorize on claude.ai.
67
- 3. Pick a Claude model under the `anthropic` provider in the model picker.
68
- 4. Turn on **Composer quota** on the same page when you want it.
69
-
70
- ## Quota display
71
-
72
- The **Subscription quota** card in **Settings -> Claude subscription** shows the
73
- quota windows reported by Anthropic. The host reads them; the browser receives
74
- only a percentage projection, and the access token never leaves the machine.
75
- Results are cached for 60 seconds, and **Refresh** reads them again immediately.
76
-
77
- With **Composer quota** on, a Claude model shows the tightest applicable window
78
- next to the message input (Opus and Sonnet models also count their 7-day
79
- window). Nothing is rendered when you are signed out or when the account
80
- reports no quota windows.
81
-
82
- ## Update and uninstall
83
-
84
- ```sh
85
- dsh plugin --profile web update dsh-claude-subscription
86
- dsh plugin --profile web remove dsh-claude-subscription
87
- ```
88
-
89
- ## Usage note
90
-
91
- - Subscriptions are for the subscriber's own use; usage from this plugin
92
- counts against your subscription quota.
93
- - Anthropic terms allow third-party access "at Anthropic's discretion" and
94
- reserve the right to charge such usage against usage credits instead of
95
- subscription limits. Follow [Anthropic's terms](https://support.claude.com/en/articles/13189465-log-in-to-your-claude-account).
96
- - This plugin never extracts Claude Code's local OAuth token; sign-in always
97
- goes through browser authorization.
98
-
99
- ## License
100
-
1
+ # DSH Claude Subscription
2
+
3
+ [![npm version](https://img.shields.io/npm/v/dsh-claude-subscription?logo=npm&label=npm)](https://www.npmjs.com/package/dsh-claude-subscription)
4
+ [![License: MIT](https://img.shields.io/badge/license-MIT-111111.svg)](LICENSE)
5
+
6
+ [繁體中文](README.md)
7
+
8
+ Sign in to a Claude Pro / Max subscription directly in DeepSeek Harness, with
9
+ no Anthropic API key required. Sign-in and token refresh use the official
10
+ Anthropic OAuth flow (the same one Claude Code uses). Credentials stay in
11
+ DSH's host credential service: no token extraction, no resale, no extra billing.
12
+
13
+ [Agent install](#let-an-agent-install-it-recommended) · [Manual install](#manual-install) · [Update and uninstall](#update-and-uninstall)
14
+
15
+ ## What it does
16
+
17
+ - Uses your Claude Pro / Max subscription directly inside DSH, with no Anthropic API key required;
18
+ - Signs in to claude.ai from the Anthropic card under **Settings -> Models** or from **Settings -> Claude subscription**, using the official OAuth flow and keeping credentials on the host;
19
+ - Refreshes the access token automatically with the refresh token;
20
+ - Shows sign-in status and token expiry;
21
+ - Shows the **subscription quota**: remaining percentage and reset time for the 5-hour, 7-day, Opus, and Sonnet windows;
22
+ - Adds a **composer quota** toggle (off by default) that shows the current model's remaining quota next to the message input;
23
+ - Fails visibly when subscription routing is unavailable instead of silently using another paid route.
24
+
25
+ ## Prepare DSH
26
+
27
+ This plugin release `0.4.0` supports only DeepSeek Harness `0.1.6-alpha.2`
28
+ and requires a Claude Pro, Max, Team, or Enterprise subscription. DSH remains
29
+ a developer preview; other npm channels and versions are outside this plugin
30
+ release's supported range.
31
+
32
+ Run `dsh --version` before installation. Do not merely ignore peer dependency
33
+ warnings.
34
+
35
+ ## Install
36
+
37
+ ### Let an Agent install it (recommended)
38
+
39
+ Send the following URL directly to your Agent. The guide contains install,
40
+ update, uninstall, and verification steps. It preserves the DSH profile and
41
+ sign-in and never restarts DSH without permission:
42
+
43
+ [Open the Agent installation guide](https://raw.githubusercontent.com/x5427876/dsh-claude-subscription/main/AGENTS.md)
44
+
45
+ ```text
46
+ https://raw.githubusercontent.com/x5427876/dsh-claude-subscription/main/AGENTS.md
47
+ ```
48
+
49
+ ### Manual install
50
+
51
+ When the `dsh` command is available:
52
+
53
+ ```sh
54
+ dsh plugin --profile web add dsh-claude-subscription
55
+ dsh plugin --profile web list dsh-claude-subscription --depth 0
56
+ dsh --profile web --dump-config
57
+ ```
58
+
59
+ For DSH Desktop, put the `pnpm pack` tarball into
60
+ `~/.dsh/profiles/<profile>/`, add the `file:` dependency and the
61
+ `dsh.profile.bundles` entry in that profile's `package.json`, run
62
+ `pnpm install` there, then restart DSH. After install:
63
+
64
+ 1. Open **Settings -> Models** and find Anthropic. Full quota details remain
65
+ under **Settings -> Claude subscription**.
66
+ 2. If not signed in, click **Browser sign-in** and authorize on claude.ai.
67
+ 3. Pick a Claude model under the `anthropic` provider in the model picker.
68
+ 4. Turn on **Composer quota** on the same page when you want it.
69
+
70
+ ## Quota display
71
+
72
+ The model picker shows only models returned by the Anthropic Models API. The
73
+ **Subscription quota** card in **Settings -> Claude subscription** shows only
74
+ windows and labels returned by the Anthropic usage API. The host reads them,
75
+ and the access token never leaves the machine. Results are cached for 60
76
+ seconds, and **Refresh** reads them again immediately.
77
+
78
+ With **Composer quota** on, the input shows the tightest API window explicitly
79
+ marked as global or applicable to the current model. A window without API scope
80
+ metadata is not used for composer quota.
81
+
82
+ ## Update and uninstall
83
+
84
+ ```sh
85
+ dsh plugin --profile web update dsh-claude-subscription
86
+ dsh plugin --profile web remove dsh-claude-subscription
87
+ ```
88
+
89
+ ## Usage note
90
+
91
+ - Subscriptions are for the subscriber's own use; usage from this plugin
92
+ counts against your subscription quota.
93
+ - Anthropic terms allow third-party access "at Anthropic's discretion" and
94
+ reserve the right to charge such usage against usage credits instead of
95
+ subscription limits. Follow [Anthropic's terms](https://support.claude.com/en/articles/13189465-log-in-to-your-claude-account).
96
+ - This plugin never extracts Claude Code's local OAuth token; sign-in always
97
+ goes through browser authorization.
98
+
99
+ ## Development
100
+
101
+ Edit `src/*.ts`, never `lib/` directly (`lib/` is the built publish artifact):
102
+
103
+ ```sh
104
+ pnpm run typecheck # strict tsc check (including client)
105
+ pnpm run build # tsc (host: lib/*.js + lib/types/**) + client assembly (lib/client.js)
106
+ pnpm run test # builds automatically first, runs TS sources via tsx
107
+ pnpm run check # typecheck → build → tests → pack
108
+ ```
109
+
110
+ The host is emitted directly by tsc as ESM (`lib/*.js`) with declarations
111
+ (`lib/types/**/*.d.ts`); the client `ModuleLoader.load` shell is still
112
+ assembled by `scripts/build.mjs` from tsc output (tsc does not understand
113
+ that shell). Build rules (allowlist-based; unrecognized import/export lines
114
+ fail loudly) are documented in the header comment of `scripts/build.mjs`.
115
+
116
+ ## License
117
+
101
118
  MIT License
package/README.md CHANGED
@@ -1,94 +1,110 @@
1
- # DSH Claude Subscription
2
-
3
- [![npm version](https://img.shields.io/npm/v/dsh-claude-subscription?logo=npm&label=npm)](https://www.npmjs.com/package/dsh-claude-subscription)
4
- [![License: MIT](https://img.shields.io/badge/license-MIT-111111.svg)](LICENSE)
5
-
6
- [English](README.en.md)
7
-
8
- 在 DeepSeek Harness 中直接登入 Claude Pro / Max 訂閱並使用 Claude 模型,
9
- 不需要 Anthropic API Key。登入與 token 續期走 Anthropic 官方 OAuth 流程
10
- (與 Claude Code 相同),憑證保留在 DSH 本機 credential service,
11
- 不抽取、不轉售、不額外計費。
12
-
13
- [交給 Agent 安裝](#交給-agent推薦) · [手動安裝](#手動安裝) · [更新與解除安裝](#更新與解除安裝)
14
-
15
- ## 能做什麼
16
-
17
- - 在 DSH 中直接使用 Claude Pro / Max 訂閱,不需要 Anthropic API Key;
18
- - 在**設定 → 模型**的 Anthropic 卡片或**設定 → Claude 訂閱**中,以官方 OAuth 流程登入 claude.ai,憑證保留在 DSH 本機;
19
- - access token 過期時自動以 refresh token 續期,不需手動處理;
20
- - 顯示登入狀態;
21
- - 顯示**訂閱額度**:5 小時、7 天、Opus 與 Sonnet 的剩餘百分比與重置時間;
22
- - **輸入框額度**開關(預設關閉):開啟後在對話輸入框右側顯示目前模型的剩餘額度;
23
- - 訂閱路由不可用時明確報錯,不會靜默切換到其他付費路由。
24
-
25
- ## 準備 DSH
26
-
27
- 本插件目前僅適配 DeepSeek Harness `0.1.2-alpha.5`,需要一個 Claude Pro、
28
- Max、Team 或 Enterprise 訂閱帳號。DSH 仍在 developer preview;npm 的
29
- `latest` / `next` 通道若不是 `0.1.2-alpha.5`,不在本版本的支援範圍。
30
-
31
- 安裝前請先以 `dsh --version` 確認版本;不要只忽略 peer dependency 警告。
32
-
33
- ## 安裝
34
-
35
- ### 交給 Agent(推薦)
36
-
37
- 把下面的連結直接發給 Agent。文件包含安裝、更新、解除安裝與驗收步驟;
38
- 它不會刪除 DSH profile、登入資訊,也不會未經許可重啟 DSH。
39
-
40
- [開啟 Agent 安裝文件](https://raw.githubusercontent.com/x5427876/dsh-claude-subscription/main/AGENTS.md)
41
-
42
- ```text
43
- https://raw.githubusercontent.com/x5427876/dsh-claude-subscription/main/AGENTS.md
44
- ```
45
-
46
- ### 手動安裝
47
-
48
- 已有 `dsh` 指令時:
49
-
50
- ```sh
51
- dsh plugin --profile web add dsh-claude-subscription
52
- dsh plugin --profile web list dsh-claude-subscription --depth 0
53
- dsh --profile web --dump-config
54
- ```
55
-
56
- DSH Desktop(桌面版)時,把 `pnpm pack` 產出的 tarball 放進
57
- `~/.dsh/profiles/<profile>/`,在該 profile 的 `package.json` 加入
58
- `file:` 依賴與 `dsh.profile.bundles` 條目,然後在該目錄執行
59
- `pnpm install`,最後重啟 DSH。安裝後:
60
-
61
- 1. 開啟 DSH 的**設定 → 模型**,找到 Anthropic;完整額度資訊仍位於
62
- **設定 → Claude 訂閱**。
63
- 2. 若尚未登入,按**瀏覽器登入**,在 claude.ai 完成授權。
64
- 3. 在模型選單選擇 `anthropic` provider 下的 Claude 模型。
65
- 4. 需要時,在同一頁打開**輸入框額度**開關。
66
-
67
- ## 額度顯示
68
-
69
- **設定 → Claude 訂閱**的**訂閱額度**卡片顯示 Anthropic 回報的額度視窗。
70
- 資料由 host 端讀取,瀏覽器只收到百分比投影,access token 不會離開本機。
71
- 額度結果快取 60 秒,按**重新整理**可立即重新讀取。
72
-
73
- 打開**輸入框額度**後,選用 Claude 模型時,輸入框右側顯示最緊的那個額度視窗
74
- (Opus 或 Sonnet 模型會納入對應的 7 天視窗)。未登入、或帳號走 API Key 計費
75
- 而沒有額度視窗時,該處不顯示任何內容。
76
-
77
- ## 更新與解除安裝
78
-
79
- ```sh
80
- dsh plugin --profile web update dsh-claude-subscription
81
- dsh plugin --profile web remove dsh-claude-subscription
82
- ```
83
-
84
- ## 使用注意
85
-
86
- - 訂閱方案僅供訂閱者本人使用;本插件產生的用量會計入你的訂閱額度。
87
- - Anthropic 條款允許「Anthropic 自行決定」是否讓訂閱者透過第三方工具
88
- 存取服務,並保留改從使用額度扣款的權利。請遵守
89
- [Anthropic 的使用條款](https://support.claude.com/zh-TW/articles/13189465-登入您的-claude-帳戶)。
90
- - 本插件不抽取 Claude Code 本機的 OAuth token;登入一律透過瀏覽器授權。
91
-
92
- ## 授權
93
-
1
+ # DSH Claude Subscription
2
+
3
+ [![npm version](https://img.shields.io/npm/v/dsh-claude-subscription?logo=npm&label=npm)](https://www.npmjs.com/package/dsh-claude-subscription)
4
+ [![License: MIT](https://img.shields.io/badge/license-MIT-111111.svg)](LICENSE)
5
+
6
+ [English](README.en.md)
7
+
8
+ 在 DeepSeek Harness 中直接登入 Claude Pro / Max 訂閱並使用 Claude 模型,
9
+ 不需要 Anthropic API Key。登入與 token 續期走 Anthropic 官方 OAuth 流程
10
+ (與 Claude Code 相同),憑證保留在 DSH 本機 credential service,
11
+ 不抽取、不轉售、不額外計費。
12
+
13
+ [交給 Agent 安裝](#交給-agent推薦) · [手動安裝](#手動安裝) · [更新與解除安裝](#更新與解除安裝)
14
+
15
+ ## 能做什麼
16
+
17
+ - 在 DSH 中直接使用 Claude Pro / Max 訂閱,不需要 Anthropic API Key;
18
+ - 在**設定 → 模型**的 Anthropic 卡片或**設定 → Claude 訂閱**中,以官方 OAuth 流程登入 claude.ai,憑證保留在 DSH 本機;
19
+ - access token 過期時自動以 refresh token 續期,不需手動處理;
20
+ - 顯示登入狀態;
21
+ - 顯示**訂閱額度**:5 小時、7 天、Opus 與 Sonnet 的剩餘百分比與重置時間;
22
+ - **輸入框額度**開關(預設關閉):開啟後在對話輸入框右側顯示目前模型的剩餘額度;
23
+ - 訂閱路由不可用時明確報錯,不會靜默切換到其他付費路由。
24
+
25
+ ## 準備 DSH
26
+
27
+ 本插件 `0.4.0` 目前僅適配 DeepSeek Harness `0.1.6-alpha.2`,需要一個
28
+ Claude Pro、Max、Team 或 Enterprise 訂閱帳號。DSH 仍在 developer
29
+ preview;其他 npm 通道或版本不在本版本的支援範圍。
30
+
31
+ 安裝前請先以 `dsh --version` 確認版本;不要只忽略 peer dependency 警告。
32
+
33
+ ## 安裝
34
+
35
+ ### 交給 Agent(推薦)
36
+
37
+ 把下面的連結直接發給 Agent。文件包含安裝、更新、解除安裝與驗收步驟;
38
+ 它不會刪除 DSH profile、登入資訊,也不會未經許可重啟 DSH。
39
+
40
+ [開啟 Agent 安裝文件](https://raw.githubusercontent.com/x5427876/dsh-claude-subscription/main/AGENTS.md)
41
+
42
+ ```text
43
+ https://raw.githubusercontent.com/x5427876/dsh-claude-subscription/main/AGENTS.md
44
+ ```
45
+
46
+ ### 手動安裝
47
+
48
+ 已有 `dsh` 指令時:
49
+
50
+ ```sh
51
+ dsh plugin --profile web add dsh-claude-subscription
52
+ dsh plugin --profile web list dsh-claude-subscription --depth 0
53
+ dsh --profile web --dump-config
54
+ ```
55
+
56
+ DSH Desktop(桌面版)時,把 `pnpm pack` 產出的 tarball 放進
57
+ `~/.dsh/profiles/<profile>/`,在該 profile 的 `package.json` 加入
58
+ `file:` 依賴與 `dsh.profile.bundles` 條目,然後在該目錄執行
59
+ `pnpm install`,最後重啟 DSH。安裝後:
60
+
61
+ 1. 開啟 DSH 的**設定 → 模型**,找到 Anthropic;完整額度資訊仍位於
62
+ **設定 → Claude 訂閱**。
63
+ 2. 若尚未登入,按**瀏覽器登入**,在 claude.ai 完成授權。
64
+ 3. 在模型選單選擇 `anthropic` provider 下的 Claude 模型。
65
+ 4. 需要時,在同一頁打開**輸入框額度**開關。
66
+
67
+ ## 額度顯示
68
+
69
+ 模型選單只顯示 Anthropic Models API 回傳的模型。**設定 → Claude 訂閱**的
70
+ **訂閱額度**卡片只顯示 Anthropic usage API 回傳的額度視窗與名稱。
71
+ 資料由 host 端讀取,access token 不會離開本機。結果快取 60 秒,
72
+ 按**重新整理**可立即重新讀取。
73
+
74
+ 打開**輸入框額度**後,輸入框右側顯示 API 明確標示為全域或適用於目前模型的
75
+ 最緊額度視窗。API 未提供適用範圍時,該視窗不會用於輸入框額度。
76
+
77
+ ## 更新與解除安裝
78
+
79
+ ```sh
80
+ dsh plugin --profile web update dsh-claude-subscription
81
+ dsh plugin --profile web remove dsh-claude-subscription
82
+ ```
83
+
84
+ ## 使用注意
85
+
86
+ - 訂閱方案僅供訂閱者本人使用;本插件產生的用量會計入你的訂閱額度。
87
+ - Anthropic 條款允許「Anthropic 自行決定」是否讓訂閱者透過第三方工具
88
+ 存取服務,並保留改從使用額度扣款的權利。請遵守
89
+ [Anthropic 的使用條款](https://support.claude.com/zh-TW/articles/13189465-登入您的-claude-帳戶)。
90
+ - 本插件不抽取 Claude Code 本機的 OAuth token;登入一律透過瀏覽器授權。
91
+
92
+ ## 開發
93
+
94
+ 改 `src/*.ts`,不要直接改 `lib/`(`lib/` 是發佈產物,由構建產生):
95
+
96
+ ```sh
97
+ pnpm run typecheck # tsc 嚴格型別檢查(含 client)
98
+ pnpm run build # tsc(host:lib/*.js + lib/types/**)+ 組裝 client(lib/client.js)
99
+ pnpm run test # 會先自動 build,以 tsx 跑 TS 來源測試
100
+ pnpm run check # typecheck → build → tests → pack
101
+ ```
102
+
103
+ Host 由 tsc 直接輸出 ESM(`lib/*.js`)與宣告(`lib/types/**/*.d.ts`);
104
+ client 的 `ModuleLoader.load` 外殼仍由 `scripts/build.mjs` 從 tsc 輸出組裝
105
+ (tsc 不懂該外殼)。構建規則(allowlist 制,無法識別的 import/export
106
+ 會直接報錯)見 `scripts/build.mjs` 檔頭註解。
107
+
108
+ ## 授權
109
+
94
110
  MIT License
@@ -1,12 +1,12 @@
1
- # docs
2
-
3
- Press material for the DSH Claude subscription plugin.
4
-
5
- ## assets
6
-
7
- Drop settings-page screenshots here and reference them from the READMEs with
8
- the release-asset URL pattern used by the CI release workflow:
9
-
10
- ```text
11
- https://github.com/x5427876/dsh-claude-subscription/releases/latest/download/settings.png
1
+ # docs
2
+
3
+ Press material for the DSH Claude subscription plugin.
4
+
5
+ ## assets
6
+
7
+ Drop settings-page screenshots here and reference them from the READMEs with
8
+ the release-asset URL pattern used by the CI release workflow:
9
+
10
+ ```text
11
+ https://github.com/x5427876/dsh-claude-subscription/releases/latest/download/settings.png
12
12
  ```