@winspan/claude-forge 0.7.2 → 0.7.4
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/ai-gateway/index.d.ts.map +1 -1
- package/dist/ai-gateway/index.js +30 -9
- package/dist/ai-gateway/index.js.map +1 -1
- package/dist/ai-gateway/model-selector.d.ts +12 -0
- package/dist/ai-gateway/model-selector.d.ts.map +1 -1
- package/dist/ai-gateway/model-selector.js +20 -0
- package/dist/ai-gateway/model-selector.js.map +1 -1
- package/dist/autopilot/intent-engine.d.ts +0 -4
- package/dist/autopilot/intent-engine.d.ts.map +1 -1
- package/dist/autopilot/intent-engine.js +32 -102
- package/dist/autopilot/intent-engine.js.map +1 -1
- package/dist/autopilot/issue-tracker.d.ts +48 -0
- package/dist/autopilot/issue-tracker.d.ts.map +1 -0
- package/dist/autopilot/issue-tracker.js +94 -0
- package/dist/autopilot/issue-tracker.js.map +1 -0
- package/dist/autopilot/phase-gap-detector.d.ts +25 -0
- package/dist/autopilot/phase-gap-detector.d.ts.map +1 -0
- package/dist/autopilot/phase-gap-detector.js +80 -0
- package/dist/autopilot/phase-gap-detector.js.map +1 -0
- package/dist/autopilot/quality-gate.d.ts +22 -0
- package/dist/autopilot/quality-gate.d.ts.map +1 -1
- package/dist/autopilot/quality-gate.js +108 -25
- package/dist/autopilot/quality-gate.js.map +1 -1
- package/dist/autopilot/task-completion-detector.d.ts +32 -0
- package/dist/autopilot/task-completion-detector.d.ts.map +1 -0
- package/dist/autopilot/task-completion-detector.js +103 -0
- package/dist/autopilot/task-completion-detector.js.map +1 -0
- package/dist/cli/commands/pattern.d.ts.map +1 -1
- package/dist/cli/commands/pattern.js +44 -38
- package/dist/cli/commands/pattern.js.map +1 -1
- package/dist/daemon/engine-registry.js +1 -1
- package/dist/daemon/handlers/context-builder.d.ts +8 -7
- package/dist/daemon/handlers/context-builder.d.ts.map +1 -1
- package/dist/daemon/handlers/context-builder.js +16 -20
- package/dist/daemon/handlers/context-builder.js.map +1 -1
- package/dist/daemon/handlers/orchestration-context.d.ts +6 -9
- package/dist/daemon/handlers/orchestration-context.d.ts.map +1 -1
- package/dist/daemon/handlers/post-tool-use-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/post-tool-use-handler.js +12 -0
- package/dist/daemon/handlers/post-tool-use-handler.js.map +1 -1
- package/dist/daemon/handlers/stages/01-failure-signal.d.ts +1 -0
- package/dist/daemon/handlers/stages/01-failure-signal.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/01-failure-signal.js +2 -2
- package/dist/daemon/handlers/stages/01-failure-signal.js.map +1 -1
- package/dist/daemon/handlers/stages/02-active-intervention.d.ts +1 -0
- package/dist/daemon/handlers/stages/02-active-intervention.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/02-active-intervention.js +1 -0
- package/dist/daemon/handlers/stages/02-active-intervention.js.map +1 -1
- package/dist/daemon/handlers/stages/03-init-prompt.d.ts +1 -0
- package/dist/daemon/handlers/stages/03-init-prompt.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/03-init-prompt.js +2 -2
- package/dist/daemon/handlers/stages/03-init-prompt.js.map +1 -1
- package/dist/daemon/handlers/stages/04-skill-suggestions.d.ts +1 -0
- package/dist/daemon/handlers/stages/04-skill-suggestions.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/04-skill-suggestions.js +2 -1
- package/dist/daemon/handlers/stages/04-skill-suggestions.js.map +1 -1
- package/dist/daemon/handlers/stages/05-conv-config.d.ts +1 -0
- package/dist/daemon/handlers/stages/05-conv-config.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/05-conv-config.js +1 -0
- package/dist/daemon/handlers/stages/05-conv-config.js.map +1 -1
- package/dist/daemon/handlers/stages/06-engine-check.d.ts +1 -0
- package/dist/daemon/handlers/stages/06-engine-check.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/06-engine-check.js +1 -0
- package/dist/daemon/handlers/stages/06-engine-check.js.map +1 -1
- package/dist/daemon/handlers/stages/07-pipeline-reply.d.ts +1 -0
- package/dist/daemon/handlers/stages/07-pipeline-reply.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/07-pipeline-reply.js +1 -2
- package/dist/daemon/handlers/stages/07-pipeline-reply.js.map +1 -1
- package/dist/daemon/handlers/stages/08-esc-interrupt.d.ts +1 -0
- package/dist/daemon/handlers/stages/08-esc-interrupt.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/08-esc-interrupt.js +1 -0
- package/dist/daemon/handlers/stages/08-esc-interrupt.js.map +1 -1
- package/dist/daemon/handlers/stages/09-pipeline-active.d.ts +1 -0
- package/dist/daemon/handlers/stages/09-pipeline-active.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/09-pipeline-active.js +1 -0
- package/dist/daemon/handlers/stages/09-pipeline-active.js.map +1 -1
- package/dist/daemon/handlers/stages/10-cooldown.d.ts +1 -1
- package/dist/daemon/handlers/stages/10-cooldown.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/10-cooldown.js +1 -39
- package/dist/daemon/handlers/stages/10-cooldown.js.map +1 -1
- package/dist/daemon/handlers/stages/11-intent-analysis.d.ts +1 -0
- package/dist/daemon/handlers/stages/11-intent-analysis.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/11-intent-analysis.js +4 -3
- package/dist/daemon/handlers/stages/11-intent-analysis.js.map +1 -1
- package/dist/daemon/handlers/stages/12-strategy-advice.d.ts +1 -0
- package/dist/daemon/handlers/stages/12-strategy-advice.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/12-strategy-advice.js +1 -0
- package/dist/daemon/handlers/stages/12-strategy-advice.js.map +1 -1
- package/dist/daemon/handlers/stages/13-template-route.d.ts +1 -0
- package/dist/daemon/handlers/stages/13-template-route.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/13-template-route.js +1 -0
- package/dist/daemon/handlers/stages/13-template-route.js.map +1 -1
- package/dist/daemon/handlers/stages/14-plan-resume.d.ts +1 -0
- package/dist/daemon/handlers/stages/14-plan-resume.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/14-plan-resume.js +1 -0
- package/dist/daemon/handlers/stages/14-plan-resume.js.map +1 -1
- package/dist/daemon/handlers/stages/15-plan-enforcement.d.ts +1 -0
- package/dist/daemon/handlers/stages/15-plan-enforcement.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/15-plan-enforcement.js +1 -0
- package/dist/daemon/handlers/stages/15-plan-enforcement.js.map +1 -1
- package/dist/daemon/handlers/stages/16-intervention-level.d.ts +1 -0
- package/dist/daemon/handlers/stages/16-intervention-level.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/16-intervention-level.js +1 -0
- package/dist/daemon/handlers/stages/16-intervention-level.js.map +1 -1
- package/dist/daemon/handlers/stages/17-simple-task.d.ts +1 -0
- package/dist/daemon/handlers/stages/17-simple-task.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/17-simple-task.js +2 -1
- package/dist/daemon/handlers/stages/17-simple-task.js.map +1 -1
- package/dist/daemon/handlers/stages/18-complex-task.d.ts +1 -0
- package/dist/daemon/handlers/stages/18-complex-task.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/18-complex-task.js +4 -4
- package/dist/daemon/handlers/stages/18-complex-task.js.map +1 -1
- package/dist/daemon/handlers/stages/19-moderate-task.d.ts +1 -0
- package/dist/daemon/handlers/stages/19-moderate-task.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/19-moderate-task.js +3 -2
- package/dist/daemon/handlers/stages/19-moderate-task.js.map +1 -1
- package/dist/daemon/handlers/stages/stage-interface.d.ts +3 -0
- package/dist/daemon/handlers/stages/stage-interface.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/stage-scheduler.d.ts +27 -0
- package/dist/daemon/handlers/stages/stage-scheduler.d.ts.map +1 -0
- package/dist/daemon/handlers/stages/stage-scheduler.js +105 -0
- package/dist/daemon/handlers/stages/stage-scheduler.js.map +1 -0
- package/dist/daemon/handlers/user-prompt-handler.d.ts +3 -12
- package/dist/daemon/handlers/user-prompt-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/user-prompt-handler.js +73 -94
- package/dist/daemon/handlers/user-prompt-handler.js.map +1 -1
- package/dist/pipeline/index.d.ts +1 -5
- package/dist/pipeline/index.d.ts.map +1 -1
- package/dist/pipeline/index.js +29 -25
- package/dist/pipeline/index.js.map +1 -1
- package/dist/{pattern-engine/types.d.ts → pipeline/pattern-types.d.ts} +1 -1
- package/dist/pipeline/pattern-types.d.ts.map +1 -0
- package/dist/{pattern-engine/types.js → pipeline/pattern-types.js} +1 -1
- package/dist/pipeline/pattern-types.js.map +1 -0
- package/dist/pipeline/phase-manager.d.ts +6 -1
- package/dist/pipeline/phase-manager.d.ts.map +1 -1
- package/dist/pipeline/phase-manager.js +68 -38
- package/dist/pipeline/phase-manager.js.map +1 -1
- package/dist/pipeline/report-generator.d.ts +20 -0
- package/dist/pipeline/report-generator.d.ts.map +1 -0
- package/dist/pipeline/report-generator.js +123 -0
- package/dist/pipeline/report-generator.js.map +1 -0
- package/dist/prompts/intent-analysis.md +62 -0
- package/dist/prompts/registry.d.ts +17 -0
- package/dist/prompts/registry.d.ts.map +1 -0
- package/dist/prompts/registry.js +40 -0
- package/dist/prompts/registry.js.map +1 -0
- package/dist/skill-registry/evolver/index.d.ts +1 -1
- package/dist/skill-registry/evolver/index.d.ts.map +1 -1
- package/dist/{pattern-engine → skill-registry}/pattern-evolver.d.ts +6 -2
- package/dist/skill-registry/pattern-evolver.d.ts.map +1 -0
- package/dist/{pattern-engine → skill-registry}/pattern-evolver.js +30 -6
- package/dist/skill-registry/pattern-evolver.js.map +1 -0
- package/dist/storage/repositories/distill-repository.d.ts +2 -1
- package/dist/storage/repositories/distill-repository.d.ts.map +1 -1
- package/dist/storage/repositories/distill-repository.js +6 -0
- package/dist/storage/repositories/distill-repository.js.map +1 -1
- package/dist/storage/sqlite.d.ts +96 -157
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +123 -896
- package/dist/storage/sqlite.js.map +1 -1
- package/package.json +2 -2
- package/dist/daemon/engine-registry/init-pattern-engine.d.ts +0 -9
- package/dist/daemon/engine-registry/init-pattern-engine.d.ts.map +0 -1
- package/dist/daemon/engine-registry/init-pattern-engine.js +0 -22
- package/dist/daemon/engine-registry/init-pattern-engine.js.map +0 -1
- package/dist/pattern-engine/convention-pattern-generator.d.ts +0 -14
- package/dist/pattern-engine/convention-pattern-generator.d.ts.map +0 -1
- package/dist/pattern-engine/convention-pattern-generator.js +0 -120
- package/dist/pattern-engine/convention-pattern-generator.js.map +0 -1
- package/dist/pattern-engine/execution-tracker.d.ts +0 -45
- package/dist/pattern-engine/execution-tracker.d.ts.map +0 -1
- package/dist/pattern-engine/execution-tracker.js +0 -136
- package/dist/pattern-engine/execution-tracker.js.map +0 -1
- package/dist/pattern-engine/index.d.ts +0 -75
- package/dist/pattern-engine/index.d.ts.map +0 -1
- package/dist/pattern-engine/index.js +0 -247
- package/dist/pattern-engine/index.js.map +0 -1
- package/dist/pattern-engine/pattern-evolver.d.ts.map +0 -1
- package/dist/pattern-engine/pattern-evolver.js.map +0 -1
- package/dist/pattern-engine/pattern-executor.d.ts +0 -43
- package/dist/pattern-engine/pattern-executor.d.ts.map +0 -1
- package/dist/pattern-engine/pattern-executor.js +0 -228
- package/dist/pattern-engine/pattern-executor.js.map +0 -1
- package/dist/pattern-engine/pattern-loader.d.ts +0 -14
- package/dist/pattern-engine/pattern-loader.d.ts.map +0 -1
- package/dist/pattern-engine/pattern-loader.js +0 -111
- package/dist/pattern-engine/pattern-loader.js.map +0 -1
- package/dist/pattern-engine/pattern-router.d.ts +0 -31
- package/dist/pattern-engine/pattern-router.d.ts.map +0 -1
- package/dist/pattern-engine/pattern-router.js +0 -160
- package/dist/pattern-engine/pattern-router.js.map +0 -1
- package/dist/pattern-engine/types.d.ts.map +0 -1
- package/dist/pattern-engine/types.js.map +0 -1
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import os from 'os';
|
|
4
|
-
import yaml from 'js-yaml';
|
|
5
|
-
import { z } from 'zod';
|
|
6
|
-
import { logger } from '../utils/logger.js';
|
|
7
|
-
const PATTERNS_DIR = path.join(os.homedir(), '.claude-forge', 'patterns');
|
|
8
|
-
// ── Zod 校验 Schema ──────────────────────────────────────────────────
|
|
9
|
-
const CompletionSignalSchema = z.object({
|
|
10
|
-
tool_used: z.string().optional(),
|
|
11
|
-
file_pattern: z.string().optional(),
|
|
12
|
-
});
|
|
13
|
-
const PhaseGateSchema = z.object({
|
|
14
|
-
command: z.string(),
|
|
15
|
-
must_pass: z.boolean(),
|
|
16
|
-
});
|
|
17
|
-
const PatternPhaseSchema = z.object({
|
|
18
|
-
id: z.string(),
|
|
19
|
-
name: z.string(),
|
|
20
|
-
agent_role: z.string(),
|
|
21
|
-
prompt_template: z.string(),
|
|
22
|
-
tools_allowed: z.array(z.string()).default([]),
|
|
23
|
-
depends_on: z.array(z.string()).default([]),
|
|
24
|
-
output_key: z.string().optional(),
|
|
25
|
-
completion_signal: CompletionSignalSchema.optional(),
|
|
26
|
-
gate: PhaseGateSchema.optional(),
|
|
27
|
-
invoke_skill: z.string().optional(),
|
|
28
|
-
});
|
|
29
|
-
const PatternTriggerSchema = z.object({
|
|
30
|
-
intent_patterns: z.array(z.string()).min(1),
|
|
31
|
-
complexity: z.array(z.enum(['simple', 'moderate', 'complex'])).optional(),
|
|
32
|
-
keywords: z.array(z.string()).optional(),
|
|
33
|
-
});
|
|
34
|
-
const PatternEvolutionSchema = z.object({
|
|
35
|
-
track_metrics: z.array(z.string()).default([]),
|
|
36
|
-
auto_optimize: z.boolean().default(true),
|
|
37
|
-
optimize_interval_days: z.number().int().positive().default(7),
|
|
38
|
-
});
|
|
39
|
-
const PatternSchema = z.object({
|
|
40
|
-
id: z.string(),
|
|
41
|
-
name: z.string(),
|
|
42
|
-
version: z.string(),
|
|
43
|
-
description: z.string(),
|
|
44
|
-
source: z.enum(['official', 'user', 'generated']).default('user'),
|
|
45
|
-
trigger: PatternTriggerSchema,
|
|
46
|
-
phases: z.array(PatternPhaseSchema).min(1),
|
|
47
|
-
evolution: PatternEvolutionSchema.optional(),
|
|
48
|
-
});
|
|
49
|
-
// ── PatternLoader ────────────────────────────────────────────────────
|
|
50
|
-
export class PatternLoader {
|
|
51
|
-
patternsDir;
|
|
52
|
-
constructor(patternsDir = PATTERNS_DIR) {
|
|
53
|
-
this.patternsDir = patternsDir;
|
|
54
|
-
}
|
|
55
|
-
/** 加载目录下所有 .yaml/.yml Pattern 文件 */
|
|
56
|
-
loadAll() {
|
|
57
|
-
if (!fs.existsSync(this.patternsDir)) {
|
|
58
|
-
logger.debug(`工作流模板目录不存在,跳过:${this.patternsDir}`);
|
|
59
|
-
return [];
|
|
60
|
-
}
|
|
61
|
-
const files = fs.readdirSync(this.patternsDir).filter((f) => f.endsWith('.yaml') || f.endsWith('.yml'));
|
|
62
|
-
const patterns = [];
|
|
63
|
-
for (const file of files) {
|
|
64
|
-
const filePath = path.join(this.patternsDir, file);
|
|
65
|
-
const pattern = this.loadFile(filePath);
|
|
66
|
-
if (pattern) {
|
|
67
|
-
patterns.push(pattern);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
logger.info(`已加载 ${patterns.length} 个工作流模板`);
|
|
71
|
-
return patterns;
|
|
72
|
-
}
|
|
73
|
-
/** 加载并验证单个 Pattern 文件 */
|
|
74
|
-
loadFile(filePath) {
|
|
75
|
-
try {
|
|
76
|
-
const content = fs.readFileSync(filePath, 'utf-8');
|
|
77
|
-
const raw = yaml.load(content);
|
|
78
|
-
const result = PatternSchema.safeParse(raw);
|
|
79
|
-
if (!result.success) {
|
|
80
|
-
logger.warn(`工作流模板校验失败 ${filePath}:${result.error.message}`);
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
|
-
const pattern = {
|
|
84
|
-
...result.data,
|
|
85
|
-
filePath,
|
|
86
|
-
};
|
|
87
|
-
return pattern;
|
|
88
|
-
}
|
|
89
|
-
catch (err) {
|
|
90
|
-
logger.warn(`工作流模板解析失败 ${filePath}:${err}`);
|
|
91
|
-
return null;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
/** 将 Pattern 写回 YAML 文件(供 PatternEvolver 调用) */
|
|
95
|
-
savePattern(pattern) {
|
|
96
|
-
if (!fs.existsSync(this.patternsDir)) {
|
|
97
|
-
fs.mkdirSync(this.patternsDir, { recursive: true });
|
|
98
|
-
}
|
|
99
|
-
const filePath = pattern.filePath || path.join(this.patternsDir, `${pattern.id}.yaml`);
|
|
100
|
-
// 序列化时去掉运行时字段
|
|
101
|
-
const { filePath: _fp, ...serializable } = pattern;
|
|
102
|
-
const content = yaml.dump(serializable, { lineWidth: 100, noRefs: true });
|
|
103
|
-
fs.writeFileSync(filePath, content, 'utf-8');
|
|
104
|
-
logger.info(`已保存工作流模板 ${pattern.id} v${pattern.version}`);
|
|
105
|
-
}
|
|
106
|
-
/** 返回 patterns 目录路径 */
|
|
107
|
-
getPatternsDir() {
|
|
108
|
-
return this.patternsDir;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
//# sourceMappingURL=pattern-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pattern-loader.js","sourceRoot":"","sources":["../../src/pattern-engine/pattern-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { AIProvider } from '../ai-provider/types.js';
|
|
2
|
-
import type { Pattern, RouteResult } from './types.js';
|
|
3
|
-
/**
|
|
4
|
-
* PatternRouter:用 AI 语义匹配将用户意图路由到合适的 Pattern。
|
|
5
|
-
* 2s 超时后自动降级到关键词匹配,保证响应速度。
|
|
6
|
-
*/
|
|
7
|
-
export declare class PatternRouter {
|
|
8
|
-
private api;
|
|
9
|
-
private patterns;
|
|
10
|
-
/** 路由结果缓存:避免相似输入重复调用 AI */
|
|
11
|
-
private routeCache;
|
|
12
|
-
constructor(api: AIProvider);
|
|
13
|
-
/** 更新可用 Pattern 列表(由 PatternEngine 调用) */
|
|
14
|
-
setPatterns(patterns: Pattern[]): void;
|
|
15
|
-
/**
|
|
16
|
-
* 路由入口:先尝试 AI 语义匹配,超时或失败则降级到关键词匹配。
|
|
17
|
-
* @param userInput 用户原始输入
|
|
18
|
-
* @param complexity 意图复杂度(由 IntentEngine 提供)
|
|
19
|
-
*/
|
|
20
|
-
route(userInput: string, complexity?: 'simple' | 'moderate' | 'complex'): Promise<RouteResult>;
|
|
21
|
-
/** AI 语义匹配(2s 超时) */
|
|
22
|
-
private routeWithAI;
|
|
23
|
-
/**
|
|
24
|
-
* 返回所有关键词匹配置信度 >= 0.5 的候选 Pattern(供多臂老虎机使用)。
|
|
25
|
-
* 结果按置信度降序排列。
|
|
26
|
-
*/
|
|
27
|
-
routeAllCandidates(userInput: string, complexity?: string): RouteResult[];
|
|
28
|
-
/** 关键词兜底匹配 */
|
|
29
|
-
private routeWithKeywords;
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=pattern-router.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pattern-router.d.ts","sourceRoot":"","sources":["../../src/pattern-engine/pattern-router.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKvD;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,QAAQ,CAAiB;IACjC,2BAA2B;IAC3B,OAAO,CAAC,UAAU,CAAgE;gBAEtE,GAAG,EAAE,UAAU;IAI3B,0CAA0C;IAC1C,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAKtC;;;;OAIG;IACG,KAAK,CACT,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GAC7C,OAAO,CAAC,WAAW,CAAC;IAqCvB,qBAAqB;YACP,WAAW;IA6DzB;;;OAGG;IACH,kBAAkB,CAChB,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,WAAW,EAAE;IA+BhB,cAAc;IACd,OAAO,CAAC,iBAAiB;CAY1B"}
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import { logger } from '../utils/logger.js';
|
|
2
|
-
const ROUTE_TIMEOUT_MS = 60_000; // 60s timeout(允许复杂语义匹配)
|
|
3
|
-
const ROUTE_CACHE_TTL_MS = 5 * 60 * 1000; // 5min 路由结果缓存
|
|
4
|
-
/**
|
|
5
|
-
* PatternRouter:用 AI 语义匹配将用户意图路由到合适的 Pattern。
|
|
6
|
-
* 2s 超时后自动降级到关键词匹配,保证响应速度。
|
|
7
|
-
*/
|
|
8
|
-
export class PatternRouter {
|
|
9
|
-
api;
|
|
10
|
-
patterns = [];
|
|
11
|
-
/** 路由结果缓存:避免相似输入重复调用 AI */
|
|
12
|
-
routeCache = new Map();
|
|
13
|
-
constructor(api) {
|
|
14
|
-
this.api = api;
|
|
15
|
-
}
|
|
16
|
-
/** 更新可用 Pattern 列表(由 PatternEngine 调用) */
|
|
17
|
-
setPatterns(patterns) {
|
|
18
|
-
this.patterns = patterns;
|
|
19
|
-
this.routeCache.clear(); // Pattern 列表变更时清空缓存
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* 路由入口:先尝试 AI 语义匹配,超时或失败则降级到关键词匹配。
|
|
23
|
-
* @param userInput 用户原始输入
|
|
24
|
-
* @param complexity 意图复杂度(由 IntentEngine 提供)
|
|
25
|
-
*/
|
|
26
|
-
async route(userInput, complexity) {
|
|
27
|
-
if (this.patterns.length === 0) {
|
|
28
|
-
return { pattern: null, confidence: 0, method: 'fallback' };
|
|
29
|
-
}
|
|
30
|
-
// 缓存检查:相同输入 5 分钟内直接返回
|
|
31
|
-
const cacheKey = `${userInput.slice(0, 100)}|${complexity ?? ''}`;
|
|
32
|
-
const cached = this.routeCache.get(cacheKey);
|
|
33
|
-
if (cached && Date.now() < cached.expireAt) {
|
|
34
|
-
logger.info(`工作流路由缓存命中:${cached.result.pattern?.id ?? '无匹配'}`);
|
|
35
|
-
return cached.result;
|
|
36
|
-
}
|
|
37
|
-
// 先尝试 AI 匹配(带超时)
|
|
38
|
-
let result;
|
|
39
|
-
try {
|
|
40
|
-
const aiResult = await this.routeWithAI(userInput, complexity);
|
|
41
|
-
if (aiResult.pattern) {
|
|
42
|
-
result = aiResult;
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
result = this.routeWithKeywords(userInput, complexity);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
catch (err) {
|
|
49
|
-
logger.info(`AI 匹配失败,降级到关键词匹配:${err}`);
|
|
50
|
-
result = this.routeWithKeywords(userInput, complexity);
|
|
51
|
-
}
|
|
52
|
-
// 写入缓存
|
|
53
|
-
this.routeCache.set(cacheKey, { result, expireAt: Date.now() + ROUTE_CACHE_TTL_MS });
|
|
54
|
-
// 清理过期缓存
|
|
55
|
-
for (const [k, v] of this.routeCache) {
|
|
56
|
-
if (Date.now() >= v.expireAt)
|
|
57
|
-
this.routeCache.delete(k);
|
|
58
|
-
}
|
|
59
|
-
return result;
|
|
60
|
-
}
|
|
61
|
-
/** AI 语义匹配(2s 超时) */
|
|
62
|
-
async routeWithAI(userInput, complexity) {
|
|
63
|
-
const patternList = this.patterns
|
|
64
|
-
.map((p) => `- id: ${p.id}\n name: ${p.name}\n description: ${p.description}\n intent_patterns: ${p.trigger.intent_patterns.join(' / ')}`)
|
|
65
|
-
.join('\n');
|
|
66
|
-
const prompt = `你是一个任务路由专家,根据用户输入匹配最合适的工作流 Pattern。
|
|
67
|
-
|
|
68
|
-
## 用户输入
|
|
69
|
-
${userInput}
|
|
70
|
-
${complexity ? `\n## 任务复杂度\n${complexity}` : ''}
|
|
71
|
-
|
|
72
|
-
## 可用 Pattern 列表
|
|
73
|
-
${patternList}
|
|
74
|
-
|
|
75
|
-
## 任务
|
|
76
|
-
选择最匹配的 Pattern。如果没有任何 Pattern 明显符合,输出 NONE。
|
|
77
|
-
|
|
78
|
-
## 输出格式(严格 JSON,无其他文字)
|
|
79
|
-
{ "id": "pattern-id", "confidence": 0.85 }
|
|
80
|
-
或
|
|
81
|
-
{ "id": "NONE", "confidence": 0 }`;
|
|
82
|
-
let timeoutHandle = null;
|
|
83
|
-
try {
|
|
84
|
-
const timeoutPromise = new Promise((_, reject) => {
|
|
85
|
-
timeoutHandle = setTimeout(() => reject(new Error('AI 路由超时')), ROUTE_TIMEOUT_MS);
|
|
86
|
-
});
|
|
87
|
-
const apiPromise = this.api.complete(prompt, 'pattern-router', { retries: 0 });
|
|
88
|
-
const response = await Promise.race([apiPromise, timeoutPromise]);
|
|
89
|
-
if (timeoutHandle)
|
|
90
|
-
clearTimeout(timeoutHandle);
|
|
91
|
-
const jsonMatch = response.match(/\{[\s\S]*\}/);
|
|
92
|
-
if (!jsonMatch)
|
|
93
|
-
return { pattern: null, confidence: 0, method: 'ai' };
|
|
94
|
-
const parsed = JSON.parse(jsonMatch[0]);
|
|
95
|
-
if (parsed.id === 'NONE' || !parsed.id) {
|
|
96
|
-
return { pattern: null, confidence: 0, method: 'ai' };
|
|
97
|
-
}
|
|
98
|
-
const matched = this.patterns.find((p) => p.id === parsed.id);
|
|
99
|
-
if (!matched)
|
|
100
|
-
return { pattern: null, confidence: 0, method: 'ai' };
|
|
101
|
-
// 复杂度过滤:如果 Pattern 指定了复杂度范围,检查是否兼容
|
|
102
|
-
if (complexity && matched.trigger.complexity && matched.trigger.complexity.length > 0) {
|
|
103
|
-
if (!matched.trigger.complexity.includes(complexity)) {
|
|
104
|
-
logger.info(`工作流模板 ${matched.id} 不适用于当前任务复杂度(${complexity}),跳过`);
|
|
105
|
-
return { pattern: null, confidence: 0, method: 'ai' };
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
logger.info(`AI 匹配成功:${matched.id}(置信度 ${parsed.confidence})`);
|
|
109
|
-
return { pattern: matched, confidence: parsed.confidence, method: 'ai' };
|
|
110
|
-
}
|
|
111
|
-
catch (err) {
|
|
112
|
-
if (timeoutHandle)
|
|
113
|
-
clearTimeout(timeoutHandle);
|
|
114
|
-
throw err;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* 返回所有关键词匹配置信度 >= 0.5 的候选 Pattern(供多臂老虎机使用)。
|
|
119
|
-
* 结果按置信度降序排列。
|
|
120
|
-
*/
|
|
121
|
-
routeAllCandidates(userInput, complexity) {
|
|
122
|
-
const input = userInput.toLowerCase();
|
|
123
|
-
const candidates = [];
|
|
124
|
-
for (const pattern of this.patterns) {
|
|
125
|
-
if (complexity && pattern.trigger.complexity && pattern.trigger.complexity.length > 0) {
|
|
126
|
-
if (!pattern.trigger.complexity.includes(complexity)) {
|
|
127
|
-
continue;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
let score = 0;
|
|
131
|
-
for (const kw of (pattern.trigger.keywords ?? [])) {
|
|
132
|
-
if (input.includes(kw.toLowerCase()))
|
|
133
|
-
score++;
|
|
134
|
-
}
|
|
135
|
-
for (const intentPattern of pattern.trigger.intent_patterns) {
|
|
136
|
-
const words = intentPattern.split(/[\s,,、]+/).filter((w) => w.length > 1);
|
|
137
|
-
for (const word of words) {
|
|
138
|
-
if (input.includes(word.toLowerCase()))
|
|
139
|
-
score += 0.5;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
const confidence = Math.min(score / 3, 1);
|
|
143
|
-
if (confidence >= 0.5) {
|
|
144
|
-
candidates.push({ pattern, confidence, method: 'keyword' });
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
return candidates.sort((a, b) => b.confidence - a.confidence);
|
|
148
|
-
}
|
|
149
|
-
/** 关键词兜底匹配 */
|
|
150
|
-
routeWithKeywords(userInput, complexity) {
|
|
151
|
-
const candidates = this.routeAllCandidates(userInput, complexity);
|
|
152
|
-
if (candidates.length > 0) {
|
|
153
|
-
const best = candidates[0];
|
|
154
|
-
logger.info(`关键词匹配成功:${best.pattern.id}(得分 ${best.confidence.toFixed(2)})`);
|
|
155
|
-
return best;
|
|
156
|
-
}
|
|
157
|
-
return { pattern: null, confidence: 0, method: 'fallback' };
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
//# sourceMappingURL=pattern-router.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pattern-router.js","sourceRoot":"","sources":["../../src/pattern-engine/pattern-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pattern-engine/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/pattern-engine/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|