@michengai/dsh-agency-agents 1.0.3 → 1.0.4
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 +6 -0
- package/CHANGELOG.zh-CN.md +6 -0
- package/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/RELEASE_NOTES.md +2 -12
- package/lib/index.js +1 -1
- package/lib/remote.js +1 -1
- package/lib/{src-AZLOac9G.js → src-D62nL1RE.js} +44 -12
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
This file records features and upgrade boundaries. npm and GitHub Releases remain the publication source of truth.
|
|
6
6
|
|
|
7
|
+
## 1.0.4 - 2026-09-25
|
|
8
|
+
|
|
9
|
+
### Fixes
|
|
10
|
+
|
|
11
|
+
- Agency Agents now starts on DSH 0.1.7-rc.1 installed globally on Linux or in Docker, and still reads the current settings.
|
|
12
|
+
|
|
7
13
|
## 1.0.3 - 2026-09-24
|
|
8
14
|
|
|
9
15
|
### Improvements
|
package/CHANGELOG.zh-CN.md
CHANGED
package/README.md
CHANGED
|
@@ -69,7 +69,7 @@ Retain `list_experts`, `summon_expert`, and `summon_experts`. Add `list_expert_t
|
|
|
69
69
|
- Team configuration lives in the host `agency-agents` settings namespace. Keep drafts on edit conflicts and review the latest configuration. Disabling or deleting teams does not disable experts or delete historical conversations.
|
|
70
70
|
- Experts cannot summon further experts or automatically add analysis rounds. Cancellation prevents queued starts; completed results and failures are reported separately.
|
|
71
71
|
|
|
72
|
-
> This README describes version 1.0.
|
|
72
|
+
> This README describes version 1.0.4; npm and GitHub Releases determine publication status. See the [changelog](CHANGELOG.md) for the full changes and [release notes](RELEASE_NOTES.md) for the bilingual release description. Upgrades retain expert settings. Back up settings before downgrading because older versions do not support teams.
|
|
73
73
|
## Screenshots
|
|
74
74
|
|
|
75
75
|
The screenshots below show the 1.0.0 interface in Chinese. Experts and expert teams share the same settings page.
|
package/README.zh-CN.md
CHANGED
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
- 团队配置保存在宿主 `agency-agents` 命名空间。编辑冲突保留草稿并提示核对最新配置;停用或删除团队不会停用专家,也不会删除历史会话。
|
|
70
70
|
- 专家不得继续召唤专家或自动追加分析轮次。取消会停止未启动任务;已有结果和失败原因分别报告。
|
|
71
71
|
|
|
72
|
-
> 本 README 描述 1.0.
|
|
72
|
+
> 本 README 描述 1.0.4,正式发行以 npm 和 GitHub Releases 为准。完整改动见[更新日志](CHANGELOG.zh-CN.md),双语版本说明见[发行说明](RELEASE_NOTES.md)。升级保留已有专家配置;回退旧版前先备份设置,旧版不具备团队功能。
|
|
73
73
|
## 界面预览
|
|
74
74
|
|
|
75
75
|
以下为 1.0.0 中文界面截图,专家与专家团共用同一个设置页面。
|
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,23 +1,13 @@
|
|
|
1
1
|
## 中文说明
|
|
2
2
|
|
|
3
|
-
### 体验优化
|
|
4
|
-
|
|
5
|
-
- 支持 DeepSeek Harness 0.1.7-rc.1,并继续兼容此前已支持的 RC 版本。
|
|
6
|
-
- 不再支持 Alpha 版本。
|
|
7
|
-
|
|
8
3
|
### 问题修复
|
|
9
4
|
|
|
10
|
-
- 在 DSH 0.1.7-rc.1
|
|
5
|
+
- 在 Linux 全局安装或 Docker 中的 DSH 0.1.7-rc.1 上也能正常启动,并继续读取当前设置。
|
|
11
6
|
|
|
12
7
|
---
|
|
13
8
|
|
|
14
9
|
## English
|
|
15
10
|
|
|
16
|
-
### Improvements
|
|
17
|
-
|
|
18
|
-
- Support DeepSeek Harness 0.1.7-rc.1, and keep the previously supported release candidates.
|
|
19
|
-
- Alpha releases are no longer supported.
|
|
20
|
-
|
|
21
11
|
### Fixes
|
|
22
12
|
|
|
23
|
-
-
|
|
13
|
+
- Agency Agents now starts on DSH 0.1.7-rc.1 installed globally on Linux or in Docker, and still reads the current settings.
|
package/lib/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as unquote, P as ZH_NAME, S as truncate, _ as resolveCatalogRoot, a as SUMMON_EXPERTS_MAX, b as stripBom, c as createAgencyPersonaSource, d as loadCatalog, f as mapPool, g as readLocalizedExpertPrompt, h as readExpertPrompt, i as SUMMON_EXPERTS_CONCURRENCY, l as inject, m as parseFrontmatter, n as Config, o as SUMMON_TASK_MAX_CHARS, p as name, r as DEFAULT_DIVISIONS, s as apply, t as AGENCY_PERSONA_SERVICE, u as liveSchemaField, v as resolveExpert, w as validateSummonSpecs, x as toSummonItemResult, y as sanitize } from "./src-
|
|
1
|
+
import { C as unquote, P as ZH_NAME, S as truncate, _ as resolveCatalogRoot, a as SUMMON_EXPERTS_MAX, b as stripBom, c as createAgencyPersonaSource, d as loadCatalog, f as mapPool, g as readLocalizedExpertPrompt, h as readExpertPrompt, i as SUMMON_EXPERTS_CONCURRENCY, l as inject, m as parseFrontmatter, n as Config, o as SUMMON_TASK_MAX_CHARS, p as name, r as DEFAULT_DIVISIONS, s as apply, t as AGENCY_PERSONA_SERVICE, u as liveSchemaField, v as resolveExpert, w as validateSummonSpecs, x as toSummonItemResult, y as sanitize } from "./src-D62nL1RE.js";
|
|
2
2
|
export { AGENCY_PERSONA_SERVICE, Config, DEFAULT_DIVISIONS, SUMMON_EXPERTS_CONCURRENCY, SUMMON_EXPERTS_MAX, SUMMON_TASK_MAX_CHARS, ZH_NAME, apply, createAgencyPersonaSource, inject, liveSchemaField, loadCatalog, mapPool, name, parseFrontmatter, readExpertPrompt, readLocalizedExpertPrompt, resolveCatalogRoot, resolveExpert, sanitize, stripBom, toSummonItemResult, truncate, unquote, validateSummonSpecs };
|
package/lib/remote.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as CUSTOM_EXPERT_SLUG, D as readHostLocale, E as formatHost, F as AGENCY_TEAM_SERVICE, I as teamInputSchema, L as teamSnapshotSchema, M as customExpertInputSchema, N as expertEditSchema, O as settingsNamespaceCompat, R as teamText, T as nativeTeamMemberName, g as readLocalizedExpertPrompt, h as readExpertPrompt, j as catalogSnapshotSchema, k as AGENCY_LIBRARY_SERVICE, t as AGENCY_PERSONA_SERVICE } from "./src-
|
|
1
|
+
import { A as CUSTOM_EXPERT_SLUG, D as readHostLocale, E as formatHost, F as AGENCY_TEAM_SERVICE, I as teamInputSchema, L as teamSnapshotSchema, M as customExpertInputSchema, N as expertEditSchema, O as settingsNamespaceCompat, R as teamText, T as nativeTeamMemberName, g as readLocalizedExpertPrompt, h as readExpertPrompt, j as catalogSnapshotSchema, k as AGENCY_LIBRARY_SERVICE, t as AGENCY_PERSONA_SERVICE } from "./src-D62nL1RE.js";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { Remote, TypertRemoteService } from "@deepseek-ai/dsh-typert-protocol";
|
|
4
4
|
//#region src/remote-contract.ts
|
|
@@ -2,7 +2,7 @@ import { createRequire } from "node:module";
|
|
|
2
2
|
import { createHash, randomUUID } from "node:crypto";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import * as dshSettings from "@deepseek-ai/dsh-settings";
|
|
5
|
-
import { existsSync, readFileSync } from "node:fs";
|
|
5
|
+
import { existsSync, readFileSync, realpathSync } from "node:fs";
|
|
6
6
|
import { open, readFile, readdir, stat } from "node:fs/promises";
|
|
7
7
|
import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
|
|
8
8
|
import schema from "@deepseek-ai/schemastery";
|
|
@@ -1617,13 +1617,49 @@ function settingsNamespaceCompat(value, module = dshSettings) {
|
|
|
1617
1617
|
return typeof legacy === "function" ? legacy(value) : value;
|
|
1618
1618
|
}
|
|
1619
1619
|
let hostSettingsModule;
|
|
1620
|
+
function missingHostModule(specifier) {
|
|
1621
|
+
const error = /* @__PURE__ */ new Error(`Cannot find module '${specifier}'`);
|
|
1622
|
+
error.code = "MODULE_NOT_FOUND";
|
|
1623
|
+
return error;
|
|
1624
|
+
}
|
|
1625
|
+
/** 宿主 bin 可能是符号链接,或停在 prefix/bin,模块实际在 prefix/lib/node_modules。 */
|
|
1626
|
+
function hostModuleAnchors(entry) {
|
|
1627
|
+
const resolved = resolve(entry);
|
|
1628
|
+
const anchors = [resolved];
|
|
1629
|
+
try {
|
|
1630
|
+
const real = realpathSync(resolved);
|
|
1631
|
+
if (real !== resolved) anchors.push(real);
|
|
1632
|
+
} catch {}
|
|
1633
|
+
const dir = dirname(resolved);
|
|
1634
|
+
anchors.push(join(dir, "..", "lib", "node_modules", "@deepseek-ai", "dsh", "package.json"), join(dir, "node_modules", "@deepseek-ai", "dsh", "package.json"));
|
|
1635
|
+
return anchors;
|
|
1636
|
+
}
|
|
1637
|
+
function hostRequireFor(specifier, entry = process.argv[1]) {
|
|
1638
|
+
if (entry === void 0 || entry === "") throw missingHostModule(specifier);
|
|
1639
|
+
let last = missingHostModule(specifier);
|
|
1640
|
+
for (const anchor of hostModuleAnchors(entry)) try {
|
|
1641
|
+
const hostRequire = createRequire(anchor);
|
|
1642
|
+
hostRequire.resolve(specifier);
|
|
1643
|
+
return hostRequire;
|
|
1644
|
+
} catch (error) {
|
|
1645
|
+
last = error;
|
|
1646
|
+
if (error.code !== "MODULE_NOT_FOUND") throw error;
|
|
1647
|
+
}
|
|
1648
|
+
throw last;
|
|
1649
|
+
}
|
|
1650
|
+
/** 从当前宿主安装位置加载模块。解析不到时抛出 MODULE_NOT_FOUND,不回退到插件自己的依赖。 */
|
|
1651
|
+
function loadHostModule(specifier, entry = process.argv[1]) {
|
|
1652
|
+
return hostRequireFor(specifier, entry)(specifier);
|
|
1653
|
+
}
|
|
1654
|
+
/** 只确认宿主模块能否解析,不执行包入口。 */
|
|
1655
|
+
function resolveHostModule(specifier, entry = process.argv[1]) {
|
|
1656
|
+
return hostRequireFor(specifier, entry).resolve(specifier);
|
|
1657
|
+
}
|
|
1620
1658
|
/** 旧 RC 的模块助手必须从宿主入口解析。插件自己的依赖可能更旧,不能用来判断当前宿主。 */
|
|
1621
1659
|
function settingsModuleFromHost() {
|
|
1622
1660
|
if (hostSettingsModule !== void 0) return hostSettingsModule;
|
|
1623
|
-
const entry = process.argv[1];
|
|
1624
|
-
if (entry === void 0 || entry === "") return hostSettingsModule = {};
|
|
1625
1661
|
try {
|
|
1626
|
-
hostSettingsModule =
|
|
1662
|
+
hostSettingsModule = loadHostModule("@deepseek-ai/dsh-settings");
|
|
1627
1663
|
} catch {
|
|
1628
1664
|
hostSettingsModule = {};
|
|
1629
1665
|
}
|
|
@@ -1709,10 +1745,8 @@ function profileHome(ctx) {
|
|
|
1709
1745
|
return fromEnv === void 0 || fromEnv === "" ? void 0 : fromEnv;
|
|
1710
1746
|
}
|
|
1711
1747
|
function parseHostYaml(text) {
|
|
1712
|
-
const entry = process.argv[1];
|
|
1713
|
-
if (entry === void 0 || entry === "") return void 0;
|
|
1714
1748
|
try {
|
|
1715
|
-
const yaml =
|
|
1749
|
+
const yaml = loadHostModule("yaml");
|
|
1716
1750
|
return typeof yaml.parse === "function" ? yaml.parse(text) : void 0;
|
|
1717
1751
|
} catch {
|
|
1718
1752
|
return;
|
|
@@ -2095,7 +2129,7 @@ function hostHasAgentTeam() {
|
|
|
2095
2129
|
if (agentTeamInstalled !== void 0) return agentTeamInstalled;
|
|
2096
2130
|
if (!process.argv[1]) return agentTeamInstalled = false;
|
|
2097
2131
|
try {
|
|
2098
|
-
|
|
2132
|
+
resolveHostModule("@deepseek-ai/dsh-experimental-agent-team");
|
|
2099
2133
|
return agentTeamInstalled = true;
|
|
2100
2134
|
} catch (error) {
|
|
2101
2135
|
if (error.code === "MODULE_NOT_FOUND") return agentTeamInstalled = false;
|
|
@@ -2665,12 +2699,10 @@ function liveSchemaField(field) {
|
|
|
2665
2699
|
const candidate = field;
|
|
2666
2700
|
return typeof candidate.volatile === "function" ? candidate.volatile() : void 0;
|
|
2667
2701
|
}
|
|
2668
|
-
/**
|
|
2702
|
+
/** 从当前宿主安装位置解析 schemastery。解析不到时不把插件依赖当成宿主能力。 */
|
|
2669
2703
|
function hostSchemastery() {
|
|
2670
|
-
const entry = process.argv[1];
|
|
2671
|
-
if (entry === void 0 || entry === "") return void 0;
|
|
2672
2704
|
try {
|
|
2673
|
-
const loaded =
|
|
2705
|
+
const loaded = loadHostModule("@deepseek-ai/schemastery");
|
|
2674
2706
|
const host = typeof loaded.string === "function" ? loaded : loaded.default;
|
|
2675
2707
|
if (host !== void 0 && liveSchemaField(host.string()) !== void 0) return host;
|
|
2676
2708
|
} catch {}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@michengai/dsh-agency-agents",
|
|
3
3
|
"description": "DSH Agency Agents — 为 DeepSeek Harness 提供 321 名可召唤的专业智能体 · 321 summonable domain experts for DeepSeek Harness",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.4",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@11.22.0",
|
|
7
7
|
"engines": {
|