@coralai/sps-cli 0.58.24 → 0.58.26

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 (84) hide show
  1. package/dist/commands/cardAdd.d.ts.map +1 -1
  2. package/dist/commands/cardAdd.js +11 -2
  3. package/dist/commands/cardAdd.js.map +1 -1
  4. package/dist/commands/cardInsert.d.ts +2 -0
  5. package/dist/commands/cardInsert.d.ts.map +1 -0
  6. package/dist/commands/cardInsert.js +70 -0
  7. package/dist/commands/cardInsert.js.map +1 -0
  8. package/dist/commands/projectInit.d.ts +5 -0
  9. package/dist/commands/projectInit.d.ts.map +1 -1
  10. package/dist/commands/projectInit.js +17 -0
  11. package/dist/commands/projectInit.js.map +1 -1
  12. package/dist/commands/tick.d.ts +2 -0
  13. package/dist/commands/tick.d.ts.map +1 -1
  14. package/dist/commands/tick.js +45 -0
  15. package/dist/commands/tick.js.map +1 -1
  16. package/dist/console/routes/chat.d.ts.map +1 -1
  17. package/dist/console/routes/chat.js +8 -3
  18. package/dist/console/routes/chat.js.map +1 -1
  19. package/dist/console/routes/projects.d.ts.map +1 -1
  20. package/dist/console/routes/projects.js +1 -0
  21. package/dist/console/routes/projects.js.map +1 -1
  22. package/dist/console-assets/assets/{index-B_CpD8k2.js → index-DMgrB2nO.js} +18 -18
  23. package/dist/console-assets/index.html +1 -1
  24. package/dist/core/config.d.ts +2 -0
  25. package/dist/core/config.d.ts.map +1 -1
  26. package/dist/core/config.js +1 -0
  27. package/dist/core/config.js.map +1 -1
  28. package/dist/core/skills/SkillsManager.d.ts +2 -0
  29. package/dist/core/skills/SkillsManager.d.ts.map +1 -1
  30. package/dist/core/skills/SkillsManager.js +7 -0
  31. package/dist/core/skills/SkillsManager.js.map +1 -1
  32. package/dist/core/skills/index.d.ts +1 -1
  33. package/dist/core/skills/index.d.ts.map +1 -1
  34. package/dist/core/skills/index.js +1 -1
  35. package/dist/core/skills/index.js.map +1 -1
  36. package/dist/core/skills/types.d.ts +5 -0
  37. package/dist/core/skills/types.d.ts.map +1 -1
  38. package/dist/engines/ReviewEngine.d.ts +68 -0
  39. package/dist/engines/ReviewEngine.d.ts.map +1 -0
  40. package/dist/engines/ReviewEngine.js +125 -0
  41. package/dist/engines/ReviewEngine.js.map +1 -0
  42. package/dist/engines/StageEngine.d.ts +5 -1
  43. package/dist/engines/StageEngine.d.ts.map +1 -1
  44. package/dist/engines/StageEngine.js +14 -2
  45. package/dist/engines/StageEngine.js.map +1 -1
  46. package/dist/main.js +12 -2
  47. package/dist/main.js.map +1 -1
  48. package/dist/providers/LLMClient.d.ts +23 -0
  49. package/dist/providers/LLMClient.d.ts.map +1 -1
  50. package/dist/providers/LLMClient.js +53 -4
  51. package/dist/providers/LLMClient.js.map +1 -1
  52. package/dist/providers/llm/chatTools.d.ts +1 -0
  53. package/dist/providers/llm/chatTools.d.ts.map +1 -1
  54. package/dist/providers/llm/chatTools.js +6 -4
  55. package/dist/providers/llm/chatTools.js.map +1 -1
  56. package/dist/providers/llm/monitorSkills.d.ts +9 -3
  57. package/dist/providers/llm/monitorSkills.d.ts.map +1 -1
  58. package/dist/providers/llm/monitorSkills.js +42 -23
  59. package/dist/providers/llm/monitorSkills.js.map +1 -1
  60. package/dist/providers/llm/probeTools.d.ts +5 -1
  61. package/dist/providers/llm/probeTools.d.ts.map +1 -1
  62. package/dist/providers/llm/probeTools.js +9 -5
  63. package/dist/providers/llm/probeTools.js.map +1 -1
  64. package/dist/providers/llm/skillTools.d.ts.map +1 -1
  65. package/dist/providers/llm/skillTools.js +5 -3
  66. package/dist/providers/llm/skillTools.js.map +1 -1
  67. package/dist/providers/mcp/spsMcpServer.d.ts.map +1 -1
  68. package/dist/providers/mcp/spsMcpServer.js +5 -3
  69. package/dist/providers/mcp/spsMcpServer.js.map +1 -1
  70. package/dist/services/CardService.d.ts +6 -0
  71. package/dist/services/CardService.d.ts.map +1 -1
  72. package/dist/services/CardService.js +28 -1
  73. package/dist/services/CardService.js.map +1 -1
  74. package/dist/services/ProjectService.d.ts +2 -0
  75. package/dist/services/ProjectService.d.ts.map +1 -1
  76. package/dist/services/ProjectService.js.map +1 -1
  77. package/dist/services/executors.d.ts.map +1 -1
  78. package/dist/services/executors.js +4 -1
  79. package/dist/services/executors.js.map +1 -1
  80. package/package.json +4 -2
  81. package/skills/checklist-review/SKILL.md +44 -0
  82. package/{monitor-skills → skills}/probe-playbook/SKILL.md +3 -2
  83. package/skills/sps-pipeline/SKILL.md +48 -1
  84. package/{monitor-skills → skills}/visual-rubric/SKILL.md +3 -2
