@yuaone/core 0.3.2 → 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.
Files changed (129) hide show
  1. package/dist/agent-loop.d.ts +62 -0
  2. package/dist/agent-loop.d.ts.map +1 -1
  3. package/dist/agent-loop.js +705 -18
  4. package/dist/agent-loop.js.map +1 -1
  5. package/dist/background-agent.d.ts +110 -0
  6. package/dist/background-agent.d.ts.map +1 -0
  7. package/dist/background-agent.js +255 -0
  8. package/dist/background-agent.js.map +1 -0
  9. package/dist/coding-standards.d.ts +45 -0
  10. package/dist/coding-standards.d.ts.map +1 -0
  11. package/dist/coding-standards.js +1152 -0
  12. package/dist/coding-standards.js.map +1 -0
  13. package/dist/constants.d.ts.map +1 -1
  14. package/dist/constants.js +2 -6
  15. package/dist/constants.js.map +1 -1
  16. package/dist/context-manager.d.ts +6 -0
  17. package/dist/context-manager.d.ts.map +1 -1
  18. package/dist/context-manager.js +23 -4
  19. package/dist/context-manager.js.map +1 -1
  20. package/dist/index.d.ts +28 -4
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +26 -2
  23. package/dist/index.js.map +1 -1
  24. package/dist/llm-client.d.ts +8 -3
  25. package/dist/llm-client.d.ts.map +1 -1
  26. package/dist/llm-client.js +64 -13
  27. package/dist/llm-client.js.map +1 -1
  28. package/dist/plugin-auto-loader.d.ts +108 -0
  29. package/dist/plugin-auto-loader.d.ts.map +1 -0
  30. package/dist/plugin-auto-loader.js +743 -0
  31. package/dist/plugin-auto-loader.js.map +1 -0
  32. package/dist/plugin-registry.d.ts +112 -0
  33. package/dist/plugin-registry.d.ts.map +1 -0
  34. package/dist/plugin-registry.js +319 -0
  35. package/dist/plugin-registry.js.map +1 -0
  36. package/dist/plugin-types.d.ts +388 -0
  37. package/dist/plugin-types.d.ts.map +1 -0
  38. package/dist/plugin-types.js +8 -0
  39. package/dist/plugin-types.js.map +1 -0
  40. package/dist/plugin-validator.d.ts +54 -0
  41. package/dist/plugin-validator.d.ts.map +1 -0
  42. package/dist/plugin-validator.js +129 -0
  43. package/dist/plugin-validator.js.map +1 -0
  44. package/dist/repo-knowledge-graph.d.ts +112 -0
  45. package/dist/repo-knowledge-graph.d.ts.map +1 -0
  46. package/dist/repo-knowledge-graph.js +561 -0
  47. package/dist/repo-knowledge-graph.js.map +1 -0
  48. package/dist/role-registry.js +1 -1
  49. package/dist/role-registry.js.map +1 -1
  50. package/dist/self-debug-loop.d.ts +257 -0
  51. package/dist/self-debug-loop.d.ts.map +1 -0
  52. package/dist/self-debug-loop.js +870 -0
  53. package/dist/self-debug-loop.js.map +1 -0
  54. package/dist/skill-learner.d.ts +136 -0
  55. package/dist/skill-learner.d.ts.map +1 -0
  56. package/dist/skill-learner.js +382 -0
  57. package/dist/skill-learner.js.map +1 -0
  58. package/dist/skill-loader.d.ts +90 -0
  59. package/dist/skill-loader.d.ts.map +1 -0
  60. package/dist/skill-loader.js +309 -0
  61. package/dist/skill-loader.js.map +1 -0
  62. package/dist/specialist-registry.d.ts +132 -0
  63. package/dist/specialist-registry.d.ts.map +1 -0
  64. package/dist/specialist-registry.js +413 -0
  65. package/dist/specialist-registry.js.map +1 -0
  66. package/dist/sub-agent-prompts.d.ts +45 -0
  67. package/dist/sub-agent-prompts.d.ts.map +1 -0
  68. package/dist/sub-agent-prompts.js +177 -0
  69. package/dist/sub-agent-prompts.js.map +1 -0
  70. package/dist/sub-agent-router.d.ts +75 -0
  71. package/dist/sub-agent-router.d.ts.map +1 -0
  72. package/dist/sub-agent-router.js +174 -0
  73. package/dist/sub-agent-router.js.map +1 -0
  74. package/dist/sub-agent.d.ts +48 -0
  75. package/dist/sub-agent.d.ts.map +1 -1
  76. package/dist/sub-agent.js +108 -5
  77. package/dist/sub-agent.js.map +1 -1
  78. package/dist/system-prompt.d.ts +26 -0
  79. package/dist/system-prompt.d.ts.map +1 -1
  80. package/dist/system-prompt.js +177 -7
  81. package/dist/system-prompt.js.map +1 -1
  82. package/dist/task-classifier.d.ts +25 -1
  83. package/dist/task-classifier.d.ts.map +1 -1
  84. package/dist/task-classifier.js +171 -1
  85. package/dist/task-classifier.js.map +1 -1
  86. package/dist/tool-planner.d.ts +160 -0
  87. package/dist/tool-planner.d.ts.map +1 -0
  88. package/dist/tool-planner.js +501 -0
  89. package/dist/tool-planner.js.map +1 -0
  90. package/dist/types.d.ts +1 -1
  91. package/dist/types.d.ts.map +1 -1
  92. package/dist/world-state.d.ts.map +1 -1
  93. package/dist/world-state.js +8 -1
  94. package/dist/world-state.js.map +1 -1
  95. package/package.json +2 -1
  96. package/plugins/git/patterns/branch-patterns.json +101 -0
  97. package/plugins/git/patterns/commit-patterns.json +186 -0
  98. package/plugins/git/plugin.yaml +128 -0
  99. package/plugins/git/skills/branch-strategy.md +172 -0
  100. package/plugins/git/skills/commit-conv.md +178 -0
  101. package/plugins/git/skills/conflict-resolve.md +159 -0
  102. package/plugins/git/skills/history-clean.md +199 -0
  103. package/plugins/git/skills/pr-review.md +196 -0
  104. package/plugins/git/strategies/conflict-resolve.json +244 -0
  105. package/plugins/git/strategies/release-flow.json +292 -0
  106. package/plugins/git/validators/rules.json +348 -0
  107. package/plugins/react/patterns/anti-patterns.json +88 -0
  108. package/plugins/react/patterns/components.json +80 -0
  109. package/plugins/react/patterns/hooks.json +72 -0
  110. package/plugins/react/plugin.yaml +229 -0
  111. package/plugins/react/skills/bugfix.md +208 -0
  112. package/plugins/react/skills/component-gen.md +206 -0
  113. package/plugins/react/skills/hook-extract.md +208 -0
  114. package/plugins/react/skills/ssr.md +256 -0
  115. package/plugins/react/skills/test.md +273 -0
  116. package/plugins/react/strategies/build-fix.json +43 -0
  117. package/plugins/react/strategies/hook-loop-fix.json +36 -0
  118. package/plugins/react/strategies/hydration-fix.json +42 -0
  119. package/plugins/react/validators/rules.json +92 -0
  120. package/plugins/typescript/patterns/best-practices.json +25 -0
  121. package/plugins/typescript/patterns/common-errors.json +32 -0
  122. package/plugins/typescript/plugin.yaml +74 -0
  123. package/plugins/typescript/skills/debug.md +23 -0
  124. package/plugins/typescript/skills/migration.md +24 -0
  125. package/plugins/typescript/skills/refactor.md +22 -0
  126. package/plugins/typescript/skills/strict-mode.md +23 -0
  127. package/plugins/typescript/strategies/strict-migration.json +37 -0
  128. package/plugins/typescript/strategies/type-error-fix.json +37 -0
  129. package/plugins/typescript/validators/rules.json +28 -0
