ai-project-manage-cli 8.0.7 → 8.0.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-project-manage-cli",
3
- "version": "8.0.7",
3
+ "version": "8.0.9",
4
4
  "description": "命令行工具:后续用于调用平台后端 API 完成运维与自动化操作",
5
5
  "type": "module",
6
6
  "private": false,
@@ -18,10 +18,10 @@
18
18
  "prepublishOnly": "npm run build"
19
19
  },
20
20
  "devDependencies": {
21
- "@types/ws": "~8.5.14",
22
21
  "@types/node": "^22.0.0",
23
- "typescript": "~5.6.0",
22
+ "@types/ws": "~8.5.14",
24
23
  "esbuild": "~0.28.0",
24
+ "typescript": "~5.6.0",
25
25
  "vitest": "~4.1.5"
26
26
  },
27
27
  "engines": {
@@ -32,9 +32,10 @@
32
32
  "@connectrpc/connect": "~1.7.0",
33
33
  "@connectrpc/connect-node": "~1.7.0",
34
34
  "@cursor/sdk": "^1.0.22",
35
- "ws": "~8.18.0",
36
- "listpage-http": "~0.0.318",
37
35
  "commander": "~14.0.3",
38
- "minio": "~8.0.7"
36
+ "listpage-http": "~0.0.318",
37
+ "minio": "~8.0.7",
38
+ "mysql2": "~3.14.5",
39
+ "ws": "~8.18.0"
39
40
  }
40
41
  }
@@ -14,6 +14,7 @@
14
14
  - `webide_reply.md`:输出通道(每轮必守)
15
15
  - `webide_git_commit.md`:开发 / 修码时的 Git 提交与 push
16
16
  - `webide_sql_change.md`:有表结构或 SQL 变更时,须在 `AppendMessage` 中醒目提示
17
+ - `webide_sql_execute.md`:execute-sql 轮次连库执行 SQL 时 Read
17
18
  - `webide_terminal.md`:长驻进程禁止用 Shell;本地服务由顶栏「启动项目」触发,开发任务不要自行起服务
18
19
  - `webide_testcase.md`:生成测试用例并调用 `UpsertWebIdeTestCases`
19
20
  - `webide_merge.md`:验收通过后调用 `MergeWebIdePullRequests`
@@ -0,0 +1,75 @@
1
+ ## WebIDE 项目打包(webide-package)
2
+
3
+ 适用:独立打包 Agent(不 resume 任务对话)。只打 payload 指定的 **一个** target(`frontend` / `backend`)。
4
+
5
+ ### 开始前
6
+
7
+ 1. Read 本规则全文。
8
+ 2. Read `.apm/project/<项目ID>/` 下 path/文件名含 `deploy` 的文档(先 manifest,再全文)。命令与仓路径**只**来自文档,禁止猜测。
9
+ 3. Read `.apm/workspace-repos.json`,按多仓清单定位本轮要打的前端/后端仓库路径。
10
+
11
+ ### 通用硬性约束
12
+
13
+ - **禁止**修改业务代码、提交 Git、创建 PR。
14
+ - **禁止**为修依赖或修编译错误而改代码 / 装依赖 / 改 lockfile;构建失败 → 以错误结束。
15
+ - **禁止**在仓库工作区内留下交付用 zip / 拷贝后的 jar;临时文件只用 `/data/` 下目录(如 `/data/artifacts/.tmp/<packageId>/`),成功后可删临时目录。
16
+ - 临时目录与最终产物均在 `/data` 下,不要用 `/tmp`。
17
+
18
+ ### target=frontend(Vue)
19
+
20
+ 1. 按 deploy 文档进入前端目录。
21
+ 2. **不要**执行 `npm i` / `pnpm i` 等;分支切换后依赖已就绪。
22
+ 3. 执行文档中的打包命令(通常 `npm run build`)。
23
+ 4. 确认产出 `dist/`(或文档写明的目录)。
24
+ 5. 在 `/data` 下压缩(勿在工作区生成 `dist.zip`),落到:
25
+
26
+ `/data/artifacts/vue/<packageId>/dist.zip`
27
+
28
+ 6. 缺产物或构建失败 → 调用 **SetPackageFailed**(传入失败原因)后结束。
29
+
30
+ ### target=backend(SpringBoot)
31
+
32
+ 1. 按 deploy 文档进入后端目录,执行 `mvn clean package`(或以文档为准)。
33
+ 2. 按文档收集**全量**需交付的 jar 与 sql(增量规则若文档另有说明则从其规定;无说明则收文档列出的全部)。
34
+ 3. 对每个文件算内容 hash(sha256),写入全局池(已存在同 hash 则跳过复制):
35
+
36
+ - jar → `/data/artifacts/springboot/jars/<hash>.jar`
37
+ - sql → `/data/artifacts/springboot/sqls/<hash>.sql`(或保留扩展名,文件名主体为 hash)
38
+
39
+ 4. 写入清单(**仅**此目录放 manifest,不要堆 jar/sql 副本):
40
+
41
+ `/data/artifacts/springboot/<packageId>/manifest.json`
42
+
43
+ 5. manifest 示例(字段名与结构须一致;值按实际填写):
44
+
45
+ ```json
46
+ {
47
+ "packageId": "pkg_…",
48
+ "projectId": "clx…",
49
+ "target": "backend",
50
+ "baseBranch": "release/1.0",
51
+ "createdAt": "2026-09-02T07:00:00.000Z",
52
+ "commitId": "a1b2c3d4…",
53
+ "jars": [
54
+ {
55
+ "name": "app-1.2.3.jar",
56
+ "hash": "e3b0…b855",
57
+ "path": "/data/artifacts/springboot/jars/e3b0…b855.jar"
58
+ }
59
+ ],
60
+ "sqls": [
61
+ {
62
+ "name": "20260301_add_col.sql",
63
+ "hash": "2c26…e7ae",
64
+ "path": "/data/artifacts/springboot/sqls/2c26…e7ae.sql"
65
+ }
66
+ ]
67
+ }
68
+ ```
69
+
70
+ 6. 构建或落盘失败 → 调用 **SetPackageFailed**(传入失败原因)后结束。
71
+
72
+ ### 结束
73
+
74
+ - 成功:确认产物已落到约定路径后正常结束(不要调用 SetPackageFailed)。
75
+ - 失败:先调用 SetPackageFailed 写入原因,再结束。
@@ -15,9 +15,11 @@
15
15
  在回复中增加小节(标题可用「数据表 / SQL 变更」),至少包含:
