@haoyiyin/workflow 0.2.11 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/agents/contracts/implementer.d.ts +29 -0
- package/dist/src/agents/contracts/implementer.d.ts.map +1 -0
- package/dist/src/agents/contracts/implementer.js +94 -0
- package/dist/src/agents/contracts/implementer.js.map +1 -0
- package/dist/src/agents/contracts/index.d.ts +11 -0
- package/dist/src/agents/contracts/index.d.ts.map +1 -0
- package/dist/src/agents/contracts/index.js +11 -0
- package/dist/src/agents/contracts/index.js.map +1 -0
- package/dist/src/agents/contracts/planner.d.ts +25 -0
- package/dist/src/agents/contracts/planner.d.ts.map +1 -0
- package/dist/src/agents/contracts/planner.js +107 -0
- package/dist/src/agents/contracts/planner.js.map +1 -0
- package/dist/src/agents/contracts/router.d.ts +24 -0
- package/dist/src/agents/contracts/router.d.ts.map +1 -0
- package/dist/src/agents/contracts/router.js +137 -0
- package/dist/src/agents/contracts/router.js.map +1 -0
- package/dist/src/agents/contracts/verifier.d.ts +27 -0
- package/dist/src/agents/contracts/verifier.d.ts.map +1 -0
- package/dist/src/agents/contracts/verifier.js +115 -0
- package/dist/src/agents/contracts/verifier.js.map +1 -0
- package/dist/src/agents/dispatcher.d.ts +94 -51
- package/dist/src/agents/dispatcher.d.ts.map +1 -1
- package/dist/src/agents/dispatcher.js +207 -164
- package/dist/src/agents/dispatcher.js.map +1 -1
- package/dist/src/persistence/index.d.ts +4 -2
- package/dist/src/persistence/index.d.ts.map +1 -1
- package/dist/src/persistence/index.js +4 -1
- package/dist/src/persistence/index.js.map +1 -1
- package/dist/src/persistence/plan-md.d.ts +3 -2
- package/dist/src/persistence/plan-md.d.ts.map +1 -1
- package/dist/src/persistence/plan-md.js +47 -15
- package/dist/src/persistence/plan-md.js.map +1 -1
- package/dist/src/persistence/state-md.d.ts +2 -0
- package/dist/src/persistence/state-md.d.ts.map +1 -1
- package/dist/src/persistence/state-md.js +40 -22
- package/dist/src/persistence/state-md.js.map +1 -1
- package/dist/src/persistence/types.d.ts +35 -39
- package/dist/src/persistence/types.d.ts.map +1 -1
- package/dist/src/pi-extension.d.ts +4 -3
- package/dist/src/pi-extension.d.ts.map +1 -1
- package/dist/src/pi-extension.js +36 -67
- package/dist/src/pi-extension.js.map +1 -1
- package/dist/src/router/namespace/core/intent-router.d.ts +24 -0
- package/dist/src/router/namespace/core/intent-router.d.ts.map +1 -0
- package/dist/src/router/namespace/core/intent-router.js +190 -0
- package/dist/src/router/namespace/core/intent-router.js.map +1 -0
- package/dist/src/router/namespace/core/lifecycle-router.d.ts +28 -0
- package/dist/src/router/namespace/core/lifecycle-router.d.ts.map +1 -0
- package/dist/src/router/namespace/core/lifecycle-router.js +132 -0
- package/dist/src/router/namespace/core/lifecycle-router.js.map +1 -0
- package/dist/src/router/namespace/core/state-router.d.ts +32 -0
- package/dist/src/router/namespace/core/state-router.d.ts.map +1 -0
- package/dist/src/router/namespace/core/state-router.js +157 -0
- package/dist/src/router/namespace/core/state-router.js.map +1 -0
- package/dist/src/router/namespace/domain/code-router.d.ts +26 -0
- package/dist/src/router/namespace/domain/code-router.d.ts.map +1 -0
- package/dist/src/router/namespace/domain/code-router.js +171 -0
- package/dist/src/router/namespace/domain/code-router.js.map +1 -0
- package/dist/src/router/namespace/domain/debug-router.d.ts +25 -0
- package/dist/src/router/namespace/domain/debug-router.d.ts.map +1 -0
- package/dist/src/router/namespace/domain/debug-router.js +139 -0
- package/dist/src/router/namespace/domain/debug-router.js.map +1 -0
- package/dist/src/router/namespace/domain/plan-router.d.ts +29 -0
- package/dist/src/router/namespace/domain/plan-router.d.ts.map +1 -0
- package/dist/src/router/namespace/domain/plan-router.js +160 -0
- package/dist/src/router/namespace/domain/plan-router.js.map +1 -0
- package/dist/src/router/namespace/domain/review-router.d.ts +24 -0
- package/dist/src/router/namespace/domain/review-router.d.ts.map +1 -0
- package/dist/src/router/namespace/domain/review-router.js +116 -0
- package/dist/src/router/namespace/domain/review-router.js.map +1 -0
- package/dist/src/router/namespace/index.d.ts +19 -0
- package/dist/src/router/namespace/index.d.ts.map +1 -0
- package/dist/src/router/namespace/index.js +22 -0
- package/dist/src/router/namespace/index.js.map +1 -0
- package/dist/src/router/namespace/registry.d.ts +67 -0
- package/dist/src/router/namespace/registry.d.ts.map +1 -0
- package/dist/src/router/namespace/registry.js +197 -0
- package/dist/src/router/namespace/registry.js.map +1 -0
- package/dist/src/router/namespace/types.d.ts +124 -0
- package/dist/src/router/namespace/types.d.ts.map +1 -0
- package/dist/src/router/namespace/types.js +20 -0
- package/dist/src/router/namespace/types.js.map +1 -0
- package/dist/src/router/namespace/utility/fallback-router.d.ts +28 -0
- package/dist/src/router/namespace/utility/fallback-router.d.ts.map +1 -0
- package/dist/src/router/namespace/utility/fallback-router.js +88 -0
- package/dist/src/router/namespace/utility/fallback-router.js.map +1 -0
- package/dist/src/router/namespace/utility/quick-task-router.d.ts +28 -0
- package/dist/src/router/namespace/utility/quick-task-router.d.ts.map +1 -0
- package/dist/src/router/namespace/utility/quick-task-router.js +99 -0
- package/dist/src/router/namespace/utility/quick-task-router.js.map +1 -0
- package/dist/src/router/namespace/utility/research-router.d.ts +24 -0
- package/dist/src/router/namespace/utility/research-router.d.ts.map +1 -0
- package/dist/src/router/namespace/utility/research-router.js +84 -0
- package/dist/src/router/namespace/utility/research-router.js.map +1 -0
- package/dist/src/skills/agents-md/index.js +2 -2
- package/dist/src/skills/agents-md/index.js.map +1 -1
- package/dist/src/skills/execute-plan/index.d.ts +45 -65
- package/dist/src/skills/execute-plan/index.d.ts.map +1 -1
- package/dist/src/skills/execute-plan/index.js +325 -551
- package/dist/src/skills/execute-plan/index.js.map +1 -1
- package/dist/src/skills/index.d.ts +1 -0
- package/dist/src/skills/index.d.ts.map +1 -1
- package/dist/src/skills/index.js +1 -0
- package/dist/src/skills/index.js.map +1 -1
- package/dist/src/skills/quick-task/index.d.ts +4 -4
- package/dist/src/skills/quick-task/index.js +1 -1
- package/dist/src/skills/quick-task/index.js.map +1 -1
- package/dist/src/skills/review-diff/index.d.ts +6 -6
- package/dist/src/skills/review-diff/index.js +1 -1
- package/dist/src/skills/review-diff/index.js.map +1 -1
- package/dist/src/skills/router/index.d.ts +101 -0
- package/dist/src/skills/router/index.d.ts.map +1 -0
- package/dist/src/skills/router/index.js +450 -0
- package/dist/src/skills/router/index.js.map +1 -0
- package/dist/src/skills/router/types.d.ts +79 -0
- package/dist/src/skills/router/types.d.ts.map +1 -0
- package/dist/src/skills/router/types.js +8 -0
- package/dist/src/skills/router/types.js.map +1 -0
- package/dist/src/skills/systematic-debugging/index.js +1 -1
- package/dist/src/skills/systematic-debugging/index.js.map +1 -1
- package/dist/src/skills/tdd/index.d.ts +14 -14
- package/dist/src/skills/tdd/index.js +1 -1
- package/dist/src/skills/tdd/index.js.map +1 -1
- package/dist/src/skills/to-plan/index-enhanced.d.ts +4 -4
- package/dist/src/skills/to-plan/index-enhanced.d.ts.map +1 -1
- package/dist/src/skills/to-plan/index-enhanced.js +3 -5
- package/dist/src/skills/to-plan/index-enhanced.js.map +1 -1
- package/dist/src/skills/to-plan/index.d.ts +24 -91
- package/dist/src/skills/to-plan/index.d.ts.map +1 -1
- package/dist/src/skills/to-plan/index.js +214 -409
- package/dist/src/skills/to-plan/index.js.map +1 -1
- package/package.json +3 -5
- package/scripts/postinstall.js +42 -47
- package/src/agents/contracts/implementer.ts +122 -0
- package/src/agents/contracts/index.ts +27 -0
- package/src/agents/contracts/planner.ts +129 -0
- package/src/agents/contracts/router.ts +168 -0
- package/src/agents/contracts/verifier.ts +137 -0
- package/src/agents/dispatcher.ts +387 -362
- package/src/persistence/index.ts +10 -4
- package/src/persistence/plan-md.ts +52 -18
- package/src/persistence/state-md.ts +45 -23
- package/src/persistence/types.ts +37 -40
- package/src/pi-extension.ts +38 -76
- package/src/router/namespace/README.md +127 -0
- package/src/router/namespace/core/intent-router.ts +221 -0
- package/src/router/namespace/core/lifecycle-router.ts +156 -0
- package/src/router/namespace/core/state-router.ts +192 -0
- package/src/router/namespace/domain/code-router.ts +202 -0
- package/src/router/namespace/domain/debug-router.ts +167 -0
- package/src/router/namespace/domain/plan-router.ts +196 -0
- package/src/router/namespace/domain/review-router.ts +142 -0
- package/src/router/namespace/index.ts +84 -0
- package/src/router/namespace/registry.ts +242 -0
- package/src/router/namespace/types.ts +182 -0
- package/src/router/namespace/utility/fallback-router.ts +107 -0
- package/src/router/namespace/utility/quick-task-router.ts +121 -0
- package/src/router/namespace/utility/research-router.ts +105 -0
- package/src/skills/agents-md/index.ts +2 -2
- package/src/skills/execute-plan/index.ts +419 -673
- package/src/skills/index.ts +1 -0
- package/src/skills/quick-task/index.ts +1 -1
- package/src/skills/review-diff/index.ts +1 -1
- package/src/skills/router/SKILL.md +81 -0
- package/src/skills/router/index.ts +577 -0
- package/src/skills/router/types.ts +90 -0
- package/src/skills/systematic-debugging/index.ts +1 -1
- package/src/skills/tdd/index.ts +1 -1
- package/src/skills/to-plan/index-enhanced.ts +3 -5
- package/src/skills/to-plan/index.ts +231 -502
- package/dist/src/extension/classifier.d.ts +0 -18
- package/dist/src/extension/classifier.d.ts.map +0 -1
- package/dist/src/extension/classifier.js +0 -143
- package/dist/src/extension/classifier.js.map +0 -1
- package/src/extension/classifier.ts +0 -160
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Intent classifier for user input
|
|
3
|
-
* Maps natural language to yi-workflow skills
|
|
4
|
-
*/
|
|
5
|
-
export interface IntentResult {
|
|
6
|
-
skill?: string;
|
|
7
|
-
confidence: "high" | "medium" | "low";
|
|
8
|
-
reason: string;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Classify user intent and return appropriate skill
|
|
12
|
-
*/
|
|
13
|
-
export declare function classifyIntent(message: string): IntentResult;
|
|
14
|
-
/**
|
|
15
|
-
* Check if input should be dispatched to a skill
|
|
16
|
-
*/
|
|
17
|
-
export declare function shouldDispatch(message: string): boolean;
|
|
18
|
-
//# sourceMappingURL=classifier.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../../src/extension/classifier.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAyI5D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGvD"}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Intent classifier for user input
|
|
3
|
-
* Maps natural language to yi-workflow skills
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Classify user intent and return appropriate skill
|
|
7
|
-
*/
|
|
8
|
-
export function classifyIntent(message) {
|
|
9
|
-
const lower = message.toLowerCase().trim();
|
|
10
|
-
// Pattern definitions with priority
|
|
11
|
-
const patterns = [
|
|
12
|
-
// High confidence patterns
|
|
13
|
-
{
|
|
14
|
-
skill: "to-plan",
|
|
15
|
-
confidence: "high",
|
|
16
|
-
patterns: [
|
|
17
|
-
/^(plan|design|architect)\b/i,
|
|
18
|
-
/^(create|make|write).*\bplan\b/i,
|
|
19
|
-
/^(how|what).*\b(approach|strategy)\b/i,
|
|
20
|
-
/^(break|split|divide).*\b(down|into)\b/i,
|
|
21
|
-
/\b(plan|design)\b.*\b(feature|module|system)\b/i,
|
|
22
|
-
/\bimplement\b.*\bplan\b/i,
|
|
23
|
-
],
|
|
24
|
-
reason: "Detected planning/architecture intent",
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
skill: "execute-plan",
|
|
28
|
-
confidence: "high",
|
|
29
|
-
patterns: [
|
|
30
|
-
/^(execute|run|implement)\b.*\bplan\b/i,
|
|
31
|
-
/^(start|begin|proceed)\b.*\bimplement/i,
|
|
32
|
-
/\bplan\b.*\b(approved|ready)\b/i,
|
|
33
|
-
/^(continue|resume)\b.*\b(workflow|execution)\b/i,
|
|
34
|
-
],
|
|
35
|
-
reason: "Detected execution intent",
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
skill: "systematic-debugging",
|
|
39
|
-
confidence: "high",
|
|
40
|
-
patterns: [
|
|
41
|
-
/^(debug|fix|investigate|trace)\b/i,
|
|
42
|
-
/\b(bug|error|crash|fail)\b/i,
|
|
43
|
-
/\b(broken|not working|issue|problem)\b/i,
|
|
44
|
-
/\b(intermittent|flaky)\b/i,
|
|
45
|
-
/\b(root cause|diagnose)\b/i,
|
|
46
|
-
],
|
|
47
|
-
reason: "Detected debugging intent",
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
skill: "tdd",
|
|
51
|
-
confidence: "high",
|
|
52
|
-
patterns: [
|
|
53
|
-
/\btdd\b/i,
|
|
54
|
-
/^(test|write test).*\bfirst\b/i,
|
|
55
|
-
/\bred.?green.?refactor\b/i,
|
|
56
|
-
/\b(test driven|test-driven)\b/i,
|
|
57
|
-
/^(add|write).*\btest\b.*\b(for|before)\b/i,
|
|
58
|
-
],
|
|
59
|
-
reason: "Detected TDD intent",
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
skill: "review-diff",
|
|
63
|
-
confidence: "high",
|
|
64
|
-
patterns: [
|
|
65
|
-
/^(review|audit|inspect)\b/i,
|
|
66
|
-
/\b(code|pull|pr)\b.*\breview\b/i,
|
|
67
|
-
/\b(quality|check|verify)\b.*\bcode\b/i,
|
|
68
|
-
/\blooks\b.*\b(good|correct|ok)\b.*/i,
|
|
69
|
-
],
|
|
70
|
-
reason: "Detected review intent",
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
skill: "agents-md",
|
|
74
|
-
confidence: "high",
|
|
75
|
-
patterns: [
|
|
76
|
-
/\b(CLAUDE|AGENTS|CONTEXT)\.md\b/i,
|
|
77
|
-
/^(create|update|write).*\b(agent|context|instruction)\b.*\b(file|md)\b/i,
|
|
78
|
-
/\b(agent instruction|system prompt)\b/i,
|
|
79
|
-
],
|
|
80
|
-
reason: "Detected agent file creation intent",
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
skill: "quick-task",
|
|
84
|
-
confidence: "high",
|
|
85
|
-
patterns: [
|
|
86
|
-
/\b(typo|fix typo|rename|import|config)\b/i,
|
|
87
|
-
/^(quick|small|simple|minor)\b.*\b(fix|change|update)\b/i,
|
|
88
|
-
/\bversion bump\b/i,
|
|
89
|
-
/\bgitignore\b/i,
|
|
90
|
-
/^(add|remove|update)\s+\w+\s*$/i, // Single word tasks
|
|
91
|
-
],
|
|
92
|
-
reason: "Detected quick task intent",
|
|
93
|
-
},
|
|
94
|
-
// Medium confidence patterns
|
|
95
|
-
{
|
|
96
|
-
skill: "to-plan",
|
|
97
|
-
confidence: "medium",
|
|
98
|
-
patterns: [
|
|
99
|
-
/\b(need|want)\b.*\bplan\b/i,
|
|
100
|
-
/\b(implement|build|create)\b.*\b(feature|function)\b/i,
|
|
101
|
-
],
|
|
102
|
-
reason: "Potential planning intent",
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
skill: "quick-task",
|
|
106
|
-
confidence: "medium",
|
|
107
|
-
patterns: [
|
|
108
|
-
/^(fix|update|change|rename|add|remove)\b/i,
|
|
109
|
-
/\b(update|change)\b.*\b(config|setting|value)\b/i,
|
|
110
|
-
],
|
|
111
|
-
reason: "Potential quick task intent",
|
|
112
|
-
},
|
|
113
|
-
// Low confidence catch-all
|
|
114
|
-
{
|
|
115
|
-
skill: "quick-task",
|
|
116
|
-
confidence: "low",
|
|
117
|
-
patterns: [
|
|
118
|
-
/^(do|make|help)\b/i,
|
|
119
|
-
/\b(can you|could you)\b/i,
|
|
120
|
-
],
|
|
121
|
-
reason: "Unclear intent - using quick-task for exploration",
|
|
122
|
-
},
|
|
123
|
-
];
|
|
124
|
-
// Find first matching pattern
|
|
125
|
-
for (const { skill, confidence, patterns: pats, reason } of patterns) {
|
|
126
|
-
if (pats.some((p) => p.test(lower))) {
|
|
127
|
-
return { skill, confidence, reason };
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
// No match - return with fallback suggestion
|
|
131
|
-
return {
|
|
132
|
-
confidence: "low",
|
|
133
|
-
reason: "No clear intent detected",
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Check if input should be dispatched to a skill
|
|
138
|
-
*/
|
|
139
|
-
export function shouldDispatch(message) {
|
|
140
|
-
const result = classifyIntent(message);
|
|
141
|
-
return result.skill !== undefined;
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=classifier.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../../src/extension/classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Intent classifier for user input
|
|
3
|
-
* Maps natural language to yi-workflow skills
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
export interface IntentResult {
|
|
7
|
-
skill?: string;
|
|
8
|
-
confidence: "high" | "medium" | "low";
|
|
9
|
-
reason: string;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Classify user intent and return appropriate skill
|
|
14
|
-
*/
|
|
15
|
-
export function classifyIntent(message: string): IntentResult {
|
|
16
|
-
const lower = message.toLowerCase().trim();
|
|
17
|
-
|
|
18
|
-
// Pattern definitions with priority
|
|
19
|
-
const patterns: Array<{
|
|
20
|
-
skill: string;
|
|
21
|
-
confidence: "high" | "medium" | "low";
|
|
22
|
-
patterns: RegExp[];
|
|
23
|
-
reason: string;
|
|
24
|
-
}> = [
|
|
25
|
-
// High confidence patterns
|
|
26
|
-
{
|
|
27
|
-
skill: "to-plan",
|
|
28
|
-
confidence: "high",
|
|
29
|
-
patterns: [
|
|
30
|
-
/^(plan|design|architect)\b/i,
|
|
31
|
-
/^(create|make|write).*\bplan\b/i,
|
|
32
|
-
/^(how|what).*\b(approach|strategy)\b/i,
|
|
33
|
-
/^(break|split|divide).*\b(down|into)\b/i,
|
|
34
|
-
/\b(plan|design)\b.*\b(feature|module|system)\b/i,
|
|
35
|
-
/\bimplement\b.*\bplan\b/i,
|
|
36
|
-
],
|
|
37
|
-
reason: "Detected planning/architecture intent",
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
skill: "execute-plan",
|
|
41
|
-
confidence: "high",
|
|
42
|
-
patterns: [
|
|
43
|
-
/^(execute|run|implement)\b.*\bplan\b/i,
|
|
44
|
-
/^(start|begin|proceed)\b.*\bimplement/i,
|
|
45
|
-
/\bplan\b.*\b(approved|ready)\b/i,
|
|
46
|
-
/^(continue|resume)\b.*\b(workflow|execution)\b/i,
|
|
47
|
-
],
|
|
48
|
-
reason: "Detected execution intent",
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
skill: "systematic-debugging",
|
|
52
|
-
confidence: "high",
|
|
53
|
-
patterns: [
|
|
54
|
-
/^(debug|fix|investigate|trace)\b/i,
|
|
55
|
-
/\b(bug|error|crash|fail)\b/i,
|
|
56
|
-
/\b(broken|not working|issue|problem)\b/i,
|
|
57
|
-
/\b(intermittent|flaky)\b/i,
|
|
58
|
-
/\b(root cause|diagnose)\b/i,
|
|
59
|
-
],
|
|
60
|
-
reason: "Detected debugging intent",
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
skill: "tdd",
|
|
64
|
-
confidence: "high",
|
|
65
|
-
patterns: [
|
|
66
|
-
/\btdd\b/i,
|
|
67
|
-
/^(test|write test).*\bfirst\b/i,
|
|
68
|
-
/\bred.?green.?refactor\b/i,
|
|
69
|
-
/\b(test driven|test-driven)\b/i,
|
|
70
|
-
/^(add|write).*\btest\b.*\b(for|before)\b/i,
|
|
71
|
-
],
|
|
72
|
-
reason: "Detected TDD intent",
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
skill: "review-diff",
|
|
76
|
-
confidence: "high",
|
|
77
|
-
patterns: [
|
|
78
|
-
/^(review|audit|inspect)\b/i,
|
|
79
|
-
/\b(code|pull|pr)\b.*\breview\b/i,
|
|
80
|
-
/\b(quality|check|verify)\b.*\bcode\b/i,
|
|
81
|
-
/\blooks\b.*\b(good|correct|ok)\b.*/i,
|
|
82
|
-
],
|
|
83
|
-
reason: "Detected review intent",
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
skill: "agents-md",
|
|
87
|
-
confidence: "high",
|
|
88
|
-
patterns: [
|
|
89
|
-
/\b(CLAUDE|AGENTS|CONTEXT)\.md\b/i,
|
|
90
|
-
/^(create|update|write).*\b(agent|context|instruction)\b.*\b(file|md)\b/i,
|
|
91
|
-
/\b(agent instruction|system prompt)\b/i,
|
|
92
|
-
],
|
|
93
|
-
reason: "Detected agent file creation intent",
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
skill: "quick-task",
|
|
97
|
-
confidence: "high",
|
|
98
|
-
patterns: [
|
|
99
|
-
/\b(typo|fix typo|rename|import|config)\b/i,
|
|
100
|
-
/^(quick|small|simple|minor)\b.*\b(fix|change|update)\b/i,
|
|
101
|
-
/\bversion bump\b/i,
|
|
102
|
-
/\bgitignore\b/i,
|
|
103
|
-
/^(add|remove|update)\s+\w+\s*$/i, // Single word tasks
|
|
104
|
-
],
|
|
105
|
-
reason: "Detected quick task intent",
|
|
106
|
-
},
|
|
107
|
-
|
|
108
|
-
// Medium confidence patterns
|
|
109
|
-
{
|
|
110
|
-
skill: "to-plan",
|
|
111
|
-
confidence: "medium",
|
|
112
|
-
patterns: [
|
|
113
|
-
/\b(need|want)\b.*\bplan\b/i,
|
|
114
|
-
/\b(implement|build|create)\b.*\b(feature|function)\b/i,
|
|
115
|
-
],
|
|
116
|
-
reason: "Potential planning intent",
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
skill: "quick-task",
|
|
120
|
-
confidence: "medium",
|
|
121
|
-
patterns: [
|
|
122
|
-
/^(fix|update|change|rename|add|remove)\b/i,
|
|
123
|
-
/\b(update|change)\b.*\b(config|setting|value)\b/i,
|
|
124
|
-
],
|
|
125
|
-
reason: "Potential quick task intent",
|
|
126
|
-
},
|
|
127
|
-
|
|
128
|
-
// Low confidence catch-all
|
|
129
|
-
{
|
|
130
|
-
skill: "quick-task",
|
|
131
|
-
confidence: "low",
|
|
132
|
-
patterns: [
|
|
133
|
-
/^(do|make|help)\b/i,
|
|
134
|
-
/\b(can you|could you)\b/i,
|
|
135
|
-
],
|
|
136
|
-
reason: "Unclear intent - using quick-task for exploration",
|
|
137
|
-
},
|
|
138
|
-
];
|
|
139
|
-
|
|
140
|
-
// Find first matching pattern
|
|
141
|
-
for (const { skill, confidence, patterns: pats, reason } of patterns) {
|
|
142
|
-
if (pats.some((p) => p.test(lower))) {
|
|
143
|
-
return { skill, confidence, reason };
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
// No match - return with fallback suggestion
|
|
148
|
-
return {
|
|
149
|
-
confidence: "low",
|
|
150
|
-
reason: "No clear intent detected",
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Check if input should be dispatched to a skill
|
|
156
|
-
*/
|
|
157
|
-
export function shouldDispatch(message: string): boolean {
|
|
158
|
-
const result = classifyIntent(message);
|
|
159
|
-
return result.skill !== undefined;
|
|
160
|
-
}
|