@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.
Files changed (131) hide show
  1. package/dist/api/client.js +13 -2
  2. package/dist/api/client.js.map +1 -1
  3. package/dist/changelog.d.ts +13 -7
  4. package/dist/changelog.js +12 -15
  5. package/dist/changelog.js.map +1 -1
  6. package/dist/cli.js +46 -7
  7. package/dist/cli.js.map +1 -1
  8. package/dist/commands/_prdSource.d.ts +35 -0
  9. package/dist/commands/_prdSource.js +110 -0
  10. package/dist/commands/_prdSource.js.map +1 -0
  11. package/dist/commands/admin/_authResolve.js +8 -24
  12. package/dist/commands/admin/_authResolve.js.map +1 -1
  13. package/dist/commands/admin/_backendOption.d.ts +5 -0
  14. package/dist/commands/admin/_backendOption.js +6 -0
  15. package/dist/commands/admin/_backendOption.js.map +1 -0
  16. package/dist/commands/admin/index.js +3 -2
  17. package/dist/commands/admin/index.js.map +1 -1
  18. package/dist/commands/admin/member.js +5 -4
  19. package/dist/commands/admin/member.js.map +1 -1
  20. package/dist/commands/admin/project.d.ts +1 -1
  21. package/dist/commands/admin/project.js +23 -10
  22. package/dist/commands/admin/project.js.map +1 -1
  23. package/dist/commands/admin/renameOpts.d.ts +22 -0
  24. package/dist/commands/admin/renameOpts.js +6 -0
  25. package/dist/commands/admin/renameOpts.js.map +1 -0
  26. package/dist/commands/admin/team.d.ts +2 -2
  27. package/dist/commands/admin/team.js +27 -15
  28. package/dist/commands/admin/team.js.map +1 -1
  29. package/dist/commands/admin/teamMember.js +5 -4
  30. package/dist/commands/admin/teamMember.js.map +1 -1
  31. package/dist/commands/admin/token.js +4 -3
  32. package/dist/commands/admin/token.js.map +1 -1
  33. package/dist/commands/admin/user.js +32 -3
  34. package/dist/commands/admin/user.js.map +1 -1
  35. package/dist/commands/closeout.d.ts +2 -0
  36. package/dist/commands/closeout.js +60 -12
  37. package/dist/commands/closeout.js.map +1 -1
  38. package/dist/commands/completion.d.ts +7 -0
  39. package/dist/commands/completion.js +25 -0
  40. package/dist/commands/completion.js.map +1 -0
  41. package/dist/commands/config.js +42 -11
  42. package/dist/commands/config.js.map +1 -1
  43. package/dist/commands/context.js +11 -117
  44. package/dist/commands/context.js.map +1 -1
  45. package/dist/commands/export.d.ts +8 -0
  46. package/dist/commands/export.js +179 -0
  47. package/dist/commands/export.js.map +1 -0
  48. package/dist/commands/freeze.d.ts +2 -0
  49. package/dist/commands/freeze.js +63 -13
  50. package/dist/commands/freeze.js.map +1 -1
  51. package/dist/commands/init.js +3 -2
  52. package/dist/commands/init.js.map +1 -1
  53. package/dist/commands/login.d.ts +5 -0
  54. package/dist/commands/login.js +17 -4
  55. package/dist/commands/login.js.map +1 -1
  56. package/dist/commands/logout.js +4 -6
  57. package/dist/commands/logout.js.map +1 -1
  58. package/dist/commands/migrate-yaml.js +6 -0
  59. package/dist/commands/migrate-yaml.js.map +1 -1
  60. package/dist/commands/project.js +1 -1
  61. package/dist/commands/project.js.map +1 -1
  62. package/dist/commands/pull.js +1 -1
  63. package/dist/commands/pull.js.map +1 -1
  64. package/dist/commands/push.js +2 -2
  65. package/dist/commands/push.js.map +1 -1
  66. package/dist/commands/reopen.d.ts +4 -0
  67. package/dist/commands/reopen.js +76 -0
  68. package/dist/commands/reopen.js.map +1 -0
  69. package/dist/commands/resolve.d.ts +8 -0
  70. package/dist/commands/resolve.js +127 -0
  71. package/dist/commands/resolve.js.map +1 -0
  72. package/dist/commands/skill.d.ts +4 -0
  73. package/dist/commands/skill.js +16 -1
  74. package/dist/commands/skill.js.map +1 -1
  75. package/dist/commands/team.js +1 -1
  76. package/dist/commands/team.js.map +1 -1
  77. package/dist/commands/validate.d.ts +2 -0
  78. package/dist/commands/validate.js +4 -2
  79. package/dist/commands/validate.js.map +1 -1
  80. package/dist/completion/generate.d.ts +37 -0
  81. package/dist/completion/generate.js +175 -0
  82. package/dist/completion/generate.js.map +1 -0
  83. package/dist/config/rc.d.ts +31 -9
  84. package/dist/config/rc.js +85 -32
  85. package/dist/config/rc.js.map +1 -1
  86. package/dist/config/schema.d.ts +21 -8
  87. package/dist/config/schema.js +8 -5
  88. package/dist/config/schema.js.map +1 -1
  89. package/dist/diff/engine.js +2 -1
  90. package/dist/diff/engine.js.map +1 -1
  91. package/dist/i18n/en.js +61 -9
  92. package/dist/i18n/en.js.map +1 -1
  93. package/dist/i18n/help.en.d.ts +25 -0
  94. package/dist/i18n/help.en.js +25 -0
  95. package/dist/i18n/help.en.js.map +1 -1
  96. package/dist/i18n/help.zh.d.ts +25 -0
  97. package/dist/i18n/help.zh.js +25 -0
  98. package/dist/i18n/help.zh.js.map +1 -1
  99. package/dist/i18n/helpGroups.js +2 -2
  100. package/dist/i18n/helpGroups.js.map +1 -1
  101. package/dist/i18n/index.js +2 -1
  102. package/dist/i18n/index.js.map +1 -1
  103. package/dist/i18n/peekLang.d.ts +1 -0
  104. package/dist/i18n/peekLang.js +19 -0
  105. package/dist/i18n/peekLang.js.map +1 -1
  106. package/dist/i18n/zh.d.ts +138 -10
  107. package/dist/i18n/zh.js +61 -9
  108. package/dist/i18n/zh.js.map +1 -1
  109. package/dist/renderer/context-md.d.ts +13 -2
  110. package/dist/renderer/context-md.js +12 -12
  111. package/dist/renderer/context-md.js.map +1 -1
  112. package/dist/renderer/spec-md.d.ts +19 -0
  113. package/dist/renderer/spec-md.js +206 -0
  114. package/dist/renderer/spec-md.js.map +1 -0
  115. package/dist/schema/prd.js +15 -0
  116. package/dist/schema/prd.js.map +1 -1
  117. package/dist/skill/prd-improve-forge/SKILL.md +94 -7
  118. package/dist/skill/prd-improve-forge/checklists/batch-import.md +1 -0
  119. package/dist/skill/prd-improve-forge/checklists/dimensions/integration-seam.md +131 -0
  120. package/dist/skill/prd-improve-forge/checklists/dimensions/state-machine-counter.md +130 -0
  121. package/dist/skill/prd-improve-forge/examples/import-history-prds.prd.yaml +6 -1
  122. package/dist/skill/prd-improve-forge/templates/prd.yaml +8 -7
  123. package/dist/validators/references.js +2 -0
  124. package/dist/validators/references.js.map +1 -1
  125. package/dist/workspace.d.ts +8 -1
  126. package/dist/workspace.js +12 -1
  127. package/dist/workspace.js.map +1 -1
  128. package/dist/yamlPatch.d.ts +5 -0
  129. package/dist/yamlPatch.js +16 -4
  130. package/dist/yamlPatch.js.map +1 -1
  131. package/package.json +13 -12
@@ -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;AAEhE,MAAM,CAAC,MAAM,aAAa,GAAG,qBAAqB,CAAC;AA4BnD;;;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"}
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"}
@@ -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 = Scalar.QUOTE_DOUBLE;
39
+ existing.type = scalarType;
28
40
  }
29
41
  else {
30
- // 新叶子:预建双引号 scalar 再 setIn(setIn 裸值会存原始 JS 值,绕过样式控制)
42
+ // 新叶子:预建 scalar 再 setIn(setIn 裸值会存原始 JS 值,绕过样式控制)
31
43
  const node = doc.createNode(e.value);
32
- node.type = Scalar.QUOTE_DOUBLE;
44
+ node.type = scalarType;
33
45
  doc.setIn(e.path, node);
34
46
  }
35
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"yamlPatch.js","sourceRoot":"","sources":["../src/yamlPatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAOvD,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,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,iCAAiC;YACjC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YACzB,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,qDAAqD;YACrD,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAW,CAAC;YAC/C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;YAChC,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"}
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": "1.2.0",
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
+ }