@prd-improve/cli 1.2.0 → 2.0.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/dist/api/client.js +13 -2
- package/dist/api/client.js.map +1 -1
- package/dist/changelog.d.ts +13 -7
- package/dist/changelog.js +12 -15
- package/dist/changelog.js.map +1 -1
- package/dist/cli.js +46 -7
- package/dist/cli.js.map +1 -1
- package/dist/commands/_prdSource.d.ts +35 -0
- package/dist/commands/_prdSource.js +110 -0
- package/dist/commands/_prdSource.js.map +1 -0
- package/dist/commands/admin/_authResolve.js +8 -24
- package/dist/commands/admin/_authResolve.js.map +1 -1
- package/dist/commands/admin/_backendOption.d.ts +5 -0
- package/dist/commands/admin/_backendOption.js +6 -0
- package/dist/commands/admin/_backendOption.js.map +1 -0
- package/dist/commands/admin/index.js +3 -2
- package/dist/commands/admin/index.js.map +1 -1
- package/dist/commands/admin/member.js +5 -4
- package/dist/commands/admin/member.js.map +1 -1
- package/dist/commands/admin/project.d.ts +1 -1
- package/dist/commands/admin/project.js +23 -10
- package/dist/commands/admin/project.js.map +1 -1
- package/dist/commands/admin/renameOpts.d.ts +22 -0
- package/dist/commands/admin/renameOpts.js +6 -0
- package/dist/commands/admin/renameOpts.js.map +1 -0
- package/dist/commands/admin/team.d.ts +2 -2
- package/dist/commands/admin/team.js +27 -15
- package/dist/commands/admin/team.js.map +1 -1
- package/dist/commands/admin/teamMember.js +5 -4
- package/dist/commands/admin/teamMember.js.map +1 -1
- package/dist/commands/admin/token.js +4 -3
- package/dist/commands/admin/token.js.map +1 -1
- package/dist/commands/admin/user.js +32 -3
- package/dist/commands/admin/user.js.map +1 -1
- package/dist/commands/closeout.d.ts +2 -0
- package/dist/commands/closeout.js +60 -12
- package/dist/commands/closeout.js.map +1 -1
- package/dist/commands/completion.d.ts +7 -0
- package/dist/commands/completion.js +25 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/config.js +42 -11
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/context.js +11 -117
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/export.d.ts +8 -0
- package/dist/commands/export.js +179 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/freeze.d.ts +2 -0
- package/dist/commands/freeze.js +63 -13
- package/dist/commands/freeze.js.map +1 -1
- package/dist/commands/init.js +3 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts +5 -0
- package/dist/commands/login.js +17 -4
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.js +4 -6
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/migrate-yaml.js +6 -0
- package/dist/commands/migrate-yaml.js.map +1 -1
- package/dist/commands/project.js +1 -1
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/pull.js +1 -1
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.js +2 -2
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/reopen.d.ts +4 -0
- package/dist/commands/reopen.js +76 -0
- package/dist/commands/reopen.js.map +1 -0
- package/dist/commands/resolve.d.ts +8 -0
- package/dist/commands/resolve.js +127 -0
- package/dist/commands/resolve.js.map +1 -0
- package/dist/commands/skill.d.ts +4 -0
- package/dist/commands/skill.js +16 -1
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/team.js +1 -1
- package/dist/commands/team.js.map +1 -1
- package/dist/commands/validate.d.ts +2 -0
- package/dist/commands/validate.js +4 -2
- package/dist/commands/validate.js.map +1 -1
- package/dist/completion/generate.d.ts +37 -0
- package/dist/completion/generate.js +175 -0
- package/dist/completion/generate.js.map +1 -0
- package/dist/config/rc.d.ts +31 -9
- package/dist/config/rc.js +85 -32
- package/dist/config/rc.js.map +1 -1
- package/dist/config/schema.d.ts +21 -8
- package/dist/config/schema.js +8 -5
- package/dist/config/schema.js.map +1 -1
- package/dist/diff/engine.js +2 -1
- package/dist/diff/engine.js.map +1 -1
- package/dist/i18n/en.js +61 -9
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/help.en.d.ts +25 -0
- package/dist/i18n/help.en.js +25 -0
- package/dist/i18n/help.en.js.map +1 -1
- package/dist/i18n/help.zh.d.ts +25 -0
- package/dist/i18n/help.zh.js +25 -0
- package/dist/i18n/help.zh.js.map +1 -1
- package/dist/i18n/helpGroups.js +2 -2
- package/dist/i18n/helpGroups.js.map +1 -1
- package/dist/i18n/index.js +2 -1
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/peekLang.d.ts +1 -0
- package/dist/i18n/peekLang.js +19 -0
- package/dist/i18n/peekLang.js.map +1 -1
- package/dist/i18n/zh.d.ts +138 -10
- package/dist/i18n/zh.js +61 -9
- package/dist/i18n/zh.js.map +1 -1
- package/dist/renderer/context-md.d.ts +13 -2
- package/dist/renderer/context-md.js +12 -12
- package/dist/renderer/context-md.js.map +1 -1
- package/dist/renderer/spec-md.d.ts +19 -0
- package/dist/renderer/spec-md.js +206 -0
- package/dist/renderer/spec-md.js.map +1 -0
- package/dist/schema/prd.js +15 -0
- package/dist/schema/prd.js.map +1 -1
- package/dist/skill/prd-improve-forge/SKILL.md +94 -7
- package/dist/skill/prd-improve-forge/checklists/batch-import.md +1 -0
- package/dist/skill/prd-improve-forge/checklists/dimensions/integration-seam.md +131 -0
- package/dist/skill/prd-improve-forge/checklists/dimensions/state-machine-counter.md +130 -0
- package/dist/skill/prd-improve-forge/examples/import-history-prds.prd.yaml +6 -1
- package/dist/skill/prd-improve-forge/templates/prd.yaml +8 -7
- package/dist/validators/references.js +2 -0
- package/dist/validators/references.js.map +1 -1
- package/dist/workspace.d.ts +8 -1
- package/dist/workspace.js +12 -1
- package/dist/workspace.js.map +1 -1
- package/dist/yamlPatch.d.ts +5 -0
- package/dist/yamlPatch.js +16 -4
- package/dist/yamlPatch.js.map +1 -1
- package/package.json +13 -12
package/dist/workspace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAqBnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAU9C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,YAAoB;IAC/C,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACzD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAgB,EAAE,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,OAAO,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACnD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,YAAoB,EAAE,IAAc;IAChE,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,EAA4C,CAAC;IAClE,GAAG,CAAC,uBAAuB,GAAG,GAAG,CAAC,uBAAuB,IAAI,uBAAuB,CAAC;IACrF,OAAO,GAAG,CAAC,cAAc,CAAC;IAC1B,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3E,CAAC"}
|
package/dist/yamlPatch.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
export interface YamlEdit {
|
|
2
2
|
path: (string | number)[];
|
|
3
|
+
/** op:"delete" 时忽略(传 "" 即可) */
|
|
3
4
|
value: string;
|
|
5
|
+
/** "block" = BLOCK_LITERAL(多行决议文本);缺省 QUOTE_DOUBLE(防裸日期被解析成 Date) */
|
|
6
|
+
style?: "block";
|
|
7
|
+
/** v1.23:删除键(eemeli deleteIn);叶子不存在幂等,中间路径缺失归并 ok:false */
|
|
8
|
+
op?: "delete";
|
|
4
9
|
}
|
|
5
10
|
export declare function patchYamlText(text: string, edits: YamlEdit[]): {
|
|
6
11
|
ok: true;
|
package/dist/yamlPatch.js
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
* 解析失败返回 ok:false,调用方决定降级或阻断。
|
|
7
7
|
* 值一律写成双引号 scalar:裸 `2026-06-12` 会被下游 yaml 解析成 Date
|
|
8
8
|
* 导致 zod "Expected string, received date";引号化与 fixture/模板风格一致。
|
|
9
|
+
* v1.22 起支持 style:'block'(resolve 决议长文本);eemeli 对不可块标量表示值(控制符等)自动降级 quoted
|
|
10
|
+
* v1.23 起支持 op:'delete'(eemeli deleteIn):叶子不存在幂等返回 ok:true,中间路径缺失归并 ok:false
|
|
9
11
|
*/
|
|
10
12
|
import { parseDocument, Scalar, isScalar } from "yaml";
|
|
11
13
|
export function patchYamlText(text, edits) {
|
|
@@ -20,16 +22,26 @@ export function patchYamlText(text, edits) {
|
|
|
20
22
|
return { ok: false, error: doc.errors.map((e) => e.message).join("; ") };
|
|
21
23
|
}
|
|
22
24
|
for (const e of edits) {
|
|
25
|
+
if (e.op === "delete") {
|
|
26
|
+
try {
|
|
27
|
+
doc.deleteIn(e.path);
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
return { ok: false, error: err.message };
|
|
31
|
+
}
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
const scalarType = e.style === "block" ? Scalar.BLOCK_LITERAL : Scalar.QUOTE_DOUBLE;
|
|
23
35
|
const existing = doc.getIn(e.path, true);
|
|
24
36
|
if (isScalar(existing)) {
|
|
25
|
-
// 既有 scalar 就地改值(保行内注释)
|
|
37
|
+
// 既有 scalar 就地改值(保行内注释),按 style 选型
|
|
26
38
|
existing.value = e.value;
|
|
27
|
-
existing.type =
|
|
39
|
+
existing.type = scalarType;
|
|
28
40
|
}
|
|
29
41
|
else {
|
|
30
|
-
//
|
|
42
|
+
// 新叶子:预建 scalar 再 setIn(setIn 裸值会存原始 JS 值,绕过样式控制)
|
|
31
43
|
const node = doc.createNode(e.value);
|
|
32
|
-
node.type =
|
|
44
|
+
node.type = scalarType;
|
|
33
45
|
doc.setIn(e.path, node);
|
|
34
46
|
}
|
|
35
47
|
}
|
package/dist/yamlPatch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yamlPatch.js","sourceRoot":"","sources":["../src/yamlPatch.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"yamlPatch.js","sourceRoot":"","sources":["../src/yamlPatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAYvD,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,KAAiB;IAEjB,IAAI,GAAqC,CAAC;IAC1C,IAAI,CAAC;QACH,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC;IACpD,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3E,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;YACtD,CAAC;YACD,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACpF,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,mCAAmC;YACnC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YACzB,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,kDAAkD;YAClD,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAW,CAAC;YAC/C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;YACvB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACzC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prd-improve/cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "PRD Improve CLI - validate / freeze / context for .prd/features/*.yaml",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -21,6 +21,15 @@
|
|
|
21
21
|
"dist",
|
|
22
22
|
"README.md"
|
|
23
23
|
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc -p . && node scripts/copy-skill.mjs",
|
|
26
|
+
"prepublishOnly": "pnpm run build",
|
|
27
|
+
"dev": "tsx src/cli.ts",
|
|
28
|
+
"test": "vitest run --passWithNoTests",
|
|
29
|
+
"test:watch": "vitest",
|
|
30
|
+
"test:update": "vitest run -u --passWithNoTests",
|
|
31
|
+
"typecheck": "tsc --noEmit"
|
|
32
|
+
},
|
|
24
33
|
"dependencies": {
|
|
25
34
|
"chalk": "^5.3.0",
|
|
26
35
|
"commander": "^12.1.0",
|
|
@@ -29,22 +38,14 @@
|
|
|
29
38
|
"zod": "^3.23.8"
|
|
30
39
|
},
|
|
31
40
|
"devDependencies": {
|
|
41
|
+
"@prd-improve/server": "workspace:*",
|
|
32
42
|
"@types/js-yaml": "^4.0.9",
|
|
33
43
|
"@types/node": "^20.14.0",
|
|
34
44
|
"tsx": "^4.16.0",
|
|
35
45
|
"typescript": "^5.5.0",
|
|
36
|
-
"vitest": "^2.0.0"
|
|
37
|
-
"@prd-improve/server": "0.3.0"
|
|
46
|
+
"vitest": "^2.0.0"
|
|
38
47
|
},
|
|
39
48
|
"engines": {
|
|
40
49
|
"node": ">=18.0.0"
|
|
41
|
-
},
|
|
42
|
-
"scripts": {
|
|
43
|
-
"build": "tsc -p . && node scripts/copy-skill.mjs",
|
|
44
|
-
"dev": "tsx src/cli.ts",
|
|
45
|
-
"test": "vitest run --passWithNoTests",
|
|
46
|
-
"test:watch": "vitest",
|
|
47
|
-
"test:update": "vitest run -u --passWithNoTests",
|
|
48
|
-
"typecheck": "tsc --noEmit"
|
|
49
50
|
}
|
|
50
|
-
}
|
|
51
|
+
}
|