@xdxer/dingtalk-agent 0.1.4-beta.16 → 0.1.4-beta.17
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 +23 -0
- package/README.en.md +1 -0
- package/README.md +1 -0
- package/dist/bin/dingtalk-agent.js +15 -8
- package/dist/bin/dingtalk-agent.js.map +1 -1
- package/dist/src/agent-audit.js +12 -5
- package/dist/src/agent-audit.js.map +1 -1
- package/dist/src/development-workspace.js +17 -3
- package/dist/src/development-workspace.js.map +1 -1
- package/dist/src/doctor.js +41 -6
- package/dist/src/doctor.js.map +1 -1
- package/dist/src/map.js +157 -0
- package/dist/src/map.js.map +1 -0
- package/dist/src/multica-deploy.js +76 -19
- package/dist/src/multica-deploy.js.map +1 -1
- package/dist/src/multica-provider.js +1 -1
- package/dist/src/multica-provider.js.map +1 -1
- package/dist/src/skill-manager.js +98 -10
- package/dist/src/skill-manager.js.map +1 -1
- package/dist/src/upgrade.js +23 -27
- package/dist/src/upgrade.js.map +1 -1
- package/dist/src/version.js +73 -0
- package/dist/src/version.js.map +1 -0
- package/docs/schemas/project.schema.json +1 -0
- package/lab/agent-eval/catalog.json +5 -5
- package/lab/agent-eval/classic-failures.json +2 -2
- package/lab/project-workspace/fake-multica-provider.mjs +17 -6
- package/lab/project-workspace/opencode-provider-suite.json +1 -1
- package/lab/schemas/agent-eval-catalog.schema.json +1 -1
- package/package.json +3 -2
- package/skills/core/dingtalk-agent-compose/SKILL.md +6 -3
- package/skills/core/dingtalk-agent-compose/evals/evals.json +11 -0
- package/skills/core/dingtalk-agent-eval/SKILL.md +16 -4
- package/skills/core/dingtalk-agent-eval/assets/eval-catalog.template.json +1 -1
- package/skills/core/dingtalk-agent-eval/evals/evals.json +22 -0
- package/skills/core/dingtalk-agent-eval/references/eval-topology.md +2 -0
- package/skills/core/dingtalk-agent-eval/references/evidence-contract.md +4 -0
- package/skills/core/dingtalk-agent-eval/references/interactive-debug-channels.md +93 -0
- package/skills/platforms/multica-dingtalk/PLATFORM.md +4 -2
- package/skills/platforms/multica-dingtalk/dingtalk-agent-boot-multica/SKILL.md +4 -4
- package/skills/platforms/multica-dingtalk/multica-external/SKILL.md +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@xdxer/dingtalk-agent` are documented here. The project follows semantic versioning; prerelease entries describe release candidates and do not imply that Live canaries or registry publication have completed.
|
|
4
4
|
|
|
5
|
+
## 0.1.4-beta.17 - 2026-07-20
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Interactive debug channels for a delivered Agent (`dingtalk-agent-eval/references/interactive-debug-channels.md`): three channels — platform CLI dispatch, your own DingTalk identity to a bound robot, and digital-employee identity (in development) — each with what it proves and explicitly does not prove, an A→B→C one-way escalation rule, and a four-way attribution tree for "no reply" (eligibility silence / channel not connected / runtime or task failure / genuinely wrong answer). The Compose skill hands off to eval after assembly instead of improvising acceptance criteria.
|
|
10
|
+
- `platform trace` as a first-class evidence surface: the managed platform's persisted execution trace (task and session id, reasoning, every tool call, `failure_reason`, the skills actually in effect) is the only surface that reliably catches "the reply reads correctly but the assembly is broken". Synced across the eval SKILL, the evidence contract, the topology table and the lab catalog schema enum.
|
|
11
|
+
- Skill version state model replacing a single boolean: `missing / current / modified / outdated / ahead / unknown`, backed by a whole-tree `contentHash` so a body edit that skips a version bump is still detected. `skill status` reports `installedVersion → skillVersion (state)`; `doctor` prints the same and folds already-installed platform skills into the report without letting opt-in skills affect `ready`; `dta upgrade` reports before/after/bundled/state per skill.
|
|
12
|
+
- `scripts/check-skill-versions.mjs`, wired into `release:check`: a skill whose body changed against the baseline without a version bump, or whose version regressed, fails the gate.
|
|
13
|
+
- Contract scenario 62 `SkillVersionDrift` covering the four drift states, the downgrade refusal and its `--allow-downgrade` recovery, doctor grading, and content-hash detection.
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- `dingtalk-agent-eval` joins the default skill suite. Testing methods are consolidated into that skill, so a machine without it has no path to any testing guidance; `setup` and `skill install` now install three skills.
|
|
18
|
+
- Skill updates fail closed: a local copy newer than the bundled one is refused unless `--allow-downgrade`, and every install/upgrade re-reads the canonical copy afterwards — exit code 0 with a non-`current` readback is now an error rather than a silent success.
|
|
19
|
+
- `multica-external` declares `metadata.version` for the first time. Without it the empty-string comparison was always true, so the skill reported `current` permanently and could never be upgraded.
|
|
20
|
+
- `src/version.ts` extracted so the npm package and skills share one semver implementation; prerelease comparison changed from whole-string collation to dot-identifier segments.
|
|
21
|
+
- OpenCode/Multica real acceptance chain (from the branch's earlier work): JSON-stringified prompts accepted, `agent.displayName` added, and the skill load smoke verified against a strict structured allowlist.
|
|
22
|
+
- Stale `skills/<name>/` paths left by the core/platforms reorganization corrected in AGENTS.md, CLAUDE.md, CONTRIBUTING.md, the eval catalog template and three lab fixtures; the frozen 2026-07-16 baselines are deliberately left untouched.
|
|
23
|
+
|
|
24
|
+
### Release boundary
|
|
25
|
+
|
|
26
|
+
- Distribution is limited to the public npm `beta` dist-tag and a Git tag. No DingTalk write, robot binding, or Live canary was executed for this release: the interactive-channel documentation is verified against source and CLI help output only, and the version mechanism is verified by deterministic contract scenarios. Live waivers from beta.9 remain unchanged.
|
|
27
|
+
|
|
5
28
|
## 0.1.4-beta.16 - 2026-07-20
|
|
6
29
|
|
|
7
30
|
### Added
|
package/README.en.md
CHANGED
|
@@ -158,6 +158,7 @@ dta agent audit \
|
|
|
158
158
|
| Install, upgrade, or troubleshoot | [Installation](docs/INSTALLATION.md) |
|
|
159
159
|
| Understand evaluation and evidence levels | [Self-test](docs/SELF-TEST.md) |
|
|
160
160
|
| Create or audit an Agent | [Compose Skill](skills/core/dingtalk-agent-compose/SKILL.md) |
|
|
161
|
+
| Test or debug a delivered Agent | [Eval Skill](skills/core/dingtalk-agent-eval/SKILL.md) |
|
|
161
162
|
| Read the shared behavior protocol | [Basic Behavior Skill](skills/core/dingtalk-basic-behavior/SKILL.md) |
|
|
162
163
|
| Copy a complete example | [Example Agents](examples/agents) |
|
|
163
164
|
|
package/README.md
CHANGED
|
@@ -158,6 +158,7 @@ dta agent audit \
|
|
|
158
158
|
| 安装、升级与排障 | [Installation](docs/INSTALLATION.md) |
|
|
159
159
|
| 理解评测与证据分层 | [Self-test](docs/SELF-TEST.md) |
|
|
160
160
|
| 创建或审计 Agent | [Compose Skill](skills/core/dingtalk-agent-compose/SKILL.md) |
|
|
161
|
+
| 测试或调试已交付的 Agent | [Eval Skill](skills/core/dingtalk-agent-eval/SKILL.md) |
|
|
161
162
|
| 查看公共行为协议 | [Basic Behavior Skill](skills/core/dingtalk-basic-behavior/SKILL.md) |
|
|
162
163
|
| 复制完整示例 | [Example Agents](examples/agents) |
|
|
163
164
|
|
|
@@ -57,7 +57,7 @@ dta —— 给 Agent 安装钉钉员工的基础行为和工作环境
|
|
|
57
57
|
· 从本地目录或钉钉文档加载身份、记忆和知识
|
|
58
58
|
|
|
59
59
|
开始使用:
|
|
60
|
-
dta setup 首次配置 CLI、DWS 和内置 Skill(基础行为 + Agent
|
|
60
|
+
dta setup 首次配置 CLI、DWS 和内置 Skill(基础行为 + Agent 装配 + 交付后评测)
|
|
61
61
|
dta bootstrap --json 为当前 Agent 会话加载工作区
|
|
62
62
|
dta agent enhance / audit 安全增强已有仓库,再审计定义、存储与 Skill 真加载
|
|
63
63
|
dta info / dta workspace doctor <name> 查看 Project 并只读诊断 Workspace
|
|
@@ -66,7 +66,7 @@ dta —— 给 Agent 安装钉钉员工的基础行为和工作环境
|
|
|
66
66
|
维护环境:
|
|
67
67
|
dta doctor 检查哪里没装好,并给出修复提示
|
|
68
68
|
dta upgrade 自升级,再重新检查完整环境
|
|
69
|
-
dta skill status
|
|
69
|
+
dta skill status 查看内置 Skill 的版本状态与三个客户端能否发现(可加 name 只查一个)
|
|
70
70
|
|
|
71
71
|
接入钉钉事件和可靠外发:dta help runtime
|
|
72
72
|
`;
|
|
@@ -683,25 +683,27 @@ async function main() {
|
|
|
683
683
|
allowPositionals: true,
|
|
684
684
|
options: {
|
|
685
685
|
name: { type: 'string' }, 'dry-run': { type: 'boolean' }, json: { type: 'boolean' },
|
|
686
|
+
'allow-downgrade': { type: 'boolean' },
|
|
686
687
|
},
|
|
687
688
|
});
|
|
688
689
|
if (positionals.length > 1)
|
|
689
690
|
fail('skill 最多接受一个 Skill name');
|
|
690
691
|
const name = o.name || positionals[0];
|
|
691
692
|
const dryRun = Boolean(o['dry-run']);
|
|
693
|
+
const allowDowngrade = Boolean(o['allow-downgrade']);
|
|
692
694
|
let out;
|
|
693
695
|
if (sub === 'install') {
|
|
694
696
|
out = name
|
|
695
|
-
? installGlobalSkill(PACKAGE_ROOT, { dryRun, name })
|
|
696
|
-
: installBundledSkills(PACKAGE_ROOT, { dryRun });
|
|
697
|
+
? installGlobalSkill(PACKAGE_ROOT, { dryRun, name, allowDowngrade })
|
|
698
|
+
: installBundledSkills(PACKAGE_ROOT, { dryRun, allowDowngrade });
|
|
697
699
|
}
|
|
698
700
|
else if (sub === 'status') {
|
|
699
701
|
out = name ? skillStatus(PACKAGE_ROOT, { dryRun, name }) : skillSuiteStatus(PACKAGE_ROOT, { dryRun });
|
|
700
702
|
}
|
|
701
703
|
else if (sub === 'upgrade') {
|
|
702
704
|
out = name
|
|
703
|
-
? upgradeGlobalSkill(PACKAGE_ROOT, { dryRun, name })
|
|
704
|
-
: upgradeBundledSkills(PACKAGE_ROOT, { dryRun });
|
|
705
|
+
? upgradeGlobalSkill(PACKAGE_ROOT, { dryRun, name, allowDowngrade })
|
|
706
|
+
: upgradeBundledSkills(PACKAGE_ROOT, { dryRun, allowDowngrade });
|
|
705
707
|
}
|
|
706
708
|
else if (sub === 'uninstall') {
|
|
707
709
|
out = name
|
|
@@ -1534,8 +1536,13 @@ function printSkillStatus(out, action, dryRun) {
|
|
|
1534
1536
|
console.log(`${prefix} ${verb}: ${out.name}`);
|
|
1535
1537
|
console.log(` manager=${out.manager} bundled=${out.bundled.skillVersion || '-'}`);
|
|
1536
1538
|
console.log(` canonical=${out.canonical.path}`);
|
|
1537
|
-
console.log(` installed=${out.canonical.exists}
|
|
1538
|
-
|
|
1539
|
+
console.log(` installed=${out.canonical.exists} ` +
|
|
1540
|
+
`${out.canonical.installedVersion || '—'} → ${out.bundled.skillVersion} ` +
|
|
1541
|
+
`state=${out.canonical.state}`);
|
|
1542
|
+
if (out.operation?.after) {
|
|
1543
|
+
console.log(` ${out.operation.before.installedVersion || '—'}(${out.operation.before.state})` +
|
|
1544
|
+
` → ${out.operation.after.installedVersion}(${out.operation.after.state})`);
|
|
1545
|
+
}
|
|
1539
1546
|
if (out.operation)
|
|
1540
1547
|
console.log(` delegated: ${out.operation.command}`);
|
|
1541
1548
|
for (const client of out.clients) {
|