@clawstore/clawstore 1.0.0 → 1.0.2

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.
Files changed (69) hide show
  1. package/clawstore-clawstore-1.0.2.tgz +0 -0
  2. package/dist/index.d.ts +24 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +40 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/src/__tests__/cli-sim.test.d.ts +9 -0
  7. package/dist/src/__tests__/cli-sim.test.d.ts.map +1 -0
  8. package/dist/src/__tests__/cli-sim.test.js +275 -0
  9. package/dist/src/__tests__/cli-sim.test.js.map +1 -0
  10. package/dist/src/__tests__/e2e.test.d.ts +10 -0
  11. package/dist/src/__tests__/e2e.test.d.ts.map +1 -0
  12. package/dist/src/__tests__/e2e.test.js +159 -0
  13. package/dist/src/__tests__/e2e.test.js.map +1 -0
  14. package/dist/src/cli.d.ts +3 -0
  15. package/dist/src/cli.d.ts.map +1 -0
  16. package/dist/src/cli.js +470 -0
  17. package/dist/src/cli.js.map +1 -0
  18. package/dist/src/commands.d.ts +10 -0
  19. package/dist/src/commands.d.ts.map +1 -0
  20. package/dist/src/commands.js +208 -0
  21. package/dist/src/commands.js.map +1 -0
  22. package/dist/src/constants.d.ts +28 -0
  23. package/dist/src/constants.d.ts.map +1 -0
  24. package/dist/src/constants.js +65 -0
  25. package/dist/src/constants.js.map +1 -0
  26. package/dist/src/core/agent-manager.d.ts +34 -0
  27. package/dist/src/core/agent-manager.d.ts.map +1 -0
  28. package/dist/src/core/agent-manager.js +268 -0
  29. package/dist/src/core/agent-manager.js.map +1 -0
  30. package/dist/src/core/package-installer.d.ts +30 -0
  31. package/dist/src/core/package-installer.d.ts.map +1 -0
  32. package/dist/src/core/package-installer.js +308 -0
  33. package/dist/src/core/package-installer.js.map +1 -0
  34. package/dist/src/core/packager.d.ts +20 -0
  35. package/dist/src/core/packager.d.ts.map +1 -0
  36. package/dist/src/core/packager.js +178 -0
  37. package/dist/src/core/packager.js.map +1 -0
  38. package/dist/src/core/skill-installer.d.ts +33 -0
  39. package/dist/src/core/skill-installer.d.ts.map +1 -0
  40. package/dist/src/core/skill-installer.js +179 -0
  41. package/dist/src/core/skill-installer.js.map +1 -0
  42. package/dist/src/core/store-client.d.ts +47 -0
  43. package/dist/src/core/store-client.d.ts.map +1 -0
  44. package/dist/src/core/store-client.js +111 -0
  45. package/dist/src/core/store-client.js.map +1 -0
  46. package/dist/src/core/workspace.d.ts +29 -0
  47. package/dist/src/core/workspace.d.ts.map +1 -0
  48. package/dist/src/core/workspace.js +242 -0
  49. package/dist/src/core/workspace.js.map +1 -0
  50. package/dist/src/types.d.ts +114 -0
  51. package/dist/src/types.d.ts.map +1 -0
  52. package/dist/src/types.js +3 -0
  53. package/dist/src/types.js.map +1 -0
  54. package/dist/src/utils/checksum.d.ts +4 -0
  55. package/dist/src/utils/checksum.d.ts.map +1 -0
  56. package/dist/src/utils/checksum.js +15 -0
  57. package/dist/src/utils/checksum.js.map +1 -0
  58. package/dist/src/utils/output.d.ts +13 -0
  59. package/dist/src/utils/output.d.ts.map +1 -0
  60. package/dist/src/utils/output.js +70 -0
  61. package/dist/src/utils/output.js.map +1 -0
  62. package/dist/src/utils/zip.d.ts +13 -0
  63. package/dist/src/utils/zip.d.ts.map +1 -0
  64. package/dist/src/utils/zip.js +50 -0
  65. package/dist/src/utils/zip.js.map +1 -0
  66. package/package.json +4 -2
  67. package/src/cli.ts +29 -11
  68. package/src/commands.ts +33 -3
  69. package/src/constants.ts +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-manager.js","sourceRoot":"","sources":["../../../src/core/agent-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { AgentManifest, InstallState, PackageValidationResult } from "../types.js";
