@yuaone/core 0.3.3 → 0.4.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/dist/agent-loop.d.ts +62 -0
- package/dist/agent-loop.d.ts.map +1 -1
- package/dist/agent-loop.js +705 -18
- package/dist/agent-loop.js.map +1 -1
- package/dist/background-agent.d.ts +110 -0
- package/dist/background-agent.d.ts.map +1 -0
- package/dist/background-agent.js +255 -0
- package/dist/background-agent.js.map +1 -0
- package/dist/coding-standards.d.ts +45 -0
- package/dist/coding-standards.d.ts.map +1 -0
- package/dist/coding-standards.js +1152 -0
- package/dist/coding-standards.js.map +1 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -6
- package/dist/constants.js.map +1 -1
- package/dist/context-manager.d.ts +6 -0
- package/dist/context-manager.d.ts.map +1 -1
- package/dist/context-manager.js +23 -4
- package/dist/context-manager.js.map +1 -1
- package/dist/index.d.ts +28 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -2
- package/dist/index.js.map +1 -1
- package/dist/llm-client.d.ts +8 -3
- package/dist/llm-client.d.ts.map +1 -1
- package/dist/llm-client.js +64 -13
- package/dist/llm-client.js.map +1 -1
- package/dist/plugin-auto-loader.d.ts +108 -0
- package/dist/plugin-auto-loader.d.ts.map +1 -0
- package/dist/plugin-auto-loader.js +743 -0
- package/dist/plugin-auto-loader.js.map +1 -0
- package/dist/plugin-registry.d.ts +112 -0
- package/dist/plugin-registry.d.ts.map +1 -0
- package/dist/plugin-registry.js +319 -0
- package/dist/plugin-registry.js.map +1 -0
- package/dist/plugin-types.d.ts +388 -0
- package/dist/plugin-types.d.ts.map +1 -0
- package/dist/plugin-types.js +8 -0
- package/dist/plugin-types.js.map +1 -0
- package/dist/plugin-validator.d.ts +54 -0
- package/dist/plugin-validator.d.ts.map +1 -0
- package/dist/plugin-validator.js +129 -0
- package/dist/plugin-validator.js.map +1 -0
- package/dist/repo-knowledge-graph.d.ts +112 -0
- package/dist/repo-knowledge-graph.d.ts.map +1 -0
- package/dist/repo-knowledge-graph.js +561 -0
- package/dist/repo-knowledge-graph.js.map +1 -0
- package/dist/role-registry.js +1 -1
- package/dist/role-registry.js.map +1 -1
- package/dist/self-debug-loop.d.ts +257 -0
- package/dist/self-debug-loop.d.ts.map +1 -0
- package/dist/self-debug-loop.js +870 -0
- package/dist/self-debug-loop.js.map +1 -0
- package/dist/skill-learner.d.ts +136 -0
- package/dist/skill-learner.d.ts.map +1 -0
- package/dist/skill-learner.js +382 -0
- package/dist/skill-learner.js.map +1 -0
- package/dist/skill-loader.d.ts +90 -0
- package/dist/skill-loader.d.ts.map +1 -0
- package/dist/skill-loader.js +309 -0
- package/dist/skill-loader.js.map +1 -0
- package/dist/specialist-registry.d.ts +132 -0
- package/dist/specialist-registry.d.ts.map +1 -0
- package/dist/specialist-registry.js +413 -0
- package/dist/specialist-registry.js.map +1 -0
- package/dist/sub-agent-prompts.d.ts +45 -0
- package/dist/sub-agent-prompts.d.ts.map +1 -0
- package/dist/sub-agent-prompts.js +177 -0
- package/dist/sub-agent-prompts.js.map +1 -0
- package/dist/sub-agent-router.d.ts +75 -0
- package/dist/sub-agent-router.d.ts.map +1 -0
- package/dist/sub-agent-router.js +174 -0
- package/dist/sub-agent-router.js.map +1 -0
- package/dist/sub-agent.d.ts +48 -0
- package/dist/sub-agent.d.ts.map +1 -1
- package/dist/sub-agent.js +108 -5
- package/dist/sub-agent.js.map +1 -1
- package/dist/system-prompt.d.ts +26 -0
- package/dist/system-prompt.d.ts.map +1 -1
- package/dist/system-prompt.js +177 -7
- package/dist/system-prompt.js.map +1 -1
- package/dist/task-classifier.d.ts +25 -1
- package/dist/task-classifier.d.ts.map +1 -1
- package/dist/task-classifier.js +171 -1
- package/dist/task-classifier.js.map +1 -1
- package/dist/tool-planner.d.ts +160 -0
- package/dist/tool-planner.d.ts.map +1 -0
- package/dist/tool-planner.js +501 -0
- package/dist/tool-planner.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -1
- package/plugins/git/patterns/branch-patterns.json +101 -0
- package/plugins/git/patterns/commit-patterns.json +186 -0
- package/plugins/git/plugin.yaml +128 -0
- package/plugins/git/skills/branch-strategy.md +172 -0
- package/plugins/git/skills/commit-conv.md +178 -0
- package/plugins/git/skills/conflict-resolve.md +159 -0
- package/plugins/git/skills/history-clean.md +199 -0
- package/plugins/git/skills/pr-review.md +196 -0
- package/plugins/git/strategies/conflict-resolve.json +244 -0
- package/plugins/git/strategies/release-flow.json +292 -0
- package/plugins/git/validators/rules.json +348 -0
- package/plugins/react/patterns/anti-patterns.json +88 -0
- package/plugins/react/patterns/components.json +80 -0
- package/plugins/react/patterns/hooks.json +72 -0
- package/plugins/react/plugin.yaml +229 -0
- package/plugins/react/skills/bugfix.md +208 -0
- package/plugins/react/skills/component-gen.md +206 -0
- package/plugins/react/skills/hook-extract.md +208 -0
- package/plugins/react/skills/ssr.md +256 -0
- package/plugins/react/skills/test.md +273 -0
- package/plugins/react/strategies/build-fix.json +43 -0
- package/plugins/react/strategies/hook-loop-fix.json +36 -0
- package/plugins/react/strategies/hydration-fix.json +42 -0
- package/plugins/react/validators/rules.json +92 -0
- package/plugins/typescript/patterns/best-practices.json +25 -0
- package/plugins/typescript/patterns/common-errors.json +32 -0
- package/plugins/typescript/plugin.yaml +74 -0
- package/plugins/typescript/skills/debug.md +23 -0
- package/plugins/typescript/skills/migration.md +24 -0
- package/plugins/typescript/skills/refactor.md +22 -0
- package/plugins/typescript/skills/strict-mode.md +23 -0
- package/plugins/typescript/strategies/strict-migration.json +37 -0
- package/plugins/typescript/strategies/type-error-fix.json +37 -0
- package/plugins/typescript/validators/rules.json +28 -0
package/dist/system-prompt.js
CHANGED
|
@@ -28,21 +28,48 @@ export function buildSystemPrompt(options) {
|
|
|
28
28
|
if (options.projectStructure) {
|
|
29
29
|
sections.push(buildProjectSection(options.projectStructure));
|
|
30
30
|
}
|
|
31
|
-
// 5. YUAN.md 내용 (프로젝트 메모리)
|
|
31
|
+
// 5. YUAN.md 내용 (프로젝트 메모리) — 토큰 예산 보호를 위해 최대 8000자
|
|
32
32
|
if (options.yuanMdContent) {
|
|
33
|
-
|
|
33
|
+
let yuanContent = options.yuanMdContent;
|
|
34
|
+
const MAX_YUAN_MD_CHARS = 8000;
|
|
35
|
+
if (yuanContent.length > MAX_YUAN_MD_CHARS) {
|
|
36
|
+
yuanContent = yuanContent.slice(0, MAX_YUAN_MD_CHARS) + "\n\n[...truncated to preserve token budget]";
|
|
37
|
+
}
|
|
38
|
+
sections.push(`# Project Memory (YUAN.md)\n\nThis is the project's persistent memory. Follow any instructions here as they represent established conventions and decisions.\n\n${yuanContent}`);
|
|
34
39
|
}
|
|
35
40
|
// 6. 도구 사용 전략
|
|
36
41
|
if (options.tools.length > 0) {
|
|
37
42
|
sections.push(buildToolStrategySection(options.tools));
|
|
38
43
|
}
|
|
39
|
-
// 7.
|
|
44
|
+
// 7. 실행 모드
|
|
45
|
+
const execModeSection = buildExecutionModeSection(options.executionMode);
|
|
46
|
+
if (execModeSection)
|
|
47
|
+
sections.push(execModeSection);
|
|
48
|
+
// 8. 에이전트 역할
|
|
49
|
+
const agentRoleSection = buildPromptAgentRoleSection(options.agentRole);
|
|
50
|
+
if (agentRoleSection)
|
|
51
|
+
sections.push(agentRoleSection);
|
|
52
|
+
// 9. 활성 스킬
|
|
53
|
+
const skillsSection = buildActiveSkillsSection(options.activeSkills);
|
|
54
|
+
if (skillsSection)
|
|
55
|
+
sections.push(skillsSection);
|
|
56
|
+
// 10. 경험 힌트
|
|
57
|
+
const experienceSection = buildExperienceSection(options.experienceHints);
|
|
58
|
+
if (experienceSection)
|
|
59
|
+
sections.push(experienceSection);
|
|
60
|
+
// 11. 코드 작업 규칙
|
|
40
61
|
sections.push(CODE_RULES);
|
|
41
|
-
//
|
|
62
|
+
// 12. 안전 규칙
|
|
42
63
|
sections.push(SAFETY_RULES);
|
|
43
|
-
//
|
|
64
|
+
// 13. 복구 프로토콜
|
|
65
|
+
sections.push(RECOVERY_PROTOCOL);
|
|
66
|
+
// 14. 보고 요구사항
|
|
67
|
+
sections.push(REPORTING_REQUIREMENTS);
|
|
68
|
+
// 15. 컨텍스트 예산 규칙
|
|
69
|
+
sections.push(CONTEXT_BUDGET_RULES);
|
|
70
|
+
// 16. 출력 스타일
|
|
44
71
|
sections.push(OUTPUT_STYLE);
|
|
45
|
-
//
|
|
72
|
+
// 17. 추가 규칙
|
|
46
73
|
if (options.additionalRules?.length) {
|
|
47
74
|
sections.push(`# Additional Rules\n\n${options.additionalRules.map((r) => `- ${r}`).join("\n")}`);
|
|
48
75
|
}
|
|
@@ -126,7 +153,7 @@ function buildProjectSection(structure) {
|
|
|
126
153
|
|
|
127
154
|
## Project Structure
|
|
128
155
|
\`\`\`
|
|
129
|
-
${structure.treeView}
|
|
156
|
+
${structure.treeView.length > 3000 ? structure.treeView.slice(0, 3000) + "\n... (truncated)" : structure.treeView}
|
|
130
157
|
\`\`\``;
|
|
131
158
|
}
|
|
132
159
|
// ─── Section: Tool Strategy ───
|
|
@@ -246,4 +273,147 @@ const OUTPUT_STYLE = `# Communication Style
|
|
|
246
273
|
- Don't apologize unnecessarily. Don't use filler phrases.
|
|
247
274
|
- Use code blocks for file paths, commands, and code snippets.
|
|
248
275
|
- When you're done with a task, provide a clear summary of all changes made.`;
|
|
276
|
+
// ─── Section: Execution Mode ───
|
|
277
|
+
function buildExecutionModeSection(mode) {
|
|
278
|
+
if (!mode)
|
|
279
|
+
return "";
|
|
280
|
+
const modeRules = {
|
|
281
|
+
FAST: `Current mode: FAST
|
|
282
|
+
- Minimize exploration. Read only the directly relevant file.
|
|
283
|
+
- Make the smallest correct change. Skip optional verification steps.
|
|
284
|
+
- No cross-file impact analysis unless the change is structural.
|
|
285
|
+
- Prefer file_edit over file_write. One iteration if possible.`,
|
|
286
|
+
NORMAL: `Current mode: NORMAL
|
|
287
|
+
- Standard exploration depth. Read related files as needed.
|
|
288
|
+
- Verify changes with build/test when available.
|
|
289
|
+
- Check imports and usages before renaming/refactoring.`,
|
|
290
|
+
DEEP: `Current mode: DEEP
|
|
291
|
+
- Thorough exploration. Read all potentially affected files.
|
|
292
|
+
- Always verify with full build + test suite.
|
|
293
|
+
- Consider cross-file impact and blast radius.
|
|
294
|
+
- Use grep to find all references before modifying any symbol.
|
|
295
|
+
- Activate relevant skills and strategies when available.`,
|
|
296
|
+
SUPERPOWER: `Current mode: SUPERPOWER
|
|
297
|
+
- Full verification pipeline: build → test → lint → type-check.
|
|
298
|
+
- Activate self-reflection checkpoints after each major change.
|
|
299
|
+
- Consider architectural implications.
|
|
300
|
+
- Use debate/critic loop for critical decisions.
|
|
301
|
+
- Consult all relevant skills and past experience.`,
|
|
302
|
+
COMPACT: `Current mode: COMPACT
|
|
303
|
+
- Continuation mode. You are resuming from a previous session.
|
|
304
|
+
- Read the checkpoint state and continue from where you left off.
|
|
305
|
+
- Minimize redundant exploration — trust previously gathered context.
|
|
306
|
+
- Focus on completing remaining tasks efficiently.`,
|
|
307
|
+
};
|
|
308
|
+
return `# Execution Mode\n\n${modeRules[mode]}`;
|
|
309
|
+
}
|
|
310
|
+
// ─── Section: Agent Role ───
|
|
311
|
+
function buildPromptAgentRoleSection(role) {
|
|
312
|
+
if (!role || role === "generalist")
|
|
313
|
+
return "";
|
|
314
|
+
const roleRules = {
|
|
315
|
+
planner: `You are acting as a PLANNER.
|
|
316
|
+
- Do NOT write or modify code directly.
|
|
317
|
+
- Analyze the codebase structure and create an execution plan.
|
|
318
|
+
- Identify dependencies between tasks and flag risks.
|
|
319
|
+
- Output a numbered task list with file paths and descriptions.`,
|
|
320
|
+
coder: `You are acting as a CODER.
|
|
321
|
+
- Focus on writing correct, minimal code changes.
|
|
322
|
+
- Follow the plan exactly — do not deviate or add features.
|
|
323
|
+
- After each change, verify with the specified command.
|
|
324
|
+
- Report what you changed and the verification result.`,
|
|
325
|
+
critic: `You are acting as a CRITIC.
|
|
326
|
+
- Do NOT write or modify any code.
|
|
327
|
+
- Review the recent changes for: bugs, security issues, performance problems, broken contracts.
|
|
328
|
+
- Be specific: cite file, line, and the exact problem.
|
|
329
|
+
- Flag only real issues, not style preferences.`,
|
|
330
|
+
verifier: `You are acting as a VERIFIER.
|
|
331
|
+
- Run all verification commands (build, test, lint, type-check).
|
|
332
|
+
- Report pass/fail status for each verification step.
|
|
333
|
+
- If any step fails, provide the exact error and affected file.
|
|
334
|
+
- Do NOT fix issues — only report them.`,
|
|
335
|
+
specialist: `You are acting as a SPECIALIST.
|
|
336
|
+
- Focus exclusively on your assigned domain.
|
|
337
|
+
- Apply domain-specific best practices and patterns.
|
|
338
|
+
- Use preferred tools and skills for your specialty.
|
|
339
|
+
- Flag issues outside your domain for other specialists.`,
|
|
340
|
+
recovery: `You are acting as a RECOVERY AGENT.
|
|
341
|
+
- Analyze the failure that triggered this recovery.
|
|
342
|
+
- Classify the error type and identify root cause.
|
|
343
|
+
- Apply the most conservative fix that resolves the issue.
|
|
344
|
+
- Verify the fix and confirm no regressions.
|
|
345
|
+
- If recovery fails after 3 attempts, escalate to user.`,
|
|
346
|
+
};
|
|
347
|
+
return `# Agent Role\n\n${roleRules[role]}`;
|
|
348
|
+
}
|
|
349
|
+
// ─── Section: Active Skills ───
|
|
350
|
+
function buildActiveSkillsSection(skills) {
|
|
351
|
+
if (!skills || skills.length === 0)
|
|
352
|
+
return "";
|
|
353
|
+
const lines = skills.map((s) => {
|
|
354
|
+
let entry = `- ${s.pluginId}/${s.skillName}\n - summary: ${s.summary}`;
|
|
355
|
+
if (s.commonPitfalls?.length) {
|
|
356
|
+
entry += `\n - common pitfalls: ${s.commonPitfalls.join(", ")}`;
|
|
357
|
+
}
|
|
358
|
+
if (s.validation) {
|
|
359
|
+
entry += `\n - validation: ${s.validation}`;
|
|
360
|
+
}
|
|
361
|
+
return entry;
|
|
362
|
+
});
|
|
363
|
+
return `# Active Skills\n\nThe following skills are currently active for this task. Consult them when making decisions:\n\n${lines.join("\n\n")}`;
|
|
364
|
+
}
|
|
365
|
+
// ─── Section: Experience Hints ───
|
|
366
|
+
function buildExperienceSection(hints) {
|
|
367
|
+
if (!hints || hints.length === 0)
|
|
368
|
+
return "";
|
|
369
|
+
return `# Experience Hints\n\nLessons from previous runs on this project:\n\n${hints.map((h) => `- ${h}`).join("\n")}`;
|
|
370
|
+
}
|
|
371
|
+
// ─── Section: Recovery Protocol ───
|
|
372
|
+
const RECOVERY_PROTOCOL = `# Recovery Protocol
|
|
373
|
+
|
|
374
|
+
If a command or verification step fails:
|
|
375
|
+
1. **Classify** the failure (type error, import error, test failure, runtime error, timeout).
|
|
376
|
+
2. **Do not retry unchanged.** If the same command failed, you must change something first.
|
|
377
|
+
3. **Read the error** carefully. Extract the file, line number, and specific message.
|
|
378
|
+
4. **Select strategy:** direct fix → context expansion → alternative approach → rollback → escalate.
|
|
379
|
+
5. **Apply the smallest credible fix** that addresses the root cause.
|
|
380
|
+
6. **Re-run verification** to confirm the fix works.
|
|
381
|
+
7. **Record** what failed and what worked to avoid repeating failed approaches.
|
|
382
|
+
|
|
383
|
+
Never retry the same failing command more than twice without changing your approach.`;
|
|
384
|
+
// ─── Section: Reporting Requirements ───
|
|
385
|
+
const REPORTING_REQUIREMENTS = `# Reporting Requirements
|
|
386
|
+
|
|
387
|
+
At the end of a task, include:
|
|
388
|
+
- **Files changed:** list all created/modified/deleted files
|
|
389
|
+
- **Verification:** what was verified (build/test/lint) and the result
|
|
390
|
+
- **Remaining risk:** any known issues or areas that need attention
|
|
391
|
+
- **Confidence:** your confidence level (low/medium/high) that the change is correct`;
|
|
392
|
+
// ─── Section: Context Budget Rules ───
|
|
393
|
+
const CONTEXT_BUDGET_RULES = `# Context Budget Rules
|
|
394
|
+
|
|
395
|
+
You operate under a finite token budget. Every message, tool result, and injection consumes tokens. Follow these rules to prevent context overflow:
|
|
396
|
+
|
|
397
|
+
## Loading Rules
|
|
398
|
+
- **Prefer summaries over full documents.** Read file excerpts, not entire files, unless the full content is needed.
|
|
399
|
+
- **Load skills only when relevant.** Do not request or inject skill content unless a trigger matches (file pattern, error, or explicit command).
|
|
400
|
+
- **Maximum 3 skills active at once.** If a 4th skill triggers, drop the oldest or lowest-confidence skill.
|
|
401
|
+
- **Avoid repeating previously read files.** If you read a file earlier in this session, do not read it again unless it was modified.
|
|
402
|
+
|
|
403
|
+
## Injection Rules
|
|
404
|
+
- **System messages are permanent.** Every system message stays in context forever (never compacted). Be frugal with system-level injections.
|
|
405
|
+
- **Consolidate error guidance.** When multiple error-related hints are injected in one iteration (recovery + debug + skill), merge them into a single message.
|
|
406
|
+
- **Truncate large outputs.** Tool results over 5,000 characters should be summarized. Grep results over 20 matches should be narrowed.
|
|
407
|
+
- **No redundant context.** Do not re-inject information already present in the conversation (e.g., repeating the task classification after it was already stated).
|
|
408
|
+
|
|
409
|
+
## Budget Awareness
|
|
410
|
+
- **Track your usage.** You receive token usage updates. When usage exceeds 70%, switch to COMPACT mode: shorter responses, fewer explorations, no optional verifications.
|
|
411
|
+
- **At 85% usage:** Stop injecting optional context (skills, strategies, experience hints). Focus only on completing the current task.
|
|
412
|
+
- **At 95% usage:** Save checkpoint and stop. Do not attempt new iterations.
|
|
413
|
+
|
|
414
|
+
## Anti-Patterns
|
|
415
|
+
- Do not read the same file twice without modification.
|
|
416
|
+
- Do not inject full skill markdown into system messages (use summaries).
|
|
417
|
+
- Do not accumulate more than 5 system messages per iteration.
|
|
418
|
+
- Do not grep with overly broad patterns that return 100+ matches.`;
|
|
249
419
|
//# sourceMappingURL=system-prompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,13 @@ export declare enum TaskType {
|
|
|
13
13
|
EXPLAIN = "explain",
|
|
14
14
|
SEARCH = "search",
|
|
15
15
|
CONFIG = "config",
|
|
16
|
-
DEPLOY = "deploy"
|
|
16
|
+
DEPLOY = "deploy",
|
|
17
|
+
DESIGN = "design",
|
|
18
|
+
SECURITY = "security",
|
|
19
|
+
INFRA = "infra",
|
|
20
|
+
PERFORMANCE = "performance",
|
|
21
|
+
MIGRATION = "migration",
|
|
22
|
+
DOCUMENTATION = "documentation"
|
|
17
23
|
}
|
|
18
24
|
/** 태스크 분류 결과 */
|
|
19
25
|
export interface TaskClassification {
|
|
@@ -29,6 +35,10 @@ export interface TaskClassification {
|
|
|
29
35
|
estimatedComplexity: "trivial" | "simple" | "moderate" | "complex";
|
|
30
36
|
/** grep/glob에 사용할 검색 패턴 */
|
|
31
37
|
searchPatterns?: string[];
|
|
38
|
+
/** Recommended specialist agent domain */
|
|
39
|
+
specialistDomain?: string;
|
|
40
|
+
/** Recommended plugin skills to activate */
|
|
41
|
+
recommendedSkills?: string[];
|
|
32
42
|
}
|
|
33
43
|
/**
|
|
34
44
|
* 사용자 입력을 태스크 유형으로 분류하고 최적 도구 시퀀스를 매핑하는 분류기.
|
|
@@ -68,6 +78,20 @@ export declare class TaskClassifier {
|
|
|
68
78
|
* @returns 시스템 프롬프트에 삽입할 문자열
|
|
69
79
|
*/
|
|
70
80
|
formatForSystemPrompt(classification: TaskClassification): string;
|
|
81
|
+
/**
|
|
82
|
+
* Route classification to specialist domain.
|
|
83
|
+
*
|
|
84
|
+
* @param classification - 태스크 분류 결과
|
|
85
|
+
* @returns 전문가 도메인 ID 또는 null (전문가 불필요 시)
|
|
86
|
+
*/
|
|
87
|
+
routeToSpecialist(classification: TaskClassification): string | null;
|
|
88
|
+
/**
|
|
89
|
+
* Get recommended plugin skills for a task type.
|
|
90
|
+
*
|
|
91
|
+
* @param type - 태스크 유형
|
|
92
|
+
* @returns 활성화 추천 스킬 목록
|
|
93
|
+
*/
|
|
94
|
+
getRecommendedSkills(type: TaskType): string[];
|
|
71
95
|
/**
|
|
72
96
|
* 프로젝트 컨텍스트를 기반으로 점수를 보정한다.
|
|
73
97
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-classifier.d.ts","sourceRoot":"","sources":["../src/task-classifier.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,aAAa;AACb,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;
|
|
1
|
+
{"version":3,"file":"task-classifier.d.ts","sourceRoot":"","sources":["../src/task-classifier.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,aAAa;AACb,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,aAAa,kBAAkB;CAChC;AAID,gBAAgB;AAChB,MAAM,WAAW,kBAAkB;IACjC,iBAAiB;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,wBAAwB;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa;IACb,mBAAmB,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IACnE,2BAA2B;IAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAoUD;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,kBAAkB;IAwFtE;;;;;;OAMG;IACG,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,kBAAkB,CAAC;IAkD9B;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE;IAIzC;;;;;OAKG;IACH,qBAAqB,CAAC,cAAc,EAAE,kBAAkB,GAAG,MAAM;IA0CjE;;;;;OAKG;IACH,iBAAiB,CAAC,cAAc,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI;IAsBpE;;;;;OAKG;IACH,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE;IAgB9C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgCzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwF5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;CA0D/B"}
|
package/dist/task-classifier.js
CHANGED
|
@@ -15,6 +15,12 @@ export var TaskType;
|
|
|
15
15
|
TaskType["SEARCH"] = "search";
|
|
16
16
|
TaskType["CONFIG"] = "config";
|
|
17
17
|
TaskType["DEPLOY"] = "deploy";
|
|
18
|
+
TaskType["DESIGN"] = "design";
|
|
19
|
+
TaskType["SECURITY"] = "security";
|
|
20
|
+
TaskType["INFRA"] = "infra";
|
|
21
|
+
TaskType["PERFORMANCE"] = "performance";
|
|
22
|
+
TaskType["MIGRATION"] = "migration";
|
|
23
|
+
TaskType["DOCUMENTATION"] = "documentation";
|
|
18
24
|
})(TaskType || (TaskType = {}));
|
|
19
25
|
const KEYWORD_RULES = [
|
|
20
26
|
{
|
|
@@ -92,6 +98,69 @@ const KEYWORD_RULES = [
|
|
|
92
98
|
],
|
|
93
99
|
weight: 0.9,
|
|
94
100
|
},
|
|
101
|
+
{
|
|
102
|
+
type: TaskType.DESIGN,
|
|
103
|
+
keywords: [
|
|
104
|
+
"디자인", "design", "UI", "UX", "레이아웃", "layout",
|
|
105
|
+
"스타일", "style", "CSS", "tailwind", "컴포넌트 설계",
|
|
106
|
+
"mockup", "와이어프레임", "wireframe", "figma", "프로토타입",
|
|
107
|
+
"responsive", "반응형", "theme", "테마", "색상", "color",
|
|
108
|
+
],
|
|
109
|
+
weight: 0.9,
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
type: TaskType.SECURITY,
|
|
113
|
+
keywords: [
|
|
114
|
+
"보안", "security", "취약점", "vulnerability", "XSS", "CSRF",
|
|
115
|
+
"인증", "auth", "authentication", "authorization", "권한",
|
|
116
|
+
"injection", "인젝션", "OWASP", "시크릿", "secret", "토큰",
|
|
117
|
+
"token", "암호화", "encrypt", "SSL", "TLS", "CVE",
|
|
118
|
+
"dependency audit", "의존성 감사",
|
|
119
|
+
],
|
|
120
|
+
weight: 1.0,
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: TaskType.INFRA,
|
|
124
|
+
keywords: [
|
|
125
|
+
"인프라", "infra", "infrastructure", "서버", "server",
|
|
126
|
+
"kubernetes", "k8s", "terraform", "AWS", "GCP", "Azure",
|
|
127
|
+
"nginx", "로드밸런서", "load balancer", "CDN", "DNS",
|
|
128
|
+
"모니터링", "monitoring", "alerting", "logging",
|
|
129
|
+
"스케일링", "scaling", "클라우드", "cloud",
|
|
130
|
+
],
|
|
131
|
+
weight: 0.9,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: TaskType.PERFORMANCE,
|
|
135
|
+
keywords: [
|
|
136
|
+
"성능", "performance", "최적화", "optimize", "느림", "slow",
|
|
137
|
+
"메모리", "memory", "leak", "누수", "프로파일", "profile",
|
|
138
|
+
"번들", "bundle", "lazy", "캐시", "cache", "caching",
|
|
139
|
+
"렌더링", "rendering", "FPS", "latency", "지연",
|
|
140
|
+
"throughput", "처리량", "bottleneck", "병목",
|
|
141
|
+
],
|
|
142
|
+
weight: 1.0,
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: TaskType.MIGRATION,
|
|
146
|
+
keywords: [
|
|
147
|
+
"마이그레이션", "migration", "업그레이드", "upgrade",
|
|
148
|
+
"버전", "version", "이전", "migrate", "포팅", "port",
|
|
149
|
+
"전환", "transition", "호환", "compatibility", "breaking change",
|
|
150
|
+
"deprecated", "레거시", "legacy", "스키마 변경", "schema change",
|
|
151
|
+
],
|
|
152
|
+
weight: 1.0,
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: TaskType.DOCUMENTATION,
|
|
156
|
+
keywords: [
|
|
157
|
+
"문서", "documentation", "docs", "README", "JSDoc", "TSDoc",
|
|
158
|
+
"주석", "comment", "가이드", "guide", "API 문서", "API docs",
|
|
159
|
+
"changelog", "변경 이력", "wiki", "튜토리얼", "tutorial",
|
|
160
|
+
"사용법", "usage", "예제", "example",
|
|
161
|
+
],
|
|
162
|
+
weight: 0.8,
|
|
163
|
+
},
|
|
95
164
|
];
|
|
96
165
|
// ─── Tool Sequence Mappings ───
|
|
97
166
|
const TOOL_SEQUENCES = {
|
|
@@ -103,6 +172,12 @@ const TOOL_SEQUENCES = {
|
|
|
103
172
|
[TaskType.SEARCH]: ["grep", "glob", "file_read", "code_search"],
|
|
104
173
|
[TaskType.CONFIG]: ["file_read", "file_edit", "shell_exec"],
|
|
105
174
|
[TaskType.DEPLOY]: ["git_ops", "shell_exec", "test_run"],
|
|
175
|
+
[TaskType.DESIGN]: ["glob", "file_read", "file_write", "file_edit", "shell_exec"],
|
|
176
|
+
[TaskType.SECURITY]: ["grep", "file_read", "shell_exec", "file_edit", "test_run"],
|
|
177
|
+
[TaskType.INFRA]: ["file_read", "file_edit", "shell_exec", "git_ops"],
|
|
178
|
+
[TaskType.PERFORMANCE]: ["grep", "file_read", "shell_exec", "file_edit", "test_run"],
|
|
179
|
+
[TaskType.MIGRATION]: ["grep", "file_read", "file_edit", "file_write", "shell_exec", "test_run"],
|
|
180
|
+
[TaskType.DOCUMENTATION]: ["grep", "file_read", "file_write", "file_edit"],
|
|
106
181
|
};
|
|
107
182
|
const COMPLEXITY_SIGNALS = [
|
|
108
183
|
// Complexity increasers
|
|
@@ -206,6 +281,12 @@ Task types:
|
|
|
206
281
|
- search: Find files, code patterns, or specific implementations
|
|
207
282
|
- config: Modify configuration files, environment settings
|
|
208
283
|
- deploy: Build, release, deploy, CI/CD operations
|
|
284
|
+
- design: UI/UX design, styling, layout, responsive design, theming
|
|
285
|
+
- security: Security audits, vulnerability fixes, auth, secrets management
|
|
286
|
+
- infra: Infrastructure, DevOps, cloud, Docker, Kubernetes, CI/CD pipelines
|
|
287
|
+
- performance: Performance optimization, profiling, caching, bundle optimization
|
|
288
|
+
- migration: Version upgrades, schema changes, codebase migration, legacy porting
|
|
289
|
+
- documentation: Documentation, README, API docs, changelogs, guides
|
|
209
290
|
|
|
210
291
|
Respond with ONLY a JSON object (no markdown, no explanation):
|
|
211
292
|
{
|
|
@@ -285,7 +366,7 @@ export class TaskClassifier {
|
|
|
285
366
|
const searchPatterns = extractSearchPatterns(message, bestType);
|
|
286
367
|
// Get tool sequence
|
|
287
368
|
const toolSequence = this.getToolSequence(bestType);
|
|
288
|
-
|
|
369
|
+
const classification = {
|
|
289
370
|
type: bestType,
|
|
290
371
|
confidence,
|
|
291
372
|
toolSequence,
|
|
@@ -293,6 +374,16 @@ export class TaskClassifier {
|
|
|
293
374
|
estimatedComplexity,
|
|
294
375
|
...(searchPatterns.length > 0 ? { searchPatterns } : {}),
|
|
295
376
|
};
|
|
377
|
+
// Populate specialist routing fields
|
|
378
|
+
const specialistDomain = this.routeToSpecialist(classification);
|
|
379
|
+
if (specialistDomain) {
|
|
380
|
+
classification.specialistDomain = specialistDomain;
|
|
381
|
+
}
|
|
382
|
+
const recommendedSkills = this.getRecommendedSkills(bestType);
|
|
383
|
+
if (recommendedSkills.length > 0) {
|
|
384
|
+
classification.recommendedSkills = recommendedSkills;
|
|
385
|
+
}
|
|
386
|
+
return classification;
|
|
296
387
|
}
|
|
297
388
|
/**
|
|
298
389
|
* LLM 강화 태스크 분류 (모호한 경우 사용).
|
|
@@ -382,9 +473,64 @@ export class TaskClassifier {
|
|
|
382
473
|
lines.push(` - ${pattern}`);
|
|
383
474
|
}
|
|
384
475
|
}
|
|
476
|
+
if (classification.specialistDomain) {
|
|
477
|
+
lines.push(``, `Specialist Domain: ${classification.specialistDomain}`);
|
|
478
|
+
}
|
|
479
|
+
if (classification.recommendedSkills && classification.recommendedSkills.length > 0) {
|
|
480
|
+
lines.push(``, `Recommended Skills:`);
|
|
481
|
+
for (const skill of classification.recommendedSkills) {
|
|
482
|
+
lines.push(` - ${skill}`);
|
|
483
|
+
}
|
|
484
|
+
}
|
|
385
485
|
lines.push(`</task-classification>`);
|
|
386
486
|
return lines.join("\n");
|
|
387
487
|
}
|
|
488
|
+
// ─── Specialist Routing ───
|
|
489
|
+
/**
|
|
490
|
+
* Route classification to specialist domain.
|
|
491
|
+
*
|
|
492
|
+
* @param classification - 태스크 분류 결과
|
|
493
|
+
* @returns 전문가 도메인 ID 또는 null (전문가 불필요 시)
|
|
494
|
+
*/
|
|
495
|
+
routeToSpecialist(classification) {
|
|
496
|
+
const SPECIALIST_MAP = {
|
|
497
|
+
[TaskType.DEBUG]: "typescript-specialist",
|
|
498
|
+
[TaskType.FEATURE]: "typescript-specialist",
|
|
499
|
+
[TaskType.REFACTOR]: "typescript-specialist",
|
|
500
|
+
[TaskType.TEST]: "testing-specialist",
|
|
501
|
+
[TaskType.SECURITY]: "security-specialist",
|
|
502
|
+
[TaskType.DESIGN]: null, // no specialist — use generalist
|
|
503
|
+
[TaskType.INFRA]: "infra-specialist",
|
|
504
|
+
[TaskType.PERFORMANCE]: "performance-specialist",
|
|
505
|
+
[TaskType.MIGRATION]: "database-specialist",
|
|
506
|
+
[TaskType.EXPLAIN]: null, // no specialist needed
|
|
507
|
+
[TaskType.SEARCH]: null,
|
|
508
|
+
[TaskType.CONFIG]: null,
|
|
509
|
+
[TaskType.DEPLOY]: "infra-specialist",
|
|
510
|
+
[TaskType.DOCUMENTATION]: null,
|
|
511
|
+
};
|
|
512
|
+
if (classification.confidence < 0.7)
|
|
513
|
+
return null;
|
|
514
|
+
return SPECIALIST_MAP[classification.type] ?? null;
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* Get recommended plugin skills for a task type.
|
|
518
|
+
*
|
|
519
|
+
* @param type - 태스크 유형
|
|
520
|
+
* @returns 활성화 추천 스킬 목록
|
|
521
|
+
*/
|
|
522
|
+
getRecommendedSkills(type) {
|
|
523
|
+
const SKILL_MAP = {
|
|
524
|
+
[TaskType.DEBUG]: ["error-analysis", "log-search", "stack-trace-parser"],
|
|
525
|
+
[TaskType.TEST]: ["test-generator", "coverage-analysis", "mock-generator"],
|
|
526
|
+
[TaskType.SECURITY]: ["vulnerability-scan", "secret-detection", "dependency-audit"],
|
|
527
|
+
[TaskType.PERFORMANCE]: ["profiler", "bundle-analyzer", "cache-advisor"],
|
|
528
|
+
[TaskType.MIGRATION]: ["version-check", "breaking-change-detector", "codemods"],
|
|
529
|
+
[TaskType.INFRA]: ["docker-lint", "terraform-validate", "cloud-cost-estimate"],
|
|
530
|
+
[TaskType.DESIGN]: ["style-lint", "accessibility-check", "responsive-audit"],
|
|
531
|
+
};
|
|
532
|
+
return SKILL_MAP[type] ?? [];
|
|
533
|
+
}
|
|
388
534
|
// ─── Private Helpers ───
|
|
389
535
|
/**
|
|
390
536
|
* 프로젝트 컨텍스트를 기반으로 점수를 보정한다.
|
|
@@ -514,6 +660,30 @@ export class TaskClassifier {
|
|
|
514
660
|
hints.push("Map the dependency graph of affected files before refactoring");
|
|
515
661
|
}
|
|
516
662
|
break;
|
|
663
|
+
case TaskType.DESIGN:
|
|
664
|
+
hints.push("Scan existing styles, themes, and design tokens");
|
|
665
|
+
hints.push("Check for responsive breakpoints and accessibility patterns");
|
|
666
|
+
break;
|
|
667
|
+
case TaskType.SECURITY:
|
|
668
|
+
hints.push("Run dependency audit (npm audit / pnpm audit)");
|
|
669
|
+
hints.push("Check for hardcoded secrets and env variable handling");
|
|
670
|
+
break;
|
|
671
|
+
case TaskType.INFRA:
|
|
672
|
+
hints.push("Review existing Dockerfile, CI config, and deployment scripts");
|
|
673
|
+
hints.push("Check environment variable requirements");
|
|
674
|
+
break;
|
|
675
|
+
case TaskType.PERFORMANCE:
|
|
676
|
+
hints.push("Profile before optimizing — measure, don't guess");
|
|
677
|
+
hints.push("Check bundle size and lazy loading opportunities");
|
|
678
|
+
break;
|
|
679
|
+
case TaskType.MIGRATION:
|
|
680
|
+
hints.push("Identify all breaking changes before migrating");
|
|
681
|
+
hints.push("Check dependency compatibility matrix");
|
|
682
|
+
break;
|
|
683
|
+
case TaskType.DOCUMENTATION:
|
|
684
|
+
hints.push("Scan existing docs for structure and style conventions");
|
|
685
|
+
hints.push("Check for undocumented public APIs and exports");
|
|
686
|
+
break;
|
|
517
687
|
}
|
|
518
688
|
return hints;
|
|
519
689
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-classifier.js","sourceRoot":"","sources":["../src/task-classifier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task-classifier.js","sourceRoot":"","sources":["../src/task-classifier.ts"],"names":[],"mappings":"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"}
|