@@ -0,0 +1,75 @@
1
+ /**
2
+ * @module sub-agent-router
3
+ * @description Smart model routing for sub-agents.
4
+ *
5
+ * Strategy: Use the cheapest model that can handle the task well.
6
+ * - Trivial/simple tasks → FAST tier (gpt-4o-mini, haiku)
7
+ * - Moderate tasks → NORMAL tier (gpt-4o, sonnet)
8
+ * - Complex/critical tasks → DEEP tier (gpt-4.1, opus)
9
+ * - Reviewer tasks → one tier below main (cost saving)
10
+ */
11
+ import type { SubAgentRole } from "./sub-agent-prompts.js";
12
+ /** Model tier for sub-agent routing */
13
+ export type SubAgentTier = "FAST" | "NORMAL" | "DEEP";
14
+ /** Routing decision with reasoning */
15
+ export interface RoutingDecision {
16
+ /** Selected model tier */
17
+ tier: SubAgentTier;
18
+ /** Human-readable reason for the decision */
19
+ reason: string;
20
+ /** Cost multiplier relative to FAST=1.0 */
21
+ estimatedCostMultiplier: number;
22
+ }
23
+ /** Signals used to determine optimal model tier */
24
+ export interface TaskSignals {
25
+ /** Sub-agent role */
26
+ role: SubAgentRole;
27
+ /** Task complexity estimate */
28
+ complexity: "trivial" | "simple" | "moderate" | "complex" | "massive";
29
+ /** Number of files involved */
30
+ fileCount: number;
31
+ /** Whether the task involves tests */
32
+ hasTests: boolean;
33
+ /** Whether this is on a critical path (security, auth, payments) */
34
+ isCriticalPath: boolean;
35
+ /** Number of previous failures (retry count) */
36
+ previousFailures: number;
37
+ /** Parent agent's model tier (for cost containment) */
38
+ parentModelTier: SubAgentTier;
39
+ }
40
+ /**
41
+ * Route a sub-agent task to the optimal model tier.
42
+ *
43
+ * Applies a series of rules to select the cheapest model tier
44
+ * that can handle the task effectively. Rules are applied in order:
45
+ *
46
+ * 1. Role-based base tier (reviewer→FAST, debugger→NORMAL minimum, etc.)
47
+ * 2. Complexity modifier (adjusts up/down based on task complexity)
48
+ * 3. Critical path floor (security/auth/payments → NORMAL minimum)
49
+ * 4. Failure escalation (2+ failures → upgrade one tier)
50
+ * 5. Parent containment (never exceed parent's tier)
51
+ *
52
+ * @param signals - Task characteristics used for routing
53
+ * @returns Routing decision with tier, reason, and cost estimate
54
+ */
55
+ export declare function routeSubAgent(signals: TaskSignals): RoutingDecision;
56
+ /**
57
+ * Estimate complexity from task signals when explicit complexity is unknown.
58
+ * Useful when the caller doesn't have a pre-computed complexity level.
59
+ *
60
+ * @param fileCount - Number of files involved
61
+ * @param goalLength - Character length of the goal description
62
+ * @param hasTests - Whether tests are required
63
+ * @returns Estimated complexity level
64
+ */
65
+ export declare function estimateComplexity(fileCount: number, goalLength: number, hasTests: boolean): "trivial" | "simple" | "moderate" | "complex" | "massive";
66
+ /**
67
+ * Get the cost multiplier for a tier.
68
+ * FAST=1.0, NORMAL=5.0, DEEP=20.0
69
+ */
70
+ export declare function getTierCostMultiplier(tier: SubAgentTier): number;
71
+ /**
72
+ * Get all tier names in order from cheapest to most expensive.
73
+ */
74
+ export declare function getAllTiers(): SubAgentTier[];
75
+ //# sourceMappingURL=sub-agent-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sub-agent-router.d.ts","sourceRoot":"","sources":["../src/sub-agent-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI3D,uCAAuC;AACvC,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEtD,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,mDAAmD;AACnD,MAAM,WAAW,WAAW;IAC1B,qBAAqB;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,+BAA+B;IAC/B,UAAU,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACtE,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,cAAc,EAAE,OAAO,CAAC;IACxB,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,eAAe,EAAE,YAAY,CAAC;CAC/B;AA0CD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,eAAe,CA+DnE;AA2CD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,GAChB,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAO3D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,YAAY,EAAE,CAE5C"}
@@ -0,0 +1,174 @@
1
+ /**
2
+ * @module sub-agent-router
3
+ * @description Smart model routing for sub-agents.
4
+ *
5
+ * Strategy: Use the cheapest model that can handle the task well.
6
+ * - Trivial/simple tasks → FAST tier (gpt-4o-mini, haiku)
7
+ * - Moderate tasks → NORMAL tier (gpt-4o, sonnet)
8
+ * - Complex/critical tasks → DEEP tier (gpt-4.1, opus)
9
+ * - Reviewer tasks → one tier below main (cost saving)
10
+ */
11
+ // ─── Constants ───
12
+ const TIER_ORDER = ["FAST", "NORMAL", "DEEP"];
13
+ const COST_MULTIPLIERS = {
14
+ FAST: 1.0,
15
+ NORMAL: 5.0,
16
+ DEEP: 20.0,
17
+ };
18
+ /** Complexity → base tier mapping */
19
+ const COMPLEXITY_BASE_TIER = {
20
+ trivial: "FAST",
21
+ simple: "FAST",
22
+ moderate: "NORMAL",
23
+ complex: "DEEP",
24
+ massive: "DEEP",
25
+ };
26
+ // ─── Helpers ───
27
+ function tierIndex(tier) {
28
+ return TIER_ORDER.indexOf(tier);
29
+ }
30
+ function clampTier(index) {
31
+ const clamped = Math.max(0, Math.min(index, TIER_ORDER.length - 1));
32
+ return TIER_ORDER[clamped];
33
+ }
34
+ function upgradeTier(tier, steps = 1) {
35
+ return clampTier(tierIndex(tier) + steps);
36
+ }
37
+ function downgradeTier(tier, steps = 1) {
38
+ return clampTier(tierIndex(tier) - steps);
39
+ }
40
+ // ─── Router ───
41
+ /**
42
+ * Route a sub-agent task to the optimal model tier.
43
+ *
44
+ * Applies a series of rules to select the cheapest model tier
45
+ * that can handle the task effectively. Rules are applied in order:
46
+ *
47
+ * 1. Role-based base tier (reviewer→FAST, debugger→NORMAL minimum, etc.)
48
+ * 2. Complexity modifier (adjusts up/down based on task complexity)
49
+ * 3. Critical path floor (security/auth/payments → NORMAL minimum)
50
+ * 4. Failure escalation (2+ failures → upgrade one tier)
51
+ * 5. Parent containment (never exceed parent's tier)
52
+ *
53
+ * @param signals - Task characteristics used for routing
54
+ * @returns Routing decision with tier, reason, and cost estimate
55
+ */
56
+ export function routeSubAgent(signals) {
57
+ const reasons = [];
58
+ // Step 1: Role-based starting tier
59
+ let tier = getRoleBaseTier(signals.role, signals.complexity);
60
+ reasons.push(`role=${signals.role}, complexity=${signals.complexity} → ${tier}`);
61
+ // Step 2: Reviewer override — always prefer FAST for reviews
62
+ if (signals.role === "reviewer") {
63
+ tier = "FAST";
64
+ reasons.push("reviewer → FAST (reviews don't need expensive models)");
65
+ }
66
+ // Step 3: Debugger floor — debugging needs reasoning, minimum NORMAL
67
+ if (signals.role === "debugger" && tierIndex(tier) < tierIndex("NORMAL")) {
68
+ tier = "NORMAL";
69
+ reasons.push("debugger → NORMAL minimum (reasoning required)");
70
+ }
71
+ // Step 4: File count pressure — many files suggest higher complexity
72
+ if (signals.fileCount > 10 && tierIndex(tier) < tierIndex("NORMAL")) {
73
+ tier = "NORMAL";
74
+ reasons.push(`fileCount=${signals.fileCount} → NORMAL (many files)`);
75
+ }
76
+ if (signals.fileCount > 25 && tierIndex(tier) < tierIndex("DEEP")) {
77
+ tier = "DEEP";
78
+ reasons.push(`fileCount=${signals.fileCount} → DEEP (massive scope)`);
79
+ }
80
+ // Step 5: Critical path floor — security/auth/payments need NORMAL minimum
81
+ if (signals.isCriticalPath && tierIndex(tier) < tierIndex("NORMAL")) {
82
+ tier = "NORMAL";
83
+ reasons.push("critical path → NORMAL minimum (security/auth/payments)");
84
+ }
85
+ // Step 6: Failure escalation — model wasn't capable enough, upgrade
86
+ if (signals.previousFailures >= 2) {
87
+ const upgraded = upgradeTier(tier);
88
+ if (upgraded !== tier) {
89
+ tier = upgraded;
90
+ reasons.push(`${signals.previousFailures} failures → upgraded to ${tier}`);
91
+ }
92
+ }
93
+ // Step 7: Parent containment — sub-agents never exceed parent tier
94
+ if (tierIndex(tier) > tierIndex(signals.parentModelTier)) {
95
+ tier = signals.parentModelTier;
96
+ reasons.push(`capped to parent tier ${signals.parentModelTier}`);
97
+ }
98
+ // Step 8: If parent is FAST, all sub-agents are FAST (cost containment)
99
+ if (signals.parentModelTier === "FAST") {
100
+ tier = "FAST";
101
+ reasons.push("parent=FAST → all sub-agents FAST (cost containment)");
102
+ }
103
+ return {
104
+ tier,
105
+ reason: reasons.join("; "),
106
+ estimatedCostMultiplier: COST_MULTIPLIERS[tier],
107
+ };
108
+ }
109
+ /**
110
+ * Get the base tier for a role + complexity combination.
111
+ */
112
+ function getRoleBaseTier(role, complexity) {
113
+ // Start with complexity-based tier
114
+ const baseTier = COMPLEXITY_BASE_TIER[complexity] ?? "NORMAL";
115
+ // Role-specific adjustments
116
+ switch (role) {
117
+ case "reviewer":
118
+ // Reviews are always cheap — pattern matching, not generation
119
+ return "FAST";
120
+ case "tester":
121
+ // Simple tests → FAST, complex → NORMAL (never DEEP for tests)
122
+ return complexity === "complex" || complexity === "massive"
123
+ ? "NORMAL"
124
+ : "FAST";
125
+ case "planner":
126
+ // Planning needs reasoning — minimum NORMAL
127
+ return tierIndex(baseTier) < tierIndex("NORMAL") ? "NORMAL" : baseTier;
128
+ case "debugger":
129
+ // Debugging needs reasoning — minimum NORMAL
130
+ return tierIndex(baseTier) < tierIndex("NORMAL") ? "NORMAL" : baseTier;
131
+ case "refactorer":
132
+ // Refactoring: follow complexity, but cap at NORMAL unless massive
133
+ return complexity === "massive" ? "DEEP" : baseTier;
134
+ case "coder":
135
+ default:
136
+ // Coding follows complexity directly
137
+ return baseTier;
138
+ }
139
+ }
140
+ /**
141
+ * Estimate complexity from task signals when explicit complexity is unknown.
142
+ * Useful when the caller doesn't have a pre-computed complexity level.
143
+ *
144
+ * @param fileCount - Number of files involved
145
+ * @param goalLength - Character length of the goal description
146
+ * @param hasTests - Whether tests are required
147
+ * @returns Estimated complexity level
148
+ */
149
+ export function estimateComplexity(fileCount, goalLength, hasTests) {
150
+ // Simple heuristics based on scope
151
+ if (fileCount <= 1 && goalLength < 100 && !hasTests)
152
+ return "trivial";
153
+ if (fileCount <= 2 && goalLength < 300)
154
+ return "simple";
155
+ if (fileCount <= 5 && goalLength < 800)
156
+ return "moderate";
157
+ if (fileCount <= 15)
158
+ return "complex";
159
+ return "massive";
160
+ }
161
+ /**
162
+ * Get the cost multiplier for a tier.
163
+ * FAST=1.0, NORMAL=5.0, DEEP=20.0
164
+ */
165
+ export function getTierCostMultiplier(tier) {
166
+ return COST_MULTIPLIERS[tier];
167
+ }
168
+ /**
169
+ * Get all tier names in order from cheapest to most expensive.
170
+ */
171
+ export function getAllTiers() {
172
+ return [...TIER_ORDER];
173
+ }
174
+ //# sourceMappingURL=sub-agent-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sub-agent-router.js","sourceRoot":"","sources":["../src/sub-agent-router.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@
10
10
  import { EventEmitter } from "node:events";
