ai-project-manage-cli 1.0.3 → 1.0.5
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 +120 -13
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/request-config.d.ts +2 -1
- package/dist/api/request-config.d.ts.map +1 -1
- package/dist/api/request-config.js +4 -0
- package/dist/api/request-config.js.map +1 -1
- package/dist/api/requirement.d.ts +5 -0
- package/dist/api/requirement.d.ts.map +1 -1
- package/dist/cli/commands/init.d.ts +3 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +36 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/requirement.d.ts.map +1 -1
- package/dist/cli/commands/requirement.js +56 -5
- package/dist/cli/commands/requirement.js.map +1 -1
- package/dist/cli/commands/ws.d.ts.map +1 -1
- package/dist/cli/commands/ws.js +51 -0
- package/dist/cli/commands/ws.js.map +1 -1
- package/dist/cli/credentials.d.ts +1 -0
- package/dist/cli/credentials.d.ts.map +1 -1
- package/dist/cli/ws-run-command.d.ts.map +1 -1
- package/dist/cli/ws-run-command.js +19 -10
- package/dist/cli/ws-run-command.js.map +1 -1
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -1
- package/package.json +6 -3
- package/templates/skills/apm-auto-dev/SKILL.md +137 -0
- package/templates/skills/mr-review-brief/SKILL.md +79 -0
- package/templates/skills/mr-review-brief/mr-review-template.md +47 -0
- package/templates/skills/openspec-apply-change/SKILL.md +167 -0
- package/templates/skills/openspec-propose/SKILL.md +127 -0
- package/templates/skills/requirement-doc-refine/SKILL.md +93 -0
- package/templates/skills/requirement-doc-refine/updated-requirement-template.md +39 -0
- package/templates/skills/requirement-review/SKILL.md +64 -0
- package/templates/skills/requirement-review/output-template.md +49 -0
package/README.md
CHANGED
|
@@ -1,29 +1,136 @@
|
|
|
1
1
|
# ai-project-manage-cli (`apm`)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
AI 项目管理后端的命令行工具与 SDK(包名 `ai-project-manage-cli`,可执行文件 `apm`)。
|
|
4
|
+
|
|
5
|
+
全局帮助:`apm --help`;各子命令可加 `--help` 查看参数说明。
|
|
6
|
+
|
|
7
|
+
## 配置文件
|
|
8
|
+
|
|
9
|
+
默认路径:`~/.config/apm/config.json`;若设置了 `$XDG_CONFIG_HOME`,则为 `$XDG_CONFIG_HOME/apm/config.json`。
|
|
10
|
+
|
|
11
|
+
典型字段:`baseUrl`、`token`、`employeeId`(由 `apm login` 写入);可选 `wsPort`(员工 WebSocket 端口,供 `apm ws` 使用)。
|
|
12
|
+
|
|
13
|
+
## `apm config`
|
|
14
|
+
|
|
15
|
+
读写本机配置(键名与 `npm config` 风格一致)。
|
|
16
|
+
|
|
17
|
+
| 命令 | 说明 |
|
|
18
|
+
|------|------|
|
|
19
|
+
| `apm config set base-url <url>` | 服务根地址(不含末尾 `/`) |
|
|
20
|
+
| `apm config get base-url` | 打印已配置的 base-url |
|
|
21
|
+
| `apm config set ws-port <1–65535>` | 员工 WebSocket 端口 |
|
|
22
|
+
| `apm config get ws-port` | 打印当前解析到的 ws 端口(未配置时有内置默认) |
|
|
23
|
+
|
|
24
|
+
## `apm login` / `apm logout`
|
|
4
25
|
|
|
5
26
|
```bash
|
|
6
27
|
apm config set base-url http://localhost:3000
|
|
7
|
-
apm login -u <员工ID>
|
|
8
|
-
apm
|
|
9
|
-
apm logout
|
|
28
|
+
apm login -u <员工ID> # 交互输入 CLI 口令;或 --password(勿写入 shell 历史)
|
|
29
|
+
apm login -u <员工ID> --url <url> # 登录并覆盖/写入 base-url
|
|
30
|
+
apm logout # 清除 token、employeeId,保留 base-url(及 ws-port 等)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## `apm init`
|
|
34
|
+
|
|
35
|
+
安装 CLI 内置技能到用户本机 `~/.cursor/skills`(会递归复制并覆盖同名文件)。
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
apm init
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 凭证与哪些命令需要登录
|
|
42
|
+
|
|
43
|
+
除 **`config`**、**`init`**、**`login`**、**`logout`**、**`ws`** 外,其余子命令会在执行前从配置文件读取 **`baseUrl`、`token`、`employeeId`**;未配置完整时会提示先执行 `apm login`。
|
|
44
|
+
|
|
45
|
+
`apm ws` 可单独用 **`--url`**、**`--token`** 覆盖配置文件,不依赖上述 preAction 注入逻辑。
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## `apm comment`(需求内容版本评论)
|
|
50
|
+
|
|
51
|
+
| 子命令 | 说明 |
|
|
52
|
+
|--------|------|
|
|
53
|
+
| `comment update` | 提交评论正文:仅「已创建」状态可写,成功后变为「待处理」 |
|
|
54
|
+
| `comment process` | 将指定版本下你名下「待处理」评论标为已处理并创建新版本(同步需求正文) |
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
apm comment update --id <评论id> --content "评论正文"
|
|
58
|
+
|
|
59
|
+
apm comment process --requirement-id <需求id> --version-seq <n> --content "新版本正文"
|
|
60
|
+
apm comment process --requirement-id <需求id> --version-seq <n> --content-file ./updated.md
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
`--version-seq` 为该需求下的版本序号,与界面 **v1、v2** 一致(不是数据库里的版本行 id)。
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## `apm requirement`
|
|
68
|
+
|
|
69
|
+
### `requirement version content`
|
|
70
|
+
|
|
71
|
+
按需求 id 与版本序号获取该版本正文(**stdout** 输出 JSON,含 `content`、`comments` 等)。
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
apm requirement version content --requirement-id <需求id> --version-seq <n>
|
|
10
75
|
```
|
|
11
76
|
|
|
12
|
-
|
|
77
|
+
### `requirement test-case import`
|
|
78
|
+
|
|
79
|
+
从 UTF-8 JSON **数组**文件批量导入测试用例;元素字段与单条创建一致(如 `title`、`steps`,可选 `expectedResult`、`status`)。
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
apm requirement test-case import --requirement-id <需求id> --file ./cases.json
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### `requirement branch set-status`
|
|
86
|
+
|
|
87
|
+
更新分支状态,两种方式二选一:
|
|
88
|
+
|
|
89
|
+
1. **按分支记录 id**(`branches/list` 返回的 `id`):
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
apm requirement branch set-status --branch-id <分支记录id> --status <状态>
|
|
93
|
+
```
|
|
13
94
|
|
|
14
|
-
|
|
95
|
+
2. **按需求 id + 远程分支名(精确匹配)**:
|
|
15
96
|
|
|
16
97
|
```bash
|
|
17
|
-
apm
|
|
98
|
+
apm requirement branch set-status \
|
|
99
|
+
--requirement-id <需求id> \
|
|
100
|
+
--branch-name <远程分支名> \
|
|
101
|
+
--status <状态>
|
|
102
|
+
```
|
|
18
103
|
|
|
19
|
-
|
|
20
|
-
apm requirement version create --requirement-id 1 --content "说明" --no-sync-requirement-content
|
|
104
|
+
状态取值与后端一致,例如:`CREATED`、`IN_DEVELOPMENT`、`PENDING_TEST`、`MERGED`。
|
|
21
105
|
|
|
22
|
-
|
|
106
|
+
### `requirement defect set-status`
|
|
23
107
|
|
|
24
|
-
|
|
108
|
+
按缺陷 id 更新状态。
|
|
25
109
|
|
|
26
|
-
|
|
110
|
+
```bash
|
|
111
|
+
apm requirement defect set-status --defect-id <id> --status <状态>
|
|
27
112
|
```
|
|
28
113
|
|
|
29
|
-
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## `apm ws`
|
|
117
|
+
|
|
118
|
+
启动员工 **WebSocket** 客户端,连接后等待服务端推送(**Ctrl+C** 退出)。
|
|
119
|
+
|
|
120
|
+
常用选项:
|
|
121
|
+
|
|
122
|
+
- `--version`:打印当前 CLI 包版本后退出
|
|
123
|
+
- `-u, --url`:服务根地址(覆盖配置中的 base-url)
|
|
124
|
+
- `--token`:员工 token(可覆盖配置文件)
|
|
125
|
+
- `-p, --port`:WebSocket 端口(覆盖 `apm config` 中的 `ws-port`)
|
|
126
|
+
- `--employee-id`:仅用于日志展示,可选
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 员工 CLI 口令
|
|
131
|
+
|
|
132
|
+
员工 CLI 口令在库中为可配置项;在 Web 端维护员工节点时填写,或通过后端员工更新接口设置后再执行 `apm login`。
|
|
133
|
+
|
|
134
|
+
## SDK
|
|
135
|
+
|
|
136
|
+
本包导出 `createApmClient`、`requestConfig` 等,供在 Node 中调用与 CLI 相同的 HTTP API;详见包内 `package.json` 的 `exports` 与 `dist` 类型声明。
|
package/dist/api/index.d.ts
CHANGED
|
@@ -2,5 +2,5 @@ export type { ApiClient } from "listpage-http";
|
|
|
2
2
|
export { ApiError, ERROR_CODE_NETWORK, RequestTimeoutException, defineEndpoint, } from "listpage-http";
|
|
3
3
|
export { createApmClient, type ApmClient, type CreateApmClientOptions, } from "./client.js";
|
|
4
4
|
export { requestConfig, type RequestConfig } from "./request-config.js";
|
|
5
|
-
export type { EmployeeSummary, ReqBranchList, ReqBranchUpdate, ReqCommentProcessPendingAndVersion, ReqCommentSubmitPending, ResCommentProcessPendingAndVersion, ReqDefectUpdate, ReqLoginByEmployee, ReqTestCaseCreate, RequirementBranchRow, RequirementBranchStatus, RequirementCommentRow, RequirementCommentStatus, RequirementDefectRow, RequirementDefectStatus, RequirementTestCaseRow, RequirementVersionRow, ResLoginByEmployee, } from "./requirement";
|
|
5
|
+
export type { EmployeeSummary, ReqBranchList, ReqBranchUpdate, ReqCommentProcessPendingAndVersion, ReqCommentSubmitPending, ResCommentProcessPendingAndVersion, ReqDefectUpdate, ReqLoginByEmployee, ReqTestCaseCreate, ReqVersionList, RequirementBranchRow, RequirementBranchStatus, RequirementCommentRow, RequirementCommentStatus, RequirementDefectRow, RequirementDefectStatus, RequirementTestCaseRow, RequirementVersionRow, ResLoginByEmployee, } from "./requirement";
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/api/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,QAAQ,EACR,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,KAAK,SAAS,EACd,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,YAAY,EACV,eAAe,EACf,aAAa,EACb,eAAe,EACf,kCAAkC,EAClC,uBAAuB,EACvB,kCAAkC,EAClC,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,QAAQ,EACR,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,KAAK,SAAS,EACd,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,YAAY,EACV,eAAe,EACf,aAAa,EACb,eAAe,EACf,kCAAkC,EAClC,uBAAuB,EACvB,kCAAkC,EAClC,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ReqBranchList, ReqBranchUpdate, ReqCommentProcessPendingAndVersion, ReqCommentSubmitPending, ResCommentProcessPendingAndVersion, ReqDefectUpdate, ReqLoginByEmployee, ReqTestCaseCreate, RequirementBranchRow, RequirementCommentRow, RequirementDefectRow, RequirementTestCaseRow, ResLoginByEmployee } from "./requirement";
|
|
1
|
+
import type { ReqBranchList, ReqBranchUpdate, ReqCommentProcessPendingAndVersion, ReqCommentSubmitPending, ResCommentProcessPendingAndVersion, ReqDefectUpdate, ReqLoginByEmployee, ReqTestCaseCreate, ReqVersionList, RequirementBranchRow, RequirementCommentRow, RequirementDefectRow, RequirementTestCaseRow, RequirementVersionRow, ResLoginByEmployee } from "./requirement";
|
|
2
2
|
export declare const requestConfig: {
|
|
3
3
|
readonly auth: {
|
|
4
4
|
readonly loginByEmployee: import("listpage-http").EndpointConfig<ReqLoginByEmployee, ResLoginByEmployee>;
|
|
@@ -10,6 +10,7 @@ export declare const requestConfig: {
|
|
|
10
10
|
readonly branchesList: import("listpage-http").EndpointConfig<ReqBranchList, RequirementBranchRow[]>;
|
|
11
11
|
readonly branchesUpdate: import("listpage-http").EndpointConfig<ReqBranchUpdate, RequirementBranchRow>;
|
|
12
12
|
readonly defectsUpdate: import("listpage-http").EndpointConfig<ReqDefectUpdate, RequirementDefectRow>;
|
|
13
|
+
readonly versionsList: import("listpage-http").EndpointConfig<ReqVersionList, RequirementVersionRow[]>;
|
|
13
14
|
};
|
|
14
15
|
};
|
|
15
16
|
export type RequestConfig = typeof requestConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-config.d.ts","sourceRoot":"","sources":["../../src/api/request-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,kCAAkC,EAClC,uBAAuB,EACvB,kCAAkC,EAClC,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"request-config.d.ts","sourceRoot":"","sources":["../../src/api/request-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,kCAAkC,EAClC,uBAAuB,EACvB,kCAAkC,EAClC,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,aAAa;;;;;;;;;;;;;CA+ChB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC"}
|
|
@@ -35,6 +35,10 @@ exports.requestConfig = {
|
|
|
35
35
|
method: "POST",
|
|
36
36
|
path: "/requirements/defects/update",
|
|
37
37
|
}),
|
|
38
|
+
versionsList: (0, listpage_http_1.defineEndpoint)({
|
|
39
|
+
method: "POST",
|
|
40
|
+
path: "/requirements/versions/list",
|
|
41
|
+
}),
|
|
38
42
|
},
|
|
39
43
|
};
|
|
40
44
|
//# sourceMappingURL=request-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-config.js","sourceRoot":"","sources":["../../src/api/request-config.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;
|
|
1
|
+
{"version":3,"file":"request-config.js","sourceRoot":"","sources":["../../src/api/request-config.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAmBlC,QAAA,aAAa,GAAG;IAC3B,IAAI,EAAE;QACJ,eAAe,EAAE,IAAA,8BAAc,EAAyC;YACtE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,yBAAyB;YAC/B,YAAY,EAAE,KAAK;SACpB,CAAC;KACH;IACD,WAAW,EAAE;QACX,qBAAqB,EAAE,IAAA,8BAAc,EAGnC;YACA,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,uCAAuC;SAC9C,CAAC;QACF,gCAAgC,EAAE,IAAA,8BAAc,EAG9C;YACA,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,oDAAoD;SAC3D,CAAC;QACF,oBAAoB,EAAE,IAAA,8BAAc,EAGlC;YACA,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,uCAAuC;SAC9C,CAAC;QACF,YAAY,EAAE,IAAA,8BAAc,EAAwC;YAClE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,6BAA6B;SACpC,CAAC;QACF,cAAc,EAAE,IAAA,8BAAc,EAAwC;YACpE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,+BAA+B;SACtC,CAAC;QACF,aAAa,EAAE,IAAA,8BAAc,EAAwC;YACnE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,8BAA8B;SACrC,CAAC;QACF,YAAY,EAAE,IAAA,8BAAc,EAA0C;YACpE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,6BAA6B;SACpC,CAAC;KACH;CACO,CAAC"}
|
|
@@ -67,6 +67,7 @@ export type RequirementBranchRow = {
|
|
|
67
67
|
repository: {
|
|
68
68
|
id: number;
|
|
69
69
|
name: string;
|
|
70
|
+
baseBranch: string;
|
|
70
71
|
};
|
|
71
72
|
branchName: string;
|
|
72
73
|
employee: EmployeeSummary;
|
|
@@ -102,6 +103,10 @@ export type ReqTestCaseCreate = {
|
|
|
102
103
|
expectedResult?: string;
|
|
103
104
|
status?: RequirementTestCaseStatus;
|
|
104
105
|
};
|
|
106
|
+
/** 列出某需求下全部内容版本(与 apps/fe ReqVersionList 对齐) */
|
|
107
|
+
export type ReqVersionList = {
|
|
108
|
+
requirementId: number;
|
|
109
|
+
};
|
|
105
110
|
export type ReqLoginByEmployee = {
|
|
106
111
|
employeeId: number;
|
|
107
112
|
password: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requirement.d.ts","sourceRoot":"","sources":["../../src/api/requirement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,wBAAwB,GAChC,SAAS,GACT,UAAU,GACV,SAAS,GACT,aAAa,GACb,SAAS,CAAC;AAEd,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,wBAAwB,CAAC;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC,CAAC;AAEF,gCAAgC;AAChC,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,kCAAkC,GAAG;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,qBAAqB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAC/B,SAAS,GACT,SAAS,GACT,aAAa,GACb,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,uBAAuB,CAAC;IAChC,SAAS,EAAE,CAAC,eAAe,GAAG;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAC/B,SAAS,GACT,gBAAgB,GAChB,cAAc,GACd,QAAQ,CAAC;AAEb,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"requirement.d.ts","sourceRoot":"","sources":["../../src/api/requirement.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0B3D"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerInitCommands = registerInitCommands;
|
|
7
|
+
const promises_1 = require("node:fs/promises");
|
|
8
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
function resolveSkillSourceDir() {
|
|
11
|
+
// dist/cli/commands/init.js -> ../../../templates/skills
|
|
12
|
+
return node_path_1.default.resolve(__dirname, "../../../templates/skills");
|
|
13
|
+
}
|
|
14
|
+
function resolveCursorSkillsDir() {
|
|
15
|
+
return node_path_1.default.join(node_os_1.default.homedir(), ".cursor", "skills");
|
|
16
|
+
}
|
|
17
|
+
function registerInitCommands(program) {
|
|
18
|
+
program
|
|
19
|
+
.command("init")
|
|
20
|
+
.description("安装内置 Cursor skills 到 ~/.cursor/skills")
|
|
21
|
+
.action(async () => {
|
|
22
|
+
const srcDir = resolveSkillSourceDir();
|
|
23
|
+
const dstDir = resolveCursorSkillsDir();
|
|
24
|
+
await (0, promises_1.mkdir)(dstDir, { recursive: true });
|
|
25
|
+
await (0, promises_1.cp)(srcDir, dstDir, {
|
|
26
|
+
recursive: true,
|
|
27
|
+
force: true,
|
|
28
|
+
});
|
|
29
|
+
console.log(JSON.stringify({
|
|
30
|
+
ok: true,
|
|
31
|
+
installedFrom: srcDir,
|
|
32
|
+
installedTo: dstDir,
|
|
33
|
+
}, null, 2));
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":";;;;;AAcA,oDA0BC;AAxCD,+CAA6C;AAC7C,sDAAyB;AACzB,0DAA6B;AAG7B,SAAS,qBAAqB;IAC5B,yDAAyD;IACzD,OAAO,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,sBAAsB;IAC7B,OAAO,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAC;QAExC,MAAM,IAAA,gBAAK,EAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,IAAA,aAAE,EAAC,MAAM,EAAE,MAAM,EAAE;YACvB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;YACE,EAAE,EAAE,IAAI;YACR,aAAa,EAAE,MAAM;YACrB,WAAW,EAAE,MAAM;SACpB,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requirement.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/requirement.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUzC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"requirement.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/requirement.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUzC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CASlE"}
|
|
@@ -8,10 +8,38 @@ function registerRequirementCommands(program) {
|
|
|
8
8
|
const req = program
|
|
9
9
|
.command("requirement")
|
|
10
10
|
.description("需求相关子命令(测试用例、分支、缺陷等)");
|
|
11
|
+
registerRequirementVersionCommands(req);
|
|
11
12
|
registerRequirementTestCaseCommands(req);
|
|
12
13
|
registerRequirementBranchCommands(req);
|
|
13
14
|
registerRequirementDefectCommands(req);
|
|
14
15
|
}
|
|
16
|
+
function registerRequirementVersionCommands(req) {
|
|
17
|
+
const reqVer = req
|
|
18
|
+
.command("version")
|
|
19
|
+
.description("需求内容版本(版本序号与界面 v1、v2 一致)");
|
|
20
|
+
reqVer
|
|
21
|
+
.command("content")
|
|
22
|
+
.description("按需求 id 与版本序号获取该版本正文(JSON,含评论等)")
|
|
23
|
+
.requiredOption("--requirement-id <id>", "需求 id", (v) => Number.parseInt(v, 10))
|
|
24
|
+
.requiredOption("--version-seq <n>", "该需求下的版本序号(与界面 v1、v2 一致,非数据库 id)", (v) => Number.parseInt(v, 10))
|
|
25
|
+
.action(async (opts) => {
|
|
26
|
+
const api = (0, credentials_1.apiClient)();
|
|
27
|
+
try {
|
|
28
|
+
const list = await api.requirement.versionsList({
|
|
29
|
+
requirementId: opts.requirementId,
|
|
30
|
+
});
|
|
31
|
+
const hit = list.find((v) => v.versionSeq === opts.versionSeq);
|
|
32
|
+
if (!hit) {
|
|
33
|
+
console.error(`未找到版本序号 ${opts.versionSeq}(该需求下共有 ${list.length} 个版本)`);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
console.log(JSON.stringify(hit, null, 2));
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
(0, exit_api_error_1.exitApiError)(e);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
15
43
|
function registerRequirementTestCaseCommands(req) {
|
|
16
44
|
const reqTc = req.command("test-case").description("测试用例");
|
|
17
45
|
reqTc
|
|
@@ -62,17 +90,40 @@ function registerRequirementBranchCommands(req) {
|
|
|
62
90
|
const reqBranch = req.command("branch").description("需求分支");
|
|
63
91
|
reqBranch
|
|
64
92
|
.command("set-status")
|
|
65
|
-
.description("
|
|
66
|
-
.requiredOption("--requirement-id <id>", "需求 id", (v) => Number.parseInt(v, 10))
|
|
67
|
-
.requiredOption("--branch-name <name>", "远程分支名(精确匹配)")
|
|
93
|
+
.description("更新分支状态:按分支记录 id,或按需求 id + 远程分支名精确匹配")
|
|
68
94
|
.requiredOption("--status <status>", "目标状态")
|
|
95
|
+
.option("--branch-id <id>", "分支记录 id(与 requirement-id + branch-name 二选一)", (v) => Number.parseInt(v, 10))
|
|
96
|
+
.option("--requirement-id <id>", "需求 id", (v) => Number.parseInt(v, 10))
|
|
97
|
+
.option("--branch-name <name>", "远程分支名(精确匹配)")
|
|
69
98
|
.action(async (opts) => {
|
|
70
99
|
const status = opts.status;
|
|
71
|
-
const name = opts.branchName.trim();
|
|
72
100
|
const api = (0, credentials_1.apiClient)();
|
|
101
|
+
const byId = opts.branchId != null &&
|
|
102
|
+
Number.isFinite(opts.branchId) &&
|
|
103
|
+
opts.branchId >= 1;
|
|
104
|
+
const reqId = opts.requirementId;
|
|
105
|
+
const name = opts.branchName?.trim() ?? "";
|
|
106
|
+
const byReqAndName = reqId != null &&
|
|
107
|
+
Number.isFinite(reqId) &&
|
|
108
|
+
reqId >= 1 &&
|
|
109
|
+
name.length > 0;
|
|
110
|
+
if (!byId && !byReqAndName) {
|
|
111
|
+
console.error("请使用以下之一:\n" +
|
|
112
|
+
" apm requirement branch set-status --branch-id <id> --status <状态>\n" +
|
|
113
|
+
" apm requirement branch set-status --requirement-id <id> --branch-name <name> --status <状态>");
|
|
114
|
+
process.exit(1);
|
|
115
|
+
}
|
|
73
116
|
try {
|
|
117
|
+
if (byId) {
|
|
118
|
+
const row = await api.requirement.branchesUpdate({
|
|
119
|
+
id: opts.branchId,
|
|
120
|
+
status,
|
|
121
|
+
});
|
|
122
|
+
console.log(JSON.stringify(row, null, 2));
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
74
125
|
const list = await api.requirement.branchesList({
|
|
75
|
-
requirementId:
|
|
126
|
+
requirementId: reqId,
|
|
76
127
|
});
|
|
77
128
|
const hits = list.filter((b) => b.branchName.trim() === name);
|
|
78
129
|
if (hits.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requirement.js","sourceRoot":"","sources":["../../../src/cli/commands/requirement.ts"],"names":[],"mappings":";;AAWA,
|
|
1
|
+
{"version":3,"file":"requirement.js","sourceRoot":"","sources":["../../../src/cli/commands/requirement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ws.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ws.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBzC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwHzD"}
|
package/dist/cli/commands/ws.js
CHANGED
|
@@ -1,18 +1,69 @@
|
|
|
1
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
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.registerWsCommands = registerWsCommands;
|
|
37
|
+
const path = __importStar(require("node:path"));
|
|
4
38
|
const employee_ws_client_1 = require("../../employee-ws-client");
|
|
5
39
|
const config_store_1 = require("../../config-store");
|
|
6
40
|
const ws_run_command_1 = require("../ws-run-command");
|
|
41
|
+
const cliVersion = (() => {
|
|
42
|
+
try {
|
|
43
|
+
// ws.ts -> dist/cli/commands/ws.js
|
|
44
|
+
// dist/cli/commands/../../../package.json => packages/cli/package.json
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
46
|
+
const pkg = require(path.join(__dirname, "../../../package.json"));
|
|
47
|
+
return pkg.version ?? "unknown";
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return "unknown";
|
|
51
|
+
}
|
|
52
|
+
})();
|
|
7
53
|
function registerWsCommands(program) {
|
|
8
54
|
program
|
|
9
55
|
.command("ws")
|
|
10
56
|
.description("启动员工 WebSocket 客户端,连接后等待服务端推送(Ctrl+C 退出)。可通过 --token 直接传入")
|
|
57
|
+
.option("--version", "打印当前 CLI 版本后退出")
|
|
11
58
|
.option("-p, --port <port>", "WebSocket 端口(覆盖 apm config 中的 ws-port,优先级最高)", (v) => Number.parseInt(String(v), 10))
|
|
12
59
|
.option("--token <token>", "员工 WebSocket token(优先级最高;不再依赖配置文件的 token)")
|
|
13
60
|
.option("-u, --url <url>", "服务根地址(覆盖配置中的 base-url)")
|
|
14
61
|
.option("--employee-id <id>", "员工 id(仅用于日志显示;可选)", (v) => Number.parseInt(String(v), 10))
|
|
15
62
|
.action((opts) => {
|
|
63
|
+
if (opts.version) {
|
|
64
|
+
console.log(cliVersion);
|
|
65
|
+
process.exit(0);
|
|
66
|
+
}
|
|
16
67
|
const cfg = (0, config_store_1.readApmConfigSync)();
|
|
17
68
|
const baseUrlRaw = opts.url?.trim() || cfg.baseUrl?.trim() || "";
|
|
18
69
|
const baseUrl = baseUrlRaw ? (0, config_store_1.normalizeBaseUrl)(baseUrlRaw) : "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws.js","sourceRoot":"","sources":["../../../src/cli/commands/ws.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ws.js","sourceRoot":"","sources":["../../../src/cli/commands/ws.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ export declare function apiClient(): import("listpage-http").ApiClient<{
|
|
|
20
20
|
readonly branchesList: import("listpage-http").EndpointConfig<import("..").ReqBranchList, import("..").RequirementBranchRow[]>;
|
|
21
21
|
readonly branchesUpdate: import("listpage-http").EndpointConfig<import("..").ReqBranchUpdate, import("..").RequirementBranchRow>;
|
|
22
22
|
readonly defectsUpdate: import("listpage-http").EndpointConfig<import("..").ReqDefectUpdate, import("..").RequirementDefectRow>;
|
|
23
|
+
readonly versionsList: import("listpage-http").EndpointConfig<import("..").ReqVersionList, import("..").RequirementVersionRow[]>;
|
|
23
24
|
};
|
|
24
25
|
}>;
|
|
25
26
|
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/cli/credentials.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAIF,0DAA0D;AAC1D,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,cAAc,GAAG,IAAI,GACjC,IAAI,CAEN;AAED,wBAAgB,2BAA2B,IACvC,cAAc,GACd;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAmBpB;AAED,wBAAgB,uBAAuB,IAAI,cAAc,CAMxD;AAED,wBAAgB,SAAS
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/cli/credentials.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAIF,0DAA0D;AAC1D,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,cAAc,GAAG,IAAI,GACjC,IAAI,CAEN;AAED,wBAAgB,2BAA2B,IACvC,cAAc,GACd;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAmBpB;AAED,wBAAgB,uBAAuB,IAAI,cAAc,CAMxD;AAED,wBAAgB,SAAS;;;;;;;;;;;;;GAOxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-run-command.d.ts","sourceRoot":"","sources":["../../src/cli/ws-run-command.ts"],"names":[],"mappings":"AAKA,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"ws-run-command.d.ts","sourceRoot":"","sources":["../../src/cli/ws-run-command.ts"],"names":[],"mappings":"AAKA,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2DjD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAuC9D"}
|
|
@@ -28,11 +28,20 @@ function runCommand(payload) {
|
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
30
|
console.error(`${LOG} 执行命令 command=${command} cwd=${cwd}`);
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
// Windows 下很多 CLI 实际是 .cmd/.bat(如 agent.cmd),
|
|
32
|
+
// 使用 shell:false 直接 spawn("agent") 可能出现 ENOENT。
|
|
33
|
+
const isWin = node_process_1.default.platform === "win32";
|
|
34
|
+
const child = isWin
|
|
35
|
+
? (0, node_child_process_1.spawn)("cmd.exe", ["/d", "/s", "/c", command, ...args], {
|
|
36
|
+
cwd,
|
|
37
|
+
windowsVerbatimArguments: false,
|
|
38
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
39
|
+
})
|
|
40
|
+
: (0, node_child_process_1.spawn)(command, args, {
|
|
41
|
+
cwd,
|
|
42
|
+
shell: false,
|
|
43
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
44
|
+
});
|
|
36
45
|
child.stdout.on("data", (chunk) => {
|
|
37
46
|
node_process_1.default.stdout.write(`${LOG}[stdout] ${String(chunk)}`);
|
|
38
47
|
});
|
|
@@ -64,23 +73,23 @@ function runCursorFromServerPayload(data) {
|
|
|
64
73
|
return;
|
|
65
74
|
}
|
|
66
75
|
const prompt = d.prompt.trim();
|
|
67
|
-
const
|
|
76
|
+
const workdir = d.workdir.trim();
|
|
68
77
|
const args = [];
|
|
69
78
|
if (typeof d.model === "string" && d.model.trim()) {
|
|
70
79
|
args.push("--model", d.model.trim());
|
|
71
80
|
}
|
|
72
|
-
if (typeof
|
|
73
|
-
args.push("--workspace",
|
|
81
|
+
if (typeof workdir === "string") {
|
|
82
|
+
args.push("--workspace", workdir);
|
|
74
83
|
}
|
|
75
84
|
if (typeof d.mode === "string") {
|
|
76
85
|
args.push("--mode", d.mode.trim());
|
|
77
86
|
}
|
|
78
|
-
args.push("-f", "
|
|
87
|
+
args.push("-f", "-p", "--trust", "--output-format", "text");
|
|
79
88
|
args.push(JSON.stringify(prompt));
|
|
80
89
|
runCommand({
|
|
81
90
|
command: "agent",
|
|
82
91
|
args,
|
|
83
|
-
cwd,
|
|
92
|
+
cwd: workdir,
|
|
84
93
|
});
|
|
85
94
|
}
|
|
86
95
|
//# sourceMappingURL=ws-run-command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-run-command.js","sourceRoot":"","sources":["../../src/cli/ws-run-command.ts"],"names":[],"mappings":";;;;;AAKA,
|
|
1
|
+
{"version":3,"file":"ws-run-command.js","sourceRoot":"","sources":["../../src/cli/ws-run-command.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -6,6 +6,7 @@ const config_store_1 = require("./config-store");
|
|
|
6
6
|
const auth_1 = require("./cli/commands/auth");
|
|
7
7
|
const comment_1 = require("./cli/commands/comment");
|
|
8
8
|
const config_1 = require("./cli/commands/config");
|
|
9
|
+
const init_1 = require("./cli/commands/init");
|
|
9
10
|
const requirement_1 = require("./cli/commands/requirement");
|
|
10
11
|
const ws_1 = require("./cli/commands/ws");
|
|
11
12
|
const credentials_1 = require("./cli/credentials");
|
|
@@ -16,6 +17,7 @@ const program = new commander_1.Command()
|
|
|
16
17
|
const argv = process.argv.slice(2);
|
|
17
18
|
const first = argv.find((a) => !a.startsWith("-"));
|
|
18
19
|
if (first === "config" ||
|
|
20
|
+
first === "init" ||
|
|
19
21
|
first === "login" ||
|
|
20
22
|
first === "logout" ||
|
|
21
23
|
first === "ws") {
|
|
@@ -30,6 +32,7 @@ const program = new commander_1.Command()
|
|
|
30
32
|
(0, credentials_1.setActiveCliCredentials)(cred);
|
|
31
33
|
});
|
|
32
34
|
(0, config_1.registerConfigCommands)(program);
|
|
35
|
+
(0, init_1.registerInitCommands)(program);
|
|
33
36
|
(0, auth_1.registerAuthCommands)(program);
|
|
34
37
|
(0, comment_1.registerCommentCommands)(program);
|
|
35
38
|
(0, requirement_1.registerRequirementCommands)(program);
|