@goodandready/dsh-agent-orchestrator 0.1.6 → 0.1.7

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.ru.md CHANGED
@@ -4,6 +4,13 @@
4
4
 
5
5
  <h3>Мульти-агентная декомпозиция задач, DAG-оркестрация и оптимизатор Prompt Caching для DeepSeek Harness</h3>
6
6
 
7
+ <p align="center">
8
+ <a href="https://www.npmjs.com/package/@goodandready/dsh-agent-orchestrator"><img src="https://img.shields.io/npm/v/@goodandready/dsh-agent-orchestrator.svg?style=for-the-badge&color=6366f1&labelColor=1e1b4b" alt="npm version"></a>
9
+ <a href="LICENSE"><img src="https://img.shields.io/github/license/GooDAnDReaDY/dsh-agent-orchestrator.svg?style=for-the-badge&color=10b981&labelColor=064e3b" alt="license"></a>
10
+ <a href="https://github.com/topics/dsh-plugin"><img src="https://img.shields.io/badge/DSH-Plugin-8b5cf6.svg?style=for-the-badge&labelColor=2e1065" alt="DSH Plugin"></a>
11
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node-20%2B-f59e0b.svg?style=for-the-badge&labelColor=451a03" alt="Node version"></a>
12
+ </p>
13
+
7
14
  <p align="center">
8
15
  <a href="https://goodandready.app/"><img src="https://img.shields.io/badge/Все_проекты_автора-goodandready.app-ff4500.svg?style=for-the-badge&logo=rocket&logoColor=white&labelColor=1a1a2e" alt="Все проекты автора"></a>
9
16
  </p>
@@ -14,6 +21,16 @@
14
21
  <a href="README.zh.md"><b>🇨🇳 中文说明</b></a>
15
22
  </p>
16
23
 
24
+ <table align="center">
25
+ <tr>
26
+ <td align="center">
27
+ ⭐ <strong>Если вам понравился этот плагин, поставьте звезду на GitHub</strong> — это показывает востребованность разработки и мотивирует развивать проект дальше.
28
+ <br><br>
29
+ 🐛 <strong>Если вы нашли ошибку или хотите предложить улучшение</strong>, откройте issue на GitHub на любом удобном языке — предложения рассматриваются для будущих версий.
30
+ </td>
31
+ </tr>
32
+ </table>
33
+
17
34
  </div>
18
35
 
19
36
  ---
@@ -34,21 +51,80 @@
34
51
 
35
52
  ---
36
53
 