2
+ export declare function loadManifest(packagePath: string): Promise<AgentManifest>;
3
+ export declare function validatePackage(packagePath: string): Promise<PackageValidationResult>;
4
+ export declare function resolvePackagePath(pathStr: string): Promise<string>;
5
+ export declare function downloadPackage(url: string, personaId: string): Promise<string>;
6
+ export interface InstallOptions {
7
+ packagePath: string;
8
+ force?: boolean;
9
+ skipSkills?: boolean;
10
+ /** OpenClaw agent to install into (default "main") */
11
+ agent?: string;
12
+ log: (msg: string) => void;
13
+ }
14
+ export declare function installAgent(opts: InstallOptions): Promise<{
15
+ state: InstallState;
16
+ agentId?: string;
17
+ error?: string;
18
+ }>;
19
+ export interface UpdateOptions {
20
+ agentId: string;
21
+ packagePath: string;
22
+ /** OpenClaw agent to update within (default "main") */
23
+ agent?: string;
24
+ log: (msg: string) => void;
25
+ }
26
+ export declare function updateAgent(opts: UpdateOptions): Promise<{
27
+ state: InstallState;
28
+ error?: string;
29
+ }>;
30
+ //# sourceMappingURL=package-installer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-installer.d.ts","sourceRoot":"","sources":["../../../src/core/package-installer.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,aAAa,EAEb,YAAY,EACZ,uBAAuB,EAExB,MAAM,aAAa,CAAC;AA0BrB,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAO9E;AAED,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA8B3F;AAID,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYzE;AAID,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYrF;AAID,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;IAChE,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CA+ID;AAID,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;IAC9D,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAmGD"}
@@ -0,0 +1,308 @@
1
+ import { readFile, access, cp, mkdir, readdir, stat } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { MANIFEST_FILE, REQUIRED_FILES, OPTIONAL_FILES, MANIFEST_REQUIRED_FIELDS, INSTALL_TOTAL_STEPS, UPDATE_TOTAL_STEPS, DOWNLOADS_DIR, DEFAULT_AGENT, } from "../constants.js";
4
+ import { ensureDirs, loadRegistry, registerAgent, backupCurrentWorkspace, restoreFromBackup, updateAgentRecord, } from "./agent-manager.js";
5
+ import { installRequiredSkills } from "./skill-installer.js";
6
+ import { resolveWorkspace } from "./workspace.js";
7
+ import { extractZip } from "../utils/zip.js";
8
+ import { stepLine } from "../utils/output.js";
9
+ async function exists(p) {
10
+ try {
11
+ await access(p);
12
+ return true;
13
+ }
14
+ catch {
15
+ return false;
16
+ }
17
+ }
18
+ // ─── Manifest loading & validation ──────────────────────────────────
19
+ export async function loadManifest(packagePath) {
20
+ const manifestPath = join(packagePath, MANIFEST_FILE);
21
+ if (!(await exists(manifestPath))) {
22
+ throw new Error(`${MANIFEST_FILE} not found in ${packagePath}`);
23
+ }
24
+ const raw = await readFile(manifestPath, "utf-8");
25
+ return JSON.parse(raw);
26
+ }
27
+ export async function validatePackage(packagePath) {
28
+ const errors = [];
29
+ let manifest = null;
30
+ try {
31
+ manifest = await loadManifest(packagePath);
32
+ }
33
+ catch (err) {
34
+ errors.push({ field: "agent.json", message: err.message });
35
+ return { valid: false, errors, manifest: null };
36
+ }
37
+ for (const f of REQUIRED_FILES) {
38
+ if (!(await exists(join(packagePath, f)))) {
39
+ errors.push({ field: f, message: `Missing required file: ${f}` });
40
+ }
41
+ }
42
+ for (const field of MANIFEST_REQUIRED_FIELDS) {
43
+ if (!manifest[field]) {
44
+ errors.push({ field: `agent.json.${field}`, message: `Missing required field: ${field}` });
45
+ }
46
+ }
47
+ for (const ef of manifest.entry_files ?? []) {
48
+ if (!(await exists(join(packagePath, ef)))) {
49
+ errors.push({ field: `entry_files`, message: `entry_files references missing file: ${ef}` });
50
+ }
51
+ }
52
+ return { valid: errors.length === 0, errors, manifest };
53
+ }
54
+ // ─── Resolve package path (dir or ZIP) ──────────────────────────────
55
+ export async function resolvePackagePath(pathStr) {
56
+ const p = join(pathStr);
57
+ const st = await stat(p);
58
+ if (st.isFile() && p.endsWith(".zip")) {
59
+ return extractZip(p);
60
+ }
61
+ if (st.isDirectory()) {
62
+ return p;
63
+ }
64
+ throw new Error(`${pathStr} is not a valid directory or ZIP file`);
65
+ }
66
+ // ─── Download package from store ────────────────────────────────────
67
+ export async function downloadPackage(url, personaId) {
68
+ await mkdir(DOWNLOADS_DIR, { recursive: true });
69
+ const destZip = join(DOWNLOADS_DIR, `${personaId}.zip`);
70
+ const res = await fetch(url);
71
+ if (!res.ok)
72
+ throw new Error(`Download failed: HTTP ${res.status}`);
73
+ const buf = Buffer.from(await res.arrayBuffer());
74
+ const { writeFile } = await import("node:fs/promises");
75
+ await writeFile(destZip, buf);
76
+ return extractZip(destZip);
77
+ }
78
+ export async function installAgent(opts) {
79
+ const { log } = opts;
80
+ const agent = opts.agent ?? DEFAULT_AGENT;
81
+ let state = "idle";
82
+ try {
83
+ await ensureDirs(agent);
84
+ const workspace = await resolveWorkspace(agent);
85
+ // [1/7] Resolve and load manifest
86
+ state = "fetching_manifest";
87
+ log(stepLine(1, INSTALL_TOTAL_STEPS, "Loading manifest", ""));
88
+ const packagePath = await resolvePackagePath(opts.packagePath);
89
+ const manifest = await loadManifest(packagePath);
90
+ const personaId = manifest.id;
91
+ log(stepLine(1, INSTALL_TOTAL_STEPS, "Loading manifest", "OK"));
92
+ log(`\n Installing: ${manifest.name} (${personaId})`);
93
+ log(` Version: ${manifest.version}`);
94
+ log(` Category: ${manifest.category ?? "N/A"}`);
95
+ if (agent !== DEFAULT_AGENT)
96
+ log(` Agent: ${agent}`);
97
+ log("");
98
+ // [2/7] Validate package
99
+ state = "verifying_package";
100
+ log(stepLine(2, INSTALL_TOTAL_STEPS, "Validating package", ""));
101
+ const validation = await validatePackage(packagePath);
102
+ if (!validation.valid) {
103
+ const reasons = validation.errors.map((e) => ` - ${e.message}`).join("\n");
104
+ log(stepLine(2, INSTALL_TOTAL_STEPS, "Validating package", "FAILED"));
105
+ log(reasons);
106
+ return { state: "failed", agentId: personaId, error: `Validation failed:\n${reasons}` };
107
+ }
108
+ log(stepLine(2, INSTALL_TOTAL_STEPS, "Validating package", "OK"));
109
+ // [3/7] Check existing installation
110
+ state = "checking_compatibility";
111
+ log(stepLine(3, INSTALL_TOTAL_STEPS, "Checking existing installation", ""));
112
+ const registry = await loadRegistry(agent);
113
+ if (registry.agents[personaId] && !opts.force) {
114
+ const existing = registry.agents[personaId];
115
+ log(stepLine(3, INSTALL_TOTAL_STEPS, "Checking existing installation", `FOUND (v${existing.version})`));
116
+ log(`\n Agent '${personaId}' is already installed.`);
117
+ log(` Use 'openclaw clawstore update ${personaId}' to update,`);
118
+ log(` or add --force to reinstall.`);
119
+ return { state: "failed", agentId: personaId, error: "already installed" };
120
+ }
121
+ log(stepLine(3, INSTALL_TOTAL_STEPS, "Checking existing installation", registry.agents[personaId] ? "FOUND (--force set, reinstalling)" : "OK (fresh install)"));
122
+ // [4/7] Backup existing workspace files
123
+ log(stepLine(4, INSTALL_TOTAL_STEPS, "Backing up existing files", ""));
124
+ const backupPath = await backupCurrentWorkspace(personaId, "install", agent);
125
+ log(stepLine(4, INSTALL_TOTAL_STEPS, "Backing up existing files", "OK"));
126
+ // [5/7] Install required skills
127
+ state = "installing_skills";
128
+ const skills = manifest.skills ?? [];
129
+ const requiredSkills = skills.filter((s) => s.required);
130
+ if (opts.skipSkills) {
131
+ log(stepLine(5, INSTALL_TOTAL_STEPS, "Checking skill dependencies", "SKIPPED (--skip-skills)"));
132
+ }
133
+ else {
134
+ log(stepLine(5, INSTALL_TOTAL_STEPS, "Checking skill dependencies", requiredSkills.length > 0 ? `${requiredSkills.length} required` : "OK (no dependencies)"));
135
+ if (requiredSkills.length > 0) {
136
+ const skillResult = await installRequiredSkills(skills, log, packagePath, agent);
137
+ if (!skillResult.allOk) {
138
+ log(`\n Skill installation failed. Rolling back...`);
139
+ state = "rolling_back";
140
+ await restoreFromBackup(backupPath, agent);
141
+ return { state: "failed", agentId: personaId, error: "required skill installation failed" };
142
+ }
143
+ }
144
+ }
145
+ // [6/7] Copy files to workspace
146
+ state = "installing_agent";
147
+ log(stepLine(6, INSTALL_TOTAL_STEPS, "Installing agent files", ""));
148
+ const installedFiles = [];
149
+ for (const f of [...REQUIRED_FILES, ...OPTIONAL_FILES]) {
150
+ const src = join(packagePath, f);
151
+ if (await exists(src)) {
152
+ await cp(src, join(workspace, f), { force: true });
153
+ installedFiles.push(f);
154
+ }
155
+ }
156
+ const skillsSrc = join(packagePath, "skills");
157
+ if (await exists(skillsSrc)) {
158
+ const skillsDest = join(workspace, "skills");
159
+ await mkdir(skillsDest, { recursive: true });
160
+ const entries = await readdir(skillsSrc, { withFileTypes: true });
161
+ for (const entry of entries) {
162
+ const srcPath = join(skillsSrc, entry.name);
163
+ const destPath = join(skillsDest, entry.name);
164
+ if (entry.isDirectory()) {
165
+ await cp(srcPath, destPath, { recursive: true, force: true });
166
+ installedFiles.push(`skills/${entry.name}/`);
167
+ }
168
+ else {
169
+ await cp(srcPath, destPath, { force: true });
170
+ installedFiles.push(`skills/${entry.name}`);
171
+ }
172
+ }
173
+ }
174
+ log(stepLine(6, INSTALL_TOTAL_STEPS, "Installing agent files", `OK (${installedFiles.length} files)`));
175
+ // [7/7] Register
176
+ state = "registering_agent";
177
+ log(stepLine(7, INSTALL_TOTAL_STEPS, "Registering agent", ""));
178
+ const record = {
179
+ id: personaId,
180
+ name: manifest.name,
181
+ version: manifest.version,
182
+ category: manifest.category ?? "",
183
+ author: manifest.author ?? "",
184
+ enabled: true,
185
+ installed_at: new Date().toISOString(),
186
+ updated_at: new Date().toISOString(),
187
+ source: packagePath,
188
+ install_path: workspace,
189
+ backup_path: backupPath,
190
+ files: installedFiles,
191
+ skills: skills.map((s) => s.id),
192
+ };
193
+ await registerAgent(record, agent);
194
+ log(stepLine(7, INSTALL_TOTAL_STEPS, "Registering agent", "OK"));
195
+ // Summary
196
+ state = "success";
197
+ log(`\n Installed: ${manifest.name}@${manifest.version}`);
198
+ if (installedFiles.length > 0) {
199
+ const shown = installedFiles.slice(0, 5).join(", ");
200
+ const extra = installedFiles.length > 5 ? ` +${installedFiles.length - 5} more` : "";
201
+ log(` Files: ${shown}${extra}`);
202
+ }
203
+ log(` Status: enabled`);
204
+ if (agent !== DEFAULT_AGENT)
205
+ log(` Agent: ${agent}`);
206
+ log(` Backup: ${backupPath}`);
207
+ log(`\n Next: start a new chat in OpenClaw to activate the new persona\n`);
208
+ return { state: "success", agentId: personaId };
209
+ }
210
+ catch (err) {
211
+ return { state: "failed", error: err.message };
212
+ }
213
+ }
214
+ export async function updateAgent(opts) {
215
+ const { agentId: personaId, log } = opts;
216
+ const agent = opts.agent ?? DEFAULT_AGENT;
217
+ try {
218
+ await ensureDirs(agent);
219
+ const workspace = await resolveWorkspace(agent);
220
+ const registry = await loadRegistry(agent);
221
+ const current = registry.agents[personaId];
222
+ if (!current) {
223
+ log(`\n Agent '${personaId}' is not installed.\n`);
224
+ return { state: "failed", error: "not installed" };
225
+ }
226
+ const packagePath = await resolvePackagePath(opts.packagePath);
227
+ const manifest = await loadManifest(packagePath);
228
+ log(`\n Updating: ${manifest.name}`);
229
+ log(` Current version: ${current.version}`);
230
+ log(` New version: ${manifest.version}`);
231
+ if (agent !== DEFAULT_AGENT)
232
+ log(` Agent: ${agent}`);
233
+ log("");
234
+ // [1/5] Validate
235
+ log(stepLine(1, UPDATE_TOTAL_STEPS, "Validating new package", ""));
236
+ const validation = await validatePackage(packagePath);
237
+ if (!validation.valid) {
238
+ log(stepLine(1, UPDATE_TOTAL_STEPS, "Validating new package", "FAILED"));
239
+ return { state: "failed", error: "validation failed" };
240
+ }
241
+ log(stepLine(1, UPDATE_TOTAL_STEPS, "Validating new package", "OK"));
242
+ // [2/5] Check new skills
243
+ log(stepLine(2, UPDATE_TOTAL_STEPS, "Checking new skill dependencies", ""));
244
+ const oldSkills = new Set(current.skills ?? []);
245
+ const newSkills = new Set((manifest.skills ?? []).map((s) => s.id));
246
+ const addedSkills = [...newSkills].filter((s) => !oldSkills.has(s));
247
+ if (addedSkills.length > 0) {
248
+ log(stepLine(2, UPDATE_TOTAL_STEPS, "Checking new skill dependencies", `${addedSkills.length} new`));
249
+ for (const sid of addedSkills)
250
+ log(` + ${sid}`);
251
+ }
252
+ else {
253
+ log(stepLine(2, UPDATE_TOTAL_STEPS, "Checking new skill dependencies", "OK (no new)"));
254
+ }
255
+ // [3/5] Backup
256
+ log(stepLine(3, UPDATE_TOTAL_STEPS, "Backing up current version", ""));
257
+ const backupPath = await backupCurrentWorkspace(personaId, "update", agent);
258
+ log(stepLine(3, UPDATE_TOTAL_STEPS, "Backing up current version", "OK"));
259
+ // [4/5] Install new files
260
+ log(stepLine(4, UPDATE_TOTAL_STEPS, "Installing updated files", ""));
261
+ const installedFiles = [];
262
+ for (const f of [...REQUIRED_FILES, ...OPTIONAL_FILES]) {
263
+ const src = join(packagePath, f);
264
+ if (await exists(src)) {
265
+ await cp(src, join(workspace, f), { force: true });
266
+ installedFiles.push(f);
267
+ }
268
+ }
269
+ const skillsSrc = join(packagePath, "skills");
270
+ if (await exists(skillsSrc)) {
271
+ const skillsDest = join(workspace, "skills");
272
+ await mkdir(skillsDest, { recursive: true });
273
+ const entries = await readdir(skillsSrc, { withFileTypes: true });
274
+ for (const entry of entries) {
275
+ const srcPath = join(skillsSrc, entry.name);
276
+ const destPath = join(skillsDest, entry.name);
277
+ if (entry.isDirectory()) {
278
+ await cp(srcPath, destPath, { recursive: true, force: true });
279
+ installedFiles.push(`skills/${entry.name}/`);
280
+ }
281
+ else {
282
+ await cp(srcPath, destPath, { force: true });
283
+ installedFiles.push(`skills/${entry.name}`);
284
+ }
285
+ }
286
+ }
287
+ log(stepLine(4, UPDATE_TOTAL_STEPS, "Installing updated files", `OK (${installedFiles.length} files)`));
288
+ // [5/5] Update registry
289
+ log(stepLine(5, UPDATE_TOTAL_STEPS, "Updating registry", ""));
290
+ await updateAgentRecord(personaId, {
291
+ version: manifest.version,
292
+ updated_at: new Date().toISOString(),
293
+ source: packagePath,
294
+ backup_path: backupPath,
295
+ files: installedFiles,
296
+ skills: [...newSkills],
297
+ }, agent);
298
+ log(stepLine(5, UPDATE_TOTAL_STEPS, "Updating registry", "OK"));
299
+ log(`\n Updated: ${manifest.name} ${current.version} -> ${manifest.version}`);
300
+ log(` Backup of previous version: ${backupPath}`);
301
+ log(`\n Next: restart your OpenClaw session to load the updated persona\n`);
302
+ return { state: "success" };
303
+ }
304
+ catch (err) {
305
+ return { state: "failed", error: err.message };
306
+ }
307
+ }
308
+ //# sourceMappingURL=package-installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-installer.js","sourceRoot":"","sources":["../../../src/core/package-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,aAAa,EACb,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,aAAa,GACd,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,KAAK,UAAU,MAAM,CAAC,CAAS;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,GAAG,aAAa,iBAAiB,WAAW,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAkB,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB;IACvD,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,IAAI,QAAQ,GAAyB,IAAI,CAAC;IAC1C,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAClD,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,0BAA0B,CAAC,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,wBAAwB,EAAE,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,KAA4B,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,KAAK,EAAE,EAAE,OAAO,EAAE,2BAA2B,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QAC5C,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,wCAAwC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC1D,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAe;IACtD,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAExB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,uCAAuC,CAAC,CAAC;AACrE,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,SAAiB;IAClE,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,SAAS,MAAM,CAAC,CAAC;IAExD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAEpE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACjD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACvD,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAE9B,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAoB;IAKrD,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC;IAC1C,IAAI,KAAK,GAAiB,MAAM,CAAC;IAEjC,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAEhD,kCAAkC;QAClC,KAAK,GAAG,mBAAmB,CAAC;QAC5B,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC;QAChE,GAAG,CAAC,mBAAmB,QAAQ,CAAC,IAAI,KAAK,SAAS,GAAG,CAAC,CAAC;QACvD,GAAG,CAAC,iBAAiB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,GAAG,CAAC,iBAAiB,QAAQ,CAAC,QAAQ,IAAI,KAAK,EAAE,CAAC,CAAC;QACnD,IAAI,KAAK,KAAK,aAAa;YAAE,GAAG,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,EAAE,CAAC,CAAC;QAER,yBAAyB;QACzB,KAAK,GAAG,mBAAmB,CAAC;QAC5B,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9E,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC;YACtE,GAAG,CAAC,OAAO,CAAC,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,uBAAuB,OAAO,EAAE,EAAE,CAAC;QAC1F,CAAC;QACD,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC;QAElE,oCAAoC;QACpC,KAAK,GAAG,wBAAwB,CAAC;QACjC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,mBAAmB,EAAE,gCAAgC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5C,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,mBAAmB,EAAE,gCAAgC,EAAE,WAAW,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YACxG,GAAG,CAAC,cAAc,SAAS,yBAAyB,CAAC,CAAC;YACtD,GAAG,CAAC,oCAAoC,SAAS,cAAc,CAAC,CAAC;YACjE,GAAG,CAAC,gCAAgC,CAAC,CAAC;YACtC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;QAC7E,CAAC;QACD,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,mBAAmB,EAAE,gCAAgC,EACnE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAE5F,wCAAwC;QACxC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7E,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,IAAI,CAAC,CAAC,CAAC;QAEzE,gCAAgC;QAChC,KAAK,GAAG,mBAAmB,CAAC;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;QACrC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,yBAAyB,CAAC,CAAC,CAAC;QAClG,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,mBAAmB,EAAE,6BAA6B,EAChE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC7F,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;gBACjF,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;oBACvB,GAAG,CAAC,gDAAgD,CAAC,CAAC;oBACtD,KAAK,GAAG,cAAc,CAAC;oBACvB,MAAM,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;oBAC3C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC;gBAC9F,CAAC;YACH,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,KAAK,GAAG,kBAAkB,CAAC;QAC3B,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC;YACvD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,MAAM,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnD,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC9C,IAAI,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC7C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC9D,cAAc,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC/C,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC7C,cAAc,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC;QACD,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,OAAO,cAAc,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC;QAEvG,iBAAiB;QACjB,KAAK,GAAG,mBAAmB,CAAC;QAC5B,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAyB;YACnC,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,EAAE;YACjC,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE;YAC7B,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACtC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,MAAM,EAAE,WAAW;YACnB,YAAY,EAAE,SAAS;YACvB,WAAW,EAAE,UAAU;YACvB,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChC,CAAC;QACF,MAAM,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACnC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC;QAEjE,UAAU;QACV,KAAK,GAAG,SAAS,CAAC;QAClB,GAAG,CAAC,kBAAkB,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,GAAG,CAAC,YAAY,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,aAAa;YAAE,GAAG,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;QACtD,GAAG,CAAC,aAAa,UAAU,EAAE,CAAC,CAAC;QAC/B,GAAG,CAAC,sEAAsE,CAAC,CAAC;QAE5E,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;IAC5D,CAAC;AACH,CAAC;AAYD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAmB;IAInD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,cAAc,SAAS,uBAAuB,CAAC,CAAC;YACpD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QACrD,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;QAEjD,GAAG,CAAC,iBAAiB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACtC,GAAG,CAAC,uBAAuB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,GAAG,CAAC,uBAAuB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,aAAa;YAAE,GAAG,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;QACjE,GAAG,CAAC,EAAE,CAAC,CAAC;QAER,iBAAiB;QACjB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,QAAQ,CAAC,CAAC,CAAC;YACzE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;QACzD,CAAC;QACD,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,IAAI,CAAC,CAAC,CAAC;QAErE,yBAAyB;QACzB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,kBAAkB,EAAE,iCAAiC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,kBAAkB,EAAE,iCAAiC,EAAE,GAAG,WAAW,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC;YACrG,KAAK,MAAM,GAAG,IAAI,WAAW;gBAAE,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,kBAAkB,EAAE,iCAAiC,EAAE,aAAa,CAAC,CAAC,CAAC;QACzF,CAAC;QAED,eAAe;QACf,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC5E,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,IAAI,CAAC,CAAC,CAAC;QAEzE,0BAA0B;QAC1B,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC;YACvD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,MAAM,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnD,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC9C,IAAI,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC7C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC9D,cAAc,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC/C,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC7C,cAAc,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC;QACD,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,OAAO,cAAc,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC;QAExG,wBAAwB;QACxB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9D,MAAM,iBAAiB,CAAC,SAAS,EAAE;YACjC,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,UAAU;YACvB,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC;SACvB,EAAE,KAAK,CAAC,CAAC;QACV,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC;QAEhE,GAAG,CAAC,gBAAgB,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,GAAG,CAAC,iCAAiC,UAAU,EAAE,CAAC,CAAC;QACnD,GAAG,CAAC,uEAAuE,CAAC,CAAC;QAE7E,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;IAC5D,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { AgentManifest } from "../types.js";
2
+ export interface PackOptions {
3
+ packagePath: string;
4
+ outputDir?: string;
5
+ name?: string;
6
+ category?: string;
7
+ log: (msg: string) => void;
8
+ }
9
+ export declare function packAgent(opts: PackOptions): Promise<{
10
+ zipPath: string;
11
+ sizeKb: number;
12
+ manifest: AgentManifest;
13
+ } | null>;
14
+ export declare function packCurrentAgent(opts: {
15
+ name?: string;
16
+ category?: string;
17
+ outputDir?: string;
18
+ log: (msg: string) => void;
19
+ }): Promise<ReturnType<typeof packAgent>>;
20
+ //# sourceMappingURL=packager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packager.d.ts","sourceRoot":"","sources":["../../../src/core/packager.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,aAAa,CAAC;AAmFlE,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,aAAa,CAAC;CACzB,GAAG,IAAI,CAAC,CA0GR;AAID,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CASxC"}
@@ -0,0 +1,178 @@
1
+ import { readFile, readdir, access, writeFile, mkdir } from "node:fs/promises";
2
+ import { join, basename } from "node:path";
3
+ import { MANIFEST_FILE, REQUIRED_FILES, OPTIONAL_FILES, PACK_TOTAL_STEPS, PLUGIN_VERSION, } from "../constants.js";
4
+ import { resolveWorkspace } from "./workspace.js";
5
+ import { createZip } from "../utils/zip.js";
6
+ import { computeSha256 } from "../utils/checksum.js";
7
+ import { stepLine } from "../utils/output.js";
8
+ async function exists(p) {
9
+ try {
10
+ await access(p);
11
+ return true;
12
+ }
13
+ catch {
14
+ return false;
15
+ }
16
+ }
17
+ /**
18
+ * Detect skills from the package directory or current workspace.
19
+ *
20
+ * High confidence: skills listed in agent.json, or present in skills/ directory.
21
+ * Low confidence: skill-like references in AGENTS.md / SOUL.md.
22
+ */
23
+ async function detectSkills(packagePath) {
24
+ const detected = [];
25
+ const seen = new Set();
26
+ // From agent.json
27
+ const manifestPath = join(packagePath, MANIFEST_FILE);
28
+ if (await exists(manifestPath)) {
29
+ try {
30
+ const manifest = JSON.parse(await readFile(manifestPath, "utf-8"));
31
+ for (const s of manifest.skills ?? []) {
32
+ if (!seen.has(s.id)) {
33
+ detected.push({ id: s.id, confidence: "high", source: "agent.json" });
34
+ seen.add(s.id);
35
+ }
36
+ }
37
+ }
38
+ catch { /* ignore */ }
39
+ }
40
+ // From skills/ directory
41
+ const skillsDir = join(packagePath, "skills");
42
+ if (await exists(skillsDir)) {
43
+ const entries = await readdir(skillsDir, { withFileTypes: true });
44
+ for (const entry of entries) {
45
+ const skillId = entry.name.replace(/\.md$/i, "");
46
+ if (!seen.has(skillId)) {
47
+ detected.push({ id: skillId, confidence: "high", source: "skills/ directory" });
48
+ seen.add(skillId);
49
+ }
50
+ }
51
+ }
52
+ // Heuristic: scan AGENTS.md / SOUL.md for skill-like references
53
+ for (const mdFile of ["AGENTS.md", "SOUL.md"]) {
54
+ const fp = join(packagePath, mdFile);
55
+ if (await exists(fp)) {
56
+ const content = await readFile(fp, "utf-8");
57
+ const skillRefs = content.match(/(?:skill|能力|技能)[::]\s*([a-z0-9-]+)/gi);
58
+ if (skillRefs) {
59
+ for (const ref of skillRefs) {
60
+ const match = ref.match(/([a-z0-9-]+)$/i);
61
+ if (match && !seen.has(match[1])) {
62
+ detected.push({ id: match[1], confidence: "low", source: mdFile });
63
+ seen.add(match[1]);
64
+ }
65
+ }
66
+ }
67
+ }
68
+ }
69
+ return detected;
70
+ }
71
+ export async function packAgent(opts) {
72
+ const { packagePath, log } = opts;
73
+ // [1/3] Validate
74
+ log(stepLine(1, PACK_TOTAL_STEPS, "Validating package", ""));
75
+ let manifest;
76
+ const manifestPath = join(packagePath, MANIFEST_FILE);
77
+ if (await exists(manifestPath)) {
78
+ manifest = JSON.parse(await readFile(manifestPath, "utf-8"));
79
+ }
80
+ else {
81
+ log(` No ${MANIFEST_FILE} found. Generating from directory contents...`);
82
+ const dirName = basename(packagePath);
83
+ manifest = {
84
+ id: dirName.toLowerCase().replace(/[^a-z0-9-]/g, "-"),
85
+ slug: dirName.toLowerCase().replace(/[^a-z0-9-]/g, "-"),
86
+ name: opts.name ?? dirName,
87
+ subtitle: "",
88
+ description: "",
89
+ version: "1.0.0",
90
+ author: "",
91
+ license: "Commercial",
92
+ price: 0,
93
+ currency: "USD",
94
+ category: opts.category ?? "general",
95
+ tags: [],
96
+ openclaw_version: ">=0.8.0",
97
+ entry_files: [],
98
+ skills: [],
99
+ };
100
+ }
101
+ // Validate required files
102
+ const missingRequired = [];
103
+ for (const f of REQUIRED_FILES) {
104
+ if (!(await exists(join(packagePath, f)))) {
105
+ missingRequired.push(f);
106
+ }
107
+ }
108
+ if (missingRequired.length > 0) {
109
+ log(stepLine(1, PACK_TOTAL_STEPS, "Validating package", "FAILED"));
110
+ for (const f of missingRequired)
111
+ log(` - Missing: ${f}`);
112
+ return null;
113
+ }
114
+ log(stepLine(1, PACK_TOTAL_STEPS, "Validating package", "OK"));
115
+ // [2/3] Detect skills and compute checksums
116
+ log(stepLine(2, PACK_TOTAL_STEPS, "Detecting skills & checksums", ""));
117
+ const detectedSkills = await detectSkills(packagePath);
118
+ const highConfidence = detectedSkills.filter((s) => s.confidence === "high");
119
+ const lowConfidence = detectedSkills.filter((s) => s.confidence === "low");
120
+ if (highConfidence.length > 0) {
121
+ log(` Detected Skills: ${highConfidence.map((s) => s.id).join(", ")}`);
122
+ }
123
+ if (lowConfidence.length > 0) {
124
+ log(` Suggested Skills: ${lowConfidence.map((s) => s.id).join(", ")}`);
125
+ }
126
+ // Update manifest skills from detection if empty
127
+ if (manifest.skills.length === 0 && highConfidence.length > 0) {
128
+ manifest.skills = highConfidence.map((s) => ({
129
+ id: s.id,
130
+ version: "^1.0.0",
131
+ required: true,
132
+ }));
133
+ }
134
+ // Update entry_files from actual files
135
+ const actualEntryFiles = [];
136
+ for (const f of [...REQUIRED_FILES, ...OPTIONAL_FILES]) {
137
+ if (await exists(join(packagePath, f))) {
138
+ actualEntryFiles.push(f);
139
+ }
140
+ }
141
+ manifest.entry_files = actualEntryFiles;
142
+ // Set pack metadata
143
+ manifest.packed_at = new Date().toISOString();
144
+ manifest.packaged_by = `clawstore-plugin@${PLUGIN_VERSION}`;
145
+ // Compute checksum for SOUL.md
146
+ const soulPath = join(packagePath, "SOUL.md");
147
+ if (await exists(soulPath)) {
148
+ manifest.checksum = await computeSha256(soulPath);
149
+ }
150
+ // Write updated manifest back
151
+ await writeFile(manifestPath, JSON.stringify(manifest, null, 2), "utf-8");
152
+ log(stepLine(2, PACK_TOTAL_STEPS, "Detecting skills & checksums", "OK"));
153
+ // [3/3] Create ZIP
154
+ const outputDir = opts.outputDir ?? join(packagePath, "..");
155
+ await mkdir(outputDir, { recursive: true });
156
+ const zipName = `${manifest.id}-v${manifest.version}.zip`;
157
+ const zipPath = join(outputDir, zipName);
158
+ log(stepLine(3, PACK_TOTAL_STEPS, `Creating ZIP: ${zipName}`, ""));
159
+ const result = await createZip(packagePath, zipPath);
160
+ const sizeKb = result.sizeBytes / 1024;
161
+ log(stepLine(3, PACK_TOTAL_STEPS, `Creating ZIP: ${zipName}`, "OK"));
162
+ log(`\n Package: ${zipPath}`);
163
+ log(` Size: ${sizeKb.toFixed(1)} KB`);
164
+ log(`\n Ready to upload to Clawstore or distribute as ZIP.\n`);
165
+ return { zipPath, sizeKb, manifest };
166
+ }
167
+ // ─── Pack from current workspace ────────────────────────────────────
168
+ export async function packCurrentAgent(opts) {
169
+ const workspace = await resolveWorkspace();
170
+ return packAgent({
171
+ packagePath: workspace,
172
+ outputDir: opts.outputDir,
173
+ name: opts.name,
174
+ category: opts.category,
175
+ log: opts.log,
176
+ });
177
+ }
178
+ //# sourceMappingURL=packager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packager.js","sourceRoot":"","sources":["../../../src/core/packager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { SkillDependency } from "../types.js";
2
+ export interface SkillCheckResult {
3
+ skillId: string;
4
+ required: boolean;
5
+ requiredVersion: string;
6
+ installedVersion: string | null;
7
+ action: "skip" | "install" | "upgrade";
8
+ }
9
+ export declare function checkSkillDependencies(skills: SkillDependency[]): SkillCheckResult[];
10
+ /**
11
+ * Install or upgrade a single skill.
12
+ *
13
+ * Strategy:
14
+ * 1. Try bundled skills/ in the package directory first
15
+ * 2. Fall back to `openclaw plugins install <skill-id>` (npm registry)
16
+ */
17
+ export declare function installSkill(skillId: string, version: string, packagePath?: string, agent?: string): Promise<{
18
+ ok: boolean;
19
+ message: string;
20
+ }>;
21
+ /**
22
+ * Install all required skills for an agent.
23
+ */
24
+ export declare function installRequiredSkills(skills: SkillDependency[], log?: (msg: string) => void, packagePath?: string, agent?: string): Promise<{
25
+ allOk: boolean;
26
+ results: Array<SkillCheckResult & {
27
+ installResult?: {
28
+ ok: boolean;
29
+ message: string;
30
+ };
31
+ }>;
32
+ }>;
33
+ //# sourceMappingURL=skill-installer.d.ts.map