bc-code-intelligence-mcp 1.4.0 โ 1.4.2
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/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +86 -43
- package/dist/index.js.map +1 -1
- package/dist/layers/base-layer.d.ts +26 -0
- package/dist/layers/base-layer.d.ts.map +1 -1
- package/dist/layers/base-layer.js +54 -0
- package/dist/layers/base-layer.js.map +1 -1
- package/dist/layers/embedded-layer.d.ts.map +1 -1
- package/dist/layers/embedded-layer.js.map +1 -1
- package/dist/services/multi-content-layer-service.d.ts.map +1 -1
- package/dist/services/multi-content-layer-service.js +36 -15
- package/dist/services/multi-content-layer-service.js.map +1 -1
- package/dist/tools/core-tools.d.ts +26 -0
- package/dist/tools/core-tools.d.ts.map +1 -0
- package/dist/{streamlined-tools.js โ tools/core-tools.js} +30 -13
- package/dist/tools/core-tools.js.map +1 -0
- package/dist/tools/handoff-tools.d.ts +37 -0
- package/dist/tools/handoff-tools.d.ts.map +1 -0
- package/dist/tools/handoff-tools.js +265 -0
- package/dist/tools/handoff-tools.js.map +1 -0
- package/dist/tools/index.d.ts +61 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +75 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/onboarding-tools.d.ts +35 -0
- package/dist/tools/onboarding-tools.d.ts.map +1 -0
- package/dist/tools/onboarding-tools.js +243 -0
- package/dist/tools/onboarding-tools.js.map +1 -0
- package/dist/tools/specialist-tools.d.ts.map +1 -1
- package/dist/tools/specialist-tools.js +6 -1
- package/dist/tools/specialist-tools.js.map +1 -1
- package/dist/types/bc-knowledge.d.ts +8 -8
- package/dist/types/config-types.d.ts +4 -4
- package/dist/types/config-types.d.ts.map +1 -1
- package/dist/types/config-types.js +1 -1
- package/dist/types/config-types.js.map +1 -1
- package/embedded-knowledge/domains/chris-config/knowledge-content-creation.md +437 -0
- package/embedded-knowledge/domains/chris-config/multi-team-layer-configuration.md +302 -0
- package/package.json +8 -11
- package/dist/services/agent-onboarding-service.d.ts +0 -45
- package/dist/services/agent-onboarding-service.d.ts.map +0 -1
- package/dist/services/agent-onboarding-service.js +0 -372
- package/dist/services/agent-onboarding-service.js.map +0 -1
- package/dist/services/specialist-handoff-service.d.ts +0 -85
- package/dist/services/specialist-handoff-service.d.ts.map +0 -1
- package/dist/services/specialist-handoff-service.js +0 -492
- package/dist/services/specialist-handoff-service.js.map +0 -1
- package/dist/streamlined-tools.d.ts +0 -328
- package/dist/streamlined-tools.d.ts.map +0 -1
- package/dist/streamlined-tools.js.map +0 -1
|
@@ -1,372 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent-Friendly Onboarding Service
|
|
3
|
-
*
|
|
4
|
-
* Designed to make ANY coding agent naturally recognize when to introduce
|
|
5
|
-
* BC specialists during Business Central development conversations.
|
|
6
|
-
*/
|
|
7
|
-
import { z } from 'zod';
|
|
8
|
-
// Schema for agent-friendly specialist introduction
|
|
9
|
-
const IntroduceBCSpecialistsArgsSchema = z.object({
|
|
10
|
-
conversation_context: z.string().describe('Current conversation context - what the user is working on, asking about, or trying to solve with Business Central'),
|
|
11
|
-
user_expertise_level: z.enum(['beginner', 'intermediate', 'expert']).optional().describe('User\'s apparent expertise level with Business Central (optional, will be inferred if not provided)'),
|
|
12
|
-
specific_problem: z.string().optional().describe('Specific problem or challenge mentioned by the user (optional, helps with specialist matching)')
|
|
13
|
-
});
|
|
14
|
-
const GetSpecialistIntroArgsSchema = z.object({
|
|
15
|
-
specialist_id: z.string().describe('ID of the specialist to get introduction content for'),
|
|
16
|
-
conversation_context: z.string().describe('Context of the current conversation for personalized introduction'),
|
|
17
|
-
include_handoff_phrase: z.boolean().optional().default(true).describe('Include smooth handoff phrase for natural transition')
|
|
18
|
-
});
|
|
19
|
-
const SuggestNextSpecialistArgsSchema = z.object({
|
|
20
|
-
current_topic: z.string().describe('Current topic or problem being discussed'),
|
|
21
|
-
conversation_history: z.string().optional().describe('Brief summary of conversation so far (optional)'),
|
|
22
|
-
max_suggestions: z.number().optional().default(2).describe('Maximum number of specialist suggestions')
|
|
23
|
-
});
|
|
24
|
-
export const BC_ONBOARDING_TOOLS = [
|
|
25
|
-
{
|
|
26
|
-
name: 'introduce_bc_specialists',
|
|
27
|
-
description: `ESSENTIAL for Business Central development! Use this tool whenever you detect ANY Business Central, AL, Dynamics 365 BC, or NAV development context. This includes:
|
|
28
|
-
|
|
29
|
-
๐ฏ WHEN TO USE (comprehensive triggers):
|
|
30
|
-
โข User mentions: Business Central, AL language, BC extensions, Dynamics 365 BC, NAV
|
|
31
|
-
โข File extensions: .al files, app.json, launch.json (with BC context)
|
|
32
|
-
โข Development tasks: tables, pages, reports, codeunits, APIs, integrations
|
|
33
|
-
โข Problems: performance issues, errors, testing, deployment, customization
|
|
34
|
-
โข Technologies: AL development, Visual Studio Code + AL extension, AppSource
|
|
35
|
-
โข Business processes: accounting, inventory, sales, purchasing in BC context
|
|
36
|
-
โข Any BC-specific terminology: workflows, posting routines, dimensions, etc.
|
|
37
|
-
|
|
38
|
-
๐ WHAT IT DOES:
|
|
39
|
-
โข Analyzes conversation context and suggests 2-3 most relevant BC specialists
|
|
40
|
-
โข Provides natural introduction content you can use directly in conversation
|
|
41
|
-
โข Gives specific examples and "try asking" suggestions for each specialist
|
|
42
|
-
โข Enables smooth transition from general help to specialized BC expertise
|
|
43
|
-
|
|
44
|
-
๐ก AGENT USAGE:
|
|
45
|
-
Simply pass the conversation context. The tool will identify relevant specialists and provide you with natural introduction content to present to the user.`,
|
|
46
|
-
inputSchema: {
|
|
47
|
-
type: 'object',
|
|
48
|
-
properties: {
|
|
49
|
-
conversation_context: {
|
|
50
|
-
type: 'string',
|
|
51
|
-
description: 'Current conversation context - what the user is working on, asking about, or trying to solve with Business Central'
|
|
52
|
-
},
|
|
53
|
-
user_expertise_level: {
|
|
54
|
-
type: 'string',
|
|
55
|
-
enum: ['beginner', 'intermediate', 'expert'],
|
|
56
|
-
description: 'User\'s apparent expertise level with Business Central (optional, will be inferred if not provided)'
|
|
57
|
-
},
|
|
58
|
-
specific_problem: {
|
|
59
|
-
type: 'string',
|
|
60
|
-
description: 'Specific problem or challenge mentioned by the user (optional, helps with specialist matching)'
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
required: ['conversation_context']
|
|
64
|
-
}
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
name: 'get_specialist_introduction',
|
|
68
|
-
description: `Get ready-to-use introduction content for a specific BC specialist. Use when you want to introduce a particular specialist naturally in conversation or when transitioning from general help to specialized expertise.`,
|
|
69
|
-
inputSchema: {
|
|
70
|
-
type: 'object',
|
|
71
|
-
properties: {
|
|
72
|
-
specialist_id: {
|
|
73
|
-
type: 'string',
|
|
74
|
-
description: 'ID of the specialist to get introduction content for'
|
|
75
|
-
},
|
|
76
|
-
conversation_context: {
|
|
77
|
-
type: 'string',
|
|
78
|
-
description: 'Context of the current conversation for personalized introduction'
|
|
79
|
-
},
|
|
80
|
-
include_handoff_phrase: {
|
|
81
|
-
type: 'boolean',
|
|
82
|
-
description: 'Include smooth handoff phrase for natural transition',
|
|
83
|
-
default: true
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
required: ['specialist_id', 'conversation_context']
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
name: 'suggest_next_specialist',
|
|
91
|
-
description: `Proactively suggest when to bring in a specialist during ongoing BC conversations. Use when the current conversation could benefit from specialized expertise or when transitioning between topics.`,
|
|
92
|
-
inputSchema: {
|
|
93
|
-
type: 'object',
|
|
94
|
-
properties: {
|
|
95
|
-
current_topic: {
|
|
96
|
-
type: 'string',
|
|
97
|
-
description: 'Current topic or problem being discussed'
|
|
98
|
-
},
|
|
99
|
-
conversation_history: {
|
|
100
|
-
type: 'string',
|
|
101
|
-
description: 'Brief summary of conversation so far (optional)'
|
|
102
|
-
},
|
|
103
|
-
max_suggestions: {
|
|
104
|
-
type: 'number',
|
|
105
|
-
description: 'Maximum number of specialist suggestions',
|
|
106
|
-
default: 2
|
|
107
|
-
}
|
|
108
|
-
},
|
|
109
|
-
required: ['current_topic']
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
];
|
|
113
|
-
export class AgentOnboardingService {
|
|
114
|
-
discoveryService;
|
|
115
|
-
layerService;
|
|
116
|
-
constructor(discoveryService, layerService) {
|
|
117
|
-
this.discoveryService = discoveryService;
|
|
118
|
-
this.layerService = layerService;
|
|
119
|
-
}
|
|
120
|
-
async handleToolCall(request) {
|
|
121
|
-
try {
|
|
122
|
-
switch (request.params.name) {
|
|
123
|
-
case 'introduce_bc_specialists':
|
|
124
|
-
return await this.introduceBCSpecialists(request);
|
|
125
|
-
case 'get_specialist_introduction':
|
|
126
|
-
return await this.getSpecialistIntroduction(request);
|
|
127
|
-
case 'suggest_next_specialist':
|
|
128
|
-
return await this.suggestNextSpecialist(request);
|
|
129
|
-
default:
|
|
130
|
-
throw new Error(`Unknown tool: ${request.params.name}`);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
catch (error) {
|
|
134
|
-
return {
|
|
135
|
-
content: [
|
|
136
|
-
{
|
|
137
|
-
type: 'text',
|
|
138
|
-
text: `Error in onboarding service: ${error instanceof Error ? error.message : String(error)}`
|
|
139
|
-
}
|
|
140
|
-
],
|
|
141
|
-
isError: true
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Main tool: Introduce BC specialists based on conversation context
|
|
147
|
-
*/
|
|
148
|
-
async introduceBCSpecialists(request) {
|
|
149
|
-
const args = IntroduceBCSpecialistsArgsSchema.parse(request.params.arguments);
|
|
150
|
-
// Get specialist suggestions based on context
|
|
151
|
-
const suggestions = await this.discoveryService.suggestSpecialists({
|
|
152
|
-
query: args.conversation_context + (args.specific_problem ? ` ${args.specific_problem}` : ''),
|
|
153
|
-
user_preferences: args.user_expertise_level ? { expertise_level: args.user_expertise_level } : undefined
|
|
154
|
-
}, 3);
|
|
155
|
-
if (suggestions.length === 0) {
|
|
156
|
-
return {
|
|
157
|
-
content: [
|
|
158
|
-
{
|
|
159
|
-
type: 'text',
|
|
160
|
-
text: `I can connect you with our Business Central specialists! Let me introduce Casey Copilot ๐ค - our AI-enhanced development coach who can help with general BC development guidance.`
|
|
161
|
-
}
|
|
162
|
-
]
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
// Build agent-friendly introduction content
|
|
166
|
-
let response = `๐ฏ **BC Specialist Team Available!**\n\n`;
|
|
167
|
-
response += `Based on "${args.conversation_context}", I can introduce you to specialized Business Central experts:\n\n`;
|
|
168
|
-
for (let i = 0; i < suggestions.length; i++) {
|
|
169
|
-
const suggestion = suggestions[i];
|
|
170
|
-
const emoji = this.getSpecialistEmoji(suggestion.specialist.specialist_id);
|
|
171
|
-
const confidence = Math.round(suggestion.confidence * 100);
|
|
172
|
-
response += `**${emoji} ${suggestion.specialist.title}** (${confidence}% match)\n`;
|
|
173
|
-
response += `${suggestion.specialist.role} who specializes in ${suggestion.specialist.domains?.join(', ') || 'BC development'}\n\n`;
|
|
174
|
-
if (suggestion.reasons.length > 0) {
|
|
175
|
-
response += `*Why this specialist: ${suggestion.reasons.join(', ')}*\n\n`;
|
|
176
|
-
}
|
|
177
|
-
// Add conversation starters
|
|
178
|
-
response += `๐ฌ **Natural conversation starters:**\n`;
|
|
179
|
-
response += `โข "Let me connect you with ${suggestion.specialist.title.split(' - ')[0]}..."\n`;
|
|
180
|
-
response += `โข "${suggestion.specialist.title.split(' - ')[0]} specializes in exactly this type of challenge"\n`;
|
|
181
|
-
response += `โข "I think ${suggestion.specialist.title.split(' - ')[0]} can provide the specific BC expertise you need"\n\n`;
|
|
182
|
-
// Add example questions
|
|
183
|
-
const example = this.generateContextualExample(suggestion.specialist, args.conversation_context);
|
|
184
|
-
response += `๐ก **User can try asking:** "${example}"\n\n`;
|
|
185
|
-
response += `๐ฏ **To connect:** Use \`suggest_specialist ${suggestion.specialist.specialist_id}\`\n\n`;
|
|
186
|
-
response += `---\n\n`;
|
|
187
|
-
}
|
|
188
|
-
response += `### ๐ How to Proceed as Agent:\n`;
|
|
189
|
-
response += `1. **Choose** the most relevant specialist based on user's needs\n`;
|
|
190
|
-
response += `2. **Introduce** them naturally: "Let me connect you with [specialist name]..."\n`;
|
|
191
|
-
response += `3. **Transition** using: \`suggest_specialist [specialist-id]\`\n`;
|
|
192
|
-
response += `4. **Follow up** by letting the specialist take the lead on BC-specific guidance\n`;
|
|
193
|
-
return {
|
|
194
|
-
content: [
|
|
195
|
-
{
|
|
196
|
-
type: 'text',
|
|
197
|
-
text: response
|
|
198
|
-
}
|
|
199
|
-
]
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Get introduction content for specific specialist
|
|
204
|
-
*/
|
|
205
|
-
async getSpecialistIntroduction(request) {
|
|
206
|
-
const args = GetSpecialistIntroArgsSchema.parse(request.params.arguments);
|
|
207
|
-
const specialists = await this.layerService.getAllSpecialists();
|
|
208
|
-
const specialist = specialists.find(s => s.specialist_id === args.specialist_id);
|
|
209
|
-
if (!specialist) {
|
|
210
|
-
return {
|
|
211
|
-
content: [
|
|
212
|
-
{
|
|
213
|
-
type: 'text',
|
|
214
|
-
text: `Specialist ${args.specialist_id} not found. Use 'browse_specialists' to see available specialists.`
|
|
215
|
-
}
|
|
216
|
-
],
|
|
217
|
-
isError: true
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
const emoji = this.getSpecialistEmoji(specialist.specialist_id);
|
|
221
|
-
let response = '';
|
|
222
|
-
if (args.include_handoff_phrase) {
|
|
223
|
-
response += `Perfect! Let me connect you with ${specialist.title.split(' - ')[0]}...\n\n`;
|
|
224
|
-
}
|
|
225
|
-
response += `${emoji} **${specialist.title}**\n`;
|
|
226
|
-
response += `${specialist.role}\n\n`;
|
|
227
|
-
if (specialist.domains && specialist.domains.length > 0) {
|
|
228
|
-
response += `**Specializes in:** ${specialist.domains.join(', ')}\n`;
|
|
229
|
-
}
|
|
230
|
-
if (specialist.when_to_use && specialist.when_to_use.length > 0) {
|
|
231
|
-
response += `**Perfect for:** ${specialist.when_to_use.slice(0, 2).join(', ')}\n`;
|
|
232
|
-
}
|
|
233
|
-
response += `\n**Example question for your context:**\n`;
|
|
234
|
-
response += `"${this.generateContextualExample(specialist, args.conversation_context)}"\n\n`;
|
|
235
|
-
response += `๐ฏ **Ready to start:** Use \`suggest_specialist ${specialist.specialist_id}\``;
|
|
236
|
-
return {
|
|
237
|
-
content: [
|
|
238
|
-
{
|
|
239
|
-
type: 'text',
|
|
240
|
-
text: response
|
|
241
|
-
}
|
|
242
|
-
]
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* Suggest when to bring in specialists during conversation
|
|
247
|
-
*/
|
|
248
|
-
async suggestNextSpecialist(request) {
|
|
249
|
-
const args = SuggestNextSpecialistArgsSchema.parse(request.params.arguments);
|
|
250
|
-
const suggestions = await this.discoveryService.suggestSpecialists({
|
|
251
|
-
query: args.current_topic,
|
|
252
|
-
conversation_history: args.conversation_history ? [args.conversation_history] : undefined
|
|
253
|
-
}, args.max_suggestions);
|
|
254
|
-
if (suggestions.length === 0) {
|
|
255
|
-
return {
|
|
256
|
-
content: [
|
|
257
|
-
{
|
|
258
|
-
type: 'text',
|
|
259
|
-
text: `Continue with general BC guidance or use 'introduce_bc_specialists' to see the full team.`
|
|
260
|
-
}
|
|
261
|
-
]
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
let response = `๐ค **Consider bringing in a specialist:**\n\n`;
|
|
265
|
-
suggestions.forEach((suggestion, index) => {
|
|
266
|
-
const emoji = this.getSpecialistEmoji(suggestion.specialist.specialist_id);
|
|
267
|
-
response += `${index + 1}. **${emoji} ${suggestion.specialist.title.split(' - ')[0]}** - ${suggestion.reasons.join(', ') || 'Good match for current topic'}\n`;
|
|
268
|
-
});
|
|
269
|
-
response += `\n๐ก **Agent tip:** When conversation gets into BC-specific details, specialist handoff often provides better value than general assistance.`;
|
|
270
|
-
return {
|
|
271
|
-
content: [
|
|
272
|
-
{
|
|
273
|
-
type: 'text',
|
|
274
|
-
text: response
|
|
275
|
-
}
|
|
276
|
-
]
|
|
277
|
-
};
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Generate contextual example question
|
|
281
|
-
*/
|
|
282
|
-
generateContextualExample(specialist, context) {
|
|
283
|
-
const contextLower = context.toLowerCase();
|
|
284
|
-
const specialistId = specialist.specialist_id;
|
|
285
|
-
// Context-specific examples
|
|
286
|
-
if (contextLower.includes('performance') || contextLower.includes('slow')) {
|
|
287
|
-
if (specialistId === 'dean-debug')
|
|
288
|
-
return `Help me identify why ${this.extractSubject(context)} is performing slowly`;
|
|
289
|
-
}
|
|
290
|
-
if (contextLower.includes('security') || contextLower.includes('permission')) {
|
|
291
|
-
if (specialistId === 'seth-security')
|
|
292
|
-
return `Review the security approach for ${this.extractSubject(context)}`;
|
|
293
|
-
}
|
|
294
|
-
if (contextLower.includes('test') || contextLower.includes('quality')) {
|
|
295
|
-
if (specialistId === 'quinn-tester')
|
|
296
|
-
return `Design a testing strategy for ${this.extractSubject(context)}`;
|
|
297
|
-
}
|
|
298
|
-
if (contextLower.includes('architecture') || contextLower.includes('design')) {
|
|
299
|
-
if (specialistId === 'alex-architect')
|
|
300
|
-
return `Review the architecture of ${this.extractSubject(context)}`;
|
|
301
|
-
}
|
|
302
|
-
// Fallback examples
|
|
303
|
-
const fallbacks = {
|
|
304
|
-
'dean-debug': `Help me troubleshoot performance issues in my BC solution`,
|
|
305
|
-
'seth-security': `Review security best practices for my BC implementation`,
|
|
306
|
-
'quinn-tester': `Create a comprehensive testing strategy for my BC extensions`,
|
|
307
|
-
'alex-architect': `Design a scalable architecture for my BC solution`,
|
|
308
|
-
'sam-coder': `Show me efficient coding patterns for this BC scenario`,
|
|
309
|
-
'eva-errors': `Help me implement robust error handling`,
|
|
310
|
-
'uma-ux': `Improve the user experience of my BC pages`,
|
|
311
|
-
'jordan-bridge': `Design integrations for my BC solution`,
|
|
312
|
-
'logan-legacy': `Help me modernize this legacy BC code`,
|
|
313
|
-
'roger-reviewer': `Review the code quality of my BC implementation`,
|
|
314
|
-
'maya-mentor': `Teach me the best practices for this BC scenario`,
|
|
315
|
-
'taylor-docs': `Help me document this BC solution properly`,
|
|
316
|
-
'casey-copilot': `Guide me through this BC development challenge`,
|
|
317
|
-
'morgan-market': `Prepare my BC solution for AppSource`
|
|
318
|
-
};
|
|
319
|
-
return fallbacks[specialistId] || `Help me with my Business Central challenge`;
|
|
320
|
-
}
|
|
321
|
-
/**
|
|
322
|
-
* Extract main subject from context for personalized examples
|
|
323
|
-
*/
|
|
324
|
-
extractSubject(context) {
|
|
325
|
-
const contextLower = context.toLowerCase();
|
|
326
|
-
// Extract BC-specific subjects
|
|
327
|
-
if (contextLower.includes('report'))
|
|
328
|
-
return 'my BC reports';
|
|
329
|
-
if (contextLower.includes('page'))
|
|
330
|
-
return 'my BC pages';
|
|
331
|
-
if (contextLower.includes('table'))
|
|
332
|
-
return 'my BC tables';
|
|
333
|
-
if (contextLower.includes('extension'))
|
|
334
|
-
return 'my BC extension';
|
|
335
|
-
if (contextLower.includes('integration'))
|
|
336
|
-
return 'my BC integration';
|
|
337
|
-
if (contextLower.includes('api'))
|
|
338
|
-
return 'my BC API';
|
|
339
|
-
if (contextLower.includes('workflow'))
|
|
340
|
-
return 'my BC workflow';
|
|
341
|
-
return 'my BC solution';
|
|
342
|
-
}
|
|
343
|
-
/**
|
|
344
|
-
* Get emoji for specialist
|
|
345
|
-
*/
|
|
346
|
-
getSpecialistEmoji(specialistId) {
|
|
347
|
-
const emojiMap = {
|
|
348
|
-
'dean-debug': '๐',
|
|
349
|
-
'eva-errors': 'โ ๏ธ',
|
|
350
|
-
'alex-architect': '๐๏ธ',
|
|
351
|
-
'sam-coder': '๐ป',
|
|
352
|
-
'quinn-tester': '๐งช',
|
|
353
|
-
'seth-security': '๐',
|
|
354
|
-
'uma-ux': '๐จ',
|
|
355
|
-
'jordan-bridge': '๐',
|
|
356
|
-
'logan-legacy': '๐๏ธ',
|
|
357
|
-
'roger-reviewer': '๐',
|
|
358
|
-
'maya-mentor': '๐ฉโ๐ซ',
|
|
359
|
-
'taylor-docs': '๐',
|
|
360
|
-
'casey-copilot': '๐ค',
|
|
361
|
-
'morgan-market': '๐ช'
|
|
362
|
-
};
|
|
363
|
-
return emojiMap[specialistId] || '๐ค';
|
|
364
|
-
}
|
|
365
|
-
/**
|
|
366
|
-
* Get tool definitions for MCP registration
|
|
367
|
-
*/
|
|
368
|
-
getToolDefinitions() {
|
|
369
|
-
return BC_ONBOARDING_TOOLS;
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
//# sourceMappingURL=agent-onboarding-service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-onboarding-service.js","sourceRoot":"","sources":["../../src/services/agent-onboarding-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Specialist Handoff Service
|
|
3
|
-
*
|
|
4
|
-
* Enables seamless transitions between specialists while preserving context,
|
|
5
|
-
* conversation history, and ensuring natural collaboration flow.
|
|
6
|
-
*/
|
|
7
|
-
import { CallToolRequest, CallToolResult, Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
8
|
-
import { SpecialistSessionManager } from './specialist-session-manager.js';
|
|
9
|
-
import { SpecialistDiscoveryService } from './specialist-discovery.js';
|
|
10
|
-
import { MultiContentLayerService } from './multi-content-layer-service.js';
|
|
11
|
-
export type HandoffType = 'transfer' | 'consultation' | 'collaboration' | 'escalation';
|
|
12
|
-
export interface HandoffContext {
|
|
13
|
-
session_id: string;
|
|
14
|
-
from_specialist: string;
|
|
15
|
-
to_specialist: string;
|
|
16
|
-
handoff_type: HandoffType;
|
|
17
|
-
problem_summary: string;
|
|
18
|
-
work_completed: string[];
|
|
19
|
-
recommendations_made: string[];
|
|
20
|
-
current_challenges: string[];
|
|
21
|
-
user_context: {
|
|
22
|
-
expertise_level?: 'beginner' | 'intermediate' | 'expert';
|
|
23
|
-
bc_version?: string;
|
|
24
|
-
project_type?: string;
|
|
25
|
-
preferences?: string[];
|
|
26
|
-
};
|
|
27
|
-
conversation_summary: string;
|
|
28
|
-
handoff_reason: string;
|
|
29
|
-
continuation_points: string[];
|
|
30
|
-
}
|
|
31
|
-
export declare const HANDOFF_TOOLS: Tool[];
|
|
32
|
-
export declare class SpecialistHandoffService {
|
|
33
|
-
private sessionManager;
|
|
34
|
-
private discoveryService;
|
|
35
|
-
private layerService;
|
|
36
|
-
private handoffHistory;
|
|
37
|
-
private currentSessionId?;
|
|
38
|
-
constructor(sessionManager: SpecialistSessionManager, discoveryService: SpecialistDiscoveryService, layerService: MultiContentLayerService);
|
|
39
|
-
/**
|
|
40
|
-
* Set current session ID for handoff operations
|
|
41
|
-
*/
|
|
42
|
-
setCurrentSession(sessionId: string): void;
|
|
43
|
-
/**
|
|
44
|
-
* Get current session
|
|
45
|
-
*/
|
|
46
|
-
private getCurrentSession;
|
|
47
|
-
/**
|
|
48
|
-
* Create an emergency session when handoff is attempted without existing session
|
|
49
|
-
*/
|
|
50
|
-
private createEmergencySession;
|
|
51
|
-
handleToolCall(request: CallToolRequest): Promise<CallToolResult>;
|
|
52
|
-
/**
|
|
53
|
-
* Execute handoff to another specialist with full context transfer
|
|
54
|
-
*/
|
|
55
|
-
private handoffToSpecialist;
|
|
56
|
-
/**
|
|
57
|
-
* Bring in specialist for consultation without full handoff
|
|
58
|
-
*/
|
|
59
|
-
private bringInSpecialist;
|
|
60
|
-
/**
|
|
61
|
-
* Get handoff summary for current session
|
|
62
|
-
*/
|
|
63
|
-
private getHandoffSummary;
|
|
64
|
-
/**
|
|
65
|
-
* Create handoff message with full context
|
|
66
|
-
*/
|
|
67
|
-
private createHandoffMessage;
|
|
68
|
-
/**
|
|
69
|
-
* Summarize conversation for handoff context
|
|
70
|
-
*/
|
|
71
|
-
private summarizeConversation;
|
|
72
|
-
/**
|
|
73
|
-
* Get specialist name by ID
|
|
74
|
-
*/
|
|
75
|
-
private getSpecialistName;
|
|
76
|
-
/**
|
|
77
|
-
* Get emoji for specialist
|
|
78
|
-
*/
|
|
79
|
-
private getSpecialistEmoji;
|
|
80
|
-
/**
|
|
81
|
-
* Get tool definitions for MCP registration
|
|
82
|
-
*/
|
|
83
|
-
getToolDefinitions(): Tool[];
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=specialist-handoff-service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"specialist-handoff-service.d.ts","sourceRoot":"","sources":["../../src/services/specialist-handoff-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAG5E,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,eAAe,GAAG,YAAY,CAAC;AAGvF,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,WAAW,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAE;QACZ,eAAe,CAAC,EAAE,UAAU,GAAG,cAAc,GAAG,QAAQ,CAAC;QACzD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AA2BD,eAAO,MAAM,aAAa,EAAE,IAAI,EAoH/B,CAAC;AAEF,qBAAa,wBAAwB;IAKjC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,YAAY;IANtB,OAAO,CAAC,cAAc,CAA4C;IAClE,OAAO,CAAC,gBAAgB,CAAC,CAAS;gBAGxB,cAAc,EAAE,wBAAwB,EACxC,gBAAgB,EAAE,0BAA0B,EAC5C,YAAY,EAAE,wBAAwB;IAGhD;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI1C;;OAEG;YACW,iBAAiB;IAO/B;;OAEG;YACW,sBAAsB;IAc9B,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAyBvE;;OAEG;YACW,mBAAmB;IAgFjC;;OAEG;YACW,iBAAiB;IAoD/B;;OAEG;YACW,iBAAiB;IAqE/B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+C5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,kBAAkB,IAAI,IAAI,EAAE;CAG7B"}
|