bc-code-intelligence-mcp 1.3.2 → 1.3.3

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 (34) hide show
  1. package/README.md +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +9 -3
  4. package/dist/index.js.map +1 -1
  5. package/dist/layers/layer-service.d.ts.map +1 -1
  6. package/dist/layers/layer-service.js +4 -1
  7. package/dist/layers/layer-service.js.map +1 -1
  8. package/dist/search/intelligent-search.d.ts.map +1 -1
  9. package/dist/search/intelligent-search.js +5 -2
  10. package/dist/search/intelligent-search.js.map +1 -1
  11. package/dist/services/code-analysis-service.d.ts.map +1 -1
  12. package/dist/services/code-analysis-service.js +4 -1
  13. package/dist/services/code-analysis-service.js.map +1 -1
  14. package/dist/services/knowledge-service.d.ts.map +1 -1
  15. package/dist/services/knowledge-service.js +11 -5
  16. package/dist/services/knowledge-service.js.map +1 -1
  17. package/dist/services/roleplay-engine.d.ts +1 -1
  18. package/dist/services/roleplay-engine.d.ts.map +1 -1
  19. package/dist/services/roleplay-engine.js +40 -12
  20. package/dist/services/roleplay-engine.js.map +1 -1
  21. package/dist/streamlined-handlers.js +2 -2
  22. package/dist/streamlined-handlers.js.map +1 -1
  23. package/dist/tools/specialist-tools.d.ts.map +1 -1
  24. package/dist/tools/specialist-tools.js +23 -13
  25. package/dist/tools/specialist-tools.js.map +1 -1
  26. package/dist/types/bc-knowledge.d.ts +10 -7
  27. package/dist/types/bc-knowledge.d.ts.map +1 -1
  28. package/dist/types/bc-knowledge.js +23 -1
  29. package/dist/types/bc-knowledge.js.map +1 -1
  30. package/dist/types/roleplay-types.d.ts +1 -0
  31. package/dist/types/roleplay-types.d.ts.map +1 -1
  32. package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +66 -1
  33. package/embedded-knowledge/domains/shared/al-file-naming-conventions.md +146 -0
  34. package/package.json +1 -1
@@ -8,7 +8,10 @@ import { z } from 'zod';
8
8
  // YAML Frontmatter Schema - Extended for structured knowledge types
