@winspan/claude-forge 8.15.0 → 8.16.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.
@@ -1 +1 @@
1
- {"version":3,"file":"official-agents.d.ts","sourceRoot":"","sources":["../../src/agents/official-agents.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AA4ZvD,eAAO,MAAM,eAAe,EAAE,eAAe,EA6G5C,CAAC;AAEF;;GAEG;AACH,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;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AA4ZvD,eAAO,MAAM,eAAe,EAAE,eAAe,EAiG5C,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE3E"}
@@ -408,108 +408,96 @@ export const OFFICIAL_AGENTS = [
408
408
  name: 'planner',
409
409
  description: '需求分析 + 架构/接口/数据模型设计(不写代码)',
410
410
  category: 'core',
411
- version: '0.1.0',
411
+ version: '0.2.0',
412
412
  tools: ['Read', 'Grep', 'Glob', 'WebFetch', 'WebSearch'],
413
- model: 'sonnet',
414
413
  content: PLANNER_BODY,
415
414
  },
416
415
  {
417
416
  name: 'coder',
418
417
  description: '按已明确的需求/设计写代码、做小范围重构与性能优化',
419
418
  category: 'core',
420
- version: '0.1.0',
419
+ version: '0.2.0',
421
420
  tools: ['Read', 'Write', 'Edit', 'Grep', 'Glob', 'Bash'],
422
- model: 'sonnet',
423
421
  content: CODER_BODY,
424
422
  },
425
423
  {
426
424
  name: 'full-system-builder',
427
425
  description: '端到端系统构建(前后端 + 数据库 + 测试)',
428
426
  category: 'pipeline',
429
- version: '0.1.0',
427
+ version: '0.2.0',
430
428
  tools: ['Read', 'Write', 'Edit', 'Grep', 'Glob', 'Bash', 'Agent'],
431
- model: 'opus',
432
429
  content: FULL_SYSTEM_BUILDER_BODY,
433
430
  },
434
431
  {
435
432
  name: 'feature-developer',
436
433
  description: '跨模块复杂功能开发',
437
434
  category: 'pipeline',
438
- version: '0.1.0',
435
+ version: '0.2.0',
439
436
  tools: ['Read', 'Write', 'Edit', 'Grep', 'Glob', 'Bash'],
440
- model: 'sonnet',
441
437
  content: FEATURE_DEVELOPER_BODY,
442
438
  },
443
439
  {
444
440
  name: 'refactor-specialist',
445
441
  description: '大规模重构与技术债消除',
446
442
  category: 'specialist',
447
- version: '0.1.0',
443
+ version: '0.2.0',
448
444
  tools: ['Read', 'Write', 'Edit', 'Grep', 'Glob', 'Bash'],
449
- model: 'sonnet',
450
445
  content: REFACTOR_SPECIALIST_BODY,
451
446
  },
452
447
  {
453
448
  name: 'migration-planner',
454
449
  description: '技术栈迁移规划(框架升级、语言切换、数据库迁移)',
455
450
  category: 'specialist',
456
- version: '0.1.0',
451
+ version: '0.2.0',
457
452
  tools: ['Read', 'Grep', 'Glob', 'WebFetch', 'WebSearch'],
458
- model: 'sonnet',
459
453
  content: MIGRATION_PLANNER_BODY,
460
454
  },
461
455
  {
462
456
  name: 'tester',
463
457
  description: '测试编写与覆盖率提升',
464
458
  category: 'quality',
465
- version: '0.1.0',
459
+ version: '0.2.0',
466
460
  tools: ['Read', 'Write', 'Edit', 'Grep', 'Glob', 'Bash'],
467
- model: 'sonnet',
468
461
  content: TESTER_BODY,
469
462
  },
470
463
  {
471
464
  name: 'reviewer',
472
465
  description: '代码评审与质量检查',
473
466
  category: 'quality',
474
- version: '0.1.0',
467
+ version: '0.2.0',
475
468
  tools: ['Read', 'Grep', 'Glob'],
476
- model: 'sonnet',
477
469
  content: REVIEWER_BODY,
478
470
  },
479
471
  {
480
472
  name: 'researcher',
481
473
  description: '技术调研与方案对比',
482
474
  category: 'research',
483
- version: '0.1.0',
475
+ version: '0.2.0',
484
476
  tools: ['Read', 'Grep', 'Glob', 'WebFetch', 'WebSearch'],
485
- model: 'sonnet',
486
477
  content: RESEARCHER_BODY,
487
478
  },
488
479
  {
489
480
  name: 'spec-writer',
490
481
  description: '技术规格文档编写(PRD / 技术方案 / API 规格)',
491
482
  category: 'documentation',
492
- version: '0.1.0',
483
+ version: '0.2.0',
493
484
  tools: ['Read', 'Write', 'Grep', 'Glob'],
494
- model: 'sonnet',
495
485
  content: SPEC_WRITER_BODY,
496
486
  },
497
487
  {
498
488
  name: 'doc-reviewer',
499
489
  description: '文档审校(准确性 + 完整性 + 可读性)',
500
490
  category: 'documentation',
501
- version: '0.1.0',
491
+ version: '0.2.0',
502
492
  tools: ['Read', 'Grep', 'Glob'],
503
- model: 'sonnet',
504
493
  content: DOC_REVIEWER_BODY,
505
494
  },
506
495
  {
507
496
  name: 'pr-creator',
508
497
  description: 'Pull Request 创建与描述生成',
509
498
  category: 'workflow',
510
- version: '0.1.0',
499
+ version: '0.2.0',
511
500
  tools: ['Read', 'Grep', 'Bash'],
512
- model: 'sonnet',
513
501
  content: PR_CREATOR_BODY,
514
502
  },
515
503
  ];
