@eddyskywalker/dsh-chatgpt-subscription 0.56.0 → 0.57.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 +10 -0
- package/lib/client.js +56 -0
- package/lib/client.js.map +1 -1
- package/lib/index.js +257 -25
- package/lib/types/client/locales-ru/progress-updates.d.ts.map +1 -1
- package/lib/types/client/progress-updates/locales.d.ts +8 -2
- package/lib/types/client/progress-updates/locales.d.ts.map +1 -1
- package/lib/types/client/progress-updates/settings-binding.d.ts +8 -1
- package/lib/types/client/progress-updates/settings-binding.d.ts.map +1 -1
- package/lib/types/client/progress-updates/settings-section.d.ts +2 -1
- package/lib/types/client/progress-updates/settings-section.d.ts.map +1 -1
- package/lib/types/compat.d.ts +1 -1
- package/lib/types/host/team-policy-cache-guard.d.ts +44 -0
- package/lib/types/host/team-policy-cache-guard.d.ts.map +1 -0
- package/lib/types/index.d.ts +14 -0
- package/lib/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/presets/dispatch/README.md +26 -6
- package/presets/dispatch/agent.cordis.yml +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.57.0 - 2026-11-03
|
|
6
|
+
|
|
7
|
+
- **[team] 与内置 Agent Teams 共存:修正 R0.5 判据,并把策略段改成尾部投递**
|
|
8
|
+
- **前提已变**:harness `#7519` 之后,Agent Teams 不再自己拥有队友创建与消息通道(`spawn_teammate` 已移除),消息与名册改为复用子代理工具;内置团队工具只剩共享任务板 `team_task_create/list/get/update`。旧 R0.5 的「`spawn_teammate` 或 `wait_agent` 任一在场就停」在本代恒真——`wait_agent` 正是 `dispatch` preset 自己挂的工具,每个会话首轮都会被误判为不可编排。
|
|
9
|
+
- R0.5 改为只按 `spawn_teammate` 判代:旧代运行时仍停下并把选择交给用户;现行运行时与调度模式并行,并写明「任务板只是记账,`dispatch_ledger` 仍是派发权威、R5 任务书仍是任务契约,ready 不等于开工,不得用 `reassign` 绕开 R6」。
|
|
10
|
+
- 新增 `team-policy-cache-guard`(默认开启,`teamPolicyCacheGuard`):装配时摘掉内置 `team:policy` 段并捕获官方当次原文,切开关时以尾部用户消息投递一次、关闭时补一条撤销通知;该段从未出现时只报一条 warn。与计划模式守卫同一套接缝,中途切团队开关不再改写 system prompt。
|
|
11
|
+
- 设置卡新增「智能体团队策略段」一行(zh/en/ru),语义与宿主 schema 一致(缺键=开)。
|
|
12
|
+
- **验证**:`npm run typecheck` 0 错误;全量 360 文件 / 6574 项,**6565 通过 / 9 跳过**;`lib/` 干净重建、`npm pack --dry-run` 与真机设置页视觉检查通过。
|
|
13
|
+
|
|
14
|
+
|
|
5
15
|
## 0.56.0 - 2026-11-03
|
|
6
16
|
|
|
7
17
|
- **[dispatch] L2 执行拓扑与同路由父 fork 策略**
|
package/lib/client.js
CHANGED
|
@@ -21499,6 +21499,8 @@ window.__ModuleLoader__.load({
|
|
|
21499
21499
|
settingsPlanModePipelineNote: "澄清访谈收敛后自动进入计划模式出计划,再交审批(仅调度模式生效);关闭后该模式会请用户手动输入 /plan",
|
|
21500
21500
|
settingsDispatchExecutionGuardName: "调度执行守卫",
|
|
21501
21501
|
settingsDispatchExecutionGuardNote: "执行期拦截子代理越权调用主控工具及等待子代理时的纯 sleep 空等;不改工具声明面,零损耗保护 Kimi 缓存",
|
|
21502
|
+
settingsTeamPolicyCacheGuardName: "智能体团队策略段",
|
|
21503
|
+
settingsTeamPolicyCacheGuardNote: "把内置 Agent Teams 的策略段从系统提示词摘掉,改为开启团队协作时以尾部消息投递一次;会话中途切开关不再刷掉整段前缀缓存(默认开启)",
|
|
21502
21504
|
settingsThresholdName: "催促阈值",
|
|
21503
21505
|
settingsThresholdNote: "连续这么多轮没有进展时,提醒 agent 汇报一次",
|
|
21504
21506
|
settingsLanguageName: "输出语言",
|
|
@@ -21546,6 +21548,8 @@ window.__ModuleLoader__.load({
|
|
|
21546
21548
|
settingsPlanModePipelineNote: "After the clarification interview converges, enter plan mode, write the plan and send it for approval (dispatch mode only); turning it off makes that mode ask the user to type /plan",
|
|
21547
21549
|
settingsDispatchExecutionGuardName: "Dispatch execution guard",
|
|
21548
21550
|
settingsDispatchExecutionGuardNote: "Block subagents from calling dispatcher-only tools at execution time and reject pure sleep waits while child agents run; keeps tool declarations untouched to protect the Kimi prefix cache",
|
|
21551
|
+
settingsTeamPolicyCacheGuardName: "Agent Teams policy section",
|
|
21552
|
+
settingsTeamPolicyCacheGuardNote: "Lift the built-in Agent Teams policy section out of the system prompt and deliver it as one tail message when team collaboration is switched on, so toggling mid-session no longer rebuilds the whole prefix cache (on by default)",
|
|
21549
21553
|
settingsThresholdName: "Nudge threshold",
|
|
21550
21554
|
settingsThresholdNote: "Remind the agent after this many rounds without an update",
|
|
21551
21555
|
settingsLanguageName: "Output language",
|
|
@@ -22930,6 +22934,8 @@ window.__ModuleLoader__.load({
|
|
|
22930
22934
|
settingsPlanModePipelineNote: "После схождения уточняющего интервью автоматически войти в режим плана, подготовить план и отправить его на утверждение (только в режиме диспетчера); если выключено, этот режим попросит пользователя ввести /plan вручную",
|
|
22931
22935
|
settingsDispatchExecutionGuardName: "Защита выполнения диспетчера",
|
|
22932
22936
|
settingsDispatchExecutionGuardNote: "Блокировать вызовы инструментов диспетчера субагентами во время выполнения и запрещать пустое ожидание sleep при активных дочерних агентах; не меняет объявления инструментов и сохраняет префиксный кеш Kimi",
|
|
22937
|
+
settingsTeamPolicyCacheGuardName: "Раздел политики Agent Teams",
|
|
22938
|
+
settingsTeamPolicyCacheGuardNote: "Убрать встроенный раздел политики Agent Teams из системного промпта и передавать его одним сообщением в хвосте при включении командной работы, чтобы переключение посреди сессии больше не пересобирало весь префиксный кеш (включено по умолчанию)",
|
|
22933
22939
|
settingsThresholdName: "Порог напоминания",
|
|
22934
22940
|
settingsThresholdNote: "Напомнить агенту после стольких раундов без отчёта",
|
|
22935
22941
|
settingsLanguageName: "Язык вывода",
|
|
@@ -55300,6 +55306,34 @@ window.__ModuleLoader__.load({
|
|
|
55300
55306
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M10 3 4.5 5.2v4.6c0 3.8 2.3 6.4 5.5 7.2 3.2-.8 5.5-3.4 5.5-7.2V5.2L10 3Z" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "m7.5 10 1.8 1.8 3.4-3.6" })]
|
|
55301
55307
|
});
|
|
55302
55308
|
}
|
|
55309
|
+
/**
|
|
55310
|
+
* 「Agent Teams 策略段」标记:一块带勾选行的共享任务板。
|
|
55311
|
+
* @returns 与其它行同规格的 20px 图标。
|
|
55312
|
+
*/
|
|
55313
|
+
function TeamBoardMark() {
|
|
55314
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
|
|
55315
|
+
viewBox: "0 0 20 20",
|
|
55316
|
+
width: "20",
|
|
55317
|
+
height: "20",
|
|
55318
|
+
fill: "none",
|
|
55319
|
+
stroke: "currentColor",
|
|
55320
|
+
strokeWidth: "1.6",
|
|
55321
|
+
strokeLinecap: "round",
|
|
55322
|
+
strokeLinejoin: "round",
|
|
55323
|
+
"aria-hidden": "true",
|
|
55324
|
+
children: [
|
|
55325
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("rect", {
|
|
55326
|
+
x: "3.5",
|
|
55327
|
+
y: "4.5",
|
|
55328
|
+
width: "13",
|
|
55329
|
+
height: "11",
|
|
55330
|
+
rx: "2"
|
|
55331
|
+
}),
|
|
55332
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "m6.5 8.4 1.4 1.4 2.4-2.6" }),
|
|
55333
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M12 8.6h2M6.5 12.8h7.5" })
|
|
55334
|
+
]
|
|
55335
|
+
});
|
|
55336
|
+
}
|
|
55303
55337
|
function PanelMark() {
|
|
55304
55338
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
|
|
55305
55339
|
viewBox: "0 0 20 20",
|
|
@@ -55378,6 +55412,7 @@ window.__ModuleLoader__.load({
|
|
|
55378
55412
|
const cacheWaitWarmup = value.cacheWaitWarmup !== false;
|
|
55379
55413
|
const planModePipeline = value.planModePipeline !== false;
|
|
55380
55414
|
const dispatchExecutionGuard = value.dispatchExecutionGuard !== false;
|
|
55415
|
+
const teamPolicyCacheGuard = value.teamPolicyCacheGuard !== false;
|
|
55381
55416
|
const threshold = typeof value.progressUpdatesNudgeThreshold === "number" ? value.progressUpdatesNudgeThreshold : 8;
|
|
55382
55417
|
const language = value.progressUpdatesLanguage === "zh" || value.progressUpdatesLanguage === "en" || value.progressUpdatesLanguage === "ru" ? value.progressUpdatesLanguage : "auto";
|
|
55383
55418
|
const [draft, setDraft] = (0, react.useState)(() => String(threshold));
|
|
@@ -55578,6 +55613,27 @@ window.__ModuleLoader__.load({
|
|
|
55578
55613
|
}
|
|
55579
55614
|
})
|
|
55580
55615
|
}),
|
|
55616
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(CardRow, {
|
|
55617
|
+
part: "settings-row-team-policy-cache-guard",
|
|
55618
|
+
brand: "#8a5a9e",
|
|
55619
|
+
mark: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TeamBoardMark, {}),
|
|
55620
|
+
name: translate("settingsTeamPolicyCacheGuardName"),
|
|
55621
|
+
note: failure?.row === "teamPolicyCacheGuard" ? failure.text : translate("settingsTeamPolicyCacheGuardNote"),
|
|
55622
|
+
danger: failure?.row === "teamPolicyCacheGuard",
|
|
55623
|
+
enabled: teamPolicyCacheGuard,
|
|
55624
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
55625
|
+
type: "button",
|
|
55626
|
+
role: "switch",
|
|
55627
|
+
"aria-checked": teamPolicyCacheGuard,
|
|
55628
|
+
"aria-label": translate("settingsTeamPolicyCacheGuardName"),
|
|
55629
|
+
className: "dsh-progress-switch",
|
|
55630
|
+
"data-dsh-part": "settings-team-policy-cache-guard-switch",
|
|
55631
|
+
disabled: !writable,
|
|
55632
|
+
onClick: () => {
|
|
55633
|
+
write("teamPolicyCacheGuard", "teamPolicyCacheGuard", !teamPolicyCacheGuard);
|
|
55634
|
+
}
|
|
55635
|
+
})
|
|
55636
|
+
}),
|
|
55581
55637
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(CardRow, {
|
|
55582
55638
|
part: "settings-row-threshold",
|
|
55583
55639
|
brand: "#2f9e6e",
|