@winspan/claude-forge 0.3.0 → 0.3.2
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/daemon/handlers/session-cleanup.d.ts +2 -0
- package/dist/daemon/handlers/session-cleanup.d.ts.map +1 -1
- package/dist/daemon/handlers/session-cleanup.js +34 -0
- package/dist/daemon/handlers/session-cleanup.js.map +1 -1
- package/dist/daemon/handlers/stop-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/stop-handler.js +6 -0
- package/dist/daemon/handlers/stop-handler.js.map +1 -1
- package/dist/daemon/handlers/user-prompt-handler.d.ts +11 -0
- package/dist/daemon/handlers/user-prompt-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/user-prompt-handler.js +92 -5
- package/dist/daemon/handlers/user-prompt-handler.js.map +1 -1
- package/dist/hooks/check-context-limit.sh +11 -26
- package/dist/hooks/notification.sh +15 -21
- package/dist/hooks/post-tool-use.sh +21 -31
- package/dist/hooks/pre-tool-use.sh +19 -28
- package/dist/hooks/stop.sh +12 -17
- package/dist/hooks/user-prompt-submit.sh +22 -35
- package/dist/skill-registry/evolver/index.d.ts +5 -0
- package/dist/skill-registry/evolver/index.d.ts.map +1 -1
- package/dist/skill-registry/evolver/index.js +49 -0
- package/dist/skill-registry/evolver/index.js.map +1 -1
- package/dist/skill-registry/index.d.ts +4 -0
- package/dist/skill-registry/index.d.ts.map +1 -1
- package/dist/skill-registry/index.js +8 -0
- package/dist/skill-registry/index.js.map +1 -1
- package/dist/storage/index.d.ts +2 -0
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/sqlite.d.ts +2 -0
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +64 -6
- package/dist/storage/sqlite.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,43 +7,33 @@ AUTH_TOKEN=$(cat "$HOME/.claude-forge/daemon.token" 2>/dev/null || echo '')
|
|
|
7
7
|
# 读取 stdin
|
|
8
8
|
INPUT=$(cat)
|
|
9
9
|
|
|
10
|
-
#
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
PROJECT_PATH=$(echo "$INPUT" |
|
|
10
|
+
# 提取字段(单次 jq 调用,替代 4 个 python3 进程)
|
|
11
|
+
# tool_response 是 Claude Code 的字段名
|
|
12
|
+
TOOL_NAME="${CLAUDE_TOOL_NAME:-$(echo "$INPUT" | jq -r '.tool_name // ""')}"
|
|
13
|
+
TOOL_INPUT=$(echo "$INPUT" | jq -c '.tool_input // {}')
|
|
14
|
+
TOOL_OUTPUT=$(echo "$INPUT" | jq -c '.tool_response // {}')
|
|
15
|
+
PROJECT_PATH=$(echo "$INPUT" | jq -r '.cwd // ""')
|
|
16
16
|
PROJECT_PATH="${PROJECT_PATH:-${PWD}}"
|
|
17
17
|
|
|
18
|
-
# 构造事件 JSON
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
'hook_type': 'PostToolUse',
|
|
33
|
-
'timestamp': datetime.now().strftime('%Y-%m-%dT%H:%M:%S'),
|
|
34
|
-
'session_id': os.environ.get('CLAUDE_CODE_SESSION_ID', 'cli'),
|
|
35
|
-
'project_path': os.environ.get('FORGE_PROJECT_PATH', ''),
|
|
36
|
-
'tool_name': os.environ.get('FORGE_TOOL_NAME', ''),
|
|
37
|
-
'tool_input': tool_input,
|
|
38
|
-
'tool_output': tool_output,
|
|
39
|
-
'_auth': os.environ.get('FORGE_AUTH_TOKEN', ''),
|
|
40
|
-
}))
|
|
41
|
-
" 2>/dev/null)
|
|
18
|
+
# 构造事件 JSON
|
|
19
|
+
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%S")
|
|
20
|
+
EVENT=$(jq -n \
|
|
21
|
+
--arg hook_type "PostToolUse" \
|
|
22
|
+
--arg timestamp "$TIMESTAMP" \
|
|
23
|
+
--arg session_id "${CLAUDE_CODE_SESSION_ID:-cli}" \
|
|
24
|
+
--arg project_path "$PROJECT_PATH" \
|
|
25
|
+
--arg tool_name "$TOOL_NAME" \
|
|
26
|
+
--argjson tool_input "$TOOL_INPUT" \
|
|
27
|
+
--argjson tool_output "$TOOL_OUTPUT" \
|
|
28
|
+
--arg auth "$AUTH_TOKEN" \
|
|
29
|
+
'{hook_type: $hook_type, timestamp: $timestamp, session_id: $session_id,
|
|
30
|
+
project_path: $project_path, tool_name: $tool_name, tool_input: $tool_input,
|
|
31
|
+
tool_output: $tool_output, _auth: $auth}')
|
|
42
32
|
|
|
43
33
|
# 发送到 daemon(PostToolUse 也需要等待响应以支持通知注入)
|
|
44
34
|
RESPONSE=$(echo "$EVENT" | nc -U -w 5 "$SOCKET_PATH" 2>/dev/null || true)
|
|
45
35
|
if [ -n "$RESPONSE" ]; then
|
|
46
|
-
HAS_CONTEXT=$(echo "$RESPONSE" |
|
|
36
|
+
HAS_CONTEXT=$(echo "$RESPONSE" | jq -r 'if .additionalContext and (.additionalContext != "") then "yes" else "no" end')
|
|
47
37
|
if [ "$HAS_CONTEXT" = "yes" ]; then
|
|
48
38
|
echo "$RESPONSE"
|
|
49
39
|
fi
|
|
@@ -7,48 +7,39 @@ AUTH_TOKEN=$(cat "$HOME/.claude-forge/daemon.token" 2>/dev/null || echo '')
|
|
|
7
7
|
# 读取 stdin(Claude Code 传入的 JSON)
|
|
8
8
|
INPUT=$(cat)
|
|
9
9
|
|
|
10
|
-
#
|
|
11
|
-
TOOL_NAME="${CLAUDE_TOOL_NAME:-$(echo "$INPUT" |
|
|
12
|
-
TOOL_INPUT=$(echo "$INPUT" |
|
|
13
|
-
PROJECT_PATH=$(echo "$INPUT" |
|
|
10
|
+
# 提取字段(单次 jq 调用,替代 3 个 python3 进程)
|
|
11
|
+
TOOL_NAME="${CLAUDE_TOOL_NAME:-$(echo "$INPUT" | jq -r '.tool_name // ""')}"
|
|
12
|
+
TOOL_INPUT=$(echo "$INPUT" | jq -c '.tool_input // {}')
|
|
13
|
+
PROJECT_PATH=$(echo "$INPUT" | jq -r '.cwd // ""')
|
|
14
14
|
PROJECT_PATH="${PROJECT_PATH:-${PWD}}"
|
|
15
15
|
|
|
16
|
-
# 构造事件 JSON
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
'session_id': os.environ.get('CLAUDE_CODE_SESSION_ID', 'cli'),
|
|
30
|
-
'project_path': os.environ.get('FORGE_PROJECT_PATH', ''),
|
|
31
|
-
'tool_name': os.environ.get('FORGE_TOOL_NAME', ''),
|
|
32
|
-
'tool_input': tool_input,
|
|
33
|
-
'_auth': os.environ.get('FORGE_AUTH_TOKEN', ''),
|
|
34
|
-
}))
|
|
35
|
-
" 2>/dev/null)
|
|
16
|
+
# 构造事件 JSON(jq -n 替代 python3 heredoc)
|
|
17
|
+
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%S")
|
|
18
|
+
EVENT=$(jq -n \
|
|
19
|
+
--arg hook_type "PreToolUse" \
|
|
20
|
+
--arg timestamp "$TIMESTAMP" \
|
|
21
|
+
--arg session_id "${CLAUDE_CODE_SESSION_ID:-cli}" \
|
|
22
|
+
--arg project_path "$PROJECT_PATH" \
|
|
23
|
+
--arg tool_name "$TOOL_NAME" \
|
|
24
|
+
--argjson tool_input "$TOOL_INPUT" \
|
|
25
|
+
--arg auth "$AUTH_TOKEN" \
|
|
26
|
+
'{hook_type: $hook_type, timestamp: $timestamp, session_id: $session_id,
|
|
27
|
+
project_path: $project_path, tool_name: $tool_name, tool_input: $tool_input,
|
|
28
|
+
_auth: $auth}')
|
|
36
29
|
|
|
37
30
|
# 发送事件并等待响应(双向通信,5 秒超时)
|
|
38
31
|
RESPONSE=$(echo "$EVENT" | nc -U -w 5 "$SOCKET_PATH" 2>/dev/null)
|
|
39
32
|
|
|
40
33
|
if [ -n "$RESPONSE" ]; then
|
|
41
|
-
|
|
42
|
-
ALLOW=$(echo "$RESPONSE" | python3 -c 'import sys,json; d=json.load(sys.stdin); print(str(d.get("allow",True)).lower())' 2>/dev/null || echo 'true')
|
|
34
|
+
ALLOW=$(echo "$RESPONSE" | jq -r '.allow // true')
|
|
43
35
|
|
|
44
36
|
if [ "$ALLOW" = "false" ]; then
|
|
45
|
-
# 输出拦截 JSON 到 stdout(Claude Code 读取)
|
|
46
37
|
echo "$RESPONSE"
|
|
47
38
|
exit 2
|
|
48
39
|
fi
|
|
49
40
|
|
|
50
41
|
# 有 additionalContext 时输出
|
|
51
|
-
HAS_CONTEXT=$(echo "$RESPONSE" |
|
|
42
|
+
HAS_CONTEXT=$(echo "$RESPONSE" | jq -r 'if .additionalContext and (.additionalContext != "") then "yes" else "no" end')
|
|
52
43
|
if [ "$HAS_CONTEXT" = "yes" ]; then
|
|
53
44
|
echo "$RESPONSE"
|
|
54
45
|
fi
|
package/dist/hooks/stop.sh
CHANGED
|
@@ -7,25 +7,20 @@ AUTH_TOKEN=$(cat "$HOME/.claude-forge/daemon.token" 2>/dev/null || echo '')
|
|
|
7
7
|
# 读取 stdin
|
|
8
8
|
INPUT=$(cat 2>/dev/null || echo '{}')
|
|
9
9
|
|
|
10
|
-
# 提取 cwd
|
|
11
|
-
PROJECT_PATH=$(echo "$INPUT" |
|
|
10
|
+
# 提取 cwd(jq 替代 python3)
|
|
11
|
+
PROJECT_PATH=$(echo "$INPUT" | jq -r '.cwd // ""')
|
|
12
12
|
PROJECT_PATH="${PROJECT_PATH:-${PWD}}"
|
|
13
13
|
|
|
14
|
-
# 构造事件 JSON
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
'tool_name': 'stop',
|
|
25
|
-
'tool_input': {},
|
|
26
|
-
'_auth': os.environ.get('FORGE_AUTH_TOKEN', ''),
|
|
27
|
-
}))
|
|
28
|
-
" 2>/dev/null)
|
|
14
|
+
# 构造事件 JSON
|
|
15
|
+
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%S")
|
|
16
|
+
EVENT=$(jq -n \
|
|
17
|
+
--arg hook_type "Stop" \
|
|
18
|
+
--arg timestamp "$TIMESTAMP" \
|
|
19
|
+
--arg session_id "${CLAUDE_CODE_SESSION_ID:-cli}" \
|
|
20
|
+
--arg project_path "$PROJECT_PATH" \
|
|
21
|
+
--arg auth "$AUTH_TOKEN" \
|
|
22
|
+
'{hook_type: $hook_type, timestamp: $timestamp, session_id: $session_id,
|
|
23
|
+
project_path: $project_path, tool_name: "stop", tool_input: {}, _auth: $auth}')
|
|
29
24
|
|
|
30
25
|
echo "$EVENT" | nc -U -w 1 "$SOCKET_PATH" 2>/dev/null || true
|
|
31
26
|
exit 0
|
|
@@ -13,9 +13,9 @@ fi
|
|
|
13
13
|
# 读取 stdin(Claude Code 传入的 JSON)
|
|
14
14
|
INPUT=$(cat)
|
|
15
15
|
|
|
16
|
-
#
|
|
17
|
-
USER_PROMPT=$(echo "$INPUT" |
|
|
18
|
-
PROJECT_PATH=$(echo "$INPUT" |
|
|
16
|
+
# 提取字段(jq 替代 python3)
|
|
17
|
+
USER_PROMPT=$(echo "$INPUT" | jq -r '.prompt // ""')
|
|
18
|
+
PROJECT_PATH=$(echo "$INPUT" | jq -r '.cwd // ""')
|
|
19
19
|
PROJECT_PATH="${PROJECT_PATH:-${PWD}}"
|
|
20
20
|
|
|
21
21
|
# 空 prompt 跳过
|
|
@@ -23,21 +23,18 @@ if [ -z "$USER_PROMPT" ]; then
|
|
|
23
23
|
exit 0
|
|
24
24
|
fi
|
|
25
25
|
|
|
26
|
-
#
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
'_auth': os.environ.get('FORGE_AUTH_TOKEN', ''),
|
|
39
|
-
}))
|
|
40
|
-
" 2>/dev/null)
|
|
26
|
+
# 构造事件 JSON(jq -n 替代 python3 heredoc)
|
|
27
|
+
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%S")
|
|
28
|
+
EVENT=$(jq -n \
|
|
29
|
+
--arg hook_type "UserPromptSubmit" \
|
|
30
|
+
--arg timestamp "$TIMESTAMP" \
|
|
31
|
+
--arg session_id "${CLAUDE_CODE_SESSION_ID:-cli}" \
|
|
32
|
+
--arg project_path "$PROJECT_PATH" \
|
|
33
|
+
--arg user_prompt "$USER_PROMPT" \
|
|
34
|
+
--arg auth "$AUTH_TOKEN" \
|
|
35
|
+
'{hook_type: $hook_type, timestamp: $timestamp, session_id: $session_id,
|
|
36
|
+
project_path: $project_path, tool_name: "UserPrompt",
|
|
37
|
+
tool_input: {user_prompt: $user_prompt}, _auth: $auth}')
|
|
41
38
|
|
|
42
39
|
if [ -z "$EVENT" ]; then
|
|
43
40
|
exit 0
|
|
@@ -47,25 +44,15 @@ fi
|
|
|
47
44
|
RESPONSE=$(echo "$EVENT" | nc -U -w 10 "$SOCKET_PATH" 2>/dev/null)
|
|
48
45
|
|
|
49
46
|
if [ -n "$RESPONSE" ]; then
|
|
50
|
-
HAS_CONTEXT=$(echo "$RESPONSE" |
|
|
47
|
+
HAS_CONTEXT=$(echo "$RESPONSE" | jq -r 'if .additionalContext and (.additionalContext != "") then "yes" else "no" end')
|
|
51
48
|
if [ "$HAS_CONTEXT" = "yes" ]; then
|
|
52
49
|
# stderr 输出到终端,让用户实时看到决策过程
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
lines = []
|
|
60
|
-
for line in ctx.split("\n"):
|
|
61
|
-
if line.startswith("请在回复"):
|
|
62
|
-
break
|
|
63
|
-
if line.strip():
|
|
64
|
-
lines.append(line)
|
|
65
|
-
if lines:
|
|
66
|
-
os.write(3, ("\033[36m" + "\n".join(lines) + "\033[0m\n").encode())
|
|
67
|
-
' 2>/dev/null
|
|
68
|
-
exec 3>&-
|
|
50
|
+
CONTEXT=$(echo "$RESPONSE" | jq -r '.additionalContext // ""')
|
|
51
|
+
# 提取第一个"请在回复"之前的非空行,输出到终端
|
|
52
|
+
DISPLAY_LINES=$(printf '%s' "$CONTEXT" | awk '/^请在回复/{exit} NF{print}')
|
|
53
|
+
if [ -n "$DISPLAY_LINES" ]; then
|
|
54
|
+
printf '\033[36m%s\033[0m\n' "$DISPLAY_LINES" >&2
|
|
55
|
+
fi
|
|
69
56
|
# stdout 返回给 Claude Code
|
|
70
57
|
echo "$RESPONSE"
|
|
71
58
|
fi
|
|
@@ -40,6 +40,11 @@ export declare class SkillEvolver {
|
|
|
40
40
|
* 关键词映射进化(公开方法,委托给 keyword-evolver)
|
|
41
41
|
*/
|
|
42
42
|
evolveKeywordMappings(): Promise<string[]>;
|
|
43
|
+
/**
|
|
44
|
+
* 生成技能优化建议(周期性主动进化)
|
|
45
|
+
* 基于最近 events + candidateKeywords,AI 生成改进建议
|
|
46
|
+
*/
|
|
47
|
+
suggestImprovements(recentEventsPath: string): Promise<string | null>;
|
|
43
48
|
private loadEvolveState;
|
|
44
49
|
saveEvolveState(): void;
|
|
45
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/skill-registry/evolver/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAQ9E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1D,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAMD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,cAAc,CAA+B;gBAEzC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU;IAOpD,0CAA0C;IAC1C,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIhD;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IA0DrC;;OAEG;IACH,gBAAgB,IAAI,OAAO;IAU3B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzC;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI/C;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIhD,OAAO,CAAC,eAAe;IASvB,eAAe,IAAI,IAAI;CAOxB"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/skill-registry/evolver/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAQ9E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1D,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAMD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,cAAc,CAA+B;gBAEzC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU;IAOpD,0CAA0C;IAC1C,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIhD;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IA0DrC;;OAEG;IACH,gBAAgB,IAAI,OAAO;IAU3B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzC;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI/C;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIhD;;;OAGG;IACG,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA+C3E,OAAO,CAAC,eAAe;IASvB,eAAe,IAAI,IAAI;CAOxB"}
|
|
@@ -115,6 +115,55 @@ export class SkillEvolver {
|
|
|
115
115
|
async evolveKeywordMappings() {
|
|
116
116
|
return evolveKeywordMappings(this.registry, this.api);
|
|
117
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* 生成技能优化建议(周期性主动进化)
|
|
120
|
+
* 基于最近 events + candidateKeywords,AI 生成改进建议
|
|
121
|
+
*/
|
|
122
|
+
async suggestImprovements(recentEventsPath) {
|
|
123
|
+
if (!this.api)
|
|
124
|
+
return null;
|
|
125
|
+
try {
|
|
126
|
+
// 读取最近事件(最多 200 行)
|
|
127
|
+
const events = [];
|
|
128
|
+
if (fs.existsSync(recentEventsPath)) {
|
|
129
|
+
const lines = fs.readFileSync(recentEventsPath, 'utf-8').split('\n').filter(Boolean);
|
|
130
|
+
events.push(...lines.slice(-200));
|
|
131
|
+
}
|
|
132
|
+
if (events.length === 0)
|
|
133
|
+
return null;
|
|
134
|
+
// 读取 candidateKeywords
|
|
135
|
+
const configMgr = new (await import('../orchestration-config.js')).OrchestrationConfigManager();
|
|
136
|
+
const mappings = configMgr.listMappings();
|
|
137
|
+
const candidates = mappings
|
|
138
|
+
.filter(m => m.candidateKeywords && m.candidateKeywords.length > 0)
|
|
139
|
+
.map(m => `- ${m.skill}: [${m.candidateKeywords.join(', ')}]`)
|
|
140
|
+
.join('\n');
|
|
141
|
+
if (candidates.length === 0)
|
|
142
|
+
return null;
|
|
143
|
+
const prompt = `你是 Claude Code Forge 的技能优化专家。基于最近的使用数据,生成技能改进建议。
|
|
144
|
+
|
|
145
|
+
## 最近 ${events.length} 条事件摘要
|
|
146
|
+
${events.slice(0, 50).join('\n')}
|
|
147
|
+
${events.length > 50 ? `\n... (共 ${events.length} 条)` : ''}
|
|
148
|
+
|
|
149
|
+
## 候选关键词(用户主动调用但未被推荐的场景)
|
|
150
|
+
${candidates}
|
|
151
|
+
|
|
152
|
+
## 任务
|
|
153
|
+
分析以上数据,生成 3-5 条具体的技能优化建议,格式:
|
|
154
|
+
- **技能名**:建议内容(如"补充关键词 xxx"、"扩展覆盖场景 yyy"、"优化指令描述")
|
|
155
|
+
|
|
156
|
+
只输出建议列表,不要包含任何说明文字。如果没有明显改进点,输出"暂无优化建议"。`;
|
|
157
|
+
const response = await this.api.complete(prompt, 'skill-improvement-suggester');
|
|
158
|
+
if (response.includes('暂无优化建议'))
|
|
159
|
+
return null;
|
|
160
|
+
return response.trim();
|
|
161
|
+
}
|
|
162
|
+
catch (err) {
|
|
163
|
+
logger.warn(`[进化器] 生成优化建议失败:${err}`);
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
118
167
|
loadEvolveState() {
|
|
119
168
|
try {
|
|
120
169
|
if (fs.existsSync(EVOLVE_STATE_FILE)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/skill-registry/evolver/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/skill-registry/evolver/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,10 @@ export declare class SkillRegistryEngine {
|
|
|
38
38
|
getRegistry(): SkillRegistry;
|
|
39
39
|
getCollector(): SkillCollector;
|
|
40
40
|
getEvolver(): SkillEvolver | null;
|
|
41
|
+
/**
|
|
42
|
+
* 生成技能优化建议(每 10 次 Stop 触发一次)
|
|
43
|
+
*/
|
|
44
|
+
suggestImprovements(eventsPath: string): Promise<string | null>;
|
|
41
45
|
/**
|
|
42
46
|
* 刷新技能注册表并为新技能生成编排关键词
|
|
43
47
|
* 用于文件监听触发的自动更新场景
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skill-registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE9E,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,GAAG,CAAyB;gBAExB,GAAG,CAAC,EAAE,UAAU;IAuB5B;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAarF;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIrC,WAAW,CAAC,QAAQ,GAAE,MAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA0BrE;;OAEG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAcxE,WAAW,IAAI,aAAa;IAC5B,YAAY,IAAI,cAAc;IAC9B,UAAU,IAAI,YAAY,GAAG,IAAI;IAEjC;;;OAGG;IACG,0BAA0B,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBjF;;OAEG;YACW,4BAA4B;IAmD1C;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;IAI5D,SAAS,IAAI;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChD,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACnD;CAmBF"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skill-registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE9E,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,GAAG,CAAyB;gBAExB,GAAG,CAAC,EAAE,UAAU;IAuB5B;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAarF;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIrC,WAAW,CAAC,QAAQ,GAAE,MAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA0BrE;;OAEG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAcxE,WAAW,IAAI,aAAa;IAC5B,YAAY,IAAI,cAAc;IAC9B,UAAU,IAAI,YAAY,GAAG,IAAI;IAEjC;;OAEG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKrE;;;OAGG;IACG,0BAA0B,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBjF;;OAEG;YACW,4BAA4B;IAmD1C;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;IAI5D,SAAS,IAAI;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChD,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACnD;CAmBF"}
|
|
@@ -105,6 +105,14 @@ export class SkillRegistryEngine {
|
|
|
105
105
|
getRegistry() { return this.registry; }
|
|
106
106
|
getCollector() { return this.collector; }
|
|
107
107
|
getEvolver() { return this.evolver; }
|
|
108
|
+
/**
|
|
109
|
+
* 生成技能优化建议(每 10 次 Stop 触发一次)
|
|
110
|
+
*/
|
|
111
|
+
async suggestImprovements(eventsPath) {
|
|
112
|
+
if (!this.evolver)
|
|
113
|
+
return null;
|
|
114
|
+
return this.evolver.suggestImprovements(eventsPath);
|
|
115
|
+
}
|
|
108
116
|
/**
|
|
109
117
|
* 刷新技能注册表并为新技能生成编排关键词
|
|
110
118
|
* 用于文件监听触发的自动更新场景
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skill-registry/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAoB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAmB,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAoB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAmB,MAAM,0BAA0B,CAAC;AAE9E,MAAM,OAAO,mBAAmB;IACtB,QAAQ,CAAgB;IACxB,YAAY,CAAoB;IAChC,SAAS,CAAiB;IAC1B,OAAO,GAAwB,IAAI,CAAC;IACpC,OAAO,GAA0B,IAAI,CAAC;IACtC,YAAY,CAAoB;IAChC,WAAW,GAAW,CAAC,CAAC;IACxB,kBAAkB,GAAa,EAAE,CAAC;IAClC,GAAG,CAAyB;IAEpC,YAAY,GAAgB;QAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzD,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEtC,YAAY;QACZ,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,aAAa,KAAK,WAAW,UAAU,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,KAAiB,EAAE,aAAsB;QAC1D,IAAI,KAAK,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YACjC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,QAAkB;QAClC,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAmB,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE/B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,WAAW,GAAG,QAAQ,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEnD,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/B,IAAI,CAAC;YACH,8BAA8B;YAC9B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACnE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,EAAE;gBACb,eAAe,EAAE,EAAE;gBACnB,SAAS,EAAE,EAAE;gBACb,eAAe;gBACf,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,WAAmB;QACxC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACrD,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,WAAW,KAAoB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtD,YAAY,KAAqB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,UAAU,KAA0B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE1D;;;OAGG;IACH,KAAK,CAAC,0BAA0B;QAC9B,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAErE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACjC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,CAAC,MAAM,SAAS,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE5F,cAAc;QACd,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC/D,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,4BAA4B,CAAC,UAAoB;QAC7D,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QACjF,MAAM,SAAS,GAAG,IAAI,0BAA0B,EAAE,CAAC;QACnD,MAAM,gBAAgB,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;QAElD,aAAa;QACb,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;QAC/F,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEvC,MAAM,iBAAiB,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,KAAK,IAAI,KAAK,KAAK,EAAE,WAAW,IAAI,OAAO,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,MAAM,GAAG;;;EAGjB,iBAAiB;;;;;;;;;;;;;EAajB,CAAC;QAEC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAChD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBACzC,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAiD,CAAC;YAC1F,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBAChF,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,SAAiB,EAAE,UAAmB;QACnD,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;IAED,SAAS;QASP,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAE9C,OAAO;YACL,KAAK,EAAE,GAAG,CAAC,MAAM;YACjB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM;YACnD,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;YACrD,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM;YAC3D,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM;YACzD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACvE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACzB,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,YAAa,CAAC;gBACjC,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBACxC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skill-registry/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAoB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAmB,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAoB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAmB,MAAM,0BAA0B,CAAC;AAE9E,MAAM,OAAO,mBAAmB;IACtB,QAAQ,CAAgB;IACxB,YAAY,CAAoB;IAChC,SAAS,CAAiB;IAC1B,OAAO,GAAwB,IAAI,CAAC;IACpC,OAAO,GAA0B,IAAI,CAAC;IACtC,YAAY,CAAoB;IAChC,WAAW,GAAW,CAAC,CAAC;IACxB,kBAAkB,GAAa,EAAE,CAAC;IAClC,GAAG,CAAyB;IAEpC,YAAY,GAAgB;QAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzD,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEtC,YAAY;QACZ,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,aAAa,KAAK,WAAW,UAAU,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,KAAiB,EAAE,aAAsB;QAC1D,IAAI,KAAK,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YACjC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,QAAkB;QAClC,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAmB,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE/B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,WAAW,GAAG,QAAQ,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEnD,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/B,IAAI,CAAC;YACH,8BAA8B;YAC9B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACnE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,EAAE;gBACb,eAAe,EAAE,EAAE;gBACnB,SAAS,EAAE,EAAE;gBACb,eAAe;gBACf,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,WAAmB;QACxC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACrD,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,WAAW,KAAoB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtD,YAAY,KAAqB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,UAAU,KAA0B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE1D;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,UAAkB;QAC1C,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,0BAA0B;QAC9B,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAErE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACjC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,CAAC,MAAM,SAAS,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE5F,cAAc;QACd,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC/D,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,4BAA4B,CAAC,UAAoB;QAC7D,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QACjF,MAAM,SAAS,GAAG,IAAI,0BAA0B,EAAE,CAAC;QACnD,MAAM,gBAAgB,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;QAElD,aAAa;QACb,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;QAC/F,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEvC,MAAM,iBAAiB,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,KAAK,IAAI,KAAK,KAAK,EAAE,WAAW,IAAI,OAAO,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,MAAM,GAAG;;;EAGjB,iBAAiB;;;;;;;;;;;;;EAajB,CAAC;QAEC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAChD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBACzC,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAiD,CAAC;YAC1F,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBAChF,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,SAAiB,EAAE,UAAmB;QACnD,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;IAED,SAAS;QASP,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAE9C,OAAO;YACL,KAAK,EAAE,GAAG,CAAC,MAAM;YACjB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM;YACnD,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;YACrD,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM;YAC3D,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM;YACzD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACvE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACzB,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,YAAa,CAAC;gBACjC,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBACxC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;CACF"}
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -26,6 +26,8 @@ export interface StorageEngine {
|
|
|
26
26
|
updateSessionStatus(sessionId: string, status: SessionStatus, endTime?: string, projectPath?: string): void;
|
|
27
27
|
getUndistilledEvents(sessionId: string, projectPath?: string): ForgeEvent[];
|
|
28
28
|
getStorageSize(): number;
|
|
29
|
+
/** FTS5 全文检索:按关键词搜索相关历史事件,返回最近 limit 条 */
|
|
30
|
+
searchByKeywords(keywords: string[], projectPath: string, limit?: number): ForgeEvent[];
|
|
29
31
|
close(): void;
|
|
30
32
|
}
|
|
31
33
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACpC,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAC/C,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC;IACzC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE9C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACpE,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,EAAE,CAAC;IAChD,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5G,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5E,cAAc,IAAI,MAAM,CAAC;IAEzB,KAAK,IAAI,IAAI,CAAC;CACf"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACpC,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAC/C,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC;IACzC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE9C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACpE,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,EAAE,CAAC;IAChD,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5G,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5E,cAAc,IAAI,MAAM,CAAC;IAEzB,0CAA0C;IAC1C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IAExF,KAAK,IAAI,IAAI,CAAC;CACf"}
|
package/dist/storage/sqlite.d.ts
CHANGED
|
@@ -51,6 +51,8 @@ export declare class SQLiteStorage implements StorageEngine {
|
|
|
51
51
|
queryPatternExecutions(patternId: string, limit?: number): PatternExecution[];
|
|
52
52
|
/** 更新执行记录的用户满意度(+1 正向 / -1 负向 / 0 中性) */
|
|
53
53
|
updatePatternSatisfaction(executionId: string, satisfaction: number): void;
|
|
54
|
+
/** FTS5 全文检索:按关键词搜索相关历史事件,返回最近 limit 条 */
|
|
55
|
+
searchByKeywords(keywords: string[], projectPath: string, limit?: number): ForgeEvent[];
|
|
54
56
|
close(): void;
|
|
55
57
|
/**
|
|
56
58
|
* 获取底层数据库连接(供需要直接操作的模块使用,如 PipelineStore)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,qBAAa,aAAc,YAAW,aAAa;IACjD,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAkB1B,8BAA8B;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAK;IAE3C,qCAAqC;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,qBAAa,aAAc,YAAW,aAAa;IACjD,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAkB1B,8BAA8B;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAK;IAE3C,qCAAqC;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAkBhC;IAEF,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,UAAU;IA0DlB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAuDnC,OAAO,CAAC,aAAa;IAiCrB,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,EAAE;IAgD9C,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;IAqBxC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAmB7C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAcnE,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,EAAE;IAwB/C,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAa3G,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE;IAW3E,cAAc,IAAI,MAAM;IAOxB;;;OAGG;IACH,oBAAoB,CAAC,aAAa,GAAE,MAAU,GAAG,MAAM;IAQvD;;OAEG;IACH,gBAAgB,CAAC,aAAa,GAAE,MAAW,GAAG,MAAM;IAQpD;;;;OAIG;IACH,cAAc,CAAC,SAAS,SAAO,GAAG;QAChC,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB;IA0BD,oBAAoB;IACpB,WAAW,IAAI,MAAM;IASrB,sEAAsE;IACtE,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAsBrD,2BAA2B;IAC3B,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,gBAAgB,EAAE;IAuBzE,yCAAyC;IACzC,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAM1E,0CAA0C;IAC1C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,UAAU,EAAE;IA6BnF,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,WAAW,IAAI,QAAQ,CAAC,QAAQ;IAKhC,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,YAAY;CAWrB"}
|
package/dist/storage/sqlite.js
CHANGED
|
@@ -20,12 +20,26 @@ export class SQLiteStorage {
|
|
|
20
20
|
this.runMigrations();
|
|
21
21
|
}
|
|
22
22
|
/** 当前 schema 版本号,每次新增迁移时递增 */
|
|
23
|
-
static SCHEMA_VERSION =
|
|
23
|
+
static SCHEMA_VERSION = 2;
|
|
24
24
|
/** 增量迁移函数表:key 为目标版本号,value 为迁移函数 */
|
|
25
25
|
static MIGRATIONS = {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
// v1: 基线版本(initSchema 已创建所有表),无需额外操作
|
|
27
|
+
// v2: 新增 FTS5 全文检索虚拟表
|
|
28
|
+
2: (db) => {
|
|
29
|
+
db.exec(`
|
|
30
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS events_fts
|
|
31
|
+
USING fts5(
|
|
32
|
+
event_id UNINDEXED,
|
|
33
|
+
session_id,
|
|
34
|
+
project_path,
|
|
35
|
+
tool_name,
|
|
36
|
+
tool_input,
|
|
37
|
+
user_prompt,
|
|
38
|
+
content=events,
|
|
39
|
+
tokenize='unicode61'
|
|
40
|
+
)
|
|
41
|
+
`);
|
|
42
|
+
},
|
|
29
43
|
};
|
|
30
44
|
runMigrations() {
|
|
31
45
|
// 确保 schema_version 表存在
|
|
@@ -114,13 +128,29 @@ export class SQLiteStorage {
|
|
|
114
128
|
}
|
|
115
129
|
writeEvent(event) {
|
|
116
130
|
const writeEventTx = this.db.transaction((ev) => {
|
|
117
|
-
|
|
131
|
+
const toolInputStr = ev.tool_input ? JSON.stringify(ev.tool_input) : null;
|
|
132
|
+
const changes = this.db.prepare(`
|
|
118
133
|
INSERT OR IGNORE INTO events (
|
|
119
134
|
event_id, session_id, project_path, timestamp,
|
|
120
135
|
hook_type, tool_name, tool_input, tool_output,
|
|
121
136
|
user_prompt, ai_response, distilled
|
|
122
137
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
123
|
-
`).run(ev.event_id, ev.session_id, ev.project_path, ev.timestamp, ev.hook_type, ev.tool_name || null,
|
|
138
|
+
`).run(ev.event_id, ev.session_id, ev.project_path, ev.timestamp, ev.hook_type, ev.tool_name || null, toolInputStr, ev.tool_output ? JSON.stringify(ev.tool_output) : null, ev.user_prompt || null, ev.ai_response || null, ev.distilled ? 1 : 0);
|
|
139
|
+
// FTS5 同步(只在新记录插入时同步,避免重复)
|
|
140
|
+
if (changes.changes > 0) {
|
|
141
|
+
try {
|
|
142
|
+
const rowResult = this.db.prepare('SELECT rowid FROM events WHERE event_id = ?').get(ev.event_id);
|
|
143
|
+
if (rowResult) {
|
|
144
|
+
this.db.prepare(`
|
|
145
|
+
INSERT OR IGNORE INTO events_fts(rowid, event_id, session_id, project_path, tool_name, tool_input, user_prompt)
|
|
146
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
147
|
+
`).run(rowResult.rowid, ev.event_id, ev.session_id, ev.project_path, ev.tool_name || null, toolInputStr, ev.user_prompt || null);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
// FTS5 表可能尚未创建(迁移 v2 前的旧数据库),静默忽略
|
|
152
|
+
}
|
|
153
|
+
}
|
|
124
154
|
// 更新或创建会话(在同一事务内)
|
|
125
155
|
this.upsertSession(ev);
|
|
126
156
|
});
|
|
@@ -373,6 +403,34 @@ export class SQLiteStorage {
|
|
|
373
403
|
UPDATE pattern_executions SET user_satisfaction = ? WHERE id = ?
|
|
374
404
|
`).run(satisfaction, executionId);
|
|
375
405
|
}
|
|
406
|
+
/** FTS5 全文检索:按关键词搜索相关历史事件,返回最近 limit 条 */
|
|
407
|
+
searchByKeywords(keywords, projectPath, limit = 20) {
|
|
408
|
+
if (keywords.length === 0)
|
|
409
|
+
return [];
|
|
410
|
+
try {
|
|
411
|
+
// 构建 FTS5 MATCH 表达式:多个关键词用 OR 连接
|
|
412
|
+
const matchExpr = keywords
|
|
413
|
+
.map(kw => kw.replace(/['"*]/g, '')) // 清理特殊字符
|
|
414
|
+
.filter(kw => kw.trim().length > 0)
|
|
415
|
+
.join(' OR ');
|
|
416
|
+
if (!matchExpr)
|
|
417
|
+
return [];
|
|
418
|
+
const rows = this.db.prepare(`
|
|
419
|
+
SELECT e.*
|
|
420
|
+
FROM events e
|
|
421
|
+
INNER JOIN events_fts fts ON e.rowid = fts.rowid
|
|
422
|
+
WHERE events_fts MATCH ?
|
|
423
|
+
AND e.project_path = ?
|
|
424
|
+
ORDER BY e.timestamp DESC
|
|
425
|
+
LIMIT ?
|
|
426
|
+
`).all(matchExpr, projectPath, limit);
|
|
427
|
+
return rows.map(this.rowToEvent);
|
|
428
|
+
}
|
|
429
|
+
catch {
|
|
430
|
+
// FTS5 表不存在或查询失败,静默返回空结果
|
|
431
|
+
return [];
|
|
432
|
+
}
|
|
433
|
+
}
|
|
376
434
|
close() {
|
|
377
435
|
this.db.close();
|
|
378
436
|
}
|