11
11
  import type { BYOKConfig, ToolExecutor } from "./types.js";
12
12
  import type { GovernorConfig } from "./governor.js";
13
+ import { type SubAgentRole } from "./sub-agent-prompts.js";
14
+ import { type SubAgentTier, type RoutingDecision } from "./sub-agent-router.js";
13
15
  /** Sub-agent lifecycle phase */
14
16
  export type SubAgentPhase = "spawn" | "init" | "execute" | "validate" | "report" | "cleanup";
15
17
  /** Configuration for spawning a sub-agent */
@@ -36,6 +38,37 @@ export interface SubAgentConfig {
36
38
  priority?: number;
37
39
  /** Governor configuration overrides */
38
40
  governorConfig?: Partial<GovernorConfig>;
41
+ /** Sub-agent role for prompt specialization (default: "coder") */
42
+ role?: SubAgentRole;
43
+ /** Primary language of the target files (e.g. "typescript") */
44
+ language?: string;
45
+ /** Framework in use (e.g. "react", "next.js") */
46
+ framework?: string;
47
+ /** Whether this task is on a critical path (security, auth, payments) */
48
+ isCriticalPath?: boolean;
49
+ /** Number of previous failures for this task (for routing escalation) */
50
+ previousFailures?: number;
51
+ /** Parent agent's model tier (for cost containment) */
52
+ parentModelTier?: SubAgentTier;
53
+ }
54
+ /** Verification report generated after sub-agent task execution */
55
+ export interface VerificationReport {
56
+ /** Sub-agent identifier */
57
+ subAgentId: string;
58
+ /** Task identifier */
59
+ taskId: string;
60
+ /** Confidence score (0–1) reflecting how well the task was completed */
61
+ confidence: number;
62
+ /** Whether the task passed verification */
63
+ passed: boolean;
64
+ /** List of issues found during verification */
65
+ issues: string[];
66
+ /** Causal chain: symptom -> hypothesis -> evidence -> conclusion */
67
+ causalChain?: string[];
68
+ /** Number of tool calls that succeeded */
69
+ testsPassed?: number;
70
+ /** Total number of tool calls attempted */
71
+ testsTotal?: number;
39
72
  }
