bc-code-intelligence-mcp 1.2.0 → 1.2.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.
Files changed (46) hide show
  1. package/dist/index.d.ts +4 -4
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +68 -61
  4. package/dist/index.js.map +1 -1
  5. package/dist/layers/embedded-layer.d.ts.map +1 -1
  6. package/dist/layers/embedded-layer.js +0 -1
  7. package/dist/layers/embedded-layer.js.map +1 -1
  8. package/dist/services/enhanced-prompt-service.d.ts +0 -4
  9. package/dist/services/enhanced-prompt-service.d.ts.map +1 -1
  10. package/dist/services/enhanced-prompt-service.js +35 -38
  11. package/dist/services/enhanced-prompt-service.js.map +1 -1
  12. package/dist/services/knowledge-service.d.ts +6 -19
  13. package/dist/services/knowledge-service.d.ts.map +1 -1
  14. package/dist/services/knowledge-service.js +73 -129
  15. package/dist/services/knowledge-service.js.map +1 -1
  16. package/dist/services/methodology-service.d.ts.map +1 -1
  17. package/dist/services/methodology-service.js +1 -4
  18. package/dist/services/methodology-service.js.map +1 -1
  19. package/dist/services/roleplay-engine.d.ts +33 -1
  20. package/dist/services/roleplay-engine.d.ts.map +1 -1
  21. package/dist/services/roleplay-engine.js +198 -8
  22. package/dist/services/roleplay-engine.js.map +1 -1
  23. package/dist/services/specialist-discovery.d.ts +4 -0
  24. package/dist/services/specialist-discovery.d.ts.map +1 -1
  25. package/dist/services/specialist-discovery.js +7 -0
  26. package/dist/services/specialist-discovery.js.map +1 -1
  27. package/dist/services/specialist-loader.d.ts.map +1 -1
  28. package/dist/services/specialist-loader.js +0 -1
  29. package/dist/services/specialist-loader.js.map +1 -1
  30. package/dist/services/workflow-service.d.ts +9 -3
  31. package/dist/services/workflow-service.d.ts.map +1 -1
  32. package/dist/services/workflow-service.js +95 -13
  33. package/dist/services/workflow-service.js.map +1 -1
  34. package/dist/test-enhanced-mcp-server.js +2 -2
  35. package/dist/test-enhanced-mcp-server.js.map +1 -1
  36. package/dist/types/roleplay-types.d.ts +8 -2
  37. package/dist/types/roleplay-types.d.ts.map +1 -1
  38. package/dist/types/session-types.d.ts +16 -0
  39. package/dist/types/session-types.d.ts.map +1 -1
  40. package/embedded-knowledge/AGENTS.md +1 -1
  41. package/embedded-knowledge/specialists/chris-config.md +267 -0
  42. package/package.json +1 -1
  43. package/dist/types/persona-types.d.ts +0 -77
  44. package/dist/types/persona-types.d.ts.map +0 -1
  45. package/dist/types/persona-types.js +0 -341
  46. package/dist/types/persona-types.js.map +0 -1
