@xdxer/dingtalk-agent 0.1.4-beta.16 → 0.1.4-beta.18
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 +42 -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 +30 -6
- 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 +14 -0
- package/skills/core/dingtalk-agent-eval/references/evidence-contract.md +21 -0
- package/skills/core/dingtalk-agent-eval/references/failure-to-case.md +35 -0
- package/skills/core/dingtalk-agent-eval/references/interactive-debug-channels.md +93 -0
- package/skills/core/dingtalk-agent-eval/references/local-connector-smoke.md +75 -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,48 @@
|
|
|
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.18 - 2026-07-20
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- `dingtalk-agent-eval/references/local-connector-smoke.md`: the local route for an Agent that is **not yet deployed** — a dedicated test robot driven by a `dws dev connect` connector against a local workspace. Covers egress ownership (`robot-connect`/`connector`), the workspace constraints that must hold before starting, a five-step runbook, `status=not_running` as the only teardown truth, and how it differs from the Robot Pool. It is explicitly not a fourth interactive channel: the other three test deployed artifacts.
|
|
10
|
+
- `dingtalk-agent-eval/references/failure-to-case.md`: how a real failure becomes a regression case — the iteration path, the CLI-versus-Skill discrimination rule ("would bypassing this produce a worse reply, or a wrong side effect?"), and how to set up the with/without and current/previous comparisons without letting ordering effects read as gains.
|
|
11
|
+
- The L0–L4 tier table with promotion rules now lives in the eval SKILL; the eight-item hard-gate checklist and the sandbox containment audit now live in `evidence-contract.md`; egress ownership and the Role Principal / Execution Subject / Input Channel split now live in `eval-topology.md`.
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Testing methods are consolidated into the eval skill as the single source of truth. `docs/SELF-TEST.md` loses 191 lines of method content and keeps only this repository's own evidence, baselines and historical conclusions; `docs/ARCHITECTURE.md` and the Multica `PLATFORM.md` converge to pointers. This fixes a real defect: `docs/` is not part of the npm tarball, so shipped skill text was pointing users at files their installation does not contain.
|
|
16
|
+
- The local smoke route no longer hardcodes `--channel claudecode`. It selects by whichever coding agent is actually installed, and states plainly that the Robot Pool still pins a single channel.
|
|
17
|
+
- Fixed an error in the eval SKILL channel table: channel B's egress owner is the platform-side Agent, not the connector.
|
|
18
|
+
- `dingtalk-agent-eval` 0.6.0 → 0.7.0.
|
|
19
|
+
|
|
20
|
+
### Release boundary
|
|
21
|
+
|
|
22
|
+
- Distribution is limited to the public npm `beta` dist-tag and a Git tag. No DingTalk write, robot binding, or Live canary was executed. Verification used targeted contract scenarios (20/28/34/56/62) plus a link check over the packaged skill tree, per the repository's current fast-verification discipline.
|
|
23
|
+
|
|
24
|
+
## 0.1.4-beta.17 - 2026-07-20
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
|
|
28
|
+
- 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.
|
|
29
|
+
- `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.
|
|
30
|
+
- 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.
|
|
31
|
+
- `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.
|
|
32
|
+
- Contract scenario 62 `SkillVersionDrift` covering the four drift states, the downgrade refusal and its `--allow-downgrade` recovery, doctor grading, and content-hash detection.
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- `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.
|
|
37
|
+
- 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.
|
|
38
|
+
- `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.
|
|
39
|
+
- `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.
|
|
40
|
+
- 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.
|
|
41
|
+
- 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.
|
|
42
|
+
|
|
43
|
+
### Release boundary
|
|
44
|
+
|
|
45
|
+
- 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.
|
|
46
|
+
|
|
5
47
|
## 0.1.4-beta.16 - 2026-07-20
|
|
6
48
|
|
|
7
49
|
### 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) {
|