@nahisaho/musubix-expert-delegation 3.2.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 (138) hide show
  1. package/README.md +208 -0
  2. package/dist/delegation/advisory-mode.d.ts +47 -0
  3. package/dist/delegation/advisory-mode.d.ts.map +1 -0
  4. package/dist/delegation/advisory-mode.js +135 -0
  5. package/dist/delegation/advisory-mode.js.map +1 -0
  6. package/dist/delegation/delegation-engine.d.ts +91 -0
  7. package/dist/delegation/delegation-engine.d.ts.map +1 -0
  8. package/dist/delegation/delegation-engine.js +272 -0
  9. package/dist/delegation/delegation-engine.js.map +1 -0
  10. package/dist/delegation/implementation-mode.d.ts +55 -0
  11. package/dist/delegation/implementation-mode.d.ts.map +1 -0
  12. package/dist/delegation/implementation-mode.js +225 -0
  13. package/dist/delegation/implementation-mode.js.map +1 -0
  14. package/dist/delegation/index.d.ts +10 -0
  15. package/dist/delegation/index.d.ts.map +1 -0
  16. package/dist/delegation/index.js +10 -0
  17. package/dist/delegation/index.js.map +1 -0
  18. package/dist/delegation/prompt-builder.d.ts +52 -0
  19. package/dist/delegation/prompt-builder.d.ts.map +1 -0
  20. package/dist/delegation/prompt-builder.js +220 -0
  21. package/dist/delegation/prompt-builder.js.map +1 -0
  22. package/dist/delegation/retry-handler.d.ts +90 -0
  23. package/dist/delegation/retry-handler.d.ts.map +1 -0
  24. package/dist/delegation/retry-handler.js +186 -0
  25. package/dist/delegation/retry-handler.js.map +1 -0
  26. package/dist/experts/architect.d.ts +16 -0
  27. package/dist/experts/architect.d.ts.map +1 -0
  28. package/dist/experts/architect.js +68 -0
  29. package/dist/experts/architect.js.map +1 -0
  30. package/dist/experts/code-reviewer.d.ts +15 -0
  31. package/dist/experts/code-reviewer.d.ts.map +1 -0
  32. package/dist/experts/code-reviewer.js +70 -0
  33. package/dist/experts/code-reviewer.js.map +1 -0
  34. package/dist/experts/ears-analyst.d.ts +16 -0
  35. package/dist/experts/ears-analyst.d.ts.map +1 -0
  36. package/dist/experts/ears-analyst.js +88 -0
  37. package/dist/experts/ears-analyst.js.map +1 -0
  38. package/dist/experts/expert-interface.d.ts +21 -0
  39. package/dist/experts/expert-interface.d.ts.map +1 -0
  40. package/dist/experts/expert-interface.js +22 -0
  41. package/dist/experts/expert-interface.js.map +1 -0
  42. package/dist/experts/expert-manager.d.ts +81 -0
  43. package/dist/experts/expert-manager.d.ts.map +1 -0
  44. package/dist/experts/expert-manager.js +176 -0
  45. package/dist/experts/expert-manager.js.map +1 -0
  46. package/dist/experts/formal-verifier.d.ts +16 -0
  47. package/dist/experts/formal-verifier.d.ts.map +1 -0
  48. package/dist/experts/formal-verifier.js +87 -0
  49. package/dist/experts/formal-verifier.js.map +1 -0
  50. package/dist/experts/index.d.ts +19 -0
  51. package/dist/experts/index.d.ts.map +1 -0
  52. package/dist/experts/index.js +28 -0
  53. package/dist/experts/index.js.map +1 -0
  54. package/dist/experts/ontology-reasoner.d.ts +16 -0
  55. package/dist/experts/ontology-reasoner.d.ts.map +1 -0
  56. package/dist/experts/ontology-reasoner.js +95 -0
  57. package/dist/experts/ontology-reasoner.js.map +1 -0
  58. package/dist/experts/plan-reviewer.d.ts +16 -0
  59. package/dist/experts/plan-reviewer.d.ts.map +1 -0
  60. package/dist/experts/plan-reviewer.js +75 -0
  61. package/dist/experts/plan-reviewer.js.map +1 -0
  62. package/dist/experts/security-analyst.d.ts +15 -0
  63. package/dist/experts/security-analyst.d.ts.map +1 -0
  64. package/dist/experts/security-analyst.js +67 -0
  65. package/dist/experts/security-analyst.js.map +1 -0
  66. package/dist/index.d.ts +37 -0
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +41 -0
  69. package/dist/index.js.map +1 -0
  70. package/dist/mcp/handlers.d.ts +142 -0
  71. package/dist/mcp/handlers.d.ts.map +1 -0
  72. package/dist/mcp/handlers.js +309 -0
  73. package/dist/mcp/handlers.js.map +1 -0
  74. package/dist/mcp/index.d.ts +7 -0
  75. package/dist/mcp/index.d.ts.map +1 -0
  76. package/dist/mcp/index.js +7 -0
  77. package/dist/mcp/index.js.map +1 -0
  78. package/dist/mcp/schemas.d.ts +80 -0
  79. package/dist/mcp/schemas.d.ts.map +1 -0
  80. package/dist/mcp/schemas.js +318 -0
  81. package/dist/mcp/schemas.js.map +1 -0
  82. package/dist/providers/index.d.ts +9 -0
  83. package/dist/providers/index.d.ts.map +1 -0
  84. package/dist/providers/index.js +8 -0
  85. package/dist/providers/index.js.map +1 -0
  86. package/dist/providers/model-selector.d.ts +54 -0
  87. package/dist/providers/model-selector.d.ts.map +1 -0
  88. package/dist/providers/model-selector.js +83 -0
  89. package/dist/providers/model-selector.js.map +1 -0
  90. package/dist/providers/provider-interface.d.ts +9 -0
  91. package/dist/providers/provider-interface.d.ts.map +1 -0
  92. package/dist/providers/provider-interface.js +9 -0
  93. package/dist/providers/provider-interface.js.map +1 -0
  94. package/dist/providers/usage-statistics.d.ts +59 -0
  95. package/dist/providers/usage-statistics.d.ts.map +1 -0
  96. package/dist/providers/usage-statistics.js +141 -0
  97. package/dist/providers/usage-statistics.js.map +1 -0
  98. package/dist/providers/vscode-lm-provider.d.ts +82 -0
  99. package/dist/providers/vscode-lm-provider.d.ts.map +1 -0
  100. package/dist/providers/vscode-lm-provider.js +232 -0
  101. package/dist/providers/vscode-lm-provider.js.map +1 -0
  102. package/dist/test/helpers.d.ts +54 -0
  103. package/dist/test/helpers.d.ts.map +1 -0
  104. package/dist/test/helpers.js +135 -0
  105. package/dist/test/helpers.js.map +1 -0
  106. package/dist/test/index.d.ts +7 -0
  107. package/dist/test/index.d.ts.map +1 -0
  108. package/dist/test/index.js +7 -0
  109. package/dist/test/index.js.map +1 -0
  110. package/dist/test/mocks.d.ts +128 -0
  111. package/dist/test/mocks.d.ts.map +1 -0
  112. package/dist/test/mocks.js +170 -0
  113. package/dist/test/mocks.js.map +1 -0
  114. package/dist/triggers/index.d.ts +10 -0
  115. package/dist/triggers/index.d.ts.map +1 -0
  116. package/dist/triggers/index.js +8 -0
  117. package/dist/triggers/index.js.map +1 -0
  118. package/dist/triggers/proactive-delegation.d.ts +88 -0
  119. package/dist/triggers/proactive-delegation.d.ts.map +1 -0
  120. package/dist/triggers/proactive-delegation.js +201 -0
  121. package/dist/triggers/proactive-delegation.js.map +1 -0
  122. package/dist/triggers/semantic-router.d.ts +57 -0
  123. package/dist/triggers/semantic-router.d.ts.map +1 -0
  124. package/dist/triggers/semantic-router.js +139 -0
  125. package/dist/triggers/semantic-router.js.map +1 -0
  126. package/dist/triggers/trigger-patterns.d.ts +21 -0
  127. package/dist/triggers/trigger-patterns.d.ts.map +1 -0
  128. package/dist/triggers/trigger-patterns.js +90 -0
  129. package/dist/triggers/trigger-patterns.js.map +1 -0
  130. package/dist/types/errors.d.ts +56 -0
  131. package/dist/types/errors.d.ts.map +1 -0
  132. package/dist/types/errors.js +98 -0
  133. package/dist/types/errors.js.map +1 -0
  134. package/dist/types/index.d.ts +190 -0
  135. package/dist/types/index.d.ts.map +1 -0
  136. package/dist/types/index.js +9 -0
  137. package/dist/types/index.js.map +1 -0
  138. package/package.json +87 -0