@@ -7,7 +7,7 @@
7
7
  <link rel="preconnect" href="https://fonts.googleapis.com">
8
8
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
9
  <link href="https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
10
- <script type="module" crossorigin src="/assets/index-B_CpD8k2.js"></script>
10
+ <script type="module" crossorigin src="/assets/index-DMgrB2nO.js"></script>
11
11
  <link rel="stylesheet" crossorigin href="/assets/index-Bvm7gLHu.css">
12
12
  </head>
13
13
  <body>
@@ -11,6 +11,8 @@ export interface ProjectConfig {
11
11
  MR_MODE: 'none' | 'create';
12
12
  PIPELINE_MODE: 'pipeline' | 'smartArrange';
13
13
  SMARTARRANGE_MAX_ROUNDS: number;
14
+ /** 清单验收开关(SPS_REVIEW=on):卡完成时若有 `## 检查清单`,派独立 reviewer 逐条验收;默认 off。 */
15
+ REVIEW_ENABLED: boolean;
14
16
  /** 项目级 worker 模型覆盖(两种模式通用):空=用全局默认。仅覆盖 model 串,agent/mode/provider 沿用全局。 */
15
17
  WORKER_MODEL: string;
16
18
  /** 项目级 reviewer(监工)模型覆盖,仅 smartArrange 用;空=全局默认。 */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,SAAS;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAE5B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAG5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC;IAG3B,aAAa,EAAE,UAAU,GAAG,cAAc,CAAC;IAC3C,uBAAuB,EAAE,MAAM,CAAC;IAChC,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,CAAC;IAG1B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAG7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,qBAAqB,EAAE,MAAM,CAAC;IAG9B,wBAAwB,EAAE,MAAM,CAAC;IACjC,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,QAAQ,GAAG,UAAU,CAAC;IACxC,yBAAyB,EAAE,MAAM,CAAC;IAGlC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAG/B,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,GAAG,EAAE,SAAS,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,CAE1E;AAQD,wBAAgB,aAAa,IAAI,SAAS,CAIzC;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CA8DlE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAQ1F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAiCpE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,SAAS;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAE5B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAG5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC;IAG3B,aAAa,EAAE,UAAU,GAAG,cAAc,CAAC;IAC3C,uBAAuB,EAAE,MAAM,CAAC;IAChC,uEAAuE;IACvE,cAAc,EAAE,OAAO,CAAC;IACxB,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,CAAC;IAG1B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAG7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,qBAAqB,EAAE,MAAM,CAAC;IAG9B,wBAAwB,EAAE,MAAM,CAAC;IACjC,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,QAAQ,GAAG,UAAU,CAAC;IACxC,yBAAyB,EAAE,MAAM,CAAC;IAGlC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAG/B,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,GAAG,EAAE,SAAS,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,CAE1E;AAQD,wBAAgB,aAAa,IAAI,SAAS,CAIzC;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CA+DlE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAQ1F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAiCpE"}
@@ -63,6 +63,7 @@ export function loadProjectConf(projectName) {
63
63
  MR_MODE: raw.MR_MODE || 'none',
64
64
  PIPELINE_MODE: raw.PIPELINE_MODE || 'pipeline',
65
65
  SMARTARRANGE_MAX_ROUNDS: parseInt(raw.SMARTARRANGE_MAX_ROUNDS || '20', 10),
66
+ REVIEW_ENABLED: (raw.SPS_REVIEW || '').toLowerCase() === 'on',
66
67
  WORKER_MODEL: raw.WORKER_MODEL || '',
67
68
  SA_REVIEWER_MODEL: raw.SA_REVIEWER_MODEL || '',
68
69
  WORKER_TRANSPORT: raw.WORKER_TRANSPORT || 'acp-sdk',
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -40,4 +40,6 @@ export declare class SkillsManager {
40
40
  * **单一 frontmatter 解析原语**:SkillsManager 发现 + SkillService 展示共用它(消除重复解析器)。
41
41
  */
42
42
  export declare function readSkillMeta(dirName: string, dir: string, path: string, source: SkillSource): SkillMeta | null;
43
+ /** 是否审核侧 skill(按 frontmatter `audience`)。缺省/其它 = 普通 worker skill。 */
44
+ export declare function isReviewerSkill(meta: Pick<SkillMeta, 'audience'>): boolean;
43
45
  //# sourceMappingURL=SkillsManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SkillsManager.d.ts","sourceRoot":"","sources":["../../../src/core/skills/SkillsManager.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,QAAQ,EACR,SAAS,EACT,cAAc,EACd,WAAW,EACX,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAOD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAClE,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;gBAEpD,IAAI,EAAE,iBAAiB;IASnC,0CAA0C;IAC1C,OAAO,CAAC,KAAK;IAmBb,sCAAsC;IACtC,QAAQ,CAAC,EAAE,GAAE,cAAyB,GAAG,SAAS,EAAE;IAepD,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,GAAE,QAAa,GAAG,SAAS,EAAE;IAQ9D,kEAAkE;IAClE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,SAAI,GAAG,SAAS,EAAE;IAoBjE,+DAA+D;IAC/D,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM;IAMnC,mCAAmC;IACnC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE;IAMnC,8DAA8D;IAC9D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAE,cAAyB,GAAG,MAAM,GAAG,IAAI;IAYhE,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAE,cAAyB,GAAG,gBAAgB;IASvE,2CAA2C;IAC3C,MAAM,IAAI,IAAI;CAGf;AA2BD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,GAClB,SAAS,GAAG,IAAI,CAiClB"}
1
+ {"version":3,"file":"SkillsManager.d.ts","sourceRoot":"","sources":["../../../src/core/skills/SkillsManager.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,QAAQ,EACR,SAAS,EACT,cAAc,EACd,WAAW,EACX,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAOD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAClE,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;gBAEpD,IAAI,EAAE,iBAAiB;IASnC,0CAA0C;IAC1C,OAAO,CAAC,KAAK;IAmBb,sCAAsC;IACtC,QAAQ,CAAC,EAAE,GAAE,cAAyB,GAAG,SAAS,EAAE;IAepD,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,GAAE,QAAa,GAAG,SAAS,EAAE;IAQ9D,kEAAkE;IAClE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,SAAI,GAAG,SAAS,EAAE;IAoBjE,+DAA+D;IAC/D,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM;IAMnC,mCAAmC;IACnC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE;IAMnC,8DAA8D;IAC9D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAE,cAAyB,GAAG,MAAM,GAAG,IAAI;IAYhE,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAE,cAAyB,GAAG,gBAAgB;IASvE,2CAA2C;IAC3C,MAAM,IAAI,IAAI;CAGf;AA2BD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,GAClB,SAAS,GAAG,IAAI,CAkClB;AAKD,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,OAAO,CAE1E"}
@@ -201,6 +201,7 @@ export function readSkillMeta(dirName, dir, path, source) {
201
201
  keywords: asStringArray(data.keywords),
202
202
  version: typeof data.version === 'string' ? data.version : undefined,
203
203
  origin: typeof data.origin === 'string' ? data.origin.trim() : undefined,
204
+ audience: typeof data.audience === 'string' ? data.audience.trim() : undefined,
204
205
  source,
205
206
  dir,
206
207
  path,
@@ -209,6 +210,12 @@ export function readSkillMeta(dirName, dir, path, source) {
209
210
  : undefined,
210
211
  };
211
212
  }
213
+ /** 审核侧受众集:这些 audience 的 skill 是 reviewer/监工用,worker/chat 的 catalog 默认排除。 */
214
+ const REVIEWER_AUDIENCES = new Set(['reviewer', 'orchestrator', 'monitor']);
215
+ /** 是否审核侧 skill(按 frontmatter `audience`)。缺省/其它 = 普通 worker skill。 */
216
+ export function isReviewerSkill(meta) {
217
+ return !!meta.audience && REVIEWER_AUDIENCES.has(meta.audience.toLowerCase());
218
+ }
212
219
  /** 拆 YAML frontmatter(--- ... ---),返回 frontmatter 文本与正文。 */
213
220
  function splitFrontmatter(md) {
214
221
  const m = md.match(/^---\n([\s\S]*?)\n---\n?/);
@@ -1 +1 @@
1
- {"version":3,"file":"SkillsManager.js","sourceRoot":"","sources":["../../../src/core/skills/SkillsManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAe,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAS1C,oDAAoD;AACpD,MAAM,QAAQ,GAAG,KAAK,CAAC;AAkBvB,MAAM,OAAO,aAAa;IACP,GAAG,CAAS;IACZ,IAAI,CAAS;IACb,OAAO,CAA0C;IAClE,uCAAuC;IACtB,KAAK,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEhE,YAAY,IAAuB;QACjC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,aAAa,CAAC;QAC3D,IAAI,CAAC,OAAO,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,gBAAgB;YAC7B,gBAAgB,EAAE,IAAI,CAAC,uBAAuB;SAC/C,CAAC;IACJ,CAAC;IAED,0CAA0C;IAClC,KAAK,CAAC,EAAkB;QAC9B,MAAM,CAAC,GACL,EAAE,KAAK,QAAQ;YACb,CAAC,CAAC;gBACE,sEAAsE;gBACtE,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE;gBAC/D,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;aAChE;YACH,CAAC,CAAC;gBACE,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE;gBACvE,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;aAClF,CAAC;QACR,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC;YAAE,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,CAAC;IACX,CAAC;IAED,yDAAyD;IAEzD,sCAAsC;IACtC,QAAQ,CAAC,KAAqB,QAAQ;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC5C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,oCAAoC;YACpC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4BAA4B;IAC5B,QAAQ,CAAC,KAAkB,EAAE,OAAiB,EAAE;QAC9C,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,IAAI,CAAC,KAAK;YAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,IAAI,IAAI,CAAC,IAAI;YAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACrE,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM;YAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,OAAO,GAAG,CAAC;IACb,CAAC;IAED,kEAAkE;IAClE,MAAM,CAAC,KAAa,EAAE,KAAkB,EAAE,KAAK,GAAG,CAAC;QACjD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,KAAK;aACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACpE,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,CAAC;YACvD,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAAE,KAAK,IAAI,CAAC,CAAC;qBAC5C,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAAE,KAAK,IAAI,CAAC,CAAC;qBAChD,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAAE,KAAK,IAAI,CAAC,CAAC;YACvC,CAAC;YACD,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QACtB,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;aAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,+DAA+D;IAC/D,OAAO,CAAC,KAAkB;QACxB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7F,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAC7B,OAAO,CAAC,0CAA0C,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,KAAkB;QACtB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,sDAAsD;IAEtD,8DAA8D;IAC9D,IAAI,CAAC,IAAY,EAAE,KAAqB,QAAQ;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,IAAI,CAAC;YACH,OAAO,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC;QACnG,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,6DAA6D;IAE7D,mDAAmD;IACnD,QAAQ,CAAC,IAAY,EAAE,KAAqB,QAAQ;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,cAAc,IAAI,EAAE,CAAC,EAAE,CAAC;QAChE,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAChE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7C,CAAC;IAED,2CAA2C;IAC3C,MAAM;QACJ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AAED,yDAAyD;AAEzD,uCAAuC;AACvC,SAAS,QAAQ,CAAC,IAAU;IAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACtC,+DAA+D;QAC/D,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QAChC,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAe,EACf,GAAW,EACX,IAAY,EACZ,MAAmB;IAEnB,IAAI,EAAU,CAAC;IACf,IAAI,CAAC;QACH,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAE,EAAE,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACpC,IAAI,IAAI,GAA4B,EAAE,CAAC;IACvC,IAAI,EAAE,EAAE,CAAC;QACP,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAA4B,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,GAAG,EAAE,CAAC,CAAC,qCAAqC;QAClD,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5F,MAAM,IAAI,GAAG,IAAI,CAAC,QAA+C,CAAC;IAClE,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,QAAQ,CAAwC,CAAC;IACxF,OAAO;QACL,IAAI;QACJ,WAAW,EAAE,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;QAChF,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;QACtC,OAAO,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACpE,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;QACxE,MAAM;QACN,GAAG;QACH,IAAI;QACJ,QAAQ,EAAE,MAAM;YACd,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACtE,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED,4DAA4D;AAC5D,SAAS,gBAAgB,CAAC,EAAU;IAClC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC/C,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACtC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AACnD,CAAC;AAED,kDAAkD;AAClD,SAAS,aAAa,CAAC,CAAU;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpF,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"SkillsManager.js","sourceRoot":"","sources":["../../../src/core/skills/SkillsManager.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  * @boundedContext skills
9
9
  */
10
10
  export * from './types.js';
11
- export { readSkillMeta, SkillsManager, type SkillsManagerOpts } from './SkillsManager.js';
11
+ export { readSkillMeta, isReviewerSkill, SkillsManager, type SkillsManagerOpts } from './SkillsManager.js';
12
12
  export * from './distribution.js';
13
13
  export { isEmptyPolicy, loadProjectSkillPolicy, projectSkillPolicyPath, resolveEligibleSkillNames, SKILL_POLICY_REL, writeProjectSkillPolicy, } from './policy.js';
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/skills/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/skills/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC3G,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
@@ -8,7 +8,7 @@
8
8
  * @boundedContext skills
9
9
  */
10
10
  export * from './types.js';
11
- export { readSkillMeta, SkillsManager } from './SkillsManager.js';
11
+ export { readSkillMeta, isReviewerSkill, SkillsManager } from './SkillsManager.js';
12
12
  export * from './distribution.js';
13
13
  export { isEmptyPolicy, loadProjectSkillPolicy, projectSkillPolicyPath, resolveEligibleSkillNames, SKILL_POLICY_REL, writeProjectSkillPolicy, } from './policy.js';
14
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/skills/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,aAAa,EAA0B,MAAM,oBAAoB,CAAC;AAC1F,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/skills/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAA0B,MAAM,oBAAoB,CAAC;AAC3G,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
@@ -23,6 +23,11 @@ export interface SkillMeta {
23
23
  version?: string;
24
24
  /** frontmatter `origin`(来源标注,如 bundled/imported/url);SkillService 展示用。 */
25
25
  origin?: string;
26
+ /**
27
+ * frontmatter `audience`(受众):`reviewer`/`orchestrator`/`monitor` = 审核侧 skill
28
+ * (sps 显式 push 给 reviewer,worker/chat 的 catalog 默认排除);缺省/其它 = 普通 worker skill。
29
+ */
30
+ audience?: string;
26
31
  source: SkillSource;
27
32
  /** skill 目录绝对路径。 */
28
33
  dir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/skills/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,iEAAiE;AACjE,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAEzD,0CAA0C;AAC1C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAEzD,2CAA2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,iCAAiC;AACjC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,oBAAoB;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,oDAAoD;AACpD,MAAM,WAAW,QAAQ;IACvB,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/skills/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,iEAAiE;AACjE,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAEzD,0CAA0C;AAC1C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAEzD,2CAA2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,iCAAiC;AACjC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,oBAAoB;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,oDAAoD;AACpD,MAAM,WAAW,QAAQ;IACvB,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @module ReviewEngine
3
+ * @description 清单验收 pass —— pipeline 的"审核开关(per-card)"落地。
4
+ *
5
+ * 模型:一张卡有 `## 检查清单`(验收点,建卡时由 agent 写入)= 开审核。
6
+ * worker 干完 → 卡进 Done → 本 pass 每 tick 扫「Done 态 + 有非空清单 + 未带 REVIEWED」的卡:
7
+ * ① 派**独立第三方** OpenAI 验收员(ChecklistReviewer)逐条对着真实产物核验;
8
+ * ② 回写清单勾选(过→[x] / 不过→[ ])+ 打 REVIEWED(幂等,不重审);
9
+ * ③ 全过 → 留 Done;有不过 → `card insert` 一张修正卡(PRIORITY、无清单)让下一轮 worker 先改。
10
+ * 修正卡无清单 → 完成时本 pass 跳过 → **审核链终止**(结构性防死循环)。
11
+ *
12
+ * @role engine
13
+ * @layer engine
14
+ * @boundedContext pipeline-execution
15
+ *
16
+ * 北极星:验收员是"出判定"的 AI(非派 worker)→ 走 LLMClient(OpenAI 三方,去相关盲点),
17
+ * 不摸 claude 运行时;换后端不影响本 pass。
18
+ */
19
+ import type { Logger } from '../core/logger.js';
20
+ import type { TaskBackend } from '../interfaces/TaskBackend.js';
21
+ import type { CommandResult } from '../shared/types.js';
22
+ /** 幂等标记:审过的卡带此标签,不重审。 */
23
+ export declare const REVIEWED_LABEL = "REVIEWED";
24
+ /** 一条验收判定。 */
25
+ export interface ReviewItemResult {
26
+ index: number;
27
+ pass: boolean;
28
+ reason: string;
29
+ }
30
+ /**
31
+ * 验收员抽象 —— 只依赖"逐条出判定"这个能力,不绑具体 LLM/agent。
32
+ * LLMClient.reviewChecklist 结构化实现它(OpenAI + probeTools + skills + memory)。
33
+ */
34
+ export interface ChecklistReviewer {
35
+ reviewChecklist(input: {
36
+ cardTitle: string;
37
+ cardDesc: string;
38
+ items: string[];
39
+ cardSkills?: string[];
40
+ memory?: string;
41
+ }): Promise<{
42
+ results: ReviewItemResult[];
43
+ }>;
44
+ }
45
+ export interface ReviewEngineDeps {
46
+ project: string;
47
+ taskBackend: TaskBackend;
48
+ /** 终态名(卡到这里才验收)。 */
49
+ doneState: string;
50
+ /** 修正卡落地的排队态名(Backlog)。 */
51
+ backlogState: string;
52
+ /** pipeline label(修正卡也带,才会被 StageEngine 抢)。 */
53
+ pipelineLabel: string;
54
+ log: Logger;
55
+ reviewer: ChecklistReviewer;
56
+ /** 按 project+global 作用域构造记忆注入块;缺省不注入。 */
57
+ buildMemory?: (query: string) => string;
58
+ }
59
+ export declare class ReviewEngine {
60
+ private readonly deps;
61
+ constructor(deps: ReviewEngineDeps);
62
+ tick(): Promise<CommandResult>;
63
+ /** 审一张卡:调验收员 → 回写勾选 → 打 REVIEWED → 全过留 Done / 有不过插修正卡。 */
64
+ private reviewOne;
65
+ /** 建修正卡:Backlog + AI-PIPELINE + PRIORITY,无清单。返回新卡 seq(失败返 null)。 */
66
+ private insertFixCard;
67
+ }
68
+ //# sourceMappingURL=ReviewEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReviewEngine.d.ts","sourceRoot":"","sources":["../../src/engines/ReviewEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAsB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE5E,yBAAyB;AACzB,eAAO,MAAM,cAAc,aAAa,CAAC;AAEzC,cAAc;AACd,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,KAAK,EAAE;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,oBAAoB;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,yCAAyC;IACzC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC;AAED,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,gBAAgB;IAE7C,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC;IAsCpC,0DAA0D;YAC5C,SAAS;IAiEvB,oEAAoE;YACtD,aAAa;CAY5B"}
@@ -0,0 +1,125 @@
1
+ /** 幂等标记:审过的卡带此标签,不重审。 */
2
+ export const REVIEWED_LABEL = 'REVIEWED';
3
+ export class ReviewEngine {
4
+ deps;
5
+ constructor(deps) {
6
+ this.deps = deps;
7
+ }
8
+ async tick() {
9
+ const { taskBackend, doneState, log } = this.deps;
10
+ const actions = [];
11
+ const result = {
12
+ project: this.deps.project,
13
+ component: 'review',
14
+ status: 'ok',
15
+ exitCode: 0,
16
+ actions,
17
+ recommendedActions: [],
18
+ details: {},
19
+ };
20
+ let doneCards;
21
+ try {
22
+ doneCards = await taskBackend.listByState(doneState);
23
+ }
24
+ catch (err) {
25
+ log.warn(`review: 读 ${doneState} 卡失败(跳过本轮):${msg(err)}`);
26
+ return result;
27
+ }
28
+ for (const card of doneCards) {
29
+ // 门控:有清单才审;审过的不重审。无清单的卡(含修正卡)→ 跳过 → 链终止。
30
+ const total = card.checklist?.total ?? 0;
31
+ if (total === 0)
32
+ continue;
33
+ if (card.labels?.includes(REVIEWED_LABEL))
34
+ continue;
35
+ try {
36
+ actions.push(await this.reviewOne(card));
37
+ }
38
+ catch (err) {
39
+ log.warn(`review: seq:${card.seq} 验收异常(跳过,不打回):${msg(err)}`);
40
+ actions.push({ action: 'review', entity: `seq:${card.seq}`, result: 'skip', message: `error: ${msg(err)}` });
41
+ }
42
+ }
43
+ return result;
44
+ }
45
+ /** 审一张卡:调验收员 → 回写勾选 → 打 REVIEWED → 全过留 Done / 有不过插修正卡。 */
46
+ async reviewOne(card) {
47
+ const { taskBackend, log } = this.deps;
48
+ const seq = card.seq;
49
+ const items = (card.checklist?.items ?? []).map((i) => i.text);
50
+ const total = items.length;
51
+ const memory = this.deps.buildMemory ? this.deps.buildMemory(card.title) : undefined;
52
+ const { results } = await this.deps.reviewer.reviewChecklist({
53
+ cardTitle: card.title,
54
+ cardDesc: card.desc ?? '',
55
+ items,
56
+ cardSkills: card.skills ?? [],
57
+ memory,
58
+ });
59
+ // 每条 index → 是否通过。缺判/越界的条目一律视为未过(不放水)。
60
+ const passByIndex = new Map();
61
+ for (const r of results) {
62
+ if (Number.isInteger(r.index) && r.index >= 0 && r.index < total) {
63
+ passByIndex.set(r.index, !!r.pass);
64
+ }
65
+ }
66
+ // 回写清单勾选(过→[x] / 不过→[ ]),供看板直接看审核结果。
67
+ for (let i = 0; i < total; i++) {
68
+ const ok = passByIndex.get(i) === true;
69
+ try {
70
+ if (ok)
71
+ await taskBackend.checklistCheck(seq, String(i));
72
+ else
73
+ await taskBackend.checklistUncheck(seq, String(i));
74
+ }
75
+ catch { /* 勾选写失败不阻塞判定 */ }
76
+ }
77
+ // 幂等:先打 REVIEWED,避免验收员成功但后续插卡失败导致下轮重审。
78
+ await taskBackend.addLabel(seq, REVIEWED_LABEL);
79
+ const failed = [];
80
+ for (let i = 0; i < total; i++)
81
+ if (passByIndex.get(i) !== true)
82
+ failed.push(i);
83
+ if (failed.length === 0) {
84
+ await safe(() => taskBackend.comment(seq, `✅ 验收通过 ${total}/${total} 项。`));
85
+ log.info(`review: seq:${seq} 验收通过 ${total}/${total}`);
86
+ return { action: 'review-pass', entity: `seq:${seq}`, result: 'ok', message: `passed ${total}/${total}` };
87
+ }
88
+ // 有不过 → 插一张修正卡(无清单 → 不再触发审核 → 链终止)。
89
+ const fixTitle = `修复:${card.title}`;
90
+ const lines = failed.map((i) => {
91
+ const reason = results.find((r) => r.index === i)?.reason ?? '未通过验收';
92
+ return `- [${i}] ${items[i]} —— ${reason}`;
93
+ });
94
+ const fixDesc = `以下验收点未通过(来自 seq:${seq} "${card.title}"),请修复:\n\n${lines.join('\n')}\n\n` +
95
+ '修复后无需自带清单(本卡由验收员把关,修正卡直接做完即可)。';
96
+ const fixSeq = await this.insertFixCard(fixTitle, fixDesc);
97
+ await safe(() => taskBackend.comment(seq, `❌ 验收未通过 ${failed.length}/${total} 项${fixSeq ? `,已插入修正卡 seq:${fixSeq}(优先跑)` : ''}。`));
98
+ log.info(`review: seq:${seq} 验收未通过 ${failed.length}/${total},插入修正卡 seq:${fixSeq ?? '?'}`);
99
+ return { action: 'review-fail', entity: `seq:${seq}`, result: 'ok', message: `failed ${failed.length}/${total} → fix seq:${fixSeq ?? '?'}` };
100
+ }
101
+ /** 建修正卡:Backlog + AI-PIPELINE + PRIORITY,无清单。返回新卡 seq(失败返 null)。 */
102
+ async insertFixCard(title, desc) {
103
+ const { taskBackend, backlogState, pipelineLabel, log } = this.deps;
104
+ try {
105
+ const created = await taskBackend.create(title, desc, backlogState);
106
+ await safe(() => taskBackend.addLabel(created.seq, pipelineLabel));
107
+ await safe(() => taskBackend.addLabel(created.seq, 'PRIORITY'));
108
+ return created.seq;
109
+ }
110
+ catch (err) {
111
+ log.warn(`review: 插入修正卡失败:${msg(err)}`);
112
+ return null;
113
+ }
114
+ }
115
+ }
116
+ function msg(err) {
117
+ return err instanceof Error ? err.message : String(err);
118
+ }
119
+ async function safe(fn) {
120
+ try {
121
+ await fn();
122
+ }
123
+ catch { /* best-effort */ }
124
+ }
125
+ //# sourceMappingURL=ReviewEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReviewEngine.js","sourceRoot":"","sources":["../../src/engines/ReviewEngine.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,11 @@ import type { Notifier } from '../interfaces/Notifier.js';
22
22
  import type { RepoBackend } from '../interfaces/RepoBackend.js';
23
23
  import type { TaskBackend } from '../interfaces/TaskBackend.js';
24
24
  import type { WorkerManager } from '../manager/worker-manager.js';
25
- import type { CommandResult } from '../shared/types.js';
25
+ import type { Card, CommandResult } from '../shared/types.js';
26
+ /** 插队标签:`sps card insert` / reviewer 插入的修正卡带此标签,抢卡时排在同队列其它卡之前。 */
27
+ export declare const PRIORITY_LABEL = "PRIORITY";
28
+ /** 抢卡排序:带 PRIORITY 的卡优先,其余按 seq 升序。用于 Backlog 准备与 Ready 启动两处。 */
29
+ export declare function byPriorityThenSeq(a: Card, b: Card): number;
26
30
  /**
27
31
  * StageEngine — generic engine that handles any pipeline stage.
28
32
  *
@@ -1 +1 @@
1
- {"version":3,"file":"StageEngine.d.ts","sourceRoot":"","sources":["../../src/engines/StageEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAIjG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,KAAK,EAAmC,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACnG,OAAO,KAAK,EAAsC,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AAe/G;;;;;;;;;GASG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IAEnB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,QAAQ,CAAC;IAZnB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,YAAY,CAAe;gBAGzB,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,EAChC,YAAY,EAAE,WAAW,EACjB,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,sBAAsB,EACvC,QAAQ,CAAC,EAAE,QAAQ,YAAA;IAM7B,2BAA2B;IAC3B,IAAI,IAAI,IAAI,MAAM,CAA4B;IAE9C,mFAAmF;IACnF,IAAI,YAAY,IAAI,OAAO,CAAkC;IAE7D,iFAAiF;IACjF,IAAI,WAAW,IAAI,OAAO,CAAqD;IAE/E,2DAA2D;IAGrD,IAAI,CAAC,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC;YA0HrD,gBAAgB;YAgChB,kBAAkB;IAgEhC,wEAAwE;IACxE,OAAO,CAAC,cAAc;YAKR,gBAAgB;YA2GhB,kBAAkB;IAkChC;;;OAGG;YACW,cAAc;YAmHd,eAAe;YAmDf,WAAW;YAuBX,YAAY;YAqIZ,2BAA2B;YAe3B,4BAA4B;IA6C1C,OAAO,CAAC,sBAAsB;IA2B9B;;;;;OAKG;IACH,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,gBAAgB;IA6CxB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,UAAU;YAIJ,oBAAoB;IAgBlC;;;;;;;;;OASG;YACW,iBAAiB;IA2E/B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,WAAW;YAWL,mBAAmB;YAyBnB,YAAY;YAQZ,YAAY;YAMZ,WAAW;YAMX,UAAU;IAKxB,OAAO,CAAC,QAAQ;IAYhB;;;OAGG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC;CA6EzF;AAID;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EAC3B,KAAK,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3B,mBAAmB,EAAE,MAAM,GAAG,SAAS,GACtC,MAAM,EAAE,CAeV;AAED,iDAAiD;AACjD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAE/D"}
1
+ {"version":3,"file":"StageEngine.d.ts","sourceRoot":"","sources":["../../src/engines/StageEngine.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,16 @@ const SKIP_LABELS = ['BLOCKED', 'NEEDS-FIX', 'CONFLICT', 'WAITING-CONFIRMATION',
34
34
  // Per-stage ACK-RETRIED-<stage> is wiped separately in cleanAuxiliaryLabels().
35
35
  // v0.50.17:RACE-CANDIDATE 是 onCompleted 打的 race 标记,重新入 stage 要清
36
36
  const CLEANUP_LABELS = [...SKIP_LABELS, 'CLAIMED', 'ACK-TIMEOUT', 'RACE-CANDIDATE'];
37
+ /** 插队标签:`sps card insert` / reviewer 插入的修正卡带此标签,抢卡时排在同队列其它卡之前。 */
38
+ export const PRIORITY_LABEL = 'PRIORITY';
39
+ /** 抢卡排序:带 PRIORITY 的卡优先,其余按 seq 升序。用于 Backlog 准备与 Ready 启动两处。 */
40
+ export function byPriorityThenSeq(a, b) {
41
+ const pa = a.labels?.includes(PRIORITY_LABEL) ? 0 : 1;
42
+ const pb = b.labels?.includes(PRIORITY_LABEL) ? 0 : 1;
43
+ if (pa !== pb)
44
+ return pa - pb;
45
+ return parseInt(a.seq, 10) - parseInt(b.seq, 10);
46
+ }
37
47
  /**
38
48
  * StageEngine — generic engine that handles any pipeline stage.
39
49
  *
@@ -109,7 +119,8 @@ export class StageEngine {
109
119
  actions.push(checkResult);
110
120
  }
111
121
  // 2. Prepare backlog cards (branch + worktree + move to ready)
112
- const backlogCards = await this.taskBackend.listByState(this.pipelineAdapter.states.backlog);
122
+ // v0.58:PRIORITY 卡(`sps card insert` / reviewer 插入的修正卡)优先准备,其余按 seq 升序。
123
+ const backlogCards = (await this.taskBackend.listByState(this.pipelineAdapter.states.backlog)).sort(byPriorityThenSeq);
113
124
  const currentState = this.runtimeStore.readState();
114
125
  const idleSlots = Object.values(currentState.workers).filter(w => w.status === 'idle').length;
115
126
  const readyCards0 = await this.taskBackend.listByState(this.pipelineAdapter.states.ready);
@@ -131,7 +142,8 @@ export class StageEngine {
131
142
  }
132
143
  // 3. Launch ready cards (claim + context + worker + move to active)
133
144
  // v0.51.9: ordering 严格按 seq 升序(不再读 pipeline_order.json)
134
- const readyCards = (await this.taskBackend.listByState(this.pipelineAdapter.states.ready)).sort((a, b) => parseInt(a.seq, 10) - parseInt(b.seq, 10));
145
+ // v0.58: PRIORITY 卡先启动(插队),其余按 seq 升序。
146
+ const readyCards = (await this.taskBackend.listByState(this.pipelineAdapter.states.ready)).sort(byPriorityThenSeq);
135
147
  const failedSlots = new Set();
136
148
  for (const card of readyCards) {
137
149
  if (actionsThisTick >= maxActions)