@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
@@ -0,0 +1,318 @@
1
+ /**
2
+ * @nahisaho/musubix-expert-delegation
3
+ * MCP Tool Schemas
4
+ *
5
+ * DES-MCP-001
6
+ * Traces to: REQ-INT-001
7
+ */
8
+ /**
9
+ * expert_delegate: 汎用委任ツール
10
+ */
11
+ export const expertDelegateSchema = {
12
+ name: 'expert_delegate',
13
+ description: 'Delegate a task to a specialized AI expert. The system automatically selects the appropriate expert based on the message content, or you can specify one explicitly.',
14
+ inputSchema: {
15
+ type: 'object',
16
+ properties: {
17
+ message: {
18
+ type: 'string',
19
+ description: 'The task or question to delegate to the expert',
20
+ },
21
+ expert: {
22
+ type: 'string',
23
+ description: 'Optional: explicitly specify the expert type',
24
+ enum: [
25
+ 'architect',
26
+ 'security-analyst',
27
+ 'code-reviewer',
28
+ 'plan-reviewer',
29
+ 'ears-analyst',
30
+ 'formal-verifier',
31
+ 'ontology-reasoner',
32
+ ],
33
+ },
34
+ mode: {
35
+ type: 'string',
36
+ description: 'Execution mode: advisory (analysis only) or implementation (code generation)',
37
+ enum: ['advisory', 'implementation'],
38
+ default: 'advisory',
39
+ },
40
+ context: {
41
+ type: 'object',
42
+ description: 'Additional context for the delegation',
43
+ },
44
+ },
45
+ required: ['message'],
46
+ },
47
+ };
48
+ /**
49
+ * expert_architect: アーキテクチャ委任
50
+ */
51
+ export const expertArchitectSchema = {
52
+ name: 'expert_architect',
53
+ description: 'Delegate architecture-related tasks to the Architect expert. Use for system design, component structure, design patterns, and architectural decisions.',
54
+ inputSchema: {
55
+ type: 'object',
56
+ properties: {
57
+ message: {
58
+ type: 'string',
59
+ description: 'The architecture question or design task',
60
+ },
61
+ mode: {
62
+ type: 'string',
63
+ description: 'Execution mode',
64
+ enum: ['advisory', 'implementation'],
65
+ default: 'advisory',
66
+ },
67
+ constraints: {
68
+ type: 'array',
69
+ description: 'Architectural constraints to consider',
70
+ items: { type: 'string' },
71
+ },
72
+ },
73
+ required: ['message'],
74
+ },
75
+ };
76
+ /**
77
+ * expert_security: セキュリティ分析委任
78
+ */
79
+ export const expertSecuritySchema = {
80
+ name: 'expert_security',
81
+ description: 'Delegate security analysis to the Security Analyst expert. Use for vulnerability detection, security code review, and threat modeling.',
82
+ inputSchema: {
83
+ type: 'object',
84
+ properties: {
85
+ code: {
86
+ type: 'string',
87
+ description: 'Code to analyze for security vulnerabilities',
88
+ },
89
+ context: {
90
+ type: 'string',
91
+ description: 'Additional context about the code or system',
92
+ },
93
+ threatModel: {
94
+ type: 'boolean',
95
+ description: 'Whether to include threat modeling analysis',
96
+ default: false,
97
+ },
98
+ },
99
+ required: ['code'],
100
+ },
101
+ };
102
+ /**
103
+ * expert_review: コードレビュー委任
104
+ */
105
+ export const expertReviewSchema = {
106
+ name: 'expert_review',
107
+ description: 'Delegate code review to the Code Reviewer expert. Use for code quality analysis, best practices review, and refactoring suggestions.',
108
+ inputSchema: {
109
+ type: 'object',
110
+ properties: {
111
+ code: {
112
+ type: 'string',
113
+ description: 'Code to review',
114
+ },
115
+ language: {
116
+ type: 'string',
117
+ description: 'Programming language of the code',
118
+ },
119
+ focus: {
120
+ type: 'array',
121
+ description: 'Areas to focus on: performance, readability, patterns, bugs',
122
+ items: { type: 'string' },
123
+ },
124
+ },
125
+ required: ['code'],
126
+ },
127
+ };
128
+ /**
129
+ * expert_plan: 計画レビュー委任
130
+ */
131
+ export const expertPlanSchema = {
132
+ name: 'expert_plan',
133
+ description: 'Delegate plan review to the Plan Reviewer expert. Use for validating designs, requirements, and implementation plans against MUSUBIX constitution.',
134
+ inputSchema: {
135
+ type: 'object',
136
+ properties: {
137
+ plan: {
138
+ type: 'string',
139
+ description: 'The plan or design document to review',
140
+ },
141
+ checkConstitution: {
142
+ type: 'boolean',
143
+ description: 'Whether to check against MUSUBIX 10 constitutional articles',
144
+ default: true,
145
+ },
146
+ validateTraceability: {
147
+ type: 'boolean',
148
+ description: 'Whether to validate traceability links',
149
+ default: true,
150
+ },
151
+ },
152
+ required: ['plan'],
153
+ },
154
+ };
155
+ /**
156
+ * expert_ears: EARS分析委任
157
+ */
158
+ export const expertEarsSchema = {
159
+ name: 'expert_ears',
160
+ description: 'Delegate requirements analysis to the EARS Analyst expert. Use for converting natural language requirements to EARS format.',
161
+ inputSchema: {
162
+ type: 'object',
163
+ properties: {
164
+ requirements: {
165
+ type: 'string',
166
+ description: 'Natural language requirements to analyze',
167
+ },
168
+ suggestedPattern: {
169
+ type: 'string',
170
+ description: 'Suggested EARS pattern',
171
+ enum: ['ubiquitous', 'event-driven', 'state-driven', 'unwanted', 'optional'],
172
+ },
173
+ generateIds: {
174
+ type: 'boolean',
175
+ description: 'Whether to generate requirement IDs',
176
+ default: true,
177
+ },
178
+ },
179
+ required: ['requirements'],
180
+ },
181
+ };
182
+ /**
183
+ * expert_formal: 形式検証委任
184
+ */
185
+ export const expertFormalSchema = {
186
+ name: 'expert_formal',
187
+ description: 'Delegate formal verification to the Formal Verifier expert. Use for generating Hoare logic conditions, Z3/SMT queries, and Lean 4 theorems.',
188
+ inputSchema: {
189
+ type: 'object',
190
+ properties: {
191
+ code: {
192
+ type: 'string',
193
+ description: 'Code to formally verify',
194
+ },
195
+ specification: {
196
+ type: 'string',
197
+ description: 'Formal specification or EARS requirement',
198
+ },
199
+ outputFormat: {
200
+ type: 'string',
201
+ description: 'Desired output format',
202
+ enum: ['z3', 'lean4', 'hoare'],
203
+ default: 'z3',
204
+ },
205
+ },
206
+ required: ['code'],
207
+ },
208
+ };
209
+ /**
210
+ * expert_ontology: オントロジー推論委任
211
+ */
212
+ export const expertOntologySchema = {
213
+ name: 'expert_ontology',
214
+ description: 'Delegate ontology reasoning to the Ontology Reasoner expert. Use for knowledge graph queries, inference, and consistency checking.',
215
+ inputSchema: {
216
+ type: 'object',
217
+ properties: {
218
+ query: {
219
+ type: 'string',
220
+ description: 'The reasoning query or question',
221
+ },
222
+ triples: {
223
+ type: 'array',
224
+ description: 'Context knowledge as triples',
225
+ items: { type: 'object' },
226
+ },
227
+ checkConsistency: {
228
+ type: 'boolean',
229
+ description: 'Whether to check knowledge graph consistency',
230
+ default: false,
231
+ },
232
+ },
233
+ required: ['query'],
234
+ },
235
+ };
236
+ /**
237
+ * trigger_detect: トリガー検出
238
+ */
239
+ export const triggerDetectSchema = {
240
+ name: 'trigger_detect',
241
+ description: 'Detect which expert should handle a given message. Returns the matched expert and confidence score.',
242
+ inputSchema: {
243
+ type: 'object',
244
+ properties: {
245
+ message: {
246
+ type: 'string',
247
+ description: 'Message to analyze for expert routing',
248
+ },
249
+ },
250
+ required: ['message'],
251
+ },
252
+ };
253
+ /**
254
+ * delegation_retry: リトライ実行
255
+ */
256
+ export const delegationRetrySchema = {
257
+ name: 'delegation_retry',
258
+ description: 'Retry a failed delegation with optional feedback. Implements exponential backoff.',
259
+ inputSchema: {
260
+ type: 'object',
261
+ properties: {
262
+ taskId: {
263
+ type: 'string',
264
+ description: 'ID of the task to retry',
265
+ },
266
+ feedback: {
267
+ type: 'string',
268
+ description: 'Feedback about why the previous attempt failed',
269
+ },
270
+ },
271
+ required: ['taskId'],
272
+ },
273
+ };
274
+ /**
275
+ * provider_select: プロバイダー選択
276
+ */
277
+ export const providerSelectSchema = {
278
+ name: 'provider_select',
279
+ description: 'Select and configure the LLM provider for expert delegation. Currently supports VS Code Language Model API.',
280
+ inputSchema: {
281
+ type: 'object',
282
+ properties: {
283
+ criteria: {
284
+ type: 'object',
285
+ description: 'Selection criteria (family, version, capabilities)',
286
+ },
287
+ temperature: {
288
+ type: 'number',
289
+ description: 'Temperature setting for LLM (0.0-1.0)',
290
+ default: 0.3,
291
+ },
292
+ },
293
+ required: [],
294
+ },
295
+ };
296
+ /**
297
+ * すべてのスキーマをエクスポート
298
+ */
299
+ export const allSchemas = [
300
+ expertDelegateSchema,
301
+ expertArchitectSchema,
302
+ expertSecuritySchema,
303
+ expertReviewSchema,
304
+ expertPlanSchema,
305
+ expertEarsSchema,
306
+ expertFormalSchema,
307
+ expertOntologySchema,
308
+ triggerDetectSchema,
309
+ delegationRetrySchema,
310
+ providerSelectSchema,
311
+ ];
312
+ /**
313
+ * スキーマを名前で取得
314
+ */
315
+ export function getSchema(name) {
316
+ return allSchemas.find((s) => s.name === name);
317
+ }
318
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/mcp/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @nahisaho/musubix-expert-delegation
3
+ * Providers Module
4
+ */
5
+ export { VSCodeLMProvider, createVSCodeLMProvider } from './vscode-lm-provider.js';
6
+ export { ModelSelector, createModelSelector } from './model-selector.js';
7
+ export { UsageStatistics, createUsageStatistics } from './usage-statistics.js';
8
+ export type { LMProvider, RequestOptions, ProviderResponse, ModelInfo, ModelCriteria, ModelStats, } from './provider-interface.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,YAAY,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,UAAU,GACX,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @nahisaho/musubix-expert-delegation
3
+ * Providers Module
4
+ */
5
+ export { VSCodeLMProvider, createVSCodeLMProvider } from './vscode-lm-provider.js';
6
+ export { ModelSelector, createModelSelector } from './model-selector.js';
7
+ export { UsageStatistics, createUsageStatistics } from './usage-statistics.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @nahisaho/musubix-expert-delegation
3
+ * Model Selector
4
+ *
5
+ * DES-PRV-002
6
+ * Traces to: REQ-PRV-002
7
+ */
8
+ import type { LMProvider, ModelInfo, ModelCriteria } from '../types/index.js';
9
+ /**
10
+ * ModelSelectorを作成するファクトリ関数
11
+ * @param provider - LMプロバイダー
12
+ */
13
+ export declare function createModelSelector(provider: LMProvider): ModelSelector;
14
+ /**
15
+ * モデル選択ヘルパー
16
+ *
17
+ * ファミリー、ベンダー、トークン数などの条件に基づいて
18
+ * 最適なモデルを選択する。
19
+ */
20
+ export declare class ModelSelector {
21
+ private readonly provider;
22
+ constructor(provider: LMProvider);
23
+ /**
24
+ * 条件に合うモデルを選択(プロバイダーへ委譲)
25
+ * @param criteria - モデル選択条件
26
+ */
27
+ selectModel(criteria?: ModelCriteria): Promise<ModelInfo | null>;
28
+ /**
29
+ * ファミリーでモデルを選択
30
+ * @param family - モデルファミリー(gpt-4, claude-3等)
31
+ */
32
+ selectByFamily(family: string): Promise<ModelInfo | null>;
33
+ /**
34
+ * ベンダーでモデルを選択
35
+ * @param vendor - ベンダー(copilot, openai等)
36
+ */
37
+ selectByVendor(vendor: string): Promise<ModelInfo | null>;
38
+ /**
39
+ * プライマリモデルが利用不可の場合、セカンダリにフォールバック
40
+ * @param primary - 優先モデル条件
41
+ * @param secondary - フォールバック条件
42
+ */
43
+ fallback(primary: ModelCriteria, secondary: ModelCriteria): Promise<ModelInfo | null>;
44
+ /**
45
+ * 最大トークン数のモデルを選択
46
+ */
47
+ selectLargestContext(): Promise<ModelInfo | null>;
48
+ /**
49
+ * 複数の条件を順番に試して最初に見つかったモデルを返す
50
+ * @param criteriaList - 条件リスト(優先度順)
51
+ */
52
+ selectFirst(criteriaList: ModelCriteria[]): Promise<ModelInfo | null>;
53
+ }
54
+ //# sourceMappingURL=model-selector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-selector.d.ts","sourceRoot":"","sources":["../../src/providers/model-selector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE9E;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,UAAU,GAAG,aAAa,CAEvE;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,UAAU;IAEjD;;;OAGG;IACG,WAAW,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAItE;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAI/D;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAI/D;;;;OAIG;IACG,QAAQ,CACZ,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,aAAa,GACvB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAS5B;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAWvD;;;OAGG;IACG,WAAW,CAAC,YAAY,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;CAS5E"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @nahisaho/musubix-expert-delegation
3
+ * Model Selector
4
+ *
5
+ * DES-PRV-002
6
+ * Traces to: REQ-PRV-002
7
+ */
8
+ /**
9
+ * ModelSelectorを作成するファクトリ関数
10
+ * @param provider - LMプロバイダー
11
+ */
12
+ export function createModelSelector(provider) {
13
+ return new ModelSelector(provider);
14
+ }
15
+ /**
16
+ * モデル選択ヘルパー
17
+ *
18
+ * ファミリー、ベンダー、トークン数などの条件に基づいて
19
+ * 最適なモデルを選択する。
20
+ */
21
+ export class ModelSelector {
22
+ provider;
23
+ constructor(provider) {
24
+ this.provider = provider;
25
+ }
26
+ /**
27
+ * 条件に合うモデルを選択(プロバイダーへ委譲)
28
+ * @param criteria - モデル選択条件
29
+ */
30
+ async selectModel(criteria) {
31
+ return this.provider.selectModel(criteria);
32
+ }
33
+ /**
34
+ * ファミリーでモデルを選択
35
+ * @param family - モデルファミリー(gpt-4, claude-3等)
36
+ */
37
+ async selectByFamily(family) {
38
+ return this.provider.selectModel({ family });
39
+ }
40
+ /**
41
+ * ベンダーでモデルを選択
42
+ * @param vendor - ベンダー(copilot, openai等)
43
+ */
44
+ async selectByVendor(vendor) {
45
+ return this.provider.selectModel({ vendor });
46
+ }
47
+ /**
48
+ * プライマリモデルが利用不可の場合、セカンダリにフォールバック
49
+ * @param primary - 優先モデル条件
50
+ * @param secondary - フォールバック条件
51
+ */
52
+ async fallback(primary, secondary) {
53
+ const primaryModel = await this.provider.selectModel(primary);
54
+ if (primaryModel) {
55
+ return primaryModel;
56
+ }
57
+ return this.provider.selectModel(secondary);
58
+ }
59
+ /**
60
+ * 最大トークン数のモデルを選択
61
+ */
62
+ async selectLargestContext() {
63
+ const models = await this.provider.listModels();
64
+ if (models.length === 0) {
65
+ return null;
66
+ }
67
+ return models.reduce((best, current) => current.maxInputTokens > best.maxInputTokens ? current : best);
68
+ }
69
+ /**
70
+ * 複数の条件を順番に試して最初に見つかったモデルを返す
71
+ * @param criteriaList - 条件リスト(優先度順)
72
+ */
73
+ async selectFirst(criteriaList) {
74
+ for (const criteria of criteriaList) {
75
+ const model = await this.provider.selectModel(criteria);
76
+ if (model) {
77
+ return model;
78
+ }
79
+ }
80
+ return null;
81
+ }
82
+ }
83
+ //# sourceMappingURL=model-selector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-selector.js","sourceRoot":"","sources":["../../src/providers/model-selector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAoB;IACtD,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACK;IAA7B,YAA6B,QAAoB;QAApB,aAAQ,GAAR,QAAQ,CAAY;IAAG,CAAC;IAErD;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,QAAwB;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,MAAc;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,MAAc;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CACZ,OAAsB,EACtB,SAAwB;QAExB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB;QACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAChD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACrC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAC9D,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,YAA6B;QAC7C,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @nahisaho/musubix-expert-delegation
3
+ * Provider Interface
4
+ *
5
+ * DES-PRV-001
6
+ * Traces to: REQ-PRV-001
7
+ */
8
+ export type { LMProvider, RequestOptions, ProviderResponse, ModelInfo, ModelCriteria, ModelStats, } from '../types/index.js';
9
+ //# sourceMappingURL=provider-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-interface.d.ts","sourceRoot":"","sources":["../../src/providers/provider-interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,UAAU,GACX,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @nahisaho/musubix-expert-delegation
3
+ * Provider Interface
4
+ *
5
+ * DES-PRV-001
6
+ * Traces to: REQ-PRV-001
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=provider-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-interface.js","sourceRoot":"","sources":["../../src/providers/provider-interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @nahisaho/musubix-expert-delegation
3
+ * Usage Statistics
4
+ *
5
+ * DES-PRV-002
6
+ * Traces to: REQ-PRV-002
7
+ */
8
+ import type { ModelStats } from '../types/index.js';
9
+ /**
10
+ * UsageStatisticsを作成するファクトリ関数
11
+ */
12
+ export declare function createUsageStatistics(): UsageStatistics;
13
+ /**
14
+ * 使用統計管理
15
+ *
16
+ * モデルごとの成功/失敗回数、レイテンシなどを記録する。
17
+ */
18
+ export declare class UsageStatistics {
19
+ private stats;
20
+ /**
21
+ * 成功を記録
22
+ * @param model - モデルID
23
+ * @param latencyMs - レイテンシ(ミリ秒)
24
+ */
25
+ recordSuccess(model: string, latencyMs: number): void;
26
+ /**
27
+ * 失敗を記録
28
+ * @param model - モデルID
29
+ * @param _error - エラー(将来の分析用)
30
+ */
31
+ recordFailure(model: string, _error: Error): void;
32
+ /**
33
+ * 全モデルの統計を取得
34
+ */
35
+ getStats(): ModelStats[];
36
+ /**
37
+ * 特定モデルの統計を取得
38
+ * @param model - モデルID
39
+ */
40
+ getModelStats(model: string): ModelStats | null;
41
+ /**
42
+ * 成功率を計算
43
+ * @param model - モデルID
44
+ */
45
+ getSuccessRate(model: string): number;
46
+ /**
47
+ * 最も信頼性の高いモデルを取得
48
+ */
49
+ getMostReliable(): string | null;
50
+ /**
51
+ * 統計をリセット
52
+ */
53
+ reset(): void;
54
+ /**
55
+ * JSON形式でエクスポート
56
+ */
57
+ toJSON(): Record<string, ModelStats>;
58
+ }
59
+ //# sourceMappingURL=usage-statistics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-statistics.d.ts","sourceRoot":"","sources":["../../src/providers/usage-statistics.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD;AAED;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAsC;IAEnD;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IA0BrD;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,IAAI;IAqBjD;;OAEG;IACH,QAAQ,IAAI,UAAU,EAAE;IAIxB;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAI/C;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAcrC;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAqBhC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;CAOrC"}