@@ -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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"}
@@ -19,6 +19,7 @@ async function showMainMenu() {
19
19
  console.log(' \x1b[33m[1]\x1b[0m 🚀 运行与状态');
20
20
  console.log(' \x1b[33m[2]\x1b[0m 📊 会话与日志');
21
21
  console.log(' \x1b[33m[3]\x1b[0m ⚙️ 项目治理');
22
+ console.log(' \x1b[33m[4]\x1b[0m 🤖 AI 配置');
22
23
  console.log('');
23
24
  console.log(' \x1b[33m[0]\x1b[0m 退出\n');
24
25
  const choice = await prompt('请选择');
@@ -32,6 +33,9 @@ async function showMainMenu() {
32
33
  case '3':
33
34
  await showGovernanceMenu();
34
35
  break;
36
+ case '4':
37
+ await showAIConfigMenu();
38
+ break;
35
39
  case '0': process.exit(0);
36
40
  default:
37
41
  console.log('\x1b[31m无效选择\x1b[0m');
@@ -177,4 +181,183 @@ function waitForKey() {
177
181
  });
178
182
  });
179
183
  }
184
+ async function showAIConfigMenu() {
185
+ console.clear();
186
+ console.log('\x1b[36m═══ 🤖 AI 配置 ═══\x1b[0m\n');
187
+ console.log(' \x1b[33m[1]\x1b[0m 查看当前配置');
188
+ console.log(' \x1b[33m[2]\x1b[0m 设置 API Key');
189
+ console.log(' \x1b[33m[3]\x1b[0m 设置 Base URL');
190
+ console.log(' \x1b[33m[4]\x1b[0m 选择模型');
191
+ console.log(' \x1b[33m[5]\x1b[0m 测试连接');
192
+ console.log('');
193
+ console.log(' \x1b[33m[0]\x1b[0m 返回\n');
194
+ const choice = await prompt('请选择');
195
+ switch (choice) {
196
+ case '1':
197
+ await showCurrentAIConfig();
198
+ await waitForKey();
199
+ break;
200
+ case '2':
201
+ await setAPIKey();
202
+ await waitForKey();
203
+ break;
204
+ case '3':
205
+ await setBaseURL();
206
+ await waitForKey();
207
+ break;
208
+ case '4':
209
+ await selectModel();
210
+ await waitForKey();
211
+ break;
212
+ case '5':
213
+ await testConnection();
214
+ await waitForKey();
215
+ break;
216
+ case '0': return;
217
+ default:
218
+ console.log('\x1b[31m无效选择\x1b[0m');
219
+ await waitForKey();
220
+ }
221
+ await showAIConfigMenu();
222
+ }
223
+ async function showCurrentAIConfig() {
224
+ try {
225
+ const { ConfigManager } = await import('../../core/config.js');
226
+ const { FORGE_PATHS } = await import('../../core/constants.js');
227
+ const configManager = new ConfigManager();
228
+ const config = configManager.get();
229
+ const maskApiKey = (key) => {
230
+ if (!key || key.length < 10)
231
+ return '(未设置)';
232
+ return key.slice(0, 6) + '***' + key.slice(-4);
233
+ };
234
+ console.log('\n\x1b[36m当前 AI 配置:\x1b[0m');
235
+ console.log(` API Key: ${maskApiKey(config.distill.api_key)}`);
236
+ console.log(` Base URL: ${config.distill.base_url || '(未设置)'}`);
237
+ console.log(` Model: ${config.distill.model}`);
238
+ console.log(` Provider: ${config.distill.provider}`);
239
+ console.log(`\n配置文件: ${FORGE_PATHS.config()}`);
240
+ }
241
+ catch (err) {
242
+ console.log(`\x1b[31m读取配置失败: ${err}\x1b[0m`);
243
+ }
244
+ }
245
+ async function setAPIKey() {
246
+ try {
247
+ const apiKey = await prompt('请输入 API Key');
248
+ if (!apiKey) {
249
+ console.log('\x1b[31mAPI Key 不能为空\x1b[0m');
250
+ return;
251
+ }
252
+ const { ConfigManager } = await import('../../core/config.js');
253
+ const configManager = new ConfigManager();
254
+ const config = configManager.get();
255
+ config.distill.api_key = apiKey;
256
+ configManager.save();
257
+ console.log('\x1b[32m✓ API Key 已保存\x1b[0m');
258
+ console.log('\x1b[90m提示: 重启 daemon 后生效\x1b[0m');
259
+ }
260
+ catch (err) {
261
+ console.log(`\x1b[31m保存失败: ${err}\x1b[0m`);
262
+ }
263
+ }
264
+ async function setBaseURL() {
265
+ try {
266
+ const baseUrl = await prompt('请输入 Base URL (留空使用默认)');
267
+ const { ConfigManager } = await import('../../core/config.js');
268
+ const configManager = new ConfigManager();
269
+ const config = configManager.get();
270
+ config.distill.base_url = baseUrl || undefined;
271
+ configManager.save();
272
+ console.log('\x1b[32m✓ Base URL 已保存\x1b[0m');
273
+ console.log('\x1b[90m提示: 重启 daemon 后生效\x1b[0m');
274
+ }
275
+ catch (err) {
276
+ console.log(`\x1b[31m保存失败: ${err}\x1b[0m`);
277
+ }
278
+ }
279
+ async function selectModel() {
280
+ try {
281
+ console.log('\n\x1b[36m正在获取模型列表...\x1b[0m');
282
+ const response = await fetch('http://localhost:3721/api/ai/models');
283
+ if (!response.ok) {
284
+ const text = await response.text();
285
+ console.log(`\x1b[31m获取模型列表失败: ${text}\x1b[0m`);
286
+ console.log('\x1b[90m提示: 请先配置 API Key 和 Base URL,并确保 daemon 正在运行\x1b[0m');
287
+ return;
288
+ }
289
+ const data = await response.json();
290
+ const models = data.data || [];
291
+ if (models.length === 0) {
292
+ console.log('\x1b[31m未找到可用模型\x1b[0m');
293
+ return;
294
+ }
295
+ console.log('\n\x1b[36m可用模型:\x1b[0m');
296
+ models.forEach((m, i) => {
297
+ console.log(` \x1b[33m[${i + 1}]\x1b[0m ${m.id}`);
298
+ });
299
+ console.log(' \x1b[33m[0]\x1b[0m 取消\n');
300
+ const choice = await prompt('请选择模型');
301
+ const idx = parseInt(choice) - 1;
302
+ if (choice === '0')
303
+ return;
304
+ if (idx < 0 || idx >= models.length) {
305
+ console.log('\x1b[31m无效选择\x1b[0m');
306
+ return;
307
+ }
308
+ const selectedModel = models[idx].id;
309
+ const { ConfigManager } = await import('../../core/config.js');
310
+ const configManager = new ConfigManager();
311
+ const config = configManager.get();
312
+ config.distill.model = selectedModel;
313
+ configManager.save();
314
+ console.log(`\x1b[32m✓ 已选择模型: ${selectedModel}\x1b[0m`);
315
+ console.log('\x1b[90m提示: 重启 daemon 后生效\x1b[0m');
316
+ }
317
+ catch (err) {
318
+ console.log(`\x1b[31m操作失败: ${err}\x1b[0m`);
319
+ }
320
+ }
321
+ async function testConnection() {
322
+ try {
323
+ console.log('\n\x1b[36m正在测试连接...\x1b[0m');
324
+ const { ConfigManager } = await import('../../core/config.js');
325
+ const configManager = new ConfigManager();
326
+ const config = configManager.get();
327
+ const apiKey = config.distill.api_key;
328
+ const baseUrl = config.distill.base_url || 'https://api.anthropic.com';
329
+ const model = config.distill.model;
330
+ if (!apiKey) {
331
+ console.log('\x1b[31m请先配置 API Key\x1b[0m');
332
+ return;
333
+ }
334
+ const messagesUrl = baseUrl.endsWith('/v1')
335
+ ? `${baseUrl}/messages`
336
+ : `${baseUrl}/v1/messages`;
337
+ const response = await fetch(messagesUrl, {
338
+ method: 'POST',
339
+ headers: {
340
+ 'Content-Type': 'application/json',
341
+ 'x-api-key': apiKey,
342
+ 'anthropic-version': '2023-06-01',
343
+ },
344
+ body: JSON.stringify({
345
+ model,
346
+ max_tokens: 10,
347
+ messages: [{ role: 'user', content: 'ping' }],
348
+ }),
349
+ });
350
+ if (!response.ok) {
351
+ const text = await response.text();
352
+ console.log(`\x1b[31m连接失败: ${response.status} ${text}\x1b[0m`);
353
+ return;
354
+ }
355
+ const data = await response.json();
356
+ console.log(`\x1b[32m✓ 连接成功!\x1b[0m`);
357
+ console.log(` 模型: ${data.model || model}`);
358
+ }
359
+ catch (err) {
360
+ console.log(`\x1b[31m测试失败: ${err}\x1b[0m`);
361
+ }
362
+ }
180
363
  //# sourceMappingURL=menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../../src/cli/commands/menu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../../src/cli/commands/menu.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ export declare const DATABASE: {
