@zshuangmu/agenthub 0.3.8 → 0.4.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 +5 -1
- package/package.json +1 -1
- package/src/cli.js +9 -7
- package/src/commands/pack.js +3 -1
- package/src/lib/manifest.js +2 -2
package/README.md
CHANGED
|
@@ -92,6 +92,9 @@ cd AgentHub && npm install && npm link
|
|
|
92
92
|
# 1. 打包你的 OpenClaw workspace
|
|
93
93
|
agenthub pack --workspace ./my-workspace --config openclaw.json
|
|
94
94
|
|
|
95
|
+
# 或指定版本号
|
|
96
|
+
agenthub pack --workspace ./my-workspace --config openclaw.json --version 2.0.0
|
|
97
|
+
|
|
95
98
|
# 2. 发布到 Registry
|
|
96
99
|
agenthub publish ./bundles/my-agent.agent --registry ./.registry
|
|
97
100
|
```
|
|
@@ -138,7 +141,7 @@ agenthub verify code-review-assistant --registry ./.registry --target-workspace
|
|
|
138
141
|
|
|
139
142
|
| 命令 | 描述 |
|
|
140
143
|
|------|------|
|
|
141
|
-
| `pack` | 打包 workspace 为 Agent Bundle |
|
|
144
|
+
| `pack` | 打包 workspace 为 Agent Bundle(支持 `--version` 指定版本) |
|
|
142
145
|
| `publish` | 发布到本地 Registry |
|
|
143
146
|
| `publish-remote` | 发布到远程服务器 |
|
|
144
147
|
| `search` | 搜索 Registry 中的 Agent |
|
|
@@ -150,6 +153,7 @@ agenthub verify code-review-assistant --registry ./.registry --target-workspace
|
|
|
150
153
|
| `update` | 更新 Agent 到最新版 |
|
|
151
154
|
| `rollback` | 回滚 Agent 到指定版本 |
|
|
152
155
|
| `stats` | 查看 Agent 统计信息 |
|
|
156
|
+
| `doctor` | 诊断 AgentHub 安装和环境问题 |
|
|
153
157
|
| `serve` | 启动 Web + API 服务 |
|
|
154
158
|
| `api` | 仅启动 API 服务 |
|
|
155
159
|
| `web` | 仅启动 Web 前端 |
|
package/package.json
CHANGED
package/src/cli.js
CHANGED
|
@@ -111,11 +111,13 @@ agenthub pack - 打包 Agent
|
|
|
111
111
|
--workspace <dir> OpenClaw 工作区目录 (必需)
|
|
112
112
|
--config <file> openclaw.json 配置文件路径 (必需)
|
|
113
113
|
--output <dir> 输出目录 (默认: ./bundles)
|
|
114
|
+
--version <ver> 版本号 (默认: 1.0.0)
|
|
114
115
|
--tags <tags> 标签,逗号分隔
|
|
115
116
|
--category <cat> 分类
|
|
116
117
|
|
|
117
118
|
示例:
|
|
118
119
|
agenthub pack --workspace ./my-agent --config ./openclaw.json
|
|
120
|
+
agenthub pack --workspace ./my-agent --config ./openclaw.json --version 2.0.0
|
|
119
121
|
`,
|
|
120
122
|
publish: `
|
|
121
123
|
agenthub publish - 发布 Agent
|
|
@@ -284,11 +286,7 @@ function parseArgs(argv) {
|
|
|
284
286
|
const options = {};
|
|
285
287
|
for (let index = 0; index < argv.length; index += 1) {
|
|
286
288
|
const token = argv[index];
|
|
287
|
-
if (token
|
|
288
|
-
options.help = true;
|
|
289
|
-
} else if (token === "--version" || token === "-v") {
|
|
290
|
-
options.version = true;
|
|
291
|
-
} else if (token.startsWith("--")) {
|
|
289
|
+
if (token.startsWith("--")) {
|
|
292
290
|
const rawKey = token.slice(2);
|
|
293
291
|
const camelKey = rawKey.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
294
292
|
const value = argv[index + 1];
|
|
@@ -300,6 +298,10 @@ function parseArgs(argv) {
|
|
|
300
298
|
options[rawKey] = true;
|
|
301
299
|
options[camelKey] = true;
|
|
302
300
|
}
|
|
301
|
+
} else if (token === "-h") {
|
|
302
|
+
options.help = true;
|
|
303
|
+
} else if (token === "-v") {
|
|
304
|
+
options.version = true;
|
|
303
305
|
} else {
|
|
304
306
|
positionals.push(token);
|
|
305
307
|
}
|
|
@@ -311,8 +313,8 @@ async function main() {
|
|
|
311
313
|
const { positionals, options } = parseArgs(process.argv.slice(2));
|
|
312
314
|
const [command, ...rest] = positionals;
|
|
313
315
|
|
|
314
|
-
// 全局选项
|
|
315
|
-
if (options.version) {
|
|
316
|
+
// 全局选项 - only show version if --version/-v is a boolean flag, not a string value
|
|
317
|
+
if (options.version === true) {
|
|
316
318
|
console.log(`AgentHub v${VERSION}`);
|
|
317
319
|
return;
|
|
318
320
|
}
|
package/src/commands/pack.js
CHANGED
|
@@ -67,10 +67,11 @@ export async function packCommand(options) {
|
|
|
67
67
|
const workspace = path.resolve(options.workspace || process.cwd());
|
|
68
68
|
const output = path.resolve(options.output ?? "./bundles");
|
|
69
69
|
const configPath = options.config ? path.resolve(options.config) : null;
|
|
70
|
+
const version = options.version || "1.0.0";
|
|
70
71
|
|
|
71
72
|
// 从工作区名称生成 slug
|
|
72
73
|
const slug = path.basename(workspace).toLowerCase().replace(/[^a-z0-9-]/g, "-");
|
|
73
|
-
const bundleDir = path.join(output, `${slug}
|
|
74
|
+
const bundleDir = path.join(output, `${slug}-${version}.agent`);
|
|
74
75
|
|
|
75
76
|
// 1. 扫描工作区
|
|
76
77
|
const workspaceFiles = await scanWorkspace(workspace);
|
|
@@ -99,6 +100,7 @@ export async function packCommand(options) {
|
|
|
99
100
|
prompts: workspaceFiles.prompts,
|
|
100
101
|
tags: options.tags ? options.tags.split(",").map((t) => t.trim()) : [],
|
|
101
102
|
category: options.category,
|
|
103
|
+
version,
|
|
102
104
|
});
|
|
103
105
|
|
|
104
106
|
// 5. 验证 MANIFEST
|
package/src/lib/manifest.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
const WORKSPACE_FILES = ["AGENTS.md", "SOUL.md", "USER.md", "IDENTITY.md", "TOOLS.md", "HEARTBEAT.md", "BOOTSTRAP.md"];
|
|
7
7
|
|
|
8
|
-
export function createManifest({ slug, name, description, author, memoryCounts, openclawTemplate, skills = [], prompts = [], tags = [], category, language = "zh-CN" }) {
|
|
8
|
+
export function createManifest({ slug, name, description, author, memoryCounts, openclawTemplate, skills = [], prompts = [], tags = [], category, language = "zh-CN", version = "1.0.0" }) {
|
|
9
9
|
const hasModel = openclawTemplate?.agents?.defaults?.model?.primary;
|
|
10
10
|
const totalMemory = memoryCounts.public + memoryCounts.portable + memoryCounts.private;
|
|
11
11
|
|
|
@@ -13,7 +13,7 @@ export function createManifest({ slug, name, description, author, memoryCounts,
|
|
|
13
13
|
// 基本信息
|
|
14
14
|
name: name || slug,
|
|
15
15
|
slug,
|
|
16
|
-
version
|
|
16
|
+
version,
|
|
17
17
|
description: description || `OpenClaw agent bundle for ${name || slug}`,
|
|
18
18
|
author: author || "anonymous",
|
|
19
19
|
icon: undefined,
|