ai-project-manage-cli 2.0.9 → 2.0.11
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/dist/api/cli.d.ts +50 -0
- package/dist/api/cli.d.ts.map +1 -1
- package/dist/api/client.d.ts +4 -0
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/request-config.d.ts +5 -1
- package/dist/api/request-config.d.ts.map +1 -1
- package/dist/api/request-config.js +16 -0
- package/dist/api/request-config.js.map +1 -1
- package/dist/cli/commands/get.d.ts.map +1 -1
- package/dist/cli/commands/get.js +59 -0
- package/dist/cli/commands/get.js.map +1 -1
- package/dist/cli/commands/set.d.ts.map +1 -1
- package/dist/cli/commands/set.js +51 -0
- package/dist/cli/commands/set.js.map +1 -1
- package/dist/core/cursor-cmd.d.ts.map +1 -1
- package/dist/core/cursor-cmd.js +3 -2
- package/dist/core/cursor-cmd.js.map +1 -1
- package/dist/core/parse-testcase-md.d.ts +17 -0
- package/dist/core/parse-testcase-md.d.ts.map +1 -0
- package/dist/core/parse-testcase-md.js +79 -0
- package/dist/core/parse-testcase-md.js.map +1 -0
- package/package.json +2 -1
- package/templates/skills/apm-apply-change/SKILL.md +191 -0
- package/templates/skills/apm-auto-dev/SKILL.md +63 -116
- package/templates/skills/{bug-fix → apm-fixbug}/SKILL.md +2 -2
- package/templates/skills/apm-propose/SKILL.md +123 -0
- package/templates/skills/apm-propose/design-instruction.md +94 -0
- package/templates/skills/apm-propose/propose-instruction.md +81 -0
- package/templates/skills/apm-propose/specs-instruction.md +114 -0
- package/templates/skills/apm-propose/tasks-instruction.md +90 -0
- package/templates/skills/code-change-summary/SKILL.md +84 -0
- package/templates/skills/code-change-summary/summary-template.md +55 -0
- package/templates/skills/code-deploy/SKILL.md +39 -0
- package/templates/skills/prd-testcase/SKILL.md +82 -0
- package/templates/skills/case-creator/SKILL.md +0 -130
- package/templates/skills/mr-review-brief/SKILL.md +0 -79
- package/templates/skills/mr-review-brief/mr-review-template.md +0 -47
- package/templates/skills/openspec-apply-change/SKILL.md +0 -167
- package/templates/skills/openspec-propose/SKILL.md +0 -127
- package/templates/skills/test-env-release/SKILL.md +0 -31
- /package/templates/skills/{case-creator → prd-testcase}/reference.md +0 -0
package/dist/api/cli.d.ts
CHANGED
|
@@ -27,6 +27,20 @@ export type ResCliLoginByEmployee = {
|
|
|
27
27
|
token: string;
|
|
28
28
|
id: number;
|
|
29
29
|
};
|
|
30
|
+
/** 对应 lpm-server `POST /cli/resource/requirement/defects`(Bearer:当前员工名下工作目录作为处理人的缺陷) */
|
|
31
|
+
export type ReqCliResourceRequirementDefectsList = {
|
|
32
|
+
id: number;
|
|
33
|
+
};
|
|
34
|
+
export type CliDefectRow = {
|
|
35
|
+
id: string;
|
|
36
|
+
title: string;
|
|
37
|
+
status: string;
|
|
38
|
+
/** 处理人的开发目录(服务端返回 RequirementDeveloper.workdir.path) */
|
|
39
|
+
workdir?: string | null;
|
|
40
|
+
};
|
|
41
|
+
export type ResCliResourceRequirementDefectsList = {
|
|
42
|
+
list: CliDefectRow[];
|
|
43
|
+
};
|
|
30
44
|
/** 对应 lpm-server `POST /cli/resource/requirement` */
|
|
31
45
|
export type ReqCliResourceRequirementGet = {
|
|
32
46
|
id: number;
|
|
@@ -56,6 +70,12 @@ export type ResCliResourceRequirementCommentSet = {
|
|
|
56
70
|
reviewReply: string | null;
|
|
57
71
|
branchName: string | null;
|
|
58
72
|
};
|
|
73
|
+
/** 对应 lpm-server `POST /cli/resource/requirement/developer/branch-name` */
|
|
74
|
+
export type ReqCliResourceRequirementDeveloperBranchNameSet = {
|
|
75
|
+
id: number;
|
|
76
|
+
branchName: string;
|
|
77
|
+
};
|
|
78
|
+
export type ResCliResourceRequirementDeveloperBranchNameSet = ResCliResourceRequirementCommentSet;
|
|
59
79
|
/** 对应 lpm-server `POST /cli/resource/requirement/content`(同步需求正文) */
|
|
60
80
|
export type ReqCliResourceRequirementContentSet = {
|
|
61
81
|
id: number;
|
|
@@ -66,6 +86,36 @@ export type ResCliResourceRequirementContentSet = {
|
|
|
66
86
|
workitemId: string;
|
|
67
87
|
clearedRequirementDevelopers: number;
|
|
68
88
|
};
|
|
89
|
+
/** 对应 lpm-server `POST /cli/resource/requirement/test-cases/import` */
|
|
90
|
+
export type ReqCliResourceRequirementTestCasesImport = {
|
|
91
|
+
requirementId: number;
|
|
92
|
+
items: {
|
|
93
|
+
title: string;
|
|
94
|
+
steps: string;
|
|
95
|
+
expectedResult?: string;
|
|
96
|
+
}[];
|
|
97
|
+
};
|
|
98
|
+
export type ResCliResourceRequirementTestCasesImport = {
|
|
99
|
+
count: number;
|
|
100
|
+
list: {
|
|
101
|
+
id: number;
|
|
102
|
+
spaceId: string;
|
|
103
|
+
workitemId: string;
|
|
104
|
+
title: string;
|
|
105
|
+
steps: string;
|
|
106
|
+
expectedResult: string | null;
|
|
107
|
+
status: string;
|
|
108
|
+
}[];
|
|
109
|
+
};
|
|
110
|
+
/** 对应 lpm-server `POST /cli/resource/requirement/status/pending-test` */
|
|
111
|
+
export type ReqCliResourceRequirementPendingTestSet = {
|
|
112
|
+
id: number;
|
|
113
|
+
};
|
|
114
|
+
export type ResCliResourceRequirementPendingTestSet = {
|
|
115
|
+
id: number;
|
|
116
|
+
workitemId: string;
|
|
117
|
+
status: string;
|
|
118
|
+
};
|
|
69
119
|
/** 对应 lpm-server `POST /cli/log/report` */
|
|
70
120
|
export type ReqCliResourceDevelopLogPayloadReport = {
|
|
71
121
|
developLogId: string;
|
package/dist/api/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/api/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/api/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/api/client.d.ts
CHANGED
|
@@ -12,8 +12,12 @@ declare const api: ApiClient<{
|
|
|
12
12
|
readonly cli: {
|
|
13
13
|
readonly variablesGet: import("listpage-http").EndpointConfig<void, import("./cli").ResCliVariables>;
|
|
14
14
|
readonly resourceRequirementGet: import("listpage-http").EndpointConfig<import("./cli").ReqCliResourceRequirementGet, import("./cli").ResCliResourceRequirementGet>;
|
|
15
|
+
readonly resourceRequirementDefectsList: import("listpage-http").EndpointConfig<import("./cli").ReqCliResourceRequirementDefectsList, import("./cli").ResCliResourceRequirementDefectsList>;
|
|
15
16
|
readonly resourceRequirementCommentSet: import("listpage-http").EndpointConfig<import("./cli").ReqCliResourceRequirementCommentSet, import("./cli").ResCliResourceRequirementCommentSet>;
|
|
17
|
+
readonly resourceRequirementDeveloperBranchNameSet: import("listpage-http").EndpointConfig<import("./cli").ReqCliResourceRequirementDeveloperBranchNameSet, import("./cli").ResCliResourceRequirementCommentSet>;
|
|
16
18
|
readonly resourceRequirementContentSet: import("listpage-http").EndpointConfig<import("./cli").ReqCliResourceRequirementContentSet, import("./cli").ResCliResourceRequirementContentSet>;
|
|
19
|
+
readonly resourceRequirementTestCasesImport: import("listpage-http").EndpointConfig<import("./cli").ReqCliResourceRequirementTestCasesImport, import("./cli").ResCliResourceRequirementTestCasesImport>;
|
|
20
|
+
readonly resourceRequirementPendingTestSet: import("listpage-http").EndpointConfig<import("./cli").ReqCliResourceRequirementPendingTestSet, import("./cli").ResCliResourceRequirementPendingTestSet>;
|
|
17
21
|
readonly resourceDevelopLogPayloadReport: import("listpage-http").EndpointConfig<import("./cli").ReqCliResourceDevelopLogPayloadReport, import("./cli").ResCliResourceDevelopLogPayloadReport>;
|
|
18
22
|
readonly logDeveloperStatusSet: import("listpage-http").EndpointConfig<import("./cli").ReqCliLogDeveloperStatusSet, import("./cli").ResCliLogDeveloperStatusSet>;
|
|
19
23
|
};
|
package/dist/api/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,MAAM,MAAM,sBAAsB,GAAG;IACnC,kBAAkB;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAMF,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,aAAa,CAAC,CAAC;AAExD,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,SAAS,CAkB1E;AAID,QAAA,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,MAAM,MAAM,sBAAsB,GAAG;IACnC,kBAAkB;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAMF,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,aAAa,CAAC,CAAC;AAExD,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,SAAS,CAkB1E;AAID,QAAA,MAAM,GAAG;;;;;;;;;;;;;;;;EAGP,CAAC;AAEH,eAAe,GAAG,CAAC"}
|
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";
|
|
4
4
|
export { requestConfig, type RequestConfig } from "./request-config";
|
|
5
|
-
export type { ReqCliLogDeveloperStatusSet, ReqCliLoginByEmployee, ReqCliResourceDevelopLogPayloadReport, ReqCliResourceRequirementCommentSet, ReqCliResourceRequirementGet, ReqCliVariablesGet, ResCliLoginByEmployee, ResCliLogDeveloperStatusSet, ResCliResourceDevelopLogPayloadReport, ResCliResourceRequirementCommentSet, ResCliResourceRequirementGet, ResCliVariables, } from "./cli";
|
|
5
|
+
export type { CliDefectRow, ReqCliLogDeveloperStatusSet, ReqCliLoginByEmployee, ReqCliResourceDevelopLogPayloadReport, ReqCliResourceRequirementCommentSet, ReqCliResourceRequirementDefectsList, ReqCliResourceRequirementDeveloperBranchNameSet, ReqCliResourceRequirementGet, ReqCliResourceRequirementTestCasesImport, ReqCliVariablesGet, ResCliLoginByEmployee, ResCliLogDeveloperStatusSet, ResCliResourceDevelopLogPayloadReport, ResCliResourceRequirementCommentSet, ResCliResourceRequirementDefectsList, ResCliResourceRequirementDeveloperBranchNameSet, ResCliResourceRequirementGet, ResCliResourceRequirementTestCasesImport, ResCliVariables, } from "./cli";
|
|
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,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,YAAY,EACV,2BAA2B,EAC3B,qBAAqB,EACrB,qCAAqC,EACrC,mCAAmC,EACnC,4BAA4B,EAC5B,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,qCAAqC,EACrC,mCAAmC,EACnC,4BAA4B,EAC5B,eAAe,GAChB,MAAM,OAAO,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,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,YAAY,EACV,YAAY,EACZ,2BAA2B,EAC3B,qBAAqB,EACrB,qCAAqC,EACrC,mCAAmC,EACnC,oCAAoC,EACpC,+CAA+C,EAC/C,4BAA4B,EAC5B,wCAAwC,EACxC,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,qCAAqC,EACrC,mCAAmC,EACnC,oCAAoC,EACpC,+CAA+C,EAC/C,4BAA4B,EAC5B,wCAAwC,EACxC,eAAe,GAChB,MAAM,OAAO,CAAC"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import type { ReqCliLogDeveloperStatusSet, ReqCliLoginByEmployee, ReqCliResourceDevelopLogPayloadReport, ReqCliResourceRequirementCommentSet, ReqCliResourceRequirementContentSet, ReqCliResourceRequirementGet, ResCliLoginByEmployee, ResCliLogDeveloperStatusSet, ResCliResourceDevelopLogPayloadReport, ResCliResourceRequirementCommentSet, ResCliResourceRequirementContentSet, ResCliResourceRequirementGet, ResCliVariables } from "./cli";
|
|
1
|
+
import type { ReqCliLogDeveloperStatusSet, ReqCliLoginByEmployee, ReqCliResourceDevelopLogPayloadReport, ReqCliResourceRequirementCommentSet, ReqCliResourceRequirementContentSet, ReqCliResourceRequirementDefectsList, ReqCliResourceRequirementDeveloperBranchNameSet, ReqCliResourceRequirementGet, ReqCliResourceRequirementTestCasesImport, ReqCliResourceRequirementPendingTestSet, ResCliLoginByEmployee, ResCliLogDeveloperStatusSet, ResCliResourceDevelopLogPayloadReport, ResCliResourceRequirementCommentSet, ResCliResourceRequirementContentSet, ResCliResourceRequirementDefectsList, ResCliResourceRequirementGet, ResCliResourceRequirementTestCasesImport, ResCliResourceRequirementPendingTestSet, ResCliVariables } from "./cli";
|
|
2
2
|
export declare const requestConfig: {
|
|
3
3
|
readonly cli: {
|
|
4
4
|
readonly variablesGet: import("listpage-http").EndpointConfig<void, ResCliVariables>;
|
|
5
5
|
readonly resourceRequirementGet: import("listpage-http").EndpointConfig<ReqCliResourceRequirementGet, ResCliResourceRequirementGet>;
|
|
6
|
+
readonly resourceRequirementDefectsList: import("listpage-http").EndpointConfig<ReqCliResourceRequirementDefectsList, ResCliResourceRequirementDefectsList>;
|
|
6
7
|
readonly resourceRequirementCommentSet: import("listpage-http").EndpointConfig<ReqCliResourceRequirementCommentSet, ResCliResourceRequirementCommentSet>;
|
|
8
|
+
readonly resourceRequirementDeveloperBranchNameSet: import("listpage-http").EndpointConfig<ReqCliResourceRequirementDeveloperBranchNameSet, ResCliResourceRequirementCommentSet>;
|
|
7
9
|
readonly resourceRequirementContentSet: import("listpage-http").EndpointConfig<ReqCliResourceRequirementContentSet, ResCliResourceRequirementContentSet>;
|
|
10
|
+
readonly resourceRequirementTestCasesImport: import("listpage-http").EndpointConfig<ReqCliResourceRequirementTestCasesImport, ResCliResourceRequirementTestCasesImport>;
|
|
11
|
+
readonly resourceRequirementPendingTestSet: import("listpage-http").EndpointConfig<ReqCliResourceRequirementPendingTestSet, ResCliResourceRequirementPendingTestSet>;
|
|
8
12
|
readonly resourceDevelopLogPayloadReport: import("listpage-http").EndpointConfig<ReqCliResourceDevelopLogPayloadReport, ResCliResourceDevelopLogPayloadReport>;
|
|
9
13
|
readonly logDeveloperStatusSet: import("listpage-http").EndpointConfig<ReqCliLogDeveloperStatusSet, ResCliLogDeveloperStatusSet>;
|
|
10
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-config.d.ts","sourceRoot":"","sources":["../../src/api/request-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,2BAA2B,EAC3B,qBAAqB,EACrB,qCAAqC,EACrC,mCAAmC,EACnC,mCAAmC,EACnC,4BAA4B,
|
|
1
|
+
{"version":3,"file":"request-config.d.ts","sourceRoot":"","sources":["../../src/api/request-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,2BAA2B,EAC3B,qBAAqB,EACrB,qCAAqC,EACrC,mCAAmC,EACnC,mCAAmC,EACnC,oCAAoC,EACpC,+CAA+C,EAC/C,4BAA4B,EAC5B,wCAAwC,EACxC,uCAAuC,EAEvC,qBAAqB,EACrB,2BAA2B,EAC3B,qCAAqC,EACrC,mCAAmC,EACnC,mCAAmC,EACnC,oCAAoC,EAEpC,4BAA4B,EAC5B,wCAAwC,EACxC,uCAAuC,EACvC,eAAe,EAChB,MAAM,OAAO,CAAC;AAEf,eAAO,MAAM,aAAa;;;;;;;;;;;;;;QAuEtB,iDAAiD;;;CAO3C,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC"}
|
|
@@ -12,14 +12,30 @@ exports.requestConfig = {
|
|
|
12
12
|
method: "POST",
|
|
13
13
|
path: "/cli/resource/requirement",
|
|
14
14
|
}),
|
|
15
|
+
resourceRequirementDefectsList: (0, listpage_http_1.defineEndpoint)({
|
|
16
|
+
method: "POST",
|
|
17
|
+
path: "/cli/resource/requirement/defects",
|
|
18
|
+
}),
|
|
15
19
|
resourceRequirementCommentSet: (0, listpage_http_1.defineEndpoint)({
|
|
16
20
|
method: "POST",
|
|
17
21
|
path: "/cli/resource/requirement/comment",
|
|
18
22
|
}),
|
|
23
|
+
resourceRequirementDeveloperBranchNameSet: (0, listpage_http_1.defineEndpoint)({
|
|
24
|
+
method: "POST",
|
|
25
|
+
path: "/cli/resource/requirement/developer/branch-name",
|
|
26
|
+
}),
|
|
19
27
|
resourceRequirementContentSet: (0, listpage_http_1.defineEndpoint)({
|
|
20
28
|
method: "POST",
|
|
21
29
|
path: "/cli/resource/requirement/content",
|
|
22
30
|
}),
|
|
31
|
+
resourceRequirementTestCasesImport: (0, listpage_http_1.defineEndpoint)({
|
|
32
|
+
method: "POST",
|
|
33
|
+
path: "/cli/resource/requirement/test-cases/import",
|
|
34
|
+
}),
|
|
35
|
+
resourceRequirementPendingTestSet: (0, listpage_http_1.defineEndpoint)({
|
|
36
|
+
method: "POST",
|
|
37
|
+
path: "/cli/resource/requirement/status/pending-test",
|
|
38
|
+
}),
|
|
23
39
|
resourceDevelopLogPayloadReport: (0, listpage_http_1.defineEndpoint)({
|
|
24
40
|
method: "POST",
|
|
25
41
|
path: "/cli/log/report",
|
|
@@ -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;AA2BlC,QAAA,aAAa,GAAG;IAC3B,GAAG,EAAE;QACH,YAAY,EAAE,IAAA,8BAAc,EAAsC;YAChE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,oBAAoB;SAC3B,CAAC;QACF,sBAAsB,EAAE,IAAA,8BAAc,EAGpC;YACA,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,2BAA2B;SAClC,CAAC;QACF,8BAA8B,EAAE,IAAA,8BAAc,EAG5C;YACA,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,mCAAmC;SAC1C,CAAC;QACF,6BAA6B,EAAE,IAAA,8BAAc,EAG3C;YACA,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,mCAAmC;SAC1C,CAAC;QACF,yCAAyC,EAAE,IAAA,8BAAc,EAGvD;YACA,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,iDAAiD;SACxD,CAAC;QACF,6BAA6B,EAAE,IAAA,8BAAc,EAG3C;YACA,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,mCAAmC;SAC1C,CAAC;QACF,kCAAkC,EAAE,IAAA,8BAAc,EAGhD;YACA,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,6CAA6C;SACpD,CAAC;QACF,iCAAiC,EAAE,IAAA,8BAAc,EAG/C;YACA,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,+CAA+C;SACtD,CAAC;QACF,+BAA+B,EAAE,IAAA,8BAAc,EAG7C;YACA,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,iBAAiB;SACxB,CAAC;QACF,qBAAqB,EAAE,IAAA,8BAAc,EAGnC;YACA,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,uBAAuB;SAC9B,CAAC;KACH;IACD,QAAQ,EAAE;QACR,iDAAiD;QACjD,IAAI,EAAE,IAAA,8BAAc,EAA+C;YACjE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,oBAAoB;YAC1B,YAAY,EAAE,KAAK;SACpB,CAAC;KACH;CACO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/get.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/get.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8CzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgG1D"}
|
package/dist/cli/commands/get.js
CHANGED
|
@@ -8,6 +8,34 @@ const node_fs_1 = require("node:fs");
|
|
|
8
8
|
const client_1 = __importDefault(require("../../api/client"));
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
10
|
const apm_config_1 = require("../../core/apm-config");
|
|
11
|
+
/** 与 lpm-server `DefectStatus` / 飞书插件文案一致 */
|
|
12
|
+
const DEFECT_STATUS_LABEL = {
|
|
13
|
+
OPEN: "已创建",
|
|
14
|
+
PENDING: "待处理",
|
|
15
|
+
IN_PROGRESS: "处理中",
|
|
16
|
+
PENDING_VERIFICATION: "待验证",
|
|
17
|
+
FIXED: "已解决",
|
|
18
|
+
REOPENED: "重新打开",
|
|
19
|
+
};
|
|
20
|
+
function defectStatusLabel(status) {
|
|
21
|
+
return DEFECT_STATUS_LABEL[status] ?? status;
|
|
22
|
+
}
|
|
23
|
+
function buildDefectMarkdown(row) {
|
|
24
|
+
return `## 当前状态
|
|
25
|
+
${defectStatusLabel(row.status)}
|
|
26
|
+
|
|
27
|
+
## 缺陷内容
|
|
28
|
+
${row.title}
|
|
29
|
+
`;
|
|
30
|
+
}
|
|
31
|
+
function buildStatusYaml(defects) {
|
|
32
|
+
const lines = ["# 缺陷状态", "defects:"];
|
|
33
|
+
for (const d of defects) {
|
|
34
|
+
lines.push(` "${d.id}":`);
|
|
35
|
+
lines.push(` status: ${d.status}`);
|
|
36
|
+
}
|
|
37
|
+
return `${lines.join("\n")}\n`;
|
|
38
|
+
}
|
|
11
39
|
function parseRequirementId(value) {
|
|
12
40
|
const n = Number.parseInt(value, 10);
|
|
13
41
|
if (!Number.isFinite(n) || n < 1) {
|
|
@@ -55,5 +83,36 @@ ${res.comments
|
|
|
55
83
|
console.log(res.content);
|
|
56
84
|
console.log("--------------------------------");
|
|
57
85
|
});
|
|
86
|
+
getCmd
|
|
87
|
+
.command("defect")
|
|
88
|
+
.description("按需求 ID 拉取当前登录员工名下的缺陷列表,并写入 .apm/workitems/<id>/bugs/")
|
|
89
|
+
.argument("<id>", "需求 ID", parseRequirementId)
|
|
90
|
+
.action(async (requirementId) => {
|
|
91
|
+
const config = (0, apm_config_1.loadApmConfig)();
|
|
92
|
+
if (!config.auth.token?.trim()) {
|
|
93
|
+
throw new Error("未登录:请先执行 apm login");
|
|
94
|
+
}
|
|
95
|
+
const res = await client_1.default.cli.resourceRequirementDefectsList({
|
|
96
|
+
id: requirementId,
|
|
97
|
+
});
|
|
98
|
+
const currentDir = path_1.default.resolve(process.cwd());
|
|
99
|
+
const matched = res.list.filter((row) => {
|
|
100
|
+
const defectWorkdir = row.workdir?.trim();
|
|
101
|
+
if (!defectWorkdir) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
return defectWorkdir === currentDir;
|
|
105
|
+
});
|
|
106
|
+
const bugsDir = path_1.default.join(".apm/workitems", String(requirementId), "bugs");
|
|
107
|
+
(0, node_fs_1.rmSync)(bugsDir, { recursive: true, force: true });
|
|
108
|
+
(0, node_fs_1.mkdirSync)(bugsDir, { recursive: true });
|
|
109
|
+
for (const row of matched) {
|
|
110
|
+
const mdPath = path_1.default.join(bugsDir, `${row.id}.md`);
|
|
111
|
+
(0, node_fs_1.writeFileSync)(mdPath, buildDefectMarkdown(row), "utf8");
|
|
112
|
+
}
|
|
113
|
+
const statusPath = path_1.default.join(bugsDir, "status.yaml");
|
|
114
|
+
(0, node_fs_1.writeFileSync)(statusPath, buildStatusYaml(matched), "utf8");
|
|
115
|
+
console.log(`已写入 ${matched.length} 条缺陷到 ${bugsDir},并更新 status.yaml(忽略 ${res.list.length - matched.length} 条目录不匹配的缺陷)`);
|
|
116
|
+
});
|
|
58
117
|
}
|
|
59
118
|
//# sourceMappingURL=get.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/cli/commands/get.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/cli/commands/get.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/set.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/set.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqH1D"}
|
package/dist/cli/commands/set.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.registerSetCommands = registerSetCommands;
|
|
|
7
7
|
const node_fs_1 = require("node:fs");
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
const client_1 = __importDefault(require("../../api/client"));
|
|
10
|
+
const parse_testcase_md_1 = require("../../core/parse-testcase-md");
|
|
10
11
|
function parseRequirementId(value) {
|
|
11
12
|
const n = Number.parseInt(value, 10);
|
|
12
13
|
if (!Number.isFinite(n) || n < 1) {
|
|
@@ -52,5 +53,55 @@ function registerSetCommands(program) {
|
|
|
52
53
|
await client_1.default.cli.resourceRequirementCommentSet({ id, content });
|
|
53
54
|
console.log("评审记录已提交");
|
|
54
55
|
});
|
|
56
|
+
setCmd
|
|
57
|
+
.command("testcase")
|
|
58
|
+
.description("读取 .apm/workitems/<需求ID>/testcase.md,解析为用例并批量导入服务端")
|
|
59
|
+
.argument("<id>", "需求 ID", parseRequirementId)
|
|
60
|
+
.action(async (id) => {
|
|
61
|
+
const filePath = node_path_1.default.join(process.cwd(), ".apm/workitems", String(id), "testcase.md");
|
|
62
|
+
if (!(0, node_fs_1.existsSync)(filePath)) {
|
|
63
|
+
console.error(`未找到文件: ${filePath}`);
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
const raw = (0, node_fs_1.readFileSync)(filePath, "utf8");
|
|
67
|
+
if (!raw.trim()) {
|
|
68
|
+
console.error("testcase.md 内容为空");
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
71
|
+
let items;
|
|
72
|
+
try {
|
|
73
|
+
items = (0, parse_testcase_md_1.parseTestcaseMarkdown)(raw);
|
|
74
|
+
}
|
|
75
|
+
catch (e) {
|
|
76
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
77
|
+
console.error(`解析 testcase.md 失败: ${msg}`);
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
const res = await client_1.default.cli.resourceRequirementTestCasesImport({
|
|
81
|
+
requirementId: id,
|
|
82
|
+
items,
|
|
83
|
+
});
|
|
84
|
+
console.log(`测试用例已导入 ${res.count} 条(requirementId=${id})`);
|
|
85
|
+
});
|
|
86
|
+
setCmd
|
|
87
|
+
.command("branchName")
|
|
88
|
+
.description("设置当前员工在本需求下对应开发者的分支名(branchName),并将状态置为开发中(DEVELOPING)")
|
|
89
|
+
.argument("<id>", "需求 ID", parseRequirementId)
|
|
90
|
+
.argument("<name>", "分支名称")
|
|
91
|
+
.action(async (id, name) => {
|
|
92
|
+
const res = await client_1.default.cli.resourceRequirementDeveloperBranchNameSet({
|
|
93
|
+
id,
|
|
94
|
+
branchName: name,
|
|
95
|
+
});
|
|
96
|
+
console.log(`已设置分支「${res.branchName ?? name}」,开发者状态=${res.status}`);
|
|
97
|
+
});
|
|
98
|
+
setCmd
|
|
99
|
+
.command("pendingTest")
|
|
100
|
+
.description("将服务端需求状态设为待测试(PENDING_TEST)")
|
|
101
|
+
.argument("<id>", "需求 ID", parseRequirementId)
|
|
102
|
+
.action(async (id) => {
|
|
103
|
+
await client_1.default.cli.resourceRequirementPendingTestSet({ id });
|
|
104
|
+
console.log(`需求状态已设为待测试`);
|
|
105
|
+
});
|
|
55
106
|
}
|
|
56
107
|
//# sourceMappingURL=set.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../../src/cli/commands/set.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../../src/cli/commands/set.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-cmd.d.ts","sourceRoot":"","sources":["../../src/core/cursor-cmd.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAS;gBAEV,OAAO,EAAE,gBAAgB;IAW/B,OAAO;IAab,OAAO,CAAC,SAAS;YAwBH,SAAS;IA4BvB,OAAO,CAAC,UAAU;IAkClB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,eAAe;YAgBT,MAAM;YAUN,YAAY;
|
|
1
|
+
{"version":3,"file":"cursor-cmd.d.ts","sourceRoot":"","sources":["../../src/core/cursor-cmd.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAS;gBAEV,OAAO,EAAE,gBAAgB;IAW/B,OAAO;IAab,OAAO,CAAC,SAAS;YAwBH,SAAS;IA4BvB,OAAO,CAAC,UAAU;IAkClB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,eAAe;YAgBT,MAAM;YAUN,YAAY;YAiBZ,WAAW;CAM1B"}
|
package/dist/core/cursor-cmd.js
CHANGED
|
@@ -153,8 +153,9 @@ class CursorCmd {
|
|
|
153
153
|
// 在运行命令之前
|
|
154
154
|
async beforeAction() {
|
|
155
155
|
const statusMap = {
|
|
156
|
-
"prd-review": "REVIEWING",
|
|
157
|
-
"prd-sync": "POLISHING",
|
|
156
|
+
"/prd-review": "REVIEWING",
|
|
157
|
+
"/prd-sync": "POLISHING",
|
|
158
|
+
"/prd-testcase": "GENERATING_TEST_CASE",
|
|
158
159
|
};
|
|
159
160
|
const status = statusMap[this.name];
|
|
160
161
|
if (!status) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-cmd.js","sourceRoot":"","sources":["../../src/core/cursor-cmd.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cursor-cmd.js","sourceRoot":"","sources":["../../src/core/cursor-cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 解析 `.apm/workitems/<id>/testcase.md`
|
|
3
|
+
* 格式由 prd-testcase 技能产出,见 `templates/skills/prd-testcase/reference.md`:
|
|
4
|
+
* - 文首 `# 测试用例`,正文仅 `### 优先级:标题(TC-xxx)` 平铺
|
|
5
|
+
* - 每块内固定顺序:可选「测试类型 / 数据依赖」→「操作步骤」→「预期结果」
|
|
6
|
+
* - 文末可追加 `## 覆盖校验`(技能强制),导入时应忽略
|
|
7
|
+
*/
|
|
8
|
+
export type ParsedTestCaseItem = {
|
|
9
|
+
title: string;
|
|
10
|
+
steps: string;
|
|
11
|
+
expectedResult?: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* 将 testcase.md 正文解析为可提交给后端的 items。
|
|
15
|
+
*/
|
|
16
|
+
export declare function parseTestcaseMarkdown(md: string): ParsedTestCaseItem[];
|
|
17
|
+
//# sourceMappingURL=parse-testcase-md.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-testcase-md.d.ts","sourceRoot":"","sources":["../../src/core/parse-testcase-md.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAwCF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,EAAE,CA0CtE"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 解析 `.apm/workitems/<id>/testcase.md`
|
|
4
|
+
* 格式由 prd-testcase 技能产出,见 `templates/skills/prd-testcase/reference.md`:
|
|
5
|
+
* - 文首 `# 测试用例`,正文仅 `### 优先级:标题(TC-xxx)` 平铺
|
|
6
|
+
* - 每块内固定顺序:可选「测试类型 / 数据依赖」→「操作步骤」→「预期结果」
|
|
7
|
+
* - 文末可追加 `## 覆盖校验`(技能强制),导入时应忽略
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.parseTestcaseMarkdown = parseTestcaseMarkdown;
|
|
11
|
+
function normalizeNewlines(md) {
|
|
12
|
+
return md.replace(/\r\n/g, "\n");
|
|
13
|
+
}
|
|
14
|
+
/** 技能在文末追加的覆盖矩阵小节,其中含 `###`,若不截断会误解析为用例 */
|
|
15
|
+
function stripCoverageTail(md) {
|
|
16
|
+
const m = md.match(/\n##\s+覆盖校验\b/);
|
|
17
|
+
if (!m || m.index === undefined) {
|
|
18
|
+
return md;
|
|
19
|
+
}
|
|
20
|
+
return md.slice(0, m.index).trim();
|
|
21
|
+
}
|
|
22
|
+
/** 仅识别「用例行」:`### P0: xxx(TC-001)`,避免误把覆盖矩阵里的 `###` 当用例 */
|
|
23
|
+
function isTestCaseHeadingLine(line) {
|
|
24
|
+
const t = line.replace(/^###\s+/, "").trim();
|
|
25
|
+
return /\(TC-\d+\)\s*$/.test(t);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 技能约定:块内必有 `- 操作步骤:`,`- 预期结果:` 紧随其后;二者正文均为缩进编号列表。
|
|
29
|
+
* 用固定分隔符切分即可,无需通用 Markdown 解析。
|
|
30
|
+
*/
|
|
31
|
+
function parseCaseBlockBody(body) {
|
|
32
|
+
const stepsM = body.match(/- 操作步骤[::]\s*\n([\s\S]*?)(?=\n- 预期结果[::])/);
|
|
33
|
+
const expectM = body.match(/- 预期结果[::]\s*\n([\s\S]*)/);
|
|
34
|
+
const steps = stepsM?.[1]?.trim() ?? "";
|
|
35
|
+
const expected = expectM?.[1]?.trim();
|
|
36
|
+
return {
|
|
37
|
+
steps,
|
|
38
|
+
expected: expected || undefined,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* 将 testcase.md 正文解析为可提交给后端的 items。
|
|
43
|
+
*/
|
|
44
|
+
function parseTestcaseMarkdown(md) {
|
|
45
|
+
const text = normalizeNewlines(md).trim();
|
|
46
|
+
if (!text) {
|
|
47
|
+
throw new Error("testcase.md 内容为空");
|
|
48
|
+
}
|
|
49
|
+
const withoutTail = stripCoverageTail(text);
|
|
50
|
+
const chunks = withoutTail.split(/\n(?=### )/);
|
|
51
|
+
const items = [];
|
|
52
|
+
for (const chunk of chunks) {
|
|
53
|
+
const block = chunk.trim();
|
|
54
|
+
if (!block.startsWith("###")) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
const lines = block.split("\n");
|
|
58
|
+
const head = lines[0];
|
|
59
|
+
if (!isTestCaseHeadingLine(head)) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
const title = head.replace(/^###\s+/, "").trim();
|
|
63
|
+
const body = lines.slice(1).join("\n");
|
|
64
|
+
const { steps, expected } = parseCaseBlockBody(body);
|
|
65
|
+
if (!steps) {
|
|
66
|
+
throw new Error(`用例「${title}」缺少「操作步骤」段落`);
|
|
67
|
+
}
|
|
68
|
+
items.push({
|
|
69
|
+
title,
|
|
70
|
+
steps,
|
|
71
|
+
expectedResult: expected,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
if (items.length === 0) {
|
|
75
|
+
throw new Error("未解析到任何用例:请确认正文为「### 优先级:标题(TC-xxx)」且含「操作步骤」");
|
|
76
|
+
}
|
|
77
|
+
return items;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=parse-testcase-md.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-testcase-md.js","sourceRoot":"","sources":["../../src/core/parse-testcase-md.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAiDH,sDA0CC;AAnFD,SAAS,iBAAiB,CAAC,EAAU;IACnC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,2CAA2C;AAC3C,SAAS,iBAAiB,CAAC,EAAU;IACnC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AACrC,CAAC;AAED,0DAA0D;AAC1D,SAAS,qBAAqB,CAAC,IAAY;IACzC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,2CAA2C,CAC5C,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAEvD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAEtC,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,QAAQ,IAAI,SAAS;KAChC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,EAAU;IAC9C,MAAM,IAAI,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAyB,EAAE,CAAC;IAEvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;QAC5C,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACT,KAAK;YACL,KAAK;YACL,cAAc,EAAE,QAAQ;SACzB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,6CAA6C,CAC9C,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ai-project-manage-cli",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.11",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "AI 项目管理 CLI 工具,结合飞书项目实现AI项目开发工作流",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"apm:comment:help": "node ./dist/cli.js comment --help",
|
|
32
32
|
"apm:comment:update": "node ./dist/cli.js comment update",
|
|
33
33
|
"apm:comment:process": "node ./dist/cli.js comment process",
|
|
34
|
+
"apm:set:pending-test": "node ./dist/cli.js set pendingTest",
|
|
34
35
|
"apm:requirement:help": "node ./dist/cli.js requirement --help",
|
|
35
36
|
"apm:requirement:test-case:import": "node ./dist/cli.js requirement test-case import",
|
|
36
37
|
"apm:requirement:branch:set-status": "node ./dist/cli.js requirement branch set-status",
|