@winspan/claude-forge 8.15.0 → 8.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/official-agents.d.ts.map +1 -1
- package/dist/agents/official-agents.js +12 -24
- package/dist/agents/official-agents.js.map +1 -1
- package/dist/cli/commands/menu.js +183 -0
- package/dist/cli/commands/menu.js.map +1 -1
- package/dist/core/constants.d.ts +1 -1
- package/dist/core/constants.js +1 -1
- package/dist/core/constants.js.map +1 -1
- package/dist/daemon/handlers/user-prompt.d.ts +3 -5
- package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
- package/dist/daemon/handlers/user-prompt.js +8 -17
- package/dist/daemon/handlers/user-prompt.js.map +1 -1
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +12 -7
- package/dist/daemon/index.js.map +1 -1
- package/dist/engine/conventions/routing.yaml +13 -3
- package/dist/engine/dsl/parser.d.ts +6 -0
- package/dist/engine/dsl/parser.d.ts.map +1 -1
- package/dist/engine/dsl/parser.js +19 -0
- package/dist/engine/dsl/parser.js.map +1 -1
- package/dist/intelligence/classifier.d.ts +1 -1
- package/dist/intelligence/classifier.d.ts.map +1 -1
- package/dist/intelligence/classifier.js +26 -18
- package/dist/intelligence/classifier.js.map +1 -1
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +136 -0
- package/dist/web/server.js.map +1 -1
- package/dist/web/static/index.html +216 -97
- package/package.json +1 -1
|
@@ -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,
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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":"AAAA;;;;;;GAMG;AAIH,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCpB,CAAC;AAEF,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmClB,CAAC;AAEF,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BhC,CAAC;AAEF,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8B9B,CAAC;AAEF,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BhC,CAAC;AAEF,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B9B,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BnB,CAAC;AAEF,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCrB,CAAC;AAEF,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCvB,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BxB,CAAC;AAEF,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCzB,CAAC;AAEF,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCvB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAsB;IAChD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC;QACxD,
|
|
1
|
+
{"version":3,"file":"official-agents.js","sourceRoot":"","sources":["../../src/agents/official-agents.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCpB,CAAC;AAEF,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmClB,CAAC;AAEF,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BhC,CAAC;AAEF,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8B9B,CAAC;AAEF,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BhC,CAAC;AAEF,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B9B,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BnB,CAAC;AAEF,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCrB,CAAC;AAEF,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCvB,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BxB,CAAC;AAEF,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCzB,CAAC;AAEF,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCvB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAsB;IAChD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC;QACxD,OAAO,EAAE,YAAY;KACtB;IACD;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QACxD,OAAO,EAAE,UAAU;KACpB;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,yBAAyB;QACtC,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;QACjE,OAAO,EAAE,wBAAwB;KAClC;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QACxD,OAAO,EAAE,sBAAsB;KAChC;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,aAAa;QAC1B,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QACxD,OAAO,EAAE,wBAAwB;KAClC;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,0BAA0B;QACvC,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC;QACxD,OAAO,EAAE,sBAAsB;KAChC;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,YAAY;QACzB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QACxD,OAAO,EAAE,WAAW;KACrB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,OAAO,EAAE,aAAa;KACvB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC;QACxD,OAAO,EAAE,eAAe;KACzB;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,+BAA+B;QAC5C,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;QACxC,OAAO,EAAE,gBAAgB;KAC1B;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,uBAAuB;QACpC,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,OAAO,EAAE,iBAAiB;KAC3B;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,sBAAsB;QACnC,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,OAAO,EAAE,eAAe;KACzB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -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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"}
|
package/dist/core/constants.d.ts
CHANGED
|
@@ -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-
|
|
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;
|
package/dist/core/constants.js
CHANGED
|
@@ -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,
|
|
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
|
-
* -
|
|
10
|
-
*
|
|
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,
|
|
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,
|
|
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
|
-
* -
|
|
10
|
-
*
|
|
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,
|
|
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
|
-
`
|
|
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
|
|
101
|
-
|
|
102
|
-
|
|
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":"AAAA;;;;;;;;;;;GAWG;
|
|
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,
|
|
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"}
|
package/dist/daemon/index.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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
|
-
|
|
79
|
+
void new SkillRegistry(skillApiKey);
|
|
77
80
|
if (skillApiKey) {
|
|
78
|
-
logger.info('[Skills]
|
|
81
|
+
logger.info('[Skills] Registry loaded with semantic matching support');
|
|
79
82
|
}
|
|
80
83
|
else {
|
|
81
|
-
logger.info('[Skills]
|
|
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 (
|
|
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
|
|
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),
|