37
- ## 👥 12 специализированных ролей агентов
38
-
39
- Все профили агентов **хранятся и управляются исключительно внутри настроек плагина** (без внешних зависимостей от диска):
40
- - **ТЗ-аналитик (`spec`)**: требования, критерии приёмки (DoD), границы задачи.
41
- - **Архитектор (`architecture`)**: системный дизайн, DESIGN.md, ADR, модульные контракты.
42
- - **UI/UX Дизайнер (`ui_design`)**: дизайн-система, CSS-переменные (`--dsw-alias-*`), слоты.
43
- - **Фронтендер (`frontend`)**: компоненты React, хуки, клиентские состояния.
44
- - **Бэкендер (`backend`)**: сервисы Cordis, роуты webServer, базы данных, хранилище.
45
- - **Фуллстек-интегратор (`fullstack`)**: сквозная сборка контрактов клиент-сервер.
46
- - **QA-инженер (`qa_tests`)**: модульные тесты (`node:test`), проверка граничных условий.
47
- - **Hotfix-инженер (`bugfix`)**: диагностика и минимальный целевой фикс без регрессий.
48
- - **Технический писатель (`docs`)**: трёхъязычная документация (en/ru/zh), релиз-ноутс.
49
- - **Рефакторинг-специалист (`refactoring`)**: чистка кода (YAGNI, ponytail), оптимизация бандла (<250 Кб).
50
- - **Research-инженер (`research`)**: оценка технологий, библиотек, сравнительные спайки.
51
- - **DevOps-инженер (`devops`)**: манифесты пакетов, проверка сборки, systemd сервисы.
54
+ ## 🏗️ Архитектура
55
+
56
+ ```mermaid
57
+ graph TD
58
+ Trigger["Входная задача<br/>(/orchestrate в чате или карточка Канбана)"] --> Main["Главный оркестратор (Триаж)"]
59
+
60
+ subgraph Engine ["Движок DAG и Prompt Caching"]
61
+ L1["Уровень 1: Канонический базовый якорь (>1024 токенов)"]
62
+ L2["Уровень 2: Общий якорь задачи"]
63
+ L3["Уровень 3: Накопленные артефакты (Append-Only)"]
64
+ L4["Уровень 4: Суффиксная директива роли"]
65
+ end
66
+
67
+ Main --> Engine
68
+
69
+ subgraph AgentPool ["Настроенные персоны агентов (Автономно в настройках)"]
70
+ R1["ТЗ-аналитик"]
71
+ R2["Системный архитектор"]
72
+ R3["UI/UX Дизайнер"]
73
+ R4["Бэкенд-разработчик"]
74
+ R5["Фронтенд-разработчик"]
75
+ R6["QA Automation инженер"]
76
+ R7["Технический писатель"]
77
+ end
78
+
79
+ Engine --> AgentPool
80
+ AgentPool --> Delivery["Поставка результата<br/>(Карточка в шапке и синхронизация с Канбаном)"]
81
+ ```
82
+
83
+ ---
84
+
85
+ ## 👥 12 встроенных специализированных ролей агентов
86
+
87
+ Все профили агентов **хранятся и настраиваются исключительно внутри настроек плагина** (без внешних файлов):
88
+
89
+ | Код роли | Название | Специализация | Жёсткие границы |
90
+ |---|---|---|---|
91
+ | `spec` | ТЗ-аналитик | Требования, критерии приёмки (DoD), структуры данных | Не пишет код реализации и стили |
92
+ | `architecture` | Системный архитектор | Системный дизайн, DESIGN.md, ADR, модульные контракты | Не реализует прод-код и не деплоит |
93
+ | `ui_design` | UI/UX Дизайнер | Макеты, токены темы (`--dsw-alias-*`), слоты | Не пишет серверные сервисы Cordis |
94
+ | `frontend` | Фронтенд-разработчик | React-компоненты, хуки клиента, DOM-события | Не меняет бэкенд-роуты и схемы БД |
95
+ | `backend` | Бэкенд-разработчик | Сервисы Cordis, WebServer-роуты, хранилище | Не пишет клиентский React JSX и CSS |
96
+ | `fullstack` | Фуллстек-интегратор | Связка клиент-серверного контракта, сквозной поток | Строго следует границам модулей |
97
+ | `qa_tests` | QA Automation инженер | Модульные тесты (`node:test`), проверка границ | Тестирует без внешних сетевых вызовов |
98
+ | `bugfix` | Hotfix-инженер | Поиск первопричины, минимальный точечный фикс | Не рефакторит несвязанный код |
99
+ | `docs` | Технический писатель | Трёхъязычная документация (en/ru/zh), релизы | Не перезаписывает прежнюю документацию |
100
+ | `refactoring` | Рефакторинг-специалист | Устранение оверинжиниринга (YAGNI), сжатие бандла | Сохраняет обратную совместимость |
101
+ | `research` | Исследователь (Spike) | Сравнение библиотек, архитектурные пробы | Готовит отчёт, не мержит спайк-код |
102
+ | `devops` | DevOps-инженер | Манифесты пакетов, валидация сборки, systemd | Не раскрывает приватные учетные данные |
103
+
104
+ ---
105
+
106
+ ## 🔄 Сценарии сложности
107
+
108
+ 1. **Hotfix / Минорный (1 этап)**: Точечное устранение дефекта или правка одного параметра.
109
+ 2. **Простой (2 этапа)**: Обсуждение и ТЗ $
110
+ 3. **Средний (3–4 этапа)**: ТЗ $
111
+ 4. **Комплексный (5–6 этапов)**: ТЗ $
112
+ 5. **Корпоративный / Enterprise (7 этапов)**: Исследовательский спайк $
113
+ 6. **Пользовательские DAG-сценарии**: Полностью настраиваются в параметрах плагина с произвольными этапами и чекбоксами блокировок.
114
+
115
+ ---
116
+
117
+ ## ⚡ Механика Prompt Caching
118
+
119
+ Современные LLM кэшируют KV-состояния строго от первого токена вперёд. Случайные временные метки или ID в шапке промпта сбрасывают Cache Hit до 0%.
120
+
121
+ `dsh-agent-orchestrator` обеспечивает **4-слойную каноническую структуру**:
122
+ 1. **Уровень 1: Статический базовый якорь (>1024 токенов)**: Побайтово идентичные правила и инструменты, общие для всех агентов.
123
+ 2. **Уровень 2: Общий якорь задачи**: Стабильное описание цели пользователя и целевого репозитория.
124
+ 3. **Уровень 3: Накопленный контекст (Append-Only)**: Результаты предыдущих этапов дописываются строго в конец, сохраняя 100% предыдущего KV-кэша.
125
+ 4. **Уровень 4: Директива роли (Суффикс)**: Промпт роли, специализированные инструкции и локальный скоуп этапа.
126
+
127
+ Такая архитектура даёт **80–95% попаданий в кэш** между субагентами на одной модели, снижая TTFT и сокращая затраты на токены на ~90%.
52
128
 
