@cogineai/clawpacker 0.1.0 → 0.2.0
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 +76 -38
- package/dist/cli.js +10 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/export.d.ts +2 -0
- package/dist/commands/export.js +28 -7
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/import.d.ts +2 -0
- package/dist/commands/import.js +121 -23
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/inspect.js +9 -7
- package/dist/commands/inspect.js.map +1 -1
- package/dist/commands/validate.d.ts +1 -0
- package/dist/commands/validate.js +12 -1
- package/dist/commands/validate.js.map +1 -1
- package/dist/core/agent-extract.js.map +1 -1
- package/dist/core/archive.d.ts +5 -0
- package/dist/core/archive.js +83 -0
- package/dist/core/archive.js.map +1 -0
- package/dist/core/constants.d.ts +10 -4
- package/dist/core/constants.js +25 -8
- package/dist/core/constants.js.map +1 -1
- package/dist/core/import-exec.d.ts +2 -2
- package/dist/core/import-exec.js +0 -3
- package/dist/core/import-exec.js.map +1 -1
- package/dist/core/import-plan.js +35 -17
- package/dist/core/import-plan.js.map +1 -1
- package/dist/core/manifest.d.ts +8 -0
- package/dist/core/manifest.js +28 -4
- package/dist/core/manifest.js.map +1 -1
- package/dist/core/openclaw-config.d.ts +34 -10
- package/dist/core/openclaw-config.js +133 -29
- package/dist/core/openclaw-config.js.map +1 -1
- package/dist/core/package-read.d.ts +5 -0
- package/dist/core/package-read.js +66 -3
- package/dist/core/package-read.js.map +1 -1
- package/dist/core/package-write.d.ts +14 -1
- package/dist/core/package-write.js +45 -4
- package/dist/core/package-write.js.map +1 -1
- package/dist/core/types.d.ts +82 -9
- package/dist/core/validate.js +14 -18
- package/dist/core/validate.js.map +1 -1
- package/dist/core/workspace-scan.js +46 -37
- package/dist/core/workspace-scan.js.map +1 -1
- package/dist/renderable-cli-error.d.ts +6 -0
- package/dist/renderable-cli-error.js +14 -0
- package/dist/renderable-cli-error.js.map +1 -0
- package/dist/utils/fs.d.ts +1 -0
- package/dist/utils/fs.js +14 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/output.d.ts +5 -0
- package/dist/utils/output.js +14 -0
- package/dist/utils/output.js.map +1 -0
- package/package.json +12 -3
|
@@ -3,6 +3,7 @@ interface ValidateOptions {
|
|
|
3
3
|
targetWorkspace: string;
|
|
4
4
|
agentId?: string;
|
|
5
5
|
config?: string;
|
|
6
|
+
json?: boolean;
|
|
6
7
|
}
|
|
7
8
|
export declare function runValidate(options: ValidateOptions): Promise<void>;
|
|
8
9
|
export declare function registerValidateCommand(command: Command): void;
|
|
@@ -7,6 +7,7 @@ exports.runValidate = runValidate;
|
|
|
7
7
|
exports.registerValidateCommand = registerValidateCommand;
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
const validate_1 = require("../core/validate");
|
|
10
|
+
const output_1 = require("../utils/output");
|
|
10
11
|
async function runValidate(options) {
|
|
11
12
|
if (!options.targetWorkspace) {
|
|
12
13
|
throw new Error('validate requires --target-workspace <path>');
|
|
@@ -16,7 +17,16 @@ async function runValidate(options) {
|
|
|
16
17
|
agentId: options.agentId,
|
|
17
18
|
targetConfigPath: options.config ? node_path_1.default.resolve(options.config) : undefined,
|
|
18
19
|
});
|
|
19
|
-
|
|
20
|
+
if (options.json) {
|
|
21
|
+
console.log(JSON.stringify(report, null, 2));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const lines = [`Validation: ${report.failed.length === 0 ? 'passed' : 'FAILED'}`];
|
|
25
|
+
(0, output_1.pushSection)(lines, 'Passed', report.passed);
|
|
26
|
+
(0, output_1.pushSection)(lines, 'Warnings', report.warnings);
|
|
27
|
+
(0, output_1.pushSection)(lines, 'Failed', report.failed);
|
|
28
|
+
(0, output_1.pushSection)(lines, 'Next steps', report.nextSteps);
|
|
29
|
+
console.log(lines.join('\n'));
|
|
20
30
|
}
|
|
21
31
|
function registerValidateCommand(command) {
|
|
22
32
|
command
|
|
@@ -24,6 +34,7 @@ function registerValidateCommand(command) {
|
|
|
24
34
|
.requiredOption('--target-workspace <path>', 'Imported target workspace path')
|
|
25
35
|
.option('--agent-id <id>', 'Expected target agent id')
|
|
26
36
|
.option('--config <path>', 'Target OpenClaw config path for consistency checks')
|
|
37
|
+
.option('--json', 'Emit the full machine-readable JSON report')
|
|
27
38
|
.action(runValidate);
|
|
28
39
|
}
|
|
29
40
|
//# sourceMappingURL=validate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":";;;;;AAYA,kCAwBC;AAED,0DAQC;AA9CD,0DAA6B;AAE7B,+CAA6D;AAC7D,4CAA8C;AASvC,KAAK,UAAU,WAAW,CAAC,OAAwB;IACxD,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,oCAAyB,EAAC;QAC7C,mBAAmB,EAAE,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;QAC1D,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;KAC5E,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAElF,IAAA,oBAAW,EAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAA,oBAAW,EAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAA,oBAAW,EAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAA,oBAAW,EAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAEnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,SAAgB,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,WAAW,CAAC,4DAA4D,CAAC;SACzE,cAAc,CAAC,2BAA2B,EAAE,gCAAgC,CAAC;SAC7E,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,CAAC;SACrD,MAAM,CAAC,iBAAiB,EAAE,oDAAoD,CAAC;SAC/E,MAAM,CAAC,QAAQ,EAAE,4CAA4C,CAAC;SAC9D,MAAM,CAAC,WAAW,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-extract.js","sourceRoot":"","sources":["../../src/core/agent-extract.ts"],"names":[],"mappings":";;;;;AAIA,
|
|
1
|
+
{"version":3,"file":"agent-extract.js","sourceRoot":"","sources":["../../src/core/agent-extract.ts"],"names":[],"mappings":";;;;;AAIA,wDAqCC;AAzCD,0DAA6B;AAC7B,uDAAuF;AAGhF,KAAK,UAAU,sBAAsB,CAC1C,aAAqB,EACrB,UAAqD,EAAE;IAEvD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAA,oCAAkB,EAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;QAChG,OAAO,IAAA,gDAA8B,EAAC;YACpC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,aAAa;YACb,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,QAAQ,GAAG,mBAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAElE,OAAO;YACL,KAAK,EAAE;gBACL,WAAW;gBACX,aAAa;gBACb,SAAS,EAAE;oBACT,iBAAiB,EAAE,QAAQ;iBAC5B;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,aAAa;iBACpB;aACF;YACD,mBAAmB,EAAE;gBACnB,mBAAmB,EAAE,uBAAuB;gBAC5C,qBAAqB,EAAE,UAAU;gBACjC,mCAAmC,EAAE,uBAAuB;gBAC5D,qBAAqB,EAAE,UAAU;aAClC;YACD,KAAK,EAAE,CAAC,8EAA8E,CAAC;SACxF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK;SACT,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function isArchivePath(filePath: string): boolean;
|
|
2
|
+
export declare function deriveArchivePath(directoryOutputPath: string): string;
|
|
3
|
+
export declare function createArchive(sourceDir: string, archivePath: string): Promise<void>;
|
|
4
|
+
export declare function extractArchive(archivePath: string): Promise<string>;
|
|
5
|
+
export declare function cleanupTempDir(tempDir: string): Promise<void>;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.isArchivePath = isArchivePath;
|
|
40
|
+
exports.deriveArchivePath = deriveArchivePath;
|
|
41
|
+
exports.createArchive = createArchive;
|
|
42
|
+
exports.extractArchive = extractArchive;
|
|
43
|
+
exports.cleanupTempDir = cleanupTempDir;
|
|
44
|
+
const promises_1 = require("node:fs/promises");
|
|
45
|
+
const node_os_1 = require("node:os");
|
|
46
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
47
|
+
const tar = __importStar(require("tar"));
|
|
48
|
+
const ARCHIVE_SUFFIX = '.ocpkg.tar.gz';
|
|
49
|
+
function isArchivePath(filePath) {
|
|
50
|
+
return filePath.endsWith(ARCHIVE_SUFFIX) || filePath.endsWith('.tar.gz');
|
|
51
|
+
}
|
|
52
|
+
function deriveArchivePath(directoryOutputPath) {
|
|
53
|
+
const base = directoryOutputPath.replace(/\.ocpkg\/?$/, '');
|
|
54
|
+
return `${base}${ARCHIVE_SUFFIX}`;
|
|
55
|
+
}
|
|
56
|
+
async function createArchive(sourceDir, archivePath) {
|
|
57
|
+
const parentDir = node_path_1.default.dirname(sourceDir);
|
|
58
|
+
const folderName = node_path_1.default.basename(sourceDir);
|
|
59
|
+
await tar.create({
|
|
60
|
+
gzip: true,
|
|
61
|
+
file: archivePath,
|
|
62
|
+
cwd: parentDir,
|
|
63
|
+
portable: true,
|
|
64
|
+
}, [folderName]);
|
|
65
|
+
}
|
|
66
|
+
async function extractArchive(archivePath) {
|
|
67
|
+
const tempDir = await (0, promises_1.mkdtemp)(node_path_1.default.join((0, node_os_1.tmpdir)(), 'clawpacker-'));
|
|
68
|
+
try {
|
|
69
|
+
await tar.extract({
|
|
70
|
+
file: archivePath,
|
|
71
|
+
cwd: tempDir,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
await (0, promises_1.rm)(tempDir, { recursive: true, force: true });
|
|
76
|
+
throw error;
|
|
77
|
+
}
|
|
78
|
+
return tempDir;
|
|
79
|
+
}
|
|
80
|
+
async function cleanupTempDir(tempDir) {
|
|
81
|
+
await (0, promises_1.rm)(tempDir, { recursive: true, force: true });
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=archive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/core/archive.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,sCAEC;AAED,8CAGC;AAED,sCAaC;AAED,wCAcC;AAED,wCAEC;AAjDD,+CAA+C;AAC/C,qCAAiC;AACjC,0DAA6B;AAC7B,yCAA2B;AAE3B,MAAM,cAAc,GAAG,eAAe,CAAC;AAEvC,SAAgB,aAAa,CAAC,QAAgB;IAC5C,OAAO,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC3E,CAAC;AAED,SAAgB,iBAAiB,CAAC,mBAA2B;IAC3D,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC5D,OAAO,GAAG,IAAI,GAAG,cAAc,EAAE,CAAC;AACpC,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,SAAiB,EAAE,WAAmB;IACxE,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,mBAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAE5C,MAAM,GAAG,CAAC,MAAM,CACd;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,SAAS;QACd,QAAQ,EAAE,IAAI;KACf,EACD,CAAC,UAAU,CAAC,CACb,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,WAAmB;IACtD,MAAM,OAAO,GAAG,MAAM,IAAA,kBAAO,EAAC,mBAAI,CAAC,IAAI,CAAC,IAAA,gBAAM,GAAE,EAAE,aAAa,CAAC,CAAC,CAAC;IAElE,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,OAAO,CAAC;YAChB,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,OAAO;SACb,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,aAAE,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,OAAe;IAClD,MAAM,IAAA,aAAE,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACtD,CAAC"}
|
package/dist/core/constants.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
export declare const PACKAGE_FORMAT_VERSION =
|
|
1
|
+
export declare const PACKAGE_FORMAT_VERSION = 2;
|
|
2
|
+
export declare const MIN_READABLE_FORMAT_VERSION = 1;
|
|
2
3
|
export declare const PACKAGE_TYPE = "openclaw-agent-template";
|
|
3
4
|
export declare const EXPORT_MODE = "template";
|
|
4
5
|
export declare const REQUIRED_WORKSPACE_FILES: readonly ["AGENTS.md", "SOUL.md", "IDENTITY.md", "USER.md", "TOOLS.md", "MEMORY.md"];
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const
|
|
7
|
-
export
|
|
6
|
+
export declare const BOOTSTRAP_FILES: Set<string>;
|
|
7
|
+
export declare const EXCLUDED_DIRECTORIES: Set<string>;
|
|
8
|
+
export interface ExclusionPattern {
|
|
9
|
+
test: (relativePath: string, name: string) => boolean;
|
|
10
|
+
reason: string;
|
|
11
|
+
dirOnly?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare const EXCLUDED_PATTERNS: ExclusionPattern[];
|
|
8
14
|
export declare const SKILLS_MODE: "manifest-only";
|
|
9
15
|
export declare const SKILL_REFERENCE_PATTERNS: RegExp[];
|
package/dist/core/constants.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SKILL_REFERENCE_PATTERNS = exports.SKILLS_MODE = exports.
|
|
4
|
-
exports.PACKAGE_FORMAT_VERSION =
|
|
3
|
+
exports.SKILL_REFERENCE_PATTERNS = exports.SKILLS_MODE = exports.EXCLUDED_PATTERNS = exports.EXCLUDED_DIRECTORIES = exports.BOOTSTRAP_FILES = exports.REQUIRED_WORKSPACE_FILES = exports.EXPORT_MODE = exports.PACKAGE_TYPE = exports.MIN_READABLE_FORMAT_VERSION = exports.PACKAGE_FORMAT_VERSION = void 0;
|
|
4
|
+
exports.PACKAGE_FORMAT_VERSION = 2;
|
|
5
|
+
exports.MIN_READABLE_FORMAT_VERSION = 1;
|
|
5
6
|
exports.PACKAGE_TYPE = 'openclaw-agent-template';
|
|
6
7
|
exports.EXPORT_MODE = 'template';
|
|
7
8
|
exports.REQUIRED_WORKSPACE_FILES = [
|
|
@@ -12,15 +13,31 @@ exports.REQUIRED_WORKSPACE_FILES = [
|
|
|
12
13
|
'TOOLS.md',
|
|
13
14
|
'MEMORY.md',
|
|
14
15
|
];
|
|
15
|
-
exports.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
exports.BOOTSTRAP_FILES = new Set([
|
|
17
|
+
'AGENTS.md',
|
|
18
|
+
'SOUL.md',
|
|
19
|
+
'TOOLS.md',
|
|
20
|
+
'IDENTITY.md',
|
|
21
|
+
'USER.md',
|
|
22
|
+
'HEARTBEAT.md',
|
|
23
|
+
'BOOTSTRAP.md',
|
|
24
|
+
'MEMORY.md',
|
|
25
|
+
'memory.md',
|
|
26
|
+
]);
|
|
27
|
+
exports.EXCLUDED_DIRECTORIES = new Set([
|
|
28
|
+
'.git',
|
|
29
|
+
'.openclaw',
|
|
30
|
+
'node_modules',
|
|
31
|
+
]);
|
|
32
|
+
exports.EXCLUDED_PATTERNS = [
|
|
33
|
+
{
|
|
34
|
+
test: (relativePath) => /^memory\/.*\.md$/.test(relativePath),
|
|
35
|
+
reason: 'Excluded by daily memory policy',
|
|
36
|
+
},
|
|
19
37
|
];
|
|
20
|
-
exports.DEFAULT_EXCLUDED_GLOBS = ['memory/*.md'];
|
|
21
38
|
exports.SKILLS_MODE = 'manifest-only';
|
|
22
39
|
exports.SKILL_REFERENCE_PATTERNS = [
|
|
23
|
-
/\b(?:use|using|install|activate|invok(?:e|ing)|requires?)\s+(?:the\s+)?
|
|
40
|
+
/\b(?:use|using|install|activate|invok(?:e|ing)|requires?)\s+(?:the\s+)?skill\s+`([a-z0-9][a-z0-9-]*)`/gi,
|
|
24
41
|
/skills?\/[A-Za-z0-9._-]+\/([a-z0-9][a-z0-9-]*)\b/gi,
|
|
25
42
|
/<name>([a-z0-9][a-z0-9-]*)<\/name>/gi,
|
|
26
43
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAC3B,QAAA,YAAY,GAAG,yBAAyB,CAAC;AACzC,QAAA,WAAW,GAAG,UAAU,CAAC;AAEzB,QAAA,wBAAwB,GAAG;IACtC,WAAW;IACX,SAAS;IACT,aAAa;IACb,SAAS;IACT,UAAU;IACV,WAAW;CACH,CAAC;AAEE,QAAA,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAC3B,QAAA,2BAA2B,GAAG,CAAC,CAAC;AAChC,QAAA,YAAY,GAAG,yBAAyB,CAAC;AACzC,QAAA,WAAW,GAAG,UAAU,CAAC;AAEzB,QAAA,wBAAwB,GAAG;IACtC,WAAW;IACX,SAAS;IACT,aAAa;IACb,SAAS;IACT,UAAU;IACV,WAAW;CACH,CAAC;AAEE,QAAA,eAAe,GAAG,IAAI,GAAG,CAAC;IACrC,WAAW;IACX,SAAS;IACT,UAAU;IACV,aAAa;IACb,SAAS;IACT,cAAc;IACd,cAAc;IACd,WAAW;IACX,WAAW;CACZ,CAAC,CAAC;AAEU,QAAA,oBAAoB,GAAG,IAAI,GAAG,CAAC;IAC1C,MAAM;IACN,WAAW;IACX,cAAc;CACf,CAAC,CAAC;AAQU,QAAA,iBAAiB,GAAuB;IACnD;QACE,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;QAC7D,MAAM,EAAE,iCAAiC;KAC1C;CACF,CAAC;AAEW,QAAA,WAAW,GAAG,eAAwB,CAAC;AAEvC,QAAA,wBAAwB,GAAG;IACtC,yGAAyG;IACzG,oDAAoD;IACpD,sCAAsC;CACvC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ExecutableImportPlan, ImportResult, ReadPackageResult } from './types';
|
|
2
2
|
export declare function executeImport(params: {
|
|
3
3
|
pkg: ReadPackageResult;
|
|
4
|
-
plan:
|
|
4
|
+
plan: ExecutableImportPlan;
|
|
5
5
|
}): Promise<ImportResult>;
|
package/dist/core/import-exec.js
CHANGED
|
@@ -9,9 +9,6 @@ const node_path_1 = __importDefault(require("node:path"));
|
|
|
9
9
|
const json_1 = require("../utils/json");
|
|
10
10
|
const openclaw_config_1 = require("./openclaw-config");
|
|
11
11
|
async function executeImport(params) {
|
|
12
|
-
if (!params.plan.canProceed) {
|
|
13
|
-
throw new Error(`Import plan cannot proceed: ${params.plan.failed.concat(params.plan.requiredInputs.map((item) => item.key)).join(', ')}`);
|
|
14
|
-
}
|
|
15
12
|
if (params.plan.writePlan.overwriteExisting) {
|
|
16
13
|
await (0, promises_1.rm)(params.plan.writePlan.targetWorkspacePath, { recursive: true, force: true });
|
|
17
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-exec.js","sourceRoot":"","sources":["../../src/core/import-exec.ts"],"names":[],"mappings":";;;;;AAMA,
|
|
1
|
+
{"version":3,"file":"import-exec.js","sourceRoot":"","sources":["../../src/core/import-exec.ts"],"names":[],"mappings":"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"}
|
package/dist/core/import-plan.js
CHANGED
|
@@ -4,26 +4,43 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.planImport = planImport;
|
|
7
|
-
const promises_1 = require("node:fs/promises");
|
|
8
7
|
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
+
const fs_1 = require("../utils/fs");
|
|
9
9
|
const openclaw_config_1 = require("./openclaw-config");
|
|
10
10
|
async function planImport(params) {
|
|
11
11
|
const requiredInputs = [];
|
|
12
12
|
const failed = [];
|
|
13
13
|
const warnings = [...params.pkg.importHints.warnings];
|
|
14
14
|
const nextSteps = [
|
|
15
|
-
'Channel bindings are not restored automatically in v1.',
|
|
16
15
|
'Review the imported identity and memory files before using the agent.',
|
|
17
16
|
];
|
|
17
|
+
if (params.pkg.bindings && params.pkg.bindings.length > 0) {
|
|
18
|
+
nextSteps.push('Channel bindings were included in the package. Verify channel connections on the target instance.');
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
nextSteps.push('Channel bindings were not included. Configure channel bindings manually on the target instance.');
|
|
22
|
+
}
|
|
23
|
+
if (params.pkg.cronJobs && params.pkg.cronJobs.length > 0) {
|
|
24
|
+
nextSteps.push('Cron jobs were included in the package. Verify cron scheduling on the target instance.');
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
nextSteps.push('Cron jobs were not included. Create cron entries manually if scheduled tasks are needed.');
|
|
28
|
+
}
|
|
18
29
|
if (!params.targetWorkspacePath) {
|
|
19
|
-
requiredInputs.push({
|
|
30
|
+
requiredInputs.push({
|
|
31
|
+
key: 'targetWorkspacePath',
|
|
32
|
+
reason: 'A target workspace path is required for import.',
|
|
33
|
+
});
|
|
20
34
|
}
|
|
21
35
|
if (!params.targetAgentId) {
|
|
22
|
-
requiredInputs.push({
|
|
36
|
+
requiredInputs.push({
|
|
37
|
+
key: 'agentId',
|
|
38
|
+
reason: 'Choose a target agent id for the imported definition.',
|
|
39
|
+
});
|
|
23
40
|
}
|
|
24
41
|
const targetWorkspacePath = node_path_1.default.resolve(params.targetWorkspacePath ?? params.pkg.agentDefinition.agent.workspace.suggestedBasename);
|
|
25
42
|
const targetAgentId = params.targetAgentId ?? params.pkg.agentDefinition.agent.suggestedId;
|
|
26
|
-
const workspaceExists = await pathExists(targetWorkspacePath);
|
|
43
|
+
const workspaceExists = await (0, fs_1.pathExists)(targetWorkspacePath);
|
|
27
44
|
if (workspaceExists && !params.force) {
|
|
28
45
|
failed.push(`Target workspace already exists: ${targetWorkspacePath}`);
|
|
29
46
|
nextSteps.push('Choose a different --target-workspace path or re-run with --force to overwrite the existing workspace.');
|
|
@@ -35,9 +52,9 @@ async function planImport(params) {
|
|
|
35
52
|
if (!params.targetConfigPath) {
|
|
36
53
|
warnings.push('OpenClaw config not found; agent definition will only be recorded in local import metadata.');
|
|
37
54
|
}
|
|
38
|
-
else if (await pathExists(params.targetConfigPath)) {
|
|
55
|
+
else if (await (0, fs_1.pathExists)(params.targetConfigPath)) {
|
|
39
56
|
const { config } = await (0, openclaw_config_1.loadOpenClawConfig)({ configPath: params.targetConfigPath });
|
|
40
|
-
if (config
|
|
57
|
+
if ((0, openclaw_config_1.hasAgentInConfig)(config, targetAgentId)) {
|
|
41
58
|
configAgentCollision = true;
|
|
42
59
|
if (!params.force) {
|
|
43
60
|
failed.push(`Target agent already exists in OpenClaw config: ${targetAgentId}`);
|
|
@@ -70,8 +87,18 @@ async function planImport(params) {
|
|
|
70
87
|
configAgentCollision,
|
|
71
88
|
},
|
|
72
89
|
};
|
|
90
|
+
if (requiredInputs.length === 0 && failed.length === 0) {
|
|
91
|
+
return {
|
|
92
|
+
canProceed: true,
|
|
93
|
+
requiredInputs: [],
|
|
94
|
+
warnings,
|
|
95
|
+
failed: [],
|
|
96
|
+
nextSteps,
|
|
97
|
+
writePlan,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
73
100
|
return {
|
|
74
|
-
canProceed:
|
|
101
|
+
canProceed: false,
|
|
75
102
|
requiredInputs,
|
|
76
103
|
warnings,
|
|
77
104
|
failed,
|
|
@@ -79,13 +106,4 @@ async function planImport(params) {
|
|
|
79
106
|
writePlan,
|
|
80
107
|
};
|
|
81
108
|
}
|
|
82
|
-
async function pathExists(targetPath) {
|
|
83
|
-
try {
|
|
84
|
-
await (0, promises_1.access)(targetPath);
|
|
85
|
-
return true;
|
|
86
|
-
}
|
|
87
|
-
catch {
|
|
88
|
-
return false;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
109
|
//# sourceMappingURL=import-plan.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-plan.js","sourceRoot":"","sources":["../../src/core/import-plan.ts"],"names":[],"mappings":";;;;;AAKA,
|
|
1
|
+
{"version":3,"file":"import-plan.js","sourceRoot":"","sources":["../../src/core/import-plan.ts"],"names":[],"mappings":"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"}
|
package/dist/core/manifest.d.ts
CHANGED
|
@@ -5,6 +5,11 @@ export declare function buildManifest(params: {
|
|
|
5
5
|
scan: WorkspaceScanResult;
|
|
6
6
|
skills: SkillsManifest;
|
|
7
7
|
agentDefinition: AgentDefinition;
|
|
8
|
+
openclawVersion?: string;
|
|
9
|
+
metadata?: PackageManifest['metadata'];
|
|
10
|
+
checksums?: Record<string, string>;
|
|
11
|
+
hasBindings?: boolean;
|
|
12
|
+
hasCronJobs?: boolean;
|
|
8
13
|
}): PackageManifest;
|
|
9
14
|
export declare function buildExportReport(params: {
|
|
10
15
|
packageName: string;
|
|
@@ -19,6 +24,9 @@ export declare function buildExportArtifacts(params: {
|
|
|
19
24
|
scan: WorkspaceScanResult;
|
|
20
25
|
skills: SkillsManifest;
|
|
21
26
|
agentDefinition: AgentDefinition;
|
|
27
|
+
openclawVersion?: string;
|
|
22
28
|
checksums: Record<string, string>;
|
|
23
29
|
warnings?: string[];
|
|
30
|
+
hasBindings?: boolean;
|
|
31
|
+
hasCronJobs?: boolean;
|
|
24
32
|
}): ExportArtifacts;
|
package/dist/core/manifest.js
CHANGED
|
@@ -7,6 +7,8 @@ exports.buildManifest = buildManifest;
|
|
|
7
7
|
exports.buildExportReport = buildExportReport;
|
|
8
8
|
exports.buildExportArtifacts = buildExportArtifacts;
|
|
9
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const package_json_1 = __importDefault(require("../../package.json"));
|
|
11
|
+
const checksums_1 = require("./checksums");
|
|
10
12
|
const constants_1 = require("./constants");
|
|
11
13
|
function buildManifest(params) {
|
|
12
14
|
const workspaceName = node_path_1.default.basename(params.workspacePath);
|
|
@@ -18,19 +20,24 @@ function buildManifest(params) {
|
|
|
18
20
|
source: {
|
|
19
21
|
agentId: params.agentDefinition.agent.suggestedId,
|
|
20
22
|
workspaceName,
|
|
21
|
-
openclawVersion: 'unknown',
|
|
23
|
+
openclawVersion: params.openclawVersion ?? 'unknown',
|
|
22
24
|
},
|
|
25
|
+
metadata: params.metadata ?? buildPackageMetadata(params.checksums ?? {}),
|
|
23
26
|
includes: {
|
|
24
27
|
workspaceFiles: params.scan.includedFiles.map((file) => file.relativePath),
|
|
28
|
+
bootstrapFiles: params.scan.includedFiles
|
|
29
|
+
.filter((file) => file.isBootstrap)
|
|
30
|
+
.map((file) => file.relativePath),
|
|
25
31
|
dailyMemory: false,
|
|
26
32
|
skills: constants_1.SKILLS_MODE,
|
|
27
33
|
agentDefinition: true,
|
|
34
|
+
bindings: params.hasBindings ?? false,
|
|
35
|
+
cronJobs: params.hasCronJobs ?? false,
|
|
28
36
|
},
|
|
29
37
|
excludes: {
|
|
30
38
|
secrets: true,
|
|
31
39
|
sessionState: true,
|
|
32
|
-
|
|
33
|
-
globalExtensions: true,
|
|
40
|
+
connectionState: true,
|
|
34
41
|
},
|
|
35
42
|
compatibility: {
|
|
36
43
|
minFormatVersion: constants_1.PACKAGE_FORMAT_VERSION,
|
|
@@ -43,8 +50,10 @@ function buildExportReport(params) {
|
|
|
43
50
|
packageName: params.packageName,
|
|
44
51
|
workspacePath: params.workspacePath,
|
|
45
52
|
includedFiles: params.scan.includedFiles.map((file) => file.relativePath),
|
|
53
|
+
bootstrapFiles: params.scan.includedFiles
|
|
54
|
+
.filter((file) => file.isBootstrap)
|
|
55
|
+
.map((file) => file.relativePath),
|
|
46
56
|
excludedFiles: params.scan.excludedFiles,
|
|
47
|
-
ignoredFiles: params.scan.ignoredFiles,
|
|
48
57
|
warnings: params.warnings ?? [],
|
|
49
58
|
skills: params.skills,
|
|
50
59
|
};
|
|
@@ -56,4 +65,19 @@ function buildExportArtifacts(params) {
|
|
|
56
65
|
exportReport: buildExportReport(params),
|
|
57
66
|
};
|
|
58
67
|
}
|
|
68
|
+
function buildPackageMetadata(checksums) {
|
|
69
|
+
return {
|
|
70
|
+
createdAt: new Date().toISOString(),
|
|
71
|
+
createdBy: {
|
|
72
|
+
name: package_json_1.default.name,
|
|
73
|
+
version: package_json_1.default.version,
|
|
74
|
+
},
|
|
75
|
+
platform: {
|
|
76
|
+
os: process.platform,
|
|
77
|
+
arch: process.arch,
|
|
78
|
+
node: process.version,
|
|
79
|
+
},
|
|
80
|
+
contentHash: (0, checksums_1.checksumText)(JSON.stringify(Object.entries(checksums).sort(([left], [right]) => left.localeCompare(right)))),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
59
83
|
//# sourceMappingURL=manifest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/core/manifest.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/core/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,32 @@
|
|
|
1
1
|
import type { AgentDefinition } from './types';
|
|
2
|
+
export interface AgentConfigEntry {
|
|
3
|
+
id?: string;
|
|
4
|
+
default?: boolean;
|
|
5
|
+
name?: string;
|
|
6
|
+
workspace?: string;
|
|
7
|
+
agentDir?: string;
|
|
8
|
+
identity?: {
|
|
9
|
+
name?: string;
|
|
10
|
+
[key: string]: unknown;
|
|
11
|
+
};
|
|
12
|
+
model?: {
|
|
13
|
+
default?: string;
|
|
14
|
+
[key: string]: unknown;
|
|
15
|
+
};
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
}
|
|
2
18
|
export interface MinimalOpenClawConfig {
|
|
3
|
-
|
|
4
|
-
|
|
19
|
+
version?: string;
|
|
20
|
+
openclawVersion?: string;
|
|
21
|
+
identity?: {
|
|
5
22
|
name?: string;
|
|
6
|
-
workspace?: string;
|
|
7
|
-
identity?: {
|
|
8
|
-
name?: string;
|
|
9
|
-
};
|
|
10
|
-
model?: {
|
|
11
|
-
default?: string;
|
|
12
|
-
};
|
|
13
23
|
[key: string]: unknown;
|
|
14
|
-
}
|
|
24
|
+
};
|
|
25
|
+
agent?: AgentConfigEntry;
|
|
26
|
+
agents?: {
|
|
27
|
+
defaults?: Record<string, unknown>;
|
|
28
|
+
list?: AgentConfigEntry[];
|
|
29
|
+
};
|
|
15
30
|
[key: string]: unknown;
|
|
16
31
|
}
|
|
17
32
|
export declare function discoverOpenClawConfig(params?: {
|
|
@@ -27,12 +42,21 @@ export declare function loadOpenClawConfig(params: {
|
|
|
27
42
|
configPath: string;
|
|
28
43
|
config: MinimalOpenClawConfig;
|
|
29
44
|
}>;
|
|
45
|
+
export declare function detectOpenClawVersion(params: {
|
|
46
|
+
configPath?: string;
|
|
47
|
+
cwd?: string;
|
|
48
|
+
}): Promise<string | undefined>;
|
|
49
|
+
export declare function resolveAgentFromConfig(config: MinimalOpenClawConfig, agentId?: string): {
|
|
50
|
+
agent: AgentConfigEntry;
|
|
51
|
+
resolvedId: string;
|
|
52
|
+
} | undefined;
|
|
30
53
|
export declare function extractPortableAgentDefinition(params: {
|
|
31
54
|
config: MinimalOpenClawConfig;
|
|
32
55
|
configPath: string;
|
|
33
56
|
workspacePath: string;
|
|
34
57
|
agentId?: string;
|
|
35
58
|
}): AgentDefinition;
|
|
59
|
+
export declare function hasAgentInConfig(config: MinimalOpenClawConfig, agentId: string): boolean;
|
|
36
60
|
export declare function upsertPortableAgentDefinition(params: {
|
|
37
61
|
configPath: string;
|
|
38
62
|
portableAgentDefinition: AgentDefinition;
|