@winspan/claude-forge 8.33.5 → 8.34.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 (90) hide show
  1. package/dist/agents/definition.d.ts +3 -0
  2. package/dist/agents/definition.d.ts.map +1 -1
  3. package/dist/agents/definition.js +3 -0
  4. package/dist/agents/definition.js.map +1 -1
  5. package/dist/agents/official-agents.d.ts.map +1 -1
  6. package/dist/agents/official-agents.js +6 -3
  7. package/dist/agents/official-agents.js.map +1 -1
  8. package/dist/agents/registry.d.ts +17 -1
  9. package/dist/agents/registry.d.ts.map +1 -1
  10. package/dist/agents/registry.js +106 -7
  11. package/dist/agents/registry.js.map +1 -1
  12. package/dist/cli/commands/executions.d.ts +3 -0
  13. package/dist/cli/commands/executions.d.ts.map +1 -0
  14. package/dist/cli/commands/executions.js +109 -0
  15. package/dist/cli/commands/executions.js.map +1 -0
  16. package/dist/cli/commands/skills.d.ts.map +1 -1
  17. package/dist/cli/commands/skills.js +83 -20
  18. package/dist/cli/commands/skills.js.map +1 -1
  19. package/dist/cli/index.js +2 -0
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/core/storage/rows.d.ts +14 -0
  22. package/dist/core/storage/rows.d.ts.map +1 -1
  23. package/dist/core/storage/schema.sql +26 -0
  24. package/dist/core/storage/sqlite.d.ts +11 -2
  25. package/dist/core/storage/sqlite.d.ts.map +1 -1
  26. package/dist/core/storage/sqlite.js +32 -0
  27. package/dist/core/storage/sqlite.js.map +1 -1
  28. package/dist/daemon/handlers/stop.d.ts +5 -1
  29. package/dist/daemon/handlers/stop.d.ts.map +1 -1
  30. package/dist/daemon/handlers/stop.js +27 -1
  31. package/dist/daemon/handlers/stop.js.map +1 -1
  32. package/dist/daemon/handlers/user-prompt.d.ts +3 -1
  33. package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
  34. package/dist/daemon/handlers/user-prompt.js +37 -4
  35. package/dist/daemon/handlers/user-prompt.js.map +1 -1
  36. package/dist/daemon/index.d.ts.map +1 -1
  37. package/dist/daemon/index.js +10 -4
  38. package/dist/daemon/index.js.map +1 -1
  39. package/dist/daemon/routing-observer.d.ts.map +1 -1
  40. package/dist/daemon/routing-observer.js +24 -1
  41. package/dist/daemon/routing-observer.js.map +1 -1
  42. package/dist/intelligence/execution-doc-builder.d.ts +61 -0
  43. package/dist/intelligence/execution-doc-builder.d.ts.map +1 -0
  44. package/dist/intelligence/execution-doc-builder.js +601 -0
  45. package/dist/intelligence/execution-doc-builder.js.map +1 -0
  46. package/dist/skills/invocation-guard.d.ts +45 -0
  47. package/dist/skills/invocation-guard.d.ts.map +1 -0
  48. package/dist/skills/invocation-guard.js +82 -0
  49. package/dist/skills/invocation-guard.js.map +1 -0
  50. package/dist/skills/registry.d.ts +22 -0
  51. package/dist/skills/registry.d.ts.map +1 -1
  52. package/dist/skills/registry.js +30 -2
  53. package/dist/skills/registry.js.map +1 -1
  54. package/dist/skills/tools/skill-invoke.d.ts +36 -0
  55. package/dist/skills/tools/skill-invoke.d.ts.map +1 -0
  56. package/dist/skills/tools/skill-invoke.js +82 -0
  57. package/dist/skills/tools/skill-invoke.js.map +1 -0
  58. package/dist/skills/tools/skill-list.d.ts +26 -0
  59. package/dist/skills/tools/skill-list.d.ts.map +1 -0
  60. package/dist/skills/tools/skill-list.js +35 -0
  61. package/dist/skills/tools/skill-list.js.map +1 -0
  62. package/dist/web/routes/execution-trace.d.ts.map +1 -1
  63. package/dist/web/routes/execution-trace.js +16 -0
  64. package/dist/web/routes/execution-trace.js.map +1 -1
  65. package/dist/web/routes/skill-stats.d.ts +12 -0
  66. package/dist/web/routes/skill-stats.d.ts.map +1 -0
  67. package/dist/web/routes/skill-stats.js +72 -0
  68. package/dist/web/routes/skill-stats.js.map +1 -0
  69. package/dist/web/static/assets/{AIConfig-BbwRuWzm.js → AIConfig-DiUFET_Q.js} +2 -2
  70. package/dist/web/static/assets/{AIConfig-BbwRuWzm.js.map → AIConfig-DiUFET_Q.js.map} +1 -1
  71. package/dist/web/static/assets/{Agents-FyKzsN-g.js → Agents-bNNGbQnL.js} +2 -2
  72. package/dist/web/static/assets/{Agents-FyKzsN-g.js.map → Agents-bNNGbQnL.js.map} +1 -1
  73. package/dist/web/static/assets/{Events-C2OCOKAD.js → Events-DQHP6Uaq.js} +2 -2
  74. package/dist/web/static/assets/{Events-C2OCOKAD.js.map → Events-DQHP6Uaq.js.map} +1 -1
  75. package/dist/web/static/assets/ExecutionTrace-Co8ARdg-.js +3 -0
  76. package/dist/web/static/assets/ExecutionTrace-Co8ARdg-.js.map +1 -0
  77. package/dist/web/static/assets/{Methodologies-DwYLXc8o.js → Methodologies-CXNrDXwG.js} +2 -2
  78. package/dist/web/static/assets/{Methodologies-DwYLXc8o.js.map → Methodologies-CXNrDXwG.js.map} +1 -1
  79. package/dist/web/static/assets/{Sessions-CFpFk-5I.js → Sessions-ZQSCgXyy.js} +2 -2
  80. package/dist/web/static/assets/{Sessions-CFpFk-5I.js.map → Sessions-ZQSCgXyy.js.map} +1 -1
  81. package/dist/web/static/assets/{Skills-BkbegTV1.js → Skills-C5-5zOSH.js} +2 -2
  82. package/dist/web/static/assets/{Skills-BkbegTV1.js.map → Skills-C5-5zOSH.js.map} +1 -1
  83. package/dist/web/static/assets/{index-CIRlno4E.js → index-DJK5beK6.js} +3 -3
  84. package/dist/web/static/assets/{index-CIRlno4E.js.map → index-DJK5beK6.js.map} +1 -1
  85. package/dist/web/static/assets/index-phpuytMI.css +1 -0
  86. package/dist/web/static/index.html +2 -2
  87. package/package.json +1 -1
  88. package/dist/web/static/assets/ExecutionTrace-BsWSpu2v.js +0 -3
  89. package/dist/web/static/assets/ExecutionTrace-BsWSpu2v.js.map +0 -1
  90. package/dist/web/static/assets/index-N1EByy_h.css +0 -1