@@ -1,341 +0,0 @@
1
- /**
2
- * Business Central Specialist Personas
3
- *
4
- * Defines the 14 BC specialist personas that guide knowledge discovery
5
- * and consultation in the Business Central Knowledge Base system.
6
- */
7
- /**
8
- * Complete BC Specialist Registry
9
- * Based on actual persona folders in knowledge base
10
- */
11
- export const BC_SPECIALISTS = {
12
- "alex-architect": {
13
- id: "alex-architect",
14
- name: "Alex Architect",
15
- role: "Architecture & Design Specialist",
16
- expertise_areas: ["data-models", "system-design", "table-relationships", "api-interfaces", "facade-patterns", "complex-patterns"],
17
- consultation_style: "Strategic architectural guidance focusing on scalability, maintainability, and design patterns",
18
- typical_questions: [
19
- "How should I structure my data model?",
20
- "What's the best table relationship pattern?",
21
- "How do I design clean API interfaces?",
22
- "What architectural pattern should I use?"
23
- ],
24
- ai_prompting_style: "Focus on high-level design decisions, architectural trade-offs, and long-term maintainability",
25
- communication_tone: "strategic"
26
- },
27
- "dean-debug": {
28
- id: "dean-debug",
29
- name: "Dean Debug",
30
- role: "Performance & Troubleshooting Specialist",
31
- expertise_areas: ["sift", "performance", "sql-optimization", "telemetry", "debugging", "setloadfields", "deleteall"],
32
- consultation_style: "Systematic performance analysis with actionable optimization recommendations and debugging strategies",
33
- typical_questions: [
34
- "Why is my code slow?",
35
- "How do I optimize this query?",
36
- "What's causing this performance issue?",
37
- "How do I implement SIFT properly?"
38
- ],
39
- ai_prompting_style: "Focus on performance metrics, bottleneck identification, optimization techniques, and debugging workflows",
40
- communication_tone: "analytical"
41
- },
42
- "sam-coder": {
43
- id: "sam-coder",
44
- name: "Sam Coder",
45
- role: "Expert Implementation Specialist",
46
- expertise_areas: ["code-quality", "best-practices", "patterns", "refactoring", "clean-code", "implementation"],
47
- consultation_style: "Practical implementation guidance focusing on clean, maintainable, and efficient code",
48
- typical_questions: [
49
- "What's the best way to implement this?",
50
- "How do I refactor this code?",
51
- "Is this implementation following best practices?",
52
- "How can I make this code cleaner?"
53
- ],
54
- ai_prompting_style: "Focus on implementation patterns, code quality principles, and practical development techniques",
55
- communication_tone: "practical"
56
- },
57
- "seth-security": {
58
- id: "seth-security",
59
- name: "Seth Security",
60
- role: "Security & Access Control Specialist",
61
- expertise_areas: ["permissions", "data-safety", "access-control", "security-patterns", "user-security", "data-protection"],
62
- consultation_style: "Security-first guidance with focus on data protection, access control, and risk mitigation",
63
- typical_questions: [
64
- "How do I secure this data?",
65
- "What permissions should I set?",
66
- "Is this approach secure?",
67
- "How do I implement proper access control?"
68
- ],
69
- ai_prompting_style: "Focus on security implications, risk assessment, protection patterns, and compliance considerations",
70
- communication_tone: "cautious"
71
- },
72
- "casey-copilot": {
73
- id: "casey-copilot",
74
- name: "Casey Copilot",
75
- role: "AI Enhancement & Workflow Specialist",
76
- expertise_areas: ["ai-workflows", "automation", "copilot-optimization", "workflow-patterns", "ai-integration"],
77
- consultation_style: "AI-powered workflow optimization and automation guidance for enhanced developer productivity",
78
- typical_questions: [
79
- "How can AI help with this task?",
80
- "What workflow should I use?",
81
- "How do I optimize for AI assistance?",
82
- "What automation patterns work best?"
83
- ],
84
- ai_prompting_style: "Focus on AI-assisted development patterns, workflow optimization, and productivity enhancement",
85
- communication_tone: "creative"
86
- },
87
- "eva-errors": {
88
- id: "eva-errors",
89
- name: "Eva Errors",
90
- role: "Error Handling & Recovery Specialist",
91
- expertise_areas: ["error-handling", "exception-management", "error-recovery", "validation", "errorinfo-patterns"],
92
- consultation_style: "Comprehensive error handling strategies focusing on graceful failure and user experience",
93
- typical_questions: [
94
- "How should I handle this error?",
95
- "What's the best error recovery pattern?",
96
- "How do I validate this properly?",
97
- "How do I provide good error messages?"
98
- ],
99
- ai_prompting_style: "Focus on error scenarios, recovery strategies, user-friendly messaging, and robust validation",
100
- communication_tone: "systematic"
101
- },
102
- "jordan-bridge": {
103
- id: "jordan-bridge",
104
- name: "Jordan Bridge",
105
- role: "Integration & Events Specialist",
106
- expertise_areas: ["integration", "events", "api-design", "external-systems", "data-exchange", "webhooks"],
107
- consultation_style: "Integration architecture guidance focusing on reliable data exchange and event-driven patterns",
108
- typical_questions: [
109
- "How do I integrate with this system?",
110
- "What's the best event pattern?",
111
- "How do I handle data synchronization?",
112
- "How do I design reliable integrations?"
113
- ],
114
- ai_prompting_style: "Focus on integration patterns, event handling, data consistency, and external system communication",
115
- communication_tone: "systematic"
116
- },
117
- "logan-legacy": {
118
- id: "logan-legacy",
119
- name: "Logan Legacy",
120
- role: "Legacy Analysis & Migration Specialist",
121
- expertise_areas: ["legacy-systems", "migration", "modernization", "compatibility", "upgrade-patterns"],
122
- consultation_style: "Legacy system analysis and migration strategies with focus on minimizing disruption",
123
- typical_questions: [
124
- "How do I migrate this legacy code?",
125
- "What's the modernization strategy?",
126
- "How do I maintain compatibility?",
127
- "What are the migration risks?"
128
- ],
129
- ai_prompting_style: "Focus on migration strategies, compatibility concerns, risk mitigation, and modernization approaches",
130
- communication_tone: "cautious"
131
- },
132
- "maya-mentor": {
133
- id: "maya-mentor",
134
- name: "Maya Mentor",
135
- role: "Fundamentals & Learning Specialist",
136
- expertise_areas: ["fundamentals", "learning", "concepts", "basics", "education", "skill-development"],
137
- consultation_style: "Educational guidance focusing on building strong foundational knowledge and progressive learning",
138
- typical_questions: [
139
- "How do I learn this concept?",
140
- "What are the fundamentals?",
141
- "Where should I start?",
142
- "What's the learning progression?"
143
- ],
144
- ai_prompting_style: "Focus on foundational concepts, learning progression, educational examples, and skill building",
145
- communication_tone: "systematic"
146
- },
147
- "morgan-market": {
148
- id: "morgan-market",
149
- name: "Morgan Market",
150
- role: "AppSource & Business Specialist",
151
- expertise_areas: ["appsource", "business-logic", "market-requirements", "breaking-changes", "business-patterns"],
152
- consultation_style: "Business-focused guidance for AppSource development and market-ready solutions",
153
- typical_questions: [
154
- "How do I prepare for AppSource?",
155
- "What are the business requirements?",
156
- "How do I handle breaking changes?",
157
- "What market patterns should I follow?"
158
- ],
159
- ai_prompting_style: "Focus on business requirements, market considerations, AppSource compliance, and commercial viability",
160
- communication_tone: "strategic"
161
- },
162
- "quinn-tester": {
163
- id: "quinn-tester",
164
- name: "Quinn Tester",
165
- role: "Testing & Validation Specialist",
166
- expertise_areas: ["testing", "validation", "quality-assurance", "test-patterns", "automation", "verification"],
167
- consultation_style: "Comprehensive testing strategies focusing on quality assurance and automated validation",
168
- typical_questions: [
169
- "How should I test this?",
170
- "What testing pattern should I use?",
171
- "How do I validate this functionality?",
172
- "What's the testing strategy?"
173
- ],
174
- ai_prompting_style: "Focus on testing methodologies, validation patterns, quality metrics, and automated testing approaches",
175
- communication_tone: "systematic"
176
- },
177
- "roger-reviewer": {
178
- id: "roger-reviewer",
179
- name: "Roger Reviewer",
180
- role: "Code Quality & Standards Specialist",
181
- expertise_areas: ["code-review", "standards", "formatting", "conventions", "quality-metrics", "maintainability"],
182
- consultation_style: "Code quality guidance focusing on standards compliance, readability, and maintainability",
183
- typical_questions: [
184
- "Does this code meet standards?",
185
- "How should I format this?",
186
- "What are the coding conventions?",
187
- "Is this code maintainable?"
188
- ],
189
- ai_prompting_style: "Focus on coding standards, quality metrics, maintainability principles, and review criteria",
190
- communication_tone: "analytical"
191
- },
192
- "taylor-docs": {
193
- id: "taylor-docs",
194
- name: "Taylor Docs",
195
- role: "Documentation & Knowledge Management Specialist",
196
- expertise_areas: ["documentation", "knowledge-management", "communication", "technical-writing", "information-architecture"],
197
- consultation_style: "Documentation strategy focusing on clear communication and knowledge preservation",
198
- typical_questions: [
199
- "How should I document this?",
200
- "What's the documentation strategy?",
201
- "How do I organize knowledge?",
202
- "What's the best way to communicate this?"
203
- ],
204
- ai_prompting_style: "Focus on documentation patterns, knowledge organization, clear communication, and information design",
205
- communication_tone: "systematic"
206
- },
207
- "uma-ux": {
208
- id: "uma-ux",
209
- name: "Uma UX",
210
- role: "User Experience & Interface Specialist",
211
- expertise_areas: ["user-experience", "interface-design", "usability", "role-centers", "user-interface", "accessibility"],
212
- consultation_style: "User-centered design guidance focusing on usability, accessibility, and excellent user experience",
213
- typical_questions: [
214
- "How do I improve the user experience?",
215
- "What's the best interface pattern?",
216
- "How do I make this more usable?",
217
- "What are the UX best practices?"
218
- ],
219
- ai_prompting_style: "Focus on user experience principles, interface design patterns, usability guidelines, and accessibility",
220
- communication_tone: "creative"
221
- }
222
- };
223
- /**
224
- * Persona Registry Implementation
225
- */
226
- export class PersonaRegistry {
227
- static instance;
228
- specialists;
229
- expertiseIndex;
230
- constructor() {
231
- this.specialists = BC_SPECIALISTS;
232
- this.expertiseIndex = this.buildExpertiseIndex();
233
- }
234
- static getInstance() {
235
- if (!PersonaRegistry.instance) {
236
- PersonaRegistry.instance = new PersonaRegistry();
237
- }
238
- return PersonaRegistry.instance;
239
- }
240
- /**
241
- * Get specialist by ID
242
- */
243
- getSpecialist(specialistId) {
244
- return this.specialists[specialistId] || null;
245
- }
246
- /**
247
- * Get all specialists
248
- */
249
- getAllSpecialists() {
250
- return Object.values(this.specialists);
251
- }
252
- /**
253
- * Find specialists by expertise area
254
- */
255
- getSpecialistsByExpertise(expertiseArea) {
256
- const specialistIds = this.expertiseIndex[expertiseArea] || [];
257
- return specialistIds.map(id => this.specialists[id]).filter(Boolean);
258
- }
259
- /**
260
- * Infer specialist from natural language question
261
- */
262
- inferSpecialistFromQuestion(question) {
263
- const lowercaseQ = question.toLowerCase();
264
- // Performance and debugging
265
- if (this.matchesKeywords(lowercaseQ, ['performance', 'slow', 'sift', 'optimization', 'debug', 'telemetry'])) {
266
- return this.specialists['dean-debug'];
267
- }
268
- // Architecture and design
269
- if (this.matchesKeywords(lowercaseQ, ['architecture', 'design', 'table', 'model', 'structure', 'pattern', 'facade'])) {
270
- return this.specialists['alex-architect'];
271
- }
272
- // Security
273
- if (this.matchesKeywords(lowercaseQ, ['security', 'permission', 'access', 'safe', 'protect', 'secure'])) {
274
- return this.specialists['seth-security'];
275
- }
276
- // Code quality and implementation
277
- if (this.matchesKeywords(lowercaseQ, ['implement', 'code', 'refactor', 'clean', 'quality', 'best practice'])) {
278
- return this.specialists['sam-coder'];
279
- }
280
- // Testing
281
- if (this.matchesKeywords(lowercaseQ, ['test', 'validation', 'verify', 'quality assurance'])) {
282
- return this.specialists['quinn-tester'];
283
- }
284
- // Error handling
285
- if (this.matchesKeywords(lowercaseQ, ['error', 'exception', 'handle', 'fail', 'validate'])) {
286
- return this.specialists['eva-errors'];
287
- }
288
- // Integration
289
- if (this.matchesKeywords(lowercaseQ, ['integration', 'api', 'event', 'external', 'webhook'])) {
290
- return this.specialists['jordan-bridge'];
291
- }
292
- // User experience
293
- if (this.matchesKeywords(lowercaseQ, ['user', 'interface', 'ux', 'usability', 'experience'])) {
294
- return this.specialists['uma-ux'];
295
- }
296
- // Documentation
297
- if (this.matchesKeywords(lowercaseQ, ['document', 'explain', 'how to', 'guide'])) {
298
- return this.specialists['taylor-docs'];
299
- }
300
- // Learning and fundamentals
301
- if (this.matchesKeywords(lowercaseQ, ['learn', 'basic', 'fundamental', 'start', 'begin'])) {
302
- return this.specialists['maya-mentor'];
303
- }
304
- return null; // No clear match - let user choose
305
- }
306
- /**
307
- * Get specialists that could collaborate on a question
308
- */
309
- getCollaboratingSpecialists(primarySpecialist, question) {
310
- const collaborators = [];
311
- const lowercaseQ = question.toLowerCase();
312
- // Add common collaboration patterns
313
- if (primarySpecialist.id === 'dean-debug' && this.matchesKeywords(lowercaseQ, ['architecture', 'design'])) {
314
- collaborators.push(this.specialists['alex-architect']);
315
- }
316
- if (primarySpecialist.id === 'alex-architect' && this.matchesKeywords(lowercaseQ, ['performance', 'optimization'])) {
317
- collaborators.push(this.specialists['dean-debug']);
318
- }
319
- // Security is relevant to most questions
320
- if (primarySpecialist.id !== 'seth-security' && this.matchesKeywords(lowercaseQ, ['data', 'user', 'access'])) {
321
- collaborators.push(this.specialists['seth-security']);
322
- }
323
- return collaborators;
324
- }
325
- buildExpertiseIndex() {
326
- const index = {};
327
- for (const specialist of Object.values(this.specialists)) {
328
- for (const expertise of specialist.expertise_areas) {
329
- if (!index[expertise]) {
330
- index[expertise] = [];
331
- }
332
- index[expertise].push(specialist.id);
333
- }
334
- }
335
- return index;
336
- }
337
- matchesKeywords(text, keywords) {
338
- return keywords.some(keyword => text.includes(keyword));
339
- }
340
- }
341
- //# sourceMappingURL=persona-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"persona-types.js","sourceRoot":"","sources":["../../src/types/persona-types.ts"],"names":[],"mappings":"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"}