@numa-tech/numa 1.26.1 → 1.26.3
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 +10 -9
- package/dist/ai-registry/skill-installer.d.ts +1 -0
- package/dist/ai-registry/skill-installer.js +10 -1
- package/dist/ai-registry/skill-installer.js.map +1 -1
- package/dist/ai-registry/update-commands.d.ts +10 -1
- package/dist/ai-registry/update-commands.js +47 -2
- package/dist/ai-registry/update-commands.js.map +1 -1
- package/dist/ai-registry/update-progress.d.ts +10 -0
- package/dist/ai-registry/update-progress.js +74 -0
- package/dist/ai-registry/update-progress.js.map +1 -0
- package/dist/ai-registry/updates.d.ts +42 -0
- package/dist/ai-registry/updates.js +67 -6
- package/dist/ai-registry/updates.js.map +1 -1
- package/dist/authorization/application-schemas.d.ts +0 -5
- package/dist/authorization/application-schemas.js +0 -7
- package/dist/authorization/application-schemas.js.map +1 -1
- package/dist/authorization/commands.js +0 -2
- package/dist/authorization/commands.js.map +1 -1
- package/dist/cli.js +0 -7
- package/dist/cli.js.map +1 -1
- package/dist/command-catalog.js +7 -0
- package/dist/command-catalog.js.map +1 -1
- package/dist/server.js +1 -5
- package/dist/server.js.map +1 -1
- package/dist/web-console.js +3 -14
- package/dist/web-console.js.map +1 -1
- package/docs/application-explicit-access.md +13 -0
- package/docs/module-maintenance-and-skills-updates.md +31 -0
- package/package.json +5 -5
- package/dist/authorization/enrollment-client.d.ts +0 -40
- package/dist/authorization/enrollment-client.js +0 -56
- package/dist/authorization/enrollment-client.js.map +0 -1
- package/dist/authorization/enrollment-commands.d.ts +0 -5
- package/dist/authorization/enrollment-commands.js +0 -30
- package/dist/authorization/enrollment-commands.js.map +0 -1
- package/dist/authorization/enrollment.d.ts +0 -14
- package/dist/authorization/enrollment.js +0 -83
- package/dist/authorization/enrollment.js.map +0 -1
- package/docs/application-default-groups.md +0 -109
package/README.md
CHANGED
|
@@ -40,17 +40,11 @@ numa notion page create --grant 41 --file page.json --json
|
|
|
40
40
|
|
|
41
41
|
Jev 企业接入已开始实施:定制 Skill 指导 Agent 调用平台原生 MCP,平台统一授权并经指定代理访问 OpenRouter。终端 Agent、ChatGPT 和 K8s Agent 的接口、身份及验收边界见 [Jev 详细设计](docs/design/jev-integration.md),源码包见 [numa-jev Skill](skills/numa-jev/SKILL.md) 和 [应用示例](examples/jev/README.md)。当前是未发布源码;ChatGPT 远程 OAuth 仍按设计待实施,Skill 安装不等于 MCP 已连接。
|
|
42
42
|
|
|
43
|
-
##
|
|
43
|
+
## 显式用户授权
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
登录只建立认证会话,不自动入组或授予角色。管理员在 DevOps 的 Realm 用户组、用户授权入口管理成员与 Client 角色;应用只是可选筛选条件,没有登记应用的 Client 也可以选择。
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
numa authorization enrollment status --json
|
|
49
|
-
numa authorization enrollment initialize --json
|
|
50
|
-
numa authorization application --app 42 identity sources --json
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
管理员现在通过 `authorization application --app <id>` 管理完整定义、环境、Client/Group 草稿、关系、统一发布及凭证。旧独立 role/group 命令已删除;save 仅保存草稿,freeze 后显式 plan → prepare → apply 一个阶段。普通用户 enrollment 和 access-request 保留。完整流程见 [应用授权指南](docs/application-default-groups.md)。这是 API 与 CLI 协同的破坏性升级,尚未发布到 npm 或部署生产。
|
|
47
|
+
`authorization enrollment` 与登录后的 `/api/v1/me/enrollment` 调用已移除。已有 Keycloak 组、成员与角色保持不变。Client 草稿不再接受默认组或登录信任字段。详见[显式授权迁移说明](docs/application-explicit-access.md)。
|
|
54
48
|
|
|
55
49
|
## 环境与安装
|
|
56
50
|
|
|
@@ -592,6 +586,13 @@ numa maintenance status --json
|
|
|
592
586
|
numa maintenance run --force --json
|
|
593
587
|
```
|
|
594
588
|
|
|
589
|
+
已安装的用户级 Skill 可用 `numa skills update <name>` 比较版本并一次性升级到已发布的
|
|
590
|
+
`latest`;省略名称检查当前身份的全部受管用户级安装,可加 `--agent claude` 或
|
|
591
|
+
`--installation-id <id>` 筛选。相同版本跳过,升级前备份,保留本地修改及原自动更新设置。
|
|
592
|
+
项目级安装仍使用 `registry upgrade`;旧安装需先按下文接管。
|
|
593
|
+
文本模式使用 TUI 进度条实时显示当前 Skill、版本与更新阶段,结束汇总结果;非终端使用
|
|
594
|
+
逐行进度。进度写入 stderr,`--json` 保持单个完整报告且不显示进度动画。
|
|
595
|
+
|
|
595
596
|
自动升级只接受已发布的稳定 `latest`,保留修改过的文件和恢复备份;项目安装、固定版本和
|
|
596
597
|
平台 Bootstrap 的固定版本默认不跟随全局开关。更新不会刷新 Agent 当前会话,需重新加载。
|
|
597
598
|
已有旧版安装需使用 `skills updates adopt --workspace <原安装项目>` 核对接管,或显式重新安装。
|
|
@@ -14,6 +14,7 @@ export interface SkillInstallOptions {
|
|
|
14
14
|
expectedInstalledPath?: string;
|
|
15
15
|
/** Keep automatic-update backups outside the live Skills discovery directory. */
|
|
16
16
|
maintenanceBackup?: boolean;
|
|
17
|
+
onProgress?: (stage: "extracting" | "backing-up" | "replacing") => void;
|
|
17
18
|
}
|
|
18
19
|
export interface SkillInstallResult {
|
|
19
20
|
agent: SkillAgentTarget;
|
|
@@ -62,6 +62,12 @@ export async function installSkillArchive(archive, options) {
|
|
|
62
62
|
return withTokenFileLock(join(root, `.numa-install-${skillName}`), () => installSkillArchiveLocked(archive, options), { timeoutMilliseconds: 1_000 });
|
|
63
63
|
}
|
|
64
64
|
async function installSkillArchiveLocked(archive, options) {
|
|
65
|
+
const progress = (stage) => {
|
|
66
|
+
try {
|
|
67
|
+
options.onProgress?.(stage);
|
|
68
|
+
}
|
|
69
|
+
catch { /* Never interrupt replacement for a UI failure. */ }
|
|
70
|
+
};
|
|
65
71
|
const bundle = await (await import("./skill-dependencies.js")).readSkillBundle(archive);
|
|
66
72
|
if (bundle?.dependencies.length && !options.dependencyPlanVerified) {
|
|
67
73
|
throw new AiRegistryError("This Skill requires a verified dependency plan; use skills install --plan first.", "skills_dependency_confirmation_required");
|
|
@@ -95,7 +101,7 @@ async function installSkillArchiveLocked(archive, options) {
|
|
|
95
101
|
throw new AiRegistryError("Refusing to replace a symbolic-link Skill target.", "ai_registry_install_target_invalid");
|
|
96
102
|
}
|
|
97
103
|
if (existing && !options.force) {
|
|
98
|
-
throw new AiRegistryError(`Skill already exists at ${destination}; pass --force to replace it with a recoverable backup.`, "ai_registry_install_exists");
|
|
104
|
+
throw new AiRegistryError(`Skill already exists at ${destination}; use skills update ${skillName} for a managed user installation, or pass --force to replace it with a recoverable backup.`, "ai_registry_install_exists");
|
|
99
105
|
}
|
|
100
106
|
const stage = join(targetRoot, `.numa-stage-${skillName}-${randomBytes(6).toString("hex")}`);
|
|
101
107
|
let backupRoot = targetRoot;
|
|
@@ -113,16 +119,19 @@ async function installSkillArchiveLocked(archive, options) {
|
|
|
113
119
|
let movedExisting = false;
|
|
114
120
|
let contentDigest;
|
|
115
121
|
try {
|
|
122
|
+
progress("extracting");
|
|
116
123
|
await extractArchive(archive, inspected.root, stage);
|
|
117
124
|
contentDigest = await skillDirectoryDigest(stage);
|
|
118
125
|
if (options.expectedInstalledDigest && await skillDirectoryDigest(destination) !== options.expectedInstalledDigest) {
|
|
119
126
|
throw new AiRegistryError("Local Skill was modified; automatic update stopped.", "skills_update_local_conflict");
|
|
120
127
|
}
|
|
121
128
|
if (backup) {
|
|
129
|
+
progress("backing-up");
|
|
122
130
|
await renameSkillDirectory(destination, backup);
|
|
123
131
|
movedExisting = true;
|
|
124
132
|
}
|
|
125
133
|
try {
|
|
134
|
+
progress("replacing");
|
|
126
135
|
await renameSkillDirectory(stage, destination);
|
|
127
136
|
}
|
|
128
137
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-installer.js","sourceRoot":"","sources":["../../src/ai-registry/skill-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,EAAE,EACT,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,EAAE,EACH,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EACL,OAAO,EACP,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,GAAG,EACJ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAmC,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC3C,MAAM,kBAAkB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7C,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE/E,iFAAiF;AACjF,KAAK,UAAU,oBAAoB,CAAC,MAAc,EAAE,WAAmB;IACrE,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAI,KAA2C,EAAE,IAAI,CAAC;YAChE,IAAI,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,MAAM,KAAK,CAAC;YAC5D,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,eAAe,CACvB,yDAAyD,IAAI,MAAM,MAAM,OAAO,WAAW,IAAI;oBAC/F,sFAAsF;oBACtF,mFAAmF,EACnF,sCAAsC,EAAE,SAAS,EAAE,SAAS,EAC5D,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,CAChF,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;AACH,CAAC;AAiDD,MAAM,YAAY,GAAwD;IACxE,oEAAoE;IACpE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACjC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC/B,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;IACjC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;IACjC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC;IACvC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;IACrC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;CAClC,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,OAAkF;IAChH,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,IAAI,eAAe,CAAC,6CAA6C,EAAE,oCAAoC,CAAC,CAAC;QACjH,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChG,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,KAAK,WAAW,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QACvE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAe,EACf,OAA4B;IAE5B,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ;QAAE,MAAM,wBAAwB,CAC5D,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3G,gEAAgE;IAChE,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,SAAS,EAAE,CAAC,EAC/D,GAAG,EAAE,CAAC,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,OAAe,EAAE,OAA4B;IACpF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACxF,IAAI,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;QACnE,MAAM,IAAI,eAAe,CAAC,kFAAkF,EAAE,yCAAyC,CAAC,CAAC;IAC3J,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAC7D,MAAM,IAAI,eAAe,CAAC,uCAAuC,EAAE,+BAA+B,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,KAAK,QAAQ;QAC5C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACvF,IAAI,WAAW;QAAE,MAAM,wBAAwB,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5F,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClD,IAAI,WAAW;QAAE,YAAY,CAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;IACvE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAChD,IAAI,OAAO,CAAC,qBAAqB,IAAI,WAAW,KAAK,OAAO,CAAC,qBAAqB,EAAE,CAAC;QACnF,MAAM,IAAI,eAAe,CAAC,+CAA+C,EAAE,4BAA4B,CAAC,CAAC;IAC3G,CAAC;IACD,YAAY,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,KAA4B,EAAE,EAAE;QAC/E,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC9C,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IACH,IAAI,QAAQ,EAAE,cAAc,EAAE,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CAAC,mDAAmD,EAAE,oCAAoC,CAAC,CAAC;IACvH,CAAC;IACD,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CACvB,2BAA2B,WAAW,yDAAyD,EAC/F,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7F,IAAI,UAAU,GAAG,UAAU,CAAC;IAC5B,IAAI,QAAQ,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC1C,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC,CAAC;QAC9D,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,eAAe,CAAC,sCAAsC,EAAE,8BAA8B,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ;QACrB,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,SAAS,gBAAgB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACnI,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACpC,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,aAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrD,aAAa,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,OAAO,CAAC,uBAAuB,IAAI,MAAM,oBAAoB,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,uBAAuB,EAAE,CAAC;YACnH,MAAM,IAAI,eAAe,CAAC,qDAAqD,EAAE,8BAA8B,CAAC,CAAC;QACnH,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,oBAAoB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAChD,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,IAAI,CAAC;YACH,MAAM,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,MAAM,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAClD,CAAC;gBAAC,OAAO,YAAY,EAAE,CAAC;oBACtB,MAAM,IAAI,eAAe,CACvB,+EAA+E,WAAW,IAAI;wBAC9F,wCAAwC,MAAM,2DAA2D,EACzG,oCAAoC,EAAE,SAAS,EAAE,SAAS,EAC1D,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM;wBAC/B,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;wBACpE,YAAY,EAAE,YAAY,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAC9F,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS;QACT,aAAa,EAAE,WAAW;QAC1B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,aAAa;KACd,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY;IACrD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,UAAU,IAAI,CAAC,SAAiB,EAAE,MAAc;QACnD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5G,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;YAC/B,IAAI,EAAE,KAAK,GAAG,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAChH,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;YAAC,CAAC;iBACpG,CAAC;gBACJ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,kBAAkB;oBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC7G,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjE,IAAI,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,uGAAuG;AACvG,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,OAAe;IAC7D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,iBAAiB;QAAE,MAAM,QAAQ,CAAC,uCAAuC,CAAC,CAAC;IACtH,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,CAAC,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACvF,MAAM,IAAI,eAAe,CAAC,6CAA6C,EAAE,oCAAoC,CAAC,CAAC;IACjH,CAAC;IACD,IAAI,oDAAoD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,eAAe,CAAC,oCAAoC,EAAE,oCAAoC,CAAC,CAAC;IACxG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAc;IACjD,MAAM,OAAO,GAAY,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;QACzD,MAAM,QAAQ,CAAC,0DAA0D,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACtE,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;YAAE,MAAM,QAAQ,CAAC,yDAAyD,CAAC,CAAC;QACvG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG,GAAG,CAAC,KAAK,CAAC;YAAE,MAAM,QAAQ,CAAC,gDAAgD,CAAC,CAAC;QAChH,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,MAAM,QAAQ,CAAC,4CAA4C,CAAC,CAAC;QACnF,aAAa,IAAI,KAAK,CAAC,gBAAgB,CAAC;QACxC,IAAI,aAAa,GAAG,kBAAkB;YAAE,MAAM,QAAQ,CAAC,mCAAmC,CAAC,CAAC;QAC5F,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,QAAQ,CAAC,8CAA8C,CAAC,CAAC;IAC3F,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC;IACpG,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,QAAQ,CAAC,0EAA0E,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AACjE,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,MAAc;IAC1D,IAAI,MAAM,CAAC,MAAM,GAAG,iBAAiB;QAAE,MAAM,QAAQ,CAAC,2BAA2B,CAAC,CAAC;IACnF,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,iBAAiB,CAAC;IAClD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,IAAI,OAAO,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE;QACnD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,IAAI,GAAG,CAAC,KAAc,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAAC,OAAO,GAAG,IAAI,CAAC;YAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAAC,OAAO,GAAG,IAAI,CAAC;YAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YAC/B,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAAC,GAAG,CAAC,SAAS,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC3D,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,IAAI,KAAK,CAAC,gBAAgB,GAAG,MAAM;oBAAE,MAAM,QAAQ,CAAC,2CAA2C,CAAC,CAAC;gBACjG,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACjD,MAAM,MAAM,GAAa,EAAE,CAAC;gBAAC,IAAI,IAAI,GAAG,CAAC,CAAC;gBAC1C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBACjC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;oBACvD,IAAI,IAAI,GAAG,MAAM;wBAAE,MAAM,QAAQ,CAAC,2CAA2C,CAAC,CAAC;oBAC/E,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;gBACD,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC3G,IAAI,CAAC,OAAO,EAAE,CAAC;oBAAC,OAAO,GAAG,IAAI,CAAC;oBAAC,GAAG,CAAC,KAAK,EAAE,CAAC;oBAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAAC,CAAC;YACvE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,WAAmB,EAAE,KAAa;IAC9E,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,IAAI,OAAO,CAAO,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE;QACxD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,IAAI,GAAG,CAAC,KAAc,EAAQ,EAAE;YACpC,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;YACnB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,IAAI,CAAC;gBACf,cAAc,EAAE,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YAC/B,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC/C,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACjF,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,GAAG,CAAC,SAAS,EAAE,CAAC;oBAChB,OAAO;gBACT,CAAC;gBACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5E,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACjC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC3D,GAAG,CAAC,SAAS,EAAE,CAAC;oBAChB,OAAO;gBACT,CAAC;gBACD,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpE,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACjD,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;gBAC/D,MAAM,IAAI,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;gBACtD,MAAM,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC9E,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,OAAO,CAAU,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE;QAC1F,MAAM,OAAO,GAAY,EAAE,CAAC;QAC5B,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACjC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YAC/B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,GAAG,CAAC,SAAS,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/C,GAAG,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,OAAO,CAAC,MAAc;IAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE;QACnD,KAAK,CAAC,UAAU,CACd,MAAM,EACN,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAC3F,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAC7G,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,GAAY,EAAE,KAAY;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE;QACnD,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAI,KAAK,IAAI,CAAC,MAAM;gBAAE,aAAa,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC,CAAC;;gBAC5E,cAAc,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,IACE,CAAC,IAAI;QACL,IAAI,CAAC,MAAM,GAAG,IAAI;QAClB,UAAU,CAAC,IAAI,CAAC;QAChB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QACpB,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,EAC7D,CAAC;QACD,MAAM,QAAQ,CAAC,oCAAoC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,KAAY;IAC7B,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC;IAC9D,OAAO,IAAI,KAAK,QAAQ,CAAC;AAC3B,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,SAAiB;IACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9E,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,IAAI,eAAe,CAAC,gDAAgD,EAAE,oCAAoC,CAAC,CAAC;IACpH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAAY,EAAE,SAAiB,EAAE,KAAmB;IACjG,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9G,MAAM,IAAI,eAAe,CAAC,mDAAmD,EAAE,oCAAoC,CAAC,CAAC;IACvH,CAAC;IACD,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,MAAM,SAAS,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAA4B,EAAE,EAAE;YACvE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAC;YAC9C,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI;YAAE,MAAM;QACjB,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC1B,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACrB,MAAM,IAAI,eAAe,CAAC,+DAA+D,EAAE,oCAAoC,CAAC,CAAC;YACnI,CAAC;YACD,yEAAyE;YACzE,yEAAyE;YACzE,0EAA0E;YAC1E,YAAY,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe;IAC/B,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;AACvE,CAAC"}
|
|
1
|
+
{"version":3,"file":"skill-installer.js","sourceRoot":"","sources":["../../src/ai-registry/skill-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,11 @@
|
|
|
1
1
|
import type { Command } from "commander";
|
|
2
|
-
|
|
2
|
+
import { createSkillUpdateProgress } from "./update-progress.js";
|
|
3
|
+
import { updateInstalledSkills } from "./updates.js";
|
|
4
|
+
export declare function registerSkillUpdateCommands(skills: Command, dependencies?: {
|
|
5
|
+
identity?: typeof requireIdentity;
|
|
6
|
+
clientFor?: Parameters<typeof updateInstalledSkills>[1];
|
|
7
|
+
directory?: string;
|
|
8
|
+
progress?: typeof createSkillUpdateProgress;
|
|
9
|
+
}): void;
|
|
10
|
+
declare function requireIdentity(): Promise<string>;
|
|
11
|
+
export {};
|
|
@@ -1,9 +1,54 @@
|
|
|
1
|
+
import { loadAppConfig } from "../app-config.js";
|
|
1
2
|
import { loadConfig } from "../config.js";
|
|
2
3
|
import { maintenanceIdentity } from "../maintenance/identity.js";
|
|
3
4
|
import { runMaintenance } from "../maintenance/scheduler.js";
|
|
4
5
|
import { maintenanceRegistryClient } from "../maintenance/modules.js";
|
|
5
|
-
import {
|
|
6
|
-
|
|
6
|
+
import { createSkillUpdateProgress } from "./update-progress.js";
|
|
7
|
+
import { adoptLockedUserSkills, createSkillUpdateTasks, readSkillUpdates, setSkillTracking, updateSkillPreferences, updateInstalledSkills } from "./updates.js";
|
|
8
|
+
export function registerSkillUpdateCommands(skills, dependencies = {}) {
|
|
9
|
+
skills.command("update [name]").description("一次性比较并升级已安装用户级 Skills 到已发布 latest;省略名称检查全部,不改变自动更新设置")
|
|
10
|
+
.option("-a, --agent <agent>", "只更新指定客户端的已登记安装")
|
|
11
|
+
.option("-n, --namespace <key>", "只更新指定 namespace 的已登记安装")
|
|
12
|
+
.option("-i, --instance <id-or-code>", "只更新指定实例的已登记安装")
|
|
13
|
+
.option("--installation-id <id>", "只更新 skills updates status 中的指定安装")
|
|
14
|
+
.addHelpText("after", "\nExamples:\n numa skills update\n numa skills update numa-cli --agent claude\n numa skills update --installation-id ID --json\n\n仅更新当前身份的受管用户级安装(包括 pinned/off);保留本地修改和备份。\n旧安装先用 skills updates adopt 接管;项目级安装使用 registry upgrade。\n")
|
|
15
|
+
.action(async (name, options, command) => {
|
|
16
|
+
const json = Boolean(command.optsWithGlobals().json || (await loadAppConfig()).output === "json");
|
|
17
|
+
const identity = await (dependencies.identity ?? requireIdentity)();
|
|
18
|
+
const controller = new AbortController();
|
|
19
|
+
const view = json ? undefined : (dependencies.progress ?? createSkillUpdateProgress)({
|
|
20
|
+
onCancel: () => controller.abort(new Error("Skills 更新已取消;已完成的更新与备份保留。")),
|
|
21
|
+
});
|
|
22
|
+
let result;
|
|
23
|
+
try {
|
|
24
|
+
result = await updateInstalledSkills(identity, dependencies.clientFor ?? maintenanceRegistryClient, { ...options, name }, dependencies.directory, { onProgress: view?.update, signal: controller.signal });
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
view?.close(true);
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
finally {
|
|
31
|
+
view?.close();
|
|
32
|
+
}
|
|
33
|
+
if (json) {
|
|
34
|
+
process.stdout.write(JSON.stringify(result, null, 2) + "\n");
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
for (const item of result.installations) {
|
|
38
|
+
process.stdout.write(`${item.name} (${item.agent}) ${item.previousVersion} -> ${item.version}: ${item.status}\n ${item.path}\n`);
|
|
39
|
+
if (item.backupPath)
|
|
40
|
+
process.stdout.write(` 备份: ${item.backupPath}\n`);
|
|
41
|
+
if (item.status === "FAILED")
|
|
42
|
+
process.stdout.write(` ${item.code}\n`);
|
|
43
|
+
}
|
|
44
|
+
if (!result.installations.length)
|
|
45
|
+
process.stdout.write("当前身份没有已登记的用户级 Skill 安装;可用 skills updates status 查看,旧安装用 skills updates adopt 接管。\n");
|
|
46
|
+
if (result.installations.some(item => item.status === "UPDATED"))
|
|
47
|
+
process.stdout.write("Skills 已更新,请刷新宿主 Skill 列表或新建会话。\n");
|
|
48
|
+
}
|
|
49
|
+
if (!result.ok)
|
|
50
|
+
process.exitCode = 1;
|
|
51
|
+
});
|
|
7
52
|
const updates = skills.command("updates").description("管理已登记用户级 Skills 的 latest 自动追踪");
|
|
8
53
|
updates.command("status").description("显示总开关、逐项策略、安装路径与上次更新结果(本地)")
|
|
9
54
|
.action(async () => print(await readSkillUpdates()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-commands.js","sourceRoot":"","sources":["../../src/ai-registry/update-commands.ts"],"names":[],"mappings":"AACA,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,qBAAqB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"update-commands.js","sourceRoot":"","sources":["../../src/ai-registry/update-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SkillUpdateProgress } from "./updates.js";
|
|
2
|
+
export interface SkillUpdateProgressView {
|
|
3
|
+
update(event: SkillUpdateProgress): void;
|
|
4
|
+
close(error?: boolean): void;
|
|
5
|
+
}
|
|
6
|
+
/** Animated Clack component on terminals; readable stage lines in redirected output. */
|
|
7
|
+
export declare function createSkillUpdateProgress(options?: {
|
|
8
|
+
output?: NodeJS.WriteStream;
|
|
9
|
+
onCancel?: () => void;
|
|
10
|
+
}): SkillUpdateProgressView;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { progress } from "@clack/prompts";
|
|
2
|
+
import { safeTerminal } from "../interactive/prompts.js";
|
|
3
|
+
const stages = {
|
|
4
|
+
waiting: "等待更新锁", "checking-local": "检查本地文件", "checking-latest": "查询 latest / 比较版本",
|
|
5
|
+
downloading: "下载", verifying: "校验包与依赖", extracting: "解包", "backing-up": "备份旧版本",
|
|
6
|
+
replacing: "替换文件", recording: "保存更新记录",
|
|
7
|
+
};
|
|
8
|
+
/** Animated Clack component on terminals; readable stage lines in redirected output. */
|
|
9
|
+
export function createSkillUpdateProgress(options = {}) {
|
|
10
|
+
const output = options.output ?? process.stderr;
|
|
11
|
+
let bar;
|
|
12
|
+
let total = 0, completed = 0, updated = 0, current = 0, failed = 0;
|
|
13
|
+
let closed = false;
|
|
14
|
+
const summary = () => `Skills 更新 ${completed}/${total} · 已更新 ${updated} · 已是最新 ${current} · 失败 ${failed}`;
|
|
15
|
+
return {
|
|
16
|
+
update(event) {
|
|
17
|
+
if (closed)
|
|
18
|
+
return;
|
|
19
|
+
if (event.type === "start") {
|
|
20
|
+
total = event.total;
|
|
21
|
+
if (!total)
|
|
22
|
+
return;
|
|
23
|
+
if (output.isTTY && process.env.TERM !== "dumb") {
|
|
24
|
+
bar = progress({ max: total, size: Math.min(24, Math.max(8, Math.floor((output.columns || 80) / 4))),
|
|
25
|
+
output, indicator: "timer", onCancel: options.onCancel, cancelMessage: "已请求取消 Skills 更新", withGuide: false });
|
|
26
|
+
bar.start(summary());
|
|
27
|
+
}
|
|
28
|
+
else
|
|
29
|
+
output.write(`${summary()}\n`);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const item = event.installation;
|
|
33
|
+
if (event.type === "stage") {
|
|
34
|
+
const version = event.latestVersion ? `${item.version} → ${event.latestVersion}` : item.version;
|
|
35
|
+
const message = safeTerminal(`[${completed + 1}/${total}] ${item.name} (${item.agent}) ${version} · ${stages[event.stage]}`);
|
|
36
|
+
if (bar)
|
|
37
|
+
bar.message(message);
|
|
38
|
+
else
|
|
39
|
+
output.write(`${message}\n`);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
completed++;
|
|
43
|
+
if (event.installation.status === "UPDATED")
|
|
44
|
+
updated++;
|
|
45
|
+
else if (event.installation.status === "CURRENT")
|
|
46
|
+
current++;
|
|
47
|
+
else
|
|
48
|
+
failed++;
|
|
49
|
+
const result = event.installation;
|
|
50
|
+
const message = safeTerminal(`${result.name} (${result.agent}) ${result.previousVersion} → ${result.version}: ${result.status}`
|
|
51
|
+
+ (result.status === "FAILED" ? ` · ${result.code}` : ""));
|
|
52
|
+
if (bar)
|
|
53
|
+
bar.advance(1, `${message} · ${summary()}`);
|
|
54
|
+
else
|
|
55
|
+
output.write(`[${completed}/${total}] ${message}\n`);
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
close(error = false) {
|
|
59
|
+
if (closed)
|
|
60
|
+
return;
|
|
61
|
+
closed = true;
|
|
62
|
+
const message = `${summary()}${error ? " · 已中止" : ""}`;
|
|
63
|
+
if (bar) {
|
|
64
|
+
if (error || failed)
|
|
65
|
+
bar.error(message);
|
|
66
|
+
else
|
|
67
|
+
bar.stop(message);
|
|
68
|
+
}
|
|
69
|
+
else if (total)
|
|
70
|
+
output.write(`${message}\n`);
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=update-progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-progress.js","sourceRoot":"","sources":["../../src/ai-registry/update-progress.ts"],"names":[],"mappings":"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"}
|
|
@@ -123,6 +123,48 @@ export declare function setSkillTracking(id: string, enabled: boolean, directory
|
|
|
123
123
|
type Client = Pick<AiRegistryClient, "getCapabilities" | "resolveNamespace" | "getSkill" | "downloadSkill">;
|
|
124
124
|
export declare function publishedLatest(detail: Record<string, unknown>, name: string): string;
|
|
125
125
|
export declare function createSkillUpdateTasks(identity: string, clientFor: (signal: AbortSignal) => Client, directory?: string): Promise<MaintenanceTask[]>;
|
|
126
|
+
export interface SkillUpdateSelection {
|
|
127
|
+
name?: string;
|
|
128
|
+
agent?: string;
|
|
129
|
+
namespace?: string;
|
|
130
|
+
instance?: string;
|
|
131
|
+
installationId?: string;
|
|
132
|
+
}
|
|
133
|
+
export interface SkillUpdateInstallationResult {
|
|
134
|
+
id: string;
|
|
135
|
+
name: string;
|
|
136
|
+
agent: string;
|
|
137
|
+
path: string;
|
|
138
|
+
namespace: string;
|
|
139
|
+
instance: string;
|
|
140
|
+
previousVersion: string;
|
|
141
|
+
version: string;
|
|
142
|
+
status: "UPDATED" | "CURRENT" | "FAILED";
|
|
143
|
+
code: string;
|
|
144
|
+
backupPath?: string;
|
|
145
|
+
}
|
|
146
|
+
export type SkillUpdateStage = "waiting" | "checking-local" | "checking-latest" | "downloading" | "verifying" | "extracting" | "backing-up" | "replacing" | "recording";
|
|
147
|
+
export type SkillUpdateProgress = {
|
|
148
|
+
type: "start";
|
|
149
|
+
total: number;
|
|
150
|
+
} | {
|
|
151
|
+
type: "stage";
|
|
152
|
+
installation: Pick<SkillUpdateRecord, "id" | "name" | "agent" | "version">;
|
|
153
|
+
stage: SkillUpdateStage;
|
|
154
|
+
latestVersion?: string;
|
|
155
|
+
} | {
|
|
156
|
+
type: "result";
|
|
157
|
+
installation: SkillUpdateInstallationResult;
|
|
158
|
+
};
|
|
159
|
+
export interface SkillUpdateRunOptions {
|
|
160
|
+
onProgress?: (event: SkillUpdateProgress) => void;
|
|
161
|
+
signal?: AbortSignal;
|
|
162
|
+
}
|
|
163
|
+
/** One-shot updates use the recorded source and destination, without opting into future updates. */
|
|
164
|
+
export declare function updateInstalledSkills(identity: string, clientFor: (signal: AbortSignal) => Client, selection?: SkillUpdateSelection, directory?: string, options?: SkillUpdateRunOptions): Promise<{
|
|
165
|
+
ok: boolean;
|
|
166
|
+
installations: SkillUpdateInstallationResult[];
|
|
167
|
+
}>;
|
|
126
168
|
/** Explicit migration only: verify legacy lock hash AND installed tree; never overwrite during adoption. */
|
|
127
169
|
export declare function adoptLockedUserSkills(client: Client, identity: string, workspace?: string, directory?: string): Promise<{
|
|
128
170
|
name: string;
|
|
@@ -5,7 +5,7 @@ import { dirname, join, resolve } from "node:path";
|
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { appConfigDirectory } from "../app-config.js";
|
|
7
7
|
import { readState, stateLock, writeState } from "../maintenance/storage.js";
|
|
8
|
-
import { maintenanceKey } from "../maintenance/scheduler.js";
|
|
8
|
+
import { maintenanceKey, runMaintenance } from "../maintenance/scheduler.js";
|
|
9
9
|
import { AiRegistryError } from "./errors.js";
|
|
10
10
|
import { resolveRegistryNamespace } from "./namespace.js";
|
|
11
11
|
import { installSkillArchive, skillDirectoryDigest } from "./skill-installer.js";
|
|
@@ -109,22 +109,74 @@ function verifyDownload(download, version) {
|
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
export async function createSkillUpdateTasks(identity, clientFor, directory) {
|
|
112
|
+
return buildSkillUpdateTasks(identity, clientFor, directory);
|
|
113
|
+
}
|
|
114
|
+
// Presentation failures must never interrupt an atomic replacement or change its outcome.
|
|
115
|
+
function reportProgress(options, event) {
|
|
116
|
+
try {
|
|
117
|
+
options.onProgress?.(event);
|
|
118
|
+
}
|
|
119
|
+
catch { /* Progress is best effort. */ }
|
|
120
|
+
}
|
|
121
|
+
/** One-shot updates use the recorded source and destination, without opting into future updates. */
|
|
122
|
+
export async function updateInstalledSkills(identity, clientFor, selection = {}, directory, options = {}) {
|
|
123
|
+
if (selection.agent && !["chatgpt", "codex", "claude", "cursor", "workbuddy", "openclaw", "agents", "custom"].includes(selection.agent)) {
|
|
124
|
+
throw new AiRegistryError("Unsupported Skill agent target.", "ai_registry_install_target_invalid");
|
|
125
|
+
}
|
|
126
|
+
const state = await readSkillUpdates(directory);
|
|
127
|
+
const selected = state.installations.filter(item => item.identity === identity && item.scope === "user"
|
|
128
|
+
&& (!selection.name || item.name === selection.name)
|
|
129
|
+
&& (!selection.agent || item.agent === selection.agent)
|
|
130
|
+
&& (!selection.namespace || item.namespace === selection.namespace)
|
|
131
|
+
&& (!selection.instance || item.instance === selection.instance || String(item.instanceId) === selection.instance)
|
|
132
|
+
&& (!selection.installationId || item.id === selection.installationId));
|
|
133
|
+
if (!selected.length && Object.values(selection).some(Boolean)) {
|
|
134
|
+
throw new AiRegistryError("No matching managed user Skill installation for the current identity. Run skills updates status; adopt legacy installations with skills updates adopt --workspace PATH. Use registry upgrade for project Skills.", "skills_update_not_installed");
|
|
135
|
+
}
|
|
136
|
+
const tasks = await buildSkillUpdateTasks(identity, clientFor, directory, new Set(selected.map(item => item.id)), options);
|
|
137
|
+
reportProgress(options, { type: "start", total: tasks.length });
|
|
138
|
+
const installations = [];
|
|
139
|
+
for (const task of tasks) {
|
|
140
|
+
options.signal?.throwIfAborted();
|
|
141
|
+
const original = selected.find(item => task.id === `skills.update.${item.id.slice(0, 16)}`);
|
|
142
|
+
reportProgress(options, { type: "stage", installation: original, stage: "waiting" });
|
|
143
|
+
// Give every selected installation its own budget and retain the automatic updater's process lock.
|
|
144
|
+
const [outcome] = await runMaintenance([task], { directory, force: true, budgetMs: 60_000 });
|
|
145
|
+
const current = (await readSkillUpdates(directory)).installations.find(item => item.id === original.id);
|
|
146
|
+
const code = outcome?.result.code ?? "skills_update_not_checked";
|
|
147
|
+
const installation = { id: original.id, name: original.name, agent: original.agent, path: original.path,
|
|
148
|
+
namespace: original.namespace, instance: original.instance, previousVersion: original.version,
|
|
149
|
+
version: current?.version ?? original.version,
|
|
150
|
+
status: code === "skills_updated_reload_agent" ? "UPDATED" : code === "skills_update_current" ? "CURRENT" : "FAILED",
|
|
151
|
+
code, ...(code === "skills_updated_reload_agent" ? { backupPath: current?.backupPath } : {}) };
|
|
152
|
+
installations.push(installation);
|
|
153
|
+
reportProgress(options, { type: "result", installation });
|
|
154
|
+
}
|
|
155
|
+
options.signal?.throwIfAborted();
|
|
156
|
+
return { ok: installations.every(item => item.status !== "FAILED"), installations };
|
|
157
|
+
}
|
|
158
|
+
async function buildSkillUpdateTasks(identity, clientFor, directory, explicitIds, options = {}) {
|
|
159
|
+
const eligible = (item, all) => item.identity === identity
|
|
160
|
+
&& (explicitIds ? item.scope === "user" && explicitIds.has(item.id) : tracksLatest(item, all));
|
|
112
161
|
const state = await readSkillUpdates(directory);
|
|
113
162
|
// Oldest checked first so startup budgets don't starve installations at the end of the list.
|
|
114
|
-
return state.installations.filter((item) =>
|
|
163
|
+
return state.installations.filter((item) => eligible(item, state.autoUpdateAll))
|
|
115
164
|
.sort((a, b) => a.updatedAt - b.updatedAt).map((item) => ({
|
|
116
165
|
id: `skills.update.${item.id.slice(0, 16)}`, scope: identity,
|
|
117
|
-
intervalMs: 6 * 60 * 60_000, retryMs: 15 * 60_000, timeoutMs: 10_000,
|
|
166
|
+
intervalMs: 6 * 60 * 60_000, retryMs: 15 * 60_000, timeoutMs: explicitIds ? 60_000 : 10_000,
|
|
118
167
|
run: async (signal) => {
|
|
168
|
+
if (options.signal)
|
|
169
|
+
signal = AbortSignal.any([signal, options.signal]);
|
|
119
170
|
const path = updateStatePath(directory);
|
|
120
171
|
const snapshot = await readSkillUpdates(directory);
|
|
121
172
|
const original = snapshot.installations.find((entry) => entry.id === item.id);
|
|
122
|
-
if (!original ||
|
|
173
|
+
if (!original || !eligible(original, snapshot.autoUpdateAll)) {
|
|
123
174
|
return { status: "SKIPPED", code: "skills_update_disabled" };
|
|
124
175
|
}
|
|
125
176
|
let code = "skills_update_current";
|
|
126
177
|
let status = "OK";
|
|
127
178
|
let candidate;
|
|
179
|
+
const progress = (stage, latestVersion) => reportProgress(options, { type: "stage", installation: original, stage, latestVersion });
|
|
128
180
|
const failure = (error) => {
|
|
129
181
|
status = "WARNING";
|
|
130
182
|
code = signal.aborted ? "skills_update_timeout" : error instanceof AiRegistryError
|
|
@@ -134,10 +186,13 @@ export async function createSkillUpdateTasks(identity, clientFor, directory) {
|
|
|
134
186
|
};
|
|
135
187
|
// Network work holds no global inventory lock: disabling tracking must remain responsive.
|
|
136
188
|
try {
|
|
189
|
+
signal.throwIfAborted();
|
|
190
|
+
progress("checking-local");
|
|
137
191
|
if (await skillDirectoryDigest(original.path) !== original.contentDigest) {
|
|
138
192
|
throw new AiRegistryError("Local changes preserved.", "skills_update_local_conflict");
|
|
139
193
|
}
|
|
140
194
|
const client = clientFor(signal);
|
|
195
|
+
progress("checking-latest");
|
|
141
196
|
const context = await resolveRegistryNamespace(client, {
|
|
142
197
|
namespace: original.namespace, instance: original.instance, requiredAction: "install",
|
|
143
198
|
});
|
|
@@ -148,7 +203,9 @@ export async function createSkillUpdateTasks(identity, clientFor, directory) {
|
|
|
148
203
|
if (version !== original.version) {
|
|
149
204
|
if (!newerVersion(version, original.version))
|
|
150
205
|
throw new AiRegistryError("Latest moved backwards; explicit install required.", "skills_update_downgrade_blocked");
|
|
206
|
+
progress("downloading", version);
|
|
151
207
|
const download = await client.downloadSkill(original.namespaceId, original.name, { version });
|
|
208
|
+
progress("verifying", version);
|
|
152
209
|
verifyDownload(download, version);
|
|
153
210
|
await assertUnchangedDependencies(download.bytes, original.path);
|
|
154
211
|
await assertConsumersCompatible(original.name, version, original.path, directory);
|
|
@@ -163,11 +220,12 @@ export async function createSkillUpdateTasks(identity, clientFor, directory) {
|
|
|
163
220
|
return stateLock(path, async () => {
|
|
164
221
|
const current = await readSkillUpdates(directory);
|
|
165
222
|
const record = current.installations.find((entry) => entry.id === item.id);
|
|
166
|
-
if (!record ||
|
|
223
|
+
if (!record || !eligible(record, current.autoUpdateAll)) {
|
|
167
224
|
return { status: "SKIPPED", code: "skills_update_disabled" };
|
|
168
225
|
}
|
|
169
226
|
if (record.updatedAt !== original.updatedAt || record.contentDigest !== original.contentDigest
|
|
170
|
-
|| record.version !== original.version || record.namespaceId !== original.namespaceId || record.instanceId !== original.instanceId
|
|
227
|
+
|| record.version !== original.version || record.namespaceId !== original.namespaceId || record.instanceId !== original.instanceId
|
|
228
|
+
|| record.policy !== original.policy) {
|
|
171
229
|
return { status: "SKIPPED", code: "skills_update_inventory_changed" };
|
|
172
230
|
}
|
|
173
231
|
try {
|
|
@@ -178,6 +236,7 @@ export async function createSkillUpdateTasks(identity, clientFor, directory) {
|
|
|
178
236
|
const result = await installSkillArchive(candidate.download.bytes, { agent: record.agent, scope: record.scope,
|
|
179
237
|
dependencyPlanVerified: true,
|
|
180
238
|
skillName: record.name, workspace: record.workspace, customRoot: record.customRoot, force: true, maintenanceBackup: true,
|
|
239
|
+
onProgress: stage => progress(stage, candidate.version),
|
|
181
240
|
expectedInstalledDigest: record.contentDigest, expectedInstalledPath: record.path });
|
|
182
241
|
record.version = candidate.version;
|
|
183
242
|
record.archiveSha256 = candidate.download.sha256;
|
|
@@ -192,6 +251,8 @@ export async function createSkillUpdateTasks(identity, clientFor, directory) {
|
|
|
192
251
|
}
|
|
193
252
|
record.updatedAt = Date.now();
|
|
194
253
|
record.lastStatus = code;
|
|
254
|
+
if (code === "skills_updated_reload_agent")
|
|
255
|
+
progress("recording", record.version);
|
|
195
256
|
await writeState(path, current);
|
|
196
257
|
return { status, code };
|
|
197
258
|
}, 100);
|