9
9
  export const AtomicTopicFrontmatterSchema = z.object({
10
10
  title: z.string().optional().describe("Human-readable topic title"),
11
- domain: z.string().optional().describe("Knowledge domain (performance, validation, etc.)"),
11
+ domain: z.union([
12
+ z.string(),
13
+ z.array(z.string())
14
+ ]).optional().describe("Knowledge domain(s) - single domain or array for shared topics"),
12
15
  difficulty: z.enum(["beginner", "intermediate", "advanced", "expert"]).optional().describe("Complexity level"),
13
16
  bc_versions: z.string().optional().describe("Supported BC versions (e.g., '14+', '18+')"),
14
17
  tags: z.array(z.string()).optional().describe("Searchable tags for topic discovery"),
@@ -41,4 +44,23 @@ export const DomainInfoSchema = z.object({
41
44
  tags: z.array(z.string()),
42
45
  sample_files: z.number().optional(),
43
46
  });
47
+ // Utility functions for domain handling
48
+ export function isDomainMatch(topicDomain, targetDomain) {
49
+ if (!topicDomain)
50
+ return false;
51
+ if (typeof topicDomain === 'string') {
52
+ return topicDomain === targetDomain;
53
+ }
54
+ if (Array.isArray(topicDomain)) {
55
+ return topicDomain.includes(targetDomain);
56
+ }
57
+ return false;
58
+ }
59
+ export function getDomainList(domain) {
60
+ if (!domain)
61
+ return [];
62
+ if (typeof domain === 'string')
63
+ return [domain];
64
+ return domain;
65
+ }
44
66
  //# sourceMappingURL=bc-knowledge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bc-knowledge.js","sourceRoot":"","sources":["../../src/types/bc-knowledge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bc-knowledge.js","sourceRoot":"","sources":["../../src/types/bc-knowledge.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ export interface RoleplayContext {
15
15
  specialist: SpecialistDefinition;
16
16
  userMessage: string;
17
17
  conversationHistory: string[];
18
+ requiresIntroduction?: boolean;
18
19
  relevantTopics?: AtomicTopic[];
19
20
  codeContext?: {
20
21
  files: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"roleplay-types.d.ts","sourceRoot":"","sources":["../../src/types/roleplay-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roleplay-types.d.ts","sourceRoot":"","sources":["../../src/types/roleplay-types.ts"],"names":[],"mappings":"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"}
@@ -59,7 +59,8 @@ NoSeriesMgt.SelectSeries(...)
59
59
  | Legacy Method | New Method | Conversion Notes |
60
60
  |---------------|------------|------------------|
61
61
  | `InitSeries()` | `GetNextNo()` | Simplified parameters |
62
- | `GetNextNo()` | `GetNextNo()` or `PeekNextNo()` | Choose based on intent |
62
+ | `GetNextNo(..., false)` | `PeekNextNo()` | Preview only, doesn't consume |
63
+ | `GetNextNo(..., true)` | `GetNextNo()` | Allocates and consumes number |
63
64
  | `TestManual()` | `TestManual()` | Same name, new codeunit |
64
65
  | `SelectSeries()` | `LookupRelatedNoSeries()` | Different parameter structure |
65
66
 
@@ -98,6 +99,70 @@ NextNo := NoSeries.PeekNextNo("No. Series", WorkDate()); // Peek only
98
99
  ActualNo := NoSeries.GetNextNo("No. Series", WorkDate()); // Allocate
99
100
  ```
100
101
 
102
+ #### When to Use GetNextNo vs PeekNextNo
103
+
104
+ **Use `PeekNextNo()` for**:
105
+ - **UI Display**: Showing next number in forms before user commits
106
+ - **Preview Operations**: Preview posting scenarios
107
+ - **Validation Logic**: Checking number availability without consuming
108
+ - **Form Initialization**: Displaying what number would be assigned
109
+ - **Testing/Diagnostics**: Verifying series configuration
110
+
111
+ **Use `GetNextNo()` for**:
112
+ - **Document Creation**: Actually creating/posting business documents
113
+ - **Final Assignment**: Committing to use the number permanently
114
+ - **Transaction Completion**: When business logic is ready to consume the number
115
+ - **Batch Operations**: Allocating numbers for confirmed processing
116
+
117
+ **Decision Framework**:
118
+ ```al
119
+ // Ask yourself: "Am I ready to permanently use this number?"
120
+ if IsPreviewMode or IsDisplayOnly or IsValidationCheck then
121
+ NextNo := NoSeries.PeekNextNo("No. Series", WorkDate())
122
+ else
123
+ NextNo := NoSeries.GetNextNo("No. Series", WorkDate());
124
+ ```
125
+
126
+ #### Migration Opportunity: Add Preview Posting Support
127
+
128
+ **Legacy Pattern** (many old implementations):
129
+ ```al
130
+ // Old code often only supported final posting
131
+ procedure PostDocument()
132
+ begin
133
+ "No." := NoSeriesMgt.GetNextNo("No. Series", WorkDate(), true);
134
+ // ... posting logic
135
+ end;
136
+ ```
137
+
138
+ **Enhanced Pattern** (BC24+ with preview support):
139
+ ```al
140
+ procedure PostDocument(Preview: Boolean)
141
+ begin
142
+ if Preview then
143
+ "No." := NoSeries.PeekNextNo("No. Series", WorkDate())
144
+ else
145
+ "No." := NoSeries.GetNextNo("No. Series", WorkDate());
146
+ // ... posting logic
147
+ end;
148
+
149
+ procedure PreviewPosting()
150
+ begin
151
+ PostDocument(true); // Uses PeekNextNo
152
+ end;
153
+
154
+ procedure FinalPosting()
155
+ begin
156
+ PostDocument(false); // Uses GetNextNo
157
+ end;
158
+ ```
159
+
160
+ **Modernization Questions to Ask**:
161
+ - Does this posting routine support preview mode?
162
+ - Could users benefit from seeing the assigned number before committing?
163
+ - Is there a "Preview Posting" action that should show the next number?
164
+ - Would preview posting improve user experience in this scenario?
165
+
101
166
  #### Manual Testing Conversion
102
167
  **Before**:
103
168
  ```al
@@ -0,0 +1,146 @@
1
+ ---
2
+ title: "AL File Naming Conventions"
3
+ domain: ["sam-coder", "roger-reviewer"]
4
+ difficulty: "beginner"
5
+ bc_versions: "14+"
6
+ tags: ["file-naming", "conventions", "code-style", "organization"]
7
+ type: "improvement-pattern"
8
+ category: "code-organization"
9
+ pattern_type: "good"
10
+ severity: "high"
11
+ impact_level: "medium"
12
+ improvement_suggestion: "Apply consistent AL file naming conventions following alguidelines.dev standards"
13
+ implementation_steps: ["identify-object-name", "apply-object-type-suffix", "validate-naming-pattern"]
14
+ validation_criteria: ["consistent-naming-application", "standards-compliance"]
15
+ technical_areas: ["al-code", "file-organization"]
16
+ related_topics: ["al-variable-naming-conventions", "al-standard-abbreviations"]
17
+ ---
18
+
19
+ # AL File Naming Conventions
20
+
21
+ ## Overview
22
+
23
+ AL file naming conventions ensure consistent project organization and improve developer experience. Following standardized patterns makes codebases more maintainable and professional.
24
+
25
+ **Source**: Based on [alguidelines.dev Rule #2: File Naming Conventions](https://alguidelines.dev/docs/vibe-coding/al-naming-conventions/)
26
+
27
+ **Key Principle**: File names should be descriptive and match the AL object name within the files using the pattern `<ObjectName>.<ObjectType>.al`.
28
+
29
+ ## Standard File Naming Pattern
30
+
31
+ ### Core Pattern: `<ObjectName>.<ObjectType>.al`
32
+
33
+ **Table Extensions:**
34
+ ```
35
+ ✅ CORRECT: CustomerExt.TableExt.al
36
+ ✅ CORRECT: SalesHeaderExt.TableExt.al
37
+ ❌ WRONG: Tab-Ext50100.CustomerExt.al
38
+ ❌ WRONG: TableExt50100.CustomerExt.al
39
+ ```
40
+
41
+ **Page Extensions:**
42
+ ```
43
+ ✅ CORRECT: CustomerCardExt.PageExt.al
44
+ ✅ CORRECT: InventorySetupExt.PageExt.al
45
+ ❌ WRONG: Pag-Ext50100.CustomerCardExt.al
46
+ ❌ WRONG: PageExt50100.CustomerCardExt.al
47
+ ```
48
+
49
+ **Codeunits:**
50
+ ```
51
+ ✅ CORRECT: CustomerCommentsManager.Codeunit.al
52
+ ✅ CORRECT: PostSalesInvoice.Codeunit.al
53
+ ❌ WRONG: Cod50100.CustomerCommentsManager.al
54
+ ❌ WRONG: Codeunit50100.CustomerCommentsManager.al
55
+ ```
56
+
57
+ **Event Subscribers:**
58
+ ```
59
+ ✅ CORRECT: SalesEventsSubscriber.Codeunit.al
60
+ ✅ CORRECT: CustomerEventsHandler.Codeunit.al
61
+ ```
62
+
63
+ ## Object Type Suffixes
64
+
65
+ ### Standard Suffixes
66
+ - **Tables**: `.Table.al`
67
+ - **Table Extensions**: `.TableExt.al`
68
+ - **Pages**: `.Page.al`
69
+ - **Page Extensions**: `.PageExt.al`
70
+ - **Page Customizations**: `.PageCust.al`
71
+ - **Reports**: `.Report.al`
72
+ - **Report Extensions**: `.ReportExt.al`
73
+ - **Codeunits**: `.Codeunit.al`
74
+ - **Queries**: `.Query.al`
75
+ - **XMLports**: `.XMLport.al`
76
+ - **Enums**: `.Enum.al`
77
+ - **Enum Extensions**: `.EnumExt.al`
78
+ - **Interfaces**: `.Interface.al`
79
+ - **Control Add-ins**: `.ControlAddin.al`
80
+ - **Dotnet**: `.Dotnet.al`
81
+ - **Profiles**: `.Profile.al`
82
+ - **Permission Sets**: `.PermissionSet.al`
83
+ - **Permission Set Extensions**: `.PermissionSetExt.al`
84
+
85
+ ## Best Practices
86
+
87
+ ### Object Name Guidelines
88
+ - **Use Pascal Case**: CustomerCommentsManager (not customercommentsmanager)
89
+ - **Be Descriptive**: Clearly indicate object purpose
90
+ - **Avoid Abbreviations**: Use full words unless standard BC terms
91
+ - **Include Context**: For extensions, indicate what you're extending
92
+
93
+ ### Organization Patterns
94
+ - **Logical Grouping**: Group related objects by business domain
95
+ - **Consistent Prefixes**: Use company/solution prefixes consistently
96
+ - **Module Structure**: Organize files into logical modules or folders
97
+
98
+ ### Extension-Specific Naming
99
+ - **Table Extensions**: `[TableName]Ext.TableExt.al`
100
+ - **Page Extensions**: `[PageName]Ext.PageExt.al`
101
+ - **Clear Extension Purpose**: When extending for specific features, include context
102
+
103
+ ## Anti-Patterns to Avoid
104
+
105
+ ### Legacy/Incorrect Patterns
106
+ ```
107
+ ❌ Tab-Ext50000.CustomerExt.al // Old NAV-style naming
108
+ ❌ TableExt50000.CustomerExt.al // Object ID in filename
109
+ ❌ CustomerExt-50000.al // Mixed patterns
110
+ ❌ customer_ext.table_ext.al // Underscore notation
111
+ ❌ CustomerExtension.TableExtension.al // Verbose suffixes
112
+ ```
113
+
114
+ ### Why These Are Wrong
115
+ - **Object IDs in Filenames**: IDs change, names are stable
116
+ - **Abbreviated Prefixes**: "Tab-Ext" is non-standard and unclear
117
+ - **Inconsistent Casing**: Makes files hard to locate and sort
118
+ - **Verbose Extensions**: ".TableExtension" is unnecessarily long
119
+
120
+ ## Implementation Strategy
121
+
122
+ ### File Naming Checklist
123
+ 1. **Identify Object Name**: Use the actual AL object name from inside the file
124
+ 2. **Apply Correct Suffix**: Use standard `.ObjectType.al` pattern
125
+ 3. **Validate Consistency**: Ensure all project files follow same convention
126
+ 4. **Update References**: Check that any references or documentation align
127
+
128
+ ### Refactoring Existing Projects
129
+ - **Rename Systematically**: Update all files to follow standard pattern
130
+ - **Update Git History**: Consider preserving file history during renames
131
+ - **Team Communication**: Ensure all team members understand new conventions
132
+ - **Tool Configuration**: Update any build scripts or tools that reference filenames
133
+
134
+ ## Integration with Development Tools
135
+
136
+ ### VS Code Integration
137
+ - **File Explorer Sorting**: Consistent naming improves file navigation
138
+ - **Search and Replace**: Standard patterns make project-wide changes easier
139
+ - **Extensions**: AL Language extension works better with standard naming
140
+
141
+ ### Source Control Benefits
142
+ - **File Tracking**: Consistent naming improves change tracking
143
+ - **Merge Conflicts**: Reduced conflicts from naming inconsistencies
144
+ - **Review Process**: Easier code review with predictable file organization
145
+
146
+ *This is a foundational standard that affects all AL development. Proper file naming is the first step toward professional, maintainable Business Central extensions.*
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bc-code-intelligence-mcp",
3
- "version": "1.3.2",
3
+ "version": "1.3.3",
4
4
  "description": "BC Code Intelligence MCP Server - Complete Specialist Bundle with AI-driven expert consultation, seamless handoffs, and context-preserving workflows",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",