@numa-tech/numa 1.26.10 → 1.26.12
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/README.md +1 -1
- package/dist/ai-registry/skill-dependencies.d.ts +8 -0
- package/dist/ai-registry/skill-dependencies.js +13 -2
- package/dist/ai-registry/skill-dependencies.js.map +1 -1
- package/dist/ai-registry/update-batch.d.ts +9 -0
- package/dist/ai-registry/update-batch.js +258 -0
- package/dist/ai-registry/update-batch.js.map +1 -0
- package/dist/ai-registry/update-commands.js +3 -1
- package/dist/ai-registry/update-commands.js.map +1 -1
- package/dist/ai-registry/update-plan.d.ts +7 -2
- package/dist/ai-registry/update-plan.js +12 -7
- package/dist/ai-registry/update-plan.js.map +1 -1
- package/dist/ai-registry/update-report.js +20 -3
- package/dist/ai-registry/update-report.js.map +1 -1
- package/dist/ai-registry/updates.d.ts +4 -0
- package/dist/ai-registry/updates.js +16 -7
- package/dist/ai-registry/updates.js.map +1 -1
- package/dist/app-config.d.ts +1 -1
- package/dist/app-config.js +4 -3
- package/dist/app-config.js.map +1 -1
- package/dist/kb/client.js +2 -0
- package/dist/kb/client.js.map +1 -1
- package/dist/kb/commands.d.ts +8 -0
- package/dist/kb/commands.js +21 -1
- package/dist/kb/commands.js.map +1 -1
- package/docs/kb-access.md +10 -0
- package/docs/module-maintenance-and-skills-updates.md +32 -4
- package/docs/profile-v2-migration.md +12 -0
- package/package.json +6 -5
- package/skills/numa-wecom/SKILL.md +2 -2
- package/skills/numa-wecom/numa-skill.json +2 -2
- package/skills/numa-wecom/references/cli-bootstrap.md +2 -2
package/README.md
CHANGED
|
@@ -1448,7 +1448,7 @@ Numa 会清理项目更名前旧版本写入的自定义 `model_provider = "mcex
|
|
|
1448
1448
|
```bash
|
|
1449
1449
|
numa codex list --server https://code-inbox.mcisaas.com/api --tenant-id numa-realm
|
|
1450
1450
|
export NUMA_CODEX_SERVICE_URL=https://code-inbox.mcisaas.com/api
|
|
1451
|
-
numa config --set profileUrl=https://
|
|
1451
|
+
numa config --set profileUrl=https://apps-gw-prd.mcisaas.com/mci-devops-platform/public/v1/client-configurations/numa-realm
|
|
1452
1452
|
numa config --set apiBaseUrl=https://apps-gw-prd.mcisaas.com/mci-devops-platform
|
|
1453
1453
|
```
|
|
1454
1454
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import type { AiRegistryClient } from "./client.js";
|
|
3
|
+
import { AiRegistryError } from "./errors.js";
|
|
3
4
|
import { type SkillInstallOptions } from "./skill-installer.js";
|
|
4
5
|
export declare const SkillDependencySchema: z.ZodObject<{
|
|
5
6
|
name: z.ZodString;
|
|
@@ -15,6 +16,13 @@ export declare const SkillBundleSchema: z.ZodObject<{
|
|
|
15
16
|
}, z.core.$strict>>>;
|
|
16
17
|
}, z.core.$strict>;
|
|
17
18
|
export type SkillDependency = z.infer<typeof SkillDependencySchema>;
|
|
19
|
+
export interface SkillDependencyConsumer {
|
|
20
|
+
name: string;
|
|
21
|
+
version: string;
|
|
22
|
+
path: string;
|
|
23
|
+
requiredVersion: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function dependencyVersionConflict(name: string, targetVersion: string, consumers: SkillDependencyConsumer[]): AiRegistryError;
|
|
18
26
|
export declare const SkillDependencyChangeSchema: z.ZodObject<{
|
|
19
27
|
name: z.ZodString;
|
|
20
28
|
from: z.ZodOptional<z.ZodString>;
|
|
@@ -11,6 +11,9 @@ const version = z.string().regex(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/);
|
|
|
11
11
|
export const SkillDependencySchema = z.object({ name, version }).strict();
|
|
12
12
|
export const SkillBundleSchema = z.object({ schemaVersion: z.literal(1), name, version,
|
|
13
13
|
dependencies: z.array(SkillDependencySchema).max(16).default([]) }).strict();
|
|
14
|
+
export function dependencyVersionConflict(name, targetVersion, consumers) {
|
|
15
|
+
return new AiRegistryError(`Cannot update ${name}@${targetVersion}: ${consumers.map(c => `${c.name}@${c.version} requires ${name}@${c.requiredVersion}`).join("; ")}.`, "skills_dependency_version_conflict", undefined, undefined, { dependencyConflict: { name, targetVersion, consumers } });
|
|
16
|
+
}
|
|
14
17
|
export const SkillDependencyChangeSchema = z.object({ name, from: version.optional(), to: version.optional() });
|
|
15
18
|
export async function readSkillBundle(bytes, expected) {
|
|
16
19
|
const raw = await readSkillBundleMetadata(bytes);
|
|
@@ -150,10 +153,16 @@ export async function assertInstalledDependencies(bytes, installedPath, source,
|
|
|
150
153
|
}
|
|
151
154
|
export async function assertConsumersCompatible(name, nextVersion, installedPath, directory, approvedConsumers, includeUnmanaged = false) {
|
|
152
155
|
const records = [...(await readSkillUpdates(directory)).installations];
|
|
156
|
+
const conflicts = [];
|
|
153
157
|
if (includeUnmanaged) {
|
|
154
158
|
const root = await canonicalPath(dirname(installedPath));
|
|
155
159
|
const known = new Set(await Promise.all(records.map(r => canonicalPath(r.path))));
|
|
156
|
-
|
|
160
|
+
const entries = await readdir(root, { withFileTypes: true }).catch((error) => {
|
|
161
|
+
if (error.code === "ENOENT")
|
|
162
|
+
return [];
|
|
163
|
+
throw error;
|
|
164
|
+
});
|
|
165
|
+
for (const entry of entries) {
|
|
157
166
|
if (entry.name.startsWith(".") || (!entry.isDirectory() && !entry.isSymbolicLink()))
|
|
158
167
|
continue;
|
|
159
168
|
const path = join(root, entry.name);
|
|
@@ -180,8 +189,10 @@ export async function assertConsumersCompatible(name, nextVersion, installedPath
|
|
|
180
189
|
const bundle = SkillBundleSchema.parse(JSON.parse(raw));
|
|
181
190
|
const dep = (approvedConsumers?.get(await canonicalPath(r.path)) ?? bundle.dependencies).find(d => d.name === name);
|
|
182
191
|
if (dep && dep.version !== nextVersion)
|
|
183
|
-
|
|
192
|
+
conflicts.push({ name: r.name, version: bundle.version, path: r.path, requiredVersion: dep.version });
|
|
184
193
|
}
|
|
194
|
+
if (conflicts.length)
|
|
195
|
+
throw dependencyVersionConflict(name, nextVersion, conflicts);
|
|
185
196
|
}
|
|
186
197
|
export async function confirmSkillDependencies(plan, options, ask) {
|
|
187
198
|
if (options.confirmed)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-dependencies.js","sourceRoot":"","sources":["../../src/ai-registry/skill-dependencies.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill-dependencies.js","sourceRoot":"","sources":["../../src/ai-registry/skill-dependencies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AiRegistryClient } from "./client.js";
|
|
2
|
+
import { type SkillUpdateInstallationResult, type SkillUpdateRecord, type SkillUpdateRunOptions } from "./updates.js";
|
|
3
|
+
type Client = Pick<AiRegistryClient, "getCapabilities" | "resolveNamespace" | "getSkill" | "downloadSkill">;
|
|
4
|
+
/** Freeze all latest choices before writes; only connected installations share a transaction. */
|
|
5
|
+
export declare function updateInstalledSkillBatch(records: SkillUpdateRecord[], clientFor: (signal: AbortSignal) => Client, directory: string | undefined, options: SkillUpdateRunOptions): Promise<{
|
|
6
|
+
ok: boolean;
|
|
7
|
+
installations: SkillUpdateInstallationResult[];
|
|
8
|
+
}>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { AiRegistryError } from "./errors.js";
|
|
4
|
+
import { resolveRegistryNamespace } from "./namespace.js";
|
|
5
|
+
import { skillDirectoryDigest, skillArchiveContentDigest } from "./skill-installer.js";
|
|
6
|
+
import { assertUnchangedDependencies, canonicalPath, dependencyVersionConflict, resolveSkillDependencies, SkillBundleSchema } from "./skill-dependencies.js";
|
|
7
|
+
import { applySkillUpdate, prepareSkillGraph } from "./update-plan.js";
|
|
8
|
+
import { newerVersion, publishedLatest, readSkillUpdates, reportProgress, skillUpdatePlanCommand, verifyDownload } from "./updates.js";
|
|
9
|
+
function fail(candidate, error) {
|
|
10
|
+
candidate.result.status = "FAILED";
|
|
11
|
+
candidate.result.code = error instanceof AiRegistryError ? error.code : "skills_update_local_or_network_unavailable";
|
|
12
|
+
if (error instanceof AiRegistryError)
|
|
13
|
+
candidate.result.details = error.details;
|
|
14
|
+
}
|
|
15
|
+
/** Freeze all latest choices before writes; only connected installations share a transaction. */
|
|
16
|
+
export async function updateInstalledSkillBatch(records, clientFor, directory, options) {
|
|
17
|
+
reportProgress(options, { type: "start", total: records.length });
|
|
18
|
+
const candidates = [];
|
|
19
|
+
const clients = batchClientCache(clientFor);
|
|
20
|
+
for (const record of records) {
|
|
21
|
+
options.signal?.throwIfAborted();
|
|
22
|
+
const root = await canonicalPath(dirname(record.path));
|
|
23
|
+
const candidate = { record, root, paths: new Set([join(root, record.name)]), changes: [],
|
|
24
|
+
result: { id: record.id, name: record.name, agent: record.agent, path: record.path, namespace: record.namespace,
|
|
25
|
+
instance: record.instance, previousVersion: record.version, version: record.version,
|
|
26
|
+
status: "CURRENT", code: "skills_update_current" } };
|
|
27
|
+
candidates.push(candidate);
|
|
28
|
+
const stage = (value) => reportProgress(options, { type: "stage", installation: record, stage: value,
|
|
29
|
+
...(value === "downloading" || value === "verifying" ? { latestVersion: candidate.result.latestVersion } : {}) });
|
|
30
|
+
try {
|
|
31
|
+
stage("waiting");
|
|
32
|
+
stage("checking-local");
|
|
33
|
+
const raw = await readFile(join(record.path, "numa-skill.json"), "utf8").catch((error) => {
|
|
34
|
+
if (error.code === "ENOENT")
|
|
35
|
+
return undefined;
|
|
36
|
+
throw error;
|
|
37
|
+
});
|
|
38
|
+
if (raw)
|
|
39
|
+
for (const dep of SkillBundleSchema.parse(JSON.parse(raw)).dependencies)
|
|
40
|
+
candidate.paths.add(join(root, dep.name));
|
|
41
|
+
if (await skillDirectoryDigest(record.path) !== record.contentDigest) {
|
|
42
|
+
throw new AiRegistryError("Local changes preserved.", "skills_update_local_conflict");
|
|
43
|
+
}
|
|
44
|
+
const signal = AbortSignal.any([AbortSignal.timeout(60_000), ...(options.signal ? [options.signal] : [])]);
|
|
45
|
+
const client = clients(record, signal);
|
|
46
|
+
candidate.client = client;
|
|
47
|
+
stage("checking-latest");
|
|
48
|
+
const context = await resolveRegistryNamespace(client, { namespace: record.namespace, instance: record.instance, requiredAction: "install" });
|
|
49
|
+
if (context.namespace.id !== record.namespaceId || context.namespace.instanceId !== record.instanceId) {
|
|
50
|
+
throw new AiRegistryError("Namespace binding changed.", "skills_update_source_changed");
|
|
51
|
+
}
|
|
52
|
+
const version = publishedLatest(await client.getSkill(record.namespaceId, record.name), record.name);
|
|
53
|
+
candidate.result.latestVersion = version;
|
|
54
|
+
if (version === record.version && !options.plan)
|
|
55
|
+
continue;
|
|
56
|
+
if (version !== record.version && !newerVersion(version, record.version)) {
|
|
57
|
+
throw new AiRegistryError("Latest moved backwards.", "skills_update_downgrade_blocked");
|
|
58
|
+
}
|
|
59
|
+
stage("downloading");
|
|
60
|
+
const download = await client.downloadSkill(record.namespaceId, record.name, { version });
|
|
61
|
+
signal.throwIfAborted();
|
|
62
|
+
verifyDownload(download, version);
|
|
63
|
+
stage("verifying");
|
|
64
|
+
try {
|
|
65
|
+
await assertUnchangedDependencies(download.bytes, record.path);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
if (!(error instanceof AiRegistryError) || error.code !== "skills_dependency_confirmation_required")
|
|
69
|
+
throw error;
|
|
70
|
+
candidate.changes = error.details.dependencyChanges;
|
|
71
|
+
candidate.result.dependencyChanges = candidate.changes;
|
|
72
|
+
}
|
|
73
|
+
candidate.nodes = await resolveSkillDependencies(client, record.namespaceId, { name: record.name, version, download, dependencies: [] });
|
|
74
|
+
signal.throwIfAborted();
|
|
75
|
+
for (const node of candidate.nodes)
|
|
76
|
+
candidate.paths.add(join(root, node.name));
|
|
77
|
+
candidate.result.planCommand = skillUpdatePlanCommand(record);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
options.signal?.throwIfAborted();
|
|
81
|
+
fail(candidate, error);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Old and new edges both matter: a consumer removing a pin must be committed
|
|
85
|
+
// together with the dependency whose upgrade that removal permits.
|
|
86
|
+
const groups = [];
|
|
87
|
+
for (const candidate of candidates) {
|
|
88
|
+
const intersecting = groups.filter(group => group.some(other => other.root === candidate.root
|
|
89
|
+
&& [...candidate.paths].some(path => other.paths.has(path))));
|
|
90
|
+
const merged = [candidate, ...intersecting.flat()];
|
|
91
|
+
for (const group of intersecting)
|
|
92
|
+
groups.splice(groups.indexOf(group), 1);
|
|
93
|
+
groups.push(merged);
|
|
94
|
+
}
|
|
95
|
+
const finish = (group) => {
|
|
96
|
+
for (const candidate of group)
|
|
97
|
+
reportProgress(options, { type: "result", installation: candidate.result });
|
|
98
|
+
};
|
|
99
|
+
for (const group of groups) {
|
|
100
|
+
group.sort((a, b) => records.indexOf(a.record) - records.indexOf(b.record));
|
|
101
|
+
options.signal?.throwIfAborted();
|
|
102
|
+
const active = group.filter(c => c.nodes);
|
|
103
|
+
if (!active.length) {
|
|
104
|
+
finish(group);
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
for (const candidate of active)
|
|
108
|
+
candidate.result.planCommand = skillUpdatePlanCommand(candidate.record, group.map(c => c.record.id));
|
|
109
|
+
const broken = group.find(c => c.result.status === "FAILED");
|
|
110
|
+
if (broken) {
|
|
111
|
+
for (const candidate of active)
|
|
112
|
+
if (candidate !== broken)
|
|
113
|
+
fail(candidate, new AiRegistryError("Another installation in this dependency group could not be verified.", "skills_update_dependency_group_blocked", undefined, undefined, { blockedBy: { name: broken.record.name, code: broken.result.code } }));
|
|
114
|
+
finish(group);
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
let prepared;
|
|
118
|
+
try {
|
|
119
|
+
const leader = active[0];
|
|
120
|
+
if (active.some(c => c.record.namespaceId !== leader.record.namespaceId || c.record.instanceId !== leader.record.instanceId
|
|
121
|
+
|| c.record.namespace !== leader.record.namespace || c.record.instance !== leader.record.instance)) {
|
|
122
|
+
throw new AiRegistryError("A dependency group crosses source bindings.", "skills_update_source_changed");
|
|
123
|
+
}
|
|
124
|
+
const nodes = await mergeNodes(group);
|
|
125
|
+
const expected = new Map(group.map(c => [join(c.root, c.record.name), c.record]));
|
|
126
|
+
prepared = await prepareSkillGraph(leader.record, nodes, leader.client, directory, undefined, expected);
|
|
127
|
+
prepared.plan.name = active.map(c => c.record.name).join(", ");
|
|
128
|
+
if (active.length > 1)
|
|
129
|
+
prepared.plan.roots = active.map(c => ({ name: c.record.name, version: c.result.latestVersion, path: c.record.path }));
|
|
130
|
+
// One shared plan is shown once; per-root results still carry their exact versions.
|
|
131
|
+
for (const candidate of active)
|
|
132
|
+
candidate.result.plan = prepared.plan;
|
|
133
|
+
if (options.plan) {
|
|
134
|
+
for (const candidate of active) {
|
|
135
|
+
candidate.result.status = "PLANNED";
|
|
136
|
+
candidate.result.code = "skills_update_planned";
|
|
137
|
+
}
|
|
138
|
+
finish(group);
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
const consentRequired = active.some(c => c.changes.length)
|
|
142
|
+
|| prepared.plan.packages.some(p => p.adopt || p.action !== "REUSE" && !expected.has(p.path));
|
|
143
|
+
if (consentRequired) {
|
|
144
|
+
const consent = options.withDependencies && (!prepared.plan.packages.some(p => p.adopt) || options.adoptDependencies)
|
|
145
|
+
|| await options.confirmDependencies?.(prepared.plan);
|
|
146
|
+
options.signal?.throwIfAborted();
|
|
147
|
+
if (!consent) {
|
|
148
|
+
for (const candidate of active) {
|
|
149
|
+
candidate.result.status = "NEEDS_CONFIRMATION";
|
|
150
|
+
candidate.result.code = prepared.plan.packages.some(p => p.adopt) ? "skills_dependency_adoption_required" : "skills_dependency_confirmation_required";
|
|
151
|
+
}
|
|
152
|
+
finish(group);
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
const signal = AbortSignal.any([AbortSignal.timeout(60_000), ...(options.signal ? [options.signal] : [])]);
|
|
157
|
+
await applySkillUpdate(prepared, leader.record, directory, { ...options, signal });
|
|
158
|
+
const saved = await readSkillUpdates(directory);
|
|
159
|
+
for (const candidate of group) {
|
|
160
|
+
const updated = saved.installations.find(r => r.id === candidate.record.id);
|
|
161
|
+
candidate.result.version = updated.version;
|
|
162
|
+
if (updated.version !== candidate.record.version) {
|
|
163
|
+
candidate.result.status = "UPDATED";
|
|
164
|
+
candidate.result.code = "skills_updated_reload_agent";
|
|
165
|
+
candidate.result.backupPath = updated.backupPath;
|
|
166
|
+
reportProgress(options, { type: "stage", installation: candidate.record, stage: "recording", latestVersion: updated.version });
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
options.signal?.throwIfAborted();
|
|
172
|
+
for (const candidate of active) {
|
|
173
|
+
// Rolled-back transactions have no successful backup result to display.
|
|
174
|
+
if (prepared)
|
|
175
|
+
for (const p of prepared.plan.packages)
|
|
176
|
+
delete p.backupPath;
|
|
177
|
+
fail(candidate, error);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
finish(group);
|
|
181
|
+
}
|
|
182
|
+
const installations = candidates.map(c => c.result);
|
|
183
|
+
return { ok: installations.every(i => ["UPDATED", "CURRENT", "PLANNED"].includes(i.status)), installations };
|
|
184
|
+
}
|
|
185
|
+
/** Immutable versions are shared within one source; failed reads are not cached. */
|
|
186
|
+
function batchClientCache(clientFor) {
|
|
187
|
+
const metadata = new Map();
|
|
188
|
+
const downloads = new Map();
|
|
189
|
+
let downloadedBytes = 0;
|
|
190
|
+
function memo(cache, key, fetch) {
|
|
191
|
+
const existing = cache.get(key);
|
|
192
|
+
if (existing)
|
|
193
|
+
return existing;
|
|
194
|
+
const promise = fetch().catch(error => { cache.delete(key); throw error; });
|
|
195
|
+
cache.set(key, promise);
|
|
196
|
+
return promise;
|
|
197
|
+
}
|
|
198
|
+
return (record, signal) => {
|
|
199
|
+
const client = clientFor(signal);
|
|
200
|
+
const source = [record.namespace, record.instance, record.namespaceId, record.instanceId];
|
|
201
|
+
return {
|
|
202
|
+
getCapabilities: () => client.getCapabilities(),
|
|
203
|
+
resolveNamespace: (...args) => client.resolveNamespace(...args),
|
|
204
|
+
getSkill: (...args) => memo(metadata, JSON.stringify([source, args]), () => client.getSkill(...args)),
|
|
205
|
+
downloadSkill: (...args) => memo(downloads, JSON.stringify([source, args]), async () => {
|
|
206
|
+
const download = await client.downloadSkill(...args);
|
|
207
|
+
if (downloadedBytes + download.bytes.length > 100 * 1024 * 1024) {
|
|
208
|
+
throw new AiRegistryError("Batch downloads exceed 100 MiB.", "skills_dependency_limit");
|
|
209
|
+
}
|
|
210
|
+
downloadedBytes += download.bytes.length;
|
|
211
|
+
return download;
|
|
212
|
+
}),
|
|
213
|
+
};
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
async function mergeNodes(group) {
|
|
217
|
+
const nodes = new Map();
|
|
218
|
+
// Selected roots own their latest target; a dependency cannot silently lower it.
|
|
219
|
+
const targets = new Map(group.map(c => [c.record.name, c.result.latestVersion]));
|
|
220
|
+
for (const candidate of group)
|
|
221
|
+
for (const node of candidate.nodes ?? []) {
|
|
222
|
+
const previous = nodes.get(node.name);
|
|
223
|
+
const target = targets.get(node.name) ?? previous?.version ?? node.version;
|
|
224
|
+
if (node.version !== target) {
|
|
225
|
+
const consumers = group.flatMap(c => (c.nodes ?? []).flatMap(parent => parent.dependencies
|
|
226
|
+
.filter(dep => dep.name === node.name && dep.version !== target)
|
|
227
|
+
.map(dep => ({ name: parent.name, version: parent.version, path: join(c.root, parent.name), requiredVersion: dep.version }))));
|
|
228
|
+
throw dependencyVersionConflict(node.name, target, consumers);
|
|
229
|
+
}
|
|
230
|
+
if (previous && await skillArchiveContentDigest(previous.download.bytes) !== await skillArchiveContentDigest(node.download.bytes)) {
|
|
231
|
+
throw new AiRegistryError("Published content changed between downloads.", "skills_dependency_integrity_failed");
|
|
232
|
+
}
|
|
233
|
+
nodes.set(node.name, previous ?? node);
|
|
234
|
+
}
|
|
235
|
+
const result = [], visiting = new Set(), done = new Set();
|
|
236
|
+
function visit(name, depth = 0) {
|
|
237
|
+
if (depth > 8 || nodes.size > 32)
|
|
238
|
+
throw new AiRegistryError("Dependency group exceeds limits.", "skills_dependency_limit");
|
|
239
|
+
if (visiting.has(name))
|
|
240
|
+
throw new AiRegistryError("Cyclic dependency group.", "skills_dependency_cycle");
|
|
241
|
+
if (done.has(name))
|
|
242
|
+
return;
|
|
243
|
+
visiting.add(name);
|
|
244
|
+
const node = nodes.get(name);
|
|
245
|
+
for (const dep of node.dependencies)
|
|
246
|
+
visit(dep.name, depth + 1);
|
|
247
|
+
visiting.delete(name);
|
|
248
|
+
done.add(name);
|
|
249
|
+
result.push(node);
|
|
250
|
+
}
|
|
251
|
+
for (const name of nodes.keys())
|
|
252
|
+
visit(name);
|
|
253
|
+
if (result.reduce((sum, node) => sum + node.download.bytes.length, 0) > 100 * 1024 * 1024) {
|
|
254
|
+
throw new AiRegistryError("Dependency group downloads exceed 100 MiB.", "skills_dependency_limit");
|
|
255
|
+
}
|
|
256
|
+
return result;
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=update-batch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-batch.js","sourceRoot":"","sources":["../../src/ai-registry/update-batch.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ export function registerSkillUpdateCommands(skills, dependencies = {}) {
|
|
|
14
14
|
.option("-n, --namespace <key>", "只更新指定 namespace 的已登记安装")
|
|
15
15
|
.option("-i, --instance <id-or-code>", "只更新指定实例的已登记安装")
|
|
16
16
|
.option("--installation-id <id>", "只更新 skills updates status 中的指定安装")
|
|
17
|
+
.option("--installation-ids <ids>", "联合更新指定安装 ID(逗号分隔);保持确认过的更新范围", value => value.split(",").map(id => id.trim()).filter(Boolean))
|
|
17
18
|
.option("--plan", "只读预览完整依赖计划,不修改安装")
|
|
18
19
|
.option("--with-dependencies", "确认安装/升级计划中的同来源精确版本依赖(非交互模式)")
|
|
19
20
|
.option("--adopt-dependencies", "与 --with-dependencies 配合,确认接管内容与同来源已发布旧版本一致的未登记依赖")
|
|
@@ -25,7 +26,8 @@ export function registerSkillUpdateCommands(skills, dependencies = {}) {
|
|
|
25
26
|
const ui = dependencies.ui ?? terminalUi;
|
|
26
27
|
const interactive = useInteractive(options, false, json, dependencies.tty);
|
|
27
28
|
const identity = await (dependencies.identity ?? requireIdentity)();
|
|
28
|
-
let selection = { name, agent: options.agent, namespace: options.namespace, instance: options.instance, installationId: options.installationId
|
|
29
|
+
let selection = { name, agent: options.agent, namespace: options.namespace, instance: options.instance, installationId: options.installationId,
|
|
30
|
+
installationIds: options.installationIds };
|
|
29
31
|
if (interactive && !options.plan) {
|
|
30
32
|
const approved = await chooseSkillUpdateScope(identity, selection, ui, dependencies.directory);
|
|
31
33
|
if (!approved)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-commands.js","sourceRoot":"","sources":["../../src/ai-registry/update-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAkB,MAAM,2BAA2B,CAAC;AAErG,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,qBAAqB,EAA6B,MAAM,cAAc,CAAC;AAE3L,MAAM,UAAU,2BAA2B,CAAC,MAAe,EAAE,YAAY,GAOrE,EAAE;IACJ,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,sDAAsD,CAAC;SAChG,MAAM,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;SAC/C,MAAM,CAAC,uBAAuB,EAAE,wBAAwB,CAAC;SACzD,MAAM,CAAC,6BAA6B,EAAE,eAAe,CAAC;SACtD,MAAM,CAAC,wBAAwB,EAAE,kCAAkC,CAAC;SACpE,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC;SACpC,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,sBAAsB,EAAE,mDAAmD,CAAC;SACnF,MAAM,CAAC,eAAe,EAAE,2BAA2B,CAAC;SACpD,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;SAC9C,WAAW,CAAC,OAAO,EAAE,2OAA2O,CAAC;SACjQ,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,OAAkI,EAAE,OAAgB,EAAE,EAAE;QAC/L,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,EAAsB,CAAC,IAAI,IAAI,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACtH,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,IAAI,UAAU,CAAC;QACzC,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,IAAI,eAAe,CAAC,EAAE,CAAC;QACpE,IAAI,SAAS,GAAyB,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"update-commands.js","sourceRoot":"","sources":["../../src/ai-registry/update-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAkB,MAAM,2BAA2B,CAAC;AAErG,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,qBAAqB,EAA6B,MAAM,cAAc,CAAC;AAE3L,MAAM,UAAU,2BAA2B,CAAC,MAAe,EAAE,YAAY,GAOrE,EAAE;IACJ,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,sDAAsD,CAAC;SAChG,MAAM,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;SAC/C,MAAM,CAAC,uBAAuB,EAAE,wBAAwB,CAAC;SACzD,MAAM,CAAC,6BAA6B,EAAE,eAAe,CAAC;SACtD,MAAM,CAAC,wBAAwB,EAAE,kCAAkC,CAAC;SACpE,MAAM,CAAC,0BAA0B,EAAE,8BAA8B,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAClI,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC;SACpC,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,sBAAsB,EAAE,mDAAmD,CAAC;SACnF,MAAM,CAAC,eAAe,EAAE,2BAA2B,CAAC;SACpD,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;SAC9C,WAAW,CAAC,OAAO,EAAE,2OAA2O,CAAC;SACjQ,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,OAAkI,EAAE,OAAgB,EAAE,EAAE;QAC/L,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,EAAsB,CAAC,IAAI,IAAI,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACtH,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,IAAI,UAAU,CAAC;QACzC,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,IAAI,eAAe,CAAC,EAAE,CAAC;QACpE,IAAI,SAAS,GAAyB,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc;YAClK,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7C,IAAI,WAAW,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YAC/F,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACtB,SAAS,GAAG,QAAQ,CAAC;QACvB,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,IAAI,yBAAyB,CAAC,CAAC;YACnF,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;SACzE,CAAC,CAAC;QACH,IAAI,MAAyD,CAAC;QAC9D,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,qBAAqB,CAAC,QAAQ,EAAE,YAAY,CAAC,SAAS,IAAI,yBAAyB,EAChG,SAAS,EACT,YAAY,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM;gBAC3E,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5G,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAgD,EAAE,EAAE;wBAC5I,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;wBAChB,IAAI,CAAC;4BACH,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;4BAC/C,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;wBAC5H,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;4BACxB,MAAM,KAAK,CAAC;wBACd,CAAC;gCAAS,CAAC;4BAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;wBAAC,CAAC;oBACjC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACV,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QAAC,CAAC;QAC5B,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,aAAa,EAAE;gBACjE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe,EAAuB,CAAC,KAAK,CAAC;aACtG,CAAC,CAAC,CAAC;QACN,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACL,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;IACvF,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,4BAA4B,CAAC;SAChE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,4CAA4C,CAAC;SAC1F,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC5G,KAAK,CAAC,MAAM,sBAAsB,CAAC,IAAuC,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IACL,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,WAAW,CAAC,kCAAkC,CAAC;SACvF,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,gCAAgC,CAAC;SACjE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAC;QACzC,KAAK,CAAC,MAAM,cAAc,CAAC,MAAM,sBAAsB,CAAC,QAAQ,EAAE,yBAAyB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACpI,CAAC,CAAC,CAAC;IACL,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,yCAAyC,CAAC;SAC5E,MAAM,CAAC,oBAAoB,EAAE,sCAAsC,CAAC;SACpE,MAAM,CAAC,KAAK,EAAE,OAA+B,EAAE,EAAE;QAChD,MAAM,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAC;QACzC,KAAK,CAAC,MAAM,qBAAqB,CAAC,yBAAyB,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1H,CAAC,CAAC,CAAC;AACP,CAAC;AACD,KAAK,UAAU,eAAe;IAC5B,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;IACrE,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACjH,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD,SAAS,KAAK,CAAC,MAAe,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -7,6 +7,11 @@ export interface SkillUpdatePlan {
|
|
|
7
7
|
agent: string;
|
|
8
8
|
namespace: string;
|
|
9
9
|
instance: string;
|
|
10
|
+
roots?: Array<{
|
|
11
|
+
name: string;
|
|
12
|
+
version: string;
|
|
13
|
+
path: string;
|
|
14
|
+
}>;
|
|
10
15
|
packages: Array<{
|
|
11
16
|
name: string;
|
|
12
17
|
from?: string;
|
|
@@ -24,7 +29,7 @@ interface LegacyBaseline {
|
|
|
24
29
|
contentDigest: string;
|
|
25
30
|
archiveSha256: string;
|
|
26
31
|
}
|
|
27
|
-
interface PreparedPlan {
|
|
32
|
+
export interface PreparedPlan {
|
|
28
33
|
plan: SkillUpdatePlan;
|
|
29
34
|
nodes: SkillInstallNode[];
|
|
30
35
|
records: Array<SkillUpdateRecord | undefined>;
|
|
@@ -34,7 +39,7 @@ interface PreparedPlan {
|
|
|
34
39
|
/** Resolve a complete exact-version graph before asking for consent. No inventory or file writes. */
|
|
35
40
|
export declare function prepareSkillUpdate(record: SkillUpdateRecord, client: Client, directory?: string): Promise<PreparedPlan>;
|
|
36
41
|
/** Shared preflight for updates and install wizards, including verified legacy dependencies. */
|
|
37
|
-
export declare function prepareSkillGraph(record: SkillUpdateRecord, nodes: SkillInstallNode[], client: Client, directory?: string, approvedRoot?: SkillInstallNode): Promise<PreparedPlan>;
|
|
42
|
+
export declare function prepareSkillGraph(record: SkillUpdateRecord, nodes: SkillInstallNode[], client: Client, directory?: string, approvedRoot?: SkillInstallNode, expectedRoots?: ReadonlyMap<string, SkillUpdateRecord>): Promise<PreparedPlan>;
|
|
38
43
|
/** Commit the approved graph under the inventory lock; restore completed replacements on failure. */
|
|
39
44
|
export declare function applySkillUpdate(prepared: PreparedPlan, root: SkillUpdateRecord, directory: string | undefined, options: SkillUpdateRunOptions): Promise<SkillUpdatePlan>;
|
|
40
45
|
export {};
|
|
@@ -69,7 +69,7 @@ export async function prepareSkillUpdate(record, client, directory) {
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
/** Shared preflight for updates and install wizards, including verified legacy dependencies. */
|
|
72
|
-
export async function prepareSkillGraph(record, nodes, client, directory, approvedRoot) {
|
|
72
|
+
export async function prepareSkillGraph(record, nodes, client, directory, approvedRoot, expectedRoots) {
|
|
73
73
|
const state = await readSkillUpdates(directory);
|
|
74
74
|
const root = await canonicalPath(dirname(record.path));
|
|
75
75
|
const plan = { name: record.name, agent: record.agent, namespace: record.namespace, instance: record.instance, packages: [] };
|
|
@@ -101,6 +101,10 @@ export async function prepareSkillGraph(record, nodes, client, directory, approv
|
|
|
101
101
|
}
|
|
102
102
|
if (node.name === record.name && (!old || old.id !== record.id || old.updatedAt !== record.updatedAt))
|
|
103
103
|
throw fail("inventory_changed");
|
|
104
|
+
const expected = expectedRoots?.get(path);
|
|
105
|
+
if (expected && JSON.stringify(old) !== JSON.stringify(expected)) {
|
|
106
|
+
throw new AiRegistryError("Installation changed during planning.", "skills_update_inventory_changed");
|
|
107
|
+
}
|
|
104
108
|
if (info && !old)
|
|
105
109
|
legacy.set(path, await verifyLegacy(node, path, client, record.namespaceId));
|
|
106
110
|
const baseline = old ?? legacy.get(path);
|
|
@@ -128,7 +132,7 @@ async function validateConsumers(plan, directory, approvedRoot) {
|
|
|
128
132
|
if (approvedRoot && plan.packages.length)
|
|
129
133
|
approved.set(join(dirname(plan.packages[0].path), approvedRoot.name), approvedRoot.dependencies);
|
|
130
134
|
for (const p of plan.packages)
|
|
131
|
-
await assertConsumersCompatible(p.name, p.version, p.path, directory, approved,
|
|
135
|
+
await assertConsumersCompatible(p.name, p.version, p.path, directory, approved, true);
|
|
132
136
|
}
|
|
133
137
|
/** Commit the approved graph under the inventory lock; restore completed replacements on failure. */
|
|
134
138
|
export async function applySkillUpdate(prepared, root, directory, options) {
|
|
@@ -158,18 +162,19 @@ export async function applySkillUpdate(prepared, root, directory, options) {
|
|
|
158
162
|
const baseline = before ?? legacy.get(p.path);
|
|
159
163
|
const result = p.action === "REUSE"
|
|
160
164
|
? { agent: root.agent, scope: root.scope, skillName: node.name, installedPath: p.path, files: 0, expandedBytes: 0, contentDigest: baseline.contentDigest }
|
|
161
|
-
: await installSkillArchive(node.download.bytes, { ...root, skillName: node.name,
|
|
165
|
+
: await installSkillArchive(node.download.bytes, { ...root, ...before, skillName: node.name,
|
|
162
166
|
force: Boolean(baseline), maintenanceBackup: true, dependencyPlanVerified: true,
|
|
163
167
|
expectedInstalledPath: p.path, expectedInstalledDigest: baseline?.contentDigest,
|
|
164
168
|
onProgress: stage => { try {
|
|
165
|
-
options.onProgress?.({ type: "stage", installation: { ...root, name: node.name, version: baseline?.version ?? "未安装" }, stage, latestVersion: node.version });
|
|
169
|
+
options.onProgress?.({ type: "stage", installation: { ...(before ?? root), name: node.name, version: baseline?.version ?? "未安装" }, stage, latestVersion: node.version });
|
|
166
170
|
}
|
|
167
171
|
catch { /* UI is best effort. */ } } });
|
|
168
172
|
if (p.action !== "REUSE")
|
|
169
173
|
done.push({ result, index: i });
|
|
170
|
-
const
|
|
171
|
-
|
|
172
|
-
|
|
174
|
+
const owner = before ?? root;
|
|
175
|
+
const updated = { ...owner, id: before?.id ?? maintenanceKey([root.identity, root.namespace, root.instance, p.path]),
|
|
176
|
+
name: node.name, path: p.path, customRoot: owner.agent === "custom" ? dirname(p.path) : owner.customRoot,
|
|
177
|
+
...(owner.workspace ? { workspace: resolve(owner.workspace) } : {}), version: node.version, archiveSha256: node.download.sha256,
|
|
173
178
|
contentDigest: result.contentDigest, policy: before?.policy ?? "pinned", backupPath: result.backupPath,
|
|
174
179
|
updatedAt: Date.now(), lastStatus: "skills_updated_reload_agent" };
|
|
175
180
|
state.installations = state.installations.filter(r => r.path !== p.path);
|