40
73
  /** Result returned when a sub-agent completes (success or failure) */
41
74
  export interface SubAgentResult {
@@ -61,6 +94,10 @@ export interface SubAgentResult {
61
94
  phase: SubAgentPhase;
62
95
  /** Error message if the sub-agent failed */
63
96
  error?: string;
97
+ /** Verification report for main agent validation */
98
+ verification?: VerificationReport;
99
+ /** Model routing decision (which tier was selected and why) */
100
+ routingDecision?: RoutingDecision;
64
101
  }
65
102
  /** DAG context passed to a sub-agent so it understands its place in the plan */
66
103
  export interface DAGContextLike {
@@ -125,6 +162,7 @@ export declare class SubAgent extends EventEmitter {
125
162
  private readonly config;
126
163
  private agentLoop;
127
164
  private iterationCount;
165
+ private routingResult;
128
166
  constructor(config: SubAgentConfig);
129
167
  /**
130
168
  * Build the sub-agent system prompt with scope constraints.
@@ -173,5 +211,15 @@ export declare class SubAgent extends EventEmitter {
173
211
  * Build a SubAgentResult from the collected data.
174
212
  */
175
213
  private buildResult;
214
+ /**
215
+ * Generate a VerificationReport based on the sub-agent's execution results.
216
+ *
217
+ * Assesses confidence based on:
218
+ * - Whether the termination was GOAL_ACHIEVED
219
+ * - Number of changed files vs target files
220
+ * - Iteration efficiency (fewer iterations = higher confidence)
221
+ * - Presence of errors during execution
222
+ */
223
+ private generateVerificationReport;
176
224
  }
177
225
  //# sourceMappingURL=sub-agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sub-agent.d.ts","sourceRoot":"","sources":["../src/sub-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sub-agent.d.ts","sourceRoot":"","sources":["../src/sub-agent.ts"],"names":[],"mappings":"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"}
package/dist/sub-agent.js CHANGED
@@ -11,6 +11,8 @@ import { EventEmitter } from "node:events";
11
11
  import { execFile } from "node:child_process";
12
12
  import { promisify } from "node:util";
13
13
  import { AgentLoop } from "./agent-loop.js";
14
+ import { buildSubAgentPrompt, } from "./sub-agent-prompts.js";
15
+ import { routeSubAgent, estimateComplexity, } from "./sub-agent-router.js";
14
16
  const execFileAsync = promisify(execFile);
15
17
  // ─── SubAgent Class ───
16
18
  /**
@@ -46,6 +48,7 @@ export class SubAgent extends EventEmitter {
46
48
  config;
47
49
  agentLoop = null;
48
50
  iterationCount = 0;
51
+ routingResult = null;
49
52
  constructor(config) {
50
53
  super();
51
54
  this.config = config;
@@ -65,8 +68,17 @@ export class SubAgent extends EventEmitter {
65
68
  */
66
69
  buildPrompt(dagContext) {
67
70
  const sections = [];
68
- // 1. Role definition
69
- sections.push(`You are a YUAN Sub-Agent. Your role: ${this.config.goal}`);
71
+ // 1. Role-specific prompt (from sub-agent-prompts module)
72
+ const role = this.config.role ?? "coder";
73
+ const rolePrompt = buildSubAgentPrompt({
74
+ role,
75
+ language: this.config.language,
76
+ framework: this.config.framework,
77
+ projectContext: dagContext.overallGoal,
78
+ });
79
+ sections.push(rolePrompt);
80
+ // 2. Task-specific goal
81
+ sections.push(`## Your Task\n${this.config.goal}`);
70
82
  // 2. File scope
71
83
  sections.push(`## Your Scope
72
84
  - Target files (WRITE): ${this.config.targetFiles.length > 0 ? this.config.targetFiles.join(", ") : "(none)"}
@@ -139,7 +151,20 @@ ${dagContext.projectStructure}
139
151
  try {
140
152
  // Phase: INIT
141
153
  this.setPhase("init");
142
- // Build the scoped system prompt
154
+ // Route to optimal model tier based on task signals
155
+ const role = this.config.role ?? "coder";
156
+ const complexity = estimateComplexity(this.config.targetFiles.length, this.config.goal.length, this.config.tools.includes("test_run"));
157
+ const taskSignals = {
158
+ role,
159
+ complexity,
160
+ fileCount: this.config.targetFiles.length,
161
+ hasTests: this.config.tools.includes("test_run"),
162
+ isCriticalPath: this.config.isCriticalPath ?? false,
163
+ previousFailures: this.config.previousFailures ?? 0,
164
+ parentModelTier: this.config.parentModelTier ?? "NORMAL",
165
+ };
166
+ this.routingResult = routeSubAgent(taskSignals);
167
+ // Build the scoped system prompt (role-specialized)
143
168
  const systemPrompt = this.buildPrompt(dagContext);
144
169
  // Create a ToolExecutor scoped to the project path and enabled tools
145
170
  const toolExecutor = this.config.createToolExecutor(this.config.projectPath, this.config.tools);
@@ -192,7 +217,9 @@ ${dagContext.projectStructure}
192
217
  // Determine success and build summary
193
218
  const success = termination.reason === "GOAL_ACHIEVED";
194
219
  const summary = this.extractSummary(termination);
195
- const result = this.buildResult(success, summary, changedFiles, tokenUsage.input, tokenUsage.output, success ? undefined : `Terminated: ${termination.reason}`);
220
+ // Generate VerificationReport for main agent validation
221
+ const verification = this.generateVerificationReport(success, termination, changedFiles);
222
+ const result = this.buildResult(success, summary, changedFiles, tokenUsage.input, tokenUsage.output, success ? undefined : `Terminated: ${termination.reason}`, verification);
196
223
  // Phase: CLEANUP
197
224
  this.setPhase("cleanup");
198
225
  this.emit("subagent:complete", result);
@@ -287,7 +314,7 @@ ${dagContext.projectStructure}
287
314
  /**
288
315
  * Build a SubAgentResult from the collected data.
289
316
  */
290
- buildResult(success, summary, changedFiles, inputTokens, outputTokens, error) {
317
+ buildResult(success, summary, changedFiles, inputTokens, outputTokens, error, verification) {
291
318
  return {
292
319
  taskId: this.taskId,
293
320
  success,
@@ -297,6 +324,82 @@ ${dagContext.projectStructure}
297
324
  iterations: this.iterationCount,
298
325
  phase: this.phase,
299
326
  error,
327
+ verification,
328
+ routingDecision: this.routingResult ?? undefined,
329
+ };
330
+ }
331
+ /**
332
+ * Generate a VerificationReport based on the sub-agent's execution results.
333
+ *
334
+ * Assesses confidence based on:
335
+ * - Whether the termination was GOAL_ACHIEVED
336
+ * - Number of changed files vs target files
337
+ * - Iteration efficiency (fewer iterations = higher confidence)
338
+ * - Presence of errors during execution
339
+ */
340
+ generateVerificationReport(success, termination, changedFiles) {
341
+ const issues = [];
342
+ const causalChain = [];
343
+ // Assess confidence based on multiple signals
344
+ let confidence = success ? 0.8 : 0.2;
345
+ // Check file coverage — did we touch the expected target files?
346
+ const targetCount = this.config.targetFiles.length;
347
+ const changedCount = changedFiles.length;
348
+ if (targetCount > 0 && changedCount === 0) {
349
+ issues.push("No target files were modified");
350
+ causalChain.push("symptom: zero changed files");
351
+ causalChain.push("hypothesis: task may not have produced expected output");
352
+ confidence *= 0.5;
353
+ }
354
+ else if (targetCount > 0) {
355
+ const coverage = changedCount / targetCount;
356
+ if (coverage < 0.5) {
357
+ issues.push(`Only ${changedCount}/${targetCount} target files modified`);
358
+ confidence *= 0.7;
359
+ }
360
+ }
361
+ // Iteration efficiency — more iterations spent means less confidence
362
+ const maxIter = this.config.maxIterations;
363
+ if (maxIter > 0) {
364
+ const iterRatio = this.iterationCount / maxIter;
365
+ if (iterRatio >= 1.0) {
366
+ issues.push("Reached maximum iteration limit");
367
+ causalChain.push("evidence: all iterations consumed without early completion");
368
+ confidence *= 0.6;
369
+ }
370
+ else if (iterRatio > 0.8) {
371
+ issues.push("Used >80% of iteration budget");
372
+ confidence *= 0.8;
373
+ }
374
+ }
375
+ // Termination reason analysis
376
+ if (termination.reason === "ERROR") {
377
+ issues.push(`Terminated with error: ${termination.error ?? "unknown"}`);
378
+ causalChain.push(`conclusion: execution failed — ${termination.error}`);
379
+ confidence = Math.min(confidence, 0.1);
380
+ }
381
+ else if (termination.reason === "BUDGET_EXHAUSTED") {
382
+ issues.push("Token budget exhausted before completion");
383
+ confidence = Math.min(confidence, 0.3);
384
+ }
385
+ else if (termination.reason === "USER_CANCELLED") {
386
+ issues.push("Execution was cancelled");
387
+ confidence = Math.min(confidence, 0.15);
388
+ }
389
+ // Clamp confidence to [0, 1]
390
+ confidence = Math.max(0, Math.min(1, confidence));
391
+ // Count tool successes (approximate tests via iteration progress)
392
+ const testsPassed = success ? this.iterationCount : Math.max(0, this.iterationCount - 1);
393
+ const testsTotal = this.iterationCount;
394
+ return {
395
+ subAgentId: `subagent-${this.taskId}`,
396
+ taskId: this.taskId,
397
+ confidence,
398
+ passed: success && confidence >= 0.5,
399
+ issues,
400
+ causalChain: causalChain.length > 0 ? causalChain : undefined,
401
+ testsPassed,
402
+ testsTotal,
300
403
  };
301
404
  }
302
405
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sub-agent.js","sourceRoot":"","sources":["../src/sub-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sub-agent.js","sourceRoot":"","sources":["../src/sub-agent.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,18 @@ export interface SystemPromptOptions {
25
25
  projectPath?: string;
26
26
  /** OS / 환경 정보 */
27
27
  environment?: EnvironmentInfo;
28
+ /** Active skill summaries for current task */
29
+ activeSkills?: SkillSummary[];
30
+ /** Active strategy summaries */
31
+ activeStrategies?: StrategySummary[];
32
+ /** Execution mode determines prompt verbosity and depth */
33
+ executionMode?: ExecutionMode;
34
+ /** Agent role determines role-specific constraints */
35
+ agentRole?: PromptAgentRole;
36
+ /** Experience-based hints from past runs */
37
+ experienceHints?: string[];
38
+ /** Current task type (from TaskClassifier) */
39
+ currentTaskType?: string;
28
40
  }
29
41
  /** 환경 정보 */
30
42
  export interface EnvironmentInfo {
@@ -33,6 +45,20 @@ export interface EnvironmentInfo {
33
45
  nodeVersion?: string;
34
46
  gitBranch?: string;
35
47
  }
48
+ export type ExecutionMode = "FAST" | "NORMAL" | "DEEP" | "SUPERPOWER" | "COMPACT";
49
+ export type PromptAgentRole = "generalist" | "planner" | "coder" | "critic" | "verifier" | "specialist" | "recovery";
50
+ export interface SkillSummary {
51
+ pluginId: string;
52
+ skillName: string;
53
+ summary: string;
54
+ commonPitfalls?: string[];
55
+ validation?: string;
56
+ }
57
+ export interface StrategySummary {
58
+ name: string;
59
+ description: string;
60
+ toolSequence?: string[];
61
+ }
36
62
  /**
37
63
  * 에이전트 시스템 프롬프트를 생성.
38
64
  * @param options 프롬프트 빌드 옵션
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,qBAAqB;AACrB,MAAM,WAAW,mBAAmB;IAClC,oBAAoB;IACpB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,iBAAiB;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB;IACnB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,eAAe;IACf,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB;IACjB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,YAAY;AACZ,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAgDtE"}
1
+ {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,qBAAqB;AACrB,MAAM,WAAW,mBAAmB;IAClC,oBAAoB;IACpB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,iBAAiB;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB;IACnB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,eAAe;IACf,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB;IACjB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,gCAAgC;IAChC,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,2DAA2D;IAC3D,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,sDAAsD;IACtD,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,4CAA4C;IAC5C,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,YAAY;AACZ,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;AAClF,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;AAErH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CA8EtE"}