53
129
  ---
54
130
 
@@ -56,31 +132,52 @@
56
132
 
57
133
  ### 1. В чате DSH через слэш-команду
58
134
  ```text
59
- /orchestrate Сделай карточку настроек для плагина финансов
135
+ /orchestrate Спроектируй и разработай карточку настроек для плагина финансов
60
136
  ```
61
- С указанием сценария сложности:
137
+
138
+ Явный выбор сценария сложности:
62
139
  ```text
63
- /orchestrate complex Разработай систему очередей задач с бэком и веб-панелью
64
- /orchestrate hotfix Исправь падение при null в store.js
140
+ /orchestrate complex Разработай провайдер мультитенантной аутентификации
141
+ /orchestrate hotfix Исправь обращение к null в store.js
65
142
  ```
66
- Быстрый алиас:
143
+
144
+ Короткий алиас:
67
145
  ```text
68
146
  /orc Рефакторинг управления состоянием
69
147
  ```
70
148
 
71
149
  ### 2. В @goodandready/dsh-kanban
72
- - Открой карточку задачи на доске.
150
+ - Открой любую карточку задачи на доске.
73
151
  - Нажми **[Собрать пайплайн]**.
74
- - Выбери сценарий сложности или оставь авто-триаж.
75
- - Карточка сама отразит этапы и перейдёт в `Review` по завершении.
152
+ - Выбери пресет сложности или оставь авто-триаж.
153
+ - Карточка отображает переходы между этапами и автоматически переводится в `Review` по готовности.
76
154
 
77
155
  ---
78
156
 
79
- ## 🧪 Запуск тестов
157
+ ## 🧪 Верификация и тестирование
158
+
159
+ Запуск нативного набора тестов (121 тест без внешних сетевых зависимостей):
80
160
 
81
161
  ```bash
82
162
  node --test test/*.test.mjs
83
163
  ```
84
164
 