@@ -26,6 +26,8 @@ export interface AgentDefinition {
26
26
  tools: string[];
27
27
  /** Suggested model slug (sonnet/opus/haiku); optional */
28
28
  model?: string;
29
+ /** Skill dependencies (skill IDs to inject as methodology) */
30
+ skills?: string[];
29
31
  /** Full markdown body that lands in ~/.claude/agents/<name>.md */
30
32
  content: string;
31
33
  }
@@ -39,6 +41,7 @@ export interface AgentRecord {
39
41
  version: string;
40
42
  tools: string[];
41
43
  model?: string;
44
+ skills?: string[];
42
45
  content: string;
43
46
  source: AgentSource;
44
47
  /** Absolute path if loaded from disk, '<builtin>' for embedded */
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/agents/definition.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,UAAU,GACV,YAAY,GACZ,SAAS,GACT,UAAU,GACV,eAAe,GACf,UAAU,GACV,eAAe,CAAC;AAEpB;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,EAAE,aAAa,CAAC;IACxB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAWhE"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/agents/definition.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,UAAU,GACV,YAAY,GACZ,SAAS,GACT,UAAU,GACV,eAAe,GACf,UAAU,GACV,eAAe,CAAC;AAEpB;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,EAAE,aAAa,CAAC;IACxB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAchE"}
@@ -18,6 +18,9 @@ export function renderAgentMarkdown(def) {
18
18
  ];
19
19
  if (def.model)
20
20
  fm.push(`model: ${def.model}`);
21
+ if (def.skills && def.skills.length > 0) {
22
+ fm.push(`skills: [${def.skills.join(', ')}]`);
23
+ }
21
24
  fm.push('---', '');
22
25
  return fm.join('\n') + def.content.trimStart();
