@winspan/claude-forge 1.93.1 → 1.94.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.
- package/README.md +1 -1
- package/dist/autopilot/intent-engine.d.ts +1 -10
- package/dist/autopilot/intent-engine.d.ts.map +1 -1
- package/dist/autopilot/intent-engine.js +3 -18
- package/dist/autopilot/intent-engine.js.map +1 -1
- package/dist/cli/index.js +0 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/daemon/context-injector.d.ts +0 -1
- package/dist/daemon/context-injector.d.ts.map +1 -1
- package/dist/daemon/context-injector.js +0 -1
- package/dist/daemon/context-injector.js.map +1 -1
- package/dist/daemon/engine-registry.d.ts.map +1 -1
- package/dist/daemon/engine-registry.js +1 -4
- package/dist/daemon/engine-registry.js.map +1 -1
- package/dist/daemon/handler-context.d.ts +2 -4
- package/dist/daemon/handler-context.d.ts.map +1 -1
- package/dist/daemon/handlers/context-builder.d.ts +0 -13
- package/dist/daemon/handlers/context-builder.d.ts.map +1 -1
- package/dist/daemon/handlers/context-builder.js +0 -65
- package/dist/daemon/handlers/context-builder.js.map +1 -1
- package/dist/daemon/handlers/orchestration-context.d.ts +0 -2
- package/dist/daemon/handlers/orchestration-context.d.ts.map +1 -1
- package/dist/daemon/handlers/session-cleanup.d.ts +0 -4
- package/dist/daemon/handlers/session-cleanup.d.ts.map +1 -1
- package/dist/daemon/handlers/session-cleanup.js +0 -25
- package/dist/daemon/handlers/session-cleanup.js.map +1 -1
- package/dist/daemon/handlers/stages/07-pipeline-reply.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/07-pipeline-reply.js +1 -3
- package/dist/daemon/handlers/stages/07-pipeline-reply.js.map +1 -1
- package/dist/daemon/handlers/stages/11-intent-analysis.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/11-intent-analysis.js +1 -3
- package/dist/daemon/handlers/stages/11-intent-analysis.js.map +1 -1
- package/dist/daemon/handlers/stages/17-simple-task.d.ts +1 -1
- package/dist/daemon/handlers/stages/17-simple-task.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/17-simple-task.js +3 -5
- package/dist/daemon/handlers/stages/17-simple-task.js.map +1 -1
- package/dist/daemon/handlers/stages/18-complex-task.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/18-complex-task.js +5 -6
- package/dist/daemon/handlers/stages/18-complex-task.js.map +1 -1
- package/dist/daemon/handlers/stages/19-moderate-task.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/19-moderate-task.js +2 -4
- package/dist/daemon/handlers/stages/19-moderate-task.js.map +1 -1
- package/dist/daemon/handlers/stop-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/stop-handler.js +0 -7
- package/dist/daemon/handlers/stop-handler.js.map +1 -1
- package/dist/daemon/handlers/user-prompt-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/user-prompt-handler.js +1 -3
- package/dist/daemon/handlers/user-prompt-handler.js.map +1 -1
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +0 -5
- package/dist/daemon/index.js.map +1 -1
- package/dist/pipeline/index.d.ts.map +1 -1
- package/dist/pipeline/index.js +4 -0
- package/dist/pipeline/index.js.map +1 -1
- package/dist/prompts/intent-analysis.md +1 -1
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +139 -110
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/utils/formatter.d.ts +0 -9
- package/dist/utils/formatter.d.ts.map +1 -1
- package/dist/utils/formatter.js +0 -19
- package/dist/utils/formatter.js.map +1 -1
- package/dist/web-static/assets/{index-DDV8VuFt.js → index-BIPofwYQ.js} +1 -1
- package/dist/web-static/index.html +1 -1
- package/package.json +1 -1
- package/dist/cli/commands/profile.d.ts +0 -3
- package/dist/cli/commands/profile.d.ts.map +0 -1
- package/dist/cli/commands/profile.js +0 -213
- package/dist/cli/commands/profile.js.map +0 -1
- package/dist/daemon/engine-registry/init-profile.d.ts +0 -3
- package/dist/daemon/engine-registry/init-profile.d.ts.map +0 -1
- package/dist/daemon/engine-registry/init-profile.js +0 -28
- package/dist/daemon/engine-registry/init-profile.js.map +0 -1
- package/dist/daemon/handlers/stages/16-intervention-level.d.ts +0 -9
- package/dist/daemon/handlers/stages/16-intervention-level.d.ts.map +0 -1
- package/dist/daemon/handlers/stages/16-intervention-level.js +0 -25
- package/dist/daemon/handlers/stages/16-intervention-level.js.map +0 -1
- package/dist/profile/index.d.ts +0 -73
- package/dist/profile/index.d.ts.map +0 -1
- package/dist/profile/index.js +0 -397
- package/dist/profile/index.js.map +0 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>Claude Forge - 管理后台</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-BIPofwYQ.js"></script>
|
|
8
8
|
<link rel="stylesheet" crossorigin href="/assets/index-80ChCYXd.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuCpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6L7D"}
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
import readline from 'readline';
|
|
2
|
-
import { info, success, warning } from '../utils/output.js';
|
|
3
|
-
import { handleError } from '../utils/errors.js';
|
|
4
|
-
import { ProfileManager } from '../../profile/index.js';
|
|
5
|
-
import { ConfigManager } from '../../config/index.js';
|
|
6
|
-
import { createRequiredApi } from '../../utils/claude-api.js';
|
|
7
|
-
function ask(rl, question) {
|
|
8
|
-
return new Promise(resolve => rl.question(question, resolve));
|
|
9
|
-
}
|
|
10
|
-
async function runQuestionnaire() {
|
|
11
|
-
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
12
|
-
const updates = {};
|
|
13
|
-
try {
|
|
14
|
-
console.log('\n欢迎使用 Claude Forge!请回答 3 个简短问题来初始化你的画像:\n');
|
|
15
|
-
// Q1: 角色
|
|
16
|
-
const role = (await ask(rl, '1. 你的角色是什么?(developer/architect/devops/other) [developer]: ')).trim() || 'developer';
|
|
17
|
-
updates.role = role;
|
|
18
|
-
// Q2: 经验水平
|
|
19
|
-
const levelInput = (await ask(rl, '2. 你的经验水平?(junior/mid/senior/expert) [mid]: ')).trim() || 'mid';
|
|
20
|
-
const validLevels = ['junior', 'mid', 'senior', 'expert'];
|
|
21
|
-
updates.experience_level = validLevels.includes(levelInput) ? levelInput : 'mid';
|
|
22
|
-
// Q3: 工作方式
|
|
23
|
-
const styleInput = (await ask(rl, '3. 你偏好的工作方式?\n guided=引导式(推荐新手)\n balanced=平衡式\n autonomous=自主式(推荐专家)\n [guided]: ')).trim() || 'guided';
|
|
24
|
-
const validStyles = ['guided', 'balanced', 'autonomous'];
|
|
25
|
-
updates.work_style = validStyles.includes(styleInput) ? styleInput : 'guided';
|
|
26
|
-
}
|
|
27
|
-
finally {
|
|
28
|
-
rl.close();
|
|
29
|
-
}
|
|
30
|
-
return updates;
|
|
31
|
-
}
|
|
32
|
-
export function registerProfileCommand(program) {
|
|
33
|
-
const profile = program
|
|
34
|
-
.command('profile')
|
|
35
|
-
.description('管理用户画像(F6: 自适应干预深度)');
|
|
36
|
-
profile
|
|
37
|
-
.command('show')
|
|
38
|
-
.description('显示当前用户画像')
|
|
39
|
-
.action(() => {
|
|
40
|
-
try {
|
|
41
|
-
const mgr = new ProfileManager();
|
|
42
|
-
const p = mgr.get();
|
|
43
|
-
info('用户画像:\n');
|
|
44
|
-
console.log(` 角色: ${p.role}`);
|
|
45
|
-
console.log(` 经验水平: ${p.experience_level}`);
|
|
46
|
-
console.log(` 技术栈: ${p.tech_stack.length > 0 ? p.tech_stack.join(', ') : '(未设置)'}`);
|
|
47
|
-
console.log(` 工作方式: ${p.work_style}`);
|
|
48
|
-
console.log(` 跳过率: ${(p.skip_rate * 100).toFixed(0)}%`);
|
|
49
|
-
console.log(` 覆盖率: ${(p.override_rate * 100).toFixed(0)}%`);
|
|
50
|
-
console.log(` 会话次数: ${p.session_count}`);
|
|
51
|
-
console.log(` 最后更新: ${p.last_updated}`);
|
|
52
|
-
console.log(` 状态: ${p.initialized ? '已初始化' : p.inferred ? '已自动推断(未完整初始化)' : '未初始化'}`);
|
|
53
|
-
if (!p.initialized) {
|
|
54
|
-
if (p.inferred) {
|
|
55
|
-
warning('\n画像已由 daemon 自动推断,运行 `claude-forge profile init` 可精细化配置');
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
warning('\n画像尚未初始化,运行 `claude-forge profile init` 完成冷启动');
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
catch (err) {
|
|
63
|
-
handleError(err);
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
profile
|
|
67
|
-
.command('init')
|
|
68
|
-
.description('初始化用户画像(冷启动)')
|
|
69
|
-
.option('--role <role>', '你的角色(如 developer、architect、devops)')
|
|
70
|
-
.option('--level <level>', '经验水平:junior/mid/senior/expert')
|
|
71
|
-
.option('--style <style>', '工作方式:guided/balanced/autonomous')
|
|
72
|
-
.option('--stack <stack>', '技术栈(逗号分隔,例如 TypeScript,React)')
|
|
73
|
-
.option('--infer', '从已有 ~/.claude/ 数据自动推断')
|
|
74
|
-
.action(async (options) => {
|
|
75
|
-
try {
|
|
76
|
-
const mgr = new ProfileManager();
|
|
77
|
-
let updates = {};
|
|
78
|
-
const hasFlags = options.infer || options.role || options.level || options.style || options.stack;
|
|
79
|
-
if (!hasFlags) {
|
|
80
|
-
// 无参数时运行交互式问卷(冷启动三合一)
|
|
81
|
-
info('从已有 ~/.claude/ 数据推断画像...');
|
|
82
|
-
const inferred = await mgr.inferFromExistingData();
|
|
83
|
-
if (Object.keys(inferred).length > 0) {
|
|
84
|
-
info(`推断结果: ${JSON.stringify(inferred)}`);
|
|
85
|
-
updates = { ...inferred };
|
|
86
|
-
}
|
|
87
|
-
const answers = await runQuestionnaire();
|
|
88
|
-
updates = { ...updates, ...answers };
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
if (options.infer) {
|
|
92
|
-
info('从已有 ~/.claude/ 数据推断画像...');
|
|
93
|
-
const inferred = await mgr.inferFromExistingData();
|
|
94
|
-
updates = { ...inferred };
|
|
95
|
-
if (Object.keys(inferred).length > 0) {
|
|
96
|
-
info(`推断结果: ${JSON.stringify(inferred)}`);
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
info('未能推断出有效数据,使用默认值');
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
if (options.role)
|
|
103
|
-
updates.role = options.role;
|
|
104
|
-
if (options.level) {
|
|
105
|
-
const valid = ['junior', 'mid', 'senior', 'expert'];
|
|
106
|
-
if (!valid.includes(options.level)) {
|
|
107
|
-
warning(`无效的经验水平: ${options.level},有效值: ${valid.join('/')}`);
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
updates.experience_level = options.level;
|
|
111
|
-
}
|
|
112
|
-
if (options.style) {
|
|
113
|
-
const valid = ['guided', 'balanced', 'autonomous'];
|
|
114
|
-
if (!valid.includes(options.style)) {
|
|
115
|
-
warning(`无效的工作方式: ${options.style},有效值: ${valid.join('/')}`);
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
updates.work_style = options.style;
|
|
119
|
-
}
|
|
120
|
-
if (options.stack) {
|
|
121
|
-
updates.tech_stack = options.stack.split(',').map((s) => s.trim()).filter(Boolean);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
mgr.save({ ...updates, initialized: true, inferred: false });
|
|
125
|
-
success('用户画像已初始化');
|
|
126
|
-
const p = mgr.get();
|
|
127
|
-
info(` 经验水平: ${p.experience_level} | 工作方式: ${p.work_style}`);
|
|
128
|
-
info('守护进程将根据此画像自动调整干预深度');
|
|
129
|
-
}
|
|
130
|
-
catch (err) {
|
|
131
|
-
handleError(err);
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
profile
|
|
135
|
-
.command('set')
|
|
136
|
-
.description('更新指定画像字段')
|
|
137
|
-
.option('--role <role>', '你的角色')
|
|
138
|
-
.option('--level <level>', '经验水平:junior/mid/senior/expert')
|
|
139
|
-
.option('--style <style>', '工作方式:guided/balanced/autonomous')
|
|
140
|
-
.option('--stack <stack>', '技术栈(逗号分隔)')
|
|
141
|
-
.action((options) => {
|
|
142
|
-
try {
|
|
143
|
-
const mgr = new ProfileManager();
|
|
144
|
-
const updates = {};
|
|
145
|
-
if (options.role)
|
|
146
|
-
updates.role = options.role;
|
|
147
|
-
if (options.level)
|
|
148
|
-
updates.experience_level = options.level;
|
|
149
|
-
if (options.style)
|
|
150
|
-
updates.work_style = options.style;
|
|
151
|
-
if (options.stack) {
|
|
152
|
-
updates.tech_stack = options.stack.split(',').map((s) => s.trim()).filter(Boolean);
|
|
153
|
-
}
|
|
154
|
-
if (Object.keys(updates).length === 0) {
|
|
155
|
-
warning('未指定任何字段,使用 --role/--level/--style/--stack');
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
mgr.save(updates);
|
|
159
|
-
success('画像已更新');
|
|
160
|
-
}
|
|
161
|
-
catch (err) {
|
|
162
|
-
handleError(err);
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
profile
|
|
166
|
-
.command('reset')
|
|
167
|
-
.description('将用户画像重置为默认值')
|
|
168
|
-
.action(() => {
|
|
169
|
-
try {
|
|
170
|
-
const mgr = new ProfileManager();
|
|
171
|
-
mgr.reset();
|
|
172
|
-
success('画像已重置为默认值');
|
|
173
|
-
info('运行 `claude-forge profile init` 重新初始化');
|
|
174
|
-
}
|
|
175
|
-
catch (err) {
|
|
176
|
-
handleError(err);
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
profile
|
|
180
|
-
.command('export')
|
|
181
|
-
.description('导出用户画像到文件')
|
|
182
|
-
.option('-o, --output <path>', '输出文件路径')
|
|
183
|
-
.action((options) => {
|
|
184
|
-
try {
|
|
185
|
-
const mgr = new ProfileManager();
|
|
186
|
-
const dest = mgr.export(options.output);
|
|
187
|
-
success(`画像已导出到: ${dest}`);
|
|
188
|
-
}
|
|
189
|
-
catch (err) {
|
|
190
|
-
handleError(err);
|
|
191
|
-
}
|
|
192
|
-
});
|
|
193
|
-
profile
|
|
194
|
-
.command('evolve')
|
|
195
|
-
.description('使用 AI 分析行为日志并演化画像')
|
|
196
|
-
.action(async () => {
|
|
197
|
-
try {
|
|
198
|
-
const config = ConfigManager.getInstance().get();
|
|
199
|
-
const api = createRequiredApi(config.distill.api_key || undefined, config.distill.model, config.distill.base_url || undefined);
|
|
200
|
-
const mgr = new ProfileManager();
|
|
201
|
-
info('分析行为日志,更新画像...');
|
|
202
|
-
mgr.updateRatesFromBehavior();
|
|
203
|
-
await mgr.evolveWithAI(api);
|
|
204
|
-
const p = mgr.get();
|
|
205
|
-
success('画像已更新');
|
|
206
|
-
info(` 工作方式: ${p.work_style} | 跳过率: ${(p.skip_rate * 100).toFixed(0)}% | 覆盖率: ${(p.override_rate * 100).toFixed(0)}%`);
|
|
207
|
-
}
|
|
208
|
-
catch (err) {
|
|
209
|
-
handleError(err);
|
|
210
|
-
}
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
//# sourceMappingURL=profile.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/cli/commands/profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init-profile.d.ts","sourceRoot":"","sources":["../../../src/daemon/engine-registry/init-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,CA2BlE"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { ProfileManager } from '../../profile/index.js';
|
|
2
|
-
import { logger } from '../../utils/logger.js';
|
|
3
|
-
export async function initProfileManager() {
|
|
4
|
-
const profileManager = new ProfileManager();
|
|
5
|
-
profileManager.incrementSessionCount();
|
|
6
|
-
const snapshot = profileManager.get();
|
|
7
|
-
// 自动推断:首次使用,或技术栈为空时重新扫描(换项目后自动更新)
|
|
8
|
-
const needsInfer = !snapshot.initialized || snapshot.tech_stack.length === 0;
|
|
9
|
-
if (needsInfer) {
|
|
10
|
-
try {
|
|
11
|
-
const inferred = await profileManager.inferFromExistingData(process.cwd());
|
|
12
|
-
profileManager.save(inferred);
|
|
13
|
-
logger.info(`[画像] 自动推断完成:tech=${inferred.tech_stack?.join(',') ?? '无'} role=${inferred.role ?? '默认'} level=${inferred.experience_level ?? '默认'}`);
|
|
14
|
-
}
|
|
15
|
-
catch (err) {
|
|
16
|
-
logger.warn(`[画像] 自动推断失败:${err}`);
|
|
17
|
-
// 推断失败也要标记 initialized,避免每次启动都重试
|
|
18
|
-
if (!snapshot.initialized)
|
|
19
|
-
profileManager.save({ initialized: true, inferred: false });
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
// 每次 daemon 启动时同步一次行为数据,确保 getInterventionLevel() 基于最新 skip_rate
|
|
23
|
-
profileManager.updateRatesFromBehavior();
|
|
24
|
-
const updated = profileManager.get();
|
|
25
|
-
logger.info(`[画像] 已加载:style=${updated.work_style} level=${updated.experience_level} tech=[${updated.tech_stack.join(', ')}] skip=${(updated.skip_rate * 100).toFixed(0)}% sessions=${updated.session_count}`);
|
|
26
|
-
return profileManager;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=init-profile.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init-profile.js","sourceRoot":"","sources":["../../../src/daemon/engine-registry/init-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAC5C,cAAc,CAAC,qBAAqB,EAAE,CAAC;IAEvC,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC;IAEtC,kCAAkC;IAClC,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;IAC7E,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3E,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,QAAQ,CAAC,IAAI,IAAI,IAAI,UAAU,QAAQ,CAAC,gBAAgB,IAAI,IAAI,EAAE,CAAC,CAAC;QACpJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;YAClC,iCAAiC;YACjC,IAAI,CAAC,QAAQ,CAAC,WAAW;gBAAE,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,cAAc,CAAC,uBAAuB,EAAE,CAAC;IAEzC,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC;IACrC,MAAM,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,UAAU,UAAU,OAAO,CAAC,gBAAgB,UAAU,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAE9M,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { Stage, StageResult } from './stage-interface.js';
|
|
2
|
-
import type { OrchestrationContext } from '../orchestration-context.js';
|
|
3
|
-
/** Stage 16: 干预级别确定 — 设置 ctx.interventionLevel,静默模式短路 */
|
|
4
|
-
export declare class InterventionLevelStage implements Stage {
|
|
5
|
-
readonly name = "\u5E72\u9884\u7EA7\u522B\u786E\u5B9A";
|
|
6
|
-
readonly dependencies: string[];
|
|
7
|
-
execute(ctx: OrchestrationContext): Promise<StageResult>;
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=16-intervention-level.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"16-intervention-level.d.ts","sourceRoot":"","sources":["../../../../src/daemon/handlers/stages/16-intervention-level.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAIxE,yDAAyD;AACzD,qBAAa,sBAAuB,YAAW,KAAK;IAClD,QAAQ,CAAC,IAAI,0CAAY;IACzB,QAAQ,CAAC,YAAY,WAAY;IAE3B,OAAO,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;CAoB/D"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { isForgeManaged } from '../../lifecycle.js';
|
|
2
|
-
import { logger } from '../../../utils/logger.js';
|
|
3
|
-
/** Stage 16: 干预级别确定 — 设置 ctx.interventionLevel,静默模式短路 */
|
|
4
|
-
export class InterventionLevelStage {
|
|
5
|
-
name = '干预级别确定';
|
|
6
|
-
dependencies = ['意图分析'];
|
|
7
|
-
async execute(ctx) {
|
|
8
|
-
const { analysis } = ctx;
|
|
9
|
-
if (!analysis)
|
|
10
|
-
return { shouldTerminate: false };
|
|
11
|
-
const interventionLevel = ctx.handlerCtx.profileManager.getInterventionLevel(analysis.complexity);
|
|
12
|
-
logger.info(`用户偏好介入程度:${interventionLevel}(任务复杂度:${analysis.complexity})`);
|
|
13
|
-
ctx.interventionLevel = interventionLevel;
|
|
14
|
-
if (interventionLevel === 'silent') {
|
|
15
|
-
if (isForgeManaged(ctx.event.project_path) && analysis.requiresPipeline) {
|
|
16
|
-
logger.info(`[Forge:Pipeline] 静默模式但 Forge 管理项目需要 Pipeline,继续编排`);
|
|
17
|
-
return { shouldTerminate: false };
|
|
18
|
-
}
|
|
19
|
-
logger.info(`用户偏好静默模式,跳过编排`);
|
|
20
|
-
return { shouldTerminate: true, response: undefined };
|
|
21
|
-
}
|
|
22
|
-
return { shouldTerminate: false };
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=16-intervention-level.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"16-intervention-level.js","sourceRoot":"","sources":["../../../../src/daemon/handlers/stages/16-intervention-level.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,yDAAyD;AACzD,MAAM,OAAO,sBAAsB;IACxB,IAAI,GAAG,QAAQ,CAAC;IAChB,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC;IAEjC,KAAK,CAAC,OAAO,CAAC,GAAyB;QACrC,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;QAEjD,MAAM,iBAAiB,GAAG,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,oBAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClG,MAAM,CAAC,IAAI,CAAC,YAAY,iBAAiB,UAAU,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;QAE3E,GAAG,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAE1C,IAAI,iBAAiB,KAAK,QAAQ,EAAE,CAAC;YACnC,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gBACxE,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;gBACjE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;YACpC,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QACxD,CAAC;QAED,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;IACpC,CAAC;CACF"}
|
package/dist/profile/index.d.ts
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { AIProvider } from '../ai-provider/types.js';
|
|
2
|
-
export type ExperienceLevel = 'junior' | 'mid' | 'senior' | 'expert';
|
|
3
|
-
export type WorkStyle = 'guided' | 'balanced' | 'autonomous';
|
|
4
|
-
export interface UserProfile {
|
|
5
|
-
role: string;
|
|
6
|
-
experience_level: ExperienceLevel;
|
|
7
|
-
tech_stack: string[];
|
|
8
|
-
work_style: WorkStyle;
|
|
9
|
-
skip_rate: number;
|
|
10
|
-
override_rate: number;
|
|
11
|
-
session_count: number;
|
|
12
|
-
last_updated: string;
|
|
13
|
-
initialized: boolean;
|
|
14
|
-
/** daemon 冷启动时由 inferFromExistingData 自动推断并写入,用于区分"已推断"和"从未初始化" */
|
|
15
|
-
inferred: boolean;
|
|
16
|
-
}
|
|
17
|
-
export interface BehaviorSignal {
|
|
18
|
-
type: 'accept' | 'skip' | 'override';
|
|
19
|
-
context: string;
|
|
20
|
-
timestamp: string;
|
|
21
|
-
}
|
|
22
|
-
export declare class ProfileManager {
|
|
23
|
-
private profilePath;
|
|
24
|
-
private behaviorLogPath;
|
|
25
|
-
/** 内存缓存,避免热路径频繁磁盘读取 */
|
|
26
|
-
private cache;
|
|
27
|
-
private static readonly CACHE_TTL_MS;
|
|
28
|
-
constructor(profilePath?: string, behaviorLogPath?: string);
|
|
29
|
-
get(): UserProfile;
|
|
30
|
-
save(profile: Partial<UserProfile>): void;
|
|
31
|
-
reset(): void;
|
|
32
|
-
export(outputPath?: string): string;
|
|
33
|
-
/**
|
|
34
|
-
* 从已有数据自动推断画像(无需用户手动初始化)。
|
|
35
|
-
* 扫描范围:全局 ~/.claude/CLAUDE.md、当前工作目录的项目文件、git 配置、memory 文件数量。
|
|
36
|
-
*/
|
|
37
|
-
inferFromExistingData(projectPath?: string): Promise<Partial<UserProfile>>;
|
|
38
|
-
/**
|
|
39
|
-
* 从文本内容提取技术栈关键词,写入 techSet
|
|
40
|
-
*/
|
|
41
|
-
private extractTechStack;
|
|
42
|
-
/**
|
|
43
|
-
* 扫描项目目录中的标志性文件,推断技术栈和角色
|
|
44
|
-
*/
|
|
45
|
-
private scanProjectFiles;
|
|
46
|
-
/**
|
|
47
|
-
* 记录行为信号。
|
|
48
|
-
* updateRatesFromBehavior 由 StopHandler 在每次 Stop 时通过 cleanup.updateProfile() 调用。
|
|
49
|
-
*/
|
|
50
|
-
recordBehavior(signal: BehaviorSignal): void;
|
|
51
|
-
private trimBehaviorLog;
|
|
52
|
-
/**
|
|
53
|
-
* 根据行为日志更新 skip_rate / override_rate
|
|
54
|
-
*/
|
|
55
|
-
updateRatesFromBehavior(): void;
|
|
56
|
-
/**
|
|
57
|
-
* 用 Claude API 分析行为日志,更新画像(每 N 次会话触发一次)
|
|
58
|
-
*/
|
|
59
|
-
evolveWithAI(api: AIProvider): Promise<void>;
|
|
60
|
-
/**
|
|
61
|
-
* 根据画像获取干预深度。
|
|
62
|
-
* 判断优先级:
|
|
63
|
-
* 1. work_style === 'autonomous' → 永远 silent
|
|
64
|
-
* 2. 实时 skip_rate 高(>60%)→ 降级为 silent(行为学习覆盖初始配置)
|
|
65
|
-
* 3. work_style === 'guided' → complex=auto, 其余=suggest
|
|
66
|
-
* 4. balanced + 经验矩阵
|
|
67
|
-
*/
|
|
68
|
-
getInterventionLevel(complexity: 'simple' | 'moderate' | 'complex'): 'silent' | 'suggest' | 'auto';
|
|
69
|
-
incrementSessionCount(): void;
|
|
70
|
-
private parseYaml;
|
|
71
|
-
private toYaml;
|
|
72
|
-
}
|
|
73
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/profile/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAM1D,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACrE,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,eAAe,CAAC;IAClC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,mEAAmE;IACnE,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAeD,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAS;IAChC,uBAAuB;IACvB,OAAO,CAAC,KAAK,CAA2D;IACxE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAU;gBAElC,WAAW,SAAe,EAAE,eAAe,SAAoB;IAK3E,GAAG,IAAI,WAAW;IAkBlB,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAczC,KAAK,IAAI,IAAI;IAOb,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAOnC;;;OAGG;IACG,qBAAqB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IA+ChF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8BxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmExB;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAU5C,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,uBAAuB,IAAI,IAAI;IA4B/B;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA8ClD;;;;;;;OAOG;IACH,oBAAoB,CAAC,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM;IA2BlG,qBAAqB,IAAI,IAAI;IAK7B,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,MAAM;CAGf"}
|