85
- Лицензия: MIT © [GooDAnDReaDY](https://github.com/GooDAnDReaDY)
86
-
165
+ Проверка размера бандла перед публикацией (<256 КБ):
166
+
167
+ ```bash
168
+ npm pack --dry-run --json
169
+ ```
170
+
171
+ ---
172
+
173
+ ## 🖼️ Визуальная верификация
174
+
175
+ Приёмка v0.1.6 в окружении DSH — карточка настроек, темная и светлая темы:
176
+
177
+ ![dsh-agent-orchestrator v0.1.6 visual verification](media/visual-verification.png)
178
+
179
+ ---
180
+
181
+ ## 📄 Лицензия
182
+
183
+ MIT © [GooDAnDReaDY](https://github.com/GooDAnDReaDY)
package/README.zh.md CHANGED
@@ -4,6 +4,13 @@
4
4
 
5
5
  <h3>面向 DeepSeek Harness 的多智能体任务分解、DAG 工作流编排与提示词缓存优化引擎</h3>
6
6
 
7
+ <p align="center">
8
+ <a href="https://www.npmjs.com/package/@goodandready/dsh-agent-orchestrator"><img src="https://img.shields.io/npm/v/@goodandready/dsh-agent-orchestrator.svg?style=for-the-badge&color=6366f1&labelColor=1e1b4b" alt="npm version"></a>
9
+ <a href="LICENSE"><img src="https://img.shields.io/github/license/GooDAnDReaDY/dsh-agent-orchestrator.svg?style=for-the-badge&color=10b981&labelColor=064e3b" alt="license"></a>
10
+ <a href="https://github.com/topics/dsh-plugin"><img src="https://img.shields.io/badge/DSH-Plugin-8b5cf6.svg?style=for-the-badge&labelColor=2e1065" alt="DSH Plugin"></a>
11
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node-20%2B-f59e0b.svg?style=for-the-badge&labelColor=451a03" alt="Node version"></a>
12
+ </p>
13
+
7
14
  <p align="center">
8
15
  <a href="https://goodandready.app/"><img src="https://img.shields.io/badge/作者所有项目-goodandready.app-ff4500.svg?style=for-the-badge&logo=rocket&logoColor=white&labelColor=1a1a2e" alt="作者所有项目"></a>
9
16
  </p>
@@ -14,51 +21,163 @@
14
21
  <a href="README.zh.md"><b>🇨🇳 中文说明</b></a>
15
22
  </p>
16
23
 
24
+ <table align="center">
25
+ <tr>
26
+ <td align="center">
27
+ ⭐ <strong>如果您喜欢此插件,请在 GitHub 上点亮 Star</strong> — 这是对我持续投入开发的最大鼓励。
28
+ <br><br>
29
+ 🐛 <strong>若发现 Bug 或有功能建议</strong>,欢迎随时在 GitHub 提交 Issue(支持任意语言)— 我将在后续版本中积极评估并实现。
30
+ </td>
31
+ </tr>
32
+ </table>
33
+
17
34
  </div>
18
35
 
19
36
  ---
20
37
 
21
- ## ⚡ 概述与解决的问题
38
+ ## ⚡ 概述与解决的核心痛点
39
+
40
+ 在执行复杂的多阶段工程任务时,单一智能体架构往往面临认知过载:在单一上下文请求中混合了系统架构、界面布局、前端交互、服务端逻辑、单元测试与文档编写,极易导致接口幻觉、功能退化与不必要的 Token 浪费。
41
+
42
+ 此外,各子智能体的独立执行通常会中断大语言模型的 KV 缓存复用,失去前缀提示词缓存(Prompt Caching)的优势,产生严重的首次响应延迟 (TTFT) 与高昂的推理成本。
43
+
44
+ **`@goodandready/dsh-agent-orchestrator`** 为 DeepSeek Harness 提供完整的自主多智能体编排方案:
45
+
46
+ 1. **智能分流与任务分解**:深度解析来自聊天或看板卡片的目标,拆解并分发给 **12 个专属智能体角色**。
47
+ 2. **有向无环图 (DAG) 引擎**:基于依赖拓扑结构并行调度无阻塞子任务,严格保障阻断检查点。
48
+ 3. **KV 缓存 / Prompt Caching 优化器**:确保同模型智能体之间保持字节级的前缀一致性,释放 80–90% 的缓存命中率并实现极速首字输出。
49
+ 4. **严格的权责分离**:服务端后端、UI 界面设计与客户端前端实现各自保持独立的角色与执行阶段,杜绝单一智能体跨界混写。
50
+ 5. **双场景原生集成**:支持在 DSH 聊天中通过 `/orchestrate` 斜杠命令直接调用(带顶部吸顶里程碑卡片),亦可无缝接入 `@goodandready/dsh-kanban` 看板。
51
+
52
+ ---
53
+
54
+ ## 🏗️ 系统架构图
55
+
56
+ ```mermaid
57
+ graph TD
58
+ Trigger["输入任务<br/>(聊天中 /orchestrate 或看板卡片)"] --> Main["主调度器 (分流与规划)"]
59
+
60
+ subgraph Engine ["DAG 调度引擎与提示词缓存优化"]
61
+ L1["第 1 层:规范化基础锚点 (>1024 Token)"]
62
+ L2["第 2 层:共享任务上下文锚点"]
63
+ L3["第 3 层:阶段累计产物 (仅追加模式)"]
64
+ L4["第 4 层:角色专属后缀指令"]
65
+ end
66
+
67
+ Main --> Engine
68
+
69
+ subgraph AgentPool ["配置化智能体角色池 (完全内聚于插件设置)"]
70
+ R1["需求分析师"]
71
+ R2["系统架构师"]
72
+ R3["UI/UX 设计师"]
73
+ R4["后端工程师"]
74
+ R5["前端工程师"]
75
+ R6["QA 自动化工程师"]
76
+ R7["技术文档专家"]
77
+ end
78
+
79
+ Engine --> AgentPool
80
+ AgentPool --> Delivery["编排交付<br/>(顶部状态卡片与看板状态同步)"]
81
+ ```
22
82
 
23
- 在执行复杂的多阶段工程任务时,单一智能体架构往往面临上下文过载:单一请求中混合了系统架构、界面设计、前端编码、后端逻辑、单元测试与文档编写,容易导致幻觉与契约不一致。
83
+ ---
24
84
 
25
- 此外,独立调用多个子智能体会导致每次推理重新建立 KV 缓存,无法重用提示词前缀缓存(Prompt Caching),造成严重的延迟与计算开销。
85
+ ## 👥 12 大内置专属智能体角色矩阵
86
+
87
+ 所有智能体预设均**完全内聚于插件设置面板中**(无需依赖本地额外配置文件):
88
+
89
+ | 角色 ID | 角色名称 | 核心专业领域 | 严格职责边界 |
90
+ |---|---|---|---|
91
+ | `spec` | 需求分析师 | 功能规范、验收准则 (DoD)、数据结构定义 | 严禁编写业务实现代码或样式 |
92
+ | `architecture` | 系统架构师 | 架构设计、DESIGN.md、ADR 决策、模块契约 | 严禁编写生产代码或执行部署 |
93
+ | `ui_design` | UI/UX 设计师 | 界面布局、主题变量 (`--dsw-alias-*`)、插槽设计 | 严禁编写服务端 Cordis 服务逻辑 |
94
+ | `frontend` | 前端工程师 | React 组件、客户端 Hooks、DOM 交互与事件 | 严禁修改后端路由或数据库存储 |
95
+ | `backend` | 后端工程师 | Cordis 服务、WebServer 路由、状态与持久化 | 严禁编写客户端 React JSX 或前端 CSS |
96
+ | `fullstack` | 全栈集成师 | 端到端契约对接、全链路串联打通 | 严格遵守模块化边界规范 |
97
+ | `qa_tests` | QA 自动化工程师 | 原生单元测试 (`node:test`)、边界用例覆盖 | 仅限无外网依赖的纯净验证 |
98
+ | `bugfix` | 缺陷修复专家 | 根因精准定位、最小爆炸半径修复 | 严禁重构无关代码 |
99
+ | `docs` | 技术文档专家 | 英中俄三语文档编撰 (en/ru/zh)、发行注记 | 严禁覆盖或删除旧版有效文档 |
100
+ | `refactoring` | 重构精简专家 | 复杂度裁剪 (YAGNI)、代码瘦身与体积压缩 | 必须严格保持向前兼容 |
101
+ | `research` | 前沿探索工程师 | 技术选型评估、多方案 Spike 对比验证 | 输出分析报告,严禁直接合并 Spike 代码 |
102
+ | `devops` | 运维与工具工程师 | 包清单规范化、打包构建校验、systemd 守护 | 严禁泄露内部网络凭证与私钥 |
26
103
 
27
- **`@goodandready/dsh-agent-orchestrator`** 为 DeepSeek Harness 带来了自主的多智能体编排框架:
104
+ ---
28
105
 
29
- 1. **智能分流与分解**:分析聊天或看板卡片的目标,将其分解并分发给 **12 个专用智能体角色**。
30
- 2. **有向无环图 (DAG) 引擎**:基于依赖关系并行调度无阻塞任务,严格控制前置阶段。
31
- 3. **提示词缓存优化 (KV Cache Optimizer)**:确保相同模型的智能体在字节级上共享规范前缀,实现 80–90% 的缓存命中率。
32
- 4. **职责严格分离**:后端逻辑、界面设计与前端实现彼此独立,严禁单一智能体混同处理。
33
- 5. **双重使用场景**:支持通过 DSH 聊天斜杠命令 `/orchestrate` 触发,或无缝嵌入 `@goodandready/dsh-kanban` 任务看板。
106
+ ## 🔄 复杂度编排场景
107
+
108
+ 1. **Hotfix / 紧急缺陷 (1 阶段)**:即时消除单一 Bug 或调整单项配置参数。
109
+ 2. **Simple / 简易任务 (2 阶段)**:方案讨论与规范 $
110
+ 3. **Medium / 中型需求 (3–4 阶段)**:需求分析 $
111
+ 4. **Complex / 复杂项目 (5–6 阶段)**:需求分析 $
112
+ 5. **Enterprise / 深度研发 (7 阶段)**:技术评估 Spike $
113
+ 6. **自定义 DAG 场景**:在插件设置面板自由增删阶段、配置依赖关系与阻断检查点。
34
114
 
35
115
  ---
36
116
 
37
- ## 💻 使用方法
117
+ ## ⚡ 提示词缓存 (Prompt Caching) 底层原理
118
+
119
+ 主流大语言模型严格从第一个 Token 开始构建并复用 KV 缓存。如果在 Prompt 开头混入不确定性的时间戳或随机 ID,缓存命中率将骤降至 0%。
120
+
121
+ `dsh-agent-orchestrator` 强制采用 **4 层规范化布局**:
122
+ 1. **第 1 层:静态基础锚点 (>1024 Token)**:所有智能体共享的字节级完全一致的规则与工具说明。
123
+ 2. **第 2 层:共享任务上下文锚点**:用户核心目标与目标仓库的稳定描述。
124
+ 3. **第 3 层:阶段累计产物 (仅追加模式)**:前序阶段产物按确定性顺序追加,完全保留前置 KV 缓存。
125
+ 4. **第 4 层:角色专属后缀指令**:智能体角色人设、技能指导与当前子任务专属指令置于最末端。
126
+
127
+ 此架构能够使共享同一模型的子智能体达到 **80–95% 的缓存命中率**,极大降低首字生成延迟并将 Token 消耗降低约 90%。
128
+
129
+ ---
130
+
131
+ ## 💻 使用指南
38
132
 
39
133
  ### 1. 在 DSH 聊天中通过斜杠命令触发
40
134
  ```text
41
- /orchestrate 为财务插件设计并开发设置卡片
135
+ /orchestrate 为财务管理插件设计并开发设置卡片
42
136
  ```
43
137
 
44
- 指定复杂度模式:
138
+ 显式指定复杂度预设:
45
139
  ```text
46
- /orchestrate complex 开发带有后端和前端界面的任务排队系统
140
+ /orchestrate complex 构建多租户身份认证提供商服务
47
141
  /orchestrate hotfix 修复 store.js 中的空指针异常
48
142
  ```
49
143
 
50
- 简短别名:
144
+ 简明别名:
51
145
  ```text
52
146
  /orc 重构状态管理模块
53
147
  ```
54
148
 
149
+ ### 2. 在 @goodandready/dsh-kanban 看板中协作
150
+ - 打开看板上的任意任务卡片。
151
+ - 点击 **[Собрать пайплайн / 装配工作流]**。
152
+ - 选择复杂度预设或采用自动分流。
153
+ - 任务卡片实时展示各阶段进度,任务完成自动推进至 `Review` 状态。
154
+
55
155
  ---
56
156
 
57
- ## 🧪 单元测试
157
+ ## 🧪 自动化测试与打包验证
158
+
159
+ 执行原生测试套件(121 个用例全部通过,零外部网络依赖):
58
160
 
59
161
  ```bash
60
162
  node --test test/*.test.mjs
61
163
  ```
62
164
 
63
- 许可证:MIT © [GooDAnDReaDY](https://github.com/GooDAnDReaDY)
64
-
165
+ 验证 npm 打包体积合规性(严格低于 256 KiB 上限):
166
+
167
+ ```bash
168
+ npm pack --dry-run --json
169
+ ```
170
+
171
+ ---
172
+
173
+ ## 🖼️ 视觉设计验收效果
174
+
175
+ v0.1.6 生产环境验收效果 — 设置面板暗色与亮色主题对照:
176
+
177
+ ![dsh-agent-orchestrator v0.1.6 visual verification](media/visual-verification.png)
178
+
179
+ ---
180
+
181
+ ## 📄 开源协议
182
+
183
+ MIT © [GooDAnDReaDY](https://github.com/GooDAnDReaDY)
package/lib/client.js CHANGED
@@ -14,6 +14,10 @@ window.__ModuleLoader__.load({
14
14
  const h = React.createElement
15
15
 
16
16
  const NS = 'dsh-agent-orchestrator'
17
+ // Plugins page row seat (DSH 0.1.6-alpha.2): key = '<package name>#<row id>'.
18
+ const PKG = '@goodandready/dsh-agent-orchestrator'
19
+ const ROW_ID = 'dsh-agent-orchestrator'
20
+ const ROW_CONFIG_KEY = PKG + '#' + ROW_ID
17
21
 
18
22
  // ErrorBoundary to guard against any component rendering exceptions
19
23
  class ErrorBoundary extends React.Component {
@@ -498,8 +502,9 @@ window.__ModuleLoader__.load({
498
502
  }
499
503
 
500
504
  // --- Main Settings Card ---
501
- function OrchestratorSettingsCard() {
502
- const [isOpen, setIsOpen] = useState(false)
505
+ function OrchestratorSettingsCard(props) {
506
+ const page = !!(props && props.view === 'page')
507
+ const [isOpen, setIsOpen] = useState(!!page)
503
508
  const [activeTab, setActiveTab] = useState('roles')
504
509
  const [config, setConfig] = useState(null)
505
510
  const [metrics, setMetrics] = useState({})
@@ -575,12 +580,21 @@ window.__ModuleLoader__.load({
575
580
  }
576
581
  }
577
582
 
578
- return h('li', { className: 'dso-card' },
583
+ // #139: the row seat (plugins.row.config) asks for two views. The summary is a
584
+ // one-liner; the page renders the form expanded and without our card chrome,
585
+ // because the host page draws the title, icon, crumb and padding itself.
586
+ if (props && props.view === 'summary') {
587
+ return h('div', { className: 'dso-sub' },
588
+ 'Decomposes tasks into 12 specialized roles with DAG execution.')
589
+ }
590
+
591
+ return h(page ? 'div' : 'li', { className: page ? 'dso-page' : 'dso-card' },
579
592
  h('button', {
580
593
  type: 'button',
581
594
  className: 'dso-head',
595
+ style: page ? { display: 'none' } : undefined,
582
596
  onClick: () => setIsOpen(!isOpen),
583
- 'aria-expanded': isOpen,
597
+ 'aria-expanded': page ? true : isOpen,
584
598
  },
585
599
  h('div', { className: 'dso-head-info' },
586
600
  h('div', { className: 'dso-title' },
@@ -1276,8 +1290,21 @@ window.__ModuleLoader__.load({
1276
1290
  }
1277
1291
 
1278
1292
  // Issue #139: settings.plugin.item does not render in DSH core 0.1.6-alpha.2+.
1279
- // Register into settings.plugins.tab (official tabs under Settings -> Plugins),
1280
- // plugins.item (Plugin Manager page), and fallback settings.section.
1293
+ // Primary seat is plugins.row.config (the plugin's own row on the Plugins page);
1294
+ // settings.plugins.tab, plugins.item and settings.section stay as fallbacks.
1295
+
1296
+ // 0. Row seat on the Plugins page — the seat the current core renders
1297
+ registerSlotSafe(
1298
+ 'plugins.row.config',
1299
+ {
1300
+ name: 'plugins.row.config',
1301
+ key: ROW_CONFIG_KEY,
1302
+ order: 20,
1303
+ locale: NS,
1304
+ inject: () => ({ ctx }),
1305
+ },
1306
+ (props) => h(ErrorBoundary, null, h(OrchestratorSettingsCard, { ...props, ctx: props.ctx || ctx }))
1307
+ )
1281
1308
 
1282
1309
  // 1. Official tab in Settings -> Plugins
1283
1310
  registerSlotSafe(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goodandready/dsh-agent-orchestrator",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "Multi-agent task decomposition, DAG workflow orchestration, and prompt caching optimizer for DeepSeek Harness.",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -90,5 +90,6 @@
90
90
  "publishConfig": {
91
91
  "registry": "https://registry.npmjs.org",
92
92
  "access": "public"
93
- }
93
+ },
94
+ "author": "GooDAnDReaDY <support@goodandready.app>"
94
95
  }