refactor: reduce approval context overhead
CI / Client installer (macos-latest) (push) Canceled after 0s
CI / Client installer (ubuntu-latest) (push) Canceled after 0s
CI / Client installer (windows-latest) (push) Canceled after 0s
CI / test (22) (push) Canceled after 0s
CI / test (24) (push) Canceled after 0s
CI / release-smoke (push) Canceled after 0s
CI / Client installer (macos-latest) (push) Canceled after 0s
CI / Client installer (ubuntu-latest) (push) Canceled after 0s
CI / Client installer (windows-latest) (push) Canceled after 0s
CI / test (22) (push) Canceled after 0s
CI / test (24) (push) Canceled after 0s
CI / release-smoke (push) Canceled after 0s
This commit is contained in:
@@ -39,6 +39,7 @@ mkdirSync(join(clientStaging, "dist", "src"), { recursive: true });
|
||||
for (const name of ["bridge.js", "entrypoint.js", "client-installer.js", "approval-contract.js"]) {
|
||||
cpSync(resolve("dist", "src", name), join(clientStaging, "dist", "src", name));
|
||||
}
|
||||
cpSync(resolve("skills/dingtalk-approval"), join(clientStaging, "skill", "dingtalk-approval"), { recursive: true });
|
||||
const clientPackage = {
|
||||
name: "dingtalk-approval-client",
|
||||
version,
|
||||
@@ -48,7 +49,7 @@ const clientPackage = {
|
||||
"dingtalk-approval": "dist/src/client-installer.js",
|
||||
"dingtalk-approval-bridge": "dist/src/bridge.js",
|
||||
},
|
||||
files: ["dist/src"],
|
||||
files: ["dist/src", "skill/dingtalk-approval"],
|
||||
engines: { node: ">=22.13" },
|
||||
dependencies: {
|
||||
"@modelcontextprotocol/sdk": lockedVersion("@modelcontextprotocol/sdk"),
|
||||
|
||||
@@ -61,13 +61,18 @@ try {
|
||||
const body = readFileSync(join(root, "client", "package", String(target)), "utf8");
|
||||
if (!body.startsWith("#!/usr/bin/env node\n")) throw new Error(`客户端 CLI 缺少 Node shebang:${target}`);
|
||||
}
|
||||
if (!existsFile(join(root, "client", "package", "skill", "dingtalk-approval", "SKILL.md"))
|
||||
|| !existsFile(join(root, "client", "package", "skill", "dingtalk-approval", "references", "create-approval.md"))) {
|
||||
throw new Error("客户端包缺少完整 Skill 与创建审批 reference");
|
||||
}
|
||||
const offlineRoot = join(root, "offline-install");
|
||||
execFileSync("npm", [
|
||||
"install", "--prefix", offlineRoot, "--cache", join(root, "empty-cache"), "--offline",
|
||||
"--omit=dev", "--ignore-scripts", "--no-audit", "--no-fund", join(releaseDir, artifactName(manifest.artifacts.client, "client")),
|
||||
], { stdio: "pipe", env: { ...process.env, npm_config_update_notifier: "false" } });
|
||||
if (!existsFile(join(offlineRoot, "node_modules", "dingtalk-approval-client", "dist", "src", "bridge.js"))
|
||||
|| !existsFile(join(offlineRoot, "node_modules", "dingtalk-approval-client", "dist", "src", "approval-contract.js"))) {
|
||||
|| !existsFile(join(offlineRoot, "node_modules", "dingtalk-approval-client", "dist", "src", "approval-contract.js"))
|
||||
|| !existsFile(join(offlineRoot, "node_modules", "dingtalk-approval-client", "skill", "dingtalk-approval", "references", "create-approval.md"))) {
|
||||
throw new Error("签名客户端无法在空缓存中离线安装");
|
||||
}
|
||||
const installer = readFileSync(join(releaseDir, artifactName(manifest.artifacts.installer, "installer")), "utf8");
|
||||
|
||||
Reference in New Issue
Block a user