23
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/agents/definition.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuDH;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAoB;IACtD,MAAM,EAAE,GAAa;QACnB,KAAK;QACL,SAAS,GAAG,CAAC,IAAI,EAAE;QACnB,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QACjD,YAAY,GAAG,CAAC,OAAO,EAAE;QACzB,UAAU,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;KACjC,CAAC;IACF,IAAI,GAAG,CAAC,KAAK;QAAE,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9C,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/agents/definition.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA0DH;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAoB;IACtD,MAAM,EAAE,GAAa;QACnB,KAAK;QACL,SAAS,GAAG,CAAC,IAAI,EAAE;QACnB,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QACjD,YAAY,GAAG,CAAC,OAAO,EAAE;QACzB,UAAU,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;KACjC,CAAC;IACF,IAAI,GAAG,CAAC,KAAK;QAAE,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9C,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IACD,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;AACjD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"official-agents.d.ts","sourceRoot":"","sources":["../../src/agents/official-agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AA0cvD,eAAO,MAAM,eAAe,EAAE,eAAe,EAyG5C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE3E"}
1
+ {"version":3,"file":"official-agents.d.ts","sourceRoot":"","sources":["../../src/agents/official-agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AA0cvD,eAAO,MAAM,eAAe,EAAE,eAAe,EA4G5C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE3E"}
@@ -478,8 +478,9 @@ export const OFFICIAL_AGENTS = [
478
478
  name: 'refactor-specialist',
479
479
  description: '大规模重构与技术债消除',
480
480
  category: 'specialist',
481
- version: '0.2.0',
481
+ version: '0.3.0',
482
482
  tools: ['Read', 'Write', 'Edit', 'Grep', 'Glob', 'Bash'],
483
+ skills: ['official-refactor', 'official-harness-engineering'],
483
484
  content: REFACTOR_SPECIALIST_BODY,
484
485
  },
485
486
  {
@@ -494,16 +495,18 @@ export const OFFICIAL_AGENTS = [
494
495
  name: 'tester',
495
496
  description: '测试编写与覆盖率提升',
496
497
  category: 'quality',
497
- version: '0.2.0',
498
+ version: '0.3.0',
498
499
  tools: ['Read', 'Write', 'Edit', 'Grep', 'Glob', 'Bash'],
500
+ skills: ['official-tdd'],
499
501
  content: TESTER_BODY,
500
502
  },
501
503
  {
502
504
  name: 'reviewer',
503
505
  description: '代码评审和质量检查',
504
506
  category: 'quality',
505
- version: '0.3.0',
507
+ version: '0.4.0',
506
508
  tools: ['Read', 'Grep', 'Glob'],
509
+ skills: ['official-pr-review'],
507
510
  content: REVIEWER_BODY,
508
511
  },
509
512
  {
@@ -1 +1 @@
1
- {"version":3,"file":"official-agents.js","sourceRoot":"","sources":["../../src/agents/official-agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"official-agents.js","sourceRoot":"","sources":["../../src/agents/official-agents.ts"],"names":[],"mappings":"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"}
@@ -10,10 +10,12 @@
10
10
  * Phase 1 ships builtin + user + project; preset layer plugs in at Phase 3.
11
11
  */
12
12
  import type { AgentRecord } from './definition.js';
13
+ import type { SkillRegistry } from '../skills/registry.js';
13
14
  export declare class AgentRegistry {
14
15
  private readonly projectPath?;
15
16
  private agents;
16
- constructor(projectPath?: string | undefined);
17
+ private skillRegistry;
18
+ constructor(projectPath?: string | undefined, skillRegistry?: SkillRegistry);
17
19
  private scan;
18
20
  private loadBuiltin;
19
21
  private loadFromDir;
@@ -23,5 +25,19 @@ export declare class AgentRegistry {
23
25
  getAll(): AgentRecord[];
24
26
  /** Re-scan layers. */
25
27
  reload(): void;
28
+ /**
29
+ * Inject skill content as methodology reference into agent content.
30
+ * If skills are declared but SkillRegistry is not available, log warning.
31
+ */
32
+ private injectSkillContent;
33
+ /**
34
+ * Inject a dynamic skill manifest (id + description only) at the end of agent content.
35
+ * This tells the Agent which skills are available for on-demand invocation via
36
+ * the SkillInvoke tool, without injecting the full skill bodies (to save tokens).
37
+ *
38
+ * Skills already statically injected via injectSkillContent() are excluded from
39
+ * the manifest to avoid duplication.
40
+ */
41
+ private injectDynamicSkillManifest;
26
42
  }
27
43
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,KAAK,EAAiB,WAAW,EAAe,MAAM,iBAAiB,CAAC;AAI/E,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAFzC,OAAO,CAAC,MAAM,CAAuC;gBAExB,WAAW,CAAC,EAAE,MAAM,YAAA;IAIjD,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,WAAW;IAiDnB,mCAAmC;IACnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI1C,gCAAgC;IAChC,MAAM,IAAI,WAAW,EAAE;IAIvB,sBAAsB;IACtB,MAAM,IAAI,IAAI;CAIf"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,KAAK,EAAiB,WAAW,EAAe,MAAM,iBAAiB,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI3D,qBAAa,aAAa;IAKtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAJ/B,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,aAAa,CAA8B;gBAGhC,WAAW,CAAC,EAAE,MAAM,YAAA,EACrC,aAAa,CAAC,EAAE,aAAa;IAM/B,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,WAAW;IAgEnB,mCAAmC;IACnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI1C,gCAAgC;IAChC,MAAM,IAAI,WAAW,EAAE;IAIvB,sBAAsB;IACtB,MAAM,IAAI,IAAI;IAKd;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAuC1B;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;CA2CnC"}
@@ -19,8 +19,10 @@ const USER_AGENTS_DIR = path.join(homedir(), '.claude', 'agents');
19
19
  export class AgentRegistry {
20
20
  projectPath;
21
21
  agents = new Map();
22
- constructor(projectPath) {
22
+ skillRegistry = null;
23
+ constructor(projectPath, skillRegistry) {
23
24
  this.projectPath = projectPath;
25
+ this.skillRegistry = skillRegistry ?? null;
24
26
  this.scan();
25
27
  }
26
28
  scan() {
@@ -33,17 +35,26 @@ export class AgentRegistry {
33
35
  }
34
36
  loadBuiltin() {
35
37
  for (const def of OFFICIAL_AGENTS) {
36
- this.agents.set(def.name, {
38
+ logger.debug(`[AgentRegistry] Loading agent ${def.name}, skills: ${JSON.stringify(def.skills)}`);
39
+ const contentWithStatic = this.injectSkillContent(def.content, def.skills);
40
+ const content = this.injectDynamicSkillManifest(contentWithStatic, def.skills ?? []);
41
+ const record = {
37
42
  name: def.name,
38
43
  description: def.description,
39
44
  category: def.category,
40
45
  version: def.version,
41
46
  tools: def.tools,
42
47
  model: def.model,
43
- content: def.content,
48
+ content,
44
49
  source: 'builtin',
45
50
  path: '<builtin>',
46
- });
51
+ };
52
+ if (def.skills && def.skills.length > 0) {
53
+ record.skills = def.skills;
54
+ logger.debug(`[AgentRegistry] Agent ${def.name} has ${def.skills.length} skill(s): ${def.skills.join(', ')}`);
55
+ }
56
+ logger.debug(`[AgentRegistry] Stored agent ${def.name}, record.skills: ${JSON.stringify(record.skills)}`);
57
+ this.agents.set(def.name, record);
47
58
  }
48
59
  }
49
60
  loadFromDir(dir, source) {
@@ -71,17 +82,27 @@ export class AgentRegistry {
71
82
  ? data.category
72
83
  : 'core';
73
84
  const model = typeof data.model === 'string' ? data.model : undefined;
74
- this.agents.set(name, {
85
+ // Parse skills field
86
+ const rawSkills = data.skills;
87
+ const skills = Array.isArray(rawSkills)
88
+ ? rawSkills.filter((s) => typeof s === 'string')
89
+ : undefined;
90
+ const content = this.injectDynamicSkillManifest(this.injectSkillContent(parsed.content.trim(), skills), skills ?? []);
91
+ const record = {
75
92
  name,
76
93
  description,
77
94
  category,
78
95
  version,
79
96
  tools,
80
97
  model,
81
- content: parsed.content.trim(),
98
+ content,
82
99
  source,
83
100
  path: filePath,
84
- });
101
+ };
102
+ if (skills && skills.length > 0) {
103
+ record.skills = skills;
104
+ }
105
+ this.agents.set(name, record);
85
106
  }
86
107
  catch (err) {
87
108
  logger.warn(`[AgentRegistry] Failed to parse ${filePath}: ${err}`);
@@ -101,5 +122,83 @@ export class AgentRegistry {
101
122
  this.agents.clear();
102
123
  this.scan();
103
124
  }
125
+ /**
126
+ * Inject skill content as methodology reference into agent content.
127
+ * If skills are declared but SkillRegistry is not available, log warning.
128
+ */
129
+ injectSkillContent(content, skills) {
130
+ if (!skills || skills.length === 0) {
131
+ return content;
132
+ }
133
+ if (!this.skillRegistry) {
134
+ logger.warn(`[AgentRegistry] Skills declared [${skills.join(', ')}] but SkillRegistry not available`);
135
+ return content;
136
+ }
137
+ const skillContents = [];
138
+ for (const skillId of skills) {
139
+ const skill = this.skillRegistry.getAll().find(s => s.id === skillId);
140
+ if (skill) {
141
+ skillContents.push(`### ${skill.name}\n\n${skill.content}`);
142
+ logger.debug(`[AgentRegistry] Injected skill: ${skillId}`);
143
+ }
144
+ else {
145
+ logger.warn(`[AgentRegistry] Skill not found: ${skillId}`);
146
+ }
147
+ }
148
+ if (skillContents.length === 0) {
149
+ return content;
150
+ }
151
+ return `${content}
152
+
153
+ ---
154
+
155
+ ## 参考方法论
156
+
157
+ 以下是本 Agent 依赖的 Skill 方法论,供参考使用:
158
+
159
+ ${skillContents.join('\n\n---\n\n')}
160
+ `;
161
+ }
162
+ /**
163
+ * Inject a dynamic skill manifest (id + description only) at the end of agent content.
164
+ * This tells the Agent which skills are available for on-demand invocation via
165
+ * the SkillInvoke tool, without injecting the full skill bodies (to save tokens).
166
+ *
167
+ * Skills already statically injected via injectSkillContent() are excluded from
168
+ * the manifest to avoid duplication.
169
+ */
170
+ injectDynamicSkillManifest(agentContent, staticSkillIds) {
171
+ if (!this.skillRegistry) {
172
+ return agentContent;
173
+ }
174
+ const allSkills = this.skillRegistry.getManifest();
175
+ const availableSkills = allSkills.filter((s) => !staticSkillIds.includes(s.id));
176
+ if (availableSkills.length === 0) {
177
+ return agentContent;
178
+ }
179
+ const manifest = availableSkills
180
+ .map((s) => {
181
+ const desc = s.description?.trim() || s.name;
182
+ return `- \`${s.id}\`: ${desc}`;
183
+ })
184
+ .join('\n');
185
+ const section = `
186
+
187
+ ---
188
+
189
+ ## 可动态调用的 Skill 清单
190
+
191
+ 以下 Skill 可通过 \`SkillInvoke({ skill_id, reason })\` 工具动态调用,获取完整方法论内容:
192
+
193
+ ${manifest}
194
+
195
+ **使用建议**:
196
+ - 当你需要特定领域的方法论指导时(如 TDD、重构、性能优化),调用 \`SkillInvoke\`
197
+ - 调用前请说明 \`reason\`(为什么需要这个 Skill)
198
+ - 同一 Skill 在同一会话中只能调用一次(幂等保护)
199
+ - 单会话总调用次数限制:10 次
200
+ `;
201
+ return agentContent + section;
202
+ }
104
203
  }
105
204
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAElE,MAAM,OAAO,aAAa;IAGK;IAFrB,MAAM,GAA6B,IAAI,GAAG,EAAE,CAAC;IAErD,YAA6B,WAAoB;QAApB,gBAAW,GAAX,WAAW,CAAS;QAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,IAAI;QACV,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC;IACrE,CAAC;IAEO,WAAW;QACjB,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;gBACxB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,MAAM,EAAE,SAAS;gBACjB,IAAI,EAAE,WAAW;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,GAAW,EAAE,MAAmB;QAClD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QAEhC,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBAE/B,MAAM,IAAI,GACR,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;oBACnD,CAAC,CAAC,IAAI,CAAC,IAAI;oBACX,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACjC,MAAM,WAAW,GACf,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,MAAM,OAAO,GACX,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC5B,MAAM,KAAK,GAAa,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAC7C,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBAC5D,CAAC,CAAC,OAAO,QAAQ,KAAK,QAAQ;wBAC5B,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;wBAC1D,CAAC,CAAC,EAAE,CAAC;gBACT,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe;oBAC/D,CAAC,CAAC,IAAI,CAAC,QAAQ;oBACf,CAAC,CAAC,MAAM,CAAC;gBACb,MAAM,KAAK,GACT,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;gBAE1D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;oBACpB,IAAI;oBACJ,WAAW;oBACX,QAAQ;oBACR,OAAO;oBACP,KAAK;oBACL,KAAK;oBACL,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;oBAC9B,MAAM;oBACN,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,mCAAmC,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,gCAAgC;IAChC,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,sBAAsB;IACtB,MAAM;QACJ,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAElE,MAAM,OAAO,aAAa;IAKL;IAJX,MAAM,GAA6B,IAAI,GAAG,EAAE,CAAC;IAC7C,aAAa,GAAyB,IAAI,CAAC;IAEnD,YACmB,WAAoB,EACrC,aAA6B;QADZ,gBAAW,GAAX,WAAW,CAAS;QAGrC,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,IAAI,CAAC;QAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,IAAI;QACV,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC;IACrE,CAAC;IAEO,WAAW;QACjB,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,iCAAiC,GAAG,CAAC,IAAI,aAAa,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjG,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACrF,MAAM,MAAM,GAAgB;gBAC1B,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,OAAO;gBACP,MAAM,EAAE,SAAS;gBACjB,IAAI,EAAE,WAAW;aAClB,CAAC;YACF,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;gBAC3B,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChH,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,gCAAgC,GAAG,CAAC,IAAI,oBAAoB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1G,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,GAAW,EAAE,MAAmB;QAClD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QAEhC,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBAE/B,MAAM,IAAI,GACR,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;oBACnD,CAAC,CAAC,IAAI,CAAC,IAAI;oBACX,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACjC,MAAM,WAAW,GACf,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,MAAM,OAAO,GACX,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC5B,MAAM,KAAK,GAAa,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAC7C,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBAC5D,CAAC,CAAC,OAAO,QAAQ,KAAK,QAAQ;wBAC5B,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;wBAC1D,CAAC,CAAC,EAAE,CAAC;gBACT,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe;oBAC/D,CAAC,CAAC,IAAI,CAAC,QAAQ;oBACf,CAAC,CAAC,MAAM,CAAC;gBACb,MAAM,KAAK,GACT,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;gBAE1D,qBAAqB;gBACrB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC9B,MAAM,MAAM,GAAyB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;oBAC3D,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBAC7D,CAAC,CAAC,SAAS,CAAC;gBAEd,MAAM,OAAO,GAAG,IAAI,CAAC,0BAA0B,CAC7C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,EACtD,MAAM,IAAI,EAAE,CACb,CAAC;gBAEF,MAAM,MAAM,GAAgB;oBAC1B,IAAI;oBACJ,WAAW;oBACX,QAAQ;oBACR,OAAO;oBACP,KAAK;oBACL,KAAK;oBACL,OAAO;oBACP,MAAM;oBACN,IAAI,EAAE,QAAQ;iBACf,CAAC;gBACF,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;gBACzB,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,mCAAmC,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,gCAAgC;IAChC,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,sBAAsB;IACtB,MAAM;QACJ,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,kBAAkB,CAAC,OAAe,EAAE,MAAiB;QAC3D,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CACT,oCAAoC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAmC,CACzF,CAAC;YACF,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;YACtE,IAAI,KAAK,EAAE,CAAC;gBACV,aAAa,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5D,MAAM,CAAC,KAAK,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,GAAG,OAAO;;;;;;;;EAQnB,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;CAClC,CAAC;IACA,CAAC;IAED;;;;;;;OAOG;IACK,0BAA0B,CAChC,YAAoB,EACpB,cAAwB;QAExB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CACtC,CAAC;QAEF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,MAAM,QAAQ,GAAG,eAAe;aAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;YAC7C,OAAO,OAAO,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC;QAClC,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,OAAO,GAAG;;;;;;;;EAQlB,QAAQ;;;;;;;CAOT,CAAC;QAEE,OAAO,YAAY,GAAG,OAAO,CAAC;IAChC,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerExecutionsCommand(program: Command): void;
3
+ //# sourceMappingURL=executions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executions.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/executions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4GhE"}
@@ -0,0 +1,109 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { execSync } from 'node:child_process';
4
+ export function registerExecutionsCommand(program) {
5
+ const cmd = program.command('executions').description('管理 Agent/Skill 执行文档');
6
+ // cf executions list — 列出所有执行文档
7
+ cmd
8
+ .command('list')
9
+ .description('列出所有执行文档')
10
+ .option('--limit <n>', '限制数量', '20')
11
+ .option('--date <date>', '按日期筛选(YYYY-MM-DD)')
12
+ .action(async (opts) => {
13
+ const baseDir = path.join(process.cwd(), '.claude-forge', 'executions', 'by-route');
14
+ if (!fs.existsSync(baseDir)) {
15
+ console.log('暂无执行文档。请先触发 Agent/Skill 执行。');
16
+ return;
17
+ }
18
+ const limit = parseInt(opts.limit) || 20;
19
+ // 列出 route 目录,按 mtime 倒序
20
+ const routes = fs.readdirSync(baseDir, { withFileTypes: true })
21
+ .filter(d => d.isDirectory())
22
+ .map(d => ({
23
+ name: d.name,
24
+ mtime: fs.statSync(path.join(baseDir, d.name)).mtime,
25
+ }))
26
+ .sort((a, b) => b.mtime.getTime() - a.mtime.getTime())
27
+ .slice(0, limit);
28
+ console.log(`找到 ${routes.length} 个执行记录:\n`);
29
+ for (const r of routes) {
30
+ const overviewPath = path.join(baseDir, r.name, 'overview.md');
31
+ let summary = '(无 overview)';
32
+ if (fs.existsSync(overviewPath)) {
33
+ // 读 frontmatter 的 user_prompt 字段
34
+ const content = fs.readFileSync(overviewPath, 'utf-8').slice(0, 1000);
35
+ const m = content.match(/user_prompt:\s*["']?(.+?)["']?\n/);
36
+ if (m)
37
+ summary = m[1].slice(0, 60);
38
+ }
39
+ const time = r.mtime.toISOString().slice(0, 19).replace('T', ' ');
40
+ console.log(`${time} ${r.name.slice(0, 24)} ${summary}`);
41
+ }
42
+ });
43
+ // cf executions open <route_id> — 用 IDE / 编辑器打开
44
+ cmd
45
+ .command('open <route_id>')
46
+ .description('打开指定执行的 overview 文档')
47
+ .action((routeId) => {
48
+ const baseDir = path.join(process.cwd(), '.claude-forge', 'executions', 'by-route');
49
+ if (!fs.existsSync(baseDir)) {
50
+ console.error('执行文档目录不存在。');
51
+ process.exit(1);
52
+ }
53
+ // 模糊匹配
54
+ const dirs = fs.readdirSync(baseDir).filter(d => d.includes(routeId));
55
+ if (dirs.length === 0) {
56
+ console.error(`未找到匹配的执行记录:${routeId}`);
57
+ process.exit(1);
58
+ }
59
+ const target = path.join(baseDir, dirs[0], 'overview.md');
60
+ if (!fs.existsSync(target)) {
61
+ console.error(`overview.md 不存在:${target}`);
62
+ process.exit(1);
63
+ }
64
+ // 用系统默认编辑器或 cat
65
+ const editor = process.env.EDITOR || process.env.VISUAL;
66
+ if (editor) {
67
+ execSync(`${editor} "${target}"`, { stdio: 'inherit' });
68
+ }
69
+ else {
70
+ console.log(fs.readFileSync(target, 'utf-8'));
71
+ }
72
+ });
73
+ // cf executions clean — 清理旧文档
74
+ cmd
75
+ .command('clean')
76
+ .description('清理超过指定天数的执行文档')
77
+ .option('--before <days>', '清理 N 天前的文档', '30')
78
+ .option('--dry-run', '只显示将删除的文件,不实际删除')
79
+ .action(async (opts) => {
80
+ const baseDir = path.join(process.cwd(), '.claude-forge', 'executions', 'by-route');
81
+ if (!fs.existsSync(baseDir)) {
82
+ console.log('执行文档目录不存在,无需清理。');
83
+ return;
84
+ }
85
+ const days = parseInt(opts.before) || 30;
86
+ const cutoff = Date.now() - days * 24 * 60 * 60 * 1000;
87
+ const toDelete = [];
88
+ for (const d of fs.readdirSync(baseDir, { withFileTypes: true })) {
89
+ if (!d.isDirectory())
90
+ continue;
91
+ const dirPath = path.join(baseDir, d.name);
92
+ const stat = fs.statSync(dirPath);
93
+ if (stat.mtime.getTime() < cutoff) {
94
+ toDelete.push(dirPath);
95
+ }
96
+ }
97
+ console.log(`将删除 ${toDelete.length} 个超过 ${days} 天的执行记录${opts.dryRun ? '(dry-run,不实际删除)' : ''}:`);
98
+ for (const p of toDelete) {
99
+ console.log(` - ${path.basename(p)}`);
100
+ if (!opts.dryRun) {
101
+ fs.rmSync(p, { recursive: true, force: true });
102
+ }
103
+ }
104
+ if (!opts.dryRun && toDelete.length > 0) {
105
+ console.log(`已清理 ${toDelete.length} 个目录。`);
106
+ }
107
+ });
108
+ }
109
+ //# sourceMappingURL=executions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executions.js","sourceRoot":"","sources":["../../../src/cli/commands/executions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/skills.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+BzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmB/C"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/skills.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuHzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAa/C"}
@@ -3,32 +3,72 @@ import path from 'path';
3
3
  import { homedir } from 'os';
4
4
  import { OFFICIAL_SKILLS } from '../../skills/official-skills.js';
5
5
  import { SkillRegistry } from '../../skills/registry.js';
6
+ import { skillInvoke } from '../../skills/tools/skill-invoke.js';
7
+ import { skillList } from '../../skills/tools/skill-list.js';
6
8
  const SKILLS_DIR = path.join(homedir(), '.claude', 'skills');
7
9
  /**
8
- * List all skills (official + user)
10
+ * List skills with optional keyword filter and JSON output.
11
+ * Delegates to the shared skillList() tool so CLI and Agent share one code path.
9
12
  */
10
- function listSkills() {
13
+ async function listSkills(options) {
11
14
  const registry = new SkillRegistry();
12
- const skills = registry.getAll();
13
- if (skills.length === 0) {
15
+ const keywords = options.keywords
16
+ ? options.keywords
17
+ .split(',')
18
+ .map(k => k.trim())
19
+ .filter(k => k.length > 0)
20
+ : undefined;
21
+ const result = await skillList({ keywords }, { skillRegistry: registry });
22
+ if (options.json) {
23
+ console.log(JSON.stringify(result, null, 2));
24
+ return;
25
+ }
26
+ if (result.total === 0) {
14
27
  console.log('No skills found.');
15
28
  return;
16
29
  }
17
- console.log(`Total: ${skills.length} skill(s)\n`);
18
- console.log(' Name Type Keywords');
19
- console.log(' ' + '-'.repeat(70));
20
- for (const skill of skills) {
21
- const type = skill.isOfficial ? 'official' : 'user';
22
- const kw = skill.keywords.slice(0, 3).join(', ');
23
- const name = skill.name.padEnd(35);
24
- const typeStr = type.padEnd(10);
25
- console.log(` ${name} ${typeStr} ${kw}`);
30
+ // Human-readable output. Include `isOfficial` hint via registry lookup.
31
+ console.log(`Available skills (${result.total}):\n`);
32
+ for (const s of result.skills) {
33
+ const full = registry.get(s.id);
34
+ const type = full?.isOfficial ? 'official' : 'user';
35
+ console.log(`- ${s.id} [${type}]`);
36
+ console.log(` name: ${s.name}`);
37
+ if (s.description) {
38
+ console.log(` description: ${s.description}`);
39
+ }
40
+ if (s.keywords.length > 0) {
41
+ console.log(` keywords: ${s.keywords.join(', ')}`);
42
+ }
43
+ console.log();
26
44
  }
27
45
  }
28
- export function register(program) {
29
- const skills = program
30
- .command('skills')
31
- .description('Manage official and user skills');
46
+ /**
47
+ * Invoke a skill by id, printing its full methodology content.
48
+ * Exit code 1 on failure so Bash callers can detect errors.
49
+ */
50
+ async function invokeSkill(skillId, options) {
51
+ const registry = new SkillRegistry();
52
+ try {
53
+ const result = await skillInvoke({ skill_id: skillId, reason: options.reason }, { skillRegistry: registry });
54
+ if (options.json) {
55
+ console.log(JSON.stringify(result, null, 2));
56
+ return;
57
+ }
58
+ console.log(`# ${result.skill_name}`);
59
+ if (result.keywords.length > 0) {
60
+ console.log(`\n> keywords: ${result.keywords.join(', ')}`);
61
+ }
62
+ console.log();
63
+ console.log(result.content);
64
+ }
65
+ catch (err) {
66
+ const msg = err instanceof Error ? err.message : String(err);
67
+ console.error(`Error: ${msg}`);
68
+ process.exit(1);
69
+ }
70
+ }
71
+ function registerSkillSubcommands(skills) {
32
72
  skills
33
73
  .command('sync')
34
74
  .description('Write official skills to ~/.claude/skills/')
@@ -38,11 +78,34 @@ export function register(program) {
38
78
  });
39
79
  skills
40
80
  .command('list')
41
- .description('List all skills (official + user)')
42
- .action(() => {
43
- listSkills();
81
+ .description('List all skills (official + user) with optional keyword filter')
82
+ .option('--keywords <keywords>', 'Comma-separated keywords to filter by')
83
+ .option('--json', 'Output as JSON (machine-readable)')
84
+ .action(async (options) => {
85
+ await listSkills(options);
86
+ });
87
+ skills
88
+ .command('invoke <skill_id>')
89
+ .description('Invoke a skill and print its full methodology content')
90
+ .option('--reason <reason>', 'Reason for invoking (used for audit log)')
91
+ .option('--json', 'Output as JSON (machine-readable)')
92
+ .action(async (skillId, options) => {
93
+ await invokeSkill(skillId, options);
44
94
  });
45
95
  }
96
+ export function register(program) {
97
+ // Primary command: `cf skills ...`
98
+ const skills = program
99
+ .command('skills')
100
+ .description('Manage official and user skills (list | invoke | sync)');
101
+ registerSkillSubcommands(skills);
102
+ // Singular alias: `cf skill ...` — preferred for Agent Bash calls where
103
+ // `cf skill invoke <id>` reads more naturally than the plural form.
104
+ const skill = program
105
+ .command('skill')
106
+ .description('Alias of `skills` (list | invoke | sync)');
107
+ registerSkillSubcommands(skill);
108
+ }
46
109
  function syncSkills(options) {
47
110
  if (!fs.existsSync(SKILLS_DIR)) {
48
111
  fs.mkdirSync(SKILLS_DIR, { recursive: true });
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/cli/commands/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAE7D;;GAEG;AACH,SAAS,UAAU;IACjB,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;IAEjC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,MAAM,aAAa,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;QACpD,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAgB;IACvC,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,iCAAiC,CAAC,CAAC;IAElD,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,aAAa,EAAE,gDAAgD,CAAC;SACvE,MAAM,CAAC,CAAC,OAA4B,EAAE,EAAE;QACvC,UAAU,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,GAAG,EAAE;QACX,UAAU,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,UAAU,CAAC,OAA4B;IAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEvC,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC7B,8CAA8C;YAC9C,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACpD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC1D,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAExE,IAAI,eAAe,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;gBACtC,OAAO,EAAE,CAAC;gBACV,SAAS;YACX,CAAC;YAED,4BAA4B;YAC5B,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACnD,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,IAAI,KAAK,eAAe,OAAO,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QACnF,CAAC;aAAM,IAAI,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACnC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACnD,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACnD,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,WAAW,OAAO,aAAa,OAAO,UAAU,CAAC,CAAC;AACzF,CAAC"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/cli/commands/skills.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -13,6 +13,7 @@ import { registerMenuCommand } from './commands/menu.js';
13
13
  import { createTemplateCommand } from './commands/template.js';
14
14
  import { createRulesCommand } from './commands/rules.js';
15
15
  import { createStatsCommand } from './commands/stats.js';
16
+ import { registerExecutionsCommand } from './commands/executions.js';
16
17
  const require = createRequire(import.meta.url);
17
18
  const { version } = require('../../package.json');
18
19
  const program = new Command();
@@ -33,5 +34,6 @@ registerMenuCommand(program);
33
34
  program.addCommand(createTemplateCommand());
34
35
  program.addCommand(createRulesCommand());
35
36
  program.addCommand(createStatsCommand());
37
+ registerExecutionsCommand(program);
36
38
  program.parseAsync();
37
39
  //# sourceMappingURL=index.js.map