package/README.md ADDED
@@ -0,0 +1,208 @@
1
+ # @nahisaho/musubix-expert-delegation
2
+
3
+ Expert Delegation System for MUSUBIX - VS Code Language Model API based AI expert delegation.
4
+
5
+ ## Overview
6
+
7
+ This package provides an intelligent expert delegation system that routes AI tasks to specialized experts based on context detection. It integrates with VS Code's Language Model API (GitHub Copilot) to provide high-quality AI assistance.
8
+
9
+ ## Features
10
+
11
+ - **7 Specialized Experts**
12
+ - Architect: System design, patterns, architecture decisions
13
+ - Security Analyst: Vulnerability detection, security review
14
+ - Code Reviewer: Code quality, best practices, refactoring
15
+ - Plan Reviewer: Design validation, constitution compliance
16
+ - EARS Analyst: Requirements analysis, EARS format conversion (MUSUBIX)
17
+ - Formal Verifier: Z3/Lean4 verification, Hoare logic (MUSUBIX)
18
+ - Ontology Reasoner: Knowledge graph, inference (MUSUBIX)
19
+
20
+ - **Semantic Routing**: Automatic expert detection based on message content
21
+ - **Proactive Delegation**: Auto-suggest security reviews, EARS conversion
22
+ - **11 MCP Tools**: Full Model Context Protocol integration
23
+ - **Advisory & Implementation Modes**: Read-only analysis or code generation
24
+ - **Retry & Escalation**: Exponential backoff, expert escalation
25
+
26
+ ## Installation
27
+
28
+ ```bash
29
+ npm install @nahisaho/musubix-expert-delegation
30
+ ```
31
+
32
+ ## Quick Start
33
+
34
+ ```typescript
35
+ import {
36
+ createDelegationEngine,
37
+ createVSCodeLMProvider,
38
+ } from '@nahisaho/musubix-expert-delegation';
39
+
40
+ // Create provider (VS Code extension context)
41
+ const provider = createVSCodeLMProvider(vscodeContext);
42
+
43
+ // Create delegation engine
44
+ const engine = createDelegationEngine(provider);
45
+
46
+ // Simple delegation (auto-detect expert)
47
+ const result = await engine.delegateSimple(
48
+ 'How should I structure my authentication system?'
49
+ );
50
+ console.log(result.content);
51
+ // → Architect expert provides design recommendations
52
+
53
+ // Explicit expert delegation
54
+ const securityResult = await engine.analyze(
55
+ 'Check this code for vulnerabilities',
56
+ 'security-analyst'
57
+ );
58
+ ```
59
+
60
+ ## MCP Tools
61
+
62
+ | Tool | Description |
63
+ |------|-------------|
64
+ | `expert_delegate` | Generic delegation with auto/explicit expert |
65
+ | `expert_architect` | Architecture design delegation |
66
+ | `expert_security` | Security analysis delegation |
67
+ | `expert_review` | Code review delegation |
68
+ | `expert_plan` | Plan review with constitution check |
69
+ | `expert_ears` | EARS requirements conversion |
70
+ | `expert_formal` | Formal verification (Z3/Lean4) |
71
+ | `expert_ontology` | Ontology reasoning |
72
+ | `trigger_detect` | Detect matching expert |
73
+ | `delegation_retry` | Retry failed delegation |
74
+ | `provider_select` | Select/configure LLM provider |
75
+
76
+ ## Execution Modes
77
+
78
+ ### Advisory Mode (Default)
79
+ Read-only analysis without code generation:
80
+ ```typescript
81
+ const result = await engine.analyze('Review this architecture');
82
+ // Returns analysis, recommendations, risks
83
+ ```
84
+
85
+ ### Implementation Mode
86
+ Code generation with traceability:
87
+ ```typescript
88
+ const result = await engine.generate(
89
+ 'Create a user authentication service',
90
+ 'architect'
91
+ );
92
+ // Returns code with // Traces to: REQ-XXX comments
93
+ ```
94
+
95
+ ## Expert Selection
96
+
97
+ ### Automatic (Semantic Routing)
98
+ ```typescript
99
+ // Message analyzed for trigger patterns
100
+ const result = await engine.delegateSimple('Check security vulnerabilities');
101
+ // → Routed to security-analyst (detected "security", "vulnerabilities")
102
+ ```
103
+
104
+ ### Explicit
105
+ ```typescript
106
+ const result = await engine.delegateSimple('Do something', {
107
+ expertType: 'formal-verifier',
108
+ mode: 'advisory',
109
+ });
110
+ ```
111
+
112
+ ## Proactive Delegation
113
+
114
+ ```typescript
115
+ import { createProactiveDelegation } from '@nahisaho/musubix-expert-delegation';
116
+
117
+ const proactive = createProactiveDelegation();
118
+
119
+ // Detect security patterns in code
120
+ const patterns = proactive.detectSecurityPattern(code);
121
+ // → [{ pattern: 'SQL Injection', severity: 'high' }]
122
+
123
+ // Detect non-EARS requirements
124
+ const nonEars = proactive.detectNonEarsRequirement('The system must...');
125
+ // → { suggestedPattern: 'ubiquitous', confidence: 0.7 }
126
+
127
+ // Get delegation suggestions
128
+ const suggestions = proactive.suggestDelegation(code, requirements);
129
+ // → [{ expert: 'security-analyst', reason: '...', priority: 90 }]
130
+ ```
131
+
132
+ ## Retry & Escalation
133
+
134
+ ```typescript
135
+ import { createRetryHandler } from '@nahisaho/musubix-expert-delegation';
136
+
137
+ const handler = createRetryHandler({
138
+ maxRetries: 3,
139
+ initialDelayMs: 1000,
140
+ backoffMultiplier: 2,
141
+ });
142
+
143
+ // Execute with automatic retry
144
+ const result = await handler.executeWithRetry(
145
+ () => engine.delegate(task),
146
+ 'task-123'
147
+ );
148
+
149
+ // Check escalation path
150
+ const escalation = handler.getEscalationTarget('security-analyst');
151
+ // → { shouldEscalate: true, targetExpert: 'architect' }
152
+ ```
153
+
154
+ ## Constitution Compliance
155
+
156
+ The engine validates tasks against MUSUBIX 10 Constitutional Articles:
157
+
158
+ ```typescript
159
+ const engine = createDelegationEngine(provider, undefined, {
160
+ enableConstitutionCheck: true,
161
+ enforceTraceability: true,
162
+ });
163
+
164
+ // Implementation without requirements → Blocked (Article X)
165
+ const result = await engine.delegate({
166
+ mode: 'implementation',
167
+ context: { userMessage: 'Generate code' }, // No requirements!
168
+ });
169
+ // → success: false, constitutionViolations: [Article X]
170
+ ```
171
+
172
+ ## Testing
173
+
174
+ ```typescript
175
+ import {
176
+ MockVSCodeLMProvider,
177
+ createTestTask,
178
+ createTestContext,
179
+ } from '@nahisaho/musubix-expert-delegation/test';
180
+
181
+ const mockProvider = new MockVSCodeLMProvider();
182
+ mockProvider.setDefaultResponse({
183
+ content: 'Mock analysis result',
184
+ finishReason: 'stop',
185
+ });
186
+
187
+ const engine = createDelegationEngine(mockProvider);
188
+ const result = await engine.analyze('Test message');
189
+ ```
190
+
191
+ ## API Reference
192
+
193
+ See [API Documentation](./docs/api.md) for detailed API reference.
194
+
195
+ ## Requirements
196
+
197
+ - Node.js >= 20.0.0
198
+ - VS Code with GitHub Copilot (for VS Code LM API)
199
+
200
+ ## License
201
+
202
+ MIT
203
+
204
+ ## Related Packages
205
+
206
+ - `@nahisaho/musubix-core` - Core MUSUBIX functionality
207
+ - `@nahisaho/musubix-formal-verify` - Formal verification (Z3, Lean4)
208
+ - `@nahisaho/musubix-ontology-mcp` - Ontology reasoning
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @nahisaho/musubix-expert-delegation
3
+ * Advisory Mode
4
+ *
5
+ * DES-DEL-002
6
+ * Traces to: REQ-DEL-002
7
+ */
8
+ import type { Expert, DelegationContext, DelegationResult } from '../types/index.js';
9
+ import type { LMProvider } from '../types/index.js';
10
+ /**
11
+ * Advisory Mode Handler
12
+ *
13
+ * 読み取り専用の分析・推奨モード。
14
+ * コードを直接生成せず、分析結果と推奨事項を提供する。
15
+ */
16
+ export declare class AdvisoryMode {
17
+ private readonly provider;
18
+ private readonly promptBuilder;
19
+ constructor(provider: LMProvider);
20
+ /**
21
+ * Advisory分析を実行
22
+ */
23
+ analyze(expert: Expert, context: DelegationContext): Promise<DelegationResult>;
24
+ /**
25
+ * セキュリティ分析に特化したAdvisory
26
+ */
27
+ analyzeSecurityOnly(code: string, expert: Expert): Promise<DelegationResult>;
28
+ /**
29
+ * EARS要件分析に特化したAdvisory
30
+ */
31
+ analyzeRequirements(requirementText: string, expert: Expert): Promise<DelegationResult>;
32
+ /**
33
+ * オントロジー推論に特化したAdvisory
34
+ */
35
+ analyzeOntology(query: string, expert: Expert, contextTriples?: Array<{
36
+ s: string;
37
+ p: string;
38
+ o: string;
39
+ }>): Promise<DelegationResult>;
40
+ private buildAdvisorySystemPrompt;
41
+ private parseAdvisoryResponse;
42
+ }
43
+ /**
44
+ * AdvisoryModeのファクトリ関数
45
+ */
46
+ export declare function createAdvisoryMode(provider: LMProvider): AdvisoryMode;
47
+ //# sourceMappingURL=advisory-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advisory-mode.d.ts","sourceRoot":"","sources":["../../src/delegation/advisory-mode.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD;;;;;GAKG;AACH,qBAAa,YAAY;IAGX,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAEjB,QAAQ,EAAE,UAAU;IAIjD;;OAEG;IACG,OAAO,CACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC;IA0B5B;;OAEG;IACG,mBAAmB,CACvB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC;IAU5B;;OAEG;IACG,mBAAmB,CACvB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC;IAgB5B;;OAEG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAC1D,OAAO,CAAC,gBAAgB,CAAC;IAmB5B,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,qBAAqB;CA+B9B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,UAAU,GAAG,YAAY,CAErE"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * @nahisaho/musubix-expert-delegation
3
+ * Advisory Mode
4
+ *
5
+ * DES-DEL-002
6
+ * Traces to: REQ-DEL-002
7
+ */
8
+ import { PromptBuilder } from './prompt-builder.js';
9
+ /**
10
+ * Advisory Mode Handler
11
+ *
12
+ * 読み取り専用の分析・推奨モード。
13
+ * コードを直接生成せず、分析結果と推奨事項を提供する。
14
+ */
15
+ export class AdvisoryMode {
16
+ provider;
17
+ promptBuilder;
18
+ constructor(provider) {
19
+ this.provider = provider;
20
+ this.promptBuilder = new PromptBuilder();
21
+ }
22
+ /**
23
+ * Advisory分析を実行
24
+ */
25
+ async analyze(expert, context) {
26
+ // コンテキストにadvisoryモードを設定
27
+ const advisoryContext = {
28
+ ...context,
29
+ mode: 'advisory',
30
+ };
31
+ // プロンプト構築
32
+ const prompt = this.promptBuilder.build(expert, advisoryContext);
33
+ // Advisory用のシステムプロンプト追加
34
+ const systemPrompt = this.buildAdvisorySystemPrompt(expert);
35
+ // LLM実行
36
+ const response = await this.provider.sendRequest({
37
+ messages: [
38
+ { role: 'system', content: systemPrompt },
39
+ { role: 'user', content: prompt },
40
+ ],
41
+ temperature: 0.3, // 低温度で一貫性を重視
42
+ });
43
+ // 結果をパース
44
+ return this.parseAdvisoryResponse(expert, response.content);
45
+ }
46
+ /**
47
+ * セキュリティ分析に特化したAdvisory
48
+ */
49
+ async analyzeSecurityOnly(code, expert) {
50
+ const context = {
51
+ userMessage: `Analyze the following code for security vulnerabilities:\n\n\`\`\`\n${code}\n\`\`\``,
52
+ mode: 'advisory',
53
+ activeFiles: [{ path: 'input', content: code }],
54
+ };
55
+ return this.analyze(expert, context);
56
+ }
57
+ /**
58
+ * EARS要件分析に特化したAdvisory
59
+ */
60
+ async analyzeRequirements(requirementText, expert) {
61
+ const prompt = this.promptBuilder.buildEarsAnalysisPrompt(requirementText);
62
+ const systemPrompt = this.buildAdvisorySystemPrompt(expert);
63
+ const response = await this.provider.sendRequest({
64
+ messages: [
65
+ { role: 'system', content: systemPrompt },
66
+ { role: 'user', content: prompt },
67
+ ],
68
+ temperature: 0.2,
69
+ });
70
+ return this.parseAdvisoryResponse(expert, response.content);
71
+ }
72
+ /**
73
+ * オントロジー推論に特化したAdvisory
74
+ */
75
+ async analyzeOntology(query, expert, contextTriples) {
76
+ const prompt = this.promptBuilder.buildOntologyReasoningPrompt(query, contextTriples);
77
+ const systemPrompt = this.buildAdvisorySystemPrompt(expert);
78
+ const response = await this.provider.sendRequest({
79
+ messages: [
80
+ { role: 'system', content: systemPrompt },
81
+ { role: 'user', content: prompt },
82
+ ],
83
+ temperature: 0.2,
84
+ });
85
+ return this.parseAdvisoryResponse(expert, response.content);
86
+ }
87
+ buildAdvisorySystemPrompt(expert) {
88
+ return `${expert.systemPrompt}
89
+
90
+ ## Mode: Advisory (Read-Only)
91
+
92
+ IMPORTANT CONSTRAINTS:
93
+ 1. Do NOT generate implementation code
94
+ 2. Focus on analysis, recommendations, and explanations
95
+ 3. Provide actionable insights
96
+ 4. Highlight risks and trade-offs
97
+ 5. Reference relevant best practices and patterns
98
+
99
+ Output Format:
100
+ 1. Summary - Brief overview of findings
101
+ 2. Analysis - Detailed examination
102
+ 3. Recommendations - Prioritized action items
103
+ 4. Risks - Potential issues to consider
104
+ 5. References - Related patterns, standards, or resources`;
105
+ }
106
+ parseAdvisoryResponse(expert, content) {
107
+ // 信頼度を抽出(あれば)
108
+ const confidenceMatch = content.match(/confidence[:\s]+(\d+(?:\.\d+)?)/i);
109
+ const confidence = confidenceMatch
110
+ ? parseFloat(confidenceMatch[1])
111
+ : 0.8;
112
+ // セクションを抽出
113
+ const summaryMatch = content.match(/(?:^|\n)##?\s*summary\s*\n([\s\S]*?)(?=\n##?\s|\n---|\n\*\*|$)/i);
114
+ const recommendationsMatch = content.match(/(?:^|\n)##?\s*recommendations?\s*\n([\s\S]*?)(?=\n##?\s|\n---|\n\*\*|$)/i);
115
+ return {
116
+ success: true,
117
+ expertType: expert.type,
118
+ mode: 'advisory',
119
+ content,
120
+ confidence: Math.min(1, Math.max(0, confidence)),
121
+ metadata: {
122
+ hasSummary: !!summaryMatch,
123
+ hasRecommendations: !!recommendationsMatch,
124
+ contentLength: content.length,
125
+ },
126
+ };
127
+ }
128
+ }
129
+ /**
130
+ * AdvisoryModeのファクトリ関数
131
+ */
132
+ export function createAdvisoryMode(provider) {
133
+ return new AdvisoryMode(provider);
134
+ }
135
+ //# sourceMappingURL=advisory-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advisory-mode.js","sourceRoot":"","sources":["../../src/delegation/advisory-mode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * @nahisaho/musubix-expert-delegation
3
+ * Delegation Engine
4
+ *
5
+ * DES-DEL-001, DES-DEL-002, DES-DEL-003, DES-DEL-004
6
+ * Traces to: REQ-DEL-001, REQ-DEL-002, REQ-DEL-003, REQ-DEL-004
7
+ */
8
+ import type { ExpertType, DelegationTask, DelegationContext, DelegationResult, ExecutionMode } from '../types/index.js';
9
+ import type { LMProvider } from '../types/index.js';
10
+ import { ExpertManager } from '../experts/expert-manager.js';
11
+ import { SemanticRouter } from '../triggers/semantic-router.js';
12
+ import { type RetryConfig, type EscalationConfig } from './retry-handler.js';
13
+ /**
14
+ * Delegation Engine設定
15
+ */
16
+ export interface DelegationEngineConfig {
17
+ /** リトライ設定 */
18
+ retry?: Partial<RetryConfig>;
19
+ /** エスカレーション設定 */
20
+ escalation?: Partial<EscalationConfig>;
21
+ /** デフォルト実行モード */
22
+ defaultMode?: ExecutionMode;
23
+ /** 憲法チェックを有効化 */
24
+ enableConstitutionCheck?: boolean;
25
+ /** トレーサビリティを強制 */
26
+ enforceTraceability?: boolean;
27
+ }
28
+ /**
29
+ * Delegation Engine
30
+ *
31
+ * エキスパート委任の中心的なオーケストレーションコンポーネント。
32
+ */
33
+ export declare class DelegationEngine {
34
+ private readonly expertManager;
35
+ private readonly semanticRouter;
36
+ private readonly advisoryMode;
37
+ private readonly implementationMode;
38
+ private readonly retryHandler;
39
+ private readonly config;
40
+ constructor(provider: LMProvider, expertManager?: ExpertManager, config?: DelegationEngineConfig);
41
+ /**
42
+ * タスクを委任
43
+ */
44
+ delegate(task: DelegationTask): Promise<DelegationResult>;
45
+ /**
46
+ * 簡易委任(メッセージのみ)
47
+ */
48
+ delegateSimple(message: string, options?: {
49
+ expertType?: ExpertType;
50
+ mode?: ExecutionMode;
51
+ relatedRequirements?: string[];
52
+ relatedDesigns?: string[];
53
+ traceLinks?: string[];
54
+ }): Promise<DelegationResult>;
55
+ /**
56
+ * Advisory分析のみを実行
57
+ */
58
+ analyze(message: string, expertType?: ExpertType): Promise<DelegationResult>;
59
+ /**
60
+ * Implementation生成を実行
61
+ */
62
+ generate(message: string, expertType?: ExpertType): Promise<DelegationResult>;
63
+ /**
64
+ * リトライを実行
65
+ */
66
+ retry(taskId: string, previousResult: DelegationResult, feedback?: string): Promise<DelegationResult>;
67
+ /**
68
+ * エスカレーションをトリガー
69
+ */
70
+ escalate(taskId: string, currentExpert: ExpertType, context: DelegationContext): Promise<DelegationResult>;
71
+ /**
72
+ * エキスパートマネージャーを取得
73
+ */
74
+ getExpertManager(): ExpertManager;
75
+ /**
76
+ * セマンティックルーターを取得
77
+ */
78
+ getSemanticRouter(): SemanticRouter;
79
+ private resolveExpert;
80
+ private executeDelegate;
81
+ private checkConstitution;
82
+ private isEarsFormat;
83
+ private hasTraceability;
84
+ private createViolationResult;
85
+ private createMissingTraceabilityResult;
86
+ }
87
+ /**
88
+ * DelegationEngineのファクトリ関数
89
+ */
90
+ export declare function createDelegationEngine(provider: LMProvider, expertManager?: ExpertManager, config?: DelegationEngineConfig): DelegationEngine;
91
+ //# sourceMappingURL=delegation-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-engine.d.ts","sourceRoot":"","sources":["../../src/delegation/delegation-engine.ts"],"names":[],"mappings":"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"}