dsh-agy-ui 0.1.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Erick0412-dev
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.en.md ADDED
@@ -0,0 +1,189 @@
1
+ # dsh-agy-ui
2
+
3
+ <p align="center">
4
+ <strong>Non-invasive UI & UX Companion Enhancement Plugin for <code>dsh-agy</code> in DeepSeek Harness (DSH)</strong><br/>
5
+ Model List Purification · Header Quota Badge · Glassmorphic Dual-Bucket Popover · Mobile Drawer Adaptation
6
+ </p>
7
+
8
+ <p align="center">
9
+ <a href="https://www.npmjs.com/package/dsh-agy-ui"><img src="https://img.shields.io/npm/v/dsh-agy-ui?color=blue&label=npm" alt="npm version"/></a>
10
+ <a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg" alt="MIT License"/></a>
11
+ <a href="https://github.com/deepseek-ai/deepseek-harness"><img src="https://img.shields.io/badge/DeepSeek%20Harness-Plugin-orange" alt="DSH Plugin"/></a>
12
+ <a href="https://github.com/Erick0412-dev/dsh-agy-ui/pulls"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs Welcome"/></a>
13
+ </p>
14
+
15
+ <p align="center">
16
+ <b>🌐 Language / 语言:</b>
17
+ <a href="./README.md">简体中文</a> ·
18
+ <b>English</b>
19
+ </p>
20
+
21
+ ---
22
+
23
+ ## 💡 Why dsh-agy-ui?
24
+
25
+ In the [DeepSeek Harness (DSH)](https://github.com/deepseek-ai/deepseek-harness) ecosystem, [dsh-agy](https://github.com/chaos-03x/dsh-agy) serves as the lightning-fast, rock-solid provider directly talking to Google's internal API (`POST /v1internal:streamGenerateContent`) with native DSH Tool execution.
26
+
27
+ However, out-of-the-box it has several noticeable usability pain points:
28
+
29
+ | Dimension | Native `dsh-agy` Experience | Enhanced with `dsh-agy-ui` |
30
+ | :--- | :--- | :--- |
31
+ | **Model Selection** | Cluttered with internal ghost models (`chat_23310`, `tab_flash_lite_preview`) | 🧹 **Auto Regex Purification**, completely filters out non-chat models |
32
+ | **Reasoning Efforts** | Low / Medium / High efforts expanded into separate dropdown rows | 🎛️ **Smart Variant Folding**, seamlessly triggers DSH native reasoning picker |
33
+ | **Tiered Model Names** | Raw IDs displayed crudely (e.g. `gemini-3.8-flash-tiered`) | ✨ **Standardized Brand Typography**, shown cleanly as `Gemini 3.8 Flash` |
34
+ | **Model Priority** | Disordered sequence, hard to spot primary models quickly | 🏆 **Strict Priority Ranking**: 3.8 Flash > 3.7 > 3.6 > Pro > Claude > GPT-OSS |
35
+ | **Quota Visibility** | Quotas hidden away on separate `/agy` dashboard | ⚡ **Persistent Header Badge**, directly showing Gemini 5-hour quota |
36
+ | **Quota Inspection** | Must navigate away from current chat to check details | 🪟 **Hover/Click Glassmorphic Popover**, inspecting 5-hour sprint & 7-day cap |
37
+ | **Mobile UX** | Desktop popovers overflow or get cut off on narrow screens | 📱 **Responsive Drawer**, automatically slides up an iOS/Android bottom sheet |
38
+
39
+ `dsh-agy-ui` is strictly architected as a **pure companion enhancement plugin**: network transport, request streaming, and tool execution remain 100% managed by `dsh-agy`.
40
+
41
+ ---
42
+
43
+ ## 🏛️ Architecture & Interception Flow
44
+
45
+ `dsh-agy-ui` builds on Cordis microkernel plugin architecture. It dynamically wraps the LLM adapter in-memory and injects UI components into DSH Web slots:
46
+
47
+ ```text
48
+ ┌────────────────────────────────────────────────────────┐
49
+ │ DeepSeek Harness (DSH Web) │
50
+ └───────────┬────────────────────────────────┬───────────┘
51
+ │ │
52
+ (Web Slots Injection) (Cordis Plugin Hook)
53
+ │ │
54
+ ▼ ▼
55
+ ┌────────────────────────┐ ┌─────────────────────────┐
56
+ │ dsh-agy-ui │◄─────┤ Adapter Dynamic Wrapper │
57
+ │ (Header Badge + Popover)│ │(Purify/Fold/Brand/Sort) │
58
+ └───────────┬────────────┘ └────────────┬────────────┘
59
+ │ HTTP Status Read │ Native Delegation
60
+ ▼ ▼
61
+ ┌────────────────────────┐ ┌─────────────────────────┐
62
+ │ dsh-agy Backend │ │ dsh-agy Core Layer │
63
+ │ (/agy/api/accounts) │ │(Direct Google API Stream│
64
+ └────────────────────────┘ └─────────────────────────┘
65
+
66
+ │ Read Compatibility (Optional)
67
+ ┌───────────┴────────────┐
68
+ │ dsh-agy-link │
69
+ │ (/plugins/agy-link/..) │
70
+ └────────────────────────┘
71
+ ```
72
+
73
+ ---
74
+
75
+ ## ✨ Features Breakdown
76
+
77
+ ### 1. 🧼 Model Purification & Standardized Presentation
78
+
79
+ <p align="center">
80
+ <img src="./docs/images/clean-models.png" width="300" alt="Purified Models List Preview" />
81
+ <br />
82
+ <em>▲ Purified Antigravity (agy) native model selector dropdown preview</em>
83
+ </p>
84
+
85
+ - **Ghost Model Exclusion**: Automatically excludes internal non-chat endpoints matching `^chat_\d+$` and `^tab_`.
86
+ - **Reasoning Variant Folding**: Collapses fragmented `-low`, `-medium`, `-high` models into their root model, injecting standard `thinkingEfforts` metadata so DSH's native reasoning dropdown activates.
87
+ - **Brand Typography**: Formats Tiered models (e.g. `gemini-3.8-flash-tiered`) into canonical titles (`Gemini 3.8 Flash`).
88
+ - **Priority Ranking**: Gemini Flash (3.8 > 3.7 > 3.6 > 3.5 > 3) → Gemini Pro (3.1 Pro) → 2.5 Series → Claude 4.6 → GPT-OSS.
89
+
90
+ ### 2. ⚡ Persistent Header Quota Badge
91
+
92
+ <p align="center">
93
+ <img src="./docs/images/badge.png" width="200" alt="Header Quota Badge Preview" />
94
+ <br />
95
+ <em>▲ Real-time quota capsule badge mounted on the session header (breathing indicator + dynamic percentage)</em>
96
+ </p>
97
+
98
+ - **Non-Invasive Slot Injection**: Mounted at `conversation.session.header.actions` with isolated ID `agy-ui-quota-badge`.
99
+ - **Direct Quota Glance**: Directly shows Gemini 5-hour quota for the active account (e.g. `AGY · 55%`).
100
+ - **Subtle Breathing Animation**: Steady indicator dot in normal operation (green = active, yellow = cooling/rate-limited, gray = unavailable); smoothly pulses for 1.2s only during background sync or manual refresh.
101
+ - **120s Global Frequency Lock**: 2-minute polling interval combined with a 120-second window-focus cooldown lock, preventing high-frequency Google 429 rate limits caused by tab switches.
102
+
103
+ ### 3. 🪟 Glassmorphic Quota Inspector Popover
104
+
105
+ <p align="center">
106
+ <img src="./docs/images/popover.png" width="380" alt="Quota Inspector Popover Preview" />
107
+ <br />
108
+ <em>▲ Multi-model dual-bucket (5-hour/7-day) quota inspection panel</em>
109
+ </p>
110
+
111
+ - **Hover & Pin Support**: Hover to display instantly, centered right below the badge. Click the badge to pin it open.
112
+ - **Dual-Bucket Quota Bars**:
113
+ - **5-Hour Sprint Cycle**: Visual progress bar for current 5-hour rolling limit.
114
+ - **7-Day Weekly Cap**: Automatically surfaces weekly quota limits when available.
115
+ - **Account Health & Shortcuts**: Displays masked account identifier, real-time health status, one-click refresh button, and direct shortcut to the `/agy` dashboard.
116
+
117
+ ### 4. 📱 Mobile Bottom Sheet Drawer
118
+ - Responsive adaptation: On screens $\le$ 640px, the popover transforms into an iOS/Android style bottom drawer with touch-friendly dismiss and backdrop.
119
+
120
+ ### 5. 🛡️ Namespace Isolation & Coexistence
121
+ - All CSS classes use the `agy-ui-*` namespace prefix, completely eliminating style bleed.
122
+ - Fully compatible with `dsh-agy-link`: safely coexists and prioritizes link's official dual-bucket quota endpoints when detected.
123
+
124
+ ---
125
+
126
+ ## 🚀 Quick Start & Installation
127
+
128
+ > 💡 **Prerequisite**: Ensure that the upstream [dsh-agy](https://github.com/chaos-03x/dsh-agy) provider is installed and authenticated.
129
+
130
+ Run one command in your terminal. DSH automatically downloads dependencies and registers the bundle in your profile:
131
+
132
+ ```bash
133
+ # Method A: One-click install from npm (Recommended)
134
+ dsh plugin --profile web add dsh-agy-ui
135
+
136
+ # Method B: Direct install from GitHub repository
137
+ dsh plugin --profile web add github:Erick0412-dev/dsh-agy-ui
138
+
139
+ # Note: If dsh is not installed globally, prefix with npx:
140
+ # npx @deepseek-ai/dsh plugin --profile web add dsh-agy-ui
141
+ ```
142
+
143
+ Start or restart DSH Web:
144
+ ```bash
145
+ dsh web
146
+ # Or: dsh restart
147
+ ```
148
+
149
+ Refresh your DSH Web interface (`http://127.0.0.1:3080`) to enjoy purified models and the header quota badge!
150
+
151
+ ---
152
+
153
+ ## ❓ Frequently Asked Questions (FAQ)
154
+
155
+ <details>
156
+ <summary><b>Q1: Why does the badge indicator show a gray dot?</b></summary>
157
+ A gray dot indicates that no active Antigravity accounts were detected. Visit <code>http://127.0.0.1:3080/agy</code> to add an account and complete Google authentication.
158
+ </details>
159
+
160
+ <details>
161
+ <summary><b>Q2: Why doesn't the quota refresh immediately when switching tabs?</b></summary>
162
+ To protect your accounts against Google 429 Rate Limit penalties, the plugin implements a <b>120-second Global Frequency Lock</b>. Window focus and tab switches within 120 seconds are debounced. You can click the manual refresh icon in the popover at any time to force an immediate update.
163
+ </details>
164
+
165
+ <details>
166
+ <summary><b>Q3: Can I run both dsh-agy-ui and dsh-agy-link together?</b></summary>
167
+ Yes! <code>dsh-agy-ui</code> features isolated slot IDs and distinct CSS namespaces. It seamlessly coexists with <code>dsh-agy-link</code> and automatically leverages link's quota endpoints when available.
168
+ </details>
169
+
170
+ ---
171
+
172
+ ## 🙏 Acknowledgments
173
+
174
+ This project stands on the shoulders of giants. Sincere thanks to:
175
+
176
+ - 🌟 **[DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)** (`deepseek-ai/deepseek-harness`)
177
+ **The Core Foundation of Everything**. DSH's elegant Cordis microkernel, extensible Web UI slots, and LLM adapter abstractions make non-invasive companion plugins possible.
178
+ - ⚡ **[dsh-agy](https://github.com/chaos-03x/dsh-agy)** by [@chaos-03x](https://github.com/chaos-03x)
179
+ **The Core Upstream Provider**. Connecting directly to Google's internal APIs with native tool calling and multi-account rotation, providing the reliable backend engine.
180
+ - 🎨 **[dsh-agy-link](https://github.com/amlyczz/dsh-agy-link)** by [@amlyczz](https://github.com/amlyczz)
181
+ **Invaluable Inspiration & Aesthetic Masterpiece**. Its gorgeous UI layout, dual-bucket quota monitoring concept (5h sprint + 7d weekly), and refined visual craft served as tremendous inspiration for this companion plugin!
182
+
183
+ ---
184
+
185
+ ## ⚖️ License & Compliance
186
+
187
+ - This project is licensed under the [MIT License](./LICENSE).
188
+ - All referenced upstream projects (`deepseek-harness`, `dsh-agy`, `dsh-agy-link`) are licensed under the permissive **MIT License**. This project complies with all applicable open-source license terms by integrating through public hooks, runtime wrappers, and HTTP APIs without incorporating proprietary or infringing derivative code.
189
+ - **Disclaimer**: This is an independent community open-source project and is not affiliated with, endorsed by, or sponsored by Google LLC or DeepSeek. Please use responsibly according to each service provider's terms of service.
package/README.md ADDED
@@ -0,0 +1,189 @@
1
+ # dsh-agy-ui
2
+
3
+ <p align="center">
4
+ <strong>专为 DeepSeek Harness (DSH) 中 <code>dsh-agy</code> 打造的非侵入式 UI 伴生增强插件</strong><br/>
5
+ 模型列表智能净化 · 顶栏实时配额徽章 · 毛玻璃双周期额度浮层 · 移动端抽屉自适应
6
+ </p>
7
+
8
+ <p align="center">
9
+ <a href="https://www.npmjs.com/package/dsh-agy-ui"><img src="https://img.shields.io/npm/v/dsh-agy-ui?color=blue&label=npm" alt="npm version"/></a>
10
+ <a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg" alt="MIT License"/></a>
11
+ <a href="https://github.com/deepseek-ai/deepseek-harness"><img src="https://img.shields.io/badge/DeepSeek%20Harness-Plugin-orange" alt="DSH Plugin"/></a>
12
+ <a href="https://github.com/Erick0412-dev/dsh-agy-ui/pulls"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs Welcome"/></a>
13
+ </p>
14
+
15
+ <p align="center">
16
+ <b>🌐 语言 / Language:</b>
17
+ <b>简体中文</b> ·
18
+ <a href="./README.en.md">English</a>
19
+ </p>
20
+
21
+ ---
22
+
23
+ ## 💡 为什么需要 dsh-agy-ui?
24
+
25
+ 在 [DeepSeek Harness (DSH)](https://github.com/deepseek-ai/deepseek-harness) 生态中,[dsh-agy](https://github.com/chaos-03x/dsh-agy) 凭借直连 Google 内部核心 API(`POST /v1internal:streamGenerateContent`)以及 DSH 原生 Tool 执行能力,提供了轻量极速的底层调用通道。
26
+
27
+ 但原生使用中存在几个直接影响日常体验的痛点:
28
+
29
+ | 对比维度 | 原生 `dsh-agy` 体验 | 配合 `dsh-agy-ui` 增强后 |
30
+ | :--- | :--- | :--- |
31
+ | **模型列表选择** | 充斥内部幽灵模型(如 `chat_23310`、`tab_flash_lite_preview`) | 🧹 **自动正则净化**,彻底过滤非通用对话模型 |
32
+ | **思考档位 (Reasoning)** | 同一模型的 Low/Medium/High 被展开为多行冗长菜单 | 🎛️ **智能折叠变体**,无缝唤起 DSH 原生思考档位选择器 |
33
+ | **Tiered 模型命名** | 原始模型 ID 显示粗糙(如 `gemini-3.8-flash-tiered`) | ✨ **规范品牌化排版**,展示为 `Gemini 3.8 Flash` 等友好名称 |
34
+ | **模型优先级** | 排序散乱,主力模型难以快速定位 | 🏆 **标准优先级降序**:3.8 Flash > 3.7 > 3.6 > Pro > Claude > GPT-OSS |
35
+ | **配额感知** | 额度孤立在 `/agy` 后台管理页,对话界面无法获知 | ⚡ **顶栏常驻微型徽章**,常态直接透视 Gemini 5h 剩余配额 |
36
+ | **额度详情查看** | 需离开当前对话跳转后台 | 🪟 **悬停/点击呼出毛玻璃浮层**,直观展示 5小时周期 + 7天周额度 |
37
+ | **移动端适配** | 桌面浮层在窄屏下容易截断或溢出 | 📱 **响应式抽屉 (Drawer)**,屏幕 $\le$ 640px 自动滑出底部卡片 |
38
+
39
+ `dsh-agy-ui` 定位为一个**纯表层体验伴生增强插件**:底层网络通信、流式解析与 Tool 调度 100% 交由 `dsh-agy`,本插件专注于提供优雅直观的前端交互。
40
+
41
+ ---
42
+
43
+ ## 🏛️ 插件定位与系统架构
44
+
45
+ `dsh-agy-ui` 遵循 Cordis 插件规范设计,在内存中以非侵入方式包裹 LLM 适配器,并在 Web 端通过 DSH 原生 Slots 插槽注入交互组件:
46
+
47
+ ```text
48
+ ┌────────────────────────────────────────────────────────┐
49
+ │ DeepSeek Harness (DSH Web) │
50
+ └───────────┬────────────────────────────────┬───────────┘
51
+ │ │
52
+ (Web Slots 注入) (Cordis 插件机制)
53
+ │ │
54
+ ▼ ▼
55
+ ┌────────────────────────┐ ┌─────────────────────────┐
56
+ │ dsh-agy-ui │◄─────┤ 适配器列表动态拦截包装 │
57
+ │ (顶栏徽章 + 浮层弹窗) │ │ (净化/折叠/品牌化/排序) │
58
+ └───────────┬────────────┘ └────────────┬────────────┘
59
+ │ HTTP 状态读取 │ 原生模型委托
60
+ ▼ ▼
61
+ ┌────────────────────────┐ ┌─────────────────────────┐
62
+ │ dsh-agy 后台 API │ │ dsh-agy 核心调用层 │
63
+ │ (/agy/api/accounts) │ │ (直连 Google 内部 API) │
64
+ └────────────────────────┘ └─────────────────────────┘
65
+
66
+ │ 兼容读取(可选共存)
67
+ ┌───────────┴────────────┐
68
+ │ dsh-agy-link │
69
+ │ (/plugins/agy-link/..) │
70
+ └────────────────────────┘
71
+ ```
72
+
73
+ ---
74
+
75
+ ## ✨ 核心特性详解
76
+
77
+ ### 1. 🧼 模型菜单智能净化与统一排版
78
+
79
+ <p align="center">
80
+ <img src="./docs/images/clean-models.png" width="300" alt="净化后的模型列表效果图" />
81
+ <br />
82
+ <em>▲ 净化后的 Antigravity (agy) 原生模型选择列表效果预览</em>
83
+ </p>
84
+
85
+ - **内部幽灵模型过滤**:自动过滤 `^chat_\d+$`、`^tab_` 等非对话专用的内部调试与代码补全模型。
86
+ - **思考档位规范折叠**:将散落的 `-low`、`-medium`、`-high` 变体收敛至根模型,注入标准的 `thinkingEfforts` 声明,让 DSH 原生思考选择器生效。
87
+ - **品牌名称优雅规范**:将 Tiered 系列模型(如 `gemini-3.8-flash-tiered`)自动格式化为标准展示名(如 `Gemini 3.8 Flash`)。
88
+ - **科学降序排列**:Gemini Flash 系列(3.8 > 3.7 > 3.6 > 3.5 > 3)→ Gemini Pro(3.1 Pro)→ 2.5 系列 → Claude 4.6 → GPT-OSS。
89
+
90
+ ### 2. ⚡ 顶栏实时配额徽章 (Header Badge)
91
+
92
+ <p align="center">
93
+ <img src="./docs/images/badge.png" width="200" alt="顶栏配额徽章效果图" />
94
+ <br />
95
+ <em>▲ 挂载于会话顶栏的实时配额胶囊徽章(静态呼吸健康指示灯 + 动态百分比)</em>
96
+ </p>
97
+
98
+ - **非侵入插槽注入**:挂载于 `conversation.session.header.actions` 插槽,独立 ID `agy-ui-quota-badge`。
99
+ - **一目了然的配额显示**:常驻显示当前活跃账号的 Gemini 5 小时配额(如 `AGY · 55%`)。
100
+ - **动静相宜的呼吸微动效**:静态健康圆点平时稳定常亮(绿=正常、黄=冷却中/限流、灰=无可用账号),仅在后台数据同步或手动刷新时展示 1.2 秒平滑呼吸光效。
101
+ - **120 秒全局频率锁**:2 分钟定时轮询 + 120 秒标签页/窗口聚焦节流锁,彻底杜绝切换标签页时高频击穿后台触发 Google 429 限流。
102
+
103
+ ### 3. 🪟 轻量化毛玻璃配额透视弹窗 (Popover)
104
+
105
+ <p align="center">
106
+ <img src="./docs/images/popover.png" width="380" alt="配额透视浮层效果图" />
107
+ <br />
108
+ <em>▲ 点击或悬停徽章呼出的多模型双周期(5小时/7天)配额监控面板</em>
109
+ </p>
110
+
111
+ - **悬停即现,支持钉选 (Pin)**:鼠标移入徽章毫秒级呼出,居中对齐徽章下方;点击徽章即可常驻固定。
112
+ - **双周期(Dual-Bucket)配额条**:
113
+ - **5 小时周期(Sprint)**:展示当前 5 小时内的剩余额度进度与百分比。
114
+ - **7 天周额度(Weekly Cap)**:存在周额度数据时自适应展示。
115
+ - **账号健康与快捷入口**:展示当前激活账号脱敏标识及健康状态,内置手动刷新按钮与一键直达 `/agy` 管理后台快捷入口。
116
+
117
+ ### 4. 📱 移动端抽屉式卡片自适应 (Mobile Drawer)
118
+ - 采用响应式设计,当屏幕宽度 $\le$ 640px 时,弹窗自动转为 iOS/Android 风格的底部抽屉(Bottom Sheet),并配有半透明遮罩与触控关闭优化。
119
+
120
+ ### 5. 🛡️ 命名空间隔离与多插件共存
121
+ - 所有 CSS 均置于 `agy-ui-*` 独立前缀命名空间,杜绝全局样式污染。
122
+ - 完整兼容并可与 `dsh-agy-link` 无缝共存,自动优先读取 link 提供的官方周配额与 5 小时配额。
123
+
124
+ ---
125
+
126
+ ## 🚀 一键快速安装 (Quick Start)
127
+
128
+ > 💡 **前置要求**:请确保已经安装并登录基础 Provider [dsh-agy](https://github.com/chaos-03x/dsh-agy)。
129
+
130
+ 打开终端,直接执行一行命令,DSH 将自动下载依赖并在 Profile 中完成激活注册:
131
+
132
+ ```bash
133
+ # 方式 A:npm 官方包一键安装(推荐)
134
+ dsh plugin --profile web add dsh-agy-ui
135
+
136
+ # 方式 B:从 GitHub 仓库一键直装
137
+ dsh plugin --profile web add github:Erick0412-dev/dsh-agy-ui
138
+
139
+ # 提示:若未全局配置 dsh 命令,可使用 npx 免安装执行:
140
+ # npx @deepseek-ai/dsh plugin --profile web add dsh-agy-ui
141
+ ```
142
+
143
+ 安装完成后,启动或重启 DSH Web:
144
+ ```bash
145
+ dsh web
146
+ # 或:dsh restart
147
+ ```
148
+
149
+ 刷新浏览器页面(`http://127.0.0.1:3080`),顶栏配额徽章与净化后的模型列表即刻呈现!
150
+
151
+ ---
152
+
153
+ ## ❓ 常见问题 (FAQ)
154
+
155
+ <details>
156
+ <summary><b>Q1: 为什么我的徽章一直显示灰色点?</b></summary>
157
+ 灰色点表示当前未检测到活跃的 Antigravity 账号。请访问 <code>http://127.0.0.1:3080/agy</code> 添加账号并完成 Google 登录。
158
+ </details>
159
+
160
+ <details>
161
+ <summary><b>Q2: 为什么切换标签页时不会立即刷新额度?</b></summary>
162
+ 为了保护您的 Google 账号不被 Google 接口报 429 速率限制(Rate Limit),插件内置了 <b>120 秒全局频率锁</b>。在 120 秒内频繁切回标签页不会发起重复网络请求。如需立即获取最新额度,可点击浮层中的刷新图标手动刷新。
163
+ </details>
164
+
165
+ <details>
166
+ <summary><b>Q3: 我同时安装了 dsh-agy-link 会发生冲突吗?</b></summary>
167
+ 不会。<code>dsh-agy-ui</code> 具有独立插槽 ID 与独立的 CSS 命名空间,不仅完全兼容,还会自动读取 <code>dsh-agy-link</code> 的配额接口,提供双周期的额度展示。
168
+ </details>
169
+
170
+ ---
171
+
172
+ ## 🙏 致谢 (Special Thanks)
173
+
174
+ 本项目站在巨人的肩膀上,在此由衷感谢以下优秀的开源项目与贡献者:
175
+
176
+ - 🌟 **[DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)** (`deepseek-ai/deepseek-harness`)
177
+ **一切的核心基石**。DSH 优雅强大的 Cordis 微内核架构、模块化 Web UI Slots 插槽与 LLM 适配器抽象,让插件的非侵入式开发成为可能。
178
+ - ⚡ **[dsh-agy](https://github.com/chaos-03x/dsh-agy)** by [@chaos-03x](https://github.com/chaos-03x)
179
+ **核心上游 Provider**。以极其纯粹高效的底层设计直连 Google 内部 API,支持原生 Tool 运行与账号轮换,是本插件依托的坚实后盾。
180
+ - 🎨 **[dsh-agy-link](https://github.com/amlyczz/dsh-agy-link)** by [@amlyczz](https://github.com/amlyczz)
181
+ **卓越的灵感源泉与排版榜样**。其精巧绝伦的排版设计、双桶配额(5h / 7d)监控思路以及细腻的交互美感,为本插件的 UI/UX 设计提供了莫大的启发与参考!
182
+
183
+ ---
184
+
185
+ ## ⚖️ 开源协议与声明 (License & Compliance)
186
+
187
+ - 本项目基于 [MIT License](./LICENSE) 开源。
188
+ - 关联项目(`deepseek-harness`、`dsh-agy`、`dsh-agy-link`)均采用宽松平易的 **MIT 许可证**。本项目完全遵循相关许可协议,通过动态挂载、公开 HTTP 端点和插槽机制协同工作,不包含任何专有或侵权闭源衍生代码。
189
+ - **免责声明**:本项目为社区个人独立开源的伴生增强插件,与 Google LLC、DeepSeek 等官方实体无直接商业或从属关联。请在符合各服务商使用条款的范围内合理使用。
@@ -0,0 +1,4 @@
1
+ # dsh-agy-ui bundle patch: mounts dsh-agy-ui companion plugin into DSH.
2
+ - insert:
3
+ - id: dsh-agy-ui
4
+ name: 'dsh-agy-ui'