dsh-plugin-subagent-director 0.4.0-beta.1 → 0.5.0-beta.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/CHANGELOG.md +51 -4
- package/README.md +25 -16
- package/lib/bridge-contract.d.ts +20 -0
- package/lib/bridge-contract.d.ts.map +1 -1
- package/lib/bridge-contract.js +8 -0
- package/lib/bridge-contract.js.map +1 -1
- package/lib/client/RoleCard.d.ts +4 -4
- package/lib/client/RoleCard.d.ts.map +1 -1
- package/lib/client/RoleCard.js +9 -13
- package/lib/client/RoleCard.js.map +1 -1
- package/lib/client/SubagentOptionsSection.d.ts +0 -2
- package/lib/client/SubagentOptionsSection.d.ts.map +1 -1
- package/lib/client/SubagentOptionsSection.js +11 -17
- package/lib/client/SubagentOptionsSection.js.map +1 -1
- package/lib/client/allowed-routes.d.ts +34 -0
- package/lib/client/allowed-routes.d.ts.map +1 -0
- package/lib/client/allowed-routes.js +47 -0
- package/lib/client/allowed-routes.js.map +1 -0
- package/lib/client/index.d.ts.map +1 -1
- package/lib/client/index.js +133 -77
- package/lib/client/index.js.map +1 -1
- package/lib/client/locales.d.ts +1 -1
- package/lib/client/locales.d.ts.map +1 -1
- package/lib/client/locales.js +2 -0
- package/lib/client/locales.js.map +1 -1
- package/lib/client/store.d.ts +24 -18
- package/lib/client/store.d.ts.map +1 -1
- package/lib/client/store.js +14 -16
- package/lib/client/store.js.map +1 -1
- package/lib/config.d.ts +2 -13
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +0 -1
- package/lib/config.js.map +1 -1
- package/lib/delegation-tool.d.ts +36 -8
- package/lib/delegation-tool.d.ts.map +1 -1
- package/lib/delegation-tool.js +49 -6
- package/lib/delegation-tool.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -9
- package/lib/index.js.map +1 -1
- package/lib/orchestrate.d.ts +17 -0
- package/lib/orchestrate.d.ts.map +1 -1
- package/lib/orchestrate.js +215 -9
- package/lib/orchestrate.js.map +1 -1
- package/lib/remote.d.ts +13 -1
- package/lib/remote.d.ts.map +1 -1
- package/lib/remote.js +47 -6
- package/lib/remote.js.map +1 -1
- package/lib/route-resolver.d.ts +44 -12
- package/lib/route-resolver.d.ts.map +1 -1
- package/lib/route-resolver.js +64 -4
- package/lib/route-resolver.js.map +1 -1
- package/lib/settings.d.ts +18 -10
- package/lib/settings.d.ts.map +1 -1
- package/lib/settings.js +18 -10
- package/lib/settings.js.map +1 -1
- package/package.json +41 -35
- package/lib/default-route.d.ts +0 -46
- package/lib/default-route.d.ts.map +0 -1
- package/lib/default-route.js +0 -56
- package/lib/default-route.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,22 +2,69 @@
|
|
|
2
2
|
|
|
3
3
|
本项目的所有显著变更都会记录在此文件中。格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),版本号遵循 [SemVer](https://semver.org/lang/zh-CN/)。
|
|
4
4
|
|
|
5
|
-
## [
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
### 变更
|
|
8
|
+
|
|
9
|
+
- **alpha.4 兼容性移植(Host 半)**:`dsh-settings` 服务 API 升级——移除的
|
|
10
|
+
`settingsNamespace()` / `installSettingsSection()` 改为普通 kebab-case 命名空间
|
|
11
|
+
字面量 + `ctx.settings.installSection(owner, ns, schema, entry, hooks)`(与官方
|
|
12
|
+
`subagent-model-selection` 消费方同款模式);`JsonValue` 改从
|
|
13
|
+
`@deepseek-ai/dsh-util-values` 导入(`dsh-tools` 不再导出);`AgentOptions` 现携带
|
|
14
|
+
`reasoningEffort?: ReasoningEffortId`,`reasoningEffort` 由「仅告知」改为正式注入
|
|
15
|
+
`agentOptions`(可单独提供,路由变更时清除继承的 route 专属 effort);
|
|
16
|
+
- **移除 `applyDefaultRoute` 默认路由补丁缝**(避免与官方 dsh-tool-subagent 双重写
|
|
17
|
+
模型路由):删除 `src/default-route.ts` 及其对 `ctx.subagents.start/startContinuable`
|
|
18
|
+
的 monkey-patch,`DirectorConfig` 与 Config schema 同步移除 `applyDefaultRoute`;
|
|
19
|
+
插件不再向任何子代理启动注入默认模型;
|
|
20
|
+
- **选择收敛到官方授权列表**:`resolveRoute` 新增 `allowedRoutes` 约束——显式
|
|
21
|
+
provider/model 必须成对且位于 `subagent-model-selection.allowedModels`(未授权为
|
|
22
|
+
`subagent-director:` 硬错误);角色/默认层未授权路由被丢弃(回退继承)并告警,
|
|
23
|
+
角色 persona/toolFilter 仍生效;新增 `isRouteAllowed` 纯函数与
|
|
24
|
+
`readModelSelection`(执行期经 `settings.get` 读取官方命名空间,缺失/异常时优雅
|
|
25
|
+
降级为无约束并提示未配置授权列表)。
|
|
26
|
+
|
|
27
|
+
### 测试
|
|
28
|
+
|
|
29
|
+
- `route-resolver.test.ts` 新增授权列表约束与 effort 注入用例(36 项);
|
|
30
|
+
- 新增 `alpha4-probe.test.ts` 真实 cordis 探针:a) 插件挂载不包装
|
|
31
|
+
`ctx.subagents.start`(证明补丁缝已移除);b) `subagent-director` 命名空间经
|
|
32
|
+
`installSection` 注册且委派解析读取 `subagent-model-selection`;c) 委派执行路径对
|
|
33
|
+
未授权显式路由拒绝、对授权路由把 `agentOptions`(含 effort)透传给
|
|
34
|
+
`subagents.start`;删除 `default-route.test.ts`。
|
|
35
|
+
|
|
36
|
+
### 兼容性
|
|
37
|
+
|
|
38
|
+
- 桥接契约(`SUBAGENT_DIRECTOR_RPC_VIEW` / `_MUTATE` / `_CLOSE` / `_MODEL` / `_TOOLS`
|
|
39
|
+
端点与载荷)不变;`installDirectorSettings` 等导出签名保持;`RpcError.sessionId`
|
|
40
|
+
品牌冲突(宿主 apiproxy 嵌套的 `dsh-session` 副本)在边界处收敛为最小转型。
|
|
41
|
+
|
|
42
|
+
## [0.4.0] - 2026-08-31
|
|
6
43
|
|
|
7
44
|
### 新增
|
|
8
45
|
|
|
9
|
-
- **纯编排模式(`/orchestrate`)**(PR #3,@WinterSold1er):`/orchestrate on|off` 命令(无参数默认 on),开启后注入「纯编排者」系统提示——主代理只允许通过 `subagent_role` 委派、禁止亲自读/写/执行,角色清单从 `subagent-director.roles` 动态渲染(无硬编码 role id),未配置角色时提示先配置;`sessionProjections`
|
|
46
|
+
- **纯编排模式(`/orchestrate`)**(PR #3,@WinterSold1er):`/orchestrate on|off` 命令(无参数默认 on),开启后注入「纯编排者」系统提示——主代理只允许通过 `subagent_role` 委派、禁止亲自读/写/执行,角色清单从 `subagent-director.roles` 动态渲染(无硬编码 role id),未配置角色时提示先配置;`sessionProjections` 服务缺失时命令返回明确错误而非假装成功;
|
|
47
|
+
- **纯编排模式改为按轮自动检测(类似 `/using aegis`)**:不再需要规定 on/off——消息开头声明 `/orchestrate`(无参数),或用自然语言写「使用orchestrate模式」(含「请使用 orchestrate 模式」「use orchestrate mode」等变体),该轮会话即自动进入纯编排模式;未声明时保持普通模式。系统提示段按轮判定:先扫描当前轮首条用户消息(`user/message` 事件)与最近一次 `orchestrate` 命令的 `command/run` 事件(以 `turn/start` 为轮次边界),投影仅作向后兼容兜底;
|
|
48
|
+
- **`/orchestrate <任务>` 直接编排该任务**:声明与任务同一条消息即可生效——任意任务文本(如 `/orchestrate 分析上周A股走势`)会被 handler 视为「编排该任务」,经 `agent.followup(createUserMessage(...))` 排入下一轮并唤醒模型。
|
|
10
49
|
|
|
11
50
|
### 修复
|
|
12
51
|
|
|
13
52
|
- **真实 cordis 探针发现的隐性 bug**(issue #5):cordis 的 `ctx.effect(fn)` 契约是「立即执行 fn、以返回值为 disposer」,原先包在 effect 里的 `fiber.dispose()` 清理块会把 `/orchestrate` 命令与 projection 的 `ctx.inject` 子 fiber **在创建瞬间卸载**——真实宿主上命令从未注册成功过(既有测试全基于 fake,未覆盖该契约);子 fiber 本就随父 fiber 生命周期自动卸载,清理块已移除,并由新增的真实 cordis 探针测试永久钉住;
|
|
14
53
|
- **开发/测试环境对齐真实宿主 0.1.1 线**(issue #5):devDeps 与 peer ranges 由 `0.1.0-rc.6/rc.8` 升至 `^0.1.1-rc.2`(新增 `dsh-session-projection` peer);projection 注册改用真实类型契约(`SessionEventMap` / `SessionProjectionStateMap` / `SessionProjectionMap` 声明合并 + 类型化 `register`),契约形状漂移现在在 typecheck 期暴露,而不是运行期被 `snapshot()` 静默跳过;
|
|
15
54
|
- 顶层 `inject` 移除 `'commands'`(非 dsh-base 装配上主条目会永久 PENDING、核心委派功能全失效);命令 handler 增加 `invocation.agent.session` 可选链守卫;
|
|
16
|
-
- 移除未使用的 `@deepseek-ai/dsh-client-schema-form` 依赖(源码零引用,且其 0.1.0 线 peer 链与 0.1.1
|
|
55
|
+
- 移除未使用的 `@deepseek-ai/dsh-client-schema-form` 依赖(源码零引用,且其 0.1.0 线 peer 链与 0.1.1 线冲突);
|
|
56
|
+
- **「对话什么都不返回」**:`/orchestrate on` 后模型被「纯编排者」提示束缚,但 `subagent-director.roles` 未配置任何角色 → 无法委派、禁止亲自动手 → 对话无输出。现在未配置角色时不再注入束缚性的纯编排框架,而是注入一段简短「不可用提示」,指示模型明确告知用户需要先配置角色、并继续以普通模式处理请求——模型必然给出有意义的回复;
|
|
57
|
+
- **「不清楚是否已开启」**:`/orchestrate`(无参数)从「粘性 on」改为「本轮 on」(不写粘性事件,由 `command/run` 扫描按轮生效),命令反馈明确说明按轮/持久语义;`/orchestrate on` 保留为显式持久模式(向后兼容),`/orchestrate off` 退出持久模式;
|
|
58
|
+
- **`/orchestrate <任务>` 无响应**:commands 服务会整体消费斜杠命令行,任务文本到不了模型、命令返回错误 → 对话无输出。现在任意任务文本会被 handler 视为「编排该任务」:经 `agent.followup(createUserMessage(...))` 排入下一轮并唤醒模型,`command/run` 扫描(任务参数 → on)使该轮注入编排提示;
|
|
59
|
+
- **按轮检测被上下文注入事件击穿**(实测「分析上周A股走势」会话未编排):宿主会在用户消息之后把 runtime context / system-reminder / memos_context 作为**独立的 `user/message` 事件**追加进日志,导致「最新用户消息」「命令位于上一条与当前用户消息之间」的判定全部失效(命令被视为过期、声明消息被注入事件掩盖)。修复:检测改用 **`turn/start` 轮次边界**——消息检测取当前轮**首条**用户消息(忽略注入事件),命令扫描要求命令位于「上一轮最后一条用户消息之后、本轮 `turn/start` 之前」;无 turn 事件时回退旧逻辑。
|
|
60
|
+
|
|
61
|
+
### 兼容性
|
|
62
|
+
|
|
63
|
+
- `orchestrate/change` 事件类型注册与投影注册保留(旧会话日志加载兼容 + 客户端 wire 视图);`renderOrchestratorPrompt` / `renderOrchestratorRoles` / `buildOrchestratorFrame` 公共 API 不变;新增导出 `detectOrchestrateRequest`、`renderOrchestratorUnavailableNotice`。
|
|
17
64
|
|
|
18
65
|
### 测试
|
|
19
66
|
|
|
20
|
-
- 单元/集成测试由 197 增至
|
|
67
|
+
- 单元/集成测试由 197 增至 253:`detectOrchestrateRequest` 检测单测(斜杠/任务文本/自然语言/反例)、按轮段判定接线测试(用户消息声明、`command/run` 区间扫描、任务参数扫描、无角色不可用提示、投影兜底)、命令语义测试(无参数按轮不写事件、任务文本 followup 排队、on 持久、off 退出),以及真实 cordis `Context` + 真实 `SessionProjectionRegistry` 集成探针(无 commands 服务时主条目正常激活、核心服务缺失时保持 PENDING、commands 后到时命令经真实 `ctx.inject` 子 fiber 响应式注册、projection 经真实 `snapshot()` 驱动 on→off 折叠、按轮与任务文本探针)。
|
|
21
68
|
|
|
22
69
|
### 已知取舍
|
|
23
70
|
|
package/README.md
CHANGED
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
## 特性
|
|
17
17
|
|
|
18
18
|
- **供应商与模型选择** —— 为 subagent 配置默认 LLM 供应商(route)与模型;每次委派也可以由模型显式指定;
|
|
19
|
-
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
- **受控的模型选择** —— provider/model 只从官方 `subagent-model-selection` 授权列表
|
|
20
|
+
(`allowedModels`)中选择:显式传入未授权路由为硬错误,角色/默认层未授权路由被
|
|
21
|
+
丢弃并回退继承(不与官方 dsh-tool-subagent 双重写模型路由);
|
|
22
22
|
- **配置热更新** —— settings.yaml / 设置面板的改动即时生效,无需重启;
|
|
23
23
|
- **角色按显示名引用** —— `role` 参数未命中 id 时按 `displayName` 精确匹配(重名
|
|
24
24
|
取定义顺序第一个并提示),模型按显示名也能命中模板;
|
|
@@ -59,7 +59,6 @@ dsh plugin --profile <name> add dsh-plugin-subagent-director
|
|
|
59
59
|
enableRunInBackground: true
|
|
60
60
|
backgroundMode: one-shot # one-shot 或 continuable
|
|
61
61
|
maxDepth: 3
|
|
62
|
-
applyDefaultRoute: true # 默认 true:把默认模型应用到所有未显式指定模型的子代理
|
|
63
62
|
```
|
|
64
63
|
|
|
65
64
|
> 注意:不要再用 `- insert:` 添加这两个条目,否则启动会报
|
|
@@ -128,22 +127,31 @@ subagent_role({ role: "code-reviewer", model: "deepseek-chat", prompt: "..." })
|
|
|
128
127
|
> `subagent_role`(工具名由 `toolName` 配置,默认 `subagent_role`);DSH 基础
|
|
129
128
|
> bundle 另有内置的 `subagent` / `subagent_fork`,两者在同一次请求的工具清单里
|
|
130
129
|
> **并存**。只有走 `subagent_role` 才会应用角色 persona 与 `toolFilter`;模型改用
|
|
131
|
-
> 内置 `subagent`
|
|
130
|
+
> 内置 `subagent` 时这两项不生效(模型选择由官方 dsh-tool-subagent 的
|
|
131
|
+
> `modelSelectionSettings` 负责)。
|
|
132
132
|
> 因此需要角色语义时,请在提示里明确要求调用 `subagent_role`。
|
|
133
133
|
|
|
134
134
|
### 纯编排模式(`/orchestrate`)
|
|
135
135
|
|
|
136
136
|
```text
|
|
137
|
-
/orchestrate
|
|
138
|
-
/orchestrate on
|
|
139
|
-
/orchestrate
|
|
137
|
+
/orchestrate 分析上周A股走势 # 本轮开启并直接编排该任务(推荐用法)
|
|
138
|
+
/orchestrate # 本轮开启(按轮生效,无需 on/off)
|
|
139
|
+
/orchestrate on # 持久开启(直到 /orchestrate off)
|
|
140
|
+
/orchestrate off # 退出持久模式
|
|
140
141
|
```
|
|
141
142
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
143
|
+
在消息开头声明 `/orchestrate`(可后接任务文本,如 `/orchestrate 分析上周A股走势`),
|
|
144
|
+
或用自然语言写「使用orchestrate模式」(含「请使用 orchestrate 模式」「use
|
|
145
|
+
orchestrate mode」等变体),该轮会话即自动进入纯编排模式——类似 `/using aegis`
|
|
146
|
+
的按轮声明式用法,无需记忆开关状态;未声明时保持普通模式。`/orchestrate <任务>`
|
|
147
|
+
会把任务文本排入下一轮并唤醒模型,该轮以纯编排模式处理任务。开启后注入一段
|
|
148
|
+
「纯编排者」系统提示:主代理只允许通过委派工具派活,角色清单从当前
|
|
149
|
+
`subagent-director.roles` 动态渲染(无硬编码 role id)。**未配置角色时**不会注入
|
|
150
|
+
束缚性的纯编排框架,而是注入一段简短提示,让模型明确告知需要先配置角色并继续
|
|
151
|
+
以普通模式处理请求(避免「对话无输出」)。该模式依赖宿主的 `commands` 与
|
|
152
|
+
`sessionProjections` 服务:标准 profile(dsh-base)都会提供二者;
|
|
153
|
+
`sessionProjections` 缺失时命令返回明确错误而不是假装成功,`commands` 缺失时
|
|
154
|
+
命令不注册,插件其余功能不受影响。
|
|
147
155
|
|
|
148
156
|
## 术语
|
|
149
157
|
|
|
@@ -156,7 +164,7 @@ subagent_role({ role: "code-reviewer", model: "deepseek-chat", prompt: "..." })
|
|
|
156
164
|
|
|
157
165
|
```bash
|
|
158
166
|
npm install
|
|
159
|
-
npm test # vitest(
|
|
167
|
+
npm test # vitest(253 用例)
|
|
160
168
|
npm run typecheck
|
|
161
169
|
npm run build # host(tsc) + client(rolldown bundle)
|
|
162
170
|
```
|
|
@@ -168,8 +176,9 @@ DSH 的 Web API 只向白名单内的 settings 命名空间开放读写。本插
|
|
|
168
176
|
|
|
169
177
|
**未配置任何角色时行为如何?**
|
|
170
178
|
未配置任何角色且未配置默认模型时与未安装本插件完全一致(零侵入)。配置了
|
|
171
|
-
`defaultProvider`/`defaultModel`
|
|
172
|
-
|
|
179
|
+
`defaultProvider`/`defaultModel` 时:若官方 `subagent-model-selection` 已启用并有
|
|
180
|
+
`allowedModels` 授权列表,默认路由仅在该列表内才生效(否则被丢弃并回退继承);若
|
|
181
|
+
未配置授权列表,则保留插件默认行为并给出警告提示。
|
|
173
182
|
|
|
174
183
|
**用过 `/orchestrate` 的会话,卸载插件后还能打开吗?**
|
|
175
184
|
不能。`/orchestrate` 会在会话日志写入 `orchestrate/change` 事件,而宿主的持久化
|
package/lib/bridge-contract.d.ts
CHANGED
|
@@ -23,6 +23,26 @@ export declare const SUBAGENT_DIRECTOR_RPC_CLOSE = "subagentClose";
|
|
|
23
23
|
export declare const SUBAGENT_DIRECTOR_RPC_MODEL = "subagentModel";
|
|
24
24
|
/** Endpoint that returns the model-visible tool catalog for role tool-set editing. */
|
|
25
25
|
export declare const SUBAGENT_DIRECTOR_RPC_TOOLS = "toolCatalog";
|
|
26
|
+
/**
|
|
27
|
+
* Endpoint that returns the Subagent model-selection allowlist the page must
|
|
28
|
+
* constrain picks to (the official `subagent-model-selection` section: the
|
|
29
|
+
* "Subagent" plugin-config model list). Additive endpoint for alpha.4: the
|
|
30
|
+
* llm catalog RPC is gone from the client, and Subagent Director may select a
|
|
31
|
+
* provider/model ONLY from this list.
|
|
32
|
+
*/
|
|
33
|
+
export declare const SUBAGENT_DIRECTOR_RPC_CATALOG = "settingsCatalog";
|
|
34
|
+
/** One exact route authorized in the Subagent model-selection list. */
|
|
35
|
+
export interface DirectorAllowedRoute {
|
|
36
|
+
provider: string;
|
|
37
|
+
model: string;
|
|
38
|
+
}
|
|
39
|
+
/** Successful settingsCatalog bridge response. */
|
|
40
|
+
export interface DirectorCatalogSuccess {
|
|
41
|
+
/** Whether the official Subagent model selection is enabled. */
|
|
42
|
+
modelSelectionEnabled: boolean;
|
|
43
|
+
/** The exact routes the user has authorized (the only selectable models). */
|
|
44
|
+
allowedRoutes: DirectorAllowedRoute[];
|
|
45
|
+
}
|
|
26
46
|
/** Successful settingsView bridge response. */
|
|
27
47
|
export interface DirectorViewSuccess {
|
|
28
48
|
writable: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge-contract.d.ts","sourceRoot":"","sources":["../src/bridge-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAEhF,mEAAmE;AACnE,eAAO,MAAM,6BAA6B,uBAAuB,CAAC;AAClE,gEAAgE;AAChE,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AACzD,kDAAkD;AAClD,eAAO,MAAM,4BAA4B,mBAAmB,CAAC;AAC7D,8EAA8E;AAC9E,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAC3D,4EAA4E;AAC5E,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAC3D,sFAAsF;AACtF,eAAO,MAAM,2BAA2B,gBAAgB,CAAC;AAEzD,+CAA+C;AAC/C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,qFAAqF;IACrF,IAAI,EAAE,qBAAqB,GAAG,SAAS,CAAC;CACzC;AAED,8DAA8D;AAC9D,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,sBAAsB,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,gFAAgF;AAChF,MAAM,MAAM,sBAAsB,GAC9B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC7C;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEpC,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,gDAAgD;AAChD,MAAM,MAAM,oBAAoB,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEvG,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,2DAA2D;AAC3D,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
1
|
+
{"version":3,"file":"bridge-contract.d.ts","sourceRoot":"","sources":["../src/bridge-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAEhF,mEAAmE;AACnE,eAAO,MAAM,6BAA6B,uBAAuB,CAAC;AAClE,gEAAgE;AAChE,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AACzD,kDAAkD;AAClD,eAAO,MAAM,4BAA4B,mBAAmB,CAAC;AAC7D,8EAA8E;AAC9E,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAC3D,4EAA4E;AAC5E,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAC3D,sFAAsF;AACtF,eAAO,MAAM,2BAA2B,gBAAgB,CAAC;AAEzD;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,oBAAoB,CAAC;AAE/D,uEAAuE;AACvE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,kDAAkD;AAClD,MAAM,WAAW,sBAAsB;IACrC,gEAAgE;IAChE,qBAAqB,EAAE,OAAO,CAAC;IAC/B,6EAA6E;IAC7E,aAAa,EAAE,oBAAoB,EAAE,CAAC;CACvC;AAED,+CAA+C;AAC/C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,qFAAqF;IACrF,IAAI,EAAE,qBAAqB,GAAG,SAAS,CAAC;CACzC;AAED,8DAA8D;AAC9D,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,sBAAsB,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,gFAAgF;AAChF,MAAM,MAAM,sBAAsB,GAC9B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC7C;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEpC,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,gDAAgD;AAChD,MAAM,MAAM,oBAAoB,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEvG,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,2DAA2D;AAC3D,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
package/lib/bridge-contract.js
CHANGED
|
@@ -10,4 +10,12 @@ export const SUBAGENT_DIRECTOR_RPC_CLOSE = 'subagentClose';
|
|
|
10
10
|
export const SUBAGENT_DIRECTOR_RPC_MODEL = 'subagentModel';
|
|
11
11
|
/** Endpoint that returns the model-visible tool catalog for role tool-set editing. */
|
|
12
12
|
export const SUBAGENT_DIRECTOR_RPC_TOOLS = 'toolCatalog';
|
|
13
|
+
/**
|
|
14
|
+
* Endpoint that returns the Subagent model-selection allowlist the page must
|
|
15
|
+
* constrain picks to (the official `subagent-model-selection` section: the
|
|
16
|
+
* "Subagent" plugin-config model list). Additive endpoint for alpha.4: the
|
|
17
|
+
* llm catalog RPC is gone from the client, and Subagent Director may select a
|
|
18
|
+
* provider/model ONLY from this list.
|
|
19
|
+
*/
|
|
20
|
+
export const SUBAGENT_DIRECTOR_RPC_CATALOG = 'settingsCatalog';
|
|
13
21
|
//# sourceMappingURL=bridge-contract.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge-contract.js","sourceRoot":"","sources":["../src/bridge-contract.ts"],"names":[],"mappings":"AAcA,mEAAmE;AACnE,MAAM,CAAC,MAAM,6BAA6B,GAAG,oBAAoB,CAAC;AAClE,gEAAgE;AAChE,MAAM,CAAC,MAAM,0BAA0B,GAAG,cAAc,CAAC;AACzD,kDAAkD;AAClD,MAAM,CAAC,MAAM,4BAA4B,GAAG,gBAAgB,CAAC;AAC7D,8EAA8E;AAC9E,MAAM,CAAC,MAAM,2BAA2B,GAAG,eAAe,CAAC;AAC3D,4EAA4E;AAC5E,MAAM,CAAC,MAAM,2BAA2B,GAAG,eAAe,CAAC;AAC3D,sFAAsF;AACtF,MAAM,CAAC,MAAM,2BAA2B,GAAG,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"bridge-contract.js","sourceRoot":"","sources":["../src/bridge-contract.ts"],"names":[],"mappings":"AAcA,mEAAmE;AACnE,MAAM,CAAC,MAAM,6BAA6B,GAAG,oBAAoB,CAAC;AAClE,gEAAgE;AAChE,MAAM,CAAC,MAAM,0BAA0B,GAAG,cAAc,CAAC;AACzD,kDAAkD;AAClD,MAAM,CAAC,MAAM,4BAA4B,GAAG,gBAAgB,CAAC;AAC7D,8EAA8E;AAC9E,MAAM,CAAC,MAAM,2BAA2B,GAAG,eAAe,CAAC;AAC3D,4EAA4E;AAC5E,MAAM,CAAC,MAAM,2BAA2B,GAAG,eAAe,CAAC;AAC3D,sFAAsF;AACtF,MAAM,CAAC,MAAM,2BAA2B,GAAG,aAAa,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,iBAAiB,CAAC"}
|
package/lib/client/RoleCard.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DirectorAllowedRoute } from '../bridge-contract.js';
|
|
2
2
|
import type { SubagentDirectorKey } from './locales.js';
|
|
3
3
|
import type { RoleDraft, StoredRole } from './store-logic.js';
|
|
4
4
|
export interface RoleCardProps {
|
|
@@ -8,8 +8,8 @@ export interface RoleCardProps {
|
|
|
8
8
|
role: StoredRole;
|
|
9
9
|
/** Whether this role is the defaultRole. */
|
|
10
10
|
isDefault: boolean;
|
|
11
|
-
/**
|
|
12
|
-
|
|
11
|
+
/** Authorized routes (the only selectable provider/model pairs). */
|
|
12
|
+
routes: readonly DirectorAllowedRoute[];
|
|
13
13
|
/** Distinct model-visible tool names (for the tool-set row). */
|
|
14
14
|
tools: readonly string[];
|
|
15
15
|
/** Section copy. */
|
|
@@ -21,5 +21,5 @@ export interface RoleCardProps {
|
|
|
21
21
|
/** Promote this role to default; returns a localized failure message or undefined. */
|
|
22
22
|
onSetDefault: () => Promise<string | undefined>;
|
|
23
23
|
}
|
|
24
|
-
export declare function RoleCard({ id, role, isDefault,
|
|
24
|
+
export declare function RoleCard({ id, role, isDefault, routes, tools, t, onSave, onDelete, onSetDefault }: RoleCardProps): JSX.Element;
|
|
25
25
|
//# sourceMappingURL=RoleCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoleCard.d.ts","sourceRoot":"","sources":["../../src/client/RoleCard.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RoleCard.d.ts","sourceRoot":"","sources":["../../src/client/RoleCard.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAe9D,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,4BAA4B;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,4CAA4C;IAC5C,SAAS,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxC,gEAAgE;IAChE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,oBAAoB;IACpB,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,MAAM,CAAC;IACxC,+EAA+E;IAC/E,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1D,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC5C,sFAAsF;IACtF,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACjD;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CA4J9H"}
|
package/lib/client/RoleCard.js
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
/** One role template card: read-only summary plus an inline editor.
|
|
3
|
-
* Provider/model
|
|
4
|
-
*
|
|
3
|
+
* Provider/model picks are limited to the routes authorized in the official
|
|
4
|
+
* Subagent model-selection list; reasoning effort is a free-text field (the
|
|
5
|
+
* alpha.4 client has no effort catalog). Writes go through the controller as
|
|
6
|
+
* path ops, and failures return a localized message. */
|
|
5
7
|
import { useState } from 'react';
|
|
8
|
+
import { modelsForProvider, providerNames } from './allowed-routes.js';
|
|
6
9
|
import { ToolSetPicker } from './ToolSetPicker.js';
|
|
7
10
|
import { cardStyle, dangerButtonStyle, fieldLabelStyle, ghostButtonStyle, primaryButtonStyle, rowStyle, selectStyle, textAreaStyle, textInputStyle, token, } from './ui.js';
|
|
8
|
-
function
|
|
9
|
-
if (!provider || !model)
|
|
10
|
-
return [];
|
|
11
|
-
const group = groups.find((g) => g.id === provider);
|
|
12
|
-
const entry = group?.models.find((m) => m.id === model);
|
|
13
|
-
return entry?.reasoning?.efforts ?? [];
|
|
14
|
-
}
|
|
15
|
-
export function RoleCard({ id, role, isDefault, groups, tools, t, onSave, onDelete, onSetDefault }) {
|
|
11
|
+
export function RoleCard({ id, role, isDefault, routes, tools, t, onSave, onDelete, onSetDefault }) {
|
|
16
12
|
const [editing, setEditing] = useState(false);
|
|
17
13
|
const [busy, setBusy] = useState(false);
|
|
18
14
|
const [failure, setFailure] = useState(undefined);
|
|
@@ -27,8 +23,8 @@ export function RoleCard({ id, role, isDefault, groups, tools, t, onSave, onDele
|
|
|
27
23
|
});
|
|
28
24
|
const provider = draft.provider || role.provider;
|
|
29
25
|
const model = draft.model || role.model;
|
|
30
|
-
const
|
|
31
|
-
const
|
|
26
|
+
const providers = providerNames(routes);
|
|
27
|
+
const modelOptions = provider ? modelsForProvider(routes, provider) : [];
|
|
32
28
|
const save = async () => {
|
|
33
29
|
setBusy(true);
|
|
34
30
|
setFailure(undefined);
|
|
@@ -63,7 +59,7 @@ export function RoleCard({ id, role, isDefault, groups, tools, t, onSave, onDele
|
|
|
63
59
|
};
|
|
64
60
|
const allowList = draft.toolFilter?.allow ?? [];
|
|
65
61
|
if (editing) {
|
|
66
|
-
return (_jsxs("div", { style: cardStyle, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'baseline', gap: 8 }, children: [_jsx("strong", { style: { color: token.labelPrimary, fontSize: 14 }, children: t('roleDisplayName') }), isDefault ? _jsx("span", { style: { color: token.accent, fontSize: 12 }, children: t('defaultRoleBadge') }) : null] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('roleDisplayName') }), _jsx("input", { style: textInputStyle, value: draft.displayName, placeholder: t('displayNamePlaceholder'), onChange: (e) => setField('displayName', e.target.value) })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('roleDescription') }), _jsx("textarea", { style: textAreaStyle, value: draft.description, placeholder: t('descriptionPlaceholder'), onChange: (e) => setField('description', e.target.value) })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('rolePersona') }), _jsx("textarea", { style: textAreaStyle, value: draft.persona, placeholder: t('personaPlaceholder'), onChange: (e) => setField('persona', e.target.value) })] }), _jsxs("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(3, minmax(0, 1fr))', gap: 8 }, children: [_jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('provider') }), _jsxs("select", { style: selectStyle, value: draft.provider, disabled:
|
|
62
|
+
return (_jsxs("div", { style: cardStyle, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'baseline', gap: 8 }, children: [_jsx("strong", { style: { color: token.labelPrimary, fontSize: 14 }, children: t('roleDisplayName') }), isDefault ? _jsx("span", { style: { color: token.accent, fontSize: 12 }, children: t('defaultRoleBadge') }) : null] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('roleDisplayName') }), _jsx("input", { style: textInputStyle, value: draft.displayName, placeholder: t('displayNamePlaceholder'), onChange: (e) => setField('displayName', e.target.value) })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('roleDescription') }), _jsx("textarea", { style: textAreaStyle, value: draft.description, placeholder: t('descriptionPlaceholder'), onChange: (e) => setField('description', e.target.value) })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('rolePersona') }), _jsx("textarea", { style: textAreaStyle, value: draft.persona, placeholder: t('personaPlaceholder'), onChange: (e) => setField('persona', e.target.value) })] }), _jsxs("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(3, minmax(0, 1fr))', gap: 8 }, children: [_jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('provider') }), _jsxs("select", { style: selectStyle, value: draft.provider, disabled: providers.length === 0, onChange: (e) => setField('provider', e.target.value), children: [_jsx("option", { value: "", children: "\u2014" }), providers.map((id) => (_jsx("option", { value: id, children: id }, id)))] })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('model') }), _jsxs("select", { style: selectStyle, value: draft.model, disabled: modelOptions.length === 0, onChange: (e) => setField('model', e.target.value), children: [_jsx("option", { value: "", children: "\u2014" }), modelOptions.map((m) => (_jsx("option", { value: m.model, children: m.label }, m.model)))] })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('reasoningEffort') }), _jsx("input", { style: textInputStyle, value: draft.reasoningEffort, placeholder: "(advisory)", onChange: (e) => setField('reasoningEffort', e.target.value) })] })] }), _jsx("div", { style: rowStyle, children: _jsx(ToolSetPicker, { tools: tools, selected: allowList, t: t, onChange: (allow) => setDraft((d) => ({ ...d, toolFilter: { allow } })) }) }), failure !== undefined ? _jsx("div", { style: { color: token.danger, fontSize: 12 }, children: failure }) : null, _jsxs("div", { style: { display: 'flex', gap: 8 }, children: [_jsx("button", { style: primaryButtonStyle, disabled: busy, onClick: save, children: t('save') }), _jsx("button", { style: ghostButtonStyle, disabled: busy, onClick: () => setEditing(false), children: t('cancel') })] })] }));
|
|
67
63
|
}
|
|
68
64
|
return (_jsxs("div", { style: cardStyle, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'baseline', justifyContent: 'space-between', gap: 8 }, children: [_jsx("strong", { style: { color: token.labelPrimary, fontSize: 14 }, children: role.displayName || id }), _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 6 }, children: [_jsx("span", { style: { color: token.labelTertiary, fontSize: 12, fontVariantNumeric: 'tabular-nums' }, children: id }), isDefault ? _jsx("span", { style: { color: token.accent, fontSize: 12 }, children: t('defaultRoleBadge') }) : null] })] }), role.description ? (_jsx("p", { style: { margin: 0, color: token.labelSecondary, fontSize: 13, lineHeight: '18px' }, children: role.description })) : null, _jsxs("div", { style: { display: 'flex', flexWrap: 'wrap', gap: 8 }, children: [_jsx(Metadata, { label: t('provider'), value: role.provider }), _jsx(Metadata, { label: t('model'), value: role.model }), _jsx(Metadata, { label: t('reasoningEffort'), value: role.reasoningEffort }), role.persona ? _jsx(Metadata, { label: t('persona'), value: role.persona }) : null, role.toolFilter?.allow?.length ? (_jsx(Metadata, { label: t('toolFilter'), value: role.toolFilter.allow.join(', ') })) : null] }), failure !== undefined ? _jsx("div", { style: { color: token.danger, fontSize: 12 }, children: failure }) : null, _jsxs("div", { style: { display: 'flex', gap: 8 }, children: [_jsx("button", { style: ghostButtonStyle, disabled: busy, onClick: () => setEditing(true), children: t('edit') }), _jsx("button", { style: ghostButtonStyle, disabled: busy || isDefault, onClick: () => (void onSetDefault(), undefined), children: t('setDefaultRole') }), _jsx("button", { style: dangerButtonStyle, disabled: busy, onClick: remove, children: t('deleteRole') })] })] }));
|
|
69
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoleCard.js","sourceRoot":"","sources":["../../src/client/RoleCard.tsx"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"RoleCard.js","sourceRoot":"","sources":["../../src/client/RoleCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,6 @@ export interface SubagentOptionsSectionInjected {
|
|
|
8
8
|
controller: SubagentOptionsStore;
|
|
9
9
|
/** uSES subscription hook bound to the store. */
|
|
10
10
|
useSnapshot: SnapshotSelectorHook<SubagentOptionsState>;
|
|
11
|
-
/** Wire faces the page writes through (kept for parity with the slot contract). */
|
|
12
|
-
api: unknown;
|
|
13
11
|
/** Section copy. */
|
|
14
12
|
t: (key: SubagentDirectorKey) => string;
|
|
15
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubagentOptionsSection.d.ts","sourceRoot":"","sources":["../../src/client/SubagentOptionsSection.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"SubagentOptionsSection.d.ts","sourceRoot":"","sources":["../../src/client/SubagentOptionsSection.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAG/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAkB7E,+EAA+E;AAC/E,MAAM,WAAW,8BAA8B;IAC3C,2EAA2E;IAC3E,UAAU,EAAE,oBAAoB,CAAC;IACjC,iDAAiD;IACjD,WAAW,EAAE,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;IACxD,oBAAoB;IACpB,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,MAAM,CAAC;CAC3C;AAED,uEAAuE;AACvE,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAAC,8BAA8B,CAAC,GAAG;IAChF,6EAA6E;IAC7E,WAAW,CAAC,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;CACxD,CAAC;AASF;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAI7F"}
|
|
@@ -12,18 +12,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
12
12
|
* a localized message that the save/delete/restore controls surface inline.
|
|
13
13
|
*/
|
|
14
14
|
import { useEffect, useRef, useState } from 'react';
|
|
15
|
+
import { modelsForProvider, providerNames } from './allowed-routes.js';
|
|
15
16
|
import { roleIdFromName } from './store-logic.js';
|
|
16
17
|
import { RoleCard } from './RoleCard.js';
|
|
17
18
|
import { ToolSetPicker } from './ToolSetPicker.js';
|
|
18
19
|
import { cardStyle, fieldLabelStyle, ghostButtonStyle, primaryButtonStyle, rowStyle, sectionWidth, selectStyle, textAreaStyle, textInputStyle, token, } from './ui.js';
|
|
19
|
-
/** Derive reasoning-effort options from the catalog for an exact provider+model. */
|
|
20
|
-
function effortsFor(groups, provider, model) {
|
|
21
|
-
if (!provider || !model)
|
|
22
|
-
return [];
|
|
23
|
-
const group = groups.find((g) => g.id === provider);
|
|
24
|
-
const entry = group?.models.find((m) => m.id === model);
|
|
25
|
-
return entry?.reasoning?.efforts ?? [];
|
|
26
|
-
}
|
|
27
20
|
/**
|
|
28
21
|
* Render the Subagent Director settings section content column.
|
|
29
22
|
* @param props - slot-delivered injected dependencies.
|
|
@@ -68,16 +61,16 @@ function Loaded({ injected }) {
|
|
|
68
61
|
const writable = state.writable;
|
|
69
62
|
const roles = section?.roles ?? {};
|
|
70
63
|
const entries = Object.entries(roles);
|
|
71
|
-
const
|
|
64
|
+
const routes = state.allowedRoutes;
|
|
72
65
|
const tools = state.tools;
|
|
73
|
-
return (_jsxs("div", { style: sectionWidth, children: [_jsx("p", { style: { margin: 0, color: token.labelSecondary, fontSize: 13, lineHeight: '18px' }, children: t('sectionIntro') }), _jsx(DefaultModelRow, { controller: controller,
|
|
66
|
+
return (_jsxs("div", { style: sectionWidth, children: [_jsx("p", { style: { margin: 0, color: token.labelSecondary, fontSize: 13, lineHeight: '18px' }, children: t('sectionIntro') }), _jsx(DefaultModelRow, { controller: controller, routes: routes, modelSelectionEnabled: state.modelSelectionEnabled, writable: writable, current: {
|
|
74
67
|
provider: section?.defaultProvider,
|
|
75
68
|
model: section?.defaultModel,
|
|
76
69
|
reasoningEffort: section?.defaultReasoningEffort,
|
|
77
|
-
}, t: t }), _jsx(RolesBlock, { controller: controller,
|
|
70
|
+
}, t: t }), _jsx(RolesBlock, { controller: controller, routes: routes, tools: tools, writable: writable, roles: entries, defaultRole: section?.defaultRole, t: t })] }));
|
|
78
71
|
}
|
|
79
72
|
/** The default-model row: provider → model → reasoning-effort cascade + restore. */
|
|
80
|
-
function DefaultModelRow({ controller,
|
|
73
|
+
function DefaultModelRow({ controller, routes, modelSelectionEnabled, writable, current, t }) {
|
|
81
74
|
const [draft, setDraft] = useState({
|
|
82
75
|
provider: current.provider ?? '',
|
|
83
76
|
model: current.model ?? '',
|
|
@@ -101,8 +94,9 @@ function DefaultModelRow({ controller, groups, writable, current, t }) {
|
|
|
101
94
|
}, [current.provider, current.model, current.reasoningEffort]);
|
|
102
95
|
const provider = draft.provider;
|
|
103
96
|
const model = draft.model;
|
|
104
|
-
const
|
|
105
|
-
const
|
|
97
|
+
const providers = providerNames(routes);
|
|
98
|
+
const modelOptions = provider ? modelsForProvider(routes, provider) : [];
|
|
99
|
+
const noAllowed = routes.length === 0;
|
|
106
100
|
const save = async () => {
|
|
107
101
|
setBusy(true);
|
|
108
102
|
setFailure(undefined);
|
|
@@ -137,10 +131,10 @@ function DefaultModelRow({ controller, groups, writable, current, t }) {
|
|
|
137
131
|
setBusy(false);
|
|
138
132
|
}
|
|
139
133
|
};
|
|
140
|
-
return (_jsxs("div", { style: cardStyle, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'baseline', justifyContent: 'space-between', gap: 8 }, children: [_jsx("strong", { style: { color: token.labelPrimary, fontSize: 14 }, children: t('defaultsHeading') }), _jsx("button", { style: ghostButtonStyle, disabled: !writable || busy, onClick: () => void restore(), children: t('restoreDefaults') })] }), _jsx("p", { style: { margin: 0, color: token.labelSecondary, fontSize: 13, lineHeight: '18px' }, children: t('defaultsHint') }), _jsxs("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(3, minmax(0, 1fr))', gap: 8 }, children: [_jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('defaultProvider') }), _jsxs("select", { style: selectStyle, value: draft.provider, disabled: !writable ||
|
|
134
|
+
return (_jsxs("div", { style: cardStyle, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'baseline', justifyContent: 'space-between', gap: 8 }, children: [_jsx("strong", { style: { color: token.labelPrimary, fontSize: 14 }, children: t('defaultsHeading') }), _jsx("button", { style: ghostButtonStyle, disabled: !writable || busy, onClick: () => void restore(), children: t('restoreDefaults') })] }), _jsx("p", { style: { margin: 0, color: token.labelSecondary, fontSize: 13, lineHeight: '18px' }, children: t('defaultsHint') }), noAllowed ? (_jsx("p", { style: { margin: '6px 0 0', color: token.danger, fontSize: 12, lineHeight: '16px' }, children: t('noAllowedModels') })) : null, _jsxs("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(3, minmax(0, 1fr))', gap: 8 }, children: [_jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('defaultProvider') }), noAllowed ? (_jsx("div", { style: { color: token.labelSecondary, fontSize: 12 }, children: "\u2014" })) : (_jsxs("select", { style: selectStyle, value: draft.provider, disabled: !writable || providers.length === 0, onChange: (e) => setDraft((d) => ({ provider: e.target.value, model: '', reasoningEffort: '' })), children: [_jsx("option", { value: "", children: "\u2014" }), providers.map((id) => (_jsx("option", { value: id, children: id }, id)))] }))] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('defaultModel') }), noAllowed ? (_jsx("div", { style: { color: token.labelSecondary, fontSize: 12 }, children: "\u2014" })) : (_jsxs("select", { style: selectStyle, value: draft.model, disabled: !writable || modelOptions.length === 0, onChange: (e) => setDraft((d) => ({ ...d, model: e.target.value, reasoningEffort: '' })), children: [_jsx("option", { value: "", children: "\u2014" }), modelOptions.map((m) => (_jsx("option", { value: m.model, children: m.label }, m.model)))] }))] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('defaultReasoningEffort') }), _jsx("input", { style: textInputStyle, value: draft.reasoningEffort, disabled: !writable, placeholder: modelSelectionEnabled ? '' : '(advisory)', onChange: (e) => setDraft((d) => ({ ...d, reasoningEffort: e.target.value })) })] })] }), failure !== undefined ? _jsx("div", { style: { color: token.danger, fontSize: 12 }, children: failure }) : null, done ? _jsx("div", { style: { color: token.accent, fontSize: 12 }, children: t('restoreDone') }) : null, _jsx("div", { style: { display: 'flex', gap: 8 }, children: _jsx("button", { style: primaryButtonStyle, disabled: !writable || busy, onClick: () => void save(), children: t('save') }) })] }));
|
|
141
135
|
}
|
|
142
136
|
/** The role-template roster: cards plus an inline add form. */
|
|
143
|
-
function RolesBlock({ controller,
|
|
137
|
+
function RolesBlock({ controller, routes, tools, writable, roles, defaultRole, t }) {
|
|
144
138
|
const [adding, setAdding] = useState(false);
|
|
145
139
|
const [draft, setDraft] = useState({
|
|
146
140
|
displayName: '',
|
|
@@ -175,6 +169,6 @@ function RolesBlock({ controller, groups, tools, writable, roles, defaultRole, t
|
|
|
175
169
|
setBusy(false);
|
|
176
170
|
}
|
|
177
171
|
};
|
|
178
|
-
return (_jsxs("div", { style: cardStyle, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'baseline', justifyContent: 'space-between', gap: 8 }, children: [_jsx("strong", { style: { color: token.labelPrimary, fontSize: 14 }, children: t('rolesHeading') }), _jsx("button", { style: ghostButtonStyle, disabled: !writable || adding, onClick: beginAdd, children: t('addRole') })] }), _jsx("p", { style: { margin: 0, color: token.labelSecondary, fontSize: 13, lineHeight: '18px' }, children: t('rolesHint') }), adding ? (_jsxs("div", { style: { border: '1px dashed ' + token.border, borderRadius: 10, padding: 12, display: 'flex', flexDirection: 'column', gap: 10 }, children: [_jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('roleDisplayName') }), _jsx("input", { style: textInputStyle, value: draft.displayName, placeholder: t('displayNamePlaceholder'), onChange: (e) => setDraft((d) => ({ ...d, displayName: e.target.value })) })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('roleDescription') }), _jsx("textarea", { style: textAreaStyle, value: draft.description, placeholder: t('descriptionPlaceholder'), onChange: (e) => setDraft((d) => ({ ...d, description: e.target.value })) })] }), _jsx("div", { style: rowStyle, children: _jsx(ToolSetPicker, { tools: tools, selected: draft.toolFilter?.allow ?? [], t: t, onChange: (allow) => setDraft((d) => ({ ...d, toolFilter: { allow } })) }) }), failure !== undefined ? _jsx("div", { style: { color: token.danger, fontSize: 12 }, children: failure }) : null, _jsxs("div", { style: { display: 'flex', gap: 8 }, children: [_jsx("button", { style: primaryButtonStyle, disabled: !writable || busy, onClick: () => void saveAdd(), children: t('addRole') }), _jsx("button", { style: ghostButtonStyle, disabled: busy, onClick: () => setAdding(false), children: t('cancel') })] })] })) : null, roles.length === 0 && !adding ? (_jsx("p", { style: { margin: 0, color: token.labelSecondary, fontSize: 13 }, children: t('emptyRoles') })) : (roles.map(([id, role]) => (_jsx(RoleCard, { id: id, role: role, isDefault: defaultRole === id,
|
|
172
|
+
return (_jsxs("div", { style: cardStyle, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'baseline', justifyContent: 'space-between', gap: 8 }, children: [_jsx("strong", { style: { color: token.labelPrimary, fontSize: 14 }, children: t('rolesHeading') }), _jsx("button", { style: ghostButtonStyle, disabled: !writable || adding, onClick: beginAdd, children: t('addRole') })] }), _jsx("p", { style: { margin: 0, color: token.labelSecondary, fontSize: 13, lineHeight: '18px' }, children: t('rolesHint') }), adding ? (_jsxs("div", { style: { border: '1px dashed ' + token.border, borderRadius: 10, padding: 12, display: 'flex', flexDirection: 'column', gap: 10 }, children: [_jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('roleDisplayName') }), _jsx("input", { style: textInputStyle, value: draft.displayName, placeholder: t('displayNamePlaceholder'), onChange: (e) => setDraft((d) => ({ ...d, displayName: e.target.value })) })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('roleDescription') }), _jsx("textarea", { style: textAreaStyle, value: draft.description, placeholder: t('descriptionPlaceholder'), onChange: (e) => setDraft((d) => ({ ...d, description: e.target.value })) })] }), _jsx("div", { style: rowStyle, children: _jsx(ToolSetPicker, { tools: tools, selected: draft.toolFilter?.allow ?? [], t: t, onChange: (allow) => setDraft((d) => ({ ...d, toolFilter: { allow } })) }) }), failure !== undefined ? _jsx("div", { style: { color: token.danger, fontSize: 12 }, children: failure }) : null, _jsxs("div", { style: { display: 'flex', gap: 8 }, children: [_jsx("button", { style: primaryButtonStyle, disabled: !writable || busy, onClick: () => void saveAdd(), children: t('addRole') }), _jsx("button", { style: ghostButtonStyle, disabled: busy, onClick: () => setAdding(false), children: t('cancel') })] })] })) : null, roles.length === 0 && !adding ? (_jsx("p", { style: { margin: 0, color: token.labelSecondary, fontSize: 13 }, children: t('emptyRoles') })) : (roles.map(([id, role]) => (_jsx(RoleCard, { id: id, role: role, isDefault: defaultRole === id, routes: routes, tools: tools, t: t, onSave: (d) => controller.updateRole(id, role, d), onDelete: () => controller.removeRole(id), onSetDefault: () => controller.setDefaultRole(id) }, id))))] }));
|
|
179
173
|
}
|
|
180
174
|
//# sourceMappingURL=SubagentOptionsSection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubagentOptionsSection.js","sourceRoot":"","sources":["../../src/client/SubagentOptionsSection.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SubagentOptionsSection.js","sourceRoot":"","sources":["../../src/client/SubagentOptionsSection.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIpD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIvE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,aAAa,EACb,cAAc,EACd,KAAK,GACN,MAAM,SAAS,CAAC;AAyBjB;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAkC;IACrE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC1D,IAAI,UAAU,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC1F,OAAO,KAAC,MAAM,IAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,GAAI,CAAC;AAC7E,CAAC;AASD,SAAS,MAAM,CAAC,EAAE,QAAQ,EAAgC;IACtD,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,6EAA6E;IAC7E,qEAAqE;IACrE,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1G,MAAM,cAAc,GAAG,MAAM,CAAqB,SAAS,CAAC,CAAC;IAE7D,0EAA0E;IAC1E,8CAA8C;IAC9C,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,KAAK,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/E,uDAAuD;IAC3D,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAE7C,yEAAyE;IACzE,wEAAwE;IACxE,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI,SAAS,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;YACnE,cAAc,CAAC,OAAO,GAAG,SAAS,CAAC;YACnC,KAAK,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QACD,uDAAuD;IAC3D,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9B,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,CACH,eAAK,KAAK,EAAE,YAAY,aACpB,aAAG,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAG,CAAC,CAAC,WAAW,CAAC,QAAI,KAAK,CAAC,KAAK,IAAI,EAAE,IAAK,EAC1F,iBAAQ,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,UAAU,CAAC,IAAI,EAAE,YAAG,CAAC,CAAC,OAAO,CAAC,GAAU,IAC3F,CACT,CAAC;IACN,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,cAAK,KAAK,EAAE,YAAY,YAAE,YAAG,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAG,CAAC,CAAC,cAAc,CAAC,GAAK,GAAM,CAAC;IAC5H,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAA2B,CAAC;IAChE,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAE1B,OAAO,CACH,eAAK,KAAK,EAAE,YAAY,aACpB,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,YAAG,CAAC,CAAC,cAAc,CAAC,GAAK,EAC/G,KAAC,eAAe,IACZ,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,EAClD,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE;oBACL,QAAQ,EAAE,OAAO,EAAE,eAAe;oBAClC,KAAK,EAAE,OAAO,EAAE,YAAY;oBAC5B,eAAe,EAAE,OAAO,EAAE,sBAAsB;iBACnD,EACD,CAAC,EAAE,CAAC,GACN,EACF,KAAC,UAAU,IACP,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,OAAO,EAAE,WAAW,EACjC,CAAC,EAAE,CAAC,GACN,IACA,CACT,CAAC;AACN,CAAC;AAED,oFAAoF;AACpF,SAAS,eAAe,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAOzF;IACG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAkB;QAChD,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;QAC1B,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,EAAE;KACjD,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAqB,SAAS,CAAC,CAAC;IACtE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,6EAA6E;IAC7E,4EAA4E;IAC5E,2CAA2C;IAC3C,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,IAAI;YAAE,OAAO;QACjB,QAAQ,CAAC;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;YAChC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;YAC1B,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,EAAE;SACjD,CAAC,CAAC;QACH,uDAAuD;IAC3D,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IAE/D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAEtC,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,UAAU,CAAC,SAAS,CAAC,CAAC;QACtB,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC;gBAC7C,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,SAAS;gBACrC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,SAAS;gBAC/B,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,SAAS;aACtD,CAAC,CAAC;YACH,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,UAAU,CAAC,OAAO,CAAC,CAAC;gBACpB,OAAO;YACX,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;gBAAS,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,UAAU,CAAC,SAAS,CAAC,CAAC;QACtB,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,eAAe,EAAE,CAAC;YACnD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,UAAU,CAAC,OAAO,CAAC,CAAC;gBACpB,OAAO;YACX,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;gBAAS,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CACH,eAAK,KAAK,EAAE,SAAS,aACjB,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,EAAE,aAC5F,iBAAQ,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAG,CAAC,CAAC,iBAAiB,CAAC,GAAU,EAC3F,iBAAQ,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,QAAQ,IAAI,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,EAAE,YAAG,CAAC,CAAC,iBAAiB,CAAC,GAAU,IAC1H,EACN,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,YAAG,CAAC,CAAC,cAAc,CAAC,GAAK,EAC9G,SAAS,CAAC,CAAC,CAAC,CACT,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,YAAG,CAAC,CAAC,iBAAiB,CAAC,GAAK,CACrH,CAAC,CAAC,CAAC,IAAI,EACR,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,GAAG,EAAE,CAAC,EAAE,aACrF,eAAK,KAAK,EAAE,QAAQ,aAChB,gBAAO,KAAK,EAAE,eAAe,YAAG,CAAC,CAAC,iBAAiB,CAAC,GAAS,EAC5D,SAAS,CAAC,CAAC,CAAC,CACT,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,uBAAS,CACrE,CAAC,CAAC,CAAC,CACA,kBACI,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,KAAK,CAAC,QAAQ,EACrB,QAAQ,EAAE,CAAC,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAC7C,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC,aAEhG,iBAAQ,KAAK,EAAC,EAAE,uBAAW,EAC1B,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CACnB,iBAAiB,KAAK,EAAE,EAAE,YAAG,EAAE,IAAlB,EAAE,CAA0B,CAC5C,CAAC,IACG,CACZ,IACC,EACN,eAAK,KAAK,EAAE,QAAQ,aAChB,gBAAO,KAAK,EAAE,eAAe,YAAG,CAAC,CAAC,cAAc,CAAC,GAAS,EACzD,SAAS,CAAC,CAAC,CAAC,CACT,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,uBAAS,CACrE,CAAC,CAAC,CAAC,CACA,kBACI,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,CAAC,QAAQ,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAChD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC,aAExF,iBAAQ,KAAK,EAAC,EAAE,uBAAW,EAC1B,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACrB,iBAAsB,KAAK,EAAE,CAAC,CAAC,KAAK,YAAG,CAAC,CAAC,KAAK,IAAjC,CAAC,CAAC,KAAK,CAAoC,CAC3D,CAAC,IACG,CACZ,IACC,EACN,eAAK,KAAK,EAAE,QAAQ,aAChB,gBAAO,KAAK,EAAE,eAAe,YAAG,CAAC,CAAC,wBAAwB,CAAC,GAAS,EACpE,gBACI,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,KAAK,CAAC,eAAe,EAC5B,QAAQ,EAAE,CAAC,QAAQ,EACnB,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EACtD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,GAC/E,IACA,IACJ,EACL,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAG,OAAO,GAAO,CAAC,CAAC,CAAC,IAAI,EACjG,IAAI,CAAC,CAAC,CAAC,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAG,CAAC,CAAC,aAAa,CAAC,GAAO,CAAC,CAAC,CAAC,IAAI,EAC1F,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,YACnC,iBAAQ,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,QAAQ,IAAI,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,YAAG,CAAC,CAAC,MAAM,CAAC,GAAU,GAC9G,IACJ,CACT,CAAC;AACN,CAAC;AAED,+DAA+D;AAC/D,SAAS,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAQ/E;IACG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAY;QAC1C,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;KAC5B,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAqB,SAAS,CAAC,CAAC;IAEtE,MAAM,QAAQ,GAAG,GAAS,EAAE;QACxB,QAAQ,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACrI,UAAU,CAAC,SAAS,CAAC,CAAC;QACtB,SAAS,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,UAAU,CAAC,SAAS,CAAC,CAAC;QACtB,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAClD,MAAM,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,UAAU,CAAC,OAAO,CAAC,CAAC;gBACpB,OAAO;YACX,CAAC;YACD,SAAS,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;gBAAS,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CACH,eAAK,KAAK,EAAE,SAAS,aACjB,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,EAAE,aAC5F,iBAAQ,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAG,CAAC,CAAC,cAAc,CAAC,GAAU,EACxF,iBAAQ,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,QAAQ,IAAI,MAAM,EAAE,OAAO,EAAE,QAAQ,YAAG,CAAC,CAAC,SAAS,CAAC,GAAU,IACxG,EACN,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,YAAG,CAAC,CAAC,WAAW,CAAC,GAAK,EAE3G,MAAM,CAAC,CAAC,CAAC,CACN,eAAK,KAAK,EAAE,EAAE,MAAM,EAAE,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,aAClI,eAAK,KAAK,EAAE,QAAQ,aAChB,gBAAO,KAAK,EAAE,eAAe,YAAG,CAAC,CAAC,iBAAiB,CAAC,GAAS,EAC7D,gBACI,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,KAAK,CAAC,WAAW,EACxB,WAAW,EAAE,CAAC,CAAC,wBAAwB,CAAC,EACxC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,GAC3E,IACA,EACN,eAAK,KAAK,EAAE,QAAQ,aAChB,gBAAO,KAAK,EAAE,eAAe,YAAG,CAAC,CAAC,iBAAiB,CAAC,GAAS,EAC7D,mBACI,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,KAAK,CAAC,WAAW,EACxB,WAAW,EAAE,CAAC,CAAC,wBAAwB,CAAC,EACxC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,GAC3E,IACA,EACN,cAAK,KAAK,EAAE,QAAQ,YAChB,KAAC,aAAa,IACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,EACvC,CAAC,EAAE,CAAC,EACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,GACzE,GACA,EACL,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAG,OAAO,GAAO,CAAC,CAAC,CAAC,IAAI,EAClG,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,aACnC,iBAAQ,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,QAAQ,IAAI,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,EAAE,YAAG,CAAC,CAAC,SAAS,CAAC,GAAU,EACtH,iBAAQ,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,YAAG,CAAC,CAAC,QAAQ,CAAC,GAAU,IACtG,IACJ,CACT,CAAC,CAAC,CAAC,IAAI,EAEP,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAC7B,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAG,CAAC,CAAC,YAAY,CAAC,GAAK,CAC5F,CAAC,CAAC,CAAC,CACA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CACtB,KAAC,QAAQ,IAEL,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,WAAW,KAAK,EAAE,EAC7B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,CAAC,EAAE,CAAC,EACJ,MAAM,EAAE,CAAC,CAAY,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAC5D,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,EACzC,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,IAT5C,EAAE,CAUT,CACL,CAAC,CACL,IACC,CACT,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Allowed-route selection model for the alpha.4 client.
|
|
3
|
+
*
|
|
4
|
+
* The alpha.4 client no longer has a full llm model catalog RPC
|
|
5
|
+
* (`connection.api.llm` was removed), and Subagent Director must pick a
|
|
6
|
+
* provider/model ONLY from the routes the user authorized in the official
|
|
7
|
+
* `subagent-model-selection` section (the "Subagent" plugin-config model
|
|
8
|
+
* list). This module turns that route list into the option sets the settings
|
|
9
|
+
* page renders. Pure and framework-free so the rules are unit-testable.
|
|
10
|
+
*/
|
|
11
|
+
/** One exact provider/model route authorized in the Subagent config list. */
|
|
12
|
+
export interface AllowedRoute {
|
|
13
|
+
readonly provider: string;
|
|
14
|
+
readonly model: string;
|
|
15
|
+
}
|
|
16
|
+
/** One selectable option derived from an allowed route. */
|
|
17
|
+
export interface AllowedRouteOption {
|
|
18
|
+
readonly provider: string;
|
|
19
|
+
readonly model: string;
|
|
20
|
+
/** Stable display label for the exact route, e.g. "deepseek/deepseek-v4". */
|
|
21
|
+
readonly label: string;
|
|
22
|
+
}
|
|
23
|
+
/** One-line display label for an exact route. */
|
|
24
|
+
export declare function allowedRouteLabel(route: AllowedRoute): string;
|
|
25
|
+
/**
|
|
26
|
+
* Map the authorized route list to selectable options, preserving order and
|
|
27
|
+
* dropping duplicates of the exact same provider/model pair.
|
|
28
|
+
*/
|
|
29
|
+
export declare function buildRouteOptions(routes: readonly AllowedRoute[]): AllowedRouteOption[];
|
|
30
|
+
/** Unique providers in first-seen order, for the provider select. */
|
|
31
|
+
export declare function providerNames(routes: readonly AllowedRoute[]): string[];
|
|
32
|
+
/** The allowed options available for one exact provider, for the model select. */
|
|
33
|
+
export declare function modelsForProvider(routes: readonly AllowedRoute[], provider: string): AllowedRouteOption[];
|
|
34
|
+
//# sourceMappingURL=allowed-routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allowed-routes.d.ts","sourceRoot":"","sources":["../../src/client/allowed-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,iDAAiD;AACjD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAE7D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,kBAAkB,EAAE,CAUvF;AAED,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,EAAE,CASvE;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAEzG"}
|