31
31
  * Default config values
32
32
  */
33
33
  export declare const DEFAULTS: {
34
- readonly DISTILL_MODEL: "claude-sonnet-4-20250514";
34
+ readonly DISTILL_MODEL: "claude-sonnet-4-6";
35
35
  readonly DISTILL_PROVIDER: "anthropic";
36
36
  readonly STORAGE_MAX_SIZE_MB: 500;
37
37
  readonly WEB_PORT: 3456;
@@ -33,7 +33,7 @@ export const DATABASE = {
33
33
  * Default config values
34
34
  */
35
35
  export const DEFAULTS = {
36
- DISTILL_MODEL: 'claude-sonnet-4-20250514',
36
+ DISTILL_MODEL: 'claude-sonnet-4-6',
37
37
  DISTILL_PROVIDER: 'anthropic',
38
38
  STORAGE_MAX_SIZE_MB: 500,
39
39
  WEB_PORT: 3456,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU;IACtB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC;IAC7C,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;IAC5C,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,UAAU;IACf,IAAI,EAAE,WAAW;CACT,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,KAAK;IACf,YAAY,EAAE,KAAK;IACnB,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM;CAClB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,aAAa,EAAE,0BAA0B;IACzC,gBAAgB,EAAE,WAAW;IAC7B,mBAAmB,EAAE,GAAG;IACxB,QAAQ,EAAE,IAAI;CACN,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU;IACtB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC;IAC7C,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;IAC5C,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,UAAU;IACf,IAAI,EAAE,WAAW;CACT,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,KAAK;IACf,YAAY,EAAE,KAAK;IACnB,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM;CAClB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,aAAa,EAAE,mBAAmB;IAClC,gBAAgB,EAAE,WAAW;IAC7B,mBAAmB,EAAE,GAAG;IACxB,QAAQ,EAAE,IAAI;CACN,CAAC"}
@@ -6,14 +6,13 @@
6
6
  * 2. Classify intent (complexity + taskType) via IntentClassifier
7
7
  * 3. Route via AgentRouter:
8
8
  * - route_to_agent → inject declarative strong-route directive
9
- * - route_to_skill fall back to SkillRegistry match + soft recommendation
10
- * - none → no injection
9
+ * - otherwise no injection (Claude 走默认流程;Skill 仅通过
10
+ * slash command /<skill-name> 手动触发)
11
11
  * 4. Persist routing_events row for Web UI observation
12
12
  */
13
13
  import type { ForgeEvent, HookResult } from '../../core/types.js';
14
14
  import type { IntentClassifier } from '../../intelligence/classifier.js';
15
15
  import type { HistoryContextBuilder } from '../../intelligence/history-context-builder.js';
16
- import type { SkillRegistry } from '../../skills/registry.js';
17
16
  import type { ResumeManager } from '../../claudemd/resume-manager.js';
18
17
  import type { ConventionExtractor } from '../../claudemd/convention-extractor.js';
19
18
  import type { ExperimentRouter } from '../../engine/experiment-router.js';
@@ -23,7 +22,6 @@ import type { AgentRegistry } from '../../agents/registry.js';
23
22
  export declare const INJECTION_VERSION = "v1-declarative-2026-05-08";
24
23
  export declare class UserPromptHandler {
25
24
  private classifier;
26
- private skills;
27
25
  private resume;
28
26
  private historyContext;
29
27
  private conventionExtractor;
@@ -34,7 +32,7 @@ export declare class UserPromptHandler {
34
32
  private resumeInjected;
35
33
  private historyInjected;
36
34
  private conventionInjected;
37
- constructor(classifier: IntentClassifier, skills: SkillRegistry, resume?: ResumeManager | null, historyContext?: HistoryContextBuilder | null, conventionExtractor?: ConventionExtractor | null, router?: ExperimentRouter | null, agents?: AgentRegistry | null, storage?: SQLiteStorage | null, observer?: RoutingObserver | null);
35
+ constructor(classifier: IntentClassifier, resume?: ResumeManager | null, historyContext?: HistoryContextBuilder | null, conventionExtractor?: ConventionExtractor | null, router?: ExperimentRouter | null, agents?: AgentRegistry | null, storage?: SQLiteStorage | null, observer?: RoutingObserver | null);
38
36
  handle(event: ForgeEvent): Promise<HookResult>;
39
37
  }
40
38
  //# sourceMappingURL=user-prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-prompt.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/user-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,mCAAmC,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,eAAO,MAAM,iBAAiB,8BAA8B,CAAC;AAE7D,qBAAa,iBAAiB;IAM1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IAblB,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,kBAAkB,CAAqB;gBAGrC,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE,aAAa,EACrB,MAAM,GAAE,aAAa,GAAG,IAAW,EACnC,cAAc,GAAE,qBAAqB,GAAG,IAAW,EACnD,mBAAmB,GAAE,mBAAmB,GAAG,IAAW,EACtD,MAAM,GAAE,gBAAgB,GAAG,IAAW,EACtC,MAAM,GAAE,aAAa,GAAG,IAAW,EACnC,OAAO,GAAE,aAAa,GAAG,IAAW,EACpC,QAAQ,GAAE,eAAe,GAAG,IAAW;IAG3C,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CA+HrD"}
1
+ {"version":3,"file":"user-prompt.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/user-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,mCAAmC,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,eAAO,MAAM,iBAAiB,8BAA8B,CAAC;AAE7D,qBAAa,iBAAiB;IAM1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IAZlB,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,kBAAkB,CAAqB;gBAGrC,UAAU,EAAE,gBAAgB,EAC5B,MAAM,GAAE,aAAa,GAAG,IAAW,EACnC,cAAc,GAAE,qBAAqB,GAAG,IAAW,EACnD,mBAAmB,GAAE,mBAAmB,GAAG,IAAW,EACtD,MAAM,GAAE,gBAAgB,GAAG,IAAW,EACtC,MAAM,GAAE,aAAa,GAAG,IAAW,EACnC,OAAO,GAAE,aAAa,GAAG,IAAW,EACpC,QAAQ,GAAE,eAAe,GAAG,IAAW;IAG3C,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CAwHrD"}
@@ -6,15 +6,14 @@
6
6
  * 2. Classify intent (complexity + taskType) via IntentClassifier
7
7
  * 3. Route via AgentRouter:
8
8
  * - route_to_agent → inject declarative strong-route directive
9
- * - route_to_skill fall back to SkillRegistry match + soft recommendation
10
- * - none → no injection
9
+ * - otherwise no injection (Claude 走默认流程;Skill 仅通过
10
+ * slash command /<skill-name> 手动触发)
11
11
  * 4. Persist routing_events row for Web UI observation
12
12
  */
13
13
  import { logger } from '../../core/utils/logger.js';
14
14
  export const INJECTION_VERSION = 'v1-declarative-2026-05-08';
15
15
  export class UserPromptHandler {
16
16
  classifier;
17
- skills;
18
17
  resume;
19
18
  historyContext;
20
19
  conventionExtractor;
@@ -25,9 +24,8 @@ export class UserPromptHandler {
25
24
  resumeInjected = new Set();
26
25
  historyInjected = new Set();
27
26
  conventionInjected = new Set();
28
- constructor(classifier, skills, resume = null, historyContext = null, conventionExtractor = null, router = null, agents = null, storage = null, observer = null) {
27
+ constructor(classifier, resume = null, historyContext = null, conventionExtractor = null, router = null, agents = null, storage = null, observer = null) {
29
28
  this.classifier = classifier;
30
- this.skills = skills;
31
29
  this.resume = resume;
32
30
  this.historyContext = historyContext;
33
31
  this.conventionExtractor = conventionExtractor;
@@ -75,8 +73,9 @@ export class UserPromptHandler {
75
73
  }
76
74
  // 1. Classify intent
77
75
  const analysis = await this.classifier.classify(prompt, event.project_path);
76
+ const source = analysis.fallbackUsed ? 'regex' : (analysis.classificationMs ? 'ai' : 'ground-truth');
78
77
  logger.info(`[UserPrompt] Intent: complexity=${analysis.complexity} taskType=${analysis.taskType} ` +
79
- `fallback=${analysis.fallbackUsed ?? false}`);
78
+ `source=${source}${analysis.classificationMs ? ` (${analysis.classificationMs}ms)` : ''}`);
80
79
  // 2. Route
81
80
  let decision = null;
82
81
  let routedAgentName = null;
@@ -97,17 +96,9 @@ export class UserPromptHandler {
97
96
  }
98
97
  }
99
98
  }
100
- // 3. Skill fallback (either no agent route, or agent missing)
101
- if (routedType !== 'agent') {
102
- const skill = await this.skills.match(prompt, analysis.searchKeywords);
103
- if (skill) {
104
- routedType = 'skill';
105
- routedAgentName = skill.name;
106
- logger.info(`[UserPrompt] Matched skill: ${skill.name}`);
107
- const { formatSkillRecommendation } = await import('../../skills/matcher.js');
108
- systemParts.push(formatSkillRecommendation(skill));
109
- }
110
- }
99
+ // 3. (Phase 5) Skill fallback removed: UserPromptSubmit 不再自动推荐 skill。
100
+ // 没有匹到 agent 的 prompt 直接走 Claude 默认流程;slash command /<skill-name>
101
+ // 仍然可以手动触发具体 skill
111
102
  // 4. Persist routing_events row
112
103
  if (this.storage) {
113
104
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"user-prompt.js","sourceRoot":"","sources":["../../../src/daemon/handlers/user-prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-prompt.js","sourceRoot":"","sources":["../../../src/daemon/handlers/user-prompt.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAyCH,wBAAsB,WAAW,CAAC,UAAU,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA6O5E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAyCH,wBAAsB,WAAW,CAAC,UAAU,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAgP5E"}
@@ -68,17 +68,20 @@ export async function startDaemon(foreground = false) {
68
68
  ruleEngine.loadAll();
69
69
  const evidenceStore = new EvidenceStore();
70
70
  const contextBuilder = new ContextBuilder(evidenceStore);
71
- const classifier = ai ? new IntentClassifier(ai) : null;
71
+ // Classifier always runs; without AI it degrades to ground-truth + keyword fallback.
72
+ const classifier = new IntentClassifier(ai);
72
73
  const qualityGate = ai ? new QualityGate(ai) : null;
73
74
  const distiller = ai ? new Distiller(ai, storage) : null;
74
- // Initialize skill registry with semantic matching support
75
+ // Initialize skill registry kept for CLI `claude-forge skills` queries.
76
+ // UserPromptSubmit no longer auto-recommends skills (removed in v8.15.4);
77
+ // skills remain available via slash command `/<skill-name>`.
75
78
  const skillApiKey = config.skill_matching?.api_key || apiKey;
76
- const skills = new SkillRegistry(skillApiKey);
79
+ void new SkillRegistry(skillApiKey);
77
80
  if (skillApiKey) {
78
- logger.info('[Skills] Semantic matching enabled');
81
+ logger.info('[Skills] Registry loaded with semantic matching support');
79
82
  }
80
83
  else {
81
- logger.info('[Skills] Using keyword matching only');
84
+ logger.info('[Skills] Registry loaded (keyword matching)');
82
85
  }
83
86
  const exporter = new HistoryExporter(storage);
84
87
  const resume = new ResumeManager(storage);
@@ -107,11 +110,13 @@ export async function startDaemon(foreground = false) {
107
110
  autoDisableScheduler.start();
108
111
  logger.info('[Engines] Initialized: RuleEngine, ContextBuilder, EvidenceStore, ResumeManager');
109
112
  logger.info('[Engines] Agent routing: AgentRegistry, AgentRouter, ExperimentRouter, RoutingObserver, AutoDisableScheduler');
110
- if (classifier)
113
+ if (ai)
111
114
  logger.info('[Engines] AI-powered: IntentClassifier, QualityGate, Distiller');
115
+ else
116
+ logger.info('[Engines] IntentClassifier in fallback mode (no API key) — agent routing still active');
112
117
  // ── 6. Create handlers ─────────────────────────────────────────────────────
113
118
  const handlers = {
114
- UserPromptSubmit: new UserPromptHandler(classifier ?? null, skills, resume, historyContext, conventionExtractor, experimentRouter, agents, storage, routingObserver),
119
+ UserPromptSubmit: new UserPromptHandler(classifier, resume, historyContext, conventionExtractor, experimentRouter, agents, storage, routingObserver),
115
120
  PreToolUse: new PreToolUseHandler(ruleEngine, contextBuilder),
116
121
  PostToolUse: new PostToolUseHandler(qualityGate ?? null, storage, routingObserver),
117
122
  Stop: new StopHandler(distiller ?? null, exporter, resume, routingObserver),