16
16
 
17
17
  1. **涉及表**:表名列表与变更类型(如新增列、建表)
18
- 2. **SQL 产物路径**:仓库内相关文件路径(若有)
19
- 3. **待执行 SQL**:完整、可复制执行的语句,放在 ` ```sql ` 代码块中,按执行顺序列出;禁止用 `...` 省略表名/字段名
20
- 4. **执行提醒**:明确告知用户需在对应环境数据库执行(若本轮未自动执行)
18
+ 2. **SQL 产物路径**:仓库内相关文件路径(**必填**;完整、可 Read;多仓写明仓库)
19
+ 3. **待执行 SQL**:完整、可复制的语句预览,放在 ` ```sql ` 代码块中,按执行顺序列出;禁止用 `...` 省略表名/字段名(预览仅供人看,执行时以产物文件为准)
20
+ 4. **执行提醒**:请在目标环境数据库执行;可点 SQL 块上的「执行」由助手连库执行
21
+
22
+ **禁止**写 Flyway、「若启动已自动迁移可跳过」或同类表述。
21
23
 
22
24
  多仓时注明 SQL 属于哪个仓库(如后端仓)。
23
25
 
@@ -0,0 +1,29 @@
1
+ ## WebIDE 执行 SQL(execute-sql 轮次)
2
+
3
+ 适用场景:用户在手工测试阶段点击消息里 SQL 块的「执行」。
4
+
5
+ ### 本轮目标
6
+
7
+ 1. 根据你**此前开发轮次**在 AppendMessage 里写明的 **SQL 产物路径**,定位工作区内的文件(可用 Read / Glob 确认)。
8
+ 2. 从 deploy 文档、`application.yml` / `.env` 等推断 MySQL 连接信息(**禁止瞎猜密码**)。
9
+ 3. 调用 **MysqlExecute**,传入连接参数,以及产物文件的 **绝对路径**(`path`)。**不要**把 SQL 全文作为工具参数。
10
+ 4. 用 **AppendMessage** 汇总执行结果(成功/失败、影响行、必要时的校验说明)。
11
+
12
+ ### MysqlExecute 参数
13
+
14
+ - `host` / `port` / `user` / `password` / `database`
15
+ - `path`:SQL 产物在磁盘上的 **绝对路径**(须在当前工作区内)。CLI 自行读文件并执行多语句脚本。
16
+
17
+ ### 硬性约束
18
+
19
+ - **禁止**把 SQL 正文塞进工具参数;由 CLI 读 `path` 指向的文件。
20
+ - **禁止**使用对话里 SQL 预览正文代替文件内容。
21
+ - **禁止**改代码、Git 提交、启动 dev 服务。
22
+ - 密码不得写入 AppendMessage。
23
+ - 找不到产物文件或路径在工作区外 → AppendMessage 说明原因并以错误结束。
24
+
25
+ ### 连接信息来源
26
+
27
+ 1. Read `.apm/project/<项目ID>/` 下文件名或路径包含 `deploy` 的文档。
28
+ 2. 若无,Glob 工作区内 `application*.yml` / `.env*` 等配置文件。
29
+ 3. 仍无法确定 → 不要猜测,AppendMessage 说明缺少连接配置。
@@ -36,10 +36,10 @@
36
36
  4. 进入手工测试:文档写明的每一端,无对应 `name` 则启动;**已有同名活会话则重启**(只 kill 该 name,再 `create` + `write`)
37
37
  5. `read` 等待就绪日志 / 端口即可
38
38
 
39
- 用户在「终端」面板看日志,在「浏览器」面板看客户机外网地址。
39
+ 用户在「终端」面板看日志,在「浏览器」面板看远程主机外网地址。
40
40
 
41
41
  ## 规范
42
42
 
43
43
  1. 禁止用 Shell / 后台进程方式起 `dev` / `serve` 等长驻命令。
44
- 2. 观察日志请用户看 WebIDE「终端」面板;页面请用户看「浏览器」面板(客户机外网地址)。
44
+ 2. 观察日志请用户看 WebIDE「终端」面板;页面请用户看「浏览器」面板(远程主机外网地址)。
45
45
  3. 不再需要时可 kill